mirror of
https://github.com/brues-code/pfUI.git
synced 2026-11-01 16:36:56 +00:00
Compare commits
| Author | SHA1 | Date | |
|---|---|---|---|
|
|
e38d028677 | ||
|
|
987c244591 | ||
|
|
14a26b8301 | ||
|
|
b2e89b461c | ||
|
|
907d282a68 | ||
|
|
149c8cb3c3 | ||
|
|
93ab07a662 | ||
|
|
84da90c7d4 | ||
|
|
d2cefe69cf | ||
|
|
9da2d459dd | ||
|
|
2b7febf617 | ||
|
|
3b64bfa98b | ||
|
|
217b00e9a4 | ||
|
|
2d5cf94ae1 | ||
|
|
7ba0fedd2b | ||
|
|
b6a41e70ec | ||
|
|
e43ddd31fd | ||
|
|
f81ea09d1c | ||
|
|
78d4e0a56e | ||
|
|
caf7112651 | ||
|
|
e5a78c8d54 | ||
|
|
43f90751d6 | ||
|
|
f90279e003 | ||
|
|
17fe9f0dd9 | ||
|
|
54e66fea11 | ||
|
|
d21d13bdfa | ||
|
|
480889cb05 | ||
|
|
b6f58b0e04 | ||
|
|
8b5a27f9be | ||
|
|
cc5c562516 | ||
|
|
a9542bd467 | ||
|
|
45bc65b3c0 | ||
|
|
113ff257cf | ||
|
|
07e315cd86 | ||
|
|
b3298571dd | ||
|
|
f5c08822f8 | ||
|
|
6f5c225ec3 | ||
|
|
a8d805626d | ||
|
|
df13e30e08 | ||
|
|
235422689b | ||
|
|
f79494a53a | ||
|
|
7db85b6c07 | ||
|
|
61282115a3 | ||
|
|
b64ae7dd53 | ||
|
|
b9c260b8e1 | ||
|
|
ff5deac0ec | ||
|
|
cff4be9416 | ||
|
|
6a670ab668 | ||
|
|
c5894f7f15 | ||
|
|
5224d02572 | ||
|
|
f56720dccc | ||
|
|
70cc994a97 | ||
|
|
2c7ca8afdd | ||
|
|
1b71ee617f | ||
|
|
bfe1864aa1 | ||
|
|
11b1a2b077 | ||
|
|
4616c2bc5f | ||
|
|
f7680ded0b | ||
|
|
6469a557ff | ||
|
|
4988384884 | ||
|
|
af9edb215d | ||
|
|
f37ea00226 | ||
|
|
b0f9b7b993 | ||
|
|
436c6d6dd4 | ||
|
|
efe6ec6080 | ||
|
|
a96a3dbd87 | ||
|
|
a721f788a9 | ||
|
|
f33a9068f2 | ||
|
|
187e057923 | ||
|
|
3899004957 | ||
|
|
ee73cde828 | ||
|
|
76efd5b490 | ||
|
|
393b37b8c3 | ||
|
|
7928db33bf | ||
|
|
5d8314b2d4 | ||
|
|
3987cfb8a0 | ||
|
|
796f20eadf | ||
|
|
26c55bddb0 | ||
|
|
8c22fdb850 | ||
|
|
2d275c53fa | ||
|
|
ba752056ad | ||
|
|
1ccf87c61a | ||
|
|
dc89f01dda | ||
|
|
a917a70b1c | ||
|
|
03ea3d5aa5 | ||
|
|
2b4d33d46a | ||
|
|
94dcfb3dad | ||
|
|
0890905eb6 | ||
|
|
6c76a88467 | ||
|
|
35c32f365e | ||
|
|
6dcb5162be | ||
|
|
8afafe71cf | ||
|
|
99ed538ee7 | ||
|
|
f382039f21 | ||
|
|
8307dd757e | ||
|
|
5ab5337bbc | ||
|
|
d15b1cd320 | ||
|
|
0cabf2ec29 | ||
|
|
fe376b8e51 | ||
|
|
e326cea05e | ||
|
|
d9e74b3bc5 | ||
|
|
0e428de74c | ||
|
|
df21f1f26c | ||
|
|
bd7bf3f39f | ||
|
|
987c337709 | ||
|
|
cdaf9336a3 | ||
|
|
e4f0849816 | ||
|
|
c03b74c3d1 | ||
|
|
e583ac1e83 |
+1
-1
@@ -13,7 +13,7 @@ do
|
||||
-- on. There pfUI does load, and will throw wherever it reaches for something
|
||||
-- the installed DLL doesn't have yet -- the popup names the cause so those
|
||||
-- errors aren't a mystery.
|
||||
local PFUI_CLASSIC_API_MIN = 11703 -- (X*10000 + Y*100 + Z)
|
||||
local PFUI_CLASSIC_API_MIN = 11813 -- (X*10000 + Y*100 + Z)
|
||||
local PFUI_CLASSIC_API_LATEST = PFUI_CLASSIC_API_MIN
|
||||
local PFUI_CLASSIC_API_WEBSITE = "https://github.com/brues-code/ClassicAPI"
|
||||
local PFUI_CLASSIC_API_LATEST_URL = PFUI_CLASSIC_API_WEBSITE .. "/releases/latest"
|
||||
|
||||
@@ -37,6 +37,8 @@ Provides:
|
||||
- Click-casting
|
||||
- Loot Roll History (/loothistory)
|
||||
- New item highlighting
|
||||
- Loss of control alert - Stuns, fears, silences and school lockouts from C_LossOfControl
|
||||
- Dressing room zoom, pan and per-slot undress (PlayerModel / DressUpModel methods)
|
||||
- Plenty other functions
|
||||
|
||||
### [Nampower](https://github.com/brues-code/nampower)
|
||||
|
||||
+92
-355
@@ -1,5 +1,3 @@
|
||||
pfUI.api = { }
|
||||
|
||||
-- load pfUI environment
|
||||
setfenv(1, pfUI:GetEnvironment())
|
||||
|
||||
@@ -59,20 +57,6 @@ function pfUI.api.GetUnitDistance(unit1, unit2)
|
||||
return nil
|
||||
end
|
||||
|
||||
-- [ UnitInLineOfSight ]
|
||||
-- Returns true if unit1 has line of sight to unit2
|
||||
-- Requires UnitXP_SP3
|
||||
function pfUI.api.UnitInLineOfSight(unit1, unit2)
|
||||
if not pfUI.api.HasUnitXP() then return nil end
|
||||
if not unit2 then
|
||||
unit2 = unit1
|
||||
unit1 = "player"
|
||||
end
|
||||
local success, inSight = pcall(UnitXP, "inSight", unit1, unit2)
|
||||
if success then return inSight end
|
||||
return nil
|
||||
end
|
||||
|
||||
-- [ UnitIsBehind ]
|
||||
-- Returns true if unit1 is behind unit2
|
||||
-- Requires UnitXP_SP3
|
||||
@@ -92,34 +76,11 @@ gfind = string.gmatch or string.gfind
|
||||
mod = math.mod or mod
|
||||
|
||||
-- [ strsplit ]
|
||||
-- Splits a string using a delimiter. Self-contained on purpose: it does NOT
|
||||
-- delegate to the global strsplit / string.split, because third-party addons
|
||||
-- clobber those (e.g. BigWigs' SpellRequests redefines string:split to return
|
||||
-- a table, which would make this return a single table instead of r,g,b,a and
|
||||
-- break color/version parsing depending on load order). Delimiter chars are
|
||||
-- treated as a set (any one char splits), and empty fields are preserved
|
||||
-- ("a,,b" -> "a", "", "b"), matching real strsplit semantics.
|
||||
-- 'delimiter' [string] characters that will be interpreted as delimiter
|
||||
-- characters (bytes) in the string.
|
||||
-- 'subject' [string] String to split.
|
||||
-- return: [list] a list of strings.
|
||||
local format, sgsub = string.format, string.gsub
|
||||
function pfUI.api.strsplit(delimiter, subject)
|
||||
if not subject then return nil end
|
||||
local fields = {}
|
||||
delimiter = delimiter or ":"
|
||||
local pattern = format("([^%s]+)", delimiter)
|
||||
sgsub(subject, pattern, function(c) fields[table.getn(fields)+1] = c end)
|
||||
return unpack(fields)
|
||||
end
|
||||
|
||||
-- [ isempty ]
|
||||
-- Returns true if a table is empty or not existing, otherwise false.
|
||||
-- 'tbl' [table] the table that shall be checked
|
||||
-- return: [boolean] result of the check.
|
||||
function pfUI.api.isempty(tbl)
|
||||
return next(tbl or {}) == nil
|
||||
end
|
||||
-- ClassicAPI's strsplit, taken from the ClassicAPI table, which no addon can
|
||||
-- overwrite. Third-party addons replace the global strsplit / string.split
|
||||
-- (e.g. BigWigs' SpellRequests makes string:split return a table), and bare
|
||||
-- strsplit calls inside the pfUI environment resolve to this copy.
|
||||
pfUI.api.strsplit = ClassicAPI.strsplit
|
||||
|
||||
-- [ checkversion ]
|
||||
-- Compares a given version (major,minor,fix) and compares it to the current
|
||||
@@ -143,8 +104,7 @@ function pfUI.api.checkversion(chkmajor, chkminor, chkfix)
|
||||
end
|
||||
|
||||
-- [ UnitInRange ]
|
||||
-- Returns whether a party/raid member is nearby.
|
||||
-- It takes care of the rangecheck module if existing.
|
||||
-- Returns whether a party/raid member is nearby, by the configured range check.
|
||||
-- unit [string] A unit to query (string, unitID)
|
||||
-- return: [bool] "1" if in range otherwise "nil"
|
||||
function pfUI.api.UnitInRange(unit)
|
||||
@@ -159,40 +119,21 @@ function pfUI.api.UnitInRange(unit)
|
||||
-- returned nil above, matching the pre-collapse behavior.
|
||||
if C.unitframes.rangecheck == "0" then return 1 end
|
||||
|
||||
-- UnitXP precise mode: skip librange entirely, use direct distance check
|
||||
-- UnitXP precise mode: direct distance check against the configured range
|
||||
if C.unitframes.rangecheck_mode == "unitxp" and _G.UnitXP then
|
||||
local threshold = tonumber(C.unitframes.rangecheck_distance) or 40
|
||||
local success, distance = pcall(_G.UnitXP, "distanceBetween", "player", unit)
|
||||
if success and distance then
|
||||
return distance <= threshold and 1 or nil
|
||||
end
|
||||
-- fallthrough to librange if UnitXP fails
|
||||
-- fallthrough to the 40y check if UnitXP fails
|
||||
end
|
||||
|
||||
if pfUI.api.librange then
|
||||
return pfUI.api.librange:UnitInSpellRange(unit)
|
||||
end
|
||||
return nil
|
||||
end
|
||||
|
||||
-- [ RunOOC ]
|
||||
-- Runs a function once, as soon as the combat lockdown fades.
|
||||
-- func [function] The function that shall run ooc.
|
||||
-- return: [bool] true if the function was added,
|
||||
-- nil if the function already exists in queue
|
||||
local queue, frame = {}
|
||||
function pfUI.api.RunOOC(func)
|
||||
if not frame then
|
||||
frame = CreateFrame("Frame")
|
||||
frame:SetScript("OnUpdate", function()
|
||||
for key, func in pairs(queue) do func(); queue[key] = nil end
|
||||
end)
|
||||
end
|
||||
|
||||
if not queue[tostring(func)] then
|
||||
queue[tostring(func)] = func
|
||||
return true
|
||||
end
|
||||
-- ClassicAPI's 40y check, _G-qualified since the bare name is this function
|
||||
-- inside the pfUI environment. A unit it can't place (outside the client's
|
||||
-- sync range) counts as in range.
|
||||
local inRange, checked = _G.UnitInRange(unit)
|
||||
return (inRange or not checked) and 1 or nil
|
||||
end
|
||||
|
||||
-- [ UnitHasBuff ]
|
||||
@@ -320,28 +261,6 @@ function pfUI.api.round(input, places)
|
||||
end
|
||||
end
|
||||
|
||||
-- [ clamp ]
|
||||
-- Clamps a number between given range.
|
||||
-- 'x' [number] the number that should be clamped.
|
||||
-- 'min' [number] minimum value.
|
||||
-- 'max' [number] maximum value.
|
||||
-- returns: [number] clamped value: 'x', 'min' or 'max' value itself.
|
||||
function pfUI.api.clamp(x, min, max)
|
||||
if type(x) == "number" and type(min) == "number" and type(max) == "number" then
|
||||
return x < min and min or x > max and max or x
|
||||
else
|
||||
return x
|
||||
end
|
||||
end
|
||||
|
||||
-- [ modf ]
|
||||
-- Returns integral and fractional part of a number.
|
||||
-- 'f' [float] the number to breakdown.
|
||||
-- returns: [int],[float] whole and fractional part.
|
||||
function pfUI.api.modf(f)
|
||||
return math.modf(f)
|
||||
end
|
||||
|
||||
-- [ GetServerEpoch ]
|
||||
-- Returns a Unix epoch (seconds) representing the current server wall
|
||||
-- clock, packed in the player's local timezone so that date(fmt, epoch)
|
||||
@@ -529,37 +448,32 @@ function pfUI.api.GetBagFamily(bag)
|
||||
end
|
||||
|
||||
-- [ Abbreviate ]
|
||||
-- Abbreviates a number from 1234 to 1.23k
|
||||
-- Abbreviates a number from 1234 to 1.23k, as the unitframes.abbrevnum
|
||||
-- setting asks: "0" full numbers, "1" 2 decimals (4250 -> 4.25k),
|
||||
-- "2" 1 decimal rounded down (4250 -> 4.2k)
|
||||
-- 'number' [number] the number that should be abbreviated
|
||||
-- 'returns: [string] the abbreviated value
|
||||
local function CreateAbbreviateFormatter(step, rounding)
|
||||
local Down = Enum.NumericRuleFormatRounding.Down
|
||||
local formatter = C_StringUtil.CreateNumericRuleFormatter()
|
||||
formatter:SetBreakpoints({
|
||||
{ threshold = 0, format = "%d", components = { { step = 1, rounding = Down } } },
|
||||
{ threshold = 1000, format = "%gk", components = { { div = 1000, step = step, rounding = rounding } } },
|
||||
{ threshold = 1000000, format = "%gm", components = { { div = 1000000, step = step, rounding = rounding } } },
|
||||
})
|
||||
return formatter
|
||||
end
|
||||
|
||||
local abbreviateFormatters = {
|
||||
["1"] = CreateAbbreviateFormatter(0.01, Enum.NumericRuleFormatRounding.Nearest),
|
||||
["2"] = CreateAbbreviateFormatter(0.1, Enum.NumericRuleFormatRounding.Down),
|
||||
}
|
||||
|
||||
function pfUI.api.Abbreviate(number)
|
||||
local mode = pfUI_config.unitframes.abbrevnum
|
||||
-- mode "0" = disabled (full numbers)
|
||||
-- mode "1" = 2 decimals (4250 -> 4.25k) [legacy/default]
|
||||
-- mode "2" = 1 decimal (4250 -> 4.2k) - always rounds DOWN
|
||||
|
||||
if mode == "1" or mode == "2" then
|
||||
local sign = number < 0 and -1 or 1
|
||||
number = math.abs(number)
|
||||
|
||||
if number > 1000000 then
|
||||
if mode == "2" then
|
||||
-- 1 decimal, round DOWN: 4.18m -> 4.1m
|
||||
return (floor(number/100000) / 10 * sign) .. "m"
|
||||
else
|
||||
return pfUI.api.round(number/1000000*sign, 2) .. "m"
|
||||
end
|
||||
elseif number > 1000 then
|
||||
if mode == "2" then
|
||||
-- 1 decimal, round DOWN: 4180 -> 4.1k (not 4.2k)
|
||||
return (floor(number/100) / 10 * sign) .. "k"
|
||||
else
|
||||
return pfUI.api.round(number/1000*sign, 2) .. "k"
|
||||
end
|
||||
end
|
||||
end
|
||||
|
||||
return math.floor(number)
|
||||
local formatter = abbreviateFormatters[pfUI_config.unitframes.abbrevnum]
|
||||
if not formatter then return math.floor(number) end
|
||||
if number < 0 then return "-" .. formatter:FormatNumber(-number) end
|
||||
return formatter:FormatNumber(number)
|
||||
end
|
||||
|
||||
-- [ SendChatMessageWide ]
|
||||
@@ -579,6 +493,14 @@ function pfUI.api.SendChatMessageWide(msg)
|
||||
SendChatMessage(msg,channel)
|
||||
end
|
||||
|
||||
-- [ CopyText ]
|
||||
-- Copies text to the clipboard and says so in the colour of a UI_INFO_MESSAGE
|
||||
-- 'text' [string] the text to copy
|
||||
function pfUI.api.CopyText(text)
|
||||
CopyToClipboard(text)
|
||||
UIErrorsFrame:AddMessage(T["Copied to clipboard"], 1, 1, 0, 1)
|
||||
end
|
||||
|
||||
-- [ GroupInfoByName ]
|
||||
-- Gets the unit id by name
|
||||
-- 'name' [string] party or raid member
|
||||
@@ -643,75 +565,21 @@ function hooksecurefunc(tbl, name, func)
|
||||
return _G.hooksecurefunc(tbl, name, func)
|
||||
end
|
||||
|
||||
-- [ HookAddonOrVariable ]
|
||||
-- Sets a function to be called automatically once an addon gets loaded
|
||||
-- 'addon' [string] addon or variable name
|
||||
-- [ HookAddon ]
|
||||
-- Runs a function once an addon has loaded, but never before PLAYER_LOGIN.
|
||||
-- Module and skin bodies run inside pfUI's own ADDON_LOADED, so an addon that
|
||||
-- is already loaded there would otherwise run its hook before later pfUI
|
||||
-- modules exist and before the addon's own VARIABLES_LOADED setup. A
|
||||
-- load-on-demand addon runs its hook on its ADDON_LOADED. Hooks for addons
|
||||
-- that are not installed are dropped. Hooks on the same addon run in no
|
||||
-- particular order.
|
||||
-- 'addon' [string] addon name
|
||||
-- 'func' [function] function that should run
|
||||
do
|
||||
local lurker
|
||||
local pending = {}
|
||||
|
||||
local function ProcessPending()
|
||||
if not lurker.foundConfig then return end
|
||||
for i = table.getn(pending), 1, -1 do
|
||||
local hook = pending[i]
|
||||
if IsAddOnLoaded(hook.addon) or _G[hook.addon] then
|
||||
hook.func()
|
||||
table.remove(pending, i)
|
||||
end
|
||||
end
|
||||
if table.getn(pending) == 0 then
|
||||
lurker:UnregisterAllEvents()
|
||||
end
|
||||
end
|
||||
|
||||
function pfUI.api.HookAddonOrVariable(addon, func)
|
||||
if not lurker then
|
||||
lurker = CreateFrame("Frame", nil)
|
||||
lurker:SetScript("OnEvent", function()
|
||||
if event == "VARIABLES_LOADED" or event == "PLAYER_ENTERING_WORLD" then
|
||||
this.foundConfig = true
|
||||
end
|
||||
ProcessPending()
|
||||
end)
|
||||
end
|
||||
|
||||
table.insert(pending, { addon = addon, func = func })
|
||||
lurker:RegisterEvent("ADDON_LOADED")
|
||||
lurker:RegisterEvent("VARIABLES_LOADED")
|
||||
lurker:RegisterEvent("PLAYER_ENTERING_WORLD")
|
||||
ProcessPending()
|
||||
end
|
||||
end
|
||||
|
||||
-- [ QueueFunction ]
|
||||
-- Add functions to a FIFO queue for execution after a short delay.
|
||||
-- '...' [vararg] function, [arguments]
|
||||
local timer
|
||||
function pfUI.api.QueueFunction(a1,a2,a3,a4,a5,a6,a7,a8,a9)
|
||||
if not timer then
|
||||
timer = CreateFrame("Frame")
|
||||
timer.queue = {}
|
||||
timer.interval = TOOLTIP_UPDATE_TIME
|
||||
timer.DeQueue = function()
|
||||
local item = table.remove(timer.queue,1)
|
||||
if item then
|
||||
item[1](item[2],item[3],item[4],item[5],item[6],item[7],item[8],item[9])
|
||||
end
|
||||
if table.getn(timer.queue) == 0 then
|
||||
timer:Hide() -- no need to run the OnUpdate when the queue is empty
|
||||
end
|
||||
end
|
||||
timer:SetScript("OnUpdate",function()
|
||||
this.sinceLast = (this.sinceLast or 0) + arg1
|
||||
while (this.sinceLast > this.interval) do
|
||||
this.DeQueue()
|
||||
this.sinceLast = this.sinceLast - this.interval
|
||||
end
|
||||
end)
|
||||
end
|
||||
table.insert(timer.queue,{a1,a2,a3,a4,a5,a6,a7,a8,a9})
|
||||
timer:Show() -- start the OnUpdate
|
||||
function pfUI.api.HookAddon(addon, func)
|
||||
if not C_AddOns.DoesAddOnExist(addon) then return end
|
||||
EventUtil.ContinueOnPlayerLogin(function()
|
||||
EventUtil.ContinueOnAddOnLoaded(addon, func)
|
||||
end)
|
||||
end
|
||||
|
||||
-- [ Create Gold String ]
|
||||
@@ -722,67 +590,29 @@ end
|
||||
function pfUI.api.CreateGoldString(money)
|
||||
if type(money) ~= "number" then return "-" end
|
||||
|
||||
if _G.GetCoinTextureString then
|
||||
return "|cffffffff" .. _G.GetCoinTextureString(money) .. "|r"
|
||||
end
|
||||
|
||||
local gold = floor(money/ 100 / 100)
|
||||
local silver = floor(mod((money/100),100))
|
||||
local copper = floor(mod(money,100))
|
||||
|
||||
local string = ""
|
||||
if gold > 0 then string = string .. "|cffffffff" .. gold .. "|cffffd700g" end
|
||||
if silver > 0 or gold > 0 then string = string .. "|cffffffff " .. silver .. "|cffc7c7cfs" end
|
||||
string = string .. "|cffffffff " .. copper .. "|cffeda55fc"
|
||||
|
||||
return string
|
||||
return "|cffffffff" .. _G.GetCoinTextureString(money) .. "|r"
|
||||
end
|
||||
|
||||
-- [ Enable Movable ]
|
||||
-- Set all necessary functions to make a already existing frame movable.
|
||||
-- 'name' [frame/string] Name of the Frame that should be movable
|
||||
-- 'addon' [string] Addon that must be loaded before being able to access the frame
|
||||
-- 'blacklist' [table] A list of frames that should be deactivated for mouse usage
|
||||
local function OnDragStart() this:StartMoving() end
|
||||
local function OnDragStop() this:StopMovingOrSizing() end
|
||||
function pfUI.api.EnableMovable(name, addon, blacklist)
|
||||
if addon then
|
||||
local scan = CreateFrame("Frame")
|
||||
scan:RegisterEvent("ADDON_LOADED")
|
||||
scan:SetScript("OnEvent", function()
|
||||
if arg1 == addon then
|
||||
local frame = _G[name]
|
||||
|
||||
if blacklist then
|
||||
for _, disable in pairs(blacklist) do
|
||||
_G[disable]:EnableMouse(false)
|
||||
end
|
||||
end
|
||||
|
||||
frame:SetMovable(true)
|
||||
frame:EnableMouse(true)
|
||||
frame:RegisterForDrag("LeftButton")
|
||||
frame:SetScript("OnDragStart", OnDragStart)
|
||||
frame:SetScript("OnDragStop", OnDragStop)
|
||||
|
||||
this:UnregisterAllEvents()
|
||||
end
|
||||
end)
|
||||
else
|
||||
if blacklist then
|
||||
for _, disable in pairs(blacklist) do
|
||||
_G[disable]:EnableMouse(false)
|
||||
end
|
||||
function pfUI.api.EnableMovable(name, blacklist)
|
||||
if blacklist then
|
||||
for _, disable in pairs(blacklist) do
|
||||
_G[disable]:EnableMouse(false)
|
||||
end
|
||||
|
||||
local frame = name
|
||||
if type(name) == "string" then frame = _G[name] end
|
||||
frame:SetMovable(true)
|
||||
frame:EnableMouse(true)
|
||||
frame:RegisterForDrag("LeftButton")
|
||||
frame:SetScript("OnDragStart", OnDragStart)
|
||||
frame:SetScript("OnDragStop", OnDragStop)
|
||||
end
|
||||
|
||||
local frame = name
|
||||
if type(name) == "string" then frame = _G[name] end
|
||||
frame:SetMovable(true)
|
||||
frame:EnableMouse(true)
|
||||
frame:RegisterForDrag("LeftButton")
|
||||
frame:SetScript("OnDragStart", OnDragStart)
|
||||
frame:SetScript("OnDragStop", OnDragStop)
|
||||
end
|
||||
|
||||
-- [ Copy Table ]
|
||||
@@ -1353,15 +1183,18 @@ end
|
||||
|
||||
-- [ Bar Layout Options ] --
|
||||
-- 'barsize' size of bar in number of buttons
|
||||
-- returns: array of options as strings for pfUI.gui.bar
|
||||
-- returns: array of options as strings for pfUI.gui.bar: every grid
|
||||
-- that fits the bar exactly, plus common uneven ones
|
||||
function pfUI.api.BarLayoutOptions(barsize)
|
||||
assert(barsize > 0 and barsize <= NUM_ACTIONBAR_BUTTONS,"BarLayoutOptions: barsize "..tostring(barsize).." is invalid")
|
||||
local options, seen = {}, {}
|
||||
local function add(option)
|
||||
if not seen[option] then table.insert(options, option); seen[option] = true end
|
||||
end
|
||||
for i,layout in ipairs(pfGridmath[barsize]) do
|
||||
add(string.format("%d x %d",layout[1],layout[2]))
|
||||
for cols = 1, barsize do
|
||||
if barsize % cols == 0 then
|
||||
add(string.format("%d x %d", cols, barsize / cols))
|
||||
end
|
||||
end
|
||||
for _, option in ipairs({
|
||||
"1 x 12", "1 x 10", "2 x 10", "2 x 5", "3 x 10", "3 x 5", "3 x 3",
|
||||
@@ -1381,49 +1214,23 @@ function pfUI.api.BarLayoutOptions(barsize)
|
||||
return options
|
||||
end
|
||||
|
||||
-- [ Bar Layout Formfactor ] --
|
||||
-- 'option' string option as used in pfUI_config.bars[bar].option
|
||||
-- returns: integer formfactor
|
||||
local formfactors = {}
|
||||
setmetatable(formfactors, {__mode = "v"}) -- weak table so values not referenced are collected on next gc
|
||||
function pfUI.api.BarLayoutFormfactor(option)
|
||||
if formfactors[option] then
|
||||
return formfactors[option]
|
||||
else
|
||||
for barsize,_ in ipairs(pfGridmath) do
|
||||
local options = pfUI.api.BarLayoutOptions(barsize)
|
||||
for i,opt in ipairs(options) do
|
||||
if opt == option then
|
||||
formfactors[option] = i
|
||||
return formfactors[option]
|
||||
end
|
||||
end
|
||||
end
|
||||
end
|
||||
end
|
||||
|
||||
-- 'formfactor' has to be a "cols x rows" string; the actionbar module resets
|
||||
-- a stored layout that isn't one before it lays out a bar
|
||||
local function ResolveBarLayout(barsize, formfactor, uneven)
|
||||
local layout = tostring(formfactor or "")
|
||||
local _, _, a, b = string.find(layout, "(%d+)%s*x%s*(%d+)")
|
||||
if a and b then
|
||||
local cols, rows = tonumber(a), tonumber(b)
|
||||
cols = math.min(NUM_ACTIONBAR_BUTTONS, math.max(1, cols))
|
||||
rows = math.min(NUM_ACTIONBAR_BUTTONS, math.max(1, rows))
|
||||
local orientation = string.upper(uneven or "DOWN")
|
||||
local mode = (orientation == "LEFT" or orientation == "RIGHT") and "cols" or "rows"
|
||||
if mode == "rows" then
|
||||
cols = math.max(1, math.min(cols, barsize))
|
||||
rows = math.max(1, math.ceil(barsize / cols))
|
||||
else
|
||||
rows = math.max(1, math.min(rows, barsize))
|
||||
cols = math.max(1, math.ceil(barsize / rows))
|
||||
end
|
||||
return cols, rows, mode, orientation
|
||||
local _, _, a, b = string.find(formfactor, "(%d+)%s*x%s*(%d+)")
|
||||
local cols, rows = tonumber(a), tonumber(b)
|
||||
cols = math.min(NUM_ACTIONBAR_BUTTONS, math.max(1, cols))
|
||||
rows = math.min(NUM_ACTIONBAR_BUTTONS, math.max(1, rows))
|
||||
local orientation = string.upper(uneven or "DOWN")
|
||||
local mode = (orientation == "LEFT" or orientation == "RIGHT") and "cols" or "rows"
|
||||
if mode == "rows" then
|
||||
cols = math.max(1, math.min(cols, barsize))
|
||||
rows = math.max(1, math.ceil(barsize / cols))
|
||||
else
|
||||
rows = math.max(1, math.min(rows, barsize))
|
||||
cols = math.max(1, math.ceil(barsize / rows))
|
||||
end
|
||||
local index = pfUI.api.BarLayoutFormfactor(layout)
|
||||
if not index then return nil end
|
||||
local cols, rows = unpack(pfGridmath[barsize][index])
|
||||
return cols, rows, "rows", "DOWN"
|
||||
return cols, rows, mode, orientation
|
||||
end
|
||||
|
||||
-- [ Bar Layout Size ] --
|
||||
@@ -1434,7 +1241,6 @@ end
|
||||
function pfUI.api.BarLayoutSize(bar,barsize,formfactor,iconsize,bordersize,padding,uneven,fillmode)
|
||||
assert(barsize > 0 and barsize <= NUM_ACTIONBAR_BUTTONS,"BarLayoutSize: barsize "..tostring(barsize).." is invalid")
|
||||
local cols, rows = ResolveBarLayout(barsize, formfactor, uneven)
|
||||
if not cols or not rows then cols, rows = unpack(pfGridmath[barsize][1]) end
|
||||
local width = (iconsize + bordersize*2+padding) * cols + padding
|
||||
local height = (iconsize + bordersize*2+padding) * rows + padding
|
||||
bar._size = {width,height}
|
||||
@@ -1452,9 +1258,6 @@ end
|
||||
function pfUI.api.BarButtonAnchor(button,basename,buttonindex,barsize,formfactor,iconsize,bordersize,padding,uneven,fillmode)
|
||||
assert(barsize > 0 and barsize <= NUM_ACTIONBAR_BUTTONS,"BarButtonAnchor: barsize "..tostring(barsize).." is invalid")
|
||||
local cols, rows, mode, orientation = ResolveBarLayout(barsize, formfactor, uneven)
|
||||
if not cols or not rows then
|
||||
cols, rows, mode, orientation = unpack(pfGridmath[barsize][1]), "rows", "DOWN"
|
||||
end
|
||||
|
||||
-- fillmode: remap buttonindex to slotindex (grid position in native fill order)
|
||||
-- only needed when fill direction differs from layout mode
|
||||
@@ -1615,72 +1418,6 @@ function pfUI.api.DisableAutohide(frame)
|
||||
frame:SetAlpha(1)
|
||||
end
|
||||
|
||||
-- [ GetColoredTime ] --
|
||||
-- 'remaining' the time in seconds that should be converted
|
||||
-- return a colored string including a time unit (m/h/d)
|
||||
local color_day, color_hour, color_minute, color_low, color_normal
|
||||
function pfUI.api.GetColoredTimeString(remaining)
|
||||
if not remaining then return "" end
|
||||
|
||||
-- Show days if remaining is > 99 Hours (99 * 60 * 60)
|
||||
if remaining > 356400 then
|
||||
if not color_day then
|
||||
local r,g,b,a = pfUI.api.GetStringColor(C.appearance.cd.daycolor)
|
||||
color_day = pfUI.api.rgbhex(r,g,b)
|
||||
end
|
||||
|
||||
return color_day .. round(remaining / 86400) .. "|rd"
|
||||
|
||||
-- Show hours if remaining is > 99 Minutes (99 * 60)
|
||||
elseif remaining > 5940 then
|
||||
if not color_hour then
|
||||
local r,g,b,a = pfUI.api.GetStringColor(C.appearance.cd.hourcolor)
|
||||
color_hour = pfUI.api.rgbhex(r,g,b)
|
||||
end
|
||||
|
||||
return color_hour .. round(remaining / 3600) .. "|rh"
|
||||
|
||||
-- Show minutes if remaining is > 99 Seconds (99)
|
||||
elseif remaining > 99 then
|
||||
if not color_minute then
|
||||
local r,g,b,a = pfUI.api.GetStringColor(C.appearance.cd.minutecolor)
|
||||
color_minute = pfUI.api.rgbhex(r,g,b)
|
||||
end
|
||||
|
||||
return color_minute .. round(remaining / 60) .. "|rm"
|
||||
|
||||
-- Show milliseconds on low
|
||||
elseif remaining <= 5 and pfUI_config.appearance.cd.milliseconds == "1" then
|
||||
if not color_low then
|
||||
local r,g,b,a = pfUI.api.GetStringColor(C.appearance.cd.lowcolor)
|
||||
color_low = pfUI.api.rgbhex(r,g,b)
|
||||
end
|
||||
|
||||
return color_low .. string.format("%.1f", round(remaining,1))
|
||||
|
||||
-- Show seconds on low
|
||||
elseif remaining <= 5 then
|
||||
if not color_low then
|
||||
local r,g,b,a = pfUI.api.GetStringColor(C.appearance.cd.lowcolor)
|
||||
color_low = pfUI.api.rgbhex(r,g,b)
|
||||
end
|
||||
|
||||
return color_low .. round(remaining)
|
||||
|
||||
-- Show seconds on normal
|
||||
elseif remaining >= 0 then
|
||||
if not color_normal then
|
||||
local r, g, b, a = pfUI.api.GetStringColor(C.appearance.cd.normalcolor)
|
||||
color_normal = pfUI.api.rgbhex(r,g,b)
|
||||
end
|
||||
return color_normal .. round(remaining)
|
||||
|
||||
-- Return empty
|
||||
else
|
||||
return ""
|
||||
end
|
||||
end
|
||||
|
||||
-- [ GetColorGradient ] --
|
||||
-- 'perc' percentage (0-1)
|
||||
-- return r,g,b and hexcolor
|
||||
|
||||
+67
-52
@@ -138,21 +138,50 @@ function pfUI:LoadConfig()
|
||||
pfUI:UpdateConfig("appearance", "border", "panels", "-1")
|
||||
pfUI:UpdateConfig("appearance", "border", "chat", "-1")
|
||||
pfUI:UpdateConfig("appearance", "border", "bags", "-1")
|
||||
pfUI:UpdateConfig("appearance", "cd", "lowcolor", "1,.2,.2,1")
|
||||
pfUI:UpdateConfig("appearance", "cd", "normalcolor", "1,1,1,1")
|
||||
pfUI:UpdateConfig("appearance", "cd", "minutecolor", ".2,1,1,1")
|
||||
pfUI:UpdateConfig("appearance", "cd", "hourcolor", ".2,.5,1,1")
|
||||
pfUI:UpdateConfig("appearance", "cd", "daycolor", ".2,.2,1,1")
|
||||
pfUI:UpdateConfig("appearance", "cd", "threshold", "2")
|
||||
pfUI:UpdateConfig("appearance", "cd", "font_size", "12")
|
||||
pfUI:UpdateConfig("appearance", "cd", "font_size_blizz", "12")
|
||||
pfUI:UpdateConfig("appearance", "cd", "font_size_foreign","12")
|
||||
pfUI:UpdateConfig("appearance", "cd", "blizzard", "1")
|
||||
pfUI:UpdateConfig("appearance", "cd", "foreign", "0")
|
||||
pfUI:UpdateConfig("appearance", "cd", "milliseconds", "1")
|
||||
pfUI:UpdateConfig("appearance", "cd", "hideanim", "0")
|
||||
pfUI:UpdateConfig("appearance", "cd", "font", "Interface\\AddOns\\pfUI\\fonts\\BigNoodleTitling.ttf")
|
||||
pfUI:UpdateConfig("appearance", "cd", "dynamicsize", "1")
|
||||
|
||||
pfUI:UpdateConfig("cooldown", nil, "font", "Interface\\AddOns\\pfUI\\fonts\\BigNoodleTitling.ttf")
|
||||
pfUI:UpdateConfig("cooldown", nil, "font_size", "12")
|
||||
pfUI:UpdateConfig("cooldown", nil, "dynamicsize", "1")
|
||||
pfUI:UpdateConfig("cooldown", nil, "threshold", "2")
|
||||
pfUI:UpdateConfig("cooldown", nil, "milliseconds", "1")
|
||||
pfUI:UpdateConfig("cooldown", nil, "lowcolor", "1,.2,.2,1")
|
||||
pfUI:UpdateConfig("cooldown", nil, "normalcolor", "1,1,1,1")
|
||||
pfUI:UpdateConfig("cooldown", nil, "minutecolor", ".2,1,1,1")
|
||||
pfUI:UpdateConfig("cooldown", nil, "hourcolor", ".2,.5,1,1")
|
||||
pfUI:UpdateConfig("cooldown", nil, "daycolor", ".2,.2,1,1")
|
||||
pfUI:UpdateConfig("cooldown", "actionbar", "text", "1")
|
||||
pfUI:UpdateConfig("cooldown", "actionbar", "animation", "1")
|
||||
pfUI:UpdateConfig("cooldown", "actionbar", "reverse", "0")
|
||||
pfUI:UpdateConfig("cooldown", "bags", "text", "1")
|
||||
pfUI:UpdateConfig("cooldown", "bags", "animation", "1")
|
||||
pfUI:UpdateConfig("cooldown", "bags", "reverse", "0")
|
||||
pfUI:UpdateConfig("cooldown", "blizzard", "text", "1")
|
||||
pfUI:UpdateConfig("cooldown", "blizzard", "animation", "1")
|
||||
pfUI:UpdateConfig("cooldown", "blizzard", "reverse", "0")
|
||||
pfUI:UpdateConfig("cooldown", "unitframe", "text", "1")
|
||||
pfUI:UpdateConfig("cooldown", "unitframe", "animation", "0")
|
||||
pfUI:UpdateConfig("cooldown", "unitframe", "reverse", "1")
|
||||
pfUI:UpdateConfig("cooldown", "indicator", "text", "1")
|
||||
pfUI:UpdateConfig("cooldown", "indicator", "animation", "0")
|
||||
pfUI:UpdateConfig("cooldown", "indicator", "reverse", "0")
|
||||
pfUI:UpdateConfig("cooldown", "nameplate", "text", "1")
|
||||
pfUI:UpdateConfig("cooldown", "nameplate", "animation", "0")
|
||||
pfUI:UpdateConfig("cooldown", "nameplate", "reverse", "1")
|
||||
pfUI:UpdateConfig("cooldown", "buff", "text", "1")
|
||||
pfUI:UpdateConfig("cooldown", "buff", "animation", "1")
|
||||
pfUI:UpdateConfig("cooldown", "buff", "reverse", "1")
|
||||
pfUI:UpdateConfig("cooldown", "tooltip", "text", "1")
|
||||
pfUI:UpdateConfig("cooldown", "tooltip", "animation", "0")
|
||||
pfUI:UpdateConfig("cooldown", "tooltip", "reverse", "0")
|
||||
pfUI:UpdateConfig("cooldown", "totem", "text", "1")
|
||||
pfUI:UpdateConfig("cooldown", "totem", "animation", "1")
|
||||
pfUI:UpdateConfig("cooldown", "totem", "reverse", "1")
|
||||
pfUI:UpdateConfig("cooldown", "lossofcontrol", "text", "1")
|
||||
pfUI:UpdateConfig("cooldown", "lossofcontrol", "animation", "1")
|
||||
pfUI:UpdateConfig("cooldown", "lossofcontrol", "reverse", "0")
|
||||
pfUI:UpdateConfig("cooldown", "foreign", "text", "0")
|
||||
pfUI:UpdateConfig("cooldown", "foreign", "animation", "1")
|
||||
|
||||
pfUI:UpdateConfig("appearance", "castbar", "castbarcolor", ".7,.7,.9,.8")
|
||||
pfUI:UpdateConfig("appearance", "castbar", "channelcolor", ".9,.9,.7,.8")
|
||||
pfUI:UpdateConfig("appearance", "castbar", "failcolor", "1,.2,.2,.8")
|
||||
@@ -169,7 +198,6 @@ function pfUI:LoadConfig()
|
||||
pfUI:UpdateConfig("appearance", "bags", "newitem_color", "1,1,1,1")
|
||||
pfUI:UpdateConfig("appearance", "bags", "borderlimit", "1")
|
||||
pfUI:UpdateConfig("appearance", "bags", "borderonlygear", "0")
|
||||
pfUI:UpdateConfig("appearance", "bags", "fulltext", "1")
|
||||
pfUI:UpdateConfig("appearance", "bags", "movable", "0")
|
||||
pfUI:UpdateConfig("appearance", "bags", "abovechat", "0")
|
||||
pfUI:UpdateConfig("appearance", "bags", "hidechat", "0")
|
||||
@@ -220,9 +248,9 @@ function pfUI:LoadConfig()
|
||||
pfUI:UpdateConfig("unitframes", nil, "ragecolor", "1,.5,.5,1")
|
||||
pfUI:UpdateConfig("unitframes", nil, "focuscolor", "1,1,.75,1")
|
||||
|
||||
pfUI:UpdateConfig("unitframes", nil, "animation_speed", "5")
|
||||
pfUI:UpdateConfig("unitframes", nil, "animatebars", "1")
|
||||
pfUI:UpdateConfig("unitframes", nil, "portraitalpha", "0.1")
|
||||
pfUI:UpdateConfig("unitframes", nil, "always2dportrait", "0")
|
||||
pfUI:UpdateConfig("unitframes", nil, "portraitstyle", "3d")
|
||||
pfUI:UpdateConfig("unitframes", nil, "portraittexture", "1")
|
||||
pfUI:UpdateConfig("unitframes", nil, "layout", "default")
|
||||
pfUI:UpdateConfig("unitframes", nil, "rangecheck", "0")
|
||||
@@ -251,6 +279,7 @@ function pfUI:LoadConfig()
|
||||
pfUI:UpdateConfig("unitframes", nil, "swingtimerohcolor",".3,.8,.3,1")
|
||||
pfUI:UpdateConfig("unitframes", nil, "swingtimerrangedcolor",".3,.6,1,1")
|
||||
pfUI:UpdateConfig("unitframes", nil, "swingtimerrangedwarncolor",".9,0,0,1")
|
||||
pfUI:UpdateConfig("unitframes", nil, "swingtimeroutrangecolor",".5,.5,.5,1")
|
||||
pfUI:UpdateConfig("unitframes", nil, "swingtimerhsqueue","1")
|
||||
pfUI:UpdateConfig("unitframes", nil, "swingtimerattackspeed","0")
|
||||
pfUI:UpdateConfig("unitframes", nil, "raidmarkerwidth", "80")
|
||||
@@ -283,9 +312,11 @@ function pfUI:LoadConfig()
|
||||
pfUI:UpdateConfig("unitframes", nil, "reactive_size", "28")
|
||||
pfUI:UpdateConfig("unitframes", nil, "damage_tracking", "0")
|
||||
|
||||
-- UnitXP Settings
|
||||
pfUI:UpdateConfig("unitframes", nil, "unitxp_font_size", "13")
|
||||
-- Target Indicators
|
||||
pfUI:UpdateConfig("unitframes", nil, "indicator_font_size", "13")
|
||||
pfUI:UpdateConfig("unitframes", nil, "los_indicator", "0")
|
||||
|
||||
-- UnitXP Settings
|
||||
pfUI:UpdateConfig("unitframes", nil, "behind_indicator", "0")
|
||||
pfUI:UpdateConfig("unitframes", nil, "hide_distance_yd", "0")
|
||||
pfUI:UpdateConfig("unitframes", nil, "unitxp_notify", "0")
|
||||
@@ -514,8 +545,6 @@ function pfUI:LoadConfig()
|
||||
pfUI:UpdateConfig("unitframes", unit, "portraitwidth", "-1")
|
||||
pfUI:UpdateConfig("unitframes", unit, "panchor", "TOP")
|
||||
pfUI:UpdateConfig("unitframes", unit, "pspace", "-3")
|
||||
pfUI:UpdateConfig("unitframes", unit, "cooldown_text", "1")
|
||||
pfUI:UpdateConfig("unitframes", unit, "cooldown_anim", "0")
|
||||
pfUI:UpdateConfig("unitframes", unit, "buffs", "TOPLEFT")
|
||||
pfUI:UpdateConfig("unitframes", unit, "buffsize", "20")
|
||||
pfUI:UpdateConfig("unitframes", unit, "bufflimit", "32")
|
||||
@@ -546,7 +575,6 @@ function pfUI:LoadConfig()
|
||||
pfUI:UpdateConfig("unitframes", unit, "show_procs", "0")
|
||||
pfUI:UpdateConfig("unitframes", unit, "show_totems", "0")
|
||||
pfUI:UpdateConfig("unitframes", unit, "all_procs", "0")
|
||||
pfUI:UpdateConfig("unitframes", unit, "indicator_time", "1")
|
||||
pfUI:UpdateConfig("unitframes", unit, "indicator_stacks", "1")
|
||||
pfUI:UpdateConfig("unitframes", unit, "indicator_size", "10")
|
||||
pfUI:UpdateConfig("unitframes", unit, "indicator_spacing","1")
|
||||
@@ -681,7 +709,6 @@ function pfUI:LoadConfig()
|
||||
pfUI:UpdateConfig("bars", nil, "count_color", ".2,1,.8,1")
|
||||
pfUI:UpdateConfig("bars", nil, "bind_size", "8")
|
||||
pfUI:UpdateConfig("bars", nil, "bind_color", "1,1,0,1")
|
||||
pfUI:UpdateConfig("bars", nil, "cd_size", "12")
|
||||
|
||||
pfUI:UpdateConfig("bars", "gryphons", "texture", "None")
|
||||
pfUI:UpdateConfig("bars", "gryphons", "color", ".6,.6,.6,1")
|
||||
@@ -820,6 +847,7 @@ function pfUI:LoadConfig()
|
||||
pfUI:UpdateConfig("chat", "text", "timeformat", "%H:%M:%S")
|
||||
pfUI:UpdateConfig("chat", "text", "timebracket", "[]")
|
||||
pfUI:UpdateConfig("chat", "text", "timecolor", ".8,.8,.8,1")
|
||||
pfUI:UpdateConfig("chat", "text", "copytime", "1")
|
||||
pfUI:UpdateConfig("chat", "text", "tintunknown", "1")
|
||||
pfUI:UpdateConfig("chat", "text", "unknowncolor", ".7,.7,.7,1")
|
||||
pfUI:UpdateConfig("chat", "text", "channelnumonly", "1")
|
||||
@@ -939,9 +967,6 @@ function pfUI:LoadConfig()
|
||||
pfUI:UpdateConfig("nameplates", "debuffs", "blacklist", "")
|
||||
pfUI:UpdateConfig("nameplates", "debuffs", "showstacks", "0")
|
||||
pfUI:UpdateConfig("nameplates", "debuffs", "position", "BOTTOM")
|
||||
pfUI:UpdateConfig("nameplates", nil, "debufftimers", "1")
|
||||
pfUI:UpdateConfig("nameplates", nil, "debufftext", "1")
|
||||
pfUI:UpdateConfig("nameplates", nil, "debuffanim", "0")
|
||||
|
||||
pfUI:UpdateConfig("abuttons", nil, "enable", "1")
|
||||
pfUI:UpdateConfig("abuttons", nil, "position", "bottom")
|
||||
@@ -969,7 +994,12 @@ function pfUI:LoadConfig()
|
||||
|
||||
pfUI:UpdateConfig("character", "inventory", "durability", "1")
|
||||
pfUI:UpdateConfig("character", "inventory", "equipflyout", "0")
|
||||
pfUI:UpdateConfig("equipmentmanager", nil, "autoswitch", "1")
|
||||
pfUI:UpdateConfig("equipmentmanager", nil, "announce", "1")
|
||||
pfUI:UpdateConfig("equipmentmanager", nil, "unusedquality", "1")
|
||||
pfUI:UpdateConfig("equipmentmanager", nil, "unusedbank", "1")
|
||||
pfUI:UpdateConfig("character", "reputation", "repRequired", "1")
|
||||
pfUI:UpdateConfig("radar", nil, "range", "10")
|
||||
pfUI:UpdateConfig("thirdparty", nil, "chatbg", "1")
|
||||
pfUI:UpdateConfig("thirdparty", nil, "showmeter", "0")
|
||||
pfUI:UpdateConfig("thirdparty", "dpsmate", "skin", "0")
|
||||
@@ -1131,25 +1161,6 @@ function pfUI:MigrateConfig()
|
||||
end
|
||||
end
|
||||
|
||||
-- migrating animation_speed (> 3.1.2)
|
||||
if checkversion(3, 1, 2) then
|
||||
if tonumber(pfUI_config.unitframes.animation_speed) >= 13 then
|
||||
pfUI_config.unitframes.animation_speed = "13"
|
||||
elseif tonumber(pfUI_config.unitframes.animation_speed) >= 8 then
|
||||
pfUI_config.unitframes.animation_speed = "8"
|
||||
elseif tonumber(pfUI_config.unitframes.animation_speed) >= 5 then
|
||||
pfUI_config.unitframes.animation_speed = "5"
|
||||
elseif tonumber(pfUI_config.unitframes.animation_speed) >= 3 then
|
||||
pfUI_config.unitframes.animation_speed = "3"
|
||||
elseif tonumber(pfUI_config.unitframes.animation_speed) >= 2 then
|
||||
pfUI_config.unitframes.animation_speed = "2"
|
||||
elseif tonumber(pfUI_config.unitframes.animation_speed) >= 1 then
|
||||
pfUI_config.unitframes.animation_speed = "1"
|
||||
else
|
||||
pfUI_config.unitframes.animation_speed = "5"
|
||||
end
|
||||
end
|
||||
|
||||
-- migrating legacy buff/debuff naming (> 3.5.0)
|
||||
if checkversion(3, 5, 0) then
|
||||
local unitframes = { "player", "target", "focus", "group", "grouptarget", "grouppet", "raid", "ttarget", "pet", "ptarget", "fallback" }
|
||||
@@ -1355,7 +1366,7 @@ function pfUI:MigrateConfig()
|
||||
-- migrate buff indicators into seperate options (> 4.6.2)
|
||||
if checkversion(4, 6, 2) and pfUI_config.unitframes.show_hots then
|
||||
local unitframes = { "player", "target", "focus", "group", "grouptarget", "grouppet", "raid", "ttarget", "pet", "ptarget", "fallback", "tttarget" }
|
||||
local options = { "show_hots", "all_hots", "show_procs", "show_totems", "all_procs", "indicator_time", "indicator_stacks", "indicator_size" }
|
||||
local options = { "show_hots", "all_hots", "show_procs", "show_totems", "all_procs", "indicator_stacks", "indicator_size" }
|
||||
|
||||
for _, unitframe in pairs(unitframes) do
|
||||
for _, option in pairs(options) do
|
||||
@@ -1402,11 +1413,6 @@ function pfUI:MigrateConfig()
|
||||
end
|
||||
end
|
||||
|
||||
-- migrate cooldown font from unit_font to separate setting
|
||||
if checkversion(5, 4, 18) then
|
||||
pfUI_config.appearance.cd.font = pfUI_config.global.font_unit
|
||||
end
|
||||
|
||||
-- migrate combopoint size to separate settings
|
||||
if checkversion(5, 4, 18) then
|
||||
if pfUI_config.unitframes.combosize then
|
||||
@@ -1416,6 +1422,15 @@ function pfUI:MigrateConfig()
|
||||
end
|
||||
end
|
||||
|
||||
-- migrate "Always Use 2D Portraits" to the portrait style; keyed on the old
|
||||
-- setting rather than the version, which dev installs stamp as 999.999.999
|
||||
if pfUI_config.unitframes.always2dportrait then
|
||||
if pfUI_config.unitframes.always2dportrait == "1" then
|
||||
pfUI_config.unitframes.portraitstyle = "2d"
|
||||
end
|
||||
pfUI_config.unitframes.always2dportrait = nil
|
||||
end
|
||||
|
||||
-- Remove "Show only own debuffs" from unitframes and nameplates
|
||||
-- (feature was removed; only Target Debuff Bar in buffwatch keeps it)
|
||||
if pfUI_config.nameplates then
|
||||
|
||||
@@ -0,0 +1,194 @@
|
||||
-- load pfUI environment
|
||||
setfenv(1, pfUI:GetEnvironment())
|
||||
|
||||
-- Every pfUI cooldown is a Cooldown frame from CreateCooldown, made for one
|
||||
-- kind of timer. Settings -> Cooldown (C.cooldown) sets for each kind its
|
||||
-- countdown numbers, its sweep and the sweep's direction, and shares one font
|
||||
-- and one formatter between them all. The numbers are the frame's own
|
||||
-- countdown (ClassicAPI): the engine ticks them, gated by the
|
||||
-- countdownForCooldowns cvar. Other addons' Cooldown frames take the
|
||||
-- "foreign" settings as their timers start.
|
||||
|
||||
-- kinds that time spells or items: no numbers for the global cooldown
|
||||
local spell = { actionbar = true, bags = true, blizzard = true, foreign = true }
|
||||
|
||||
-- every cooldown CreateCooldown made, for UpdateCooldowns
|
||||
local cooldowns = {}
|
||||
|
||||
local function ColorCode(color)
|
||||
local r, g, b = pfUI.api.GetStringColor(color)
|
||||
return pfUI.api.rgbhex(r, g, b)
|
||||
end
|
||||
|
||||
-- The formatter behind every pfUI time: the number in its unit's color,
|
||||
-- rounded up, with a unit (m/h/d) once the unit below passes 99. Cooldown
|
||||
-- frames share it instead of copying it, so new breakpoints reach every
|
||||
-- countdown on its next update.
|
||||
local formatter
|
||||
|
||||
local function UpdateFormatter()
|
||||
local up = Enum.NumericRuleFormatRounding.Up
|
||||
local tenths = C.cooldown.milliseconds == "1"
|
||||
|
||||
formatter:SetBreakpoints({
|
||||
{ threshold = 0, step = tenths and .1 or 1, rounding = up, format = ColorCode(C.cooldown.lowcolor) .. (tenths and "%.1f" or "%d") .. "|r" },
|
||||
{ threshold = 5, step = 1, rounding = up, format = ColorCode(C.cooldown.normalcolor) .. "%d|r" },
|
||||
{ threshold = 99, format = ColorCode(C.cooldown.minutecolor) .. "%d|rm", components = { { div = 60, step = 1, rounding = up } } },
|
||||
{ threshold = 5940, format = ColorCode(C.cooldown.hourcolor) .. "%d|rh", components = { { div = 3600, step = 1, rounding = up } } },
|
||||
{ threshold = 356400, format = ColorCode(C.cooldown.daycolor) .. "%d|rd", components = { { div = 86400, step = 1, rounding = up } } },
|
||||
})
|
||||
end
|
||||
|
||||
local function GetFormatter()
|
||||
if not formatter then
|
||||
formatter = C_StringUtil.CreateNumericRuleFormatter()
|
||||
UpdateFormatter()
|
||||
end
|
||||
return formatter
|
||||
end
|
||||
|
||||
-- [ GetCooldownFontSize ] --
|
||||
-- 'height' [number] the height of the frame the numbers sit on
|
||||
-- return [number] the font size of cooldown numbers on that frame
|
||||
function pfUI.api.GetCooldownFontSize(height)
|
||||
local size = tonumber(C.cooldown.font_size)
|
||||
if C.cooldown.dynamicsize == "1" and height > 0 then
|
||||
size = math.max(height * .64, size)
|
||||
end
|
||||
return size
|
||||
end
|
||||
|
||||
-- sizes the numbers to the cooldown's parent; the size follows its height,
|
||||
-- so a timer start calls this again whenever that height changed
|
||||
local function UpdateFont(cooldown)
|
||||
local height = (cooldown:GetParent() or cooldown):GetHeight()
|
||||
cooldown.pfCountdownHeight = height
|
||||
cooldown:GetCountdownFontString():SetFont(pfUI.media[C.cooldown.font], pfUI.api.GetCooldownFontSize(height), "OUTLINE")
|
||||
end
|
||||
|
||||
-- applies the settings of its kind to one of pfUI's cooldowns
|
||||
local function SetupCooldown(cooldown)
|
||||
local kind = cooldown.pfCooldownKind
|
||||
local config = C.cooldown[kind]
|
||||
local sweep = config.animation == "1" and not cooldown.pfTimeLeftOnly
|
||||
|
||||
cooldown:SetHideCountdownNumbers(config.text ~= "1")
|
||||
cooldown:SetDrawSwipe(sweep)
|
||||
cooldown:SetDrawBling(sweep)
|
||||
cooldown:SetReverse(config.reverse == "1")
|
||||
cooldown:SetMinimumCountdownDuration(spell[kind] and tonumber(C.cooldown.threshold) * 1000 or 0)
|
||||
cooldown:SetCountdownFormatter(GetFormatter())
|
||||
UpdateFont(cooldown)
|
||||
end
|
||||
|
||||
-- applies the "foreign" settings to another addon's cooldown. They only take
|
||||
-- the numbers or the sweep away, which the addon may have set up itself, so
|
||||
-- turning one back on needs a reload.
|
||||
local function SetupForeign(cooldown)
|
||||
local config = C.cooldown.foreign
|
||||
|
||||
if config.animation ~= "1" then
|
||||
cooldown:SetDrawSwipe(false)
|
||||
cooldown:SetDrawBling(false)
|
||||
end
|
||||
|
||||
-- omnicc's flag for cooldowns that want no numbers
|
||||
if config.text ~= "1" or cooldown.noCooldownCount then
|
||||
cooldown:SetHideCountdownNumbers(true)
|
||||
return
|
||||
end
|
||||
|
||||
cooldown:SetMinimumCountdownDuration(tonumber(C.cooldown.threshold) * 1000)
|
||||
cooldown:SetCountdownFormatter(GetFormatter())
|
||||
UpdateFont(cooldown)
|
||||
end
|
||||
|
||||
-- runs as a pfUI cooldown's timer starts: a timer with a total brings back
|
||||
-- the sweep a time-left-only one took away, and the font follows a changed
|
||||
-- height
|
||||
local function StartTimer(cooldown, timeleftOnly)
|
||||
if cooldown.pfTimeLeftOnly ~= timeleftOnly then
|
||||
cooldown.pfTimeLeftOnly = timeleftOnly
|
||||
SetupCooldown(cooldown)
|
||||
elseif cooldown:GetParent():GetHeight() ~= cooldown.pfCountdownHeight then
|
||||
UpdateFont(cooldown)
|
||||
end
|
||||
end
|
||||
|
||||
-- every timer, pfUI's or another addon's, Cooldown frame or 1.12 indicator
|
||||
-- Model, is started through CooldownFrame_SetTimer
|
||||
hooksecurefunc("CooldownFrame_SetTimer", function(cooldown)
|
||||
-- the Models have no numbers and keep the stock timer
|
||||
if not cooldown:IsObjectType("Cooldown") then return end
|
||||
|
||||
if cooldown.pfCooldownKind then
|
||||
StartTimer(cooldown, nil)
|
||||
else
|
||||
SetupForeign(cooldown)
|
||||
end
|
||||
end)
|
||||
|
||||
-- [ CreateCooldown ] --
|
||||
-- Creates one of pfUI's cooldowns: a Cooldown frame over all of 'parent'
|
||||
-- with the settings of its kind. Start it with CooldownFrame_SetTimer.
|
||||
-- 'parent' [frame] the frame the cooldown covers
|
||||
-- 'kind' [string] what it times, a group of C.cooldown: actionbar,
|
||||
-- bags, blizzard, unitframe, indicator, nameplate,
|
||||
-- buff, tooltip, totem or lossofcontrol
|
||||
-- 'name' [string] optional frame name
|
||||
-- return [frame] the Cooldown frame
|
||||
function pfUI.api.CreateCooldown(parent, kind, name)
|
||||
local cooldown = CreateFrame("Cooldown", name, parent, "CooldownFrameTemplate")
|
||||
cooldown.pfCooldownKind = kind
|
||||
table.insert(cooldowns, cooldown)
|
||||
SetupCooldown(cooldown)
|
||||
return cooldown
|
||||
end
|
||||
|
||||
-- [ SetCooldownTimeLeft ] --
|
||||
-- Starts a cooldown from its time left alone, for timers that report no
|
||||
-- total (weapon enchants): the numbers show, the sweep stays off until a
|
||||
-- timer with a total starts.
|
||||
-- 'cooldown' [frame] a cooldown from CreateCooldown
|
||||
-- 'timeleft' [number] the seconds left
|
||||
function pfUI.api.SetCooldownTimeLeft(cooldown, timeleft)
|
||||
StartTimer(cooldown, true)
|
||||
cooldown:SetCooldown(GetTime(), timeleft)
|
||||
end
|
||||
|
||||
-- [ UpdateCooldowns ] --
|
||||
-- Applies changed cooldown settings to every pfUI cooldown.
|
||||
function pfUI.api.UpdateCooldowns()
|
||||
if formatter then UpdateFormatter() end
|
||||
for _, cooldown in ipairs(cooldowns) do
|
||||
SetupCooldown(cooldown)
|
||||
end
|
||||
end
|
||||
|
||||
-- [ GetAuraTimer ] --
|
||||
-- The cooldown start and duration of an aura from C_UnitAuras, 0, 0 when it
|
||||
-- has none. Talent-extended auras run past their Spell.dbc base duration, and
|
||||
-- a start in the future would hold the timer until then, so the start is
|
||||
-- capped to now.
|
||||
-- 'duration' [number] the aura's duration
|
||||
-- 'expirationTime' [number] the aura's expiration time
|
||||
-- return [number] start, duration
|
||||
function pfUI.api.GetAuraTimer(duration, expirationTime)
|
||||
if expirationTime <= 0 then return 0, 0 end
|
||||
|
||||
local now = GetTime()
|
||||
local start, dur = expirationTime - duration, duration
|
||||
if start > now or dur <= 0 then
|
||||
start, dur = now, expirationTime - now
|
||||
end
|
||||
|
||||
if dur <= 0 then return 0, 0 end
|
||||
return start, dur
|
||||
end
|
||||
|
||||
-- [ GetColoredTimeString ] --
|
||||
-- 'remaining' [number] the time in seconds that should be converted
|
||||
-- return [string] the time as cooldown numbers show it
|
||||
function pfUI.api.GetColoredTimeString(remaining)
|
||||
return GetFormatter():FormatNumber(remaining)
|
||||
end
|
||||
+390
-765
File diff suppressed because it is too large
Load Diff
@@ -0,0 +1,153 @@
|
||||
<Ui xmlns="http://www.blizzard.com/wow/ui/">
|
||||
<!--
|
||||
pfUI's scroll bar for ClassicAPI's ScrollBox: a thin track with a flat
|
||||
thumb. ScrollBarMixin needs Back and Forward steppers, so they exist but
|
||||
stay hidden. Hook it up with ScrollUtil.InitScrollBoxListWithScrollBar.
|
||||
-->
|
||||
<EventFrame name="pfUIScrollBarTemplate" inherits="VerticalScrollBarTemplate" virtual="true">
|
||||
<Size x="7"/>
|
||||
<KeyValues>
|
||||
<KeyValue key="hideIfUnscrollable" value="true" type="boolean"/>
|
||||
</KeyValues>
|
||||
<Frames>
|
||||
<Frame parentKey="Track" setAllPoints="true" enableMouse="true">
|
||||
<Frames>
|
||||
<EventButton parentKey="Thumb">
|
||||
<Size x="7"/>
|
||||
<Layers>
|
||||
<Layer level="ARTWORK">
|
||||
<Texture setAllPoints="true">
|
||||
<Color r=".3" g="1" b=".8" a=".5"/>
|
||||
</Texture>
|
||||
</Layer>
|
||||
</Layers>
|
||||
</EventButton>
|
||||
</Frames>
|
||||
</Frame>
|
||||
<EventButton parentKey="Back" hidden="true"/>
|
||||
<EventButton parentKey="Forward" hidden="true"/>
|
||||
</Frames>
|
||||
</EventFrame>
|
||||
|
||||
<!--
|
||||
A ScrollFrame for free-form content, with pfUIScrollBarTemplate inside its
|
||||
right edge. Put the content in frame.Content, which spans the frame: the
|
||||
engine measures the scroll range from the shown frames inside it, so the
|
||||
content needs no height. Changes inside it are not measured until
|
||||
frame:UpdateScrollChildRect().
|
||||
-->
|
||||
<ScrollFrame name="pfUIScrollFrameTemplate" virtual="true">
|
||||
<Frames>
|
||||
<EventFrame parentKey="ScrollBar" inherits="pfUIScrollBarTemplate">
|
||||
<Anchors>
|
||||
<Anchor point="TOPRIGHT"/>
|
||||
<Anchor point="BOTTOMRIGHT"/>
|
||||
</Anchors>
|
||||
</EventFrame>
|
||||
</Frames>
|
||||
<ScrollChild>
|
||||
<Frame parentKey="Content">
|
||||
<Size x="1" y="1"/>
|
||||
</Frame>
|
||||
</ScrollChild>
|
||||
<Scripts>
|
||||
<OnLoad>
|
||||
self.Content:SetAllPoints()
|
||||
self:EnableMouseWheel(true)
|
||||
ScrollUtil.InitScrollFrameWithScrollBar(self, self.ScrollBar)
|
||||
</OnLoad>
|
||||
</Scripts>
|
||||
</ScrollFrame>
|
||||
|
||||
<!--
|
||||
A WowScrollBoxList with pfUIScrollBarTemplate beside it, both 5px inside the
|
||||
frame so CreateBackdrop(frame, nil, true) can frame them. Fill it with
|
||||
ScrollUtil.InitScrollBoxListWithScrollBar(frame.ScrollBox, frame.ScrollBar, view).
|
||||
-->
|
||||
<Frame name="pfUIScrollBoxListTemplate" virtual="true">
|
||||
<Frames>
|
||||
<EventFrame parentKey="ScrollBar" inherits="pfUIScrollBarTemplate">
|
||||
<Anchors>
|
||||
<Anchor point="TOPRIGHT" x="-5" y="-5"/>
|
||||
<Anchor point="BOTTOMRIGHT" x="-5" y="5"/>
|
||||
</Anchors>
|
||||
</EventFrame>
|
||||
<Frame parentKey="ScrollBox" inherits="WowScrollBoxList">
|
||||
<Anchors>
|
||||
<Anchor point="TOPLEFT" x="5" y="-5"/>
|
||||
<Anchor point="BOTTOMRIGHT" relativeKey="$parent.ScrollBar" relativePoint="BOTTOMLEFT"/>
|
||||
</Anchors>
|
||||
</Frame>
|
||||
</Frames>
|
||||
</Frame>
|
||||
|
||||
<!--
|
||||
ClassicAPI's ScrollingEditBoxTemplate with pfUIScrollBarTemplate beside the
|
||||
text. The frame needs a name: SetFont(font, size, flags) names its font
|
||||
object after it.
|
||||
-->
|
||||
<Frame name="pfUIScrollingEditBoxTemplate" inherits="ScrollingEditBoxTemplate" mixin="pfUIScrollingEditBoxMixin" virtual="true">
|
||||
<KeyValues>
|
||||
<KeyValue key="maxLetters" value="0" type="number"/>
|
||||
</KeyValues>
|
||||
<Frames>
|
||||
<EventFrame parentKey="ScrollBar" inherits="pfUIScrollBarTemplate">
|
||||
<Anchors>
|
||||
<Anchor point="TOPRIGHT"/>
|
||||
<Anchor point="BOTTOMRIGHT"/>
|
||||
</Anchors>
|
||||
</EventFrame>
|
||||
</Frames>
|
||||
<Scripts>
|
||||
<OnLoad method="InitScrollBar" inherit="prepend"/>
|
||||
</Scripts>
|
||||
</Frame>
|
||||
|
||||
<!--
|
||||
A ClassicAPI dropdown in pfUI's style: the selection as right-aligned text
|
||||
and pfUI's arrow box at the right. Its menu takes pfUIMenuStyleMixin. Fill it
|
||||
with dropdown:SetupMenu(function(dropdown, rootDescription) ... end), and call
|
||||
dropdown:GenerateMenu() when the data behind the selection changes.
|
||||
-->
|
||||
<DropdownButton name="pfUIDropdownTemplate" mixin="pfUIDropdownMixin" virtual="true">
|
||||
<Size y="20"/>
|
||||
<KeyValues>
|
||||
<KeyValue key="menuMixin" value="pfUIMenuStyleMixin" type="global"/>
|
||||
<KeyValue key="menuPointY" value="-2" type="number"/>
|
||||
</KeyValues>
|
||||
<Frames>
|
||||
<Frame parentKey="Arrow">
|
||||
<Size x="16" y="16"/>
|
||||
<Anchors>
|
||||
<Anchor point="RIGHT" x="-2"/>
|
||||
</Anchors>
|
||||
<Layers>
|
||||
<Layer level="ARTWORK">
|
||||
<Texture parentKey="Icon">
|
||||
<Anchors>
|
||||
<Anchor point="TOPLEFT" x="3" y="-3"/>
|
||||
<Anchor point="BOTTOMRIGHT" x="-3" y="3"/>
|
||||
</Anchors>
|
||||
</Texture>
|
||||
</Layer>
|
||||
</Layers>
|
||||
</Frame>
|
||||
</Frames>
|
||||
<Layers>
|
||||
<Layer level="OVERLAY">
|
||||
<FontString parentKey="Text" inherits="GameFontWhite" wordwrap="false" justifyH="RIGHT">
|
||||
<Anchors>
|
||||
<Anchor point="LEFT" x="2"/>
|
||||
<Anchor point="RIGHT" relativeKey="$parent.Arrow" relativePoint="LEFT" x="-4"/>
|
||||
</Anchors>
|
||||
</FontString>
|
||||
</Layer>
|
||||
</Layers>
|
||||
<Scripts>
|
||||
<OnLoad method="OnLoad"/>
|
||||
<OnShow method="OnShow"/>
|
||||
<OnEnter method="OnEnter"/>
|
||||
<OnLeave method="OnLeave"/>
|
||||
</Scripts>
|
||||
</DropdownButton>
|
||||
</Ui>
|
||||
+508
-347
File diff suppressed because it is too large
Load Diff
Vendored
+677
@@ -0,0 +1,677 @@
|
||||
-- Classic Era GlobalStrings (DE) that the combat log reads
|
||||
-- and the 1.12 client lacks. Generated; do not edit by hand.
|
||||
pfUI_locale["deDE"]["combatlog"] = {
|
||||
ACTION_DAMAGE_SHIELD = "verletzt",
|
||||
ACTION_DAMAGE_SHIELD_FULL_TEXT = "%2$s von %1$s reflektiert %9$s %7$s auf %4$s.%6$s",
|
||||
ACTION_DAMAGE_SHIELD_FULL_TEXT_NO_SOURCE = "%2$s reflektiert %9$s %7$s auf %4$s.%6$s",
|
||||
ACTION_DAMAGE_SHIELD_MISSED = "verfehlt",
|
||||
ACTION_DAMAGE_SHIELD_MISSED_BLOCK = "(Geblockt)",
|
||||
ACTION_DAMAGE_SHIELD_MISSED_BLOCK_FULL_TEXT = "%4$s blockt %2$s von %1$s.%6$s",
|
||||
ACTION_DAMAGE_SHIELD_MISSED_BLOCK_FULL_TEXT_NO_SOURCE = "%4$s blockt %2$s.%6$s",
|
||||
ACTION_DAMAGE_SHIELD_MISSED_BLOCK_POSSESSIVE = "1",
|
||||
ACTION_DAMAGE_SHIELD_MISSED_DEFLECT = "(Abgewehrt)",
|
||||
ACTION_DAMAGE_SHIELD_MISSED_DEFLECT_FULL_TEXT = "%4$s wehrt %2$s von %1$s ab.",
|
||||
ACTION_DAMAGE_SHIELD_MISSED_DEFLECT_FULL_TEXT_NO_SOURCE = "%4$s wehrt %2$s ab.",
|
||||
ACTION_DAMAGE_SHIELD_MISSED_DEFLECT_POSSESSIVE = "1",
|
||||
ACTION_DAMAGE_SHIELD_MISSED_DODGE = "(Ausgewichen)",
|
||||
ACTION_DAMAGE_SHIELD_MISSED_DODGE_FULL_TEXT = "%4$s weicht %2$s von %1$s aus.",
|
||||
ACTION_DAMAGE_SHIELD_MISSED_DODGE_FULL_TEXT_NO_SOURCE = "%4$s weicht %2$s aus.",
|
||||
ACTION_DAMAGE_SHIELD_MISSED_DODGE_POSSESSIVE = "1",
|
||||
ACTION_DAMAGE_SHIELD_MISSED_EVADED = "(Entkommen)",
|
||||
ACTION_DAMAGE_SHIELD_MISSED_EVADED_FULL_TEXT = "%4$s entkommt %2$s von %1$s.",
|
||||
ACTION_DAMAGE_SHIELD_MISSED_EVADED_FULL_TEXT_NO_SOURCE = "%4$s entkommt %2$s.",
|
||||
ACTION_DAMAGE_SHIELD_MISSED_EVADED_POSSESSIVE = "1",
|
||||
ACTION_DAMAGE_SHIELD_MISSED_FULL_TEXT = "%1$s wirkt %2$s auf %4$s an und verfehlt.",
|
||||
ACTION_DAMAGE_SHIELD_MISSED_FULL_TEXT_NO_SOURCE = "%2$s verfehlt %4$s.",
|
||||
ACTION_DAMAGE_SHIELD_MISSED_IMMUNE = "(Immun)",
|
||||
ACTION_DAMAGE_SHIELD_MISSED_IMMUNE_FULL_TEXT = "%2$s von %1$s schlägt fehl. %4$s ist immun.",
|
||||
ACTION_DAMAGE_SHIELD_MISSED_IMMUNE_FULL_TEXT_NO_SOURCE = "%2$s schlägt fehl. %4$s ist immun.",
|
||||
ACTION_DAMAGE_SHIELD_MISSED_IMMUNE_POSSESSIVE = "1",
|
||||
ACTION_DAMAGE_SHIELD_MISSED_MISS = "(Verfehlt)",
|
||||
ACTION_DAMAGE_SHIELD_MISSED_MISS_FULL_TEXT = "%1$s wirkt %2$s auf %4$s und verfehlt.",
|
||||
ACTION_DAMAGE_SHIELD_MISSED_MISS_FULL_TEXT_NO_SOURCE = "%2$s verfehlt %4$s.",
|
||||
ACTION_DAMAGE_SHIELD_MISSED_MISS_POSSESSIVE = "1",
|
||||
ACTION_DAMAGE_SHIELD_MISSED_PARRY = "(Pariert)",
|
||||
ACTION_DAMAGE_SHIELD_MISSED_PARRY_FULL_TEXT = "%1$s pariert %2$s von %4$s.",
|
||||
ACTION_DAMAGE_SHIELD_MISSED_PARRY_FULL_TEXT_NO_SOURCE = "%4$s pariert %2$s.",
|
||||
ACTION_DAMAGE_SHIELD_MISSED_PARRY_POSSESSIVE = "1",
|
||||
ACTION_DAMAGE_SHIELD_MISSED_POSSESSIVE = "1",
|
||||
ACTION_DAMAGE_SHIELD_MISSED_RESIST = "(Widerstanden)",
|
||||
ACTION_DAMAGE_SHIELD_MISSED_RESIST_FULL_TEXT = "%4$s widersteht %2$s von %1$s vollständig.%6$s",
|
||||
ACTION_DAMAGE_SHIELD_MISSED_RESIST_FULL_TEXT_NO_SOURCE = "%4$s widersteht %2$s vollständig.%6$s",
|
||||
ACTION_DAMAGE_SHIELD_MISSED_RESIST_POSSESSIVE = "1",
|
||||
ACTION_DAMAGE_SHIELD_POSSESSIVE = "1",
|
||||
ACTION_DAMAGE_SPLIT = "teilt Schaden",
|
||||
ACTION_DAMAGE_SPLIT_ABSORBED_FULL_TEXT = "%2$s von %1$s wurde durch %6$s von %4$s absorbiert.",
|
||||
ACTION_DAMAGE_SPLIT_FULL_TEXT = "%2$s von %1$s verursacht bei %4$s %9$s.",
|
||||
ACTION_DAMAGE_SPLIT_POSSESSIVE = "0",
|
||||
ACTION_DAMAGE_SPLIT_RESULT_FULL_TEXT = "%2$s von %1$s fügt %6$s von %4$s %9$s Schaden zu.",
|
||||
ACTION_ENCHANT_APPLIED = "verzaubert",
|
||||
ACTION_ENCHANT_APPLIED_FULL_TEXT = "%1$s wirkt %2$s auf %5$s von %4$s.",
|
||||
ACTION_ENCHANT_APPLIED_POSSESSIVE = "0",
|
||||
ACTION_ENCHANT_REMOVED = "Verzauberung schwindet",
|
||||
ACTION_ENCHANT_REMOVED_FULL_TEXT = "%2$s auf %5$s von %4$s schwindet.",
|
||||
ACTION_ENCHANT_REMOVED_POSSESSIVE = "0",
|
||||
ACTION_ENVIRONMENTAL_DAMAGE = "verletzt",
|
||||
ACTION_ENVIRONMENTAL_DAMAGE_DROWNING = "Ertrinken",
|
||||
ACTION_ENVIRONMENTAL_DAMAGE_DROWNING_FULL_TEXT = "%4$s ertrinkt und verliert %9$s Gesundheit.",
|
||||
ACTION_ENVIRONMENTAL_DAMAGE_DROWNING_POSSESSIVE = "0",
|
||||
ACTION_ENVIRONMENTAL_DAMAGE_FALLING = "Sturz",
|
||||
ACTION_ENVIRONMENTAL_DAMAGE_FALLING_FULL_TEXT = "%4$s stürzt und verliert %9$s Gesundheit.",
|
||||
ACTION_ENVIRONMENTAL_DAMAGE_FALLING_POSSESSIVE = "0",
|
||||
ACTION_ENVIRONMENTAL_DAMAGE_FATIGUE = "Erschöpfung",
|
||||
ACTION_ENVIRONMENTAL_DAMAGE_FATIGUE_FULL_TEXT = "%4$s ist erschöpft und verliert %9$s Gesundheit.",
|
||||
ACTION_ENVIRONMENTAL_DAMAGE_FATIGUE_POSSESSIVE = "0",
|
||||
ACTION_ENVIRONMENTAL_DAMAGE_FIRE = "Feuer",
|
||||
ACTION_ENVIRONMENTAL_DAMAGE_FIRE_FULL_TEXT = "%4$s erleidet %9$s Feuerschaden.",
|
||||
ACTION_ENVIRONMENTAL_DAMAGE_FIRE_POSSESSIVE = "0",
|
||||
ACTION_ENVIRONMENTAL_DAMAGE_FULL_TEXT = "%4$s verliert durch Umgebungsschaden %9$s Gesundheit.",
|
||||
ACTION_ENVIRONMENTAL_DAMAGE_LAVA = "Lava",
|
||||
ACTION_ENVIRONMENTAL_DAMAGE_LAVA_FULL_TEXT = "%4$s verliert durch das Schwimmen in Lava %9$s Gesundheit. %6$s",
|
||||
ACTION_ENVIRONMENTAL_DAMAGE_LAVA_POSSESSIVE = "0",
|
||||
ACTION_ENVIRONMENTAL_DAMAGE_POSSESSIVE = "0",
|
||||
ACTION_ENVIRONMENTAL_DAMAGE_SLIME = "Schleim",
|
||||
ACTION_ENVIRONMENTAL_DAMAGE_SLIME_FULL_TEXT = "%4$s verliert durch das Schwimmen in Schleim %9$s Gesundheit. %6$s",
|
||||
ACTION_ENVIRONMENTAL_DAMAGE_SLIME_POSSESSIVE = "0",
|
||||
ACTION_PARTY_KILL = "besiegt",
|
||||
ACTION_PARTY_KILL_FULL_TEXT = "%1$s besiegt %4$s!",
|
||||
ACTION_PARTY_KILL_POSSESSIVE = "0",
|
||||
ACTION_PARTY_KILL_UNCONSCIOUS = "umgehauen",
|
||||
ACTION_PARTY_KILL_UNCONSCIOUS_FULL_TEXT = "%1$s hat %4$s umgehauen!",
|
||||
ACTION_PARTY_KILL_UNCONSCIOUS_POSSESSIVE = "0",
|
||||
ACTION_RANGED = "Schuss",
|
||||
ACTION_RANGE_DAMAGE = "trifft",
|
||||
ACTION_RANGE_DAMAGE_FULL_TEXT = "%1$s schießt auf %4$s, verursacht %5$s.%6$s",
|
||||
ACTION_RANGE_DAMAGE_FULL_TEXT_NO_SOURCE = "Ein Distanzangriff trifft %4$s, verursacht %5$s.%6$s",
|
||||
ACTION_RANGE_DAMAGE_POSSESSIVE = "1",
|
||||
ACTION_RANGE_MISSED = "verfehlt",
|
||||
ACTION_RANGE_MISSED_ABSORB = "(Absorbiert)",
|
||||
ACTION_RANGE_MISSED_ABSORB_FULL_TEXT = "%4$s absorbiert den Schuss von %1$s.%6$s",
|
||||
ACTION_RANGE_MISSED_ABSORB_POSSESSIVE = "1",
|
||||
ACTION_RANGE_MISSED_BLOCK = "(Geblockt)",
|
||||
ACTION_RANGE_MISSED_BLOCK_FULL_TEXT = "%4$s blockt den Schuss von %1$s.%6$s",
|
||||
ACTION_RANGE_MISSED_BLOCK_POSSESSIVE = "1",
|
||||
ACTION_RANGE_MISSED_DEFLECT = "(Abgewehrt)",
|
||||
ACTION_RANGE_MISSED_DEFLECT_FULL_TEXT = "%4$s wehrt den Schuss von %1$s ab.",
|
||||
ACTION_RANGE_MISSED_DEFLECT_POSSESSIVE = "1",
|
||||
ACTION_RANGE_MISSED_DODGE = "(Ausgewichen)",
|
||||
ACTION_RANGE_MISSED_DODGE_FULL_TEXT = "%4$s weicht dem Schuss von %1$s aus.",
|
||||
ACTION_RANGE_MISSED_DODGE_POSSESSIVE = "1",
|
||||
ACTION_RANGE_MISSED_EVADE = "(Entkommen)",
|
||||
ACTION_RANGE_MISSED_EVADE_FULL_TEXT = "%4$s entkommt dem Schuss von %1$s.",
|
||||
ACTION_RANGE_MISSED_EVADE_POSSESSIVE = "1",
|
||||
ACTION_RANGE_MISSED_FULL_TEXT = "%1$s schießt auf %4$s und verfehlt.",
|
||||
ACTION_RANGE_MISSED_IMMUNE = "(Immun)",
|
||||
ACTION_RANGE_MISSED_IMMUNE_FULL_TEXT = "Der Schuss von %1$s schlägt fehl. %4$s ist immun.",
|
||||
ACTION_RANGE_MISSED_IMMUNE_POSSESSIVE = "1",
|
||||
ACTION_RANGE_MISSED_MISFIRE = "(Verfehlt)",
|
||||
ACTION_RANGE_MISSED_MISFIRE_FULL_TEXT = "%1$s schießt auf %4$s und verfehlt.",
|
||||
ACTION_RANGE_MISSED_MISFIRE_POSSESSIVE = "1",
|
||||
ACTION_RANGE_MISSED_MISS = "(Verfehlt)",
|
||||
ACTION_RANGE_MISSED_MISS_FULL_TEXT = "%1$s schießt auf %4$s und verfehlt.",
|
||||
ACTION_RANGE_MISSED_MISS_POSSESSIVE = "1",
|
||||
ACTION_RANGE_MISSED_PARRY = "(Pariert)",
|
||||
ACTION_RANGE_MISSED_PARRY_FULL_TEXT = "%4$s pariert den Schuss von %1$s.",
|
||||
ACTION_RANGE_MISSED_PARRY_POSSESSIVE = "1",
|
||||
ACTION_RANGE_MISSED_POSSESSIVE = "1",
|
||||
ACTION_RANGE_MISSED_RESIST = "(Widerstanden)",
|
||||
ACTION_RANGE_MISSED_RESIST_FULL_TEXT = "%4$s widersteht dem Schuss von %1$s vollständig.%6$s",
|
||||
ACTION_RANGE_MISSED_RESIST_POSSESSIVE = "1",
|
||||
ACTION_SPELL_AURA_APPLIED = "wirkt",
|
||||
ACTION_SPELL_AURA_APPLIED_BUFF = "wirkt",
|
||||
ACTION_SPELL_AURA_APPLIED_BUFF_FULL_TEXT = "%4$s gewinnt %1$s %2$s.",
|
||||
ACTION_SPELL_AURA_APPLIED_BUFF_FULL_TEXT_NO_SOURCE = "%4$s gewinnt %2$s.",
|
||||
ACTION_SPELL_AURA_APPLIED_BUFF_MASTER = "2",
|
||||
ACTION_SPELL_AURA_APPLIED_BUFF_POSSESSIVE = "1",
|
||||
ACTION_SPELL_AURA_APPLIED_BUFF_WITH_POINTS_FULL_TEXT = "%4$s gewinnt %1$s %2$s. %11$s",
|
||||
ACTION_SPELL_AURA_APPLIED_BUFF_WITH_POINTS_FULL_TEXT_NO_SOURCE = "%4$s gewinnt %2$s. %11$s",
|
||||
ACTION_SPELL_AURA_APPLIED_DEBUFF = "beeinträchtigt",
|
||||
ACTION_SPELL_AURA_APPLIED_DEBUFF_FULL_TEXT = "%4$s wird durch %2$s von %1$s beeinträchtigt.",
|
||||
ACTION_SPELL_AURA_APPLIED_DEBUFF_FULL_TEXT_NO_SOURCE = "%4$s wird von %2$s beeinträchtigt.",
|
||||
ACTION_SPELL_AURA_APPLIED_DEBUFF_MASTER = "1",
|
||||
ACTION_SPELL_AURA_APPLIED_DEBUFF_POSSESSIVE = "1",
|
||||
ACTION_SPELL_AURA_APPLIED_DEBUFF_WITH_POINTS_FULL_TEXT = "%4$s wird durch %2$s von %1$s beeinträchtigt. %11$s",
|
||||
ACTION_SPELL_AURA_APPLIED_DEBUFF_WITH_POINTS_FULL_TEXT_NO_SOURCE = "%4$s wird von %2$s beeinträchtigt. %11$s",
|
||||
ACTION_SPELL_AURA_APPLIED_DOSE = "Stapel",
|
||||
ACTION_SPELL_AURA_APPLIED_DOSE_BUFF = "Stapel",
|
||||
ACTION_SPELL_AURA_APPLIED_DOSE_BUFF_FULL_TEXT = "%4$s gewinnt %1$s %2$s (%9$s).",
|
||||
ACTION_SPELL_AURA_APPLIED_DOSE_BUFF_FULL_TEXT_NO_SOURCE = "%4$s erhält %2$s (%9$s).",
|
||||
ACTION_SPELL_AURA_APPLIED_DOSE_BUFF_POSSESSIVE = "1",
|
||||
ACTION_SPELL_AURA_APPLIED_DOSE_DEBUFF = "peinigt",
|
||||
ACTION_SPELL_AURA_APPLIED_DOSE_DEBUFF_FULL_TEXT = "%4$s wird durch %2$s von %1$s beeinträchtigt. (%9$s)",
|
||||
ACTION_SPELL_AURA_APPLIED_DOSE_DEBUFF_FULL_TEXT_NO_SOURCE = "%4$s wird von %2$s beeinträchtigt (%9$s).",
|
||||
ACTION_SPELL_AURA_APPLIED_DOSE_DEBUFF_POSSESSIVE = "1",
|
||||
ACTION_SPELL_AURA_APPLIED_MASTER = "2",
|
||||
ACTION_SPELL_AURA_APPLIED_POSSESSIVE = "1",
|
||||
ACTION_SPELL_AURA_BROKEN = "bricht",
|
||||
ACTION_SPELL_AURA_BROKEN_BUFF = "bricht",
|
||||
ACTION_SPELL_AURA_BROKEN_BUFF_FULL_TEXT = "%2$s von %4$s wird durch %1$s gebrochen.",
|
||||
ACTION_SPELL_AURA_BROKEN_BUFF_FULL_TEXT_NO_SOURCE = "%2$s von %1$s wird durch jemanden gebrochen.",
|
||||
ACTION_SPELL_AURA_BROKEN_BUFF_POSSESSIVE = "0",
|
||||
ACTION_SPELL_AURA_BROKEN_DEBUFF = "bricht",
|
||||
ACTION_SPELL_AURA_BROKEN_DEBUFF_FULL_TEXT = "%2$s von %4$s wird durch %1$s gebrochen.",
|
||||
ACTION_SPELL_AURA_BROKEN_DEBUFF_FULL_TEXT_NO_SOURCE = "%2$s von %1$s wurde durch jemanden gebrochen.",
|
||||
ACTION_SPELL_AURA_BROKEN_DEBUFF_POSSESSIVE = "0",
|
||||
ACTION_SPELL_AURA_BROKEN_SPELL_BUFF = "bricht",
|
||||
ACTION_SPELL_AURA_BROKEN_SPELL_BUFF_FULL_TEXT = "%1$s bricht %2$s von %4$s durch %5$s.",
|
||||
ACTION_SPELL_AURA_BROKEN_SPELL_BUFF_FULL_TEXT_NO_SOURCE = "%5$s bricht %2$s von %4$s.",
|
||||
ACTION_SPELL_AURA_BROKEN_SPELL_BUFF_POSSESSIVE = "1",
|
||||
ACTION_SPELL_AURA_BROKEN_SPELL_DEBUFF = "bricht",
|
||||
ACTION_SPELL_AURA_BROKEN_SPELL_DEBUFF_FULL_TEXT = "%1$s bricht %2$s von %4$s durch %5$s.",
|
||||
ACTION_SPELL_AURA_BROKEN_SPELL_DEBUFF_FULL_TEXT_NO_SOURCE = "%5$s bricht %2$s von %4$s.",
|
||||
ACTION_SPELL_AURA_BROKEN_SPELL_DEBUFF_POSSESSIVE = "1",
|
||||
ACTION_SPELL_AURA_REFRESH = "aufgefrischt",
|
||||
ACTION_SPELL_AURA_REFRESH_BUFF = "aufgefrischt",
|
||||
ACTION_SPELL_AURA_REFRESH_BUFF_FULL_TEXT = "Das auf %4$s wirkende %2$s von %1$s wird aufgefrischt.",
|
||||
ACTION_SPELL_AURA_REFRESH_BUFF_FULL_TEXT_NO_SOURCE = "Das auf %4$s wirkende %2$s wird aufgefrischt.",
|
||||
ACTION_SPELL_AURA_REFRESH_BUFF_MASTER = "2",
|
||||
ACTION_SPELL_AURA_REFRESH_BUFF_POSSESSIVE = "1",
|
||||
ACTION_SPELL_AURA_REFRESH_BUFF_WITH_POINTS_FULL_TEXT = "Das auf %4$s wirkende %2$s von %1$s wird aufgefrischt. %11$s",
|
||||
ACTION_SPELL_AURA_REFRESH_BUFF_WITH_POINTS_FULL_TEXT_NO_SOURCE = "Das auf %4$s wirkende %2$s wird aufgefrischt. %11$s",
|
||||
ACTION_SPELL_AURA_REFRESH_DEBUFF = "aufgefrischt",
|
||||
ACTION_SPELL_AURA_REFRESH_DEBUFF_FULL_TEXT = "Das auf %4$s wirkende %2$s von %1$s wird aufgefrischt.",
|
||||
ACTION_SPELL_AURA_REFRESH_DEBUFF_FULL_TEXT_NO_SOURCE = "Das auf %4$s wirkende %2$s wird aufgefrischt.",
|
||||
ACTION_SPELL_AURA_REFRESH_DEBUFF_MASTER = "1",
|
||||
ACTION_SPELL_AURA_REFRESH_DEBUFF_POSSESSIVE = "1",
|
||||
ACTION_SPELL_AURA_REFRESH_DEBUFF_WITH_POINTS_FULL_TEXT = "Das auf %4$s wirkende %2$s von %1$s wird aufgefrischt. %11$s",
|
||||
ACTION_SPELL_AURA_REFRESH_DEBUFF_WITH_POINTS_FULL_TEXT_NO_SOURCE = "Das auf %4$s wirkende %2$s wird aufgefrischt. %11$s",
|
||||
ACTION_SPELL_AURA_REFRESH_MASTER = "2",
|
||||
ACTION_SPELL_AURA_REMOVED = "entfernt",
|
||||
ACTION_SPELL_AURA_REMOVED_BUFF = "schwindet",
|
||||
ACTION_SPELL_AURA_REMOVED_BUFF_FULL_TEXT = "Das auf %4$s wirkende %2$s von %1$s schwindet.",
|
||||
ACTION_SPELL_AURA_REMOVED_BUFF_FULL_TEXT_NO_SOURCE = "Das auf %4$s wirkende %2$s schwindet.",
|
||||
ACTION_SPELL_AURA_REMOVED_BUFF_POSSESSIVE = "1",
|
||||
ACTION_SPELL_AURA_REMOVED_BUFF_WITH_POINTS_FULL_TEXT = "Das auf %4$s wirkende %2$s von %1$s schwindet. %11$s",
|
||||
ACTION_SPELL_AURA_REMOVED_BUFF_WITH_POINTS_FULL_TEXT_NO_SOURCE = "Das auf %4$s wirkende %2$s schwindet. %11$s",
|
||||
ACTION_SPELL_AURA_REMOVED_DEBUFF = "erlischt",
|
||||
ACTION_SPELL_AURA_REMOVED_DEBUFF_FULL_TEXT = "Das auf %4$s wirkende %2$s von %1$s erlischt.",
|
||||
ACTION_SPELL_AURA_REMOVED_DEBUFF_FULL_TEXT_NO_SOURCE = "Das auf %4$s wirkende %2$s erlischt.",
|
||||
ACTION_SPELL_AURA_REMOVED_DEBUFF_POSSESSIVE = "1",
|
||||
ACTION_SPELL_AURA_REMOVED_DEBUFF_WITH_POINTS_FULL_TEXT = "Das auf %4$s wirkende %2$s von %1$s erlischt. %11$s",
|
||||
ACTION_SPELL_AURA_REMOVED_DEBUFF_WITH_POINTS_FULL_TEXT_NO_SOURCE = "Das auf %4$s wirkende %2$s erlischt. %11$s",
|
||||
ACTION_SPELL_AURA_REMOVED_DOSE = "verringert",
|
||||
ACTION_SPELL_AURA_REMOVED_DOSE_BUFF = "verringert",
|
||||
ACTION_SPELL_AURA_REMOVED_DOSE_BUFF_FULL_TEXT = "%2$s von %1$s lässt nach. (%9$s)",
|
||||
ACTION_SPELL_AURA_REMOVED_DOSE_BUFF_FULL_TEXT_NO_SOURCE = "%2$s (%9$s) lässt nach.",
|
||||
ACTION_SPELL_AURA_REMOVED_DOSE_BUFF_POSSESSIVE = "1",
|
||||
ACTION_SPELL_AURA_REMOVED_DOSE_DEBUFF = "lässt nach",
|
||||
ACTION_SPELL_AURA_REMOVED_DOSE_DEBUFF_FULL_TEXT = "%2$s von %1$s nimmt ab. (%9$s)",
|
||||
ACTION_SPELL_AURA_REMOVED_DOSE_DEBUFF_FULL_TEXT_NO_SOURCE = "%2$s (%9$s) nimmt ab.",
|
||||
ACTION_SPELL_AURA_REMOVED_DOSE_DEBUFF_POSSESSIVE = "1",
|
||||
ACTION_SPELL_AURA_REMOVED_FULL_TEXT = "Das auf %4$s wirkende %2$s von %1$s wird entfernt.",
|
||||
ACTION_SPELL_AURA_REMOVED_FULL_TEXT_NO_SOURCE = "Das auf %4$s wirkende %2$s von %1$s wird entfernt.",
|
||||
ACTION_SPELL_AURA_REMOVED_POSSESSIVE = "1",
|
||||
ACTION_SPELL_BUILDING_DAMAGE = "trifft",
|
||||
ACTION_SPELL_BUILDING_DAMAGE_FULL_TEXT = "%2$s von %1$s trifft %4$s für %5$s.%6$s",
|
||||
ACTION_SPELL_BUILDING_DAMAGE_FULL_TEXT_NO_SOURCE = "%2$s trifft %4$s für %5$s.%6$s",
|
||||
ACTION_SPELL_BUILDING_DAMAGE_MASTER = "1",
|
||||
ACTION_SPELL_BUILDING_DAMAGE_POSSESSIVE = "1",
|
||||
ACTION_SPELL_BUILDING_HEAL = "repariert",
|
||||
ACTION_SPELL_BUILDING_HEAL_FULL_TEXT = "%2$s von %1$s repariert %4$s für %9$s.%6$s",
|
||||
ACTION_SPELL_BUILDING_HEAL_FULL_TEXT_NO_SOURCE = "%2$s repariert %4$s für %9$s.%6$s",
|
||||
ACTION_SPELL_BUILDING_HEAL_POSSESSIVE = "1",
|
||||
ACTION_SPELL_CAST_FAILED = "schlägt fehl",
|
||||
ACTION_SPELL_CAST_FAILED_FULL_TEXT = "%1$s kann %2$s nicht wirken.%6$s",
|
||||
ACTION_SPELL_CAST_FAILED_MASTER = "1",
|
||||
ACTION_SPELL_CAST_FAILED_POSSESSIVE = "1",
|
||||
ACTION_SPELL_CAST_START = "initiiert",
|
||||
ACTION_SPELL_CAST_START_FULL_TEXT = "%1$s beginnt, %2$s auf %4$s zu wirken.",
|
||||
ACTION_SPELL_CAST_START_FULL_TEXT_NO_DEST = "%1$s beginnt, %2$s zu wirken.",
|
||||
ACTION_SPELL_CAST_START_FULL_TEXT_NO_SOURCE = "Etwas beginnt, %2$s auf %4$s zu wirken.",
|
||||
ACTION_SPELL_CAST_START_MASTER = "2",
|
||||
ACTION_SPELL_CAST_START_POSSESSIVE = "0",
|
||||
ACTION_SPELL_CAST_SUCCESS = "wirkt",
|
||||
ACTION_SPELL_CAST_SUCCESS_FULL_TEXT = "%1$s wirkt %2$s auf %4$s.",
|
||||
ACTION_SPELL_CAST_SUCCESS_FULL_TEXT_NO_DEST = "%1$s wirkt %2$s.",
|
||||
ACTION_SPELL_CAST_SUCCESS_FULL_TEXT_NO_SOURCE = "Etwas wirkt %2$s auf %4$s.",
|
||||
ACTION_SPELL_CAST_SUCCESS_MASTER = "2",
|
||||
ACTION_SPELL_CAST_SUCCESS_POSSESSIVE = "0",
|
||||
ACTION_SPELL_CREATE = "erschafft",
|
||||
ACTION_SPELL_CREATE_FULL_TEXT = "%4$s wird von %1$s durch %2$s erschaffen.%6$s",
|
||||
ACTION_SPELL_CREATE_FULL_TEXT_NO_SOURCE = "%4$s wird durch %2$s erschaffen.%6$s",
|
||||
ACTION_SPELL_CREATE_POSSESSIVE = "1",
|
||||
ACTION_SPELL_DAMAGE = "trifft",
|
||||
ACTION_SPELL_DAMAGE_FULL_TEXT = "%1$s trifft %4$s mit %2$s für %5$s.%6$s",
|
||||
ACTION_SPELL_DAMAGE_FULL_TEXT_NO_SOURCE = "%2$s trifft %4$s für %5$s.%6$s",
|
||||
ACTION_SPELL_DAMAGE_MASTER = "1",
|
||||
ACTION_SPELL_DAMAGE_POSSESSIVE = "1",
|
||||
ACTION_SPELL_DISPEL = "bannt",
|
||||
ACTION_SPELL_DISPEL_BUFF = "bannt",
|
||||
ACTION_SPELL_DISPEL_BUFF_FULL_TEXT = "%5$s auf %4$s wird von %1$s durch %2$s gebannt.",
|
||||
ACTION_SPELL_DISPEL_BUFF_FULL_TEXT_NO_SOURCE = "%5$s auf %4$s wird durch %2$s gebannt.",
|
||||
ACTION_SPELL_DISPEL_BUFF_POSSESSIVE = "1",
|
||||
ACTION_SPELL_DISPEL_DEBUFF = "läutert",
|
||||
ACTION_SPELL_DISPEL_DEBUFF_FULL_TEXT = "%5$s auf %4$s wird von %1$s durch %2$s geläutert.",
|
||||
ACTION_SPELL_DISPEL_DEBUFF_FULL_TEXT_NO_SOURCE = "%5$s auf %4$s wird durch %2$s geläutert.",
|
||||
ACTION_SPELL_DISPEL_DEBUFF_POSSESSIVE = "1",
|
||||
ACTION_SPELL_DISPEL_FAILED = "Magiebannung schlägt fehl",
|
||||
ACTION_SPELL_DISPEL_FAILED_FULL_TEXT = "%2$s von %1$s kann %5$s auf %4$s nicht bannen.",
|
||||
ACTION_SPELL_DISPEL_FAILED_FULL_TEXT_NO_SOURCE = "%2$s kann %5$s auf %4$s nicht bannen.",
|
||||
ACTION_SPELL_DISPEL_FAILED_POSSESSIVE = "1",
|
||||
ACTION_SPELL_DISPEL_POSSESSIVE = "1",
|
||||
ACTION_SPELL_DRAIN = "entzieht",
|
||||
ACTION_SPELL_DRAIN_FULL_TEXT = "%1$s entzieht von %4$s durch %2$s %9$s %8$s.",
|
||||
ACTION_SPELL_DRAIN_FULL_TEXT_NO_SOURCE = " %2$s entzieht von %4$s %9$s %8$s.",
|
||||
ACTION_SPELL_DRAIN_POSSESSIVE = "1",
|
||||
ACTION_SPELL_DURABILITY_DAMAGE = "Haltbarkeitsverlust",
|
||||
ACTION_SPELL_DURABILITY_DAMAGE_ALL = "kompletter Haltbarkeitsverlust",
|
||||
ACTION_SPELL_DURABILITY_DAMAGE_ALL_FULL_TEXT = "%2$s von %1$s trifft %4$s: Alle Gegenstände beschädigt.",
|
||||
ACTION_SPELL_DURABILITY_DAMAGE_ALL_POSSESSIVE = "1",
|
||||
ACTION_SPELL_DURABILITY_DAMAGE_FULL_TEXT = "%2$s von %1$s trifft %4$s: %5$s beschädigt.",
|
||||
ACTION_SPELL_DURABILITY_DAMAGE_POSSESSIVE = "1",
|
||||
ACTION_SPELL_ENERGIZE = "aufgeladen",
|
||||
ACTION_SPELL_ENERGIZE_FULL_TEXT = "%4$s gewinnt durch %2$s von %1$s %9$s %8$s.",
|
||||
ACTION_SPELL_ENERGIZE_FULL_TEXT_NO_SOURCE = "%4$s gewinnt durch %2$s %9$s %8$s.",
|
||||
ACTION_SPELL_ENERGIZE_POSSESSIVE = "1",
|
||||
ACTION_SPELL_ENERGIZE_RESULT = "%9$s %8$s gewonnen.",
|
||||
ACTION_SPELL_EXTRA_ATTACKS = "gewährt zusätzliche Angriffe",
|
||||
ACTION_SPELL_EXTRA_ATTACKS_FULL_TEXT = "%1$s werden durch %2$s %9$s zusätzliche Angriffe gewährt.",
|
||||
ACTION_SPELL_EXTRA_ATTACKS_FULL_TEXT_NO_SOURCE = "%2$s gewährt %9$s zusätzliche Angriffe.",
|
||||
ACTION_SPELL_EXTRA_ATTACKS_POSSESSIVE = "1",
|
||||
ACTION_SPELL_HEAL = "heilt",
|
||||
ACTION_SPELL_HEAL_FULL_TEXT = "%2$s von %1$s heilt %4$s um %9$s.%6$s",
|
||||
ACTION_SPELL_HEAL_FULL_TEXT_NO_SOURCE = "%2$s heilt %4$s um %9$s.%6$s",
|
||||
ACTION_SPELL_HEAL_POSSESSIVE = "1",
|
||||
ACTION_SPELL_INSTAKILL = "besiegt",
|
||||
ACTION_SPELL_INSTAKILL_FULL_TEXT = "%1$s besiegt %4$s durch %2$s sofort.",
|
||||
ACTION_SPELL_INSTAKILL_FULL_TEXT_NO_SOURCE = "%2$s besiegt %4$s sofort.",
|
||||
ACTION_SPELL_INSTAKILL_POSSESSIVE = "1",
|
||||
ACTION_SPELL_INSTAKILL_UNCONSCIOUS = "umgehauen",
|
||||
ACTION_SPELL_INSTAKILL_UNCONSCIOUS_FULL_TEXT = "%1$s %2$s haut %4$s um.",
|
||||
ACTION_SPELL_INSTAKILL_UNCONSCIOUS_FULL_TEXT_NO_SOURCE = "%2$s haut %4$s um.",
|
||||
ACTION_SPELL_INSTAKILL_UNCONSCIOUS_POSSESSIVE = "1",
|
||||
ACTION_SPELL_INTERRUPT = "unterbricht",
|
||||
ACTION_SPELL_INTERRUPT_FULL_TEXT = "%1$s unterbricht %4$s durch %2$s beim Wirken von %5$s.",
|
||||
ACTION_SPELL_INTERRUPT_FULL_TEXT_NO_SOURCE = "%2$s unterbricht %4$s beim Wirken von %5$s.",
|
||||
ACTION_SPELL_INTERRUPT_POSSESSIVE = "1",
|
||||
ACTION_SPELL_LEECH = "entzieht",
|
||||
ACTION_SPELL_LEECH_FULL_TEXT = "%1$s entzieht durch %2$s %9$s %8$s von %4$s. %1$s gewinnt %10$s %8$s.",
|
||||
ACTION_SPELL_LEECH_FULL_TEXT_NO_SOURCE = "%2$s entzieht %4$s %9$s %8$s.",
|
||||
ACTION_SPELL_LEECH_POSSESSIVE = "1",
|
||||
ACTION_SPELL_LEECH_RESULT = "%10$s %8$s gewonnen",
|
||||
ACTION_SPELL_MISSED = "verfehlt",
|
||||
ACTION_SPELL_MISSED_ABSORB = "Absorbiert",
|
||||
ACTION_SPELL_MISSED_ABSORB_FULL_TEXT = "%4$s absorbiert %2$s von %1$s.%6$s",
|
||||
ACTION_SPELL_MISSED_ABSORB_FULL_TEXT_NO_SOURCE = "%4$s absorbiert %2$s.%6$s",
|
||||
ACTION_SPELL_MISSED_ABSORB_POSSESSIVE = "1",
|
||||
ACTION_SPELL_MISSED_BLOCK = "Geblockt",
|
||||
ACTION_SPELL_MISSED_BLOCK_FULL_TEXT = "%4$s blockt %2$s von %1$s.%6$s",
|
||||
ACTION_SPELL_MISSED_BLOCK_FULL_TEXT_NO_SOURCE = "%4$s blockt %2$s.%6$s",
|
||||
ACTION_SPELL_MISSED_BLOCK_POSSESSIVE = "1",
|
||||
ACTION_SPELL_MISSED_DEFLECT = "Abgewehrt",
|
||||
ACTION_SPELL_MISSED_DEFLECT_FULL_TEXT = "%4$s wehrt %2$s von %1$s ab.",
|
||||
ACTION_SPELL_MISSED_DEFLECT_FULL_TEXT_NO_SOURCE = "%4$s wehrt %2$s ab.",
|
||||
ACTION_SPELL_MISSED_DEFLECT_POSSESSIVE = "1",
|
||||
ACTION_SPELL_MISSED_DODGE = "Ausgewichen",
|
||||
ACTION_SPELL_MISSED_DODGE_FULL_TEXT = "%4$s weicht %2$s von %1$s aus.",
|
||||
ACTION_SPELL_MISSED_DODGE_FULL_TEXT_NO_SOURCE = "%4$s weicht %2$s aus.",
|
||||
ACTION_SPELL_MISSED_DODGE_POSSESSIVE = "1",
|
||||
ACTION_SPELL_MISSED_EVADE = "Entkommen",
|
||||
ACTION_SPELL_MISSED_EVADE_FULL_TEXT = "%4$s entkommt %2$s von %1$s.",
|
||||
ACTION_SPELL_MISSED_EVADE_FULL_TEXT_NO_SOURCE = "%4$s entkommt %2$s.",
|
||||
ACTION_SPELL_MISSED_EVADE_POSSESSIVE = "1",
|
||||
ACTION_SPELL_MISSED_FULL_TEXT = "%1$s wirkt %2$s auf %4$s und verfehlt.",
|
||||
ACTION_SPELL_MISSED_FULL_TEXT_NO_SOURCE = "%2$s verfehlt %4$s.",
|
||||
ACTION_SPELL_MISSED_IMMUNE = "Immun",
|
||||
ACTION_SPELL_MISSED_IMMUNE_FULL_TEXT = "%2$s von %1$s schlägt fehl. %4$s ist immun.",
|
||||
ACTION_SPELL_MISSED_IMMUNE_FULL_TEXT_NO_SOURCE = "%2$s schlägt fehl. %4$s ist immun.",
|
||||
ACTION_SPELL_MISSED_MISFIRE = "Verfehlt",
|
||||
ACTION_SPELL_MISSED_MISFIRE_FULL_TEXT = "%1$s wirkt %2$s auf %4$s und verfehlt.",
|
||||
ACTION_SPELL_MISSED_MISFIRE_FULL_TEXT_NO_SOURCE = "%2$s verfehlt %4$s.",
|
||||
ACTION_SPELL_MISSED_MISFIRE_POSSESSIVE = "1",
|
||||
ACTION_SPELL_MISSED_MISS = "Verfehlt",
|
||||
ACTION_SPELL_MISSED_MISS_FULL_TEXT = "%1$s wirkt %2$s auf %4$s und verfehlt.",
|
||||
ACTION_SPELL_MISSED_MISS_FULL_TEXT_NO_SOURCE = "%2$s verfehlt %4$s.",
|
||||
ACTION_SPELL_MISSED_MISS_POSSESSIVE = "1",
|
||||
ACTION_SPELL_MISSED_PARRY = "Pariert",
|
||||
ACTION_SPELL_MISSED_PARRY_FULL_TEXT = "%4$s pariert %2$s von %1$s.",
|
||||
ACTION_SPELL_MISSED_PARRY_FULL_TEXT_NO_SOURCE = "%4$s pariert %2$s.",
|
||||
ACTION_SPELL_MISSED_PARRY_POSSESSIVE = "1",
|
||||
ACTION_SPELL_MISSED_POSSESSIVE = "1",
|
||||
ACTION_SPELL_MISSED_REFLECT = "Reflektiert",
|
||||
ACTION_SPELL_MISSED_REFLECT_FULL_TEXT = "%2$s von %1$s wird durch %4$s reflektiert.",
|
||||
ACTION_SPELL_MISSED_REFLECT_FULL_TEXT_NO_SOURCE = "%2$s wird durch %4$s reflektiert.",
|
||||
ACTION_SPELL_MISSED_RESIST = "Widerstanden",
|
||||
ACTION_SPELL_MISSED_RESIST_FULL_TEXT = "%4$s widersteht %2$s von %1$s vollständig.%6$s",
|
||||
ACTION_SPELL_MISSED_RESIST_FULL_TEXT_NO_SOURCE = "%4$s widersteht %2$s vollständig.%6$s",
|
||||
ACTION_SPELL_MISSED_RESIST_POSSESSIVE = "1",
|
||||
ACTION_SPELL_PERIODIC_DAMAGE = "verletzt",
|
||||
ACTION_SPELL_PERIODIC_DAMAGE_FULL_TEXT = "%4$s erleidet durch %2$s von %1$s %5$s.%6$s",
|
||||
ACTION_SPELL_PERIODIC_DAMAGE_FULL_TEXT_NO_SOURCE = "%4$s erleidet durch %2$s %5$s.%6$s",
|
||||
ACTION_SPELL_PERIODIC_DAMAGE_POSSESSIVE = "1",
|
||||
ACTION_SPELL_PERIODIC_DRAIN = "entzieht",
|
||||
ACTION_SPELL_PERIODIC_DRAIN_FULL_TEXT = "%1$s entzieht durch %2$s %9$s %8$s von %4$s.",
|
||||
ACTION_SPELL_PERIODIC_DRAIN_FULL_TEXT_NO_SOURCE = "%2$s entzieht %4$s %9$s %8$s.",
|
||||
ACTION_SPELL_PERIODIC_DRAIN_POSSESSIVE = "1",
|
||||
ACTION_SPELL_PERIODIC_ENERGIZE = "aufgeladen",
|
||||
ACTION_SPELL_PERIODIC_ENERGIZE_FULL_TEXT = "%4$s gewinnt durch %2$s von %1$s %9$s %8$s.",
|
||||
ACTION_SPELL_PERIODIC_ENERGIZE_FULL_TEXT_NO_SOURCE = "%4$s gewinnt durch %2$s %9$s %8$s.",
|
||||
ACTION_SPELL_PERIODIC_ENERGIZE_POSSESSIVE = "1",
|
||||
ACTION_SPELL_PERIODIC_ENERGIZE_RESULT = "$extraAmount %8$s gewonnen.",
|
||||
ACTION_SPELL_PERIODIC_HEAL = "heilt",
|
||||
ACTION_SPELL_PERIODIC_HEAL_FULL_TEXT = "%4$s gewinnt durch %2$s von %1$s %9$s Gesundheit.%6$s",
|
||||
ACTION_SPELL_PERIODIC_HEAL_FULL_TEXT_NO_SOURCE = "%4$s gewinnt durch %2$s %9$s Gesundheit.%6$s",
|
||||
ACTION_SPELL_PERIODIC_HEAL_POSSESSIVE = "1",
|
||||
ACTION_SPELL_PERIODIC_LEECH = "entzieht",
|
||||
ACTION_SPELL_PERIODIC_LEECH_FULL_TEXT = "%1$s entzieht durch %2$s %9$s %8$s von %4$s. %1$s gewinnt %10$s %8$s.",
|
||||
ACTION_SPELL_PERIODIC_LEECH_FULL_TEXT_NO_SOURCE = "%2$s entzieht %9$s %8$s von %4$s. %1$s gewinnt %10$s %8$s.",
|
||||
ACTION_SPELL_PERIODIC_LEECH_POSSESSIVE = "1",
|
||||
ACTION_SPELL_PERIODIC_LEECH_RESULT = "(%10$s %8$s gewonnen)",
|
||||
ACTION_SPELL_PERIODIC_MISSED = "verfehlt",
|
||||
ACTION_SPELL_PERIODIC_MISSED_ABSORB = "(%1$s absorbiert)",
|
||||
ACTION_SPELL_PERIODIC_MISSED_ABSORB_FULL_TEXT = "%2$s von %1$s wurde durch %4$s absorbiert.%6$s",
|
||||
ACTION_SPELL_PERIODIC_MISSED_ABSORB_FULL_TEXT_NO_SOURCE = "%2$s wurde durch %4$s absorbiert.%6$s",
|
||||
ACTION_SPELL_PERIODIC_MISSED_ABSORB_POSSESSIVE = "1",
|
||||
ACTION_SPELL_PERIODIC_MISSED_BLOCK = "(Tick geblockt)",
|
||||
ACTION_SPELL_PERIODIC_MISSED_BLOCK_FULL_TEXT = "%4$s blockt %2$s von %1$s für einen Moment.%6$s",
|
||||
ACTION_SPELL_PERIODIC_MISSED_BLOCK_FULL_TEXT_NO_SOURCE = "%4$s blockt %2$s für einen Moment.%6$s",
|
||||
ACTION_SPELL_PERIODIC_MISSED_BLOCK_POSSESSIVE = "1",
|
||||
ACTION_SPELL_PERIODIC_MISSED_DEFLECTED = "(Tick abgewehrt)",
|
||||
ACTION_SPELL_PERIODIC_MISSED_DEFLECTED_FULL_TEXT = "%4$s wehrt %2$s von %1$s für einen Moment ab.%6$s",
|
||||
ACTION_SPELL_PERIODIC_MISSED_DEFLECTED_FULL_TEXT_NO_SOURCE = "%4$s wehrt %2$s für einen Moment ab.%6$s",
|
||||
ACTION_SPELL_PERIODIC_MISSED_DEFLECTED_POSSESSIVE = "1",
|
||||
ACTION_SPELL_PERIODIC_MISSED_DODGE = "(Tick ausgewichen)",
|
||||
ACTION_SPELL_PERIODIC_MISSED_DODGE_FULL_TEXT = "%4$s weicht %2$s von %1$s für einen Moment aus.%6$s",
|
||||
ACTION_SPELL_PERIODIC_MISSED_DODGE_FULL_TEXT_NO_SOURCE = "%4$s weicht %2$s für einen Moment aus.%6$s",
|
||||
ACTION_SPELL_PERIODIC_MISSED_DODGE_POSSESSIVE = "1",
|
||||
ACTION_SPELL_PERIODIC_MISSED_EVADED = "(Tick entkommen)",
|
||||
ACTION_SPELL_PERIODIC_MISSED_EVADED_FULL_TEXT = "%4$s entkommt %2$s von %1$s für einen Moment.%6$s",
|
||||
ACTION_SPELL_PERIODIC_MISSED_EVADED_FULL_TEXT_NO_SOURCE = "%4$s entkommt %2$s für einen Moment.%6$s",
|
||||
ACTION_SPELL_PERIODIC_MISSED_EVADED_POSSESSIVE = "1",
|
||||
ACTION_SPELL_PERIODIC_MISSED_FULL_TEXT = "%2$s von %1$s verfehlt %4$s für einen Moment.%6$s",
|
||||
ACTION_SPELL_PERIODIC_MISSED_FULL_TEXT_NO_SOURCE = "%2$s verfehlt %4$s für einen Moment.%6$s",
|
||||
ACTION_SPELL_PERIODIC_MISSED_IMMUNE = "(Immun)",
|
||||
ACTION_SPELL_PERIODIC_MISSED_IMMUNE_FULL_TEXT = "%4$s ist gegen %2$s von %1$s immun.%6$s",
|
||||
ACTION_SPELL_PERIODIC_MISSED_IMMUNE_FULL_TEXT_NO_SOURCE = "%4$s ist gegen %2$s immun.%6$s",
|
||||
ACTION_SPELL_PERIODIC_MISSED_IMMUNE_POSSESSIVE = "1",
|
||||
ACTION_SPELL_PERIODIC_MISSED_MISS = "(Tick verfehlt)",
|
||||
ACTION_SPELL_PERIODIC_MISSED_MISS_FULL_TEXT = "%2$s von %1$s verfehlt %4$s für einen Moment.%6$s",
|
||||
ACTION_SPELL_PERIODIC_MISSED_MISS_FULL_TEXT_NO_SOURCE = "%2$s verfehlt %4$s für einen Moment.%6$s",
|
||||
ACTION_SPELL_PERIODIC_MISSED_MISS_POSSESSIVE = "1",
|
||||
ACTION_SPELL_PERIODIC_MISSED_PARRY = "(Tick pariert)",
|
||||
ACTION_SPELL_PERIODIC_MISSED_PARRY_FULL_TEXT = "%4$s pariert %2$s von %1$s für einen Moment.%6$s",
|
||||
ACTION_SPELL_PERIODIC_MISSED_PARRY_FULL_TEXT_NO_SOURCE = "%4$s pariert %2$s für einen Moment.%6$s",
|
||||
ACTION_SPELL_PERIODIC_MISSED_PARRY_POSSESSIVE = "1",
|
||||
ACTION_SPELL_PERIODIC_MISSED_POSSESSIVE = "1",
|
||||
ACTION_SPELL_PERIODIC_MISSED_RESIST = "(Tick widerstanden)",
|
||||
ACTION_SPELL_PERIODIC_MISSED_RESIST_FULL_TEXT = "%4$s wird nicht vom Effekt %2$s von %1$s betroffen. %4$s hat widerstanden.%6$s",
|
||||
ACTION_SPELL_PERIODIC_MISSED_RESIST_FULL_TEXT_NO_SOURCE = "%4$s wird nicht vom Effekt %2$s betroffen. %4$s hat widerstanden.%6$s",
|
||||
ACTION_SPELL_PERIODIC_MISSED_RESIST_POSSESSIVE = "1",
|
||||
ACTION_SPELL_RESURRECT = "wiederbelebt",
|
||||
ACTION_SPELL_RESURRECT_FULL_TEXT = "%2$s von %1$s belebt %4$s wieder.%6$s",
|
||||
ACTION_SPELL_RESURRECT_FULL_TEXT_NO_SOURCE = "%2$s belebt %4$s wieder.%6$s",
|
||||
ACTION_SPELL_RESURRECT_POSSESSIVE = "1",
|
||||
ACTION_SPELL_STOLEN = "stiehlt",
|
||||
ACTION_SPELL_STOLEN_BUFF = "stiehlt",
|
||||
ACTION_SPELL_STOLEN_BUFF_FULL_TEXT = "%2$s von %1$s stiehlt %5$s auf %4$s.",
|
||||
ACTION_SPELL_STOLEN_BUFF_FULL_TEXT_NO_SOURCE = "%2$s stiehlt %5$s auf %4$s.",
|
||||
ACTION_SPELL_STOLEN_BUFF_POSSESSIVE = "1",
|
||||
ACTION_SPELL_STOLEN_BUFF__POSSESSIVE = "1",
|
||||
ACTION_SPELL_STOLEN_DEBUFF = "stiehlt",
|
||||
ACTION_SPELL_STOLEN_DEBUFF_FULL_TEXT = "%1$s überträgt durch %2$s den auf %4$s wirkenden Zauber $extraSpell zu %1$s.",
|
||||
ACTION_SPELL_STOLEN_DEBUFF_FULL_TEXT_NO_SOURCE = "%2$s überträgt $extraSpell von %4$s.",
|
||||
ACTION_SPELL_STOLEN_DEBUFF_POSSESSIVE = "1",
|
||||
ACTION_SPELL_STOLEN_FULL_TEXT = "%2$s von %1$s stiehlt %5$s auf %4$s.",
|
||||
ACTION_SPELL_STOLEN_FULL_TEXT_NO_SOURCE = "%2$s stiehlt %5$s auf %4$s.",
|
||||
ACTION_SPELL_STOLEN_POSSESSIVE = "1",
|
||||
ACTION_SPELL_SUMMON = "beschwört",
|
||||
ACTION_SPELL_SUMMON_FULL_TEXT = "%1$s ruft durch %2$s %4$s herbei.%6$s",
|
||||
ACTION_SPELL_SUMMON_FULL_TEXT_NO_SOURCE = "%2$s ruft %4$s herbei.%6$s",
|
||||
ACTION_SPELL_SUMMON_POSSESSIVE = "1",
|
||||
ACTION_SWING = "Schlag",
|
||||
ACTION_SWING_DAMAGE = "trifft",
|
||||
ACTION_SWING_DAMAGE_FULL_TEXT = "%1$s schlägt %4$s im Nahkampf, verursacht %5$s.%6$s",
|
||||
ACTION_SWING_DAMAGE_FULL_TEXT_NO_SOURCE = "Ein Nahkampfschlag trifft %4$s, verursacht %5$s.%6$s",
|
||||
ACTION_SWING_DAMAGE_POSSESSIVE = "1",
|
||||
ACTION_SWING_MISSED = "verfehlt",
|
||||
ACTION_SWING_MISSED_ABSORB = "(Absorbiert)",
|
||||
ACTION_SWING_MISSED_ABSORB_FULL_TEXT = "%4$s absorbiert den Angriff von %1$s.%6$s",
|
||||
ACTION_SWING_MISSED_ABSORB_POSSESSIVE = "1",
|
||||
ACTION_SWING_MISSED_BLOCK = "(Geblockt)",
|
||||
ACTION_SWING_MISSED_BLOCK_FULL_TEXT = "%4$s blockt den Angriff von %1$s.%6$s",
|
||||
ACTION_SWING_MISSED_BLOCK_POSSESSIVE = "1",
|
||||
ACTION_SWING_MISSED_DEFLECT = "(Abgewehrt)",
|
||||
ACTION_SWING_MISSED_DEFLECT_FULL_TEXT = "%4$s wehrt den Angriff von %1$s ab.",
|
||||
ACTION_SWING_MISSED_DEFLECT_POSSESSIVE = "1",
|
||||
ACTION_SWING_MISSED_DODGE = "(Ausgewichen)",
|
||||
ACTION_SWING_MISSED_DODGE_FULL_TEXT = "%4$s weicht dem Angriff von %1$s aus.",
|
||||
ACTION_SWING_MISSED_DODGE_POSSESSIVE = "1",
|
||||
ACTION_SWING_MISSED_EVADE = "(Entkommen)",
|
||||
ACTION_SWING_MISSED_EVADE_FULL_TEXT = "%4$s entkommt dem Angriff von %1$s.",
|
||||
ACTION_SWING_MISSED_EVADE_POSSESSIVE = "1",
|
||||
ACTION_SWING_MISSED_FULL_TEXT = "%1$s greift %4$s an und verfehlt.",
|
||||
ACTION_SWING_MISSED_IMMUNE = "(Immun)",
|
||||
ACTION_SWING_MISSED_IMMUNE_FULL_TEXT = "Der Angriff von %1$s schlägt fehl. %4$s ist immun.",
|
||||
ACTION_SWING_MISSED_IMMUNE_POSSESSIVE = "1",
|
||||
ACTION_SWING_MISSED_MISFIRE = "(Verfehlt)",
|
||||
ACTION_SWING_MISSED_MISFIRE_FULL_TEXT = "Der Angriff von %1$s verfehlt %4$s.",
|
||||
ACTION_SWING_MISSED_MISFIRE_POSSESSIVE = "1",
|
||||
ACTION_SWING_MISSED_MISS = "(Verfehlt)",
|
||||
ACTION_SWING_MISSED_MISS_FULL_TEXT = "%1$s greift %4$s an und verfehlt.",
|
||||
ACTION_SWING_MISSED_MISS_POSSESSIVE = "1",
|
||||
ACTION_SWING_MISSED_PARRY = "(Pariert)",
|
||||
ACTION_SWING_MISSED_PARRY_FULL_TEXT = "%4$s pariert den Angriff von %1$s.",
|
||||
ACTION_SWING_MISSED_PARRY_POSSESSIVE = "1",
|
||||
ACTION_SWING_MISSED_POSSESSIVE = "1",
|
||||
ACTION_SWING_MISSED_RESIST = "(Widerstanden)",
|
||||
ACTION_SWING_MISSED_RESIST_FULL_TEXT = "%4$s widersteht dem Angriff von %1$s vollständig.%6$s",
|
||||
ACTION_SWING_MISSED_RESIST_POSSESSIVE = "1",
|
||||
ACTION_UNIT_BECCOMES_UNCONSCIOUS = "bricht zusammen",
|
||||
ACTION_UNIT_BECOMES_UNCONSCIOUS_FULL_TEXT = "%4$s bricht zusammen.",
|
||||
ACTION_UNIT_BECOMES_UNCONSCIOUS_POSSESSIVE = "0",
|
||||
ACTION_UNIT_DESTROYED = "zerstört",
|
||||
ACTION_UNIT_DESTROYED_FULL_TEXT = "%4$s wird zerstört.",
|
||||
ACTION_UNIT_DESTROYED_POSSESSIVE = "0",
|
||||
ACTION_UNIT_DIED = "stirbt",
|
||||
ACTION_UNIT_DIED_FULL_TEXT = "%4$s stirbt.",
|
||||
ACTION_UNIT_DIED_POSSESSIVE = "0",
|
||||
ACTION_UNIT_DISSIPATES = "schwindet",
|
||||
ACTION_UNIT_DISSIPATES_FULL_TEXT = "%4$s schwindet.",
|
||||
ACTION_UNIT_DISSIPATES_POSSESSIVE = "0",
|
||||
ADD = "Hinzufügen",
|
||||
ADDITIONAL_FILTERS = "Zusätzliche Filter",
|
||||
ADD_FILTER = "Filter hinz.",
|
||||
AURAS = "Auren",
|
||||
AURAS_COMBATLOG_TOOLTIP = "Zeigt Nachrichten über vorteilhafte und schädliche Statuseffekte an.",
|
||||
BENEFICIAL = "Vorteilhaft",
|
||||
BENEFICIAL_AURA_COMBATLOG_TOOLTIP = "Anzeigen, wenn Ihr eine vorteilhafte Aura erhaltet oder verliert.",
|
||||
BLIZZARD_COMBAT_LOG_MENU_BOTH = "Alles anzeigen, das %s betrifft?",
|
||||
BLIZZARD_COMBAT_LOG_MENU_EVERYTHING = "Alles anzeigen",
|
||||
BLIZZARD_COMBAT_LOG_MENU_INCOMING = "Was ist mit %s geschehen?",
|
||||
BLIZZARD_COMBAT_LOG_MENU_OUTGOING = "Anzeigen, was %s tat?",
|
||||
BLIZZARD_COMBAT_LOG_MENU_OUTGOING_ME = "Was hat %s mit mir getan?",
|
||||
BLIZZARD_COMBAT_LOG_MENU_RESET = "Rücksetzen",
|
||||
BLIZZARD_COMBAT_LOG_MENU_SAVE = "Als neuen Filter speichern",
|
||||
BLIZZARD_COMBAT_LOG_MENU_SPELL_HIDE = "Nachrichten wie diese ausblenden.",
|
||||
BLIZZARD_COMBAT_LOG_MENU_SPELL_LINK = "%s zum Chat verlinken.",
|
||||
BY_SOURCE = "Nach Quelle",
|
||||
BY_SOURCE_COMBATLOG_TOOLTIP = "Zeilenfarbe basierend auf dem Zaubernden.",
|
||||
BY_TARGET = "Nach Ziel",
|
||||
BY_TARGET_COMBATLOG_TOOLTIP = "Zeilenfarbe basierend auf dem Ziel.",
|
||||
COLORIZE = "Einfärben:",
|
||||
COLORS = "Farben",
|
||||
COLOR_BY_SCHOOL = "Farbe nach Art",
|
||||
COMBATLOG_DEFAULTS = "Kampflog: Standard",
|
||||
COMBATLOG_FILTER_STRING_CUSTOM_UNIT = "Benutzerdefinierte Einheit",
|
||||
COMBATLOG_FILTER_STRING_FRIENDLY_UNITS = "Freundliche Einheiten",
|
||||
COMBATLOG_FILTER_STRING_HOSTILE_PLAYERS = "Gegnerische Spieler",
|
||||
COMBATLOG_FILTER_STRING_HOSTILE_UNITS = "Feindliche Einheiten",
|
||||
COMBATLOG_FILTER_STRING_ME = "Spieler",
|
||||
COMBATLOG_FILTER_STRING_MY_PET = "Begleiter",
|
||||
COMBATLOG_FILTER_STRING_NEUTRAL_UNITS = "Neutrale Einheiten",
|
||||
COMBATLOG_FILTER_STRING_UNKNOWN_UNITS = "Unbekannt",
|
||||
COMBATLOG_HIGHLIGHT_ABILITY = "Fähigkeit",
|
||||
COMBATLOG_HIGHLIGHT_DAMAGE = "Schaden",
|
||||
COMBATLOG_HIGHLIGHT_KILL = "Sieg",
|
||||
COMBATLOG_HIGHLIGHT_SCHOOL = "Magieart",
|
||||
COMBATLOG_UNKNOWN_UNIT = "Etwas",
|
||||
COMBAT_FACTION_CHANGE = "Ruf",
|
||||
COMBAT_HONOR_GAIN = "Ehre",
|
||||
COMBAT_LOG_UNIT_YOU_ENABLED = "1",
|
||||
COMBAT_MISC_INFO = "Versch. Infos",
|
||||
COMBAT_XP_GAIN = "Erfahrung",
|
||||
CONFIRM_COMBAT_FILTER_DEFAULTS = "Wollt Ihr Eure Filter wirklich auf die Standardeinstellungen zurücksetzen?",
|
||||
CONFIRM_COMBAT_FILTER_DELETE = "Wollt Ihr diesen Filter wirklich löschen?",
|
||||
COPY_FILTER = "Filter kop.",
|
||||
DAMAGE_NUMBER = "Schadenszahl",
|
||||
DAMAGE_SCHOOL_TEXT = "Schadensart",
|
||||
DAMAGE_SHIELD = "Schadensschilde",
|
||||
DAMAGE_SHIELD_COMBATLOG_TOOLTIP = "Nachrichten anzeigen, wenn ein Zauber oder eine Fähigkeit als Reaktion auf einen Nahkampfangriff Schaden verursacht, z.B. Dornen.",
|
||||
DEATHS_COMBATLOG_TOOLTIP = "Nachrichten anzeigen, wenn etwas stirbt.",
|
||||
DEFAULT_COMBATLOG_FILTER_NAME = "Filter %d",
|
||||
DISPELS = "Bannungen",
|
||||
DISPEL_AURA_COMBATLOG_TOOLTIP = "Anzeigen, wenn eine Aura entfernt, unterbrochen oder gestohlen wird.",
|
||||
DONE_BY = "Aktion von:",
|
||||
DONE_TO = "Aktion auf:",
|
||||
DRAINS = "Entzüge",
|
||||
ENTER_FILTER_NAME = "Filternamen eingeben:",
|
||||
ENTIRE_LINE = "Gesamte Zeile",
|
||||
ENTIRE_LINE_COMBATLOG_TOOLTIP = "Die gesamte Zeile basierend auf der unteren Auswahl einfärben.",
|
||||
ENVIRONMENTAL_DAMAGE = "Umgebungsschaden",
|
||||
ENVIRONMENTAL_DAMAGE_COMBATLOG_TOOLTIP = "Nachrichten anzeigen, wenn jemand Schaden durch Stürze, durch Ertrinken oder das Schwimmen in Lava erhält.",
|
||||
EXAMPLE_SPELL_FIREBALL = "Feuerball",
|
||||
EXAMPLE_SPELL_FROSTBOLT = "Frostblitz",
|
||||
EXAMPLE_TARGET_MONSTER = "Monster",
|
||||
EXAMPLE_TEXT = "Beispieltext:",
|
||||
EXTRA_ATTACKS = "Zusatzangriffe",
|
||||
FAILURES = "Fehlschläge",
|
||||
FILTER_BY_ENEMIES_COMBATLOG_TOOLTIP = "Aktionen, die von feindlichen Kreaturen und Begleitern durchgeführt werden.",
|
||||
FILTER_BY_FRIENDS_COMBATLOG_TOOLTIP = "Aktionen, die von freundlichen Spielern, Begleitern und Kreaturen durchgeführt werden.",
|
||||
FILTER_BY_HOSTILE_PLAYERS_COMBATLOG_TOOLTIP = "Aktionen, die von feindlichen Spielern durchgeführt werden.",
|
||||
FILTER_BY_ME_COMBATLOG_TOOLTIP = "Aktionen, die von Euch, Euren Fallen und Euren Zaubern durchgeführt werden.",
|
||||
FILTER_BY_NEUTRAL_COMBATLOG_TOOLTIP = "Aktionen, die von neutralen Kreaturen durchgeführt werden.",
|
||||
FILTER_BY_PET_COMBATLOG_TOOLTIP = "Aktionen, die von Euren Begleitern, beschworenen Wächtern oder von Euch bezauberten Spielern durchgeführt werden.",
|
||||
FILTER_BY_UNKNOWN_COMBATLOG_TOOLTIP = "Aktionen, die von unbestimmten Quellen durchgeführt werden, so wie Sturz, Säure oder Lava.",
|
||||
FILTER_NAME = "Filtername",
|
||||
FILTER_TO_FRIENDS_COMBATLOG_TOOLTIP = "Aktionen, die auf freundliche Spieler, Begleiter und Kreaturen durchgeführt werden.",
|
||||
FILTER_TO_HOSTILE_COMBATLOG_TOOLTIP = "Aktionen, die auf feindliche Begleiter und Kreaturen durchgeführt werden.",
|
||||
FILTER_TO_HOSTILE_PLAYERS_COMBATLOG_TOOLTIP = "Aktionen, die auf gegnerische Spieler durchgeführt werden.",
|
||||
FILTER_TO_ME_COMBATLOG_TOOLTIP = "Aktionen, die auf Euch durchgeführt werden.",
|
||||
FILTER_TO_NEUTRAL_COMBATLOG_TOOLTIP = "Aktionen, die auf neutrale Kreaturen durchgeführt werden.",
|
||||
FILTER_TO_PET_COMBATLOG_TOOLTIP = "Aktionen, die auf Eure Begleiter, beschworene Wächter oder von Euch bezauberte Spieler durchgeführt werden.",
|
||||
FILTER_TO_UNKNOWN_COMBATLOG_TOOLTIP = "Aktionen, die auf unsichtbare Ziele durchgeführt werden.",
|
||||
FORMATTING = "Format",
|
||||
FULL_TEXT_COMBATLOG_TOOLTIP = "Kampflogeinträge als vollständige Sätze anzeigen.",
|
||||
HARMFUL_AURA_COMBATLOG_TOOLTIP = "Anzeigen, wenn Ihr eine schädliche Aura erhaltet oder verliert.",
|
||||
HEALS = "Heilungen",
|
||||
HIGHLIGHTING = "Hervorhebung:",
|
||||
HIGHLIGHT_ABILITY_COMBATLOG_TOOLTIP = "Hebt in den Kampfnachrichten die Namen von Fähigkeiten hervor.",
|
||||
HIGHLIGHT_DAMAGE_COMBATLOG_TOOLTIP = "Hebt in den Kampfnachrichten die Schadenszahlen hervor.",
|
||||
HIGHLIGHT_KILL_COMBATLOG_TOOLTIP = "Hebt die gesamte Zeile hervor, wenn Ihr oder ein Mitglied Eurer Gruppe einen Feind besiegt.",
|
||||
HIGHLIGHT_SCHOOL_COMBATLOG_TOOLTIP = "Hebt in den Kampfnachrichten die Zauberarten hervor.",
|
||||
HOSTILE = "Feindlich",
|
||||
INTERRUPTS = "Unterbrechungen",
|
||||
ITEM_NAMES = "Gegenstandsnamen",
|
||||
ITEM_NAMES_SHOW_BRACES_COMBATLOG_TOOLTIP = "Klammern um Namen von Gegenständen anzeigen.",
|
||||
KILLS_COMBATLOG_TOOLTIP = "Nachrichten anzeigen, wenn ein Mitglied Eurer Gruppe etwas tötet.",
|
||||
MELEE = "Nahkampf",
|
||||
MELEE_COMBATLOG_TOOLTIP = "Zeigt gewöhnliche Nahkampfangriffe an.",
|
||||
MESSAGE_SOURCES = "Nachrichtenquellen",
|
||||
MISSES = "Verfehlen",
|
||||
MOVE_FILTER_DOWN = "Filter nach unten",
|
||||
MOVE_FILTER_UP = "Filter nach oben",
|
||||
OTHER = "Anderes",
|
||||
PERIODIC = "Regelmäßig",
|
||||
POWER_GAINS = "Machtgewinn",
|
||||
POWER_GAINS_COMBATLOG_TOOLTIP = "Nachrichten anzeigen, wenn ein Zauber oder eine Fähigkeit Mana, Energie, Wut, Fokus, Chi, heilige Kraft oder Schattenkugeln wiederherstellt.",
|
||||
QUICKBUTTON_NAME_EVERYTHING = "Alles",
|
||||
QUICKBUTTON_NAME_EVERYTHING_TOOLTIP = "Alle Kampfnachrichten anzeigen.",
|
||||
QUICKBUTTON_NAME_KILLS = "Todesstöße",
|
||||
QUICKBUTTON_NAME_KILLS_TOOLTIP = "Alle Tode und Todesstöße anzeigen.",
|
||||
QUICKBUTTON_NAME_ME = "Was ist mit mir geschehen?",
|
||||
QUICKBUTTON_NAME_ME_TOOLTIP = "Alles mir Zugefügte anzeigen.",
|
||||
QUICKBUTTON_NAME_SELF = "Selbst",
|
||||
QUICKBUTTON_NAME_SELF_TOOLTIP = "Zeigt Nachrichten für von Euch und an Euch ausgeführte Aktionen.",
|
||||
QUICK_BUTTON_COMBATLOG_TOOLTIP = "Platziert im Chatfenster eine Verknüpfung zu diesem Filter.",
|
||||
RANGED = "Distanz",
|
||||
RANGED_COMBATLOG_TOOLTIP = "Zeigt Angriffe mit Bögen, Schusswaffen, Wurfwaffen und Zauberstäben an.",
|
||||
RANGE_DAMAGE_COMBATLOG_TOOLTIP = "Zeigt Distanzangriffe an, die den vollen oder teilweisen Schaden verursachen.",
|
||||
RANGE_MISSED_COMBATLOG_TOOLTIP = "Zeigt fehlgeschlagene Distanzangriffe an, die keinen Schaden verursachen.",
|
||||
RESURRECT = "Wiederbelebung",
|
||||
SETTINGS = "Optionen",
|
||||
SHOW_BRACES = "Klammern anzeigen",
|
||||
SHOW_BRACES_COMBATLOG_TOOLTIP = "Klammern um Hyperlinks im Kampflog anzeigen.",
|
||||
SHOW_QUICK_BUTTON = "Schnelltaste anzeigen",
|
||||
SHOW_TIMESTAMP = "Zeitstempel anzeigen",
|
||||
SOURCE = "Quelle",
|
||||
SPECIAL = "Spezial",
|
||||
SPELLS_COMBATLOG_TOOLTIP = "Zeigt Nachrichten über Zauber und Spezialfähigkeiten an.",
|
||||
SPELL_CASTING = "Zauberwirken",
|
||||
SPELL_CASTING_COMBATLOG_TOOLTIP = "Nachrichten über das Wirken von Zaubern anzeigen.",
|
||||
SPELL_CAST_FAILED_COMBATLOG_TOOLTIP = "Nachrichten anzeigen, wenn ein Zauber nicht gewirkt werden kann oder nicht abgeschlossen wird.",
|
||||
SPELL_CAST_START_COMBATLOG_TOOLTIP = "Nachricht anzeigen, wenn das Wirken eines Zaubers begonnen wird.",
|
||||
SPELL_CAST_SUCCESS_COMBATLOG_TOOLTIP = "Nachrichten anzeigen, wenn ein Zauber erfolgreich abgeschlossen wird.",
|
||||
SPELL_COLOR_BY_SCHOOL_COMBATLOG_TOOLTIP = "Zauber basierend auf der Art einfärben.",
|
||||
SPELL_DAMAGE_COMBATLOG_TOOLTIP = "Nachrichten anzeigen, wenn ein Zauber oder eine Fähigkeit Schaden verursacht.",
|
||||
SPELL_DAMAGE_NUMBER_COMBATLOG_TOOLTIP = "Färbt die Schadenszahl von Schwüngen, die nicht im Nahkampf stattfinden.",
|
||||
SPELL_DAMAGE_SCHOOL_COMBATLOG_TOOLTIP = "Den Namen der Schadensart einfärben. (z.B. Schatten)",
|
||||
SPELL_DRAIN_COMBATLOG_TOOLTIP = "Nachrichten anzeigen, wenn ein Zauber oder eine Fähigkeit Mana, Energie, Wut oder Fokus verringert.",
|
||||
SPELL_EXTRA_ATTACKS_COMBATLOG_TOOLTIP = "Nachrichten anzeigen, wenn ein Zauber oder eine Fähigkeit zusätzliche Angriffe gewährt.",
|
||||
SPELL_HEAL_COMBATLOG_TOOLTIP = "Nachrichten anzeigen, wenn ein Zauber oder eine Fähigkeit Schaden heilt.",
|
||||
SPELL_INSTAKILL_COMBATLOG_TOOLTIP = "Nachrichten über spezielle Zauberarten anzeigen, die beispielsweise Haltbarkeitsverlust verursachen oder Schaden mit einem Begleiter teilen.",
|
||||
SPELL_INTERRUPT_COMBATLOG_TOOLTIP = "Nachrichten anzeigen, wenn ein Zauber oder eine Fähigkeit einen anderen Zauber unterbricht.",
|
||||
SPELL_MISSED_COMBATLOG_TOOLTIP = "Nachrichten anzeigen, wenn ein Zauber oder eine Fähigkeit keinen Schaden verursachen kann. Das schließt Ausweichen, Parieren, Blocken, Abwehren, Immunität, Absorbieren und Entkommen ein.",
|
||||
SPELL_NAMES = "Zaubernamen",
|
||||
SPELL_NAMES_COMBATLOG_TOOLTIP = "Namen von Zaubern einfärben.",
|
||||
SPELL_NAMES_SHOW_BRACES_COMBATLOG_TOOLTIP = "Klammern um Namen von Zaubern anzeigen.",
|
||||
SPELL_PERIODIC_COMBATLOG_TOOLTIP = "Zauber anzeigen, die einen regelmäßigen Effekt ausführen.",
|
||||
SPELL_PERIODIC_DAMAGE_COMBATLOG_TOOLTIP = "Nachrichten anzeigen, wenn ein Zauber oder eine Fähigkeit regelmäßigen Schaden verursacht, z.B. Schattenwort: Schmerz oder Verderbnis.",
|
||||
SPELL_PERIODIC_HEAL_COMBATLOG_TOOLTIP = "Nachrichten anzeigen, wenn ein Zauber oder eine Fähigkeit regelmäßig Schaden heilt, z.B. Erneuerung oder Verjüngung.",
|
||||
SPELL_PERIODIC_MISSED_COMBATLOG_TOOLTIP = "Nachrichten anzeigen, wenn der regelmäßige Schaden eines Zaubers oder einer Fähigkeit versagt. Das schließt Immunität, Absorbieren und Entkommen ein.",
|
||||
SPELL_PERIODIC_OTHER_COMBATLOG_TOOLTIP = "Nachrichten anzeigen, wenn ein Zauber oder eine Fähigkeit regelmäßig einen Effekt ausführt, z.B. das Wiederherstellen oder Entziehen von Mana.",
|
||||
SPELL_RESURRECT_COMBATLOG_TOOLTIP = "Nachrichten anzeigen, wenn ein Zauber oder eine Fähigkeit einen Spieler oder eine Kreatur wiedererweckt.",
|
||||
SPELL_SUMMON_COMBATLOG_TOOLTIP = "Nachricht anzeigen, wenn ein Zauber oder eine Fähigkeit eine Kreatur beschwört oder ein Objekt erschafft.",
|
||||
START = "Start",
|
||||
STRING_SCHOOL_UNKNOWN = "Unbekannt",
|
||||
SUCCESS = "Erfolg",
|
||||
SUMMONS = "Herbeiruf.",
|
||||
SWING_DAMAGE_COMBATLOG_TOOLTIP = "Zeigt Nahkampfangriffe an, die den vollen oder teilweise Schaden verursachen.",
|
||||
SWING_MISSED_COMBATLOG_TOOLTIP = "Zeigt fehlgeschlagene Nahkampfangriffe an, die keinen Schaden verursachen.",
|
||||
TEXT_MODE_A = "A",
|
||||
TEXT_MODE_A_STRING_1 = "%s %s %s %s %s. %s %11$s",
|
||||
TEXT_MODE_A_STRING_2 = "%1$s %3$s %2$s %4$s %5$s. %6$s",
|
||||
TEXT_MODE_A_STRING_3 = "%1$s %5$s %3$s %4$s %2$s. %6$s",
|
||||
TEXT_MODE_A_STRING_ACTION = "|Haction:%s|h%s|h",
|
||||
TEXT_MODE_A_STRING_BRACE_ITEM = "|c%s[|r%s|c%s]|r",
|
||||
TEXT_MODE_A_STRING_BRACE_SPELL = "|c%s[|r%s|c%s]|r",
|
||||
TEXT_MODE_A_STRING_BRACE_UNIT = "|c%s[|r%s|c%s]|r",
|
||||
TEXT_MODE_A_STRING_DEST_ICON = "|Hicon:%d:dest|h%s|h",
|
||||
TEXT_MODE_A_STRING_DEST_UNIT = "%s|Hunit:%s:%s|h%s|h",
|
||||
TEXT_MODE_A_STRING_ITEM = "|Hitem:%s|h%s|h",
|
||||
TEXT_MODE_A_STRING_POSSESSIVE = "%s",
|
||||
TEXT_MODE_A_STRING_REMAINING_POINTS = "(%s verbleiben)",
|
||||
TEXT_MODE_A_STRING_RESULT_ABSORB = "(%s absorbiert)",
|
||||
TEXT_MODE_A_STRING_RESULT_BLOCK = "(%s geblockt)",
|
||||
TEXT_MODE_A_STRING_RESULT_CRITICAL = "(Kritisch)",
|
||||
TEXT_MODE_A_STRING_RESULT_CRITICAL_SPELL = "(Kritisch)",
|
||||
TEXT_MODE_A_STRING_RESULT_CRUSHING = "(Schmetternd)",
|
||||
TEXT_MODE_A_STRING_RESULT_FORMAT = "$resultAmount $resultType",
|
||||
TEXT_MODE_A_STRING_RESULT_GLANCING = "(Gestreift)",
|
||||
TEXT_MODE_A_STRING_RESULT_MULTISTRIKE = "(Mehrfachschlag)",
|
||||
TEXT_MODE_A_STRING_RESULT_OVERENERGIZE = "(%s Überaufladung)",
|
||||
TEXT_MODE_A_STRING_RESULT_OVERHEALING = "(%s Überheilung)",
|
||||
TEXT_MODE_A_STRING_RESULT_OVERKILLING = "(%s Schaden über Tod)",
|
||||
TEXT_MODE_A_STRING_RESULT_PARRY = "(%d pariert)",
|
||||
TEXT_MODE_A_STRING_RESULT_REFLECT = "Reflektiert",
|
||||
TEXT_MODE_A_STRING_RESULT_RESIST = "(%s widerstanden)",
|
||||
TEXT_MODE_A_STRING_RESULT_VULNERABILITY = "(%s Verletzlichkeitsschaden)",
|
||||
TEXT_MODE_A_STRING_SOURCE_ICON = "|Hicon:%s:source|h%s|h",
|
||||
TEXT_MODE_A_STRING_SOURCE_UNIT = "%s|Hunit:%s:%s|h%s|h",
|
||||
TEXT_MODE_A_STRING_SPELL = "|Hspell:%s:%s:%s|h%s|h",
|
||||
TEXT_MODE_A_STRING_SPELL_EXTRA = "|Hspell:%s:%s:%s|h%s|h",
|
||||
TEXT_MODE_A_STRING_TIMESTAMP = "%s> %s",
|
||||
TEXT_MODE_A_STRING_VALUE_SCHOOL = "%s %s",
|
||||
TEXT_MODE_A_STRING_VALUE_TYPE = "%s (%s)",
|
||||
TEXT_MODE_A_TIMESTAMP = "%H:%M:%S",
|
||||
TIMESTAMP_COMBATLOG_TOOLTIP = "Den Zeitstempel für Nachrichten im Kampflog anzeigen.",
|
||||
UNIT_COLORS = "Einheitenfarben:",
|
||||
UNIT_NAMES = "Einheitennamen",
|
||||
UNIT_NAMES_COMBATLOG_TOOLTIP = "Namen von Einheiten einfärben.",
|
||||
UNIT_NAMES_SHOW_BRACES_COMBATLOG_TOOLTIP = "Klammern um Namen von Einheiten anzeigen.",
|
||||
UNIT_YOU = "Ihr",
|
||||
UNIT_YOU_DEST = "Euch",
|
||||
UNIT_YOU_DEST_POSSESSIVE = "Euer",
|
||||
UNIT_YOU_SOURCE = "Euer Charakter",
|
||||
UNIT_YOU_SOURCE_POSSESSIVE = "Euer",
|
||||
USE_FULL_TEXT_MODE = "Volltextmodus verwenden",
|
||||
}
|
||||
Vendored
+677
@@ -0,0 +1,677 @@
|
||||
-- Classic Era GlobalStrings (GB) that the combat log reads
|
||||
-- and the 1.12 client lacks. Generated; do not edit by hand.
|
||||
pfUI_locale["enUS"]["combatlog"] = {
|
||||
ACTION_DAMAGE_SHIELD = "damages",
|
||||
ACTION_DAMAGE_SHIELD_FULL_TEXT = "%1$s %2$s reflects %9$s %7$s damage to %4$s.%6$s",
|
||||
ACTION_DAMAGE_SHIELD_FULL_TEXT_NO_SOURCE = "%2$s reflects %9$s %7$s damage to %4$s.%6$s",
|
||||
ACTION_DAMAGE_SHIELD_MISSED = "missed",
|
||||
ACTION_DAMAGE_SHIELD_MISSED_BLOCK = "(Blocked)",
|
||||
ACTION_DAMAGE_SHIELD_MISSED_BLOCK_FULL_TEXT = "%1$s %2$s was blocked by %4$s.%6$s",
|
||||
ACTION_DAMAGE_SHIELD_MISSED_BLOCK_FULL_TEXT_NO_SOURCE = "%2$s was blocked by %4$s.%6$s",
|
||||
ACTION_DAMAGE_SHIELD_MISSED_BLOCK_POSSESSIVE = "1",
|
||||
ACTION_DAMAGE_SHIELD_MISSED_DEFLECT = "(Deflected)",
|
||||
ACTION_DAMAGE_SHIELD_MISSED_DEFLECT_FULL_TEXT = "%1$s %2$s was deflected by %4$s.",
|
||||
ACTION_DAMAGE_SHIELD_MISSED_DEFLECT_FULL_TEXT_NO_SOURCE = "%2$s was deflected by %4$s.",
|
||||
ACTION_DAMAGE_SHIELD_MISSED_DEFLECT_POSSESSIVE = "1",
|
||||
ACTION_DAMAGE_SHIELD_MISSED_DODGE = "(Dodged)",
|
||||
ACTION_DAMAGE_SHIELD_MISSED_DODGE_FULL_TEXT = "%1$s %2$s was dodged by %4$s.",
|
||||
ACTION_DAMAGE_SHIELD_MISSED_DODGE_FULL_TEXT_NO_SOURCE = "%2$s was dodged by %4$s.",
|
||||
ACTION_DAMAGE_SHIELD_MISSED_DODGE_POSSESSIVE = "1",
|
||||
ACTION_DAMAGE_SHIELD_MISSED_EVADED = "(Evaded)",
|
||||
ACTION_DAMAGE_SHIELD_MISSED_EVADED_FULL_TEXT = "%1$s %2$s was evaded by %4$s.",
|
||||
ACTION_DAMAGE_SHIELD_MISSED_EVADED_FULL_TEXT_NO_SOURCE = "%2$s was evaded by %4$s.",
|
||||
ACTION_DAMAGE_SHIELD_MISSED_EVADED_POSSESSIVE = "1",
|
||||
ACTION_DAMAGE_SHIELD_MISSED_FULL_TEXT = "%1$s %2$s missed %4$s.",
|
||||
ACTION_DAMAGE_SHIELD_MISSED_FULL_TEXT_NO_SOURCE = "%2$s missed %4$s.",
|
||||
ACTION_DAMAGE_SHIELD_MISSED_IMMUNE = "(Immune)",
|
||||
ACTION_DAMAGE_SHIELD_MISSED_IMMUNE_FULL_TEXT = "%1$s %2$s failed. %4$s was immune.",
|
||||
ACTION_DAMAGE_SHIELD_MISSED_IMMUNE_FULL_TEXT_NO_SOURCE = "%2$s failed. %4$s was immune.",
|
||||
ACTION_DAMAGE_SHIELD_MISSED_IMMUNE_POSSESSIVE = "1",
|
||||
ACTION_DAMAGE_SHIELD_MISSED_MISS = "(Missed)",
|
||||
ACTION_DAMAGE_SHIELD_MISSED_MISS_FULL_TEXT = "%1$s %2$s misses %4$s.",
|
||||
ACTION_DAMAGE_SHIELD_MISSED_MISS_FULL_TEXT_NO_SOURCE = "%2$s misses %4$s.",
|
||||
ACTION_DAMAGE_SHIELD_MISSED_MISS_POSSESSIVE = "1",
|
||||
ACTION_DAMAGE_SHIELD_MISSED_PARRY = "(Parried)",
|
||||
ACTION_DAMAGE_SHIELD_MISSED_PARRY_FULL_TEXT = "%1$s %2$s was parried by %4$s.",
|
||||
ACTION_DAMAGE_SHIELD_MISSED_PARRY_FULL_TEXT_NO_SOURCE = "%2$s was parried by %4$s.",
|
||||
ACTION_DAMAGE_SHIELD_MISSED_PARRY_POSSESSIVE = "1",
|
||||
ACTION_DAMAGE_SHIELD_MISSED_POSSESSIVE = "1",
|
||||
ACTION_DAMAGE_SHIELD_MISSED_RESIST = "(Resisted)",
|
||||
ACTION_DAMAGE_SHIELD_MISSED_RESIST_FULL_TEXT = "%1$s %2$s was fully resisted by %4$s.%6$s",
|
||||
ACTION_DAMAGE_SHIELD_MISSED_RESIST_FULL_TEXT_NO_SOURCE = "%2$s was fully resisted by %4$s.%6$s",
|
||||
ACTION_DAMAGE_SHIELD_MISSED_RESIST_POSSESSIVE = "1",
|
||||
ACTION_DAMAGE_SHIELD_POSSESSIVE = "1",
|
||||
ACTION_DAMAGE_SPLIT = "shared damage",
|
||||
ACTION_DAMAGE_SPLIT_ABSORBED_FULL_TEXT = "%1$s's %2$s damage was absorbed by %4$s %6$s.",
|
||||
ACTION_DAMAGE_SPLIT_FULL_TEXT = "%1$s %2$s causes %9$s damage to %4$s.",
|
||||
ACTION_DAMAGE_SPLIT_POSSESSIVE = "0",
|
||||
ACTION_DAMAGE_SPLIT_RESULT_FULL_TEXT = "%1$s's %2$s causes %9$s damage to %4$s %6$s.",
|
||||
ACTION_ENCHANT_APPLIED = "enchanted",
|
||||
ACTION_ENCHANT_APPLIED_FULL_TEXT = "%1$s cast %2$s on %4$s %5$s.",
|
||||
ACTION_ENCHANT_APPLIED_POSSESSIVE = "0",
|
||||
ACTION_ENCHANT_REMOVED = "enchant faded",
|
||||
ACTION_ENCHANT_REMOVED_FULL_TEXT = "%2$s fades from %4$s %5$s.",
|
||||
ACTION_ENCHANT_REMOVED_POSSESSIVE = "0",
|
||||
ACTION_ENVIRONMENTAL_DAMAGE = "damaged",
|
||||
ACTION_ENVIRONMENTAL_DAMAGE_DROWNING = "Drowning",
|
||||
ACTION_ENVIRONMENTAL_DAMAGE_DROWNING_FULL_TEXT = "%4$s is drowning and loses %9$s health.",
|
||||
ACTION_ENVIRONMENTAL_DAMAGE_DROWNING_POSSESSIVE = "0",
|
||||
ACTION_ENVIRONMENTAL_DAMAGE_FALLING = "Falling",
|
||||
ACTION_ENVIRONMENTAL_DAMAGE_FALLING_FULL_TEXT = "%4$s falls and loses %9$s health.",
|
||||
ACTION_ENVIRONMENTAL_DAMAGE_FALLING_POSSESSIVE = "0",
|
||||
ACTION_ENVIRONMENTAL_DAMAGE_FATIGUE = "Fatigue",
|
||||
ACTION_ENVIRONMENTAL_DAMAGE_FATIGUE_FULL_TEXT = "%4$s is exhausted and loses %9$s health.",
|
||||
ACTION_ENVIRONMENTAL_DAMAGE_FATIGUE_POSSESSIVE = "0",
|
||||
ACTION_ENVIRONMENTAL_DAMAGE_FIRE = "Fire",
|
||||
ACTION_ENVIRONMENTAL_DAMAGE_FIRE_FULL_TEXT = "%4$s suffers %9$s fire damage.",
|
||||
ACTION_ENVIRONMENTAL_DAMAGE_FIRE_POSSESSIVE = "0",
|
||||
ACTION_ENVIRONMENTAL_DAMAGE_FULL_TEXT = "%4$s loses %9$s health from environmental damage.",
|
||||
ACTION_ENVIRONMENTAL_DAMAGE_LAVA = "Lava",
|
||||
ACTION_ENVIRONMENTAL_DAMAGE_LAVA_FULL_TEXT = "%4$s loses %9$s health from swimming in lava. %6$s",
|
||||
ACTION_ENVIRONMENTAL_DAMAGE_LAVA_POSSESSIVE = "0",
|
||||
ACTION_ENVIRONMENTAL_DAMAGE_POSSESSIVE = "0",
|
||||
ACTION_ENVIRONMENTAL_DAMAGE_SLIME = "Slime",
|
||||
ACTION_ENVIRONMENTAL_DAMAGE_SLIME_FULL_TEXT = "%4$s loses %9$s health for swimming in slime. %6$s",
|
||||
ACTION_ENVIRONMENTAL_DAMAGE_SLIME_POSSESSIVE = "0",
|
||||
ACTION_PARTY_KILL = "killed",
|
||||
ACTION_PARTY_KILL_FULL_TEXT = "%1$s has slain %4$s!",
|
||||
ACTION_PARTY_KILL_POSSESSIVE = "0",
|
||||
ACTION_PARTY_KILL_UNCONSCIOUS = "knocked out",
|
||||
ACTION_PARTY_KILL_UNCONSCIOUS_FULL_TEXT = "%1$s has knocked out %4$s!",
|
||||
ACTION_PARTY_KILL_UNCONSCIOUS_POSSESSIVE = "0",
|
||||
ACTION_RANGED = "Shot",
|
||||
ACTION_RANGE_DAMAGE = "hit",
|
||||
ACTION_RANGE_DAMAGE_FULL_TEXT = "%1$s ranged shot hit %4$s for %5$s.%6$s",
|
||||
ACTION_RANGE_DAMAGE_FULL_TEXT_NO_SOURCE = "A ranged shot hit %4$s for %5$s.%6$s",
|
||||
ACTION_RANGE_DAMAGE_POSSESSIVE = "1",
|
||||
ACTION_RANGE_MISSED = "missed",
|
||||
ACTION_RANGE_MISSED_ABSORB = "(Absorbed)",
|
||||
ACTION_RANGE_MISSED_ABSORB_FULL_TEXT = "%1$s shot was absorbed by %4$s.%6$s",
|
||||
ACTION_RANGE_MISSED_ABSORB_POSSESSIVE = "1",
|
||||
ACTION_RANGE_MISSED_BLOCK = "(Blocked)",
|
||||
ACTION_RANGE_MISSED_BLOCK_FULL_TEXT = "%1$s shot was blocked by %4$s.%6$s",
|
||||
ACTION_RANGE_MISSED_BLOCK_POSSESSIVE = "1",
|
||||
ACTION_RANGE_MISSED_DEFLECT = "(Deflected)",
|
||||
ACTION_RANGE_MISSED_DEFLECT_FULL_TEXT = "%1$s shot was deflected by %4$s.",
|
||||
ACTION_RANGE_MISSED_DEFLECT_POSSESSIVE = "1",
|
||||
ACTION_RANGE_MISSED_DODGE = "(Dodged)",
|
||||
ACTION_RANGE_MISSED_DODGE_FULL_TEXT = "%1$s shot was dodged by %4$s.",
|
||||
ACTION_RANGE_MISSED_DODGE_POSSESSIVE = "1",
|
||||
ACTION_RANGE_MISSED_EVADE = "(Evaded)",
|
||||
ACTION_RANGE_MISSED_EVADE_FULL_TEXT = "%1$s shot was evaded by %4$s.",
|
||||
ACTION_RANGE_MISSED_EVADE_POSSESSIVE = "1",
|
||||
ACTION_RANGE_MISSED_FULL_TEXT = "%1$s shot misses %4$s.",
|
||||
ACTION_RANGE_MISSED_IMMUNE = "(Immune)",
|
||||
ACTION_RANGE_MISSED_IMMUNE_FULL_TEXT = "%1$s shot failed. %4$s was immune.",
|
||||
ACTION_RANGE_MISSED_IMMUNE_POSSESSIVE = "1",
|
||||
ACTION_RANGE_MISSED_MISFIRE = "(Misfired)",
|
||||
ACTION_RANGE_MISSED_MISFIRE_FULL_TEXT = "%1$s shot misfired on %4$s.",
|
||||
ACTION_RANGE_MISSED_MISFIRE_POSSESSIVE = "1",
|
||||
ACTION_RANGE_MISSED_MISS = "(Missed)",
|
||||
ACTION_RANGE_MISSED_MISS_FULL_TEXT = "%1$s shot misses %4$s.",
|
||||
ACTION_RANGE_MISSED_MISS_POSSESSIVE = "1",
|
||||
ACTION_RANGE_MISSED_PARRY = "(Parried)",
|
||||
ACTION_RANGE_MISSED_PARRY_FULL_TEXT = "%1$s shot was parried by %4$s.",
|
||||
ACTION_RANGE_MISSED_PARRY_POSSESSIVE = "1",
|
||||
ACTION_RANGE_MISSED_POSSESSIVE = "1",
|
||||
ACTION_RANGE_MISSED_RESIST = "(Resisted)",
|
||||
ACTION_RANGE_MISSED_RESIST_FULL_TEXT = "%1$s shot was fully resisted by %4$s.%6$s",
|
||||
ACTION_RANGE_MISSED_RESIST_POSSESSIVE = "1",
|
||||
ACTION_SPELL_AURA_APPLIED = "applied",
|
||||
ACTION_SPELL_AURA_APPLIED_BUFF = "applied",
|
||||
ACTION_SPELL_AURA_APPLIED_BUFF_FULL_TEXT = "%4$s gains %1$s %2$s.",
|
||||
ACTION_SPELL_AURA_APPLIED_BUFF_FULL_TEXT_NO_SOURCE = "%4$s gains %2$s.",
|
||||
ACTION_SPELL_AURA_APPLIED_BUFF_MASTER = "2",
|
||||
ACTION_SPELL_AURA_APPLIED_BUFF_POSSESSIVE = "1",
|
||||
ACTION_SPELL_AURA_APPLIED_BUFF_WITH_POINTS_FULL_TEXT = "%4$s gains %1$s %2$s. %11$s",
|
||||
ACTION_SPELL_AURA_APPLIED_BUFF_WITH_POINTS_FULL_TEXT_NO_SOURCE = "%4$s gains %2$s. %11$s",
|
||||
ACTION_SPELL_AURA_APPLIED_DEBUFF = "afflicted",
|
||||
ACTION_SPELL_AURA_APPLIED_DEBUFF_FULL_TEXT = "%4$s is afflicted by %1$s %2$s.",
|
||||
ACTION_SPELL_AURA_APPLIED_DEBUFF_FULL_TEXT_NO_SOURCE = "%4$s is afflicted by %2$s.",
|
||||
ACTION_SPELL_AURA_APPLIED_DEBUFF_MASTER = "1",
|
||||
ACTION_SPELL_AURA_APPLIED_DEBUFF_POSSESSIVE = "1",
|
||||
ACTION_SPELL_AURA_APPLIED_DEBUFF_WITH_POINTS_FULL_TEXT = "%4$s is afflicted by %1$s %2$s. %11$s",
|
||||
ACTION_SPELL_AURA_APPLIED_DEBUFF_WITH_POINTS_FULL_TEXT_NO_SOURCE = "%4$s is afflicted by %2$s. %11$s",
|
||||
ACTION_SPELL_AURA_APPLIED_DOSE = "stacked",
|
||||
ACTION_SPELL_AURA_APPLIED_DOSE_BUFF = "stacked",
|
||||
ACTION_SPELL_AURA_APPLIED_DOSE_BUFF_FULL_TEXT = "%4$s gains %1$s %2$s (%9$s).",
|
||||
ACTION_SPELL_AURA_APPLIED_DOSE_BUFF_FULL_TEXT_NO_SOURCE = "%4$s gains %2$s (%9$s).",
|
||||
ACTION_SPELL_AURA_APPLIED_DOSE_BUFF_POSSESSIVE = "1",
|
||||
ACTION_SPELL_AURA_APPLIED_DOSE_DEBUFF = "afflicted",
|
||||
ACTION_SPELL_AURA_APPLIED_DOSE_DEBUFF_FULL_TEXT = "%4$s is afflicted by %1$s %2$s (%9$s).",
|
||||
ACTION_SPELL_AURA_APPLIED_DOSE_DEBUFF_FULL_TEXT_NO_SOURCE = "%4$s is afflicted by %2$s (%9$s).",
|
||||
ACTION_SPELL_AURA_APPLIED_DOSE_DEBUFF_POSSESSIVE = "1",
|
||||
ACTION_SPELL_AURA_APPLIED_MASTER = "2",
|
||||
ACTION_SPELL_AURA_APPLIED_POSSESSIVE = "1",
|
||||
ACTION_SPELL_AURA_BROKEN = "broke",
|
||||
ACTION_SPELL_AURA_BROKEN_BUFF = "broke",
|
||||
ACTION_SPELL_AURA_BROKEN_BUFF_FULL_TEXT = "%1$s broke %4$s %2$s.",
|
||||
ACTION_SPELL_AURA_BROKEN_BUFF_FULL_TEXT_NO_SOURCE = "%1$s %2$s was broken by someone.",
|
||||
ACTION_SPELL_AURA_BROKEN_BUFF_POSSESSIVE = "0",
|
||||
ACTION_SPELL_AURA_BROKEN_DEBUFF = "broke",
|
||||
ACTION_SPELL_AURA_BROKEN_DEBUFF_FULL_TEXT = "%1$s broke %4$s %2$s.",
|
||||
ACTION_SPELL_AURA_BROKEN_DEBUFF_FULL_TEXT_NO_SOURCE = "%1$s %2$s was broken by someone.",
|
||||
ACTION_SPELL_AURA_BROKEN_DEBUFF_POSSESSIVE = "0",
|
||||
ACTION_SPELL_AURA_BROKEN_SPELL_BUFF = "broke",
|
||||
ACTION_SPELL_AURA_BROKEN_SPELL_BUFF_FULL_TEXT = "%1$s %5$s broke %4$s %2$s.",
|
||||
ACTION_SPELL_AURA_BROKEN_SPELL_BUFF_FULL_TEXT_NO_SOURCE = "%5$s broke %4$s %2$s.",
|
||||
ACTION_SPELL_AURA_BROKEN_SPELL_BUFF_POSSESSIVE = "1",
|
||||
ACTION_SPELL_AURA_BROKEN_SPELL_DEBUFF = "broke",
|
||||
ACTION_SPELL_AURA_BROKEN_SPELL_DEBUFF_FULL_TEXT = "%1$s %5$s broke %4$s %2$s.",
|
||||
ACTION_SPELL_AURA_BROKEN_SPELL_DEBUFF_FULL_TEXT_NO_SOURCE = "%5$s broke %4$s %2$s.",
|
||||
ACTION_SPELL_AURA_BROKEN_SPELL_DEBUFF_POSSESSIVE = "1",
|
||||
ACTION_SPELL_AURA_REFRESH = "refreshed",
|
||||
ACTION_SPELL_AURA_REFRESH_BUFF = "refreshed",
|
||||
ACTION_SPELL_AURA_REFRESH_BUFF_FULL_TEXT = "%1$s %2$s is refreshed on %4$s.",
|
||||
ACTION_SPELL_AURA_REFRESH_BUFF_FULL_TEXT_NO_SOURCE = "%2$s is refreshed on %4$s.",
|
||||
ACTION_SPELL_AURA_REFRESH_BUFF_MASTER = "2",
|
||||
ACTION_SPELL_AURA_REFRESH_BUFF_POSSESSIVE = "1",
|
||||
ACTION_SPELL_AURA_REFRESH_BUFF_WITH_POINTS_FULL_TEXT = "%1$s %2$s is refreshed on %4$s. %11$s",
|
||||
ACTION_SPELL_AURA_REFRESH_BUFF_WITH_POINTS_FULL_TEXT_NO_SOURCE = "%2$s is refreshed on %4$s. %11$s",
|
||||
ACTION_SPELL_AURA_REFRESH_DEBUFF = "refreshed",
|
||||
ACTION_SPELL_AURA_REFRESH_DEBUFF_FULL_TEXT = "%1$s %2$s is refreshed on %4$s.",
|
||||
ACTION_SPELL_AURA_REFRESH_DEBUFF_FULL_TEXT_NO_SOURCE = "%2$s is refreshed on %4$s.",
|
||||
ACTION_SPELL_AURA_REFRESH_DEBUFF_MASTER = "1",
|
||||
ACTION_SPELL_AURA_REFRESH_DEBUFF_POSSESSIVE = "1",
|
||||
ACTION_SPELL_AURA_REFRESH_DEBUFF_WITH_POINTS_FULL_TEXT = "%1$s %2$s is refreshed on %4$s. %11$s",
|
||||
ACTION_SPELL_AURA_REFRESH_DEBUFF_WITH_POINTS_FULL_TEXT_NO_SOURCE = "%2$s is refreshed on %4$s. %11$s",
|
||||
ACTION_SPELL_AURA_REFRESH_MASTER = "2",
|
||||
ACTION_SPELL_AURA_REMOVED = "removed",
|
||||
ACTION_SPELL_AURA_REMOVED_BUFF = "faded",
|
||||
ACTION_SPELL_AURA_REMOVED_BUFF_FULL_TEXT = "%1$s %2$s fades from %4$s.",
|
||||
ACTION_SPELL_AURA_REMOVED_BUFF_FULL_TEXT_NO_SOURCE = "%2$s fades from %4$s.",
|
||||
ACTION_SPELL_AURA_REMOVED_BUFF_POSSESSIVE = "1",
|
||||
ACTION_SPELL_AURA_REMOVED_BUFF_WITH_POINTS_FULL_TEXT = "%1$s %2$s fades from %4$s. %11$s",
|
||||
ACTION_SPELL_AURA_REMOVED_BUFF_WITH_POINTS_FULL_TEXT_NO_SOURCE = "%2$s fades from %4$s. %11$s",
|
||||
ACTION_SPELL_AURA_REMOVED_DEBUFF = "dissipated",
|
||||
ACTION_SPELL_AURA_REMOVED_DEBUFF_FULL_TEXT = "%1$s %2$s dissipates from %4$s.",
|
||||
ACTION_SPELL_AURA_REMOVED_DEBUFF_FULL_TEXT_NO_SOURCE = "%2$s dissipates from %4$s.",
|
||||
ACTION_SPELL_AURA_REMOVED_DEBUFF_POSSESSIVE = "1",
|
||||
ACTION_SPELL_AURA_REMOVED_DEBUFF_WITH_POINTS_FULL_TEXT = "%1$s %2$s dissipates from %4$s. %11$s",
|
||||
ACTION_SPELL_AURA_REMOVED_DEBUFF_WITH_POINTS_FULL_TEXT_NO_SOURCE = "%2$s dissipates from %4$s. %11$s",
|
||||
ACTION_SPELL_AURA_REMOVED_DOSE = "reduced",
|
||||
ACTION_SPELL_AURA_REMOVED_DOSE_BUFF = "reduced",
|
||||
ACTION_SPELL_AURA_REMOVED_DOSE_BUFF_FULL_TEXT = "%1$s %2$s (%9$s) diminishes.",
|
||||
ACTION_SPELL_AURA_REMOVED_DOSE_BUFF_FULL_TEXT_NO_SOURCE = "%2$s (%9$s) diminishes.",
|
||||
ACTION_SPELL_AURA_REMOVED_DOSE_BUFF_POSSESSIVE = "1",
|
||||
ACTION_SPELL_AURA_REMOVED_DOSE_DEBUFF = "diminished",
|
||||
ACTION_SPELL_AURA_REMOVED_DOSE_DEBUFF_FULL_TEXT = "%1$s %2$s (%9$s) subsides.",
|
||||
ACTION_SPELL_AURA_REMOVED_DOSE_DEBUFF_FULL_TEXT_NO_SOURCE = "%2$s (%9$s) subsides.",
|
||||
ACTION_SPELL_AURA_REMOVED_DOSE_DEBUFF_POSSESSIVE = "1",
|
||||
ACTION_SPELL_AURA_REMOVED_FULL_TEXT = "%1$s %2$s was removed from %4$s.",
|
||||
ACTION_SPELL_AURA_REMOVED_FULL_TEXT_NO_SOURCE = "%1$s %2$s was removed from %4$s.",
|
||||
ACTION_SPELL_AURA_REMOVED_POSSESSIVE = "1",
|
||||
ACTION_SPELL_BUILDING_DAMAGE = "strikes",
|
||||
ACTION_SPELL_BUILDING_DAMAGE_FULL_TEXT = "%1$s %2$s strikes %4$s for %5$s.%6$s",
|
||||
ACTION_SPELL_BUILDING_DAMAGE_FULL_TEXT_NO_SOURCE = "%2$s strike %4$s for %5$s.%6$s",
|
||||
ACTION_SPELL_BUILDING_DAMAGE_MASTER = "1",
|
||||
ACTION_SPELL_BUILDING_DAMAGE_POSSESSIVE = "1",
|
||||
ACTION_SPELL_BUILDING_HEAL = "repaired",
|
||||
ACTION_SPELL_BUILDING_HEAL_FULL_TEXT = "%1$s %2$s repairs %4$s for %9$s.%6$s",
|
||||
ACTION_SPELL_BUILDING_HEAL_FULL_TEXT_NO_SOURCE = "%2$s repairs %4$s for %9$s.%6$s",
|
||||
ACTION_SPELL_BUILDING_HEAL_POSSESSIVE = "1",
|
||||
ACTION_SPELL_CAST_FAILED = "failed",
|
||||
ACTION_SPELL_CAST_FAILED_FULL_TEXT = "%1$s %2$s failed.%6$s",
|
||||
ACTION_SPELL_CAST_FAILED_MASTER = "1",
|
||||
ACTION_SPELL_CAST_FAILED_POSSESSIVE = "1",
|
||||
ACTION_SPELL_CAST_START = "began to cast",
|
||||
ACTION_SPELL_CAST_START_FULL_TEXT = "%1$s begins casting %2$s at %4$s.",
|
||||
ACTION_SPELL_CAST_START_FULL_TEXT_NO_DEST = "%1$s begins casting %2$s.",
|
||||
ACTION_SPELL_CAST_START_FULL_TEXT_NO_SOURCE = "Something begins casting %2$s at %4$s.",
|
||||
ACTION_SPELL_CAST_START_MASTER = "2",
|
||||
ACTION_SPELL_CAST_START_POSSESSIVE = "0",
|
||||
ACTION_SPELL_CAST_SUCCESS = "cast",
|
||||
ACTION_SPELL_CAST_SUCCESS_FULL_TEXT = "%1$s casts %2$s at %4$s.",
|
||||
ACTION_SPELL_CAST_SUCCESS_FULL_TEXT_NO_DEST = "%1$s casts %2$s.",
|
||||
ACTION_SPELL_CAST_SUCCESS_FULL_TEXT_NO_SOURCE = "Something cast %2$s at %4$s.",
|
||||
ACTION_SPELL_CAST_SUCCESS_MASTER = "2",
|
||||
ACTION_SPELL_CAST_SUCCESS_POSSESSIVE = "0",
|
||||
ACTION_SPELL_CREATE = "created",
|
||||
ACTION_SPELL_CREATE_FULL_TEXT = "%1$s %2$s creates a %4$s.%6$s",
|
||||
ACTION_SPELL_CREATE_FULL_TEXT_NO_SOURCE = "%2$s creates a %4$s.%6$s",
|
||||
ACTION_SPELL_CREATE_POSSESSIVE = "1",
|
||||
ACTION_SPELL_DAMAGE = "hit",
|
||||
ACTION_SPELL_DAMAGE_FULL_TEXT = "%1$s %2$s hits %4$s for %5$s.%6$s",
|
||||
ACTION_SPELL_DAMAGE_FULL_TEXT_NO_SOURCE = "%2$s hits %4$s for %5$s.%6$s",
|
||||
ACTION_SPELL_DAMAGE_MASTER = "1",
|
||||
ACTION_SPELL_DAMAGE_POSSESSIVE = "1",
|
||||
ACTION_SPELL_DISPEL = "dispelled",
|
||||
ACTION_SPELL_DISPEL_BUFF = "dispelled",
|
||||
ACTION_SPELL_DISPEL_BUFF_FULL_TEXT = "%4$s %5$s is dispelled by %1$s %2$s.",
|
||||
ACTION_SPELL_DISPEL_BUFF_FULL_TEXT_NO_SOURCE = "%4$s %5$s is dispelled by %2$s.",
|
||||
ACTION_SPELL_DISPEL_BUFF_POSSESSIVE = "1",
|
||||
ACTION_SPELL_DISPEL_DEBUFF = "cleansed",
|
||||
ACTION_SPELL_DISPEL_DEBUFF_FULL_TEXT = "%4$s %5$s is cleansed by %1$s %2$s.",
|
||||
ACTION_SPELL_DISPEL_DEBUFF_FULL_TEXT_NO_SOURCE = "%4$s %5$s cleansed by %2$s.",
|
||||
ACTION_SPELL_DISPEL_DEBUFF_POSSESSIVE = "1",
|
||||
ACTION_SPELL_DISPEL_FAILED = "dispel failed",
|
||||
ACTION_SPELL_DISPEL_FAILED_FULL_TEXT = "%1$s %2$s fails to dispel %4$s %5$s.",
|
||||
ACTION_SPELL_DISPEL_FAILED_FULL_TEXT_NO_SOURCE = "%2$s fails to dispel %4$s %5$s.",
|
||||
ACTION_SPELL_DISPEL_FAILED_POSSESSIVE = "1",
|
||||
ACTION_SPELL_DISPEL_POSSESSIVE = "1",
|
||||
ACTION_SPELL_DRAIN = "drained",
|
||||
ACTION_SPELL_DRAIN_FULL_TEXT = "%1$s %2$s drains %9$s %8$s from %4$s.",
|
||||
ACTION_SPELL_DRAIN_FULL_TEXT_NO_SOURCE = " %2$s drains %9$s %8$s from %4$s.",
|
||||
ACTION_SPELL_DRAIN_POSSESSIVE = "1",
|
||||
ACTION_SPELL_DURABILITY_DAMAGE = "durability loss",
|
||||
ACTION_SPELL_DURABILITY_DAMAGE_ALL = "full durability loss",
|
||||
ACTION_SPELL_DURABILITY_DAMAGE_ALL_FULL_TEXT = "%1$s %2$s damages %4$s: all items damaged.",
|
||||
ACTION_SPELL_DURABILITY_DAMAGE_ALL_POSSESSIVE = "1",
|
||||
ACTION_SPELL_DURABILITY_DAMAGE_FULL_TEXT = "%1$s %2$s damages %4$s: %5$s damaged.",
|
||||
ACTION_SPELL_DURABILITY_DAMAGE_POSSESSIVE = "1",
|
||||
ACTION_SPELL_ENERGIZE = "energized",
|
||||
ACTION_SPELL_ENERGIZE_FULL_TEXT = "%4$s gains %9$s %8$s from %1$s %2$s.",
|
||||
ACTION_SPELL_ENERGIZE_FULL_TEXT_NO_SOURCE = "%4$s gains %9$s %8$s from %2$s.",
|
||||
ACTION_SPELL_ENERGIZE_POSSESSIVE = "1",
|
||||
ACTION_SPELL_ENERGIZE_RESULT = "%9$s %8$s Gained",
|
||||
ACTION_SPELL_EXTRA_ATTACKS = "granted extra attacks",
|
||||
ACTION_SPELL_EXTRA_ATTACKS_FULL_TEXT = "%1$s gains %9$s extra attacks through %2$s.",
|
||||
ACTION_SPELL_EXTRA_ATTACKS_FULL_TEXT_NO_SOURCE = "%9$s extra attacks granted by %2$s.",
|
||||
ACTION_SPELL_EXTRA_ATTACKS_POSSESSIVE = "1",
|
||||
ACTION_SPELL_HEAL = "healed",
|
||||
ACTION_SPELL_HEAL_FULL_TEXT = "%1$s %2$s heals %4$s for %9$s.%6$s",
|
||||
ACTION_SPELL_HEAL_FULL_TEXT_NO_SOURCE = "%2$s heals %4$s for %9$s.%6$s",
|
||||
ACTION_SPELL_HEAL_POSSESSIVE = "1",
|
||||
ACTION_SPELL_INSTAKILL = "killed",
|
||||
ACTION_SPELL_INSTAKILL_FULL_TEXT = "%1$s %2$s instantly kills %4$s.",
|
||||
ACTION_SPELL_INSTAKILL_FULL_TEXT_NO_SOURCE = "%2$s instantly kills %4$s.",
|
||||
ACTION_SPELL_INSTAKILL_POSSESSIVE = "1",
|
||||
ACTION_SPELL_INSTAKILL_UNCONSCIOUS = "knocked out",
|
||||
ACTION_SPELL_INSTAKILL_UNCONSCIOUS_FULL_TEXT = "%1$s %2$s knocks out %4$s.",
|
||||
ACTION_SPELL_INSTAKILL_UNCONSCIOUS_FULL_TEXT_NO_SOURCE = "%2$s knocks out %4$s.",
|
||||
ACTION_SPELL_INSTAKILL_UNCONSCIOUS_POSSESSIVE = "1",
|
||||
ACTION_SPELL_INTERRUPT = "interrupted",
|
||||
ACTION_SPELL_INTERRUPT_FULL_TEXT = "%1$s %2$s interrupts %4$s %5$s.",
|
||||
ACTION_SPELL_INTERRUPT_FULL_TEXT_NO_SOURCE = "%2$s interrupts %4$s %5$s.",
|
||||
ACTION_SPELL_INTERRUPT_POSSESSIVE = "1",
|
||||
ACTION_SPELL_LEECH = "drained",
|
||||
ACTION_SPELL_LEECH_FULL_TEXT = "%1$s %2$s drains %9$s %8$s from %4$s. %1$s gains %10$s %8$s.",
|
||||
ACTION_SPELL_LEECH_FULL_TEXT_NO_SOURCE = "%2$s drains %9$s %8$s from %4$s.",
|
||||
ACTION_SPELL_LEECH_POSSESSIVE = "1",
|
||||
ACTION_SPELL_LEECH_RESULT = "%10$s %8$s Gained",
|
||||
ACTION_SPELL_MISSED = "missed",
|
||||
ACTION_SPELL_MISSED_ABSORB = "Absorbed",
|
||||
ACTION_SPELL_MISSED_ABSORB_FULL_TEXT = "%1$s %2$s was absorbed by %4$s.%6$s",
|
||||
ACTION_SPELL_MISSED_ABSORB_FULL_TEXT_NO_SOURCE = "%2$s was absorbed by %4$s.%6$s",
|
||||
ACTION_SPELL_MISSED_ABSORB_POSSESSIVE = "1",
|
||||
ACTION_SPELL_MISSED_BLOCK = "Blocked",
|
||||
ACTION_SPELL_MISSED_BLOCK_FULL_TEXT = "%1$s %2$s was blocked by %4$s.%6$s",
|
||||
ACTION_SPELL_MISSED_BLOCK_FULL_TEXT_NO_SOURCE = "%2$s was blocked by %4$s.%6$s",
|
||||
ACTION_SPELL_MISSED_BLOCK_POSSESSIVE = "1",
|
||||
ACTION_SPELL_MISSED_DEFLECT = "Deflected",
|
||||
ACTION_SPELL_MISSED_DEFLECT_FULL_TEXT = "%1$s %2$s was deflected by %4$s.",
|
||||
ACTION_SPELL_MISSED_DEFLECT_FULL_TEXT_NO_SOURCE = "%2$s was deflected by %4$s.",
|
||||
ACTION_SPELL_MISSED_DEFLECT_POSSESSIVE = "1",
|
||||
ACTION_SPELL_MISSED_DODGE = "Dodged",
|
||||
ACTION_SPELL_MISSED_DODGE_FULL_TEXT = "%1$s %2$s was dodged by %4$s.",
|
||||
ACTION_SPELL_MISSED_DODGE_FULL_TEXT_NO_SOURCE = "%2$s was dodged by %4$s.",
|
||||
ACTION_SPELL_MISSED_DODGE_POSSESSIVE = "1",
|
||||
ACTION_SPELL_MISSED_EVADE = "Evaded",
|
||||
ACTION_SPELL_MISSED_EVADE_FULL_TEXT = "%1$s %2$s was evaded by %4$s.",
|
||||
ACTION_SPELL_MISSED_EVADE_FULL_TEXT_NO_SOURCE = "%2$s was evaded by %4$s.",
|
||||
ACTION_SPELL_MISSED_EVADE_POSSESSIVE = "1",
|
||||
ACTION_SPELL_MISSED_FULL_TEXT = "%1$s %2$s missed %4$s.",
|
||||
ACTION_SPELL_MISSED_FULL_TEXT_NO_SOURCE = "%2$s missed %4$s.",
|
||||
ACTION_SPELL_MISSED_IMMUNE = "Immune",
|
||||
ACTION_SPELL_MISSED_IMMUNE_FULL_TEXT = "%1$s %2$s failed. %4$s was immune.",
|
||||
ACTION_SPELL_MISSED_IMMUNE_FULL_TEXT_NO_SOURCE = "%2$s failed. %4$s was immune.",
|
||||
ACTION_SPELL_MISSED_MISFIRE = "Misfired",
|
||||
ACTION_SPELL_MISSED_MISFIRE_FULL_TEXT = "%1$s %2$s misfired on %4$s.",
|
||||
ACTION_SPELL_MISSED_MISFIRE_FULL_TEXT_NO_SOURCE = "%2$s misfired on %4$s.",
|
||||
ACTION_SPELL_MISSED_MISFIRE_POSSESSIVE = "1",
|
||||
ACTION_SPELL_MISSED_MISS = "Missed",
|
||||
ACTION_SPELL_MISSED_MISS_FULL_TEXT = "%1$s %2$s misses %4$s.",
|
||||
ACTION_SPELL_MISSED_MISS_FULL_TEXT_NO_SOURCE = "%2$s misses %4$s.",
|
||||
ACTION_SPELL_MISSED_MISS_POSSESSIVE = "1",
|
||||
ACTION_SPELL_MISSED_PARRY = "Parried",
|
||||
ACTION_SPELL_MISSED_PARRY_FULL_TEXT = "%1$s %2$s was parried by %4$s.",
|
||||
ACTION_SPELL_MISSED_PARRY_FULL_TEXT_NO_SOURCE = "%2$s was parried by %4$s.",
|
||||
ACTION_SPELL_MISSED_PARRY_POSSESSIVE = "1",
|
||||
ACTION_SPELL_MISSED_POSSESSIVE = "1",
|
||||
ACTION_SPELL_MISSED_REFLECT = "reflected",
|
||||
ACTION_SPELL_MISSED_REFLECT_FULL_TEXT = "%1$s %2$s was reflected by %4$s.",
|
||||
ACTION_SPELL_MISSED_REFLECT_FULL_TEXT_NO_SOURCE = "%2$s was reflected by %4$s.",
|
||||
ACTION_SPELL_MISSED_RESIST = "resisted",
|
||||
ACTION_SPELL_MISSED_RESIST_FULL_TEXT = "%1$s %2$s was fully resisted by %4$s.%6$s",
|
||||
ACTION_SPELL_MISSED_RESIST_FULL_TEXT_NO_SOURCE = "%2$s was fully resisted by %4$s.%6$s",
|
||||
ACTION_SPELL_MISSED_RESIST_POSSESSIVE = "1",
|
||||
ACTION_SPELL_PERIODIC_DAMAGE = "damaged",
|
||||
ACTION_SPELL_PERIODIC_DAMAGE_FULL_TEXT = "%4$s suffers %5$s damage from %1$s %2$s.%6$s",
|
||||
ACTION_SPELL_PERIODIC_DAMAGE_FULL_TEXT_NO_SOURCE = "%4$s suffers %5$s damage from %2$s.%6$s",
|
||||
ACTION_SPELL_PERIODIC_DAMAGE_POSSESSIVE = "1",
|
||||
ACTION_SPELL_PERIODIC_DRAIN = "drained",
|
||||
ACTION_SPELL_PERIODIC_DRAIN_FULL_TEXT = "%1$s %2$s drains %9$s %8$s from %4$s.",
|
||||
ACTION_SPELL_PERIODIC_DRAIN_FULL_TEXT_NO_SOURCE = "%2$s drains %9$s %8$s from %4$s.",
|
||||
ACTION_SPELL_PERIODIC_DRAIN_POSSESSIVE = "1",
|
||||
ACTION_SPELL_PERIODIC_ENERGIZE = "energized",
|
||||
ACTION_SPELL_PERIODIC_ENERGIZE_FULL_TEXT = "%4$s gains %9$s %8$s from %1$s %2$s.",
|
||||
ACTION_SPELL_PERIODIC_ENERGIZE_FULL_TEXT_NO_SOURCE = "%4$s gains %9$s %8$s from %2$s.",
|
||||
ACTION_SPELL_PERIODIC_ENERGIZE_POSSESSIVE = "1",
|
||||
ACTION_SPELL_PERIODIC_ENERGIZE_RESULT = "$extraAmount %8$s Gained",
|
||||
ACTION_SPELL_PERIODIC_HEAL = "healed",
|
||||
ACTION_SPELL_PERIODIC_HEAL_FULL_TEXT = "%4$s gains %9$s Health from %1$s %2$s.%6$s",
|
||||
ACTION_SPELL_PERIODIC_HEAL_FULL_TEXT_NO_SOURCE = "%4$s gains %9$s health from %2$s.%6$s",
|
||||
ACTION_SPELL_PERIODIC_HEAL_POSSESSIVE = "1",
|
||||
ACTION_SPELL_PERIODIC_LEECH = "drained",
|
||||
ACTION_SPELL_PERIODIC_LEECH_FULL_TEXT = "%1$s %2$s drains %9$s %8$s from %4$s. %1$s gains %10$s %8$s.",
|
||||
ACTION_SPELL_PERIODIC_LEECH_FULL_TEXT_NO_SOURCE = "%2$s drains %9$s %8$s from %4$s. %1$s gains %10$s %8$s.",
|
||||
ACTION_SPELL_PERIODIC_LEECH_POSSESSIVE = "1",
|
||||
ACTION_SPELL_PERIODIC_LEECH_RESULT = "(%10$s %8$s Gained)",
|
||||
ACTION_SPELL_PERIODIC_MISSED = "missed",
|
||||
ACTION_SPELL_PERIODIC_MISSED_ABSORB = "(%1$s Absorbed)",
|
||||
ACTION_SPELL_PERIODIC_MISSED_ABSORB_FULL_TEXT = "%1$s %2$s was absorbed by %4$s.%6$s",
|
||||
ACTION_SPELL_PERIODIC_MISSED_ABSORB_FULL_TEXT_NO_SOURCE = "%2$s was absorbed by %4$s.%6$s",
|
||||
ACTION_SPELL_PERIODIC_MISSED_ABSORB_POSSESSIVE = "1",
|
||||
ACTION_SPELL_PERIODIC_MISSED_BLOCK = "(Tick Blocked)",
|
||||
ACTION_SPELL_PERIODIC_MISSED_BLOCK_FULL_TEXT = "%1$s %2$s was blocked by %4$s for a moment.%6$s",
|
||||
ACTION_SPELL_PERIODIC_MISSED_BLOCK_FULL_TEXT_NO_SOURCE = "%2$s was blocked by %4$s for a moment.%6$s",
|
||||
ACTION_SPELL_PERIODIC_MISSED_BLOCK_POSSESSIVE = "1",
|
||||
ACTION_SPELL_PERIODIC_MISSED_DEFLECTED = "(Tick Deflected)",
|
||||
ACTION_SPELL_PERIODIC_MISSED_DEFLECTED_FULL_TEXT = "%1$s %2$s was deflected by %4$s for a moment.%6$s",
|
||||
ACTION_SPELL_PERIODIC_MISSED_DEFLECTED_FULL_TEXT_NO_SOURCE = "%2$s was deflected by %4$s for a moment.%6$s",
|
||||
ACTION_SPELL_PERIODIC_MISSED_DEFLECTED_POSSESSIVE = "1",
|
||||
ACTION_SPELL_PERIODIC_MISSED_DODGE = "(Tick Dodged)",
|
||||
ACTION_SPELL_PERIODIC_MISSED_DODGE_FULL_TEXT = "%1$s %2$s was dodged by %4$s for a moment.%6$s",
|
||||
ACTION_SPELL_PERIODIC_MISSED_DODGE_FULL_TEXT_NO_SOURCE = "%2$s was dodged by %4$s for a moment.%6$s",
|
||||
ACTION_SPELL_PERIODIC_MISSED_DODGE_POSSESSIVE = "1",
|
||||
ACTION_SPELL_PERIODIC_MISSED_EVADED = "(Tick Evaded)",
|
||||
ACTION_SPELL_PERIODIC_MISSED_EVADED_FULL_TEXT = "%1$s %2$s was evaded by %4$s for a moment.%6$s",
|
||||
ACTION_SPELL_PERIODIC_MISSED_EVADED_FULL_TEXT_NO_SOURCE = "%2$s was evaded by %4$s for a moment.%6$s",
|
||||
ACTION_SPELL_PERIODIC_MISSED_EVADED_POSSESSIVE = "1",
|
||||
ACTION_SPELL_PERIODIC_MISSED_FULL_TEXT = "%1$s %2$s does not affect %4$s for a moment.%6$s",
|
||||
ACTION_SPELL_PERIODIC_MISSED_FULL_TEXT_NO_SOURCE = "%2$s does not affect %4$s for a moment.%6$s",
|
||||
ACTION_SPELL_PERIODIC_MISSED_IMMUNE = "(Immune)",
|
||||
ACTION_SPELL_PERIODIC_MISSED_IMMUNE_FULL_TEXT = "%4$s was immune to %1$s %2$s.%6$s",
|
||||
ACTION_SPELL_PERIODIC_MISSED_IMMUNE_FULL_TEXT_NO_SOURCE = "%4$s was immune to %2$s.%6$s",
|
||||
ACTION_SPELL_PERIODIC_MISSED_IMMUNE_POSSESSIVE = "1",
|
||||
ACTION_SPELL_PERIODIC_MISSED_MISS = "(Tick Missed)",
|
||||
ACTION_SPELL_PERIODIC_MISSED_MISS_FULL_TEXT = "%1$s %2$s missed %4$s for a moment.%6$s",
|
||||
ACTION_SPELL_PERIODIC_MISSED_MISS_FULL_TEXT_NO_SOURCE = "%2$s missed %4$s for a moment.%6$s",
|
||||
ACTION_SPELL_PERIODIC_MISSED_MISS_POSSESSIVE = "1",
|
||||
ACTION_SPELL_PERIODIC_MISSED_PARRY = "(Tick Parried)",
|
||||
ACTION_SPELL_PERIODIC_MISSED_PARRY_FULL_TEXT = "%1$s %2$s was parried by %4$s for a moment.%6$s",
|
||||
ACTION_SPELL_PERIODIC_MISSED_PARRY_FULL_TEXT_NO_SOURCE = "%2$s was parried by %4$s for a moment.%6$s",
|
||||
ACTION_SPELL_PERIODIC_MISSED_PARRY_POSSESSIVE = "1",
|
||||
ACTION_SPELL_PERIODIC_MISSED_POSSESSIVE = "1",
|
||||
ACTION_SPELL_PERIODIC_MISSED_RESIST = "(Tick Resisted)",
|
||||
ACTION_SPELL_PERIODIC_MISSED_RESIST_FULL_TEXT = "%1$s %2$s does not affect %4$s. %4$s resisted.%6$s",
|
||||
ACTION_SPELL_PERIODIC_MISSED_RESIST_FULL_TEXT_NO_SOURCE = "%2$s does not affect %4$s. %4$s resisted.%6$s",
|
||||
ACTION_SPELL_PERIODIC_MISSED_RESIST_POSSESSIVE = "1",
|
||||
ACTION_SPELL_RESURRECT = "resurrected",
|
||||
ACTION_SPELL_RESURRECT_FULL_TEXT = "%1$s %2$s resurrects %4$s.%6$s",
|
||||
ACTION_SPELL_RESURRECT_FULL_TEXT_NO_SOURCE = "%2$s resurrects %4$s.%6$s",
|
||||
ACTION_SPELL_RESURRECT_POSSESSIVE = "1",
|
||||
ACTION_SPELL_STOLEN = "stole",
|
||||
ACTION_SPELL_STOLEN_BUFF = "stole",
|
||||
ACTION_SPELL_STOLEN_BUFF_FULL_TEXT = "%1$s %2$s steals %4$s %5$s.",
|
||||
ACTION_SPELL_STOLEN_BUFF_FULL_TEXT_NO_SOURCE = "%2$s steals %4$s %5$s.",
|
||||
ACTION_SPELL_STOLEN_BUFF_POSSESSIVE = "1",
|
||||
ACTION_SPELL_STOLEN_BUFF__POSSESSIVE = "1",
|
||||
ACTION_SPELL_STOLEN_DEBUFF = "stole",
|
||||
ACTION_SPELL_STOLEN_DEBUFF_FULL_TEXT = "%1$s %2$s transfers %4$s $extraSpell to %1$s.",
|
||||
ACTION_SPELL_STOLEN_DEBUFF_FULL_TEXT_NO_SOURCE = "%2$s transfers %4$s $extraSpell.",
|
||||
ACTION_SPELL_STOLEN_DEBUFF_POSSESSIVE = "1",
|
||||
ACTION_SPELL_STOLEN_FULL_TEXT = "%1$s %2$s steals %4$s %5$s.",
|
||||
ACTION_SPELL_STOLEN_FULL_TEXT_NO_SOURCE = "%2$s steals %4$s %5$s.",
|
||||
ACTION_SPELL_STOLEN_POSSESSIVE = "1",
|
||||
ACTION_SPELL_SUMMON = "summoned",
|
||||
ACTION_SPELL_SUMMON_FULL_TEXT = "%1$s %2$s summons %4$s.%6$s",
|
||||
ACTION_SPELL_SUMMON_FULL_TEXT_NO_SOURCE = "%2$s summons %4$s.%6$s",
|
||||
ACTION_SPELL_SUMMON_POSSESSIVE = "1",
|
||||
ACTION_SWING = "Melee",
|
||||
ACTION_SWING_DAMAGE = "hit",
|
||||
ACTION_SWING_DAMAGE_FULL_TEXT = "%1$s melee swing hits %4$s for %5$s.%6$s",
|
||||
ACTION_SWING_DAMAGE_FULL_TEXT_NO_SOURCE = "A melee swing hit %4$s for %5$s.%6$s",
|
||||
ACTION_SWING_DAMAGE_POSSESSIVE = "1",
|
||||
ACTION_SWING_MISSED = "missed",
|
||||
ACTION_SWING_MISSED_ABSORB = "(Absorbed)",
|
||||
ACTION_SWING_MISSED_ABSORB_FULL_TEXT = "%1$s attack was absorbed by %4$s.%6$s",
|
||||
ACTION_SWING_MISSED_ABSORB_POSSESSIVE = "1",
|
||||
ACTION_SWING_MISSED_BLOCK = "(Blocked)",
|
||||
ACTION_SWING_MISSED_BLOCK_FULL_TEXT = "%1$s attack was blocked by %4$s.%6$s",
|
||||
ACTION_SWING_MISSED_BLOCK_POSSESSIVE = "1",
|
||||
ACTION_SWING_MISSED_DEFLECT = "(Deflected)",
|
||||
ACTION_SWING_MISSED_DEFLECT_FULL_TEXT = "%1$s attack was deflected by %4$s.",
|
||||
ACTION_SWING_MISSED_DEFLECT_POSSESSIVE = "1",
|
||||
ACTION_SWING_MISSED_DODGE = "(Dodged)",
|
||||
ACTION_SWING_MISSED_DODGE_FULL_TEXT = "%1$s attack was dodged by %4$s.",
|
||||
ACTION_SWING_MISSED_DODGE_POSSESSIVE = "1",
|
||||
ACTION_SWING_MISSED_EVADE = "(Evaded)",
|
||||
ACTION_SWING_MISSED_EVADE_FULL_TEXT = "%1$s attack was evaded by %4$s.",
|
||||
ACTION_SWING_MISSED_EVADE_POSSESSIVE = "1",
|
||||
ACTION_SWING_MISSED_FULL_TEXT = "%1$s attack misses %4$s.",
|
||||
ACTION_SWING_MISSED_IMMUNE = "(Immune)",
|
||||
ACTION_SWING_MISSED_IMMUNE_FULL_TEXT = "%1$s attack failed. %4$s was immune.",
|
||||
ACTION_SWING_MISSED_IMMUNE_POSSESSIVE = "1",
|
||||
ACTION_SWING_MISSED_MISFIRE = "(Misfired)",
|
||||
ACTION_SWING_MISSED_MISFIRE_FULL_TEXT = "%1$s attack misfired on %4$s.",
|
||||
ACTION_SWING_MISSED_MISFIRE_POSSESSIVE = "1",
|
||||
ACTION_SWING_MISSED_MISS = "(Missed)",
|
||||
ACTION_SWING_MISSED_MISS_FULL_TEXT = "%1$s attack misses %4$s.",
|
||||
ACTION_SWING_MISSED_MISS_POSSESSIVE = "1",
|
||||
ACTION_SWING_MISSED_PARRY = "(Parried)",
|
||||
ACTION_SWING_MISSED_PARRY_FULL_TEXT = "%1$s attack was parried by %4$s.",
|
||||
ACTION_SWING_MISSED_PARRY_POSSESSIVE = "1",
|
||||
ACTION_SWING_MISSED_POSSESSIVE = "1",
|
||||
ACTION_SWING_MISSED_RESIST = "(Resisted)",
|
||||
ACTION_SWING_MISSED_RESIST_FULL_TEXT = "%1$s attack was fully resisted by %4$s.%6$s",
|
||||
ACTION_SWING_MISSED_RESIST_POSSESSIVE = "1",
|
||||
ACTION_UNIT_BECCOMES_UNCONSCIOUS = "collapses",
|
||||
ACTION_UNIT_BECOMES_UNCONSCIOUS_FULL_TEXT = "%4$s collapses.",
|
||||
ACTION_UNIT_BECOMES_UNCONSCIOUS_POSSESSIVE = "0",
|
||||
ACTION_UNIT_DESTROYED = "destroyed",
|
||||
ACTION_UNIT_DESTROYED_FULL_TEXT = "%4$s was destroyed.",
|
||||
ACTION_UNIT_DESTROYED_POSSESSIVE = "0",
|
||||
ACTION_UNIT_DIED = "died",
|
||||
ACTION_UNIT_DIED_FULL_TEXT = "%4$s died.",
|
||||
ACTION_UNIT_DIED_POSSESSIVE = "0",
|
||||
ACTION_UNIT_DISSIPATES = "dissipates",
|
||||
ACTION_UNIT_DISSIPATES_FULL_TEXT = "%4$s dissipates.",
|
||||
ACTION_UNIT_DISSIPATES_POSSESSIVE = "0",
|
||||
ADD = "Add",
|
||||
ADDITIONAL_FILTERS = "Additional Filters",
|
||||
ADD_FILTER = "Add Filter",
|
||||
AURAS = "Auras",
|
||||
AURAS_COMBATLOG_TOOLTIP = "Shows message about beneficial and harmful state effects.",
|
||||
BENEFICIAL = "Beneficial",
|
||||
BENEFICIAL_AURA_COMBATLOG_TOOLTIP = "Show when you gain or lose a beneficial aura.",
|
||||
BLIZZARD_COMBAT_LOG_MENU_BOTH = "Show everything involving %s?",
|
||||
BLIZZARD_COMBAT_LOG_MENU_EVERYTHING = "Show everything",
|
||||
BLIZZARD_COMBAT_LOG_MENU_INCOMING = "What happened to %s?",
|
||||
BLIZZARD_COMBAT_LOG_MENU_OUTGOING = "What did %s do?",
|
||||
BLIZZARD_COMBAT_LOG_MENU_OUTGOING_ME = "What did %s do to you?",
|
||||
BLIZZARD_COMBAT_LOG_MENU_RESET = "Reset",
|
||||
BLIZZARD_COMBAT_LOG_MENU_SAVE = "Save as a new filter",
|
||||
BLIZZARD_COMBAT_LOG_MENU_SPELL_HIDE = "Hide messages like this one.",
|
||||
BLIZZARD_COMBAT_LOG_MENU_SPELL_LINK = "Link %s to chat.",
|
||||
BY_SOURCE = "By Source",
|
||||
BY_SOURCE_COMBATLOG_TOOLTIP = "Line color based on caster.",
|
||||
BY_TARGET = "By Target",
|
||||
BY_TARGET_COMBATLOG_TOOLTIP = "Line color based on target.",
|
||||
COLORIZE = "Colorize:",
|
||||
COLORS = "Colors",
|
||||
COLOR_BY_SCHOOL = "Color-by-School",
|
||||
COMBATLOG_DEFAULTS = "Combat Log Defaults",
|
||||
COMBATLOG_FILTER_STRING_CUSTOM_UNIT = "Custom Unit",
|
||||
COMBATLOG_FILTER_STRING_FRIENDLY_UNITS = "Friends",
|
||||
COMBATLOG_FILTER_STRING_HOSTILE_PLAYERS = "Enemy Players",
|
||||
COMBATLOG_FILTER_STRING_HOSTILE_UNITS = "Enemy Units",
|
||||
COMBATLOG_FILTER_STRING_ME = "Me",
|
||||
COMBATLOG_FILTER_STRING_MY_PET = "Pet",
|
||||
COMBATLOG_FILTER_STRING_NEUTRAL_UNITS = "Neutral",
|
||||
COMBATLOG_FILTER_STRING_UNKNOWN_UNITS = "Unknown",
|
||||
COMBATLOG_HIGHLIGHT_ABILITY = "Ability",
|
||||
COMBATLOG_HIGHLIGHT_DAMAGE = "Damage",
|
||||
COMBATLOG_HIGHLIGHT_KILL = "Kill",
|
||||
COMBATLOG_HIGHLIGHT_SCHOOL = "School",
|
||||
COMBATLOG_UNKNOWN_UNIT = "Something",
|
||||
COMBAT_FACTION_CHANGE = "Reputation",
|
||||
COMBAT_HONOR_GAIN = "Honor",
|
||||
COMBAT_LOG_UNIT_YOU_ENABLED = "1",
|
||||
COMBAT_MISC_INFO = "Misc Info",
|
||||
COMBAT_XP_GAIN = "Experience",
|
||||
CONFIRM_COMBAT_FILTER_DEFAULTS = "Do you really want to reset your filters to their default values?",
|
||||
CONFIRM_COMBAT_FILTER_DELETE = "Do you really want to delete this filter?",
|
||||
COPY_FILTER = "Copy Filter",
|
||||
DAMAGE_NUMBER = "Damage Number",
|
||||
DAMAGE_SCHOOL_TEXT = "Damage School",
|
||||
DAMAGE_SHIELD = "Damage Shields",
|
||||
DAMAGE_SHIELD_COMBATLOG_TOOLTIP = "Show messages when a spell or ability deals damage in reaction to a melee swing, such as Thorns.",
|
||||
DEATHS_COMBATLOG_TOOLTIP = "Show messages when something dies.",
|
||||
DEFAULT_COMBATLOG_FILTER_NAME = "Filter %d",
|
||||
DISPELS = "Dispels",
|
||||
DISPEL_AURA_COMBATLOG_TOOLTIP = "Show when an aura is removed, broken, or stolen.",
|
||||
DONE_BY = "Done By:",
|
||||
DONE_TO = "Done To:",
|
||||
DRAINS = "Drains",
|
||||
ENTER_FILTER_NAME = "Enter filter name:",
|
||||
ENTIRE_LINE = "Entire Line",
|
||||
ENTIRE_LINE_COMBATLOG_TOOLTIP = "Color the entire line based on the selection below.",
|
||||
ENVIRONMENTAL_DAMAGE = "Environmental Damage",
|
||||
ENVIRONMENTAL_DAMAGE_COMBATLOG_TOOLTIP = "Show messages when someone takes damage from falling, drowning or swimming in lava.",
|
||||
EXAMPLE_SPELL_FIREBALL = "Fireball",
|
||||
EXAMPLE_SPELL_FROSTBOLT = "Frostbolt",
|
||||
EXAMPLE_TARGET_MONSTER = "Monster",
|
||||
EXAMPLE_TEXT = "Example Text:",
|
||||
EXTRA_ATTACKS = "Extra Attacks",
|
||||
FAILURES = "Failures",
|
||||
FILTER_BY_ENEMIES_COMBATLOG_TOOLTIP = "Actions performed by hostile creatures and pets.",
|
||||
FILTER_BY_FRIENDS_COMBATLOG_TOOLTIP = "Actions performed by friendly players, pets, and creatures.",
|
||||
FILTER_BY_HOSTILE_PLAYERS_COMBATLOG_TOOLTIP = "Actions performed by hostile players.",
|
||||
FILTER_BY_ME_COMBATLOG_TOOLTIP = "Actions performed by you, your traps, and your spells.",
|
||||
FILTER_BY_NEUTRAL_COMBATLOG_TOOLTIP = "Actions performed by neutral creatures.",
|
||||
FILTER_BY_PET_COMBATLOG_TOOLTIP = "Actions performed by your pets, summoned guardians, and charmed players.",
|
||||
FILTER_BY_UNKNOWN_COMBATLOG_TOOLTIP = "Actions performed by undefined sources such as falling, acid, or lava.",
|
||||
FILTER_NAME = "Filter Name",
|
||||
FILTER_TO_FRIENDS_COMBATLOG_TOOLTIP = "Actions performed on friendly players, pets, and creatures.",
|
||||
FILTER_TO_HOSTILE_COMBATLOG_TOOLTIP = "Actions performed on hostile pets and creatures.",
|
||||
FILTER_TO_HOSTILE_PLAYERS_COMBATLOG_TOOLTIP = "Actions performed on hostile players.",
|
||||
FILTER_TO_ME_COMBATLOG_TOOLTIP = "Actions performed on you.",
|
||||
FILTER_TO_NEUTRAL_COMBATLOG_TOOLTIP = "Actions performed on neutral creatures.",
|
||||
FILTER_TO_PET_COMBATLOG_TOOLTIP = "Actions performed on your pets, summoned guardians, and charmed players.",
|
||||
FILTER_TO_UNKNOWN_COMBATLOG_TOOLTIP = "Actions performed on invisible targets.",
|
||||
FORMATTING = "Formatting",
|
||||
FULL_TEXT_COMBATLOG_TOOLTIP = "Show combat log entries as full sentences.",
|
||||
HARMFUL_AURA_COMBATLOG_TOOLTIP = "Show when you gain or lose a harmful aura.",
|
||||
HEALS = "Heals",
|
||||
HIGHLIGHTING = "Highlighting:",
|
||||
HIGHLIGHT_ABILITY_COMBATLOG_TOOLTIP = "Highlight ability names in combat messages.",
|
||||
HIGHLIGHT_DAMAGE_COMBATLOG_TOOLTIP = "Highlight damage numbers in combat messages.",
|
||||
HIGHLIGHT_KILL_COMBATLOG_TOOLTIP = "Highlights the entire line when you or a party member makes a kill.",
|
||||
HIGHLIGHT_SCHOOL_COMBATLOG_TOOLTIP = "Highlight the school of a spell in combat messages.",
|
||||
HOSTILE = "Hostile",
|
||||
INTERRUPTS = "Interrupts",
|
||||
ITEM_NAMES = "Item Names",
|
||||
ITEM_NAMES_SHOW_BRACES_COMBATLOG_TOOLTIP = "Show braces around item names.",
|
||||
KILLS_COMBATLOG_TOOLTIP = "Show messages when a member of your party kills something.",
|
||||
MELEE = "Melee",
|
||||
MELEE_COMBATLOG_TOOLTIP = "Shows natural melee swings.",
|
||||
MESSAGE_SOURCES = "Message Sources",
|
||||
MISSES = "Misses",
|
||||
MOVE_FILTER_DOWN = "Move Filter Down",
|
||||
MOVE_FILTER_UP = "Move Filter Up",
|
||||
OTHER = "Other",
|
||||
PERIODIC = "Periodic",
|
||||
POWER_GAINS = "Power Gains",
|
||||
POWER_GAINS_COMBATLOG_TOOLTIP = "Show messages when a spell or ability restores mana, energy, rage, focus, chi, holy power, or shadow orbs.",
|
||||
QUICKBUTTON_NAME_EVERYTHING = "Everything",
|
||||
QUICKBUTTON_NAME_EVERYTHING_TOOLTIP = "Show all combat messages.",
|
||||
QUICKBUTTON_NAME_KILLS = "Kills",
|
||||
QUICKBUTTON_NAME_KILLS_TOOLTIP = "Show all deaths and kills.",
|
||||
QUICKBUTTON_NAME_ME = "What happened to me?",
|
||||
QUICKBUTTON_NAME_ME_TOOLTIP = "Show everything done to me.",
|
||||
QUICKBUTTON_NAME_SELF = "Self",
|
||||
QUICKBUTTON_NAME_SELF_TOOLTIP = "Show messages of actions done by you and done to you.",
|
||||
QUICK_BUTTON_COMBATLOG_TOOLTIP = "Places a shortcut to this filter on the chat window.",
|
||||
RANGED = "Ranged",
|
||||
RANGED_COMBATLOG_TOOLTIP = "Shows attacks from bows, guns, thrown weapons, and wands.",
|
||||
RANGE_DAMAGE_COMBATLOG_TOOLTIP = "Show ranged shots that deal full or partial damage.",
|
||||
RANGE_MISSED_COMBATLOG_TOOLTIP = "Show ranged shots that fail to deal damage.",
|
||||
RESURRECT = "Resurrections",
|
||||
SETTINGS = "Settings",
|
||||
SHOW_BRACES = "Show Braces",
|
||||
SHOW_BRACES_COMBATLOG_TOOLTIP = "Display braces around hyperlinks in combat log messages.",
|
||||
SHOW_QUICK_BUTTON = "Show Quick Button",
|
||||
SHOW_TIMESTAMP = "Show Timestamp",
|
||||
SOURCE = "Source:",
|
||||
SPECIAL = "Special",
|
||||
SPELLS_COMBATLOG_TOOLTIP = "Shows messages about spells and special abilities.",
|
||||
SPELL_CASTING = "Spell Casting",
|
||||
SPELL_CASTING_COMBATLOG_TOOLTIP = "Show messages about spell casting.",
|
||||
SPELL_CAST_FAILED_COMBATLOG_TOOLTIP = "Show messages when a spell cannot be cast or fails to cast.",
|
||||
SPELL_CAST_START_COMBATLOG_TOOLTIP = "Show messages when a spell begins casting.",
|
||||
SPELL_CAST_SUCCESS_COMBATLOG_TOOLTIP = "Show messages when a spell successfully completes.",
|
||||
SPELL_COLOR_BY_SCHOOL_COMBATLOG_TOOLTIP = "Color spell names by school.",
|
||||
SPELL_DAMAGE_COMBATLOG_TOOLTIP = "Show messages when a spell or ability deals damage.",
|
||||
SPELL_DAMAGE_NUMBER_COMBATLOG_TOOLTIP = "Colorizes the damage number on non-melee swings.",
|
||||
SPELL_DAMAGE_SCHOOL_COMBATLOG_TOOLTIP = "Color the damage school name. (e.g. shadow)",
|
||||
SPELL_DRAIN_COMBATLOG_TOOLTIP = "Show messages when a spell or ability reduces mana, energy, rage, or focus.",
|
||||
SPELL_EXTRA_ATTACKS_COMBATLOG_TOOLTIP = "Show messages when a spell or ability grants additional attacks.",
|
||||
SPELL_HEAL_COMBATLOG_TOOLTIP = "Show messages when a spell or ability heals damage.",
|
||||
SPELL_INSTAKILL_COMBATLOG_TOOLTIP = "Show messages about special spell types, such as those that inflict durability loss or share damage with a pet.",
|
||||
SPELL_INTERRUPT_COMBATLOG_TOOLTIP = "Show messages when a spell or ability interrupts another spell.",
|
||||
SPELL_MISSED_COMBATLOG_TOOLTIP = "Show messages when a spell or ability fails to deal damage. This includes dodges, parries, blocks, deflections, immunes, absorbs and evades.",
|
||||
SPELL_NAMES = "Spell Names",
|
||||
SPELL_NAMES_COMBATLOG_TOOLTIP = "Color spell names.",
|
||||
SPELL_NAMES_SHOW_BRACES_COMBATLOG_TOOLTIP = "Show braces around spell names.",
|
||||
SPELL_PERIODIC_COMBATLOG_TOOLTIP = "Show spells that perform an effect incrementally.",
|
||||
SPELL_PERIODIC_DAMAGE_COMBATLOG_TOOLTIP = "Show messages when a spell or ability periodically deals damage, such as Shadow Word: Pain or Corruption.",
|
||||
SPELL_PERIODIC_HEAL_COMBATLOG_TOOLTIP = "Show messages when a spell or ability periodically heals damage, such as Renew or Rejuvenation.",
|
||||
SPELL_PERIODIC_MISSED_COMBATLOG_TOOLTIP = "Show messages when a spell or ability fails to periodically deal damage. This includes immunes, absorbs and evades.",
|
||||
SPELL_PERIODIC_OTHER_COMBATLOG_TOOLTIP = "Show messages when a spell or ability periodically performs any other effect, such as restoring or draining mana.",
|
||||
SPELL_RESURRECT_COMBATLOG_TOOLTIP = "Show messages when a spell or ability resurrects another player or creature.",
|
||||
SPELL_SUMMON_COMBATLOG_TOOLTIP = "Show messages when a spell or ability summons a creature or creates an object.",
|
||||
START = "Start",
|
||||
STRING_SCHOOL_UNKNOWN = "Unknown",
|
||||
SUCCESS = "Success",
|
||||
SUMMONS = "Summons",
|
||||
SWING_DAMAGE_COMBATLOG_TOOLTIP = "Shows melee swings that deal full or partial damage.",
|
||||
SWING_MISSED_COMBATLOG_TOOLTIP = "Show melee swings that do not deal damage.",
|
||||
TEXT_MODE_A = "A",
|
||||
TEXT_MODE_A_STRING_1 = "%s %s %s %s %s. %s %11$s",
|
||||
TEXT_MODE_A_STRING_2 = "%1$s %3$s %2$s %4$s %5$s. %6$s",
|
||||
TEXT_MODE_A_STRING_3 = "%1$s %5$s %3$s %4$s %2$s. %6$s",
|
||||
TEXT_MODE_A_STRING_ACTION = "|Haction:%s|h%s|h",
|
||||
TEXT_MODE_A_STRING_BRACE_ITEM = "|c%s[|r%s|c%s]|r",
|
||||
TEXT_MODE_A_STRING_BRACE_SPELL = "|c%s[|r%s|c%s]|r",
|
||||
TEXT_MODE_A_STRING_BRACE_UNIT = "|c%s[|r%s|c%s]|r",
|
||||
TEXT_MODE_A_STRING_DEST_ICON = "|Hicon:%d:dest|h%s|h",
|
||||
TEXT_MODE_A_STRING_DEST_UNIT = "%s|Hunit:%s:%s|h%s|h",
|
||||
TEXT_MODE_A_STRING_ITEM = "|Hitem:%s|h%s|h",
|
||||
TEXT_MODE_A_STRING_POSSESSIVE = "%s's",
|
||||
TEXT_MODE_A_STRING_REMAINING_POINTS = "(%s Remaining)",
|
||||
TEXT_MODE_A_STRING_RESULT_ABSORB = "(%s Absorbed)",
|
||||
TEXT_MODE_A_STRING_RESULT_BLOCK = "(%s Blocked)",
|
||||
TEXT_MODE_A_STRING_RESULT_CRITICAL = "(Critical)",
|
||||
TEXT_MODE_A_STRING_RESULT_CRITICAL_SPELL = "(Critical)",
|
||||
TEXT_MODE_A_STRING_RESULT_CRUSHING = "(Crushing)",
|
||||
TEXT_MODE_A_STRING_RESULT_FORMAT = "$resultAmount $resultType",
|
||||
TEXT_MODE_A_STRING_RESULT_GLANCING = "(Glancing)",
|
||||
TEXT_MODE_A_STRING_RESULT_MULTISTRIKE = "(Multistrike)",
|
||||
TEXT_MODE_A_STRING_RESULT_OVERENERGIZE = "(%s Overenergized)",
|
||||
TEXT_MODE_A_STRING_RESULT_OVERHEALING = "(%s Overhealed)",
|
||||
TEXT_MODE_A_STRING_RESULT_OVERKILLING = "(%s Overkill)",
|
||||
TEXT_MODE_A_STRING_RESULT_PARRY = "(%d Parried)",
|
||||
TEXT_MODE_A_STRING_RESULT_REFLECT = "Reflected",
|
||||
TEXT_MODE_A_STRING_RESULT_RESIST = "(%s Resisted)",
|
||||
TEXT_MODE_A_STRING_RESULT_VULNERABILITY = "(%s Vulnerability Damage)",
|
||||
TEXT_MODE_A_STRING_SOURCE_ICON = "|Hicon:%s:source|h%s|h",
|
||||
TEXT_MODE_A_STRING_SOURCE_UNIT = "%s|Hunit:%s:%s|h%s|h",
|
||||
TEXT_MODE_A_STRING_SPELL = "|Hspell:%s:%s:%s|h%s|h",
|
||||
TEXT_MODE_A_STRING_SPELL_EXTRA = "|Hspell:%s:%s:%s|h%s|h",
|
||||
TEXT_MODE_A_STRING_TIMESTAMP = "%s> %s",
|
||||
TEXT_MODE_A_STRING_VALUE_SCHOOL = "%s %s",
|
||||
TEXT_MODE_A_STRING_VALUE_TYPE = "%s (%s)",
|
||||
TEXT_MODE_A_TIMESTAMP = "%H:%M:%S",
|
||||
TIMESTAMP_COMBATLOG_TOOLTIP = "Display the timestamp for combat log messages.",
|
||||
UNIT_COLORS = "Unit Colors:",
|
||||
UNIT_NAMES = "Unit Names",
|
||||
UNIT_NAMES_COMBATLOG_TOOLTIP = "Color unit names.",
|
||||
UNIT_NAMES_SHOW_BRACES_COMBATLOG_TOOLTIP = "Show braces around unit names.",
|
||||
UNIT_YOU = "You",
|
||||
UNIT_YOU_DEST = "You",
|
||||
UNIT_YOU_DEST_POSSESSIVE = "Your",
|
||||
UNIT_YOU_SOURCE = "You",
|
||||
UNIT_YOU_SOURCE_POSSESSIVE = "Your",
|
||||
USE_FULL_TEXT_MODE = "Use Verbose Mode",
|
||||
}
|
||||
Vendored
+677
@@ -0,0 +1,677 @@
|
||||
-- Classic Era GlobalStrings (ES) that the combat log reads
|
||||
-- and the 1.12 client lacks. Generated; do not edit by hand.
|
||||
pfUI_locale["esES"]["combatlog"] = {
|
||||
ACTION_DAMAGE_SHIELD = "daña",
|
||||
ACTION_DAMAGE_SHIELD_FULL_TEXT = "%2$s de %1$s refleja %9$s daño %7$s a %4$s.%6$s",
|
||||
ACTION_DAMAGE_SHIELD_FULL_TEXT_NO_SOURCE = "%2$s refleja %9$s daño %7$s a %4$s.%6$s",
|
||||
ACTION_DAMAGE_SHIELD_MISSED = "fallado",
|
||||
ACTION_DAMAGE_SHIELD_MISSED_BLOCK = "(Bloqueado)",
|
||||
ACTION_DAMAGE_SHIELD_MISSED_BLOCK_FULL_TEXT = "%4$s bloqueó %2$s de %1$s.%6$s",
|
||||
ACTION_DAMAGE_SHIELD_MISSED_BLOCK_FULL_TEXT_NO_SOURCE = "%4$s bloqueó %2$s.%6$s",
|
||||
ACTION_DAMAGE_SHIELD_MISSED_BLOCK_POSSESSIVE = "1",
|
||||
ACTION_DAMAGE_SHIELD_MISSED_DEFLECT = "(Desviado)",
|
||||
ACTION_DAMAGE_SHIELD_MISSED_DEFLECT_FULL_TEXT = "%4$s desvió %2$s de %1$s.",
|
||||
ACTION_DAMAGE_SHIELD_MISSED_DEFLECT_FULL_TEXT_NO_SOURCE = "%4$s desvió %2$s.",
|
||||
ACTION_DAMAGE_SHIELD_MISSED_DEFLECT_POSSESSIVE = "1",
|
||||
ACTION_DAMAGE_SHIELD_MISSED_DODGE = "(Esquivado)",
|
||||
ACTION_DAMAGE_SHIELD_MISSED_DODGE_FULL_TEXT = "%4$s esquivó %2$s de %1$s.",
|
||||
ACTION_DAMAGE_SHIELD_MISSED_DODGE_FULL_TEXT_NO_SOURCE = "%4$s esquivó %2$s.",
|
||||
ACTION_DAMAGE_SHIELD_MISSED_DODGE_POSSESSIVE = "1",
|
||||
ACTION_DAMAGE_SHIELD_MISSED_EVADED = "(Evadido)",
|
||||
ACTION_DAMAGE_SHIELD_MISSED_EVADED_FULL_TEXT = "%4$s evadió %2$s de %1$s.",
|
||||
ACTION_DAMAGE_SHIELD_MISSED_EVADED_FULL_TEXT_NO_SOURCE = "%4$s evadió %2$s.",
|
||||
ACTION_DAMAGE_SHIELD_MISSED_EVADED_POSSESSIVE = "1",
|
||||
ACTION_DAMAGE_SHIELD_MISSED_FULL_TEXT = "%2$s de %1$s no alcanzó a %4$s.",
|
||||
ACTION_DAMAGE_SHIELD_MISSED_FULL_TEXT_NO_SOURCE = "%2$s no alcanzó a %4$s.",
|
||||
ACTION_DAMAGE_SHIELD_MISSED_IMMUNE = "(Inmune)",
|
||||
ACTION_DAMAGE_SHIELD_MISSED_IMMUNE_FULL_TEXT = "%2$s de %1$s falló. %4$s era inmune.",
|
||||
ACTION_DAMAGE_SHIELD_MISSED_IMMUNE_FULL_TEXT_NO_SOURCE = "%2$s falló. %4$s era inmune.",
|
||||
ACTION_DAMAGE_SHIELD_MISSED_IMMUNE_POSSESSIVE = "1",
|
||||
ACTION_DAMAGE_SHIELD_MISSED_MISS = "(Fallado)",
|
||||
ACTION_DAMAGE_SHIELD_MISSED_MISS_FULL_TEXT = "%2$s de %1$s no alcanza a %4$s.",
|
||||
ACTION_DAMAGE_SHIELD_MISSED_MISS_FULL_TEXT_NO_SOURCE = "%2$s no alcanza a %4$s.",
|
||||
ACTION_DAMAGE_SHIELD_MISSED_MISS_POSSESSIVE = "1",
|
||||
ACTION_DAMAGE_SHIELD_MISSED_PARRY = "(Parado)",
|
||||
ACTION_DAMAGE_SHIELD_MISSED_PARRY_FULL_TEXT = "%4$s paró %2$s de %1$s.",
|
||||
ACTION_DAMAGE_SHIELD_MISSED_PARRY_FULL_TEXT_NO_SOURCE = "%4$s paró %2$s.",
|
||||
ACTION_DAMAGE_SHIELD_MISSED_PARRY_POSSESSIVE = "1",
|
||||
ACTION_DAMAGE_SHIELD_MISSED_POSSESSIVE = "1",
|
||||
ACTION_DAMAGE_SHIELD_MISSED_RESIST = "(Resistido)",
|
||||
ACTION_DAMAGE_SHIELD_MISSED_RESIST_FULL_TEXT = "%4$s resistió por completo %2$s de %1$s.%6$s",
|
||||
ACTION_DAMAGE_SHIELD_MISSED_RESIST_FULL_TEXT_NO_SOURCE = "%4$s resistió por completo %2$s.%6$s",
|
||||
ACTION_DAMAGE_SHIELD_MISSED_RESIST_POSSESSIVE = "1",
|
||||
ACTION_DAMAGE_SHIELD_POSSESSIVE = "1",
|
||||
ACTION_DAMAGE_SPLIT = "daño transferido",
|
||||
ACTION_DAMAGE_SPLIT_ABSORBED_FULL_TEXT = "%4$s absorbió el daño de %2$s de %1$s. %6$s.",
|
||||
ACTION_DAMAGE_SPLIT_FULL_TEXT = "%2$s de %1$s inflige %9$s de daño a %4$s.",
|
||||
ACTION_DAMAGE_SPLIT_POSSESSIVE = "0",
|
||||
ACTION_DAMAGE_SPLIT_RESULT_FULL_TEXT = "%2$s de %1$s inflige %9$s de daño a %4$s. %6$s.",
|
||||
ACTION_ENCHANT_APPLIED = "aplicado a",
|
||||
ACTION_ENCHANT_APPLIED_FULL_TEXT = "%1$s lanza %2$s a %5$s de %4$s.",
|
||||
ACTION_ENCHANT_APPLIED_POSSESSIVE = "0",
|
||||
ACTION_ENCHANT_REMOVED = "eliminado de",
|
||||
ACTION_ENCHANT_REMOVED_FULL_TEXT = "%2$s se desvanece de %5$s de %4$s.",
|
||||
ACTION_ENCHANT_REMOVED_POSSESSIVE = "0",
|
||||
ACTION_ENVIRONMENTAL_DAMAGE = "dañó",
|
||||
ACTION_ENVIRONMENTAL_DAMAGE_DROWNING = "Ahogamiento",
|
||||
ACTION_ENVIRONMENTAL_DAMAGE_DROWNING_FULL_TEXT = "%4$s se está ahogando y pierde %9$s salud.",
|
||||
ACTION_ENVIRONMENTAL_DAMAGE_DROWNING_POSSESSIVE = "0",
|
||||
ACTION_ENVIRONMENTAL_DAMAGE_FALLING = "Caída",
|
||||
ACTION_ENVIRONMENTAL_DAMAGE_FALLING_FULL_TEXT = "%4$s cae y pierde %9$s salud.",
|
||||
ACTION_ENVIRONMENTAL_DAMAGE_FALLING_POSSESSIVE = "0",
|
||||
ACTION_ENVIRONMENTAL_DAMAGE_FATIGUE = "Fatiga",
|
||||
ACTION_ENVIRONMENTAL_DAMAGE_FATIGUE_FULL_TEXT = "%4$s sufre agotamiento y pierde %9$s salud.",
|
||||
ACTION_ENVIRONMENTAL_DAMAGE_FATIGUE_POSSESSIVE = "0",
|
||||
ACTION_ENVIRONMENTAL_DAMAGE_FIRE = "Fuego",
|
||||
ACTION_ENVIRONMENTAL_DAMAGE_FIRE_FULL_TEXT = "%4$s sufre %9$s daño de Fuego.",
|
||||
ACTION_ENVIRONMENTAL_DAMAGE_FIRE_POSSESSIVE = "0",
|
||||
ACTION_ENVIRONMENTAL_DAMAGE_FULL_TEXT = "%4$s pierde %9$s salud por daño recibido del entorno.",
|
||||
ACTION_ENVIRONMENTAL_DAMAGE_LAVA = "Lava",
|
||||
ACTION_ENVIRONMENTAL_DAMAGE_LAVA_FULL_TEXT = "%4$s pierde %9$s salud por nadar en lava. %6$s",
|
||||
ACTION_ENVIRONMENTAL_DAMAGE_LAVA_POSSESSIVE = "0",
|
||||
ACTION_ENVIRONMENTAL_DAMAGE_POSSESSIVE = "0",
|
||||
ACTION_ENVIRONMENTAL_DAMAGE_SLIME = "Cieno",
|
||||
ACTION_ENVIRONMENTAL_DAMAGE_SLIME_FULL_TEXT = "%4$s pierde %9$s salud por nadar en el cieno. %6$s",
|
||||
ACTION_ENVIRONMENTAL_DAMAGE_SLIME_POSSESSIVE = "0",
|
||||
ACTION_PARTY_KILL = "mató",
|
||||
ACTION_PARTY_KILL_FULL_TEXT = "¡%1$s mató a %4$s!",
|
||||
ACTION_PARTY_KILL_POSSESSIVE = "0",
|
||||
ACTION_PARTY_KILL_UNCONSCIOUS = "está fuera de combate",
|
||||
ACTION_PARTY_KILL_UNCONSCIOUS_FULL_TEXT = "¡%1$s ha dejado fuera de combate a %4$s!",
|
||||
ACTION_PARTY_KILL_UNCONSCIOUS_POSSESSIVE = "0",
|
||||
ACTION_RANGED = "disparo",
|
||||
ACTION_RANGE_DAMAGE = "alcanzó",
|
||||
ACTION_RANGE_DAMAGE_FULL_TEXT = "%1$s da a %4$s un golpe a distancia y le inflige %5$s.%6$s",
|
||||
ACTION_RANGE_DAMAGE_FULL_TEXT_NO_SOURCE = "Un golpe a distancia alcanza a %4$s y le inflige %5$s.%6$s",
|
||||
ACTION_RANGE_DAMAGE_POSSESSIVE = "1",
|
||||
ACTION_RANGE_MISSED = "falló",
|
||||
ACTION_RANGE_MISSED_ABSORB = "(Absorbido)",
|
||||
ACTION_RANGE_MISSED_ABSORB_FULL_TEXT = "%4$s absorbió el golpe de %1$s.%6$s",
|
||||
ACTION_RANGE_MISSED_ABSORB_POSSESSIVE = "1",
|
||||
ACTION_RANGE_MISSED_BLOCK = "(Bloqueado)",
|
||||
ACTION_RANGE_MISSED_BLOCK_FULL_TEXT = "%4$s bloqueó el golpe de %1$s.%6$s",
|
||||
ACTION_RANGE_MISSED_BLOCK_POSSESSIVE = "1",
|
||||
ACTION_RANGE_MISSED_DEFLECT = "(Desviado)",
|
||||
ACTION_RANGE_MISSED_DEFLECT_FULL_TEXT = "%4$s desvió el golpe de %1$s.",
|
||||
ACTION_RANGE_MISSED_DEFLECT_POSSESSIVE = "1",
|
||||
ACTION_RANGE_MISSED_DODGE = "(Esquivado)",
|
||||
ACTION_RANGE_MISSED_DODGE_FULL_TEXT = "%4$s esquivó el golpe de %1$s.",
|
||||
ACTION_RANGE_MISSED_DODGE_POSSESSIVE = "1",
|
||||
ACTION_RANGE_MISSED_EVADE = "(Evadido)",
|
||||
ACTION_RANGE_MISSED_EVADE_FULL_TEXT = "%4$s evadió el golpe de %1$s.",
|
||||
ACTION_RANGE_MISSED_EVADE_POSSESSIVE = "1",
|
||||
ACTION_RANGE_MISSED_FULL_TEXT = "El golpe de %1$s no alcanza a %4$s.",
|
||||
ACTION_RANGE_MISSED_IMMUNE = "(Inmune)",
|
||||
ACTION_RANGE_MISSED_IMMUNE_FULL_TEXT = "El golpe de %1$s falló. %4$s era inmune.",
|
||||
ACTION_RANGE_MISSED_IMMUNE_POSSESSIVE = "1",
|
||||
ACTION_RANGE_MISSED_MISFIRE = "(Lanzamiento fallado)",
|
||||
ACTION_RANGE_MISSED_MISFIRE_FULL_TEXT = "El golpe de %1$s ha fallado al lanzarse hacia %4$s.",
|
||||
ACTION_RANGE_MISSED_MISFIRE_POSSESSIVE = "1",
|
||||
ACTION_RANGE_MISSED_MISS = "(Fallado)",
|
||||
ACTION_RANGE_MISSED_MISS_FULL_TEXT = "El golpe de %1$s no alcanza a %4$s.",
|
||||
ACTION_RANGE_MISSED_MISS_POSSESSIVE = "1",
|
||||
ACTION_RANGE_MISSED_PARRY = "(Parado)",
|
||||
ACTION_RANGE_MISSED_PARRY_FULL_TEXT = "%4$s paró el golpe de %1$s.",
|
||||
ACTION_RANGE_MISSED_PARRY_POSSESSIVE = "1",
|
||||
ACTION_RANGE_MISSED_POSSESSIVE = "1",
|
||||
ACTION_RANGE_MISSED_RESIST = "(Resistido)",
|
||||
ACTION_RANGE_MISSED_RESIST_FULL_TEXT = "%4$s resistió por completo el golpe de %1$s.%6$s",
|
||||
ACTION_RANGE_MISSED_RESIST_POSSESSIVE = "1",
|
||||
ACTION_SPELL_AURA_APPLIED = "aplicó",
|
||||
ACTION_SPELL_AURA_APPLIED_BUFF = "aplicó",
|
||||
ACTION_SPELL_AURA_APPLIED_BUFF_FULL_TEXT = "%4$s gana %2$s de %1$s.",
|
||||
ACTION_SPELL_AURA_APPLIED_BUFF_FULL_TEXT_NO_SOURCE = "%4$s gana %2$s.",
|
||||
ACTION_SPELL_AURA_APPLIED_BUFF_MASTER = "2",
|
||||
ACTION_SPELL_AURA_APPLIED_BUFF_POSSESSIVE = "0",
|
||||
ACTION_SPELL_AURA_APPLIED_BUFF_WITH_POINTS_FULL_TEXT = "%4$s gana %1$s de %2$s. %11$s",
|
||||
ACTION_SPELL_AURA_APPLIED_BUFF_WITH_POINTS_FULL_TEXT_NO_SOURCE = "%4$s gana %2$s. %11$s",
|
||||
ACTION_SPELL_AURA_APPLIED_DEBUFF = "afectó",
|
||||
ACTION_SPELL_AURA_APPLIED_DEBUFF_FULL_TEXT = "A %4$s le afecta %2$s de %1$s.",
|
||||
ACTION_SPELL_AURA_APPLIED_DEBUFF_FULL_TEXT_NO_SOURCE = "A %4$s le afecta %2$s.",
|
||||
ACTION_SPELL_AURA_APPLIED_DEBUFF_MASTER = "1",
|
||||
ACTION_SPELL_AURA_APPLIED_DEBUFF_POSSESSIVE = "1",
|
||||
ACTION_SPELL_AURA_APPLIED_DEBUFF_WITH_POINTS_FULL_TEXT = "A %4$s le afecta %1$s de %2$s. %11$s",
|
||||
ACTION_SPELL_AURA_APPLIED_DEBUFF_WITH_POINTS_FULL_TEXT_NO_SOURCE = "A %4$s le afecta %2$s. %11$s",
|
||||
ACTION_SPELL_AURA_APPLIED_DOSE = "acumuló",
|
||||
ACTION_SPELL_AURA_APPLIED_DOSE_BUFF = "acumuló",
|
||||
ACTION_SPELL_AURA_APPLIED_DOSE_BUFF_FULL_TEXT = "%4$s gana %2$s de %1$s (%9$s).",
|
||||
ACTION_SPELL_AURA_APPLIED_DOSE_BUFF_FULL_TEXT_NO_SOURCE = "%4$s gana %2$s (%9$s).",
|
||||
ACTION_SPELL_AURA_APPLIED_DOSE_BUFF_POSSESSIVE = "1",
|
||||
ACTION_SPELL_AURA_APPLIED_DOSE_DEBUFF = "afectó",
|
||||
ACTION_SPELL_AURA_APPLIED_DOSE_DEBUFF_FULL_TEXT = "A %4$s le afecta %2$s de %1$s (%9$s).",
|
||||
ACTION_SPELL_AURA_APPLIED_DOSE_DEBUFF_FULL_TEXT_NO_SOURCE = "A %4$s le afecta %2$s (%9$s).",
|
||||
ACTION_SPELL_AURA_APPLIED_DOSE_DEBUFF_POSSESSIVE = "1",
|
||||
ACTION_SPELL_AURA_APPLIED_MASTER = "2",
|
||||
ACTION_SPELL_AURA_APPLIED_POSSESSIVE = "1",
|
||||
ACTION_SPELL_AURA_BROKEN = "rompió",
|
||||
ACTION_SPELL_AURA_BROKEN_BUFF = "rompió",
|
||||
ACTION_SPELL_AURA_BROKEN_BUFF_FULL_TEXT = "%1$s rompió %2$s de %4$s.",
|
||||
ACTION_SPELL_AURA_BROKEN_BUFF_FULL_TEXT_NO_SOURCE = "Alguien ha roto %2$s de %1$s.",
|
||||
ACTION_SPELL_AURA_BROKEN_BUFF_POSSESSIVE = "1",
|
||||
ACTION_SPELL_AURA_BROKEN_DEBUFF = "rompió",
|
||||
ACTION_SPELL_AURA_BROKEN_DEBUFF_FULL_TEXT = "%1$s rompió %2$s de %4$s.",
|
||||
ACTION_SPELL_AURA_BROKEN_DEBUFF_FULL_TEXT_NO_SOURCE = "Alguien ha roto %2$s de %1$s.",
|
||||
ACTION_SPELL_AURA_BROKEN_DEBUFF_POSSESSIVE = "1",
|
||||
ACTION_SPELL_AURA_BROKEN_SPELL_BUFF = "rompió",
|
||||
ACTION_SPELL_AURA_BROKEN_SPELL_BUFF_FULL_TEXT = "%1$s %5$s rompió %4$s %2$s.",
|
||||
ACTION_SPELL_AURA_BROKEN_SPELL_BUFF_FULL_TEXT_NO_SOURCE = "%5$s rompió %2$s de %4$s.",
|
||||
ACTION_SPELL_AURA_BROKEN_SPELL_BUFF_POSSESSIVE = "1",
|
||||
ACTION_SPELL_AURA_BROKEN_SPELL_DEBUFF = "rompió",
|
||||
ACTION_SPELL_AURA_BROKEN_SPELL_DEBUFF_FULL_TEXT = "%1$s %5$s rompió %4$s %2$s.",
|
||||
ACTION_SPELL_AURA_BROKEN_SPELL_DEBUFF_FULL_TEXT_NO_SOURCE = "%5$s rompió %2$s de %4$s.",
|
||||
ACTION_SPELL_AURA_BROKEN_SPELL_DEBUFF_POSSESSIVE = "1",
|
||||
ACTION_SPELL_AURA_REFRESH = "restableció",
|
||||
ACTION_SPELL_AURA_REFRESH_BUFF = "restableció",
|
||||
ACTION_SPELL_AURA_REFRESH_BUFF_FULL_TEXT = "%2$s de %1$s restablecido en %4$s.",
|
||||
ACTION_SPELL_AURA_REFRESH_BUFF_FULL_TEXT_NO_SOURCE = "%2$s se restablece en %4$s.",
|
||||
ACTION_SPELL_AURA_REFRESH_BUFF_MASTER = "2",
|
||||
ACTION_SPELL_AURA_REFRESH_BUFF_POSSESSIVE = "1",
|
||||
ACTION_SPELL_AURA_REFRESH_BUFF_WITH_POINTS_FULL_TEXT = "%1$s %2$s restablecido en %4$s. %11$s",
|
||||
ACTION_SPELL_AURA_REFRESH_BUFF_WITH_POINTS_FULL_TEXT_NO_SOURCE = "%2$s se restablece en %4$s. %11$s",
|
||||
ACTION_SPELL_AURA_REFRESH_DEBUFF = "restableció",
|
||||
ACTION_SPELL_AURA_REFRESH_DEBUFF_FULL_TEXT = "%2$s de %1$s restablecido en %4$s.",
|
||||
ACTION_SPELL_AURA_REFRESH_DEBUFF_FULL_TEXT_NO_SOURCE = "%2$s se restablece en %4$s.",
|
||||
ACTION_SPELL_AURA_REFRESH_DEBUFF_MASTER = "1",
|
||||
ACTION_SPELL_AURA_REFRESH_DEBUFF_POSSESSIVE = "1",
|
||||
ACTION_SPELL_AURA_REFRESH_DEBUFF_WITH_POINTS_FULL_TEXT = "%1$s %2$s restablecido en %4$s. %11$s",
|
||||
ACTION_SPELL_AURA_REFRESH_DEBUFF_WITH_POINTS_FULL_TEXT_NO_SOURCE = "%2$s se restablece en %4$s. %11$s",
|
||||
ACTION_SPELL_AURA_REFRESH_MASTER = "2",
|
||||
ACTION_SPELL_AURA_REMOVED = "eliminó",
|
||||
ACTION_SPELL_AURA_REMOVED_BUFF = "perdió",
|
||||
ACTION_SPELL_AURA_REMOVED_BUFF_FULL_TEXT = "%2$s de %1$s se desvanece de %4$s.",
|
||||
ACTION_SPELL_AURA_REMOVED_BUFF_FULL_TEXT_NO_SOURCE = "%2$s se desvanece de %4$s.",
|
||||
ACTION_SPELL_AURA_REMOVED_BUFF_POSSESSIVE = "1",
|
||||
ACTION_SPELL_AURA_REMOVED_BUFF_WITH_POINTS_FULL_TEXT = "%1$s %2$s se desvanece de %4$s. %11$s",
|
||||
ACTION_SPELL_AURA_REMOVED_BUFF_WITH_POINTS_FULL_TEXT_NO_SOURCE = "%2$s se desvanece de %4$s. %11$s",
|
||||
ACTION_SPELL_AURA_REMOVED_DEBUFF = "disipó",
|
||||
ACTION_SPELL_AURA_REMOVED_DEBUFF_FULL_TEXT = "%2$s de %1$s se disipa de %4$s.",
|
||||
ACTION_SPELL_AURA_REMOVED_DEBUFF_FULL_TEXT_NO_SOURCE = "%2$s se disipa de %4$s.",
|
||||
ACTION_SPELL_AURA_REMOVED_DEBUFF_POSSESSIVE = "1",
|
||||
ACTION_SPELL_AURA_REMOVED_DEBUFF_WITH_POINTS_FULL_TEXT = "%1$s %2$s se disipa de %4$s. %11$s",
|
||||
ACTION_SPELL_AURA_REMOVED_DEBUFF_WITH_POINTS_FULL_TEXT_NO_SOURCE = "%2$s se disipa de %4$s. %11$s",
|
||||
ACTION_SPELL_AURA_REMOVED_DOSE = "redujo",
|
||||
ACTION_SPELL_AURA_REMOVED_DOSE_BUFF = "redujo",
|
||||
ACTION_SPELL_AURA_REMOVED_DOSE_BUFF_FULL_TEXT = "%2$s de %1$s (%9$s) disminuye.",
|
||||
ACTION_SPELL_AURA_REMOVED_DOSE_BUFF_FULL_TEXT_NO_SOURCE = "%2$s (%9$s) disminuye.",
|
||||
ACTION_SPELL_AURA_REMOVED_DOSE_BUFF_POSSESSIVE = "1",
|
||||
ACTION_SPELL_AURA_REMOVED_DOSE_DEBUFF = "disminuyó",
|
||||
ACTION_SPELL_AURA_REMOVED_DOSE_DEBUFF_FULL_TEXT = "%2$s de %1$s (%9$s) decrece.",
|
||||
ACTION_SPELL_AURA_REMOVED_DOSE_DEBUFF_FULL_TEXT_NO_SOURCE = "%2$s (%9$s) decrece.",
|
||||
ACTION_SPELL_AURA_REMOVED_DOSE_DEBUFF_POSSESSIVE = "1",
|
||||
ACTION_SPELL_AURA_REMOVED_FULL_TEXT = "%2$s de %1$s se eliminó de %4$s.",
|
||||
ACTION_SPELL_AURA_REMOVED_FULL_TEXT_NO_SOURCE = "%2$s de %1$s se eliminó de %4$s.",
|
||||
ACTION_SPELL_AURA_REMOVED_POSSESSIVE = "1",
|
||||
ACTION_SPELL_BUILDING_DAMAGE = "golpea",
|
||||
ACTION_SPELL_BUILDING_DAMAGE_FULL_TEXT = "%1$s %2$s golpea a %4$s por %5$s.%6$s",
|
||||
ACTION_SPELL_BUILDING_DAMAGE_FULL_TEXT_NO_SOURCE = "%2$s golpea a %4$s por %5$s.%6$s",
|
||||
ACTION_SPELL_BUILDING_DAMAGE_MASTER = "1",
|
||||
ACTION_SPELL_BUILDING_DAMAGE_POSSESSIVE = "1",
|
||||
ACTION_SPELL_BUILDING_HEAL = "reparado",
|
||||
ACTION_SPELL_BUILDING_HEAL_FULL_TEXT = "%1$s %2$s repairs %4$s durante %9$s.%6$s",
|
||||
ACTION_SPELL_BUILDING_HEAL_FULL_TEXT_NO_SOURCE = "%2$s repara %4$s durante %9$s.%6$s",
|
||||
ACTION_SPELL_BUILDING_HEAL_POSSESSIVE = "1",
|
||||
ACTION_SPELL_CAST_FAILED = "falló",
|
||||
ACTION_SPELL_CAST_FAILED_FULL_TEXT = "%2$s de %1$s falló.%6$s",
|
||||
ACTION_SPELL_CAST_FAILED_MASTER = "1",
|
||||
ACTION_SPELL_CAST_FAILED_POSSESSIVE = "1",
|
||||
ACTION_SPELL_CAST_START = "comenzó a lanzar",
|
||||
ACTION_SPELL_CAST_START_FULL_TEXT = "%1$s comienza a lanzar %2$s a %4$s.",
|
||||
ACTION_SPELL_CAST_START_FULL_TEXT_NO_DEST = "%1$s comienza a lanzar %2$s.",
|
||||
ACTION_SPELL_CAST_START_FULL_TEXT_NO_SOURCE = "Algo comienza a lanzar %2$s a %4$s.",
|
||||
ACTION_SPELL_CAST_START_MASTER = "2",
|
||||
ACTION_SPELL_CAST_START_POSSESSIVE = "0",
|
||||
ACTION_SPELL_CAST_SUCCESS = "lanzó",
|
||||
ACTION_SPELL_CAST_SUCCESS_FULL_TEXT = "%1$s lanza %2$s a %4$s.",
|
||||
ACTION_SPELL_CAST_SUCCESS_FULL_TEXT_NO_DEST = "%1$s lanza %2$s.",
|
||||
ACTION_SPELL_CAST_SUCCESS_FULL_TEXT_NO_SOURCE = "Algo lanza %2$s a %4$s.",
|
||||
ACTION_SPELL_CAST_SUCCESS_MASTER = "2",
|
||||
ACTION_SPELL_CAST_SUCCESS_POSSESSIVE = "0",
|
||||
ACTION_SPELL_CREATE = "creó",
|
||||
ACTION_SPELL_CREATE_FULL_TEXT = "%2$s de %1$s crea %4$s.%6$s",
|
||||
ACTION_SPELL_CREATE_FULL_TEXT_NO_SOURCE = "%2$s crea %4$s.%6$s",
|
||||
ACTION_SPELL_CREATE_POSSESSIVE = "1",
|
||||
ACTION_SPELL_DAMAGE = "alcanzó",
|
||||
ACTION_SPELL_DAMAGE_FULL_TEXT = "%2$s de %1$s golpea a %4$s y le inflige %5$s.%6$s",
|
||||
ACTION_SPELL_DAMAGE_FULL_TEXT_NO_SOURCE = "%2$s golpea a %4$s y le inflige %5$s.%6$s",
|
||||
ACTION_SPELL_DAMAGE_MASTER = "1",
|
||||
ACTION_SPELL_DAMAGE_POSSESSIVE = "1",
|
||||
ACTION_SPELL_DISPEL = "disipó",
|
||||
ACTION_SPELL_DISPEL_BUFF = "disipó",
|
||||
ACTION_SPELL_DISPEL_BUFF_FULL_TEXT = "%2$s de %1$s disipa %4$s de %5$s.",
|
||||
ACTION_SPELL_DISPEL_BUFF_FULL_TEXT_NO_SOURCE = "%2$s disipa %4$s de %5$s.",
|
||||
ACTION_SPELL_DISPEL_BUFF_POSSESSIVE = "1",
|
||||
ACTION_SPELL_DISPEL_DEBUFF = "limpió",
|
||||
ACTION_SPELL_DISPEL_DEBUFF_FULL_TEXT = "%2$s de %1$s limpia %5$s de %4$s.",
|
||||
ACTION_SPELL_DISPEL_DEBUFF_FULL_TEXT_NO_SOURCE = "%2$s limpia %5$s de %4$s.",
|
||||
ACTION_SPELL_DISPEL_DEBUFF_POSSESSIVE = "1",
|
||||
ACTION_SPELL_DISPEL_FAILED = "error al disipar",
|
||||
ACTION_SPELL_DISPEL_FAILED_FULL_TEXT = "%2$s de %1$s no logra disipar %4$s de %5$s.",
|
||||
ACTION_SPELL_DISPEL_FAILED_FULL_TEXT_NO_SOURCE = "%2$s no logró disipar %4$s %5$s.",
|
||||
ACTION_SPELL_DISPEL_FAILED_POSSESSIVE = "1",
|
||||
ACTION_SPELL_DISPEL_POSSESSIVE = "1",
|
||||
ACTION_SPELL_DRAIN = "drenó",
|
||||
ACTION_SPELL_DRAIN_FULL_TEXT = "%2$s de %1$s drena %9$s %8$s de %4$s.",
|
||||
ACTION_SPELL_DRAIN_FULL_TEXT_NO_SOURCE = "%2$s drena %9$s p. de %8$s de %4$s.",
|
||||
ACTION_SPELL_DRAIN_POSSESSIVE = "1",
|
||||
ACTION_SPELL_DURABILITY_DAMAGE = "pérdida de durabilidad",
|
||||
ACTION_SPELL_DURABILITY_DAMAGE_ALL = "pérdida total de durabilidad",
|
||||
ACTION_SPELL_DURABILITY_DAMAGE_ALL_FULL_TEXT = "%2$s de %1$s daña %4$s: todos los objetos dañados.",
|
||||
ACTION_SPELL_DURABILITY_DAMAGE_ALL_POSSESSIVE = "1",
|
||||
ACTION_SPELL_DURABILITY_DAMAGE_FULL_TEXT = "%2$s de %1$s daña %4$s: %5$s dañado.",
|
||||
ACTION_SPELL_DURABILITY_DAMAGE_POSSESSIVE = "1",
|
||||
ACTION_SPELL_ENERGIZE = "energizó",
|
||||
ACTION_SPELL_ENERGIZE_FULL_TEXT = "%4$s gana %9$s de %8$s gracias a %2$s de %1$s.",
|
||||
ACTION_SPELL_ENERGIZE_FULL_TEXT_NO_SOURCE = "%4$s gana %9$s de %8$s gracias a %2$s.",
|
||||
ACTION_SPELL_ENERGIZE_POSSESSIVE = "1",
|
||||
ACTION_SPELL_ENERGIZE_RESULT = "%9$s %8$s ganado",
|
||||
ACTION_SPELL_EXTRA_ATTACKS = "otorgó ataques extra",
|
||||
ACTION_SPELL_EXTRA_ATTACKS_FULL_TEXT = "%1$s gana %9$s ataques extra con %2$s.",
|
||||
ACTION_SPELL_EXTRA_ATTACKS_FULL_TEXT_NO_SOURCE = "%2$s otorga %9$s ataques extra.",
|
||||
ACTION_SPELL_EXTRA_ATTACKS_POSSESSIVE = "1",
|
||||
ACTION_SPELL_HEAL = "sanó",
|
||||
ACTION_SPELL_HEAL_FULL_TEXT = "%2$s de %1$s sana %9$s a %4$s.%6$s",
|
||||
ACTION_SPELL_HEAL_FULL_TEXT_NO_SOURCE = "%2$s sana %9$s a %4$s.%6$s",
|
||||
ACTION_SPELL_HEAL_POSSESSIVE = "1",
|
||||
ACTION_SPELL_INSTAKILL = "mató",
|
||||
ACTION_SPELL_INSTAKILL_FULL_TEXT = "%2$s de %1$s mata al instante a %4$s.",
|
||||
ACTION_SPELL_INSTAKILL_FULL_TEXT_NO_SOURCE = "%2$s mata a %4$s al instante.",
|
||||
ACTION_SPELL_INSTAKILL_POSSESSIVE = "1",
|
||||
ACTION_SPELL_INSTAKILL_UNCONSCIOUS = "está fuera de combate",
|
||||
ACTION_SPELL_INSTAKILL_UNCONSCIOUS_FULL_TEXT = "%1$s %2$s deja fuera de combate a %4$s.",
|
||||
ACTION_SPELL_INSTAKILL_UNCONSCIOUS_FULL_TEXT_NO_SOURCE = "%2$s deja fuera de combate a %4$s.",
|
||||
ACTION_SPELL_INSTAKILL_UNCONSCIOUS_POSSESSIVE = "1",
|
||||
ACTION_SPELL_INTERRUPT = "interrumpió",
|
||||
ACTION_SPELL_INTERRUPT_FULL_TEXT = "%2$s de %1$s interrumpe %5$s de %4$s.",
|
||||
ACTION_SPELL_INTERRUPT_FULL_TEXT_NO_SOURCE = "%2$s interrumpe %5$s de %4$s.",
|
||||
ACTION_SPELL_INTERRUPT_POSSESSIVE = "1",
|
||||
ACTION_SPELL_LEECH = "drenó",
|
||||
ACTION_SPELL_LEECH_FULL_TEXT = "%1$s %2$s drena %9$s %8$s de %4$s. %1$s gana %10$s %8$s.",
|
||||
ACTION_SPELL_LEECH_FULL_TEXT_NO_SOURCE = "%2$s drena %9$s %8$s de %4$s.",
|
||||
ACTION_SPELL_LEECH_POSSESSIVE = "1",
|
||||
ACTION_SPELL_LEECH_RESULT = "%10$s %8$s ganado",
|
||||
ACTION_SPELL_MISSED = "fallado",
|
||||
ACTION_SPELL_MISSED_ABSORB = "Absorbido",
|
||||
ACTION_SPELL_MISSED_ABSORB_FULL_TEXT = "%4$s absorbió %2$s de %1$s.%6$s",
|
||||
ACTION_SPELL_MISSED_ABSORB_FULL_TEXT_NO_SOURCE = "%4$s absorbió %2$s.%6$s",
|
||||
ACTION_SPELL_MISSED_ABSORB_POSSESSIVE = "1",
|
||||
ACTION_SPELL_MISSED_BLOCK = "Bloqueado",
|
||||
ACTION_SPELL_MISSED_BLOCK_FULL_TEXT = "%4$s bloqueó %2$s de %1$s.%6$s",
|
||||
ACTION_SPELL_MISSED_BLOCK_FULL_TEXT_NO_SOURCE = "%4$s bloqueó %2$s.%6$s",
|
||||
ACTION_SPELL_MISSED_BLOCK_POSSESSIVE = "1",
|
||||
ACTION_SPELL_MISSED_DEFLECT = "Desviado",
|
||||
ACTION_SPELL_MISSED_DEFLECT_FULL_TEXT = "%4$s desvió %2$s de %1$s.",
|
||||
ACTION_SPELL_MISSED_DEFLECT_FULL_TEXT_NO_SOURCE = "%4$s desvió %2$s.",
|
||||
ACTION_SPELL_MISSED_DEFLECT_POSSESSIVE = "1",
|
||||
ACTION_SPELL_MISSED_DODGE = "Esquivado",
|
||||
ACTION_SPELL_MISSED_DODGE_FULL_TEXT = "%4$s esquivó %2$s de %1$s.",
|
||||
ACTION_SPELL_MISSED_DODGE_FULL_TEXT_NO_SOURCE = "%4$s esquivó %2$s.",
|
||||
ACTION_SPELL_MISSED_DODGE_POSSESSIVE = "1",
|
||||
ACTION_SPELL_MISSED_EVADE = "Evadido",
|
||||
ACTION_SPELL_MISSED_EVADE_FULL_TEXT = "%4$s evadió %2$s de %1$s.",
|
||||
ACTION_SPELL_MISSED_EVADE_FULL_TEXT_NO_SOURCE = "%4$s evadió %2$s.",
|
||||
ACTION_SPELL_MISSED_EVADE_POSSESSIVE = "1",
|
||||
ACTION_SPELL_MISSED_FULL_TEXT = "%2$s de %1$s no alcanzó a %4$s.",
|
||||
ACTION_SPELL_MISSED_FULL_TEXT_NO_SOURCE = "%2$s no alcanzó a %4$s.",
|
||||
ACTION_SPELL_MISSED_IMMUNE = "Inmune",
|
||||
ACTION_SPELL_MISSED_IMMUNE_FULL_TEXT = "%2$s de %1$s falló. %4$s era inmune.",
|
||||
ACTION_SPELL_MISSED_IMMUNE_FULL_TEXT_NO_SOURCE = "%2$s falló. %4$s era inmune.",
|
||||
ACTION_SPELL_MISSED_MISFIRE = "Lanzamiento fallado",
|
||||
ACTION_SPELL_MISSED_MISFIRE_FULL_TEXT = "%2$s de %1$s ha fallado al lanzarse hacia %4$s.",
|
||||
ACTION_SPELL_MISSED_MISFIRE_FULL_TEXT_NO_SOURCE = "%2$s ha fallado al lanzarse hacia %4$s.",
|
||||
ACTION_SPELL_MISSED_MISFIRE_POSSESSIVE = "1",
|
||||
ACTION_SPELL_MISSED_MISS = "Fallado",
|
||||
ACTION_SPELL_MISSED_MISS_FULL_TEXT = "%2$s de %1$s no alcanza a %4$s.",
|
||||
ACTION_SPELL_MISSED_MISS_FULL_TEXT_NO_SOURCE = "%2$s no alcanza a %4$s.",
|
||||
ACTION_SPELL_MISSED_MISS_POSSESSIVE = "1",
|
||||
ACTION_SPELL_MISSED_PARRY = "Parado",
|
||||
ACTION_SPELL_MISSED_PARRY_FULL_TEXT = "%4$s paró %2$s de %1$s.",
|
||||
ACTION_SPELL_MISSED_PARRY_FULL_TEXT_NO_SOURCE = "%4$s paró %2$s.",
|
||||
ACTION_SPELL_MISSED_PARRY_POSSESSIVE = "1",
|
||||
ACTION_SPELL_MISSED_POSSESSIVE = "1",
|
||||
ACTION_SPELL_MISSED_REFLECT = "reflejado",
|
||||
ACTION_SPELL_MISSED_REFLECT_FULL_TEXT = "%4$s reflejó %2$s de %1$s.",
|
||||
ACTION_SPELL_MISSED_REFLECT_FULL_TEXT_NO_SOURCE = "%4$s reflejó %2$s.",
|
||||
ACTION_SPELL_MISSED_RESIST = "resistido",
|
||||
ACTION_SPELL_MISSED_RESIST_FULL_TEXT = "%4$s resistió por completo %2$s de %1$s.%6$s",
|
||||
ACTION_SPELL_MISSED_RESIST_FULL_TEXT_NO_SOURCE = "%4$s resistió por completo %2$s.%6$s",
|
||||
ACTION_SPELL_MISSED_RESIST_POSSESSIVE = "1",
|
||||
ACTION_SPELL_PERIODIC_DAMAGE = "dañó",
|
||||
ACTION_SPELL_PERIODIC_DAMAGE_FULL_TEXT = "%4$s sufre %5$s daño de %2$s de %1$s.%6$s",
|
||||
ACTION_SPELL_PERIODIC_DAMAGE_FULL_TEXT_NO_SOURCE = "%4$s sufre %5$s daño de %2$s.%6$s",
|
||||
ACTION_SPELL_PERIODIC_DAMAGE_POSSESSIVE = "1",
|
||||
ACTION_SPELL_PERIODIC_DRAIN = "drenó",
|
||||
ACTION_SPELL_PERIODIC_DRAIN_FULL_TEXT = "%2$s de %1$s drena %9$s %8$s de %4$s.",
|
||||
ACTION_SPELL_PERIODIC_DRAIN_FULL_TEXT_NO_SOURCE = "%2$s drena %9$s %8$s de %4$s.",
|
||||
ACTION_SPELL_PERIODIC_DRAIN_POSSESSIVE = "1",
|
||||
ACTION_SPELL_PERIODIC_ENERGIZE = "energizó",
|
||||
ACTION_SPELL_PERIODIC_ENERGIZE_FULL_TEXT = "%4$s gana %9$s de %8$s gracias a %2$s de %1$s.",
|
||||
ACTION_SPELL_PERIODIC_ENERGIZE_FULL_TEXT_NO_SOURCE = "%4$s gana %9$s de %8$s gracias a %2$s.",
|
||||
ACTION_SPELL_PERIODIC_ENERGIZE_POSSESSIVE = "1",
|
||||
ACTION_SPELL_PERIODIC_ENERGIZE_RESULT = "$extraAmount %8$s ganado",
|
||||
ACTION_SPELL_PERIODIC_HEAL = "sanó",
|
||||
ACTION_SPELL_PERIODIC_HEAL_FULL_TEXT = "%4$s gana %9$s salud gracias a %1$s %2$s.%6$s",
|
||||
ACTION_SPELL_PERIODIC_HEAL_FULL_TEXT_NO_SOURCE = "%4$s gana %9$s salud gracias a %2$s.%6$s",
|
||||
ACTION_SPELL_PERIODIC_HEAL_POSSESSIVE = "1",
|
||||
ACTION_SPELL_PERIODIC_LEECH = "drenó",
|
||||
ACTION_SPELL_PERIODIC_LEECH_FULL_TEXT = "%1$s %2$s drena %9$s %8$s de %4$s. %1$s gana %10$s %8$s.",
|
||||
ACTION_SPELL_PERIODIC_LEECH_FULL_TEXT_NO_SOURCE = "%2$s drena %9$s %8$s de %4$s. %1$s gana %10$s %8$s.",
|
||||
ACTION_SPELL_PERIODIC_LEECH_POSSESSIVE = "1",
|
||||
ACTION_SPELL_PERIODIC_LEECH_RESULT = "(%10$s %8$s ganado)",
|
||||
ACTION_SPELL_PERIODIC_MISSED = "falla tic",
|
||||
ACTION_SPELL_PERIODIC_MISSED_ABSORB = "(%1$s Absorbido)",
|
||||
ACTION_SPELL_PERIODIC_MISSED_ABSORB_FULL_TEXT = "%4$s absorbió %2$s de %1$s.%6$s",
|
||||
ACTION_SPELL_PERIODIC_MISSED_ABSORB_FULL_TEXT_NO_SOURCE = "%4$s absorbió %2$s.%6$s",
|
||||
ACTION_SPELL_PERIODIC_MISSED_ABSORB_POSSESSIVE = "1",
|
||||
ACTION_SPELL_PERIODIC_MISSED_BLOCK = "(Bloqueado)",
|
||||
ACTION_SPELL_PERIODIC_MISSED_BLOCK_FULL_TEXT = "%4$s bloqueó el efecto periódico de %2$s de %1$s.%6$s",
|
||||
ACTION_SPELL_PERIODIC_MISSED_BLOCK_FULL_TEXT_NO_SOURCE = "%4$s bloqueó el efecto periódico de %2$s.%6$s",
|
||||
ACTION_SPELL_PERIODIC_MISSED_BLOCK_POSSESSIVE = "1",
|
||||
ACTION_SPELL_PERIODIC_MISSED_DEFLECTED = "(Desviado)",
|
||||
ACTION_SPELL_PERIODIC_MISSED_DEFLECTED_FULL_TEXT = "%4$s desvió el efecto periódico de %2$s de %1$s.%6$s",
|
||||
ACTION_SPELL_PERIODIC_MISSED_DEFLECTED_FULL_TEXT_NO_SOURCE = "%4$s desvió el efecto periódico de %2$s.%6$s",
|
||||
ACTION_SPELL_PERIODIC_MISSED_DEFLECTED_POSSESSIVE = "1",
|
||||
ACTION_SPELL_PERIODIC_MISSED_DODGE = "(Esquivado)",
|
||||
ACTION_SPELL_PERIODIC_MISSED_DODGE_FULL_TEXT = "%4$s esquivó el efecto periódico de %2$s de %1$s.%6$s",
|
||||
ACTION_SPELL_PERIODIC_MISSED_DODGE_FULL_TEXT_NO_SOURCE = "%4$s esquivó el efecto periódico de %2$s.%6$s",
|
||||
ACTION_SPELL_PERIODIC_MISSED_DODGE_POSSESSIVE = "1",
|
||||
ACTION_SPELL_PERIODIC_MISSED_EVADED = "(Evadido)",
|
||||
ACTION_SPELL_PERIODIC_MISSED_EVADED_FULL_TEXT = "%4$s evadió el efecto periódico de %2$s de %1$s.%6$s",
|
||||
ACTION_SPELL_PERIODIC_MISSED_EVADED_FULL_TEXT_NO_SOURCE = "%4$s evadió el efecto periódico de %2$s.%6$s",
|
||||
ACTION_SPELL_PERIODIC_MISSED_EVADED_POSSESSIVE = "1",
|
||||
ACTION_SPELL_PERIODIC_MISSED_FULL_TEXT = "%2$s de %1$s no tiene efecto periódico sobre %4$s.%6$s",
|
||||
ACTION_SPELL_PERIODIC_MISSED_FULL_TEXT_NO_SOURCE = "%2$s no tiene efecto periódico sobre %4$s.%6$s",
|
||||
ACTION_SPELL_PERIODIC_MISSED_IMMUNE = "(Inmune)",
|
||||
ACTION_SPELL_PERIODIC_MISSED_IMMUNE_FULL_TEXT = "%4$s era inmune a %2$s de %1$s.%6$s",
|
||||
ACTION_SPELL_PERIODIC_MISSED_IMMUNE_FULL_TEXT_NO_SOURCE = "%4$s era inmune a %2$s.%6$s",
|
||||
ACTION_SPELL_PERIODIC_MISSED_IMMUNE_POSSESSIVE = "1",
|
||||
ACTION_SPELL_PERIODIC_MISSED_MISS = "(Fallado)",
|
||||
ACTION_SPELL_PERIODIC_MISSED_MISS_FULL_TEXT = "El efecto periódico de %2$s de %1$s no alcanzó a %4$s.%6$s",
|
||||
ACTION_SPELL_PERIODIC_MISSED_MISS_FULL_TEXT_NO_SOURCE = "El efecto periódico de %2$s no alcanzó a %4$s.%6$s",
|
||||
ACTION_SPELL_PERIODIC_MISSED_MISS_POSSESSIVE = "1",
|
||||
ACTION_SPELL_PERIODIC_MISSED_PARRY = "(Parado)",
|
||||
ACTION_SPELL_PERIODIC_MISSED_PARRY_FULL_TEXT = "%4$s paró el efecto periódico de %2$s de %1$s.%6$s",
|
||||
ACTION_SPELL_PERIODIC_MISSED_PARRY_FULL_TEXT_NO_SOURCE = "%4$s paró el efecto periódico de %2$s.%6$s",
|
||||
ACTION_SPELL_PERIODIC_MISSED_PARRY_POSSESSIVE = "1",
|
||||
ACTION_SPELL_PERIODIC_MISSED_POSSESSIVE = "1",
|
||||
ACTION_SPELL_PERIODIC_MISSED_RESIST = "(Resistido)",
|
||||
ACTION_SPELL_PERIODIC_MISSED_RESIST_FULL_TEXT = "%2$s de %1$s no afecta a %4$s. %4$s resistió.%6$s",
|
||||
ACTION_SPELL_PERIODIC_MISSED_RESIST_FULL_TEXT_NO_SOURCE = "%2$s no afecta a %4$s. %4$s resistió.%6$s",
|
||||
ACTION_SPELL_PERIODIC_MISSED_RESIST_POSSESSIVE = "1",
|
||||
ACTION_SPELL_RESURRECT = "resucitado",
|
||||
ACTION_SPELL_RESURRECT_FULL_TEXT = "%1$s %2$s resucita a %4$s.%6$s",
|
||||
ACTION_SPELL_RESURRECT_FULL_TEXT_NO_SOURCE = "%2$s resucita a %4$s.%6$s",
|
||||
ACTION_SPELL_RESURRECT_POSSESSIVE = "1",
|
||||
ACTION_SPELL_STOLEN = "robó",
|
||||
ACTION_SPELL_STOLEN_BUFF = "robó",
|
||||
ACTION_SPELL_STOLEN_BUFF_FULL_TEXT = "%2$s de %1$s roba %5$s de %4$s.",
|
||||
ACTION_SPELL_STOLEN_BUFF_FULL_TEXT_NO_SOURCE = "%2$s roba %5$s de %4$s.",
|
||||
ACTION_SPELL_STOLEN_BUFF_POSSESSIVE = "1",
|
||||
ACTION_SPELL_STOLEN_BUFF__POSSESSIVE = "1",
|
||||
ACTION_SPELL_STOLEN_DEBUFF = "robó",
|
||||
ACTION_SPELL_STOLEN_DEBUFF_FULL_TEXT = "%2$s de %1$s transfiere $extraSpell de %4$s a %1$s.",
|
||||
ACTION_SPELL_STOLEN_DEBUFF_FULL_TEXT_NO_SOURCE = "%2$s transfiere $extraSpell de %4$s.",
|
||||
ACTION_SPELL_STOLEN_DEBUFF_POSSESSIVE = "1",
|
||||
ACTION_SPELL_STOLEN_FULL_TEXT = "%2$s de %1$s roba %5$s de %4$s.",
|
||||
ACTION_SPELL_STOLEN_FULL_TEXT_NO_SOURCE = "%2$s roba %5$s de %4$s.",
|
||||
ACTION_SPELL_STOLEN_POSSESSIVE = "1",
|
||||
ACTION_SPELL_SUMMON = "invocó",
|
||||
ACTION_SPELL_SUMMON_FULL_TEXT = "%2$s de %1$s invoca a %4$s.%6$s",
|
||||
ACTION_SPELL_SUMMON_FULL_TEXT_NO_SOURCE = "%2$s invoca a %4$s.%6$s",
|
||||
ACTION_SPELL_SUMMON_POSSESSIVE = "1",
|
||||
ACTION_SWING = "Golpe",
|
||||
ACTION_SWING_DAMAGE = "alcanzó",
|
||||
ACTION_SWING_DAMAGE_FULL_TEXT = "%1$s da a %4$s un golpe cuerpo a cuerpo y le inflige %5$s.%6$s",
|
||||
ACTION_SWING_DAMAGE_FULL_TEXT_NO_SOURCE = "Un golpe cuerpo a cuerpo alcanza a %4$s y le inflige %5$s.%6$s",
|
||||
ACTION_SWING_DAMAGE_POSSESSIVE = "1",
|
||||
ACTION_SWING_MISSED = "falló",
|
||||
ACTION_SWING_MISSED_ABSORB = "(Absorbido)",
|
||||
ACTION_SWING_MISSED_ABSORB_FULL_TEXT = "%4$s absorbió el ataque de %1$s.%6$s",
|
||||
ACTION_SWING_MISSED_ABSORB_POSSESSIVE = "1",
|
||||
ACTION_SWING_MISSED_BLOCK = "(Bloqueado)",
|
||||
ACTION_SWING_MISSED_BLOCK_FULL_TEXT = "%4$s bloqueó el ataque de %1$s.%6$s",
|
||||
ACTION_SWING_MISSED_BLOCK_POSSESSIVE = "1",
|
||||
ACTION_SWING_MISSED_DEFLECT = "(Desviado)",
|
||||
ACTION_SWING_MISSED_DEFLECT_FULL_TEXT = "%4$s desvió el ataque de %1$s.",
|
||||
ACTION_SWING_MISSED_DEFLECT_POSSESSIVE = "1",
|
||||
ACTION_SWING_MISSED_DODGE = "(Esquivado)",
|
||||
ACTION_SWING_MISSED_DODGE_FULL_TEXT = "%4$s esquivó el ataque de %1$s.",
|
||||
ACTION_SWING_MISSED_DODGE_POSSESSIVE = "1",
|
||||
ACTION_SWING_MISSED_EVADE = "(Evadido)",
|
||||
ACTION_SWING_MISSED_EVADE_FULL_TEXT = "%4$s evadió el ataque de %1$s.",
|
||||
ACTION_SWING_MISSED_EVADE_POSSESSIVE = "1",
|
||||
ACTION_SWING_MISSED_FULL_TEXT = "El ataque de %1$s no alcanza a %4$s.",
|
||||
ACTION_SWING_MISSED_IMMUNE = "(Inmune)",
|
||||
ACTION_SWING_MISSED_IMMUNE_FULL_TEXT = "El ataque de %1$s ha fallado. %4$s era inmune.",
|
||||
ACTION_SWING_MISSED_IMMUNE_POSSESSIVE = "1",
|
||||
ACTION_SWING_MISSED_MISFIRE = "(Lanzamiento fallado)",
|
||||
ACTION_SWING_MISSED_MISFIRE_FULL_TEXT = "El ataque de %1$s ha fallado al lanzarse hacia %4$s.",
|
||||
ACTION_SWING_MISSED_MISFIRE_POSSESSIVE = "1",
|
||||
ACTION_SWING_MISSED_MISS = "(Fallado)",
|
||||
ACTION_SWING_MISSED_MISS_FULL_TEXT = "El ataque de %1$s no alcanza a %4$s.",
|
||||
ACTION_SWING_MISSED_MISS_POSSESSIVE = "1",
|
||||
ACTION_SWING_MISSED_PARRY = "(Parado)",
|
||||
ACTION_SWING_MISSED_PARRY_FULL_TEXT = "%4$s paró el ataque de %1$s.",
|
||||
ACTION_SWING_MISSED_PARRY_POSSESSIVE = "1",
|
||||
ACTION_SWING_MISSED_POSSESSIVE = "1",
|
||||
ACTION_SWING_MISSED_RESIST = "(Resistido)",
|
||||
ACTION_SWING_MISSED_RESIST_FULL_TEXT = "%4$s resistió por completo el ataque de %1$s.%6$s",
|
||||
ACTION_SWING_MISSED_RESIST_POSSESSIVE = "1",
|
||||
ACTION_UNIT_BECCOMES_UNCONSCIOUS = "se desmaya",
|
||||
ACTION_UNIT_BECOMES_UNCONSCIOUS_FULL_TEXT = "%4$s se desmaya.",
|
||||
ACTION_UNIT_BECOMES_UNCONSCIOUS_POSSESSIVE = "0",
|
||||
ACTION_UNIT_DESTROYED = "destruyó",
|
||||
ACTION_UNIT_DESTROYED_FULL_TEXT = "%4$s ha sido destruido.",
|
||||
ACTION_UNIT_DESTROYED_POSSESSIVE = "0",
|
||||
ACTION_UNIT_DIED = "murió",
|
||||
ACTION_UNIT_DIED_FULL_TEXT = "%4$s ha muerto.",
|
||||
ACTION_UNIT_DIED_POSSESSIVE = "0",
|
||||
ACTION_UNIT_DISSIPATES = "se disipa",
|
||||
ACTION_UNIT_DISSIPATES_FULL_TEXT = "%4$s se disipa.",
|
||||
ACTION_UNIT_DISSIPATES_POSSESSIVE = "0",
|
||||
ADD = "Añadir",
|
||||
ADDITIONAL_FILTERS = "Filtros adicionales",
|
||||
ADD_FILTER = "Añadir",
|
||||
AURAS = "Auras",
|
||||
AURAS_COMBATLOG_TOOLTIP = "Mostrar mensajes sobre efectos de estados beneficiosos y dañinos.",
|
||||
BENEFICIAL = "Beneficioso",
|
||||
BENEFICIAL_AURA_COMBATLOG_TOOLTIP = "Mostrar cuando ganas o pierdes un aura beneficiosa.",
|
||||
BLIZZARD_COMBAT_LOG_MENU_BOTH = "¿Mostrar todo lo referente a %s?",
|
||||
BLIZZARD_COMBAT_LOG_MENU_EVERYTHING = "Mostrar todo",
|
||||
BLIZZARD_COMBAT_LOG_MENU_INCOMING = "¿Qué le pasó a %s?",
|
||||
BLIZZARD_COMBAT_LOG_MENU_OUTGOING = "¿Qué hizo %s?",
|
||||
BLIZZARD_COMBAT_LOG_MENU_OUTGOING_ME = "¿Qué te hizo %s?",
|
||||
BLIZZARD_COMBAT_LOG_MENU_RESET = "Restablecer",
|
||||
BLIZZARD_COMBAT_LOG_MENU_SAVE = "Guardar como nuevo filtro",
|
||||
BLIZZARD_COMBAT_LOG_MENU_SPELL_HIDE = "Ocultar los mensajes como este.",
|
||||
BLIZZARD_COMBAT_LOG_MENU_SPELL_LINK = "Vincular %s a chat.",
|
||||
BY_SOURCE = "Por origen",
|
||||
BY_SOURCE_COMBATLOG_TOOLTIP = "Color de línea según taumaturgo.",
|
||||
BY_TARGET = "Por objetivo",
|
||||
BY_TARGET_COMBATLOG_TOOLTIP = "Color de línea según objetivo.",
|
||||
COLORIZE = "Colorear:",
|
||||
COLORS = "Colores",
|
||||
COLOR_BY_SCHOOL = "Colorear según escuela",
|
||||
COMBATLOG_DEFAULTS = "Restablecer reg. combate",
|
||||
COMBATLOG_FILTER_STRING_CUSTOM_UNIT = "Unidad personalizada",
|
||||
COMBATLOG_FILTER_STRING_FRIENDLY_UNITS = "Amigos",
|
||||
COMBATLOG_FILTER_STRING_HOSTILE_PLAYERS = "Jugadores enemigos",
|
||||
COMBATLOG_FILTER_STRING_HOSTILE_UNITS = "Unidades enemigas",
|
||||
COMBATLOG_FILTER_STRING_ME = "Yo",
|
||||
COMBATLOG_FILTER_STRING_MY_PET = "Mascota",
|
||||
COMBATLOG_FILTER_STRING_NEUTRAL_UNITS = "Neutral",
|
||||
COMBATLOG_FILTER_STRING_UNKNOWN_UNITS = "Desconocido",
|
||||
COMBATLOG_HIGHLIGHT_ABILITY = "Facultad",
|
||||
COMBATLOG_HIGHLIGHT_DAMAGE = "Daño",
|
||||
COMBATLOG_HIGHLIGHT_KILL = "Muerte",
|
||||
COMBATLOG_HIGHLIGHT_SCHOOL = "Escuela",
|
||||
COMBATLOG_UNKNOWN_UNIT = "Algo",
|
||||
COMBAT_FACTION_CHANGE = "Reputación",
|
||||
COMBAT_HONOR_GAIN = "Honor",
|
||||
COMBAT_LOG_UNIT_YOU_ENABLED = "0",
|
||||
COMBAT_MISC_INFO = "Info. misc.",
|
||||
COMBAT_XP_GAIN = "Experiencia",
|
||||
CONFIRM_COMBAT_FILTER_DEFAULTS = "¿De verdad quieres restablecer la configuración inicial?",
|
||||
CONFIRM_COMBAT_FILTER_DELETE = "¿Realmente quieres borrar este filtro?",
|
||||
COPY_FILTER = "Copiar",
|
||||
DAMAGE_NUMBER = "Cifra de daño",
|
||||
DAMAGE_SCHOOL_TEXT = "Escuela de daño",
|
||||
DAMAGE_SHIELD = "Escudos de daño",
|
||||
DAMAGE_SHIELD_COMBATLOG_TOOLTIP = "Mostrar mensajes cuando un hechizo o facultad hace daño en reacción a un golpe cuerpo a cuerpo, como Espinas.",
|
||||
DEATHS_COMBATLOG_TOOLTIP = "Mostrar mensajes cuando haya una muerte.",
|
||||
DEFAULT_COMBATLOG_FILTER_NAME = "Filtro %d",
|
||||
DISPELS = "Disipación",
|
||||
DISPEL_AURA_COMBATLOG_TOOLTIP = "Mostrar cuando se elimina, rompe o roba un aura.",
|
||||
DONE_BY = "Hecho por:",
|
||||
DONE_TO = "Hecho a:",
|
||||
DRAINS = "drena",
|
||||
ENTER_FILTER_NAME = "Escribe el nombre del filtro:",
|
||||
ENTIRE_LINE = "Toda la línea",
|
||||
ENTIRE_LINE_COMBATLOG_TOOLTIP = "Colorear toda la línea según la siguiente opción.",
|
||||
ENVIRONMENTAL_DAMAGE = "Daño del entorno",
|
||||
ENVIRONMENTAL_DAMAGE_COMBATLOG_TOOLTIP = "Mostrar mensajes cuando alguien sufra daño al caer, ahogarse o nadar en lava.",
|
||||
EXAMPLE_SPELL_FIREBALL = "Bola de Fuego",
|
||||
EXAMPLE_SPELL_FROSTBOLT = "Descarga de Escarcha",
|
||||
EXAMPLE_TARGET_MONSTER = "Monstruo",
|
||||
EXAMPLE_TEXT = "Texto de muestra:",
|
||||
EXTRA_ATTACKS = "Ataques extra",
|
||||
FAILURES = "Fallos",
|
||||
FILTER_BY_ENEMIES_COMBATLOG_TOOLTIP = "Acciones llevadas a cabo por criaturas y mascotas hostiles.",
|
||||
FILTER_BY_FRIENDS_COMBATLOG_TOOLTIP = "Acciones llevadas a cabo por jugadores, mascotas y criaturas aliados.",
|
||||
FILTER_BY_HOSTILE_PLAYERS_COMBATLOG_TOOLTIP = "Acciones llevadas a cabo por jugadores hostiles.",
|
||||
FILTER_BY_ME_COMBATLOG_TOOLTIP = "Acciones llevadas a cabo por ti, tus trampas y tus hechizos.",
|
||||
FILTER_BY_NEUTRAL_COMBATLOG_TOOLTIP = "Acciones llevadas a cabo por criaturas neutrales.",
|
||||
FILTER_BY_PET_COMBATLOG_TOOLTIP = "Acciones llevadas a cabo por tus mascotas, guardianes invocados y jugadores embelesados.",
|
||||
FILTER_BY_UNKNOWN_COMBATLOG_TOOLTIP = "Acciones de origen sin especificar como caídas, ácido o lava.",
|
||||
FILTER_NAME = "Nombre del filtro",
|
||||
FILTER_TO_FRIENDS_COMBATLOG_TOOLTIP = "Acciones realizadas a jugadores, mascotas y criaturas aliados.",
|
||||
FILTER_TO_HOSTILE_COMBATLOG_TOOLTIP = "Acciones realizadas a mascotas y criaturas hostiles.",
|
||||
FILTER_TO_HOSTILE_PLAYERS_COMBATLOG_TOOLTIP = "Acciones realizadas a jugadores hostiles.",
|
||||
FILTER_TO_ME_COMBATLOG_TOOLTIP = "Acciones realizadas a ti.",
|
||||
FILTER_TO_NEUTRAL_COMBATLOG_TOOLTIP = "Acciones realizadas a criaturas neutrales.",
|
||||
FILTER_TO_PET_COMBATLOG_TOOLTIP = "Acciones realizadas a tus mascotas, guardianes invocados y jugadores embelesados.",
|
||||
FILTER_TO_UNKNOWN_COMBATLOG_TOOLTIP = "Acciones realizadas a objetivos invisibles.",
|
||||
FORMATTING = "Formato",
|
||||
FULL_TEXT_COMBATLOG_TOOLTIP = "Mostrar las entradas del registro de combate como frases completas.",
|
||||
HARMFUL_AURA_COMBATLOG_TOOLTIP = "Mostrar cuando ganas o pierdes un aura dañina.",
|
||||
HEALS = "Sanaciones",
|
||||
HIGHLIGHTING = "Resaltar:",
|
||||
HIGHLIGHT_ABILITY_COMBATLOG_TOOLTIP = "Resaltar nombres de facultades en mensajes de combate.",
|
||||
HIGHLIGHT_DAMAGE_COMBATLOG_TOOLTIP = "Resaltar cifras de daño en mensajes de combate.",
|
||||
HIGHLIGHT_KILL_COMBATLOG_TOOLTIP = "Resaltar toda la línea cuando matas o lo hace un miembro de tu grupo.",
|
||||
HIGHLIGHT_SCHOOL_COMBATLOG_TOOLTIP = "Resaltar la escuela del hechizo en el mensaje de combate.",
|
||||
HOSTILE = "Hostil",
|
||||
INTERRUPTS = "interrumpe",
|
||||
ITEM_NAMES = "Nombres de objetos",
|
||||
ITEM_NAMES_SHOW_BRACES_COMBATLOG_TOOLTIP = "Mostrar nombres de objetos entre corchetes.",
|
||||
KILLS_COMBATLOG_TOOLTIP = "Mostrar mensajes cuando un miembro de tu grupo mata.",
|
||||
MELEE = "Cuerpo a cuerpo",
|
||||
MELEE_COMBATLOG_TOOLTIP = "Mostrar golpes cuerpo a cuerpo naturales.",
|
||||
MESSAGE_SOURCES = "Origen mensaje",
|
||||
MISSES = "Fallos",
|
||||
MOVE_FILTER_DOWN = "Mover filtro abajo",
|
||||
MOVE_FILTER_UP = "Mover filtro arriba",
|
||||
OTHER = "Otros",
|
||||
PERIODIC = "Periódico",
|
||||
POWER_GAINS = "Ganancia de poder",
|
||||
POWER_GAINS_COMBATLOG_TOOLTIP = "Mostrar mensajes cuando un hechizo o facultad restaure maná, energía, ira, enfoque, chi, Poder Sagrado u orbes de las Sombras.",
|
||||
QUICKBUTTON_NAME_EVERYTHING = "Todo",
|
||||
QUICKBUTTON_NAME_EVERYTHING_TOOLTIP = "Mostrar todos los mensajes de combate.",
|
||||
QUICKBUTTON_NAME_KILLS = "Muertes",
|
||||
QUICKBUTTON_NAME_KILLS_TOOLTIP = "Mostrar todas las muertes aliadas y enemigas.",
|
||||
QUICKBUTTON_NAME_ME = "Me afecta",
|
||||
QUICKBUTTON_NAME_ME_TOOLTIP = "Mostrar todo lo que me afecta.",
|
||||
QUICKBUTTON_NAME_SELF = "Yo mismo",
|
||||
QUICKBUTTON_NAME_SELF_TOOLTIP = "Mostrar mensajes de tus acciones y de las que te afectan.",
|
||||
QUICK_BUTTON_COMBATLOG_TOOLTIP = "Coloca un acceso rápido a este filtro en la ventana de chat.",
|
||||
RANGED = "A distancia",
|
||||
RANGED_COMBATLOG_TOOLTIP = "Mostrar ataques con arcos, armas de fuego, armas arrojadizas y varitas.",
|
||||
RANGE_DAMAGE_COMBATLOG_TOOLTIP = "Mostrar los golpes a distancia que infligen daño total o parcial.",
|
||||
RANGE_MISSED_COMBATLOG_TOOLTIP = "Mostrar los golpes a distancia que no logran infligir daño.",
|
||||
RESURRECT = "Resurrecciones",
|
||||
SETTINGS = "Configuración",
|
||||
SHOW_BRACES = "Mostrar corchetes",
|
||||
SHOW_BRACES_COMBATLOG_TOOLTIP = "Mostrar los hipervínculos entre corchetes en los mensajes del registro de combate.",
|
||||
SHOW_QUICK_BUTTON = "Mostrar botón de acceso rápido",
|
||||
SHOW_TIMESTAMP = "Mostrar tiempo",
|
||||
SOURCE = "Fuente:",
|
||||
SPECIAL = "Especial",
|
||||
SPELLS_COMBATLOG_TOOLTIP = "Mostrar mensajes sobre hechizos y facultades especiales.",
|
||||
SPELL_CASTING = "Hechizos lanzados",
|
||||
SPELL_CASTING_COMBATLOG_TOOLTIP = "Mostrar mensajes de los hechizos lanzados.",
|
||||
SPELL_CAST_FAILED_COMBATLOG_TOOLTIP = "Mostrar mensajes cuando no se puede lanzar un hechizo o cuando no se logra lanzar.",
|
||||
SPELL_CAST_START_COMBATLOG_TOOLTIP = "Mostrar mensajes cuando se comienza a lanzar un hechizo.",
|
||||
SPELL_CAST_SUCCESS_COMBATLOG_TOOLTIP = "Mostrar mensajes cuando un hechizo se lance correctamente.",
|
||||
SPELL_COLOR_BY_SCHOOL_COMBATLOG_TOOLTIP = "Colorear los nombres de hechizos según la escuela.",
|
||||
SPELL_DAMAGE_COMBATLOG_TOOLTIP = "Mostrar mensajes cuando un hechizo o facultad inflige daño.",
|
||||
SPELL_DAMAGE_NUMBER_COMBATLOG_TOOLTIP = "Colorear la cifra del daño de golpes otros que cuerpo a cuerpo.",
|
||||
SPELL_DAMAGE_SCHOOL_COMBATLOG_TOOLTIP = "Colorear el nombre de escuela del daño (p. ej., Sombras).",
|
||||
SPELL_DRAIN_COMBATLOG_TOOLTIP = "Mostrar mensajes cuando un hechizo o facultad reduzca el maná, la energía, la ira o el enfoque.",
|
||||
SPELL_EXTRA_ATTACKS_COMBATLOG_TOOLTIP = "Mostrar mensajes cuando un hechizo o facultad otorgue ataques adicionales.",
|
||||
SPELL_HEAL_COMBATLOG_TOOLTIP = "Mostrar mensajes cuando un hechizo o facultad sana daño.",
|
||||
SPELL_INSTAKILL_COMBATLOG_TOOLTIP = "Mostrar mensajes sobre tipos de hechizos especiales, como los que infligen pérdida de durabilidad o comparten daño con una mascota.",
|
||||
SPELL_INTERRUPT_COMBATLOG_TOOLTIP = "Mostrar mensajes cuando un hechizo o facultad interrumpe otro hechizo.",
|
||||
SPELL_MISSED_COMBATLOG_TOOLTIP = "Mostrar mensajes cuando un hechizo o facultad no logra infligir daño. Incluye cuando el objetivo es inmune o lo esquiva, para, bloquea, desvía, absorbe o evade.",
|
||||
SPELL_NAMES = "Nombres de hechizos",
|
||||
SPELL_NAMES_COMBATLOG_TOOLTIP = "Colorear los nombres de hechizos.",
|
||||
SPELL_NAMES_SHOW_BRACES_COMBATLOG_TOOLTIP = "Mostrar nombres de hechizos entre corchetes.",
|
||||
SPELL_PERIODIC_COMBATLOG_TOOLTIP = "Mostrar los hechizos que tienen un efecto gradual.",
|
||||
SPELL_PERIODIC_DAMAGE_COMBATLOG_TOOLTIP = "Mostrar mensajes cuando un hechizo o facultad inflige daño periódico, como Palabra de las Sombras: Dolor o Corrupción.",
|
||||
SPELL_PERIODIC_HEAL_COMBATLOG_TOOLTIP = "Mostrar mensajes cuando un hechizo o facultad sana daño periódicamente, como Renovar o Rejuvenecimiento.",
|
||||
SPELL_PERIODIC_MISSED_COMBATLOG_TOOLTIP = "Mostrar mensajes cuando un hechizo o facultad no logra infligir daño periódico. Incluye cuando el objetivo es inmune, lo absorbe o lo evade.",
|
||||
SPELL_PERIODIC_OTHER_COMBATLOG_TOOLTIP = "Mostrar mensajes cuando un hechizo o facultad inflige cualquier otro efecto periódicamente, como restaurar o drenar maná.",
|
||||
SPELL_RESURRECT_COMBATLOG_TOOLTIP = "Mostrar mensajes cuando un hechizo o facultad resucite a otro jugador o criatura.",
|
||||
SPELL_SUMMON_COMBATLOG_TOOLTIP = "Mostrar mensajes cuando un hechizo invoque a una criatura o cree un objeto.",
|
||||
START = "Inicio",
|
||||
STRING_SCHOOL_UNKNOWN = "Desconocido",
|
||||
SUCCESS = "Éxito",
|
||||
SUMMONS = "Invocación",
|
||||
SWING_DAMAGE_COMBATLOG_TOOLTIP = "Mostrar golpes cuerpo a cuerpo que infligen daño total o parcial.",
|
||||
SWING_MISSED_COMBATLOG_TOOLTIP = "Mostrar golpes cuerpo a cuerpo que no infligen daño.",
|
||||
TEXT_MODE_A = "A",
|
||||
TEXT_MODE_A_STRING_1 = "%s %s %s %s %s. %s %11$s",
|
||||
TEXT_MODE_A_STRING_2 = "%1$s %3$s %2$s %4$s %5$s. %6$s",
|
||||
TEXT_MODE_A_STRING_3 = "%1$s %5$s %3$s %4$s %2$s. %6$s",
|
||||
TEXT_MODE_A_STRING_ACTION = "|Haction:%s|h%s|h",
|
||||
TEXT_MODE_A_STRING_BRACE_ITEM = "|c%s[|r%s|c%s]|r",
|
||||
TEXT_MODE_A_STRING_BRACE_SPELL = "|c%s[|r%s|c%s]|r",
|
||||
TEXT_MODE_A_STRING_BRACE_UNIT = "|c%s[|r%s|c%s]|r",
|
||||
TEXT_MODE_A_STRING_DEST_ICON = "|Hicon:%d:dest|h%s|h",
|
||||
TEXT_MODE_A_STRING_DEST_UNIT = "%s|Hunit:%s:%s|h%s|h",
|
||||
TEXT_MODE_A_STRING_ITEM = "|Hitem:%s|h%s|h",
|
||||
TEXT_MODE_A_STRING_POSSESSIVE = "%s",
|
||||
TEXT_MODE_A_STRING_REMAINING_POINTS = "(%s restante)",
|
||||
TEXT_MODE_A_STRING_RESULT_ABSORB = "(%s absorbido)",
|
||||
TEXT_MODE_A_STRING_RESULT_BLOCK = "(%s bloqueado)",
|
||||
TEXT_MODE_A_STRING_RESULT_CRITICAL = "(Crítico)",
|
||||
TEXT_MODE_A_STRING_RESULT_CRITICAL_SPELL = "(Crítico)",
|
||||
TEXT_MODE_A_STRING_RESULT_CRUSHING = "(Aplastamiento)",
|
||||
TEXT_MODE_A_STRING_RESULT_FORMAT = "$resultAmount $resultType",
|
||||
TEXT_MODE_A_STRING_RESULT_GLANCING = "(Refilón)",
|
||||
TEXT_MODE_A_STRING_RESULT_MULTISTRIKE = "(Multigolpe)",
|
||||
TEXT_MODE_A_STRING_RESULT_OVERENERGIZE = "(%s sobreenergizado)",
|
||||
TEXT_MODE_A_STRING_RESULT_OVERHEALING = "(%s de exceso de sanación)",
|
||||
TEXT_MODE_A_STRING_RESULT_OVERKILLING = "(%s excedente)",
|
||||
TEXT_MODE_A_STRING_RESULT_PARRY = "(%d Parado)",
|
||||
TEXT_MODE_A_STRING_RESULT_REFLECT = "Reflejado",
|
||||
TEXT_MODE_A_STRING_RESULT_RESIST = "(%s resistido)",
|
||||
TEXT_MODE_A_STRING_RESULT_VULNERABILITY = "(%s de daño de vulnerabilidad)",
|
||||
TEXT_MODE_A_STRING_SOURCE_ICON = "|Hicon:%s:source|h%s|h",
|
||||
TEXT_MODE_A_STRING_SOURCE_UNIT = "%s|Hunit:%s:%s|h%s|h",
|
||||
TEXT_MODE_A_STRING_SPELL = "|Hspell:%s:%s:%s|h%s|h",
|
||||
TEXT_MODE_A_STRING_SPELL_EXTRA = "|Hspell:%s:%s:%s|h%s|h",
|
||||
TEXT_MODE_A_STRING_TIMESTAMP = "%s> %s",
|
||||
TEXT_MODE_A_STRING_VALUE_SCHOOL = "%s %s",
|
||||
TEXT_MODE_A_STRING_VALUE_TYPE = "%s (%s)",
|
||||
TEXT_MODE_A_TIMESTAMP = "%H:%M:%S",
|
||||
TIMESTAMP_COMBATLOG_TOOLTIP = "Mostrar el tiempo en los mensajes del registro de combate.",
|
||||
UNIT_COLORS = "Colores de unidades:",
|
||||
UNIT_NAMES = "Nombres de unidades",
|
||||
UNIT_NAMES_COMBATLOG_TOOLTIP = "Colorear el nombre de unidades.",
|
||||
UNIT_NAMES_SHOW_BRACES_COMBATLOG_TOOLTIP = "Mostrar nombres de unidades entre corchetes.",
|
||||
UNIT_YOU = "Tú",
|
||||
UNIT_YOU_DEST = "Tú",
|
||||
UNIT_YOU_DEST_POSSESSIVE = "Tu",
|
||||
UNIT_YOU_SOURCE = "Tú",
|
||||
UNIT_YOU_SOURCE_POSSESSIVE = "Tu",
|
||||
USE_FULL_TEXT_MODE = "Mostrar texto completo",
|
||||
}
|
||||
Vendored
+677
@@ -0,0 +1,677 @@
|
||||
-- Classic Era GlobalStrings (FR) that the combat log reads
|
||||
-- and the 1.12 client lacks. Generated; do not edit by hand.
|
||||
pfUI_locale["frFR"]["combatlog"] = {
|
||||
ACTION_DAMAGE_SHIELD = "inflige des dégâts",
|
||||
ACTION_DAMAGE_SHIELD_FULL_TEXT = "%2$s %1$s renvoie %9$s de dégâts |2 %7$s à %4$s.%6$s",
|
||||
ACTION_DAMAGE_SHIELD_FULL_TEXT_NO_SOURCE = "%2$s renvoie %9$s de dégâts |2 %7$s à %4$s.%6$s",
|
||||
ACTION_DAMAGE_SHIELD_MISSED = "rate",
|
||||
ACTION_DAMAGE_SHIELD_MISSED_BLOCK = "(Bloque)",
|
||||
ACTION_DAMAGE_SHIELD_MISSED_BLOCK_FULL_TEXT = "%2$s %1$s est bloqué par %4$s.%6$s",
|
||||
ACTION_DAMAGE_SHIELD_MISSED_BLOCK_FULL_TEXT_NO_SOURCE = "%2$s est bloqué par %4$s.%6$s",
|
||||
ACTION_DAMAGE_SHIELD_MISSED_BLOCK_POSSESSIVE = "1",
|
||||
ACTION_DAMAGE_SHIELD_MISSED_DEFLECT = "(Dévie)",
|
||||
ACTION_DAMAGE_SHIELD_MISSED_DEFLECT_FULL_TEXT = "%2$s %1$s est dévié par %4$s.",
|
||||
ACTION_DAMAGE_SHIELD_MISSED_DEFLECT_FULL_TEXT_NO_SOURCE = "%2$s est dévié par %4$s.",
|
||||
ACTION_DAMAGE_SHIELD_MISSED_DEFLECT_POSSESSIVE = "1",
|
||||
ACTION_DAMAGE_SHIELD_MISSED_DODGE = "(Esquive)",
|
||||
ACTION_DAMAGE_SHIELD_MISSED_DODGE_FULL_TEXT = "%2$s %1$s est esquivé par %4$s.",
|
||||
ACTION_DAMAGE_SHIELD_MISSED_DODGE_FULL_TEXT_NO_SOURCE = "%2$s est esquivé par %4$s.",
|
||||
ACTION_DAMAGE_SHIELD_MISSED_DODGE_POSSESSIVE = "1",
|
||||
ACTION_DAMAGE_SHIELD_MISSED_EVADED = "(Évite)",
|
||||
ACTION_DAMAGE_SHIELD_MISSED_EVADED_FULL_TEXT = "%2$s %1$s est évité par %4$s.",
|
||||
ACTION_DAMAGE_SHIELD_MISSED_EVADED_FULL_TEXT_NO_SOURCE = "%2$s est évité par %4$s.",
|
||||
ACTION_DAMAGE_SHIELD_MISSED_EVADED_POSSESSIVE = "1",
|
||||
ACTION_DAMAGE_SHIELD_MISSED_FULL_TEXT = "%2$s %1$s rate %4$s.",
|
||||
ACTION_DAMAGE_SHIELD_MISSED_FULL_TEXT_NO_SOURCE = "%2$s rate %4$s.",
|
||||
ACTION_DAMAGE_SHIELD_MISSED_IMMUNE = "(Insensible)",
|
||||
ACTION_DAMAGE_SHIELD_MISSED_IMMUNE_FULL_TEXT = "%2$s %1$s a échoué. %4$s est insensible.",
|
||||
ACTION_DAMAGE_SHIELD_MISSED_IMMUNE_FULL_TEXT_NO_SOURCE = "%2$s a échoué. %4$s est insensible.",
|
||||
ACTION_DAMAGE_SHIELD_MISSED_IMMUNE_POSSESSIVE = "1",
|
||||
ACTION_DAMAGE_SHIELD_MISSED_MISS = "(Rate)",
|
||||
ACTION_DAMAGE_SHIELD_MISSED_MISS_FULL_TEXT = "%2$s %1$s rate %4$s.",
|
||||
ACTION_DAMAGE_SHIELD_MISSED_MISS_FULL_TEXT_NO_SOURCE = "%2$s rate %4$s.",
|
||||
ACTION_DAMAGE_SHIELD_MISSED_MISS_POSSESSIVE = "1",
|
||||
ACTION_DAMAGE_SHIELD_MISSED_PARRY = "(Pare)",
|
||||
ACTION_DAMAGE_SHIELD_MISSED_PARRY_FULL_TEXT = "%2$s %1$s est paré par %4$s.",
|
||||
ACTION_DAMAGE_SHIELD_MISSED_PARRY_FULL_TEXT_NO_SOURCE = "%2$s est paré par %4$s.",
|
||||
ACTION_DAMAGE_SHIELD_MISSED_PARRY_POSSESSIVE = "1",
|
||||
ACTION_DAMAGE_SHIELD_MISSED_POSSESSIVE = "1",
|
||||
ACTION_DAMAGE_SHIELD_MISSED_RESIST = "(Résiste)",
|
||||
ACTION_DAMAGE_SHIELD_MISSED_RESIST_FULL_TEXT = "%4$s résiste entièrement à %2$s %1$s.%6$s",
|
||||
ACTION_DAMAGE_SHIELD_MISSED_RESIST_FULL_TEXT_NO_SOURCE = "%4$s résiste entièrement à %2$s.%6$s",
|
||||
ACTION_DAMAGE_SHIELD_MISSED_RESIST_POSSESSIVE = "1",
|
||||
ACTION_DAMAGE_SHIELD_POSSESSIVE = "1",
|
||||
ACTION_DAMAGE_SPLIT = "partage les dégâts",
|
||||
ACTION_DAMAGE_SPLIT_ABSORBED_FULL_TEXT = "Les dégâts |2 %2$s |2 %1$s sont absorbés par %4$s %6$s.",
|
||||
ACTION_DAMAGE_SPLIT_FULL_TEXT = "%2$s %1$s inflige %9$s points de dégâts à %4$s.",
|
||||
ACTION_DAMAGE_SPLIT_POSSESSIVE = "0",
|
||||
ACTION_DAMAGE_SPLIT_RESULT_FULL_TEXT = "%2$s |2 %1$s inflige %9$s points de dégâts à %4$s %6$s.",
|
||||
ACTION_ENCHANT_APPLIED = "enchante",
|
||||
ACTION_ENCHANT_APPLIED_FULL_TEXT = "%1$s lance %2$s sur %5$s %4$s.",
|
||||
ACTION_ENCHANT_APPLIED_POSSESSIVE = "0",
|
||||
ACTION_ENCHANT_REMOVED = "lève l'enchantement",
|
||||
ACTION_ENCHANT_REMOVED_FULL_TEXT = "%2$s s'efface |2 %5$s %4$s.",
|
||||
ACTION_ENCHANT_REMOVED_POSSESSIVE = "0",
|
||||
ACTION_ENVIRONMENTAL_DAMAGE = "inflige des dégâts",
|
||||
ACTION_ENVIRONMENTAL_DAMAGE_DROWNING = "Noyade",
|
||||
ACTION_ENVIRONMENTAL_DAMAGE_DROWNING_FULL_TEXT = "%4$s se noie et perd %9$s points de vie.",
|
||||
ACTION_ENVIRONMENTAL_DAMAGE_DROWNING_POSSESSIVE = "0",
|
||||
ACTION_ENVIRONMENTAL_DAMAGE_FALLING = "Chute",
|
||||
ACTION_ENVIRONMENTAL_DAMAGE_FALLING_FULL_TEXT = "%4$s tombe et perd %9$s points de vie.",
|
||||
ACTION_ENVIRONMENTAL_DAMAGE_FALLING_POSSESSIVE = "0",
|
||||
ACTION_ENVIRONMENTAL_DAMAGE_FATIGUE = "Fatigue",
|
||||
ACTION_ENVIRONMENTAL_DAMAGE_FATIGUE_FULL_TEXT = "%4$s s'épuise et perd %9$s points de vie.",
|
||||
ACTION_ENVIRONMENTAL_DAMAGE_FATIGUE_POSSESSIVE = "0",
|
||||
ACTION_ENVIRONMENTAL_DAMAGE_FIRE = "Feu",
|
||||
ACTION_ENVIRONMENTAL_DAMAGE_FIRE_FULL_TEXT = "%4$s subit %9$s points de dégâts de Feu.",
|
||||
ACTION_ENVIRONMENTAL_DAMAGE_FIRE_POSSESSIVE = "0",
|
||||
ACTION_ENVIRONMENTAL_DAMAGE_FULL_TEXT = "%4$s perd %9$s points de vie par dégâts de l'environnement.",
|
||||
ACTION_ENVIRONMENTAL_DAMAGE_LAVA = "Lave",
|
||||
ACTION_ENVIRONMENTAL_DAMAGE_LAVA_FULL_TEXT = "%4$s perd %9$s points de vie en nageant dans la lave. %6$s",
|
||||
ACTION_ENVIRONMENTAL_DAMAGE_LAVA_POSSESSIVE = "0",
|
||||
ACTION_ENVIRONMENTAL_DAMAGE_POSSESSIVE = "0",
|
||||
ACTION_ENVIRONMENTAL_DAMAGE_SLIME = "Gelée",
|
||||
ACTION_ENVIRONMENTAL_DAMAGE_SLIME_FULL_TEXT = "%4$s perd %9$s points de vie en nageant dans la gelée. %6$s",
|
||||
ACTION_ENVIRONMENTAL_DAMAGE_SLIME_POSSESSIVE = "0",
|
||||
ACTION_PARTY_KILL = "tue",
|
||||
ACTION_PARTY_KILL_FULL_TEXT = "%1$s a tué %4$s !",
|
||||
ACTION_PARTY_KILL_POSSESSIVE = "0",
|
||||
ACTION_PARTY_KILL_UNCONSCIOUS = "assommé",
|
||||
ACTION_PARTY_KILL_UNCONSCIOUS_FULL_TEXT = "%1$s a assommé %4$s !",
|
||||
ACTION_PARTY_KILL_UNCONSCIOUS_POSSESSIVE = "0",
|
||||
ACTION_RANGED = "Tir",
|
||||
ACTION_RANGE_DAMAGE = "touche",
|
||||
ACTION_RANGE_DAMAGE_FULL_TEXT = "Le tir %1$s touche %4$s pour %5$s.%6$s",
|
||||
ACTION_RANGE_DAMAGE_FULL_TEXT_NO_SOURCE = "Un tir touche %4$s pour %5$s.%6$s",
|
||||
ACTION_RANGE_DAMAGE_POSSESSIVE = "1",
|
||||
ACTION_RANGE_MISSED = "rate",
|
||||
ACTION_RANGE_MISSED_ABSORB = "(Absorbe)",
|
||||
ACTION_RANGE_MISSED_ABSORB_FULL_TEXT = "Le tir %1$s est absorbé par %4$s.%6$s",
|
||||
ACTION_RANGE_MISSED_ABSORB_POSSESSIVE = "1",
|
||||
ACTION_RANGE_MISSED_BLOCK = "(Bloque)",
|
||||
ACTION_RANGE_MISSED_BLOCK_FULL_TEXT = "Le tir %1$s est bloqué par %4$s.%6$s",
|
||||
ACTION_RANGE_MISSED_BLOCK_POSSESSIVE = "1",
|
||||
ACTION_RANGE_MISSED_DEFLECT = "(Dévie)",
|
||||
ACTION_RANGE_MISSED_DEFLECT_FULL_TEXT = "Le tir %1$s est dévié par %4$s.",
|
||||
ACTION_RANGE_MISSED_DEFLECT_POSSESSIVE = "1",
|
||||
ACTION_RANGE_MISSED_DODGE = "(Esquive)",
|
||||
ACTION_RANGE_MISSED_DODGE_FULL_TEXT = "Le tir %1$s est esquivé par %4$s.",
|
||||
ACTION_RANGE_MISSED_DODGE_POSSESSIVE = "1",
|
||||
ACTION_RANGE_MISSED_EVADE = "(Évite)",
|
||||
ACTION_RANGE_MISSED_EVADE_FULL_TEXT = "Le tir %1$s est évité par %4$s.",
|
||||
ACTION_RANGE_MISSED_EVADE_POSSESSIVE = "1",
|
||||
ACTION_RANGE_MISSED_FULL_TEXT = "Le tir %1$s rate %4$s.",
|
||||
ACTION_RANGE_MISSED_IMMUNE = "(Insensible)",
|
||||
ACTION_RANGE_MISSED_IMMUNE_FULL_TEXT = "Le tir %1$s a échoué. %4$s est insensible.",
|
||||
ACTION_RANGE_MISSED_IMMUNE_POSSESSIVE = "1",
|
||||
ACTION_RANGE_MISSED_MISFIRE = "(Tir accidentel)",
|
||||
ACTION_RANGE_MISSED_MISFIRE_FULL_TEXT = "Le tir %1$s a touché %4$s par accident.",
|
||||
ACTION_RANGE_MISSED_MISFIRE_POSSESSIVE = "1",
|
||||
ACTION_RANGE_MISSED_MISS = "(Raté)",
|
||||
ACTION_RANGE_MISSED_MISS_FULL_TEXT = "Le tir %1$s rate %4$s.",
|
||||
ACTION_RANGE_MISSED_MISS_POSSESSIVE = "1",
|
||||
ACTION_RANGE_MISSED_PARRY = "(Pare)",
|
||||
ACTION_RANGE_MISSED_PARRY_FULL_TEXT = "Le tir %1$s est paré par %4$s.",
|
||||
ACTION_RANGE_MISSED_PARRY_POSSESSIVE = "1",
|
||||
ACTION_RANGE_MISSED_POSSESSIVE = "1",
|
||||
ACTION_RANGE_MISSED_RESIST = "(Résiste)",
|
||||
ACTION_RANGE_MISSED_RESIST_FULL_TEXT = "Le tir %1$s a échoué, %4$s résiste entièrement.%6$s",
|
||||
ACTION_RANGE_MISSED_RESIST_POSSESSIVE = "1",
|
||||
ACTION_SPELL_AURA_APPLIED = "applique",
|
||||
ACTION_SPELL_AURA_APPLIED_BUFF = "applique",
|
||||
ACTION_SPELL_AURA_APPLIED_BUFF_FULL_TEXT = "%4$s gagne %2$s %1$s.",
|
||||
ACTION_SPELL_AURA_APPLIED_BUFF_FULL_TEXT_NO_SOURCE = "%4$s gagne %2$s.",
|
||||
ACTION_SPELL_AURA_APPLIED_BUFF_MASTER = "2",
|
||||
ACTION_SPELL_AURA_APPLIED_BUFF_POSSESSIVE = "1",
|
||||
ACTION_SPELL_AURA_APPLIED_BUFF_WITH_POINTS_FULL_TEXT = "%4$s gagne %2$s %1$s. %11$s",
|
||||
ACTION_SPELL_AURA_APPLIED_BUFF_WITH_POINTS_FULL_TEXT_NO_SOURCE = "%4$s gagne %2$s. %11$s",
|
||||
ACTION_SPELL_AURA_APPLIED_DEBUFF = "afflige",
|
||||
ACTION_SPELL_AURA_APPLIED_DEBUFF_FULL_TEXT = "%4$s souffre |2 %2$s %1$s.",
|
||||
ACTION_SPELL_AURA_APPLIED_DEBUFF_FULL_TEXT_NO_SOURCE = "%4$s souffre |2 %2$s.",
|
||||
ACTION_SPELL_AURA_APPLIED_DEBUFF_MASTER = "1",
|
||||
ACTION_SPELL_AURA_APPLIED_DEBUFF_POSSESSIVE = "1",
|
||||
ACTION_SPELL_AURA_APPLIED_DEBUFF_WITH_POINTS_FULL_TEXT = "%4$s souffre |2 %2$s %1$s. %11$s",
|
||||
ACTION_SPELL_AURA_APPLIED_DEBUFF_WITH_POINTS_FULL_TEXT_NO_SOURCE = "%4$s souffre |2 %2$s. %11$s",
|
||||
ACTION_SPELL_AURA_APPLIED_DOSE = "cumule",
|
||||
ACTION_SPELL_AURA_APPLIED_DOSE_BUFF = "cumule",
|
||||
ACTION_SPELL_AURA_APPLIED_DOSE_BUFF_FULL_TEXT = "%4$s gagne %2$s %1$s (%9$s).",
|
||||
ACTION_SPELL_AURA_APPLIED_DOSE_BUFF_FULL_TEXT_NO_SOURCE = "%4$s gagne %2$s (%9$s).",
|
||||
ACTION_SPELL_AURA_APPLIED_DOSE_BUFF_POSSESSIVE = "1",
|
||||
ACTION_SPELL_AURA_APPLIED_DOSE_DEBUFF = "afflige",
|
||||
ACTION_SPELL_AURA_APPLIED_DOSE_DEBUFF_FULL_TEXT = "%4$s souffre |2 %2$s %1$s (%9$s).",
|
||||
ACTION_SPELL_AURA_APPLIED_DOSE_DEBUFF_FULL_TEXT_NO_SOURCE = "%4$s souffre |2 %2$s (%9$s).",
|
||||
ACTION_SPELL_AURA_APPLIED_DOSE_DEBUFF_POSSESSIVE = "1",
|
||||
ACTION_SPELL_AURA_APPLIED_MASTER = "2",
|
||||
ACTION_SPELL_AURA_APPLIED_POSSESSIVE = "1",
|
||||
ACTION_SPELL_AURA_BROKEN = "brise",
|
||||
ACTION_SPELL_AURA_BROKEN_BUFF = "brise",
|
||||
ACTION_SPELL_AURA_BROKEN_BUFF_FULL_TEXT = "%1$s brise %2$s %4$s.",
|
||||
ACTION_SPELL_AURA_BROKEN_BUFF_FULL_TEXT_NO_SOURCE = "%2$s %1$s a été brisé par quelqu'un.",
|
||||
ACTION_SPELL_AURA_BROKEN_BUFF_POSSESSIVE = "0",
|
||||
ACTION_SPELL_AURA_BROKEN_DEBUFF = "brise",
|
||||
ACTION_SPELL_AURA_BROKEN_DEBUFF_FULL_TEXT = "%1$s brise %2$s %4$s.",
|
||||
ACTION_SPELL_AURA_BROKEN_DEBUFF_FULL_TEXT_NO_SOURCE = "%2$s %1$s a été brisé par quelqu'un.",
|
||||
ACTION_SPELL_AURA_BROKEN_DEBUFF_POSSESSIVE = "0",
|
||||
ACTION_SPELL_AURA_BROKEN_SPELL_BUFF = "brise",
|
||||
ACTION_SPELL_AURA_BROKEN_SPELL_BUFF_FULL_TEXT = "%1$s brise %2$s %4$s avec %5$s.",
|
||||
ACTION_SPELL_AURA_BROKEN_SPELL_BUFF_FULL_TEXT_NO_SOURCE = "%5$s a brisé %2$s %4$s.",
|
||||
ACTION_SPELL_AURA_BROKEN_SPELL_BUFF_POSSESSIVE = "1",
|
||||
ACTION_SPELL_AURA_BROKEN_SPELL_DEBUFF = "brise",
|
||||
ACTION_SPELL_AURA_BROKEN_SPELL_DEBUFF_FULL_TEXT = "%1$s brise %2$s %4$s avec %5$s.",
|
||||
ACTION_SPELL_AURA_BROKEN_SPELL_DEBUFF_FULL_TEXT_NO_SOURCE = "%5$s brise %2$s %4$s.",
|
||||
ACTION_SPELL_AURA_BROKEN_SPELL_DEBUFF_POSSESSIVE = "1",
|
||||
ACTION_SPELL_AURA_REFRESH = "rafraîchit",
|
||||
ACTION_SPELL_AURA_REFRESH_BUFF = "rafraîchit",
|
||||
ACTION_SPELL_AURA_REFRESH_BUFF_FULL_TEXT = "%2$s %1$s est rafraîchi sur %4$s.",
|
||||
ACTION_SPELL_AURA_REFRESH_BUFF_FULL_TEXT_NO_SOURCE = "%2$s est rafraîchi sur %4$s.",
|
||||
ACTION_SPELL_AURA_REFRESH_BUFF_MASTER = "2",
|
||||
ACTION_SPELL_AURA_REFRESH_BUFF_POSSESSIVE = "1",
|
||||
ACTION_SPELL_AURA_REFRESH_BUFF_WITH_POINTS_FULL_TEXT = "%2$s %1$s est rafraîchi sur %4$s. %11$s",
|
||||
ACTION_SPELL_AURA_REFRESH_BUFF_WITH_POINTS_FULL_TEXT_NO_SOURCE = "%2$s est rafraîchi sur %4$s. %11$s",
|
||||
ACTION_SPELL_AURA_REFRESH_DEBUFF = "rafraîchit",
|
||||
ACTION_SPELL_AURA_REFRESH_DEBUFF_FULL_TEXT = "%2$s %1$s est rafraîchi sur %4$s.",
|
||||
ACTION_SPELL_AURA_REFRESH_DEBUFF_FULL_TEXT_NO_SOURCE = "%2$s est rafraîchi sur %4$s.",
|
||||
ACTION_SPELL_AURA_REFRESH_DEBUFF_MASTER = "1",
|
||||
ACTION_SPELL_AURA_REFRESH_DEBUFF_POSSESSIVE = "1",
|
||||
ACTION_SPELL_AURA_REFRESH_DEBUFF_WITH_POINTS_FULL_TEXT = "%2$s %1$s est rafraîchi sur %4$s. %11$s",
|
||||
ACTION_SPELL_AURA_REFRESH_DEBUFF_WITH_POINTS_FULL_TEXT_NO_SOURCE = "%2$s est rafraîchi sur %4$s. %11$s",
|
||||
ACTION_SPELL_AURA_REFRESH_MASTER = "2",
|
||||
ACTION_SPELL_AURA_REMOVED = "enlève",
|
||||
ACTION_SPELL_AURA_REMOVED_BUFF = "efface",
|
||||
ACTION_SPELL_AURA_REMOVED_BUFF_FULL_TEXT = "%2$s %1$s s'efface |2 %4$s.",
|
||||
ACTION_SPELL_AURA_REMOVED_BUFF_FULL_TEXT_NO_SOURCE = "%2$s s'efface |2 %4$s.",
|
||||
ACTION_SPELL_AURA_REMOVED_BUFF_POSSESSIVE = "1",
|
||||
ACTION_SPELL_AURA_REMOVED_BUFF_WITH_POINTS_FULL_TEXT = "%2$s %1$s s'efface |2 %4$s. %11$s",
|
||||
ACTION_SPELL_AURA_REMOVED_BUFF_WITH_POINTS_FULL_TEXT_NO_SOURCE = "%2$s s'efface |2 %4$s. %11$s",
|
||||
ACTION_SPELL_AURA_REMOVED_DEBUFF = "disparaît",
|
||||
ACTION_SPELL_AURA_REMOVED_DEBUFF_FULL_TEXT = "%2$s %1$s disparaît |2 %4$s.",
|
||||
ACTION_SPELL_AURA_REMOVED_DEBUFF_FULL_TEXT_NO_SOURCE = "%2$s se dissipe |2 %4$s.",
|
||||
ACTION_SPELL_AURA_REMOVED_DEBUFF_POSSESSIVE = "1",
|
||||
ACTION_SPELL_AURA_REMOVED_DEBUFF_WITH_POINTS_FULL_TEXT = "%2$s %1$s disparaît |2 %4$s. %11$s",
|
||||
ACTION_SPELL_AURA_REMOVED_DEBUFF_WITH_POINTS_FULL_TEXT_NO_SOURCE = "%2$s se dissipe |2 %4$s. %11$s",
|
||||
ACTION_SPELL_AURA_REMOVED_DOSE = "réduit",
|
||||
ACTION_SPELL_AURA_REMOVED_DOSE_BUFF = "réduit",
|
||||
ACTION_SPELL_AURA_REMOVED_DOSE_BUFF_FULL_TEXT = "%2$s %1$s (%9$s) se réduit.",
|
||||
ACTION_SPELL_AURA_REMOVED_DOSE_BUFF_FULL_TEXT_NO_SOURCE = "%2$s (%9$s) se réduit.",
|
||||
ACTION_SPELL_AURA_REMOVED_DOSE_BUFF_POSSESSIVE = "1",
|
||||
ACTION_SPELL_AURA_REMOVED_DOSE_DEBUFF = "diminue",
|
||||
ACTION_SPELL_AURA_REMOVED_DOSE_DEBUFF_FULL_TEXT = "%2$s %1$s (%9$s) diminue.",
|
||||
ACTION_SPELL_AURA_REMOVED_DOSE_DEBUFF_FULL_TEXT_NO_SOURCE = "%2$s (%9$s) diminue.",
|
||||
ACTION_SPELL_AURA_REMOVED_DOSE_DEBUFF_POSSESSIVE = "1",
|
||||
ACTION_SPELL_AURA_REMOVED_FULL_TEXT = "%2$s %1$s est enlevé |2 %4$s.",
|
||||
ACTION_SPELL_AURA_REMOVED_FULL_TEXT_NO_SOURCE = "%2$s %1$s est enlevé |2 %4$s.",
|
||||
ACTION_SPELL_AURA_REMOVED_POSSESSIVE = "1",
|
||||
ACTION_SPELL_BUILDING_DAMAGE = "frappe",
|
||||
ACTION_SPELL_BUILDING_DAMAGE_FULL_TEXT = "%2$s %1$s frappe %4$s pour %5$s.%6$s",
|
||||
ACTION_SPELL_BUILDING_DAMAGE_FULL_TEXT_NO_SOURCE = "%2$s frappe %4$s pour %5$s.%6$s",
|
||||
ACTION_SPELL_BUILDING_DAMAGE_MASTER = "1",
|
||||
ACTION_SPELL_BUILDING_DAMAGE_POSSESSIVE = "1",
|
||||
ACTION_SPELL_BUILDING_HEAL = "répare",
|
||||
ACTION_SPELL_BUILDING_HEAL_FULL_TEXT = "%2$s %1$s répare %4$s pour %9$s.%6$s",
|
||||
ACTION_SPELL_BUILDING_HEAL_FULL_TEXT_NO_SOURCE = "%2$s répare %4$s pour %9$s.%6$s",
|
||||
ACTION_SPELL_BUILDING_HEAL_POSSESSIVE = "1",
|
||||
ACTION_SPELL_CAST_FAILED = "échoue",
|
||||
ACTION_SPELL_CAST_FAILED_FULL_TEXT = "%2$s %1$s échoue.%6$s",
|
||||
ACTION_SPELL_CAST_FAILED_MASTER = "1",
|
||||
ACTION_SPELL_CAST_FAILED_POSSESSIVE = "1",
|
||||
ACTION_SPELL_CAST_START = "commence à lancer",
|
||||
ACTION_SPELL_CAST_START_FULL_TEXT = "%1$s commence à lancer %2$s sur %4$s.",
|
||||
ACTION_SPELL_CAST_START_FULL_TEXT_NO_DEST = "%1$s commence à lancer %2$s.",
|
||||
ACTION_SPELL_CAST_START_FULL_TEXT_NO_SOURCE = "Quelqu'un commence à lancer %2$s sur %4$s.",
|
||||
ACTION_SPELL_CAST_START_MASTER = "2",
|
||||
ACTION_SPELL_CAST_START_POSSESSIVE = "0",
|
||||
ACTION_SPELL_CAST_SUCCESS = "lance",
|
||||
ACTION_SPELL_CAST_SUCCESS_FULL_TEXT = "%1$s lance %2$s sur %4$s.",
|
||||
ACTION_SPELL_CAST_SUCCESS_FULL_TEXT_NO_DEST = "%1$s lance %2$s.",
|
||||
ACTION_SPELL_CAST_SUCCESS_FULL_TEXT_NO_SOURCE = "Quelque chose lance %2$s sur %4$s.",
|
||||
ACTION_SPELL_CAST_SUCCESS_MASTER = "2",
|
||||
ACTION_SPELL_CAST_SUCCESS_POSSESSIVE = "0",
|
||||
ACTION_SPELL_CREATE = "Crée",
|
||||
ACTION_SPELL_CREATE_FULL_TEXT = "%2$s %1$s crée %4$s.%6$s",
|
||||
ACTION_SPELL_CREATE_FULL_TEXT_NO_SOURCE = "%2$s crée %4$s.%6$s",
|
||||
ACTION_SPELL_CREATE_POSSESSIVE = "1",
|
||||
ACTION_SPELL_DAMAGE = "touche",
|
||||
ACTION_SPELL_DAMAGE_FULL_TEXT = "%2$s %1$s touche %4$s pour %5$s.%6$s",
|
||||
ACTION_SPELL_DAMAGE_FULL_TEXT_NO_SOURCE = "%2$s touche %4$s pour %5$s.%6$s",
|
||||
ACTION_SPELL_DAMAGE_MASTER = "1",
|
||||
ACTION_SPELL_DAMAGE_POSSESSIVE = "1",
|
||||
ACTION_SPELL_DISPEL = "dissipe",
|
||||
ACTION_SPELL_DISPEL_BUFF = "dissipe",
|
||||
ACTION_SPELL_DISPEL_BUFF_FULL_TEXT = "%5$s %4$s est dissipé par %2$s %1$s.",
|
||||
ACTION_SPELL_DISPEL_BUFF_FULL_TEXT_NO_SOURCE = "%5$s %4$s est dissipé par %2$s.",
|
||||
ACTION_SPELL_DISPEL_BUFF_POSSESSIVE = "1",
|
||||
ACTION_SPELL_DISPEL_DEBUFF = "purifie",
|
||||
ACTION_SPELL_DISPEL_DEBUFF_FULL_TEXT = "%5$s %4$s est purifié par %2$s %1$s.",
|
||||
ACTION_SPELL_DISPEL_DEBUFF_FULL_TEXT_NO_SOURCE = "%5$s %4$s purifié par %2$s.",
|
||||
ACTION_SPELL_DISPEL_DEBUFF_POSSESSIVE = "1",
|
||||
ACTION_SPELL_DISPEL_FAILED = "échec de dissipation",
|
||||
ACTION_SPELL_DISPEL_FAILED_FULL_TEXT = "%2$s %1$s n'arrive pas à dissiper %5$s %4$s.",
|
||||
ACTION_SPELL_DISPEL_FAILED_FULL_TEXT_NO_SOURCE = "%2$s n'arrive pas à dissiper %5$s %4$s.",
|
||||
ACTION_SPELL_DISPEL_FAILED_POSSESSIVE = "1",
|
||||
ACTION_SPELL_DISPEL_POSSESSIVE = "1",
|
||||
ACTION_SPELL_DRAIN = "draine",
|
||||
ACTION_SPELL_DRAIN_FULL_TEXT = "%2$s %1$s draine %9$s points |2 %8$s |2 %4$s.",
|
||||
ACTION_SPELL_DRAIN_FULL_TEXT_NO_SOURCE = "%2$s draine %9$s %8$s |2 %4$s.",
|
||||
ACTION_SPELL_DRAIN_POSSESSIVE = "1",
|
||||
ACTION_SPELL_DURABILITY_DAMAGE = "perte de durabilité",
|
||||
ACTION_SPELL_DURABILITY_DAMAGE_ALL = "perte de durabilité complète",
|
||||
ACTION_SPELL_DURABILITY_DAMAGE_ALL_FULL_TEXT = "%2$s %1$s endommage %4$s : tous les objets sont abîmés.",
|
||||
ACTION_SPELL_DURABILITY_DAMAGE_ALL_POSSESSIVE = "1",
|
||||
ACTION_SPELL_DURABILITY_DAMAGE_FULL_TEXT = "%2$s %1$s endommage %4$s : %5$s abîmé(e).",
|
||||
ACTION_SPELL_DURABILITY_DAMAGE_POSSESSIVE = "1",
|
||||
ACTION_SPELL_ENERGIZE = "dynamise",
|
||||
ACTION_SPELL_ENERGIZE_FULL_TEXT = "%4$s gagne %9$s points |2 %8$s |2 %2$s %1$s.",
|
||||
ACTION_SPELL_ENERGIZE_FULL_TEXT_NO_SOURCE = "%4$s gagne %9$s points |2 %8$s |2 %2$s.",
|
||||
ACTION_SPELL_ENERGIZE_POSSESSIVE = "1",
|
||||
ACTION_SPELL_ENERGIZE_RESULT = "%9$s %8$s gagné",
|
||||
ACTION_SPELL_EXTRA_ATTACKS = "confère des attaques supplémentaires",
|
||||
ACTION_SPELL_EXTRA_ATTACKS_FULL_TEXT = "%1$s gagne %9$s attaques supplémentaires grâce à %2$s.",
|
||||
ACTION_SPELL_EXTRA_ATTACKS_FULL_TEXT_NO_SOURCE = "%9$s attaques supplémentaires conférées par %2$s.",
|
||||
ACTION_SPELL_EXTRA_ATTACKS_POSSESSIVE = "1",
|
||||
ACTION_SPELL_HEAL = "soigne",
|
||||
ACTION_SPELL_HEAL_FULL_TEXT = "%2$s %1$s soigne %4$s pour %9$s points.%6$s",
|
||||
ACTION_SPELL_HEAL_FULL_TEXT_NO_SOURCE = "%2$s soigne %4$s pour %9$s points.%6$s",
|
||||
ACTION_SPELL_HEAL_POSSESSIVE = "1",
|
||||
ACTION_SPELL_INSTAKILL = "tue",
|
||||
ACTION_SPELL_INSTAKILL_FULL_TEXT = "%2$s %1$s tue instantanément %4$s.",
|
||||
ACTION_SPELL_INSTAKILL_FULL_TEXT_NO_SOURCE = "%2$s tue instantanément %4$s.",
|
||||
ACTION_SPELL_INSTAKILL_POSSESSIVE = "1",
|
||||
ACTION_SPELL_INSTAKILL_UNCONSCIOUS = "assommé",
|
||||
ACTION_SPELL_INSTAKILL_UNCONSCIOUS_FULL_TEXT = "%2$s %1$s assomme %4$s.",
|
||||
ACTION_SPELL_INSTAKILL_UNCONSCIOUS_FULL_TEXT_NO_SOURCE = "%2$s assomme %4$s.",
|
||||
ACTION_SPELL_INSTAKILL_UNCONSCIOUS_POSSESSIVE = "1",
|
||||
ACTION_SPELL_INTERRUPT = "interrompt",
|
||||
ACTION_SPELL_INTERRUPT_FULL_TEXT = "%2$s %1$s interrompt %5$s %4$s.",
|
||||
ACTION_SPELL_INTERRUPT_FULL_TEXT_NO_SOURCE = "%2$s interrompt %5$s %4$s.",
|
||||
ACTION_SPELL_INTERRUPT_POSSESSIVE = "1",
|
||||
ACTION_SPELL_LEECH = "draine",
|
||||
ACTION_SPELL_LEECH_FULL_TEXT = "%2$s %1$s draine %9$s points |2 %8$s |2 %4$s. %1$s gagne %10$s points |2 %8$s.",
|
||||
ACTION_SPELL_LEECH_FULL_TEXT_NO_SOURCE = "%2$s draine %9$s points |2 %8$s |2 %4$s.",
|
||||
ACTION_SPELL_LEECH_POSSESSIVE = "1",
|
||||
ACTION_SPELL_LEECH_RESULT = "%10$s points |2 %8$s gagnés",
|
||||
ACTION_SPELL_MISSED = "rate",
|
||||
ACTION_SPELL_MISSED_ABSORB = "Absorbé",
|
||||
ACTION_SPELL_MISSED_ABSORB_FULL_TEXT = "%2$s %1$s est absorbé par %4$s.%6$s",
|
||||
ACTION_SPELL_MISSED_ABSORB_FULL_TEXT_NO_SOURCE = "%2$s est absorbé par %4$s.%6$s",
|
||||
ACTION_SPELL_MISSED_ABSORB_POSSESSIVE = "1",
|
||||
ACTION_SPELL_MISSED_BLOCK = "Bloqué",
|
||||
ACTION_SPELL_MISSED_BLOCK_FULL_TEXT = "%2$s %1$s est bloqué par %4$s.%6$s",
|
||||
ACTION_SPELL_MISSED_BLOCK_FULL_TEXT_NO_SOURCE = "%2$s est bloqué par %4$s.%6$s",
|
||||
ACTION_SPELL_MISSED_BLOCK_POSSESSIVE = "1",
|
||||
ACTION_SPELL_MISSED_DEFLECT = "Dévie",
|
||||
ACTION_SPELL_MISSED_DEFLECT_FULL_TEXT = "%2$s %1$s est dévié par %4$s.",
|
||||
ACTION_SPELL_MISSED_DEFLECT_FULL_TEXT_NO_SOURCE = "%2$s est dévié par %4$s.",
|
||||
ACTION_SPELL_MISSED_DEFLECT_POSSESSIVE = "1",
|
||||
ACTION_SPELL_MISSED_DODGE = "Esquive",
|
||||
ACTION_SPELL_MISSED_DODGE_FULL_TEXT = "%2$s %1$s est esquivé par %4$s.",
|
||||
ACTION_SPELL_MISSED_DODGE_FULL_TEXT_NO_SOURCE = "%2$s est esquivé par %4$s.",
|
||||
ACTION_SPELL_MISSED_DODGE_POSSESSIVE = "1",
|
||||
ACTION_SPELL_MISSED_EVADE = "Évite",
|
||||
ACTION_SPELL_MISSED_EVADE_FULL_TEXT = "%2$s %1$s est évité par %4$s.",
|
||||
ACTION_SPELL_MISSED_EVADE_FULL_TEXT_NO_SOURCE = "%2$s est évité par %4$s.",
|
||||
ACTION_SPELL_MISSED_EVADE_POSSESSIVE = "1",
|
||||
ACTION_SPELL_MISSED_FULL_TEXT = "%2$s %1$s rate %4$s.",
|
||||
ACTION_SPELL_MISSED_FULL_TEXT_NO_SOURCE = "%2$s rate %4$s.",
|
||||
ACTION_SPELL_MISSED_IMMUNE = "Insensible",
|
||||
ACTION_SPELL_MISSED_IMMUNE_FULL_TEXT = "%2$s %1$s a échoué. %4$s est insensible.",
|
||||
ACTION_SPELL_MISSED_IMMUNE_FULL_TEXT_NO_SOURCE = "%2$s a échoué. %4$s est insensible.",
|
||||
ACTION_SPELL_MISSED_MISFIRE = "Tir accidentel",
|
||||
ACTION_SPELL_MISSED_MISFIRE_FULL_TEXT = "%2$s %1$s a touché %4$s par accident.",
|
||||
ACTION_SPELL_MISSED_MISFIRE_FULL_TEXT_NO_SOURCE = "%2$s a touché %4$s par accident.",
|
||||
ACTION_SPELL_MISSED_MISFIRE_POSSESSIVE = "1",
|
||||
ACTION_SPELL_MISSED_MISS = "Raté",
|
||||
ACTION_SPELL_MISSED_MISS_FULL_TEXT = "%2$s %1$s rate %4$s.",
|
||||
ACTION_SPELL_MISSED_MISS_FULL_TEXT_NO_SOURCE = "%2$s rate %4$s.",
|
||||
ACTION_SPELL_MISSED_MISS_POSSESSIVE = "1",
|
||||
ACTION_SPELL_MISSED_PARRY = "Pare",
|
||||
ACTION_SPELL_MISSED_PARRY_FULL_TEXT = "%2$s %1$s est paré par %4$s.",
|
||||
ACTION_SPELL_MISSED_PARRY_FULL_TEXT_NO_SOURCE = "%2$s est paré par %4$s.",
|
||||
ACTION_SPELL_MISSED_PARRY_POSSESSIVE = "1",
|
||||
ACTION_SPELL_MISSED_POSSESSIVE = "1",
|
||||
ACTION_SPELL_MISSED_REFLECT = "renvoyé",
|
||||
ACTION_SPELL_MISSED_REFLECT_FULL_TEXT = "%2$s %1$s est renvoyé par %4$s.",
|
||||
ACTION_SPELL_MISSED_REFLECT_FULL_TEXT_NO_SOURCE = "%2$s est renvoyé par %4$s.",
|
||||
ACTION_SPELL_MISSED_RESIST = "résiste",
|
||||
ACTION_SPELL_MISSED_RESIST_FULL_TEXT = "%2$s %1$s a échoué, %4$s résiste entièrement.%6$s",
|
||||
ACTION_SPELL_MISSED_RESIST_FULL_TEXT_NO_SOURCE = "%2$s a échoué, %4$s résiste entièrement.%6$s",
|
||||
ACTION_SPELL_MISSED_RESIST_POSSESSIVE = "1",
|
||||
ACTION_SPELL_PERIODIC_DAMAGE = "inflige des dégâts",
|
||||
ACTION_SPELL_PERIODIC_DAMAGE_FULL_TEXT = "%4$s reçoit %5$s de dégâts |2 %2$s %1$s.%6$s",
|
||||
ACTION_SPELL_PERIODIC_DAMAGE_FULL_TEXT_NO_SOURCE = "%4$s reçoit %5$s de dégâts |2 %2$s.%6$s",
|
||||
ACTION_SPELL_PERIODIC_DAMAGE_POSSESSIVE = "1",
|
||||
ACTION_SPELL_PERIODIC_DRAIN = "draine",
|
||||
ACTION_SPELL_PERIODIC_DRAIN_FULL_TEXT = "%2$s %1$s draine %9$s %8$s |2 %4$s.",
|
||||
ACTION_SPELL_PERIODIC_DRAIN_FULL_TEXT_NO_SOURCE = "%2$s draine %9$s points |2 %8$s |2 %4$s.",
|
||||
ACTION_SPELL_PERIODIC_DRAIN_POSSESSIVE = "1",
|
||||
ACTION_SPELL_PERIODIC_ENERGIZE = "dynamise",
|
||||
ACTION_SPELL_PERIODIC_ENERGIZE_FULL_TEXT = "%4$s gagne %9$s %8$s |2 %2$s %1$s.",
|
||||
ACTION_SPELL_PERIODIC_ENERGIZE_FULL_TEXT_NO_SOURCE = "%4$s gagne %9$s points |2 %8$s |2 %2$s.",
|
||||
ACTION_SPELL_PERIODIC_ENERGIZE_POSSESSIVE = "1",
|
||||
ACTION_SPELL_PERIODIC_ENERGIZE_RESULT = "$extraAmount %8$s gagné",
|
||||
ACTION_SPELL_PERIODIC_HEAL = "soigne",
|
||||
ACTION_SPELL_PERIODIC_HEAL_FULL_TEXT = "%4$s gagne %9$s points de vie |2 %2$s %1$s.%6$s",
|
||||
ACTION_SPELL_PERIODIC_HEAL_FULL_TEXT_NO_SOURCE = "%4$s gagne %9$s points de vie |2 %2$s.%6$s",
|
||||
ACTION_SPELL_PERIODIC_HEAL_POSSESSIVE = "1",
|
||||
ACTION_SPELL_PERIODIC_LEECH = "draine",
|
||||
ACTION_SPELL_PERIODIC_LEECH_FULL_TEXT = "%2$s %1$s draine %9$s points |2 %8$s |2 %4$s. %1$s gagne %10$s points |2 %8$s.",
|
||||
ACTION_SPELL_PERIODIC_LEECH_FULL_TEXT_NO_SOURCE = "%2$s draine %9$s points |2 %8$s |2 %4$s. %1$s gagne %10$s points |2 %8$s.",
|
||||
ACTION_SPELL_PERIODIC_LEECH_POSSESSIVE = "1",
|
||||
ACTION_SPELL_PERIODIC_LEECH_RESULT = "(%10$s points |2 %8$s gagnés)",
|
||||
ACTION_SPELL_PERIODIC_MISSED = "rate",
|
||||
ACTION_SPELL_PERIODIC_MISSED_ABSORB = "(%1$s absorbée)",
|
||||
ACTION_SPELL_PERIODIC_MISSED_ABSORB_FULL_TEXT = "%2$s %1$s est absorbé par %4$s.%6$s",
|
||||
ACTION_SPELL_PERIODIC_MISSED_ABSORB_FULL_TEXT_NO_SOURCE = "%2$s est absorbé par %4$s.%6$s",
|
||||
ACTION_SPELL_PERIODIC_MISSED_ABSORB_POSSESSIVE = "1",
|
||||
ACTION_SPELL_PERIODIC_MISSED_BLOCK = "(Itération bloquée)",
|
||||
ACTION_SPELL_PERIODIC_MISSED_BLOCK_FULL_TEXT = "%2$s %1$s a été bloqué par %4$s pour un temps.%6$s",
|
||||
ACTION_SPELL_PERIODIC_MISSED_BLOCK_FULL_TEXT_NO_SOURCE = "%2$s a été bloqué par %4$s pour un temps.%6$s",
|
||||
ACTION_SPELL_PERIODIC_MISSED_BLOCK_POSSESSIVE = "1",
|
||||
ACTION_SPELL_PERIODIC_MISSED_DEFLECTED = "(Itération déviée)",
|
||||
ACTION_SPELL_PERIODIC_MISSED_DEFLECTED_FULL_TEXT = "%2$s %1$s a été dévié par %4$s pour un temps.%6$s",
|
||||
ACTION_SPELL_PERIODIC_MISSED_DEFLECTED_FULL_TEXT_NO_SOURCE = "%2$s a été dévié par %4$s pour un temps.%6$s",
|
||||
ACTION_SPELL_PERIODIC_MISSED_DEFLECTED_POSSESSIVE = "1",
|
||||
ACTION_SPELL_PERIODIC_MISSED_DODGE = "(Itération esquivée)",
|
||||
ACTION_SPELL_PERIODIC_MISSED_DODGE_FULL_TEXT = "%2$s %1$s a été esquivé par %4$s pour un temps.%6$s",
|
||||
ACTION_SPELL_PERIODIC_MISSED_DODGE_FULL_TEXT_NO_SOURCE = "%2$s a été esquivé par %4$s pour un temps.%6$s",
|
||||
ACTION_SPELL_PERIODIC_MISSED_DODGE_POSSESSIVE = "1",
|
||||
ACTION_SPELL_PERIODIC_MISSED_EVADED = "(Itération évitée)",
|
||||
ACTION_SPELL_PERIODIC_MISSED_EVADED_FULL_TEXT = "%2$s %1$s a été évité par %4$s pour un temps.%6$s",
|
||||
ACTION_SPELL_PERIODIC_MISSED_EVADED_FULL_TEXT_NO_SOURCE = "%2$s a été évité par %4$s pour un temps.%6$s",
|
||||
ACTION_SPELL_PERIODIC_MISSED_EVADED_POSSESSIVE = "1",
|
||||
ACTION_SPELL_PERIODIC_MISSED_FULL_TEXT = "%2$s %1$s n'affecte pas %4$s pour un temps.%6$s",
|
||||
ACTION_SPELL_PERIODIC_MISSED_FULL_TEXT_NO_SOURCE = "%2$s n'affecte pas %4$s pour un temps.%6$s",
|
||||
ACTION_SPELL_PERIODIC_MISSED_IMMUNE = "(Insensible)",
|
||||
ACTION_SPELL_PERIODIC_MISSED_IMMUNE_FULL_TEXT = "%4$s était insensible à %2$s %1$s.%6$s",
|
||||
ACTION_SPELL_PERIODIC_MISSED_IMMUNE_FULL_TEXT_NO_SOURCE = "%4$s était insensible à %2$s.%6$s",
|
||||
ACTION_SPELL_PERIODIC_MISSED_IMMUNE_POSSESSIVE = "1",
|
||||
ACTION_SPELL_PERIODIC_MISSED_MISS = "(Itération échouée)",
|
||||
ACTION_SPELL_PERIODIC_MISSED_MISS_FULL_TEXT = "%2$s %1$s a raté %4$s pour un temps.%6$s",
|
||||
ACTION_SPELL_PERIODIC_MISSED_MISS_FULL_TEXT_NO_SOURCE = "%2$s a raté %4$s pour un temps.%6$s",
|
||||
ACTION_SPELL_PERIODIC_MISSED_MISS_POSSESSIVE = "1",
|
||||
ACTION_SPELL_PERIODIC_MISSED_PARRY = "(Itération parée)",
|
||||
ACTION_SPELL_PERIODIC_MISSED_PARRY_FULL_TEXT = "%2$s %1$s a été paré par %4$s pour un temps.%6$s",
|
||||
ACTION_SPELL_PERIODIC_MISSED_PARRY_FULL_TEXT_NO_SOURCE = "%2$s a été paré par %4$s pour un temps.%6$s",
|
||||
ACTION_SPELL_PERIODIC_MISSED_PARRY_POSSESSIVE = "1",
|
||||
ACTION_SPELL_PERIODIC_MISSED_POSSESSIVE = "1",
|
||||
ACTION_SPELL_PERIODIC_MISSED_RESIST = "(Itération résistée)",
|
||||
ACTION_SPELL_PERIODIC_MISSED_RESIST_FULL_TEXT = "%2$s %1$s n'affecte pas %4$s. %4$s résiste.%6$s",
|
||||
ACTION_SPELL_PERIODIC_MISSED_RESIST_FULL_TEXT_NO_SOURCE = "%2$s n'affecte pas %4$s. %4$s résiste.%6$s",
|
||||
ACTION_SPELL_PERIODIC_MISSED_RESIST_POSSESSIVE = "1",
|
||||
ACTION_SPELL_RESURRECT = "Ressuscite",
|
||||
ACTION_SPELL_RESURRECT_FULL_TEXT = "%2$s %1$s ressuscite %4$s.%6$s",
|
||||
ACTION_SPELL_RESURRECT_FULL_TEXT_NO_SOURCE = "%2$s ressuscite %4$s.%6$s",
|
||||
ACTION_SPELL_RESURRECT_POSSESSIVE = "1",
|
||||
ACTION_SPELL_STOLEN = "vole",
|
||||
ACTION_SPELL_STOLEN_BUFF = "vole",
|
||||
ACTION_SPELL_STOLEN_BUFF_FULL_TEXT = "%2$s %1$s vole %5$s %4$s.",
|
||||
ACTION_SPELL_STOLEN_BUFF_FULL_TEXT_NO_SOURCE = "%2$s vole %5$s %4$s.",
|
||||
ACTION_SPELL_STOLEN_BUFF_POSSESSIVE = "1",
|
||||
ACTION_SPELL_STOLEN_BUFF__POSSESSIVE = "1",
|
||||
ACTION_SPELL_STOLEN_DEBUFF = "vole",
|
||||
ACTION_SPELL_STOLEN_DEBUFF_FULL_TEXT = "%2$s %1$s transfère $extraSpell %4$s à %1$s.",
|
||||
ACTION_SPELL_STOLEN_DEBUFF_FULL_TEXT_NO_SOURCE = "%2$s transfère $extraSpell %4$s.",
|
||||
ACTION_SPELL_STOLEN_DEBUFF_POSSESSIVE = "1",
|
||||
ACTION_SPELL_STOLEN_FULL_TEXT = "%2$s %1$s vole %5$s %4$s.",
|
||||
ACTION_SPELL_STOLEN_FULL_TEXT_NO_SOURCE = "%2$s vole %5$s %4$s.",
|
||||
ACTION_SPELL_STOLEN_POSSESSIVE = "1",
|
||||
ACTION_SPELL_SUMMON = "invoque",
|
||||
ACTION_SPELL_SUMMON_FULL_TEXT = "%2$s %1$s invoque %4$s.%6$s",
|
||||
ACTION_SPELL_SUMMON_FULL_TEXT_NO_SOURCE = "%2$s invoque %4$s.%6$s",
|
||||
ACTION_SPELL_SUMMON_POSSESSIVE = "1",
|
||||
ACTION_SWING = "Coup",
|
||||
ACTION_SWING_DAMAGE = "touche",
|
||||
ACTION_SWING_DAMAGE_FULL_TEXT = "Le coup %1$s touche %4$s pour %5$s.%6$s",
|
||||
ACTION_SWING_DAMAGE_FULL_TEXT_NO_SOURCE = "Un coup touche %4$s pour %5$s.%6$s",
|
||||
ACTION_SWING_DAMAGE_POSSESSIVE = "1",
|
||||
ACTION_SWING_MISSED = "rate",
|
||||
ACTION_SWING_MISSED_ABSORB = "(Absorbe)",
|
||||
ACTION_SWING_MISSED_ABSORB_FULL_TEXT = "L'attaque %1$s est absorbée par %4$s.%6$s",
|
||||
ACTION_SWING_MISSED_ABSORB_POSSESSIVE = "1",
|
||||
ACTION_SWING_MISSED_BLOCK = "(Bloque)",
|
||||
ACTION_SWING_MISSED_BLOCK_FULL_TEXT = "L'attaque %1$s est bloquée par %4$s.%6$s",
|
||||
ACTION_SWING_MISSED_BLOCK_POSSESSIVE = "1",
|
||||
ACTION_SWING_MISSED_DEFLECT = "(Dévie)",
|
||||
ACTION_SWING_MISSED_DEFLECT_FULL_TEXT = "L'attaque %1$s est déviée par %4$s.",
|
||||
ACTION_SWING_MISSED_DEFLECT_POSSESSIVE = "1",
|
||||
ACTION_SWING_MISSED_DODGE = "(Esquive)",
|
||||
ACTION_SWING_MISSED_DODGE_FULL_TEXT = "L'attaque %1$s est esquivée par %4$s.",
|
||||
ACTION_SWING_MISSED_DODGE_POSSESSIVE = "1",
|
||||
ACTION_SWING_MISSED_EVADE = "(Évite)",
|
||||
ACTION_SWING_MISSED_EVADE_FULL_TEXT = "L'attaque %1$s est évitée par %4$s.",
|
||||
ACTION_SWING_MISSED_EVADE_POSSESSIVE = "1",
|
||||
ACTION_SWING_MISSED_FULL_TEXT = "L'attaque %1$s rate %4$s.",
|
||||
ACTION_SWING_MISSED_IMMUNE = "(Insensible)",
|
||||
ACTION_SWING_MISSED_IMMUNE_FULL_TEXT = "L'attaque %1$s a échoué, %4$s est insensible.",
|
||||
ACTION_SWING_MISSED_IMMUNE_POSSESSIVE = "1",
|
||||
ACTION_SWING_MISSED_MISFIRE = "(Tir accidentel)",
|
||||
ACTION_SWING_MISSED_MISFIRE_FULL_TEXT = "L'attaque %1$s a touché %4$s par accident.",
|
||||
ACTION_SWING_MISSED_MISFIRE_POSSESSIVE = "1",
|
||||
ACTION_SWING_MISSED_MISS = "(Raté)",
|
||||
ACTION_SWING_MISSED_MISS_FULL_TEXT = "L'attaque %1$s rate %4$s.",
|
||||
ACTION_SWING_MISSED_MISS_POSSESSIVE = "1",
|
||||
ACTION_SWING_MISSED_PARRY = "(Parade)",
|
||||
ACTION_SWING_MISSED_PARRY_FULL_TEXT = "L'attaque %1$s est parée par %4$s.",
|
||||
ACTION_SWING_MISSED_PARRY_POSSESSIVE = "1",
|
||||
ACTION_SWING_MISSED_POSSESSIVE = "1",
|
||||
ACTION_SWING_MISSED_RESIST = "(Résistance)",
|
||||
ACTION_SWING_MISSED_RESIST_FULL_TEXT = "L'attaque %1$s a échoué, %4$s résiste entièrement.%6$s",
|
||||
ACTION_SWING_MISSED_RESIST_POSSESSIVE = "1",
|
||||
ACTION_UNIT_BECCOMES_UNCONSCIOUS = "s'évanouit",
|
||||
ACTION_UNIT_BECOMES_UNCONSCIOUS_FULL_TEXT = "%4$s s'évanouit.",
|
||||
ACTION_UNIT_BECOMES_UNCONSCIOUS_POSSESSIVE = "0",
|
||||
ACTION_UNIT_DESTROYED = "détruit",
|
||||
ACTION_UNIT_DESTROYED_FULL_TEXT = "%4$s a été détruit.",
|
||||
ACTION_UNIT_DESTROYED_POSSESSIVE = "0",
|
||||
ACTION_UNIT_DIED = "meurt",
|
||||
ACTION_UNIT_DIED_FULL_TEXT = "%4$s meurt.",
|
||||
ACTION_UNIT_DIED_POSSESSIVE = "0",
|
||||
ACTION_UNIT_DISSIPATES = "se dissipe",
|
||||
ACTION_UNIT_DISSIPATES_FULL_TEXT = "%4$s se dissipe.",
|
||||
ACTION_UNIT_DISSIPATES_POSSESSIVE = "0",
|
||||
ADD = "Ajouter",
|
||||
ADDITIONAL_FILTERS = "Filtres supplémentaires",
|
||||
ADD_FILTER = "Aj. filtre",
|
||||
AURAS = "Auras",
|
||||
AURAS_COMBATLOG_TOOLTIP = "Montre les messages liés aux états bénéfiques ou néfastes.",
|
||||
BENEFICIAL = "Bénéfique",
|
||||
BENEFICIAL_AURA_COMBATLOG_TOOLTIP = "Montre quand vous gagnez ou perdez une aura bénéfique.",
|
||||
BLIZZARD_COMBAT_LOG_MENU_BOTH = "Afficher tout ce qui concerne %s.",
|
||||
BLIZZARD_COMBAT_LOG_MENU_EVERYTHING = "Afficher tout",
|
||||
BLIZZARD_COMBAT_LOG_MENU_INCOMING = "Qu'est-il arrivé à %s ?",
|
||||
BLIZZARD_COMBAT_LOG_MENU_OUTGOING = "Qu'a fait %s ?",
|
||||
BLIZZARD_COMBAT_LOG_MENU_OUTGOING_ME = "Qu'est-ce que %s vous a fait ?",
|
||||
BLIZZARD_COMBAT_LOG_MENU_RESET = "Réinitialiser",
|
||||
BLIZZARD_COMBAT_LOG_MENU_SAVE = "Enregistrer comme nouveau filtre",
|
||||
BLIZZARD_COMBAT_LOG_MENU_SPELL_HIDE = "Cacher les messages comme celui-ci.",
|
||||
BLIZZARD_COMBAT_LOG_MENU_SPELL_LINK = "Lier %s dans la discussion.",
|
||||
BY_SOURCE = "Par source",
|
||||
BY_SOURCE_COMBATLOG_TOOLTIP = "Colorer en fonction du lanceur.",
|
||||
BY_TARGET = "Par cible",
|
||||
BY_TARGET_COMBATLOG_TOOLTIP = "Colorer en fonction de la cible.",
|
||||
COLORIZE = "Coloriser :",
|
||||
COLORS = "Couleurs",
|
||||
COLOR_BY_SCHOOL = "Couleur par type",
|
||||
COMBATLOG_DEFAULTS = "Journal par défaut",
|
||||
COMBATLOG_FILTER_STRING_CUSTOM_UNIT = "Unité personnalisée",
|
||||
COMBATLOG_FILTER_STRING_FRIENDLY_UNITS = "Amis",
|
||||
COMBATLOG_FILTER_STRING_HOSTILE_PLAYERS = "Joueurs ennemis",
|
||||
COMBATLOG_FILTER_STRING_HOSTILE_UNITS = "Ennemis",
|
||||
COMBATLOG_FILTER_STRING_ME = "Moi",
|
||||
COMBATLOG_FILTER_STRING_MY_PET = "Familier",
|
||||
COMBATLOG_FILTER_STRING_NEUTRAL_UNITS = "Neutre",
|
||||
COMBATLOG_FILTER_STRING_UNKNOWN_UNITS = "Inconnu",
|
||||
COMBATLOG_HIGHLIGHT_ABILITY = "Technique",
|
||||
COMBATLOG_HIGHLIGHT_DAMAGE = "Dégâts",
|
||||
COMBATLOG_HIGHLIGHT_KILL = "Mort",
|
||||
COMBATLOG_HIGHLIGHT_SCHOOL = "Type",
|
||||
COMBATLOG_UNKNOWN_UNIT = "Quelque chose",
|
||||
COMBAT_FACTION_CHANGE = "Réputation",
|
||||
COMBAT_HONOR_GAIN = "Honneur",
|
||||
COMBAT_LOG_UNIT_YOU_ENABLED = "1",
|
||||
COMBAT_MISC_INFO = "Infos div.",
|
||||
COMBAT_XP_GAIN = "Expérience",
|
||||
CONFIRM_COMBAT_FILTER_DEFAULTS = "Voulez-vous revenir aux valeurs par défaut des filtres ?",
|
||||
CONFIRM_COMBAT_FILTER_DELETE = "Voulez-vous vraiment effacer ce filtre ?",
|
||||
COPY_FILTER = "Copier filtre",
|
||||
DAMAGE_NUMBER = "Valeurs de dégâts",
|
||||
DAMAGE_SCHOOL_TEXT = "Type de dégâts",
|
||||
DAMAGE_SHIELD = "Boucliers de dégâts",
|
||||
DAMAGE_SHIELD_COMBATLOG_TOOLTIP = "Montre un message quand un sort ou une technique inflige des dégâts en réaction à une attaque de mêlée, comme Epines.",
|
||||
DEATHS_COMBATLOG_TOOLTIP = "Montre un message quand quelqu'un meurt.",
|
||||
DEFAULT_COMBATLOG_FILTER_NAME = "Filtre %d",
|
||||
DISPELS = "Dissipations",
|
||||
DISPEL_AURA_COMBATLOG_TOOLTIP = "Montre quand une aura est retirée, détruite ou volée.",
|
||||
DONE_BY = "Fait par :",
|
||||
DONE_TO = "Fait à :",
|
||||
DRAINS = "Drains",
|
||||
ENTER_FILTER_NAME = "Indiquez le nom du filtre :",
|
||||
ENTIRE_LINE = "Ligne entière",
|
||||
ENTIRE_LINE_COMBATLOG_TOOLTIP = "Colorer toute la ligne selon la sélection ci-dessous.",
|
||||
ENVIRONMENTAL_DAMAGE = "Dégâts de l'environnement",
|
||||
ENVIRONMENTAL_DAMAGE_COMBATLOG_TOOLTIP = "Montre un message quand quelqu'un subit des dégâts dus à une chute, une noyade ou le fait de nager dans la lave.",
|
||||
EXAMPLE_SPELL_FIREBALL = "Boule de feu",
|
||||
EXAMPLE_SPELL_FROSTBOLT = "Eclair de givre",
|
||||
EXAMPLE_TARGET_MONSTER = "Monstre",
|
||||
EXAMPLE_TEXT = "Texte d'exemple",
|
||||
EXTRA_ATTACKS = "Attaques suppl.",
|
||||
FAILURES = "Échecs",
|
||||
FILTER_BY_ENEMIES_COMBATLOG_TOOLTIP = "Les actions effectuées par les créatures et familiers hostiles.",
|
||||
FILTER_BY_FRIENDS_COMBATLOG_TOOLTIP = "Les actions effectuées par les personnages, familiers et créatures amicaux.",
|
||||
FILTER_BY_HOSTILE_PLAYERS_COMBATLOG_TOOLTIP = "Les actions effectuées par des joueurs hostiles.",
|
||||
FILTER_BY_ME_COMBATLOG_TOOLTIP = "Les actions effectuées par vous-même, vos pièges et vos sorts.",
|
||||
FILTER_BY_NEUTRAL_COMBATLOG_TOOLTIP = "Les actions effectuées par les créatures neutres.",
|
||||
FILTER_BY_PET_COMBATLOG_TOOLTIP = "Les actions effectuées par vos familiers, gardiens invoqués ou personnages charmés.",
|
||||
FILTER_BY_UNKNOWN_COMBATLOG_TOOLTIP = "Les actions effectuées par des sources indéfinies, telles que les chutes, l'acide ou la lave.",
|
||||
FILTER_NAME = "Nom du filtre :",
|
||||
FILTER_TO_FRIENDS_COMBATLOG_TOOLTIP = "Les actions effectuées sur les personnages, familiers et créatures amicaux.",
|
||||
FILTER_TO_HOSTILE_COMBATLOG_TOOLTIP = "Les actions effectuées sur les familiers et créatures hostiles.",
|
||||
FILTER_TO_HOSTILE_PLAYERS_COMBATLOG_TOOLTIP = "Les actions effectuées contre des joueurs hostiles.",
|
||||
FILTER_TO_ME_COMBATLOG_TOOLTIP = "Les actions effectuées sur vous.",
|
||||
FILTER_TO_NEUTRAL_COMBATLOG_TOOLTIP = "Les actions effectuées sur les créatures neutres.",
|
||||
FILTER_TO_PET_COMBATLOG_TOOLTIP = "Les actions effectuées sur vos familiers, gardiens invoqués ou personnages charmés.",
|
||||
FILTER_TO_UNKNOWN_COMBATLOG_TOOLTIP = "Les actions effectuées sur des cibles invisibles.",
|
||||
FORMATTING = "Mise en forme",
|
||||
FULL_TEXT_COMBATLOG_TOOLTIP = "Montre les évènements du journal de combat sous forme de phrases.",
|
||||
HARMFUL_AURA_COMBATLOG_TOOLTIP = "Montre quand vous gagnez ou perdez une aura néfaste.",
|
||||
HEALS = "Soins",
|
||||
HIGHLIGHTING = "Surlignage :",
|
||||
HIGHLIGHT_ABILITY_COMBATLOG_TOOLTIP = "Surligne les noms des techniques dans les messages de combat.",
|
||||
HIGHLIGHT_DAMAGE_COMBATLOG_TOOLTIP = "Surligne les montants de dégâts dans les messages de combat.",
|
||||
HIGHLIGHT_KILL_COMBATLOG_TOOLTIP = "Surligne toute la ligne lorsque vous-même ou un membre de votre groupe tuez un adversaire.",
|
||||
HIGHLIGHT_SCHOOL_COMBATLOG_TOOLTIP = "Surligne les types de sort dans les messages de combat.",
|
||||
HOSTILE = "Hostile",
|
||||
INTERRUPTS = "Interruptions",
|
||||
ITEM_NAMES = "Noms des objets",
|
||||
ITEM_NAMES_SHOW_BRACES_COMBATLOG_TOOLTIP = "Mettre des liens autour des noms d'objets.",
|
||||
KILLS_COMBATLOG_TOOLTIP = "Montre un message quand un membre de votre groupe tue quelqu'un.",
|
||||
MELEE = "Mêlée",
|
||||
MELEE_COMBATLOG_TOOLTIP = "Montre les attaques de mêlée naturelles.",
|
||||
MESSAGE_SOURCES = "Sources",
|
||||
MISSES = "Ratés",
|
||||
MOVE_FILTER_DOWN = "Descendre le filtre",
|
||||
MOVE_FILTER_UP = "Remonter le filtre",
|
||||
OTHER = "Autre",
|
||||
PERIODIC = "Périodique",
|
||||
POWER_GAINS = "Gains de puissance",
|
||||
POWER_GAINS_COMBATLOG_TOOLTIP = "Affiche un message quand un sort ou une technique rend des points de mana, d’énergie, de rage, de focalisation, de chi ou de puissance sacrée ou des orbes d’ombre.",
|
||||
QUICKBUTTON_NAME_EVERYTHING = "Tout",
|
||||
QUICKBUTTON_NAME_EVERYTHING_TOOLTIP = "Montrer tous les messages de combat.",
|
||||
QUICKBUTTON_NAME_KILLS = "Tués",
|
||||
QUICKBUTTON_NAME_KILLS_TOOLTIP = "Montrer tous les tués.",
|
||||
QUICKBUTTON_NAME_ME = "Qu'est-ce qui m'est arrivé ?",
|
||||
QUICKBUTTON_NAME_ME_TOOLTIP = "Montrer tout ce qu'on m'a fait.",
|
||||
QUICKBUTTON_NAME_SELF = "Soi-même",
|
||||
QUICKBUTTON_NAME_SELF_TOOLTIP = "Montre des messages pour les actions effectuées par vous et sur vous.",
|
||||
QUICK_BUTTON_COMBATLOG_TOOLTIP = "Pose un raccourci vers ce filtre dans la fenêtre de discussion.",
|
||||
RANGED = "Distance",
|
||||
RANGED_COMBATLOG_TOOLTIP = "Montre les attaques des arcs, arbalètes, fusils, armes de jet et baguettes.",
|
||||
RANGE_DAMAGE_COMBATLOG_TOOLTIP = "Montre les attaques à distance qui infligent des dégâts complets ou partiels.",
|
||||
RANGE_MISSED_COMBATLOG_TOOLTIP = "Montre les attaques à distance qui n'infligent pas de dégâts.",
|
||||
RESURRECT = "Résurrections",
|
||||
SETTINGS = "Réglages",
|
||||
SHOW_BRACES = "Afficher les crochets",
|
||||
SHOW_BRACES_COMBATLOG_TOOLTIP = "Afficher des crochets autour des liens dans les messages du journal de combat.",
|
||||
SHOW_QUICK_BUTTON = "Montrer accès rapide",
|
||||
SHOW_TIMESTAMP = "Afficher l'heure",
|
||||
SOURCE = "Source :",
|
||||
SPECIAL = "Spécial",
|
||||
SPELLS_COMBATLOG_TOOLTIP = "Montre les messages liés aux sorts et aux techniques spéciales.",
|
||||
SPELL_CASTING = "Incantations",
|
||||
SPELL_CASTING_COMBATLOG_TOOLTIP = "Montre les messages concernant l'incantation des sorts.",
|
||||
SPELL_CAST_FAILED_COMBATLOG_TOOLTIP = "Montre les messages indiquant qu'un sort ne peut être lancé ou que l'incantation a échoué.",
|
||||
SPELL_CAST_START_COMBATLOG_TOOLTIP = "Montre les messages indiquant le début de l'incantation d'un sort.",
|
||||
SPELL_CAST_SUCCESS_COMBATLOG_TOOLTIP = "Montre les messages indiquant la réussite de l'incantation d'un sort.",
|
||||
SPELL_COLOR_BY_SCHOOL_COMBATLOG_TOOLTIP = "Colorer les noms des sorts par type.",
|
||||
SPELL_DAMAGE_COMBATLOG_TOOLTIP = "Montre quand un sort ou une technique inflige des dégâts.",
|
||||
SPELL_DAMAGE_NUMBER_COMBATLOG_TOOLTIP = "Colorer les valeurs de dégâts pour les attaques hors-mêlée.",
|
||||
SPELL_DAMAGE_SCHOOL_COMBATLOG_TOOLTIP = "Colorer les noms des types de dégâts (par ex. Ombre).",
|
||||
SPELL_DRAIN_COMBATLOG_TOOLTIP = "Affiche un message quand un sort ou une technique enlève des points de mana, d’énergie, de rage ou de focalisation.",
|
||||
SPELL_EXTRA_ATTACKS_COMBATLOG_TOOLTIP = "Affiche un message quand un sort ou une technique octroie des attaques supplémentaires.",
|
||||
SPELL_HEAL_COMBATLOG_TOOLTIP = "Montre un message quand un sort ou une technique soigne des dégâts.",
|
||||
SPELL_INSTAKILL_COMBATLOG_TOOLTIP = "Montre les messages des sorts d'une catégorie spéciale, comme ceux qui infligent une perte de durabilité ou qui partagent les dégâts avec un familier.",
|
||||
SPELL_INTERRUPT_COMBATLOG_TOOLTIP = "Montre un message quand un sort ou une technique interrompt un autre sort.",
|
||||
SPELL_MISSED_COMBATLOG_TOOLTIP = "Montre un message quand un sort ou une technique ne parvient pas à infliger des dégâts. Que ce soit dû à une esquive, une parade, un blocage, une déviation, une immunité, une absorption ou un évitement.",
|
||||
SPELL_NAMES = "Noms des sorts",
|
||||
SPELL_NAMES_COMBATLOG_TOOLTIP = "Colorer les noms de sorts.",
|
||||
SPELL_NAMES_SHOW_BRACES_COMBATLOG_TOOLTIP = "Mettre des liens autour des noms de sorts.",
|
||||
SPELL_PERIODIC_COMBATLOG_TOOLTIP = "Montre les sorts qui ont un effet incrémentiel.",
|
||||
SPELL_PERIODIC_DAMAGE_COMBATLOG_TOOLTIP = "Montre un message quand un sort ou une technique inflige des dégâts de façon périodique, comme Mot de l'ombre : Douleur ou Corruption.",
|
||||
SPELL_PERIODIC_HEAL_COMBATLOG_TOOLTIP = "Montre un message quand un sort ou une technique soigne de façon périodique, comme Rénovation ou Récupération.",
|
||||
SPELL_PERIODIC_MISSED_COMBATLOG_TOOLTIP = "Montre un message quand un sort ou une technique ne parvient pas à infliger des dégâts périodiques. Cela peut être dû à une immunité, une absorption ou un évitement.",
|
||||
SPELL_PERIODIC_OTHER_COMBATLOG_TOOLTIP = "Montre un message quand un sort ou une technique déclenche un autre type d'effet de façon périodique, comme de rendre ou de prendre des points de mana.",
|
||||
SPELL_RESURRECT_COMBATLOG_TOOLTIP = "Montre un message quand un sort ou une technique ressuscite une créature ou un autre personnage.",
|
||||
SPELL_SUMMON_COMBATLOG_TOOLTIP = "Montre un message quand un sort ou une technique invoque une créature ou crée un objet.",
|
||||
START = "Démarrage",
|
||||
STRING_SCHOOL_UNKNOWN = "(Inconnu)",
|
||||
SUCCESS = "Réussites",
|
||||
SUMMONS = "Invocations",
|
||||
SWING_DAMAGE_COMBATLOG_TOOLTIP = "Montre les attaques de mêlée qui infligent des dégâts complets ou partiels.",
|
||||
SWING_MISSED_COMBATLOG_TOOLTIP = "Montre les attaques de mêlée qui n'infligent pas de dégâts.",
|
||||
TEXT_MODE_A = "A",
|
||||
TEXT_MODE_A_STRING_1 = "%s %s %s %s %s. %s %11$s",
|
||||
TEXT_MODE_A_STRING_2 = "%1$s %3$s %2$s %4$s %5$s. %6$s",
|
||||
TEXT_MODE_A_STRING_3 = "%1$s %5$s %3$s %4$s %2$s. %6$s",
|
||||
TEXT_MODE_A_STRING_ACTION = "|Haction:%s|h%s|h",
|
||||
TEXT_MODE_A_STRING_BRACE_ITEM = "|c%s[|r%s|c%s]|r",
|
||||
TEXT_MODE_A_STRING_BRACE_SPELL = "|c%s[|r%s|c%s]|r",
|
||||
TEXT_MODE_A_STRING_BRACE_UNIT = "|c%s[|r%s|c%s]|r",
|
||||
TEXT_MODE_A_STRING_DEST_ICON = "|Hicon:%d:dest|h%s|h",
|
||||
TEXT_MODE_A_STRING_DEST_UNIT = "%s|Hunit:%s:%s|h%s|h",
|
||||
TEXT_MODE_A_STRING_ITEM = "|Hitem:%s|h%s|h",
|
||||
TEXT_MODE_A_STRING_POSSESSIVE = "|2 %s",
|
||||
TEXT_MODE_A_STRING_REMAINING_POINTS = "(%s restant)",
|
||||
TEXT_MODE_A_STRING_RESULT_ABSORB = "(%s absorbé)",
|
||||
TEXT_MODE_A_STRING_RESULT_BLOCK = "(%s bloqué)",
|
||||
TEXT_MODE_A_STRING_RESULT_CRITICAL = "(Critique)",
|
||||
TEXT_MODE_A_STRING_RESULT_CRITICAL_SPELL = "(Critique)",
|
||||
TEXT_MODE_A_STRING_RESULT_CRUSHING = "(Écrasement)",
|
||||
TEXT_MODE_A_STRING_RESULT_FORMAT = "$resultType : $resultAmount",
|
||||
TEXT_MODE_A_STRING_RESULT_GLANCING = "(Éraflure)",
|
||||
TEXT_MODE_A_STRING_RESULT_MULTISTRIKE = "(Frappe multiple)",
|
||||
TEXT_MODE_A_STRING_RESULT_OVERENERGIZE = "(Excès d'énergie %s)",
|
||||
TEXT_MODE_A_STRING_RESULT_OVERHEALING = "(Excès de soins %s)",
|
||||
TEXT_MODE_A_STRING_RESULT_OVERKILLING = "(Excès de dégâts %s)",
|
||||
TEXT_MODE_A_STRING_RESULT_PARRY = "(%d paré)",
|
||||
TEXT_MODE_A_STRING_RESULT_REFLECT = "Renvoyé",
|
||||
TEXT_MODE_A_STRING_RESULT_RESIST = "(%s résisté)",
|
||||
TEXT_MODE_A_STRING_RESULT_VULNERABILITY = "(%s de dégâts de vulnérabilité)",
|
||||
TEXT_MODE_A_STRING_SOURCE_ICON = "|Hicon:%s:source|h%s|h",
|
||||
TEXT_MODE_A_STRING_SOURCE_UNIT = "%s|Hunit:%s:%s|h%s|h",
|
||||
TEXT_MODE_A_STRING_SPELL = "|Hspell:%s:%s:%s|h%s|h",
|
||||
TEXT_MODE_A_STRING_SPELL_EXTRA = "|Hspell:%s:%s:%s|h%s|h",
|
||||
TEXT_MODE_A_STRING_TIMESTAMP = "%s> %s",
|
||||
TEXT_MODE_A_STRING_VALUE_SCHOOL = "%s %s",
|
||||
TEXT_MODE_A_STRING_VALUE_TYPE = "%s (%s)",
|
||||
TEXT_MODE_A_TIMESTAMP = "%H:%M:%S",
|
||||
TIMESTAMP_COMBATLOG_TOOLTIP = "Afficher l'heure des messages du journal de combat.",
|
||||
UNIT_COLORS = "Couleurs d'unités :",
|
||||
UNIT_NAMES = "Noms des unités",
|
||||
UNIT_NAMES_COMBATLOG_TOOLTIP = "Colorer les noms des unités.",
|
||||
UNIT_NAMES_SHOW_BRACES_COMBATLOG_TOOLTIP = "Mettre des liens autour des noms d'unités.",
|
||||
UNIT_YOU = "Vous",
|
||||
UNIT_YOU_DEST = "Vous",
|
||||
UNIT_YOU_DEST_POSSESSIVE = "votre personnage",
|
||||
UNIT_YOU_SOURCE = "Vous",
|
||||
UNIT_YOU_SOURCE_POSSESSIVE = "votre",
|
||||
USE_FULL_TEXT_MODE = "Mode prolixe",
|
||||
}
|
||||
Vendored
+677
@@ -0,0 +1,677 @@
|
||||
-- Classic Era GlobalStrings (KR) that the combat log reads
|
||||
-- and the 1.12 client lacks. Generated; do not edit by hand.
|
||||
pfUI_locale["koKR"]["combatlog"] = {
|
||||
ACTION_DAMAGE_SHIELD = "피해",
|
||||
ACTION_DAMAGE_SHIELD_FULL_TEXT = "%1$s|1이;가; %2$s|1으로;로; 공격했지만 %4$s|1이;가; %9$s의 %7$s 피해를 반사했습니다. %6$s",
|
||||
ACTION_DAMAGE_SHIELD_FULL_TEXT_NO_SOURCE = "%2$s|1으로;로; 공격했지만 %4$s|1이;가; %9$s의 %7$s 피해를 반사했습니다. %6$s",
|
||||
ACTION_DAMAGE_SHIELD_MISSED = "적중하지 않음",
|
||||
ACTION_DAMAGE_SHIELD_MISSED_BLOCK = "방어함",
|
||||
ACTION_DAMAGE_SHIELD_MISSED_BLOCK_FULL_TEXT = "%4$s|1이;가; %1$s의 %2$s|1을;를; 방어했습니다. %6$s",
|
||||
ACTION_DAMAGE_SHIELD_MISSED_BLOCK_FULL_TEXT_NO_SOURCE = "%4$s|1이;가; %2$s|1을;를; 방어했습니다. %6$s",
|
||||
ACTION_DAMAGE_SHIELD_MISSED_BLOCK_POSSESSIVE = "1",
|
||||
ACTION_DAMAGE_SHIELD_MISSED_DEFLECT = "(튕김)",
|
||||
ACTION_DAMAGE_SHIELD_MISSED_DEFLECT_FULL_TEXT = "%1$s|1이;가; %2$s|1으로;로; %4$s|1을;를; 공격했지만 튕겨냈습니다.",
|
||||
ACTION_DAMAGE_SHIELD_MISSED_DEFLECT_FULL_TEXT_NO_SOURCE = "%2$s|1으로;로; %4$s|1을;를; 공격했지만 튕겨냈습니다.",
|
||||
ACTION_DAMAGE_SHIELD_MISSED_DEFLECT_POSSESSIVE = "1",
|
||||
ACTION_DAMAGE_SHIELD_MISSED_DODGE = "피함",
|
||||
ACTION_DAMAGE_SHIELD_MISSED_DODGE_FULL_TEXT = "%4$s|1이;가; %1$s의 %2$s|1을;를; 교묘히 피했습니다.",
|
||||
ACTION_DAMAGE_SHIELD_MISSED_DODGE_FULL_TEXT_NO_SOURCE = "%4$s|1이;가; %2$s|1을;를; 교묘히 피했습니다.",
|
||||
ACTION_DAMAGE_SHIELD_MISSED_DODGE_POSSESSIVE = "1",
|
||||
ACTION_DAMAGE_SHIELD_MISSED_EVADED = "(벗어남)",
|
||||
ACTION_DAMAGE_SHIELD_MISSED_EVADED_FULL_TEXT = "%1$s|1이;가; %2$s|1으로;로; %4$s|1을;를; 공격했지만 벗어났습니다.",
|
||||
ACTION_DAMAGE_SHIELD_MISSED_EVADED_FULL_TEXT_NO_SOURCE = "%2$s|1으로;로; %4$s|1을;를; 공격했지만 벗어났습니다.",
|
||||
ACTION_DAMAGE_SHIELD_MISSED_EVADED_POSSESSIVE = "1",
|
||||
ACTION_DAMAGE_SHIELD_MISSED_FULL_TEXT = "%1$s|1이;가; %2$s|1으로;로; %4$s|1을;를; 공격했지만 적중하지 않았습니다.",
|
||||
ACTION_DAMAGE_SHIELD_MISSED_FULL_TEXT_NO_SOURCE = "%2$s|1으로;로; %4$s|1을;를; 공격했지만 적중하지 않았습니다.",
|
||||
ACTION_DAMAGE_SHIELD_MISSED_IMMUNE = "면역",
|
||||
ACTION_DAMAGE_SHIELD_MISSED_IMMUNE_FULL_TEXT = "%1$s의 %2$s|1이;가; 실패했습니다. %4$s|1은;는; 면역입니다.",
|
||||
ACTION_DAMAGE_SHIELD_MISSED_IMMUNE_FULL_TEXT_NO_SOURCE = "%2$s|1이;가; 실패했습니다. %4$s|1은;는; 면역입니다.",
|
||||
ACTION_DAMAGE_SHIELD_MISSED_IMMUNE_POSSESSIVE = "1",
|
||||
ACTION_DAMAGE_SHIELD_MISSED_MISS = "(빗나감)",
|
||||
ACTION_DAMAGE_SHIELD_MISSED_MISS_FULL_TEXT = "%1$s|1이;가; %2$s|1으로;로; %4$s|1을;를; 공격했지만 적중하지 않았습니다.",
|
||||
ACTION_DAMAGE_SHIELD_MISSED_MISS_FULL_TEXT_NO_SOURCE = "%2$s|1으로;로; %4$s|1을;를; 공격했지만 적중하지 않았습니다.",
|
||||
ACTION_DAMAGE_SHIELD_MISSED_MISS_POSSESSIVE = "1",
|
||||
ACTION_DAMAGE_SHIELD_MISSED_PARRY = "막음",
|
||||
ACTION_DAMAGE_SHIELD_MISSED_PARRY_FULL_TEXT = "%1$s|1이;가; %2$s|1으로;로; %4$s|1을;를; 공격했지만 막았습니다.",
|
||||
ACTION_DAMAGE_SHIELD_MISSED_PARRY_FULL_TEXT_NO_SOURCE = "%2$s|1으로;로; %4$s|1을;를; 공격했지만 막았습니다.",
|
||||
ACTION_DAMAGE_SHIELD_MISSED_PARRY_POSSESSIVE = "1",
|
||||
ACTION_DAMAGE_SHIELD_MISSED_POSSESSIVE = "1",
|
||||
ACTION_DAMAGE_SHIELD_MISSED_RESIST = "저항함",
|
||||
ACTION_DAMAGE_SHIELD_MISSED_RESIST_FULL_TEXT = "%4$s|1이;가; %1$s의 %2$s|1을;를; 모두 저항했습니다. %6$s",
|
||||
ACTION_DAMAGE_SHIELD_MISSED_RESIST_FULL_TEXT_NO_SOURCE = "%4$s|1이;가; %2$s|1을;를; 모두 저항했습니다. %6$s",
|
||||
ACTION_DAMAGE_SHIELD_MISSED_RESIST_POSSESSIVE = "1",
|
||||
ACTION_DAMAGE_SHIELD_POSSESSIVE = "1",
|
||||
ACTION_DAMAGE_SPLIT = "피해 분배",
|
||||
ACTION_DAMAGE_SPLIT_ABSORBED_FULL_TEXT = "%1$s의 %2$s|1으로;로; 인한 피해가 %4$s에게 흡수되었습니다. %6$s",
|
||||
ACTION_DAMAGE_SPLIT_FULL_TEXT = "%1$s|1이;가; %2$s|1으로;로; %4$s에게 %9$s의 피해를 입혔습니다.",
|
||||
ACTION_DAMAGE_SPLIT_POSSESSIVE = "0",
|
||||
ACTION_DAMAGE_SPLIT_RESULT_FULL_TEXT = "%1$s의 %2$s|1이;가; %4$s에게 %9$s의 피해를 입혔습니다. %6$s",
|
||||
ACTION_ENCHANT_APPLIED = "마법부여 사용",
|
||||
ACTION_ENCHANT_APPLIED_FULL_TEXT = "%1$s|1이;가; %4$s의 %5$s에 %2$s|1을;를; 사용합니다.",
|
||||
ACTION_ENCHANT_APPLIED_POSSESSIVE = "0",
|
||||
ACTION_ENCHANT_REMOVED = "마법부여 사라짐",
|
||||
ACTION_ENCHANT_REMOVED_FULL_TEXT = "%4$s의 %5$s에서 %2$s 효과가 사라집니다.",
|
||||
ACTION_ENCHANT_REMOVED_POSSESSIVE = "0",
|
||||
ACTION_ENVIRONMENTAL_DAMAGE = "피해",
|
||||
ACTION_ENVIRONMENTAL_DAMAGE_DROWNING = "호흡 불가",
|
||||
ACTION_ENVIRONMENTAL_DAMAGE_DROWNING_FULL_TEXT = "%4$s|1이;가; 숨을 쉴 수 없어 %9$s의 피해를 입었습니다.",
|
||||
ACTION_ENVIRONMENTAL_DAMAGE_DROWNING_POSSESSIVE = "0",
|
||||
ACTION_ENVIRONMENTAL_DAMAGE_FALLING = "낙하 충격",
|
||||
ACTION_ENVIRONMENTAL_DAMAGE_FALLING_FULL_TEXT = "%4$s|1이;가; 낙하할 때의 충격으로 %9$s의 피해를 입었습니다.",
|
||||
ACTION_ENVIRONMENTAL_DAMAGE_FALLING_POSSESSIVE = "0",
|
||||
ACTION_ENVIRONMENTAL_DAMAGE_FATIGUE = "피로",
|
||||
ACTION_ENVIRONMENTAL_DAMAGE_FATIGUE_FULL_TEXT = "%4$s|1이;가; 피로로 %9$s의 피해를 입었습니다.",
|
||||
ACTION_ENVIRONMENTAL_DAMAGE_FATIGUE_POSSESSIVE = "0",
|
||||
ACTION_ENVIRONMENTAL_DAMAGE_FIRE = "화염",
|
||||
ACTION_ENVIRONMENTAL_DAMAGE_FIRE_FULL_TEXT = "%4$s|1이;가; %9$s의 화염 피해를 입었습니다.",
|
||||
ACTION_ENVIRONMENTAL_DAMAGE_FIRE_POSSESSIVE = "0",
|
||||
ACTION_ENVIRONMENTAL_DAMAGE_FULL_TEXT = "%4$s|1이;가; 환경에 의해 %9$s의 피해를 입었습니다.",
|
||||
ACTION_ENVIRONMENTAL_DAMAGE_LAVA = "용암",
|
||||
ACTION_ENVIRONMENTAL_DAMAGE_LAVA_FULL_TEXT = "%4$s|1이;가; 용암의 열기로 인해 %9$s의 피해를 입었습니다. %6$s",
|
||||
ACTION_ENVIRONMENTAL_DAMAGE_LAVA_POSSESSIVE = "0",
|
||||
ACTION_ENVIRONMENTAL_DAMAGE_POSSESSIVE = "0",
|
||||
ACTION_ENVIRONMENTAL_DAMAGE_SLIME = "독성",
|
||||
ACTION_ENVIRONMENTAL_DAMAGE_SLIME_FULL_TEXT = "%4$s|1이;가; 독성으로 인해 %9$s의 피해를 입었습니다. %6$s",
|
||||
ACTION_ENVIRONMENTAL_DAMAGE_SLIME_POSSESSIVE = "0",
|
||||
ACTION_PARTY_KILL = "죽임",
|
||||
ACTION_PARTY_KILL_FULL_TEXT = "%1$s|1이;가; %4$s|1을;를; 죽였습니다.",
|
||||
ACTION_PARTY_KILL_POSSESSIVE = "0",
|
||||
ACTION_PARTY_KILL_UNCONSCIOUS = "기절",
|
||||
ACTION_PARTY_KILL_UNCONSCIOUS_FULL_TEXT = "%1$s|1이;가; %4$s|1을;를; 기절시켰습니다!",
|
||||
ACTION_PARTY_KILL_UNCONSCIOUS_POSSESSIVE = "0",
|
||||
ACTION_RANGED = "원거리 공격",
|
||||
ACTION_RANGE_DAMAGE = "피해",
|
||||
ACTION_RANGE_DAMAGE_FULL_TEXT = "%1$s|1이;가; 원거리 공격으로 %4$s에게 %5$s의 피해를 입혔습니다. %6$s",
|
||||
ACTION_RANGE_DAMAGE_FULL_TEXT_NO_SOURCE = "원거리 공격으로 %4$s|1이;가; %5$s의 피해를 입었습니다. %6$s",
|
||||
ACTION_RANGE_DAMAGE_POSSESSIVE = "1",
|
||||
ACTION_RANGE_MISSED = "적중하지 않음",
|
||||
ACTION_RANGE_MISSED_ABSORB = "흡수됨",
|
||||
ACTION_RANGE_MISSED_ABSORB_FULL_TEXT = "%1$s|1이;가; %4$s|1을;를; 원거리로 공격했지만 피해가 흡수되었습니다. %6$s",
|
||||
ACTION_RANGE_MISSED_ABSORB_POSSESSIVE = "1",
|
||||
ACTION_RANGE_MISSED_BLOCK = "방어함",
|
||||
ACTION_RANGE_MISSED_BLOCK_FULL_TEXT = "%4$s|1이;가; %1$s의 원거리 공격을 방어했습니다. %6$s",
|
||||
ACTION_RANGE_MISSED_BLOCK_POSSESSIVE = "1",
|
||||
ACTION_RANGE_MISSED_DEFLECT = "(튕김)",
|
||||
ACTION_RANGE_MISSED_DEFLECT_FULL_TEXT = "%1$s|1이;가; %4$s|1을;를; 원거리로 공격했지만 튕겨냈습니다.",
|
||||
ACTION_RANGE_MISSED_DEFLECT_POSSESSIVE = "1",
|
||||
ACTION_RANGE_MISSED_DODGE = "피함",
|
||||
ACTION_RANGE_MISSED_DODGE_FULL_TEXT = "%1$s|1이;가; 원거리로 공격했지만 %4$s|1이;가; 교묘히 피했습니다.",
|
||||
ACTION_RANGE_MISSED_DODGE_POSSESSIVE = "1",
|
||||
ACTION_RANGE_MISSED_EVADE = "(벗어남)",
|
||||
ACTION_RANGE_MISSED_EVADE_FULL_TEXT = "%1$s|1이;가; %4$s|1을;를; 원거리로 공격했지만 빗나갔습니다.",
|
||||
ACTION_RANGE_MISSED_EVADE_POSSESSIVE = "1",
|
||||
ACTION_RANGE_MISSED_FULL_TEXT = "%1$s|1이;가; %4$s|1을;를; 원거리로 공격했지만 적중하지 않았습니다.",
|
||||
ACTION_RANGE_MISSED_IMMUNE = "면역",
|
||||
ACTION_RANGE_MISSED_IMMUNE_FULL_TEXT = "%1$s의 원거리 공격이 실패했습니다. %4$s|1은;는; 면역입니다.",
|
||||
ACTION_RANGE_MISSED_IMMUNE_POSSESSIVE = "1",
|
||||
ACTION_RANGE_MISSED_MISFIRE = "(공격 실패)",
|
||||
ACTION_RANGE_MISSED_MISFIRE_FULL_TEXT = "%1$s|1이;가; %4$s|1을;를; 원거리로 공격하려 했지만 실패했습니다.",
|
||||
ACTION_RANGE_MISSED_MISFIRE_POSSESSIVE = "1",
|
||||
ACTION_RANGE_MISSED_MISS = "(빗나감)",
|
||||
ACTION_RANGE_MISSED_MISS_FULL_TEXT = "%1$s|1이;가; %4$s|1을;를; 원거리로 공격했지만 적중하지 않았습니다.",
|
||||
ACTION_RANGE_MISSED_MISS_POSSESSIVE = "1",
|
||||
ACTION_RANGE_MISSED_PARRY = "막음",
|
||||
ACTION_RANGE_MISSED_PARRY_FULL_TEXT = "%1$s|1이;가; 원거리로 공격했지만 %4$s|1이;가; 막았습니다.",
|
||||
ACTION_RANGE_MISSED_PARRY_POSSESSIVE = "1",
|
||||
ACTION_RANGE_MISSED_POSSESSIVE = "1",
|
||||
ACTION_RANGE_MISSED_RESIST = "저항함",
|
||||
ACTION_RANGE_MISSED_RESIST_FULL_TEXT = "%4$s|1이;가; %1$s의 원거리 공격을 모두 저항했습니다. %6$s",
|
||||
ACTION_RANGE_MISSED_RESIST_POSSESSIVE = "1",
|
||||
ACTION_SPELL_AURA_APPLIED = "효과 적용",
|
||||
ACTION_SPELL_AURA_APPLIED_BUFF = "사용",
|
||||
ACTION_SPELL_AURA_APPLIED_BUFF_FULL_TEXT = "%4$s|1이;가; %1$s의 %2$s 효과를 얻었습니다.",
|
||||
ACTION_SPELL_AURA_APPLIED_BUFF_FULL_TEXT_NO_SOURCE = "%4$s|1이;가; %2$s 효과를 얻었습니다.",
|
||||
ACTION_SPELL_AURA_APPLIED_BUFF_MASTER = "2",
|
||||
ACTION_SPELL_AURA_APPLIED_BUFF_POSSESSIVE = "1",
|
||||
ACTION_SPELL_AURA_APPLIED_BUFF_WITH_POINTS_FULL_TEXT = "%4$s|1이;가; %1$s의 %2$s 효과를 얻었습니다. %11$s",
|
||||
ACTION_SPELL_AURA_APPLIED_BUFF_WITH_POINTS_FULL_TEXT_NO_SOURCE = "%4$s|1이;가; %2$s 효과를 얻었습니다. %11$s",
|
||||
ACTION_SPELL_AURA_APPLIED_DEBUFF = "걸림",
|
||||
ACTION_SPELL_AURA_APPLIED_DEBUFF_FULL_TEXT = "%4$s|1이;가; %1$s의 %2$s에 걸렸습니다.",
|
||||
ACTION_SPELL_AURA_APPLIED_DEBUFF_FULL_TEXT_NO_SOURCE = "%4$s|1이;가; %2$s에 걸렸습니다.",
|
||||
ACTION_SPELL_AURA_APPLIED_DEBUFF_MASTER = "1",
|
||||
ACTION_SPELL_AURA_APPLIED_DEBUFF_POSSESSIVE = "1",
|
||||
ACTION_SPELL_AURA_APPLIED_DEBUFF_WITH_POINTS_FULL_TEXT = "%4$s|1이;가; %1$s의 %2$s에 걸렸습니다. %11$s",
|
||||
ACTION_SPELL_AURA_APPLIED_DEBUFF_WITH_POINTS_FULL_TEXT_NO_SOURCE = "%4$s|1이;가; %2$s에 걸렸습니다. %11$s",
|
||||
ACTION_SPELL_AURA_APPLIED_DOSE = "겹쳐짐",
|
||||
ACTION_SPELL_AURA_APPLIED_DOSE_BUFF = "겹쳐짐",
|
||||
ACTION_SPELL_AURA_APPLIED_DOSE_BUFF_FULL_TEXT = "%4$s|1이;가; %1$s의 %2$s 효과를 얻었습니다. (%9$s)",
|
||||
ACTION_SPELL_AURA_APPLIED_DOSE_BUFF_FULL_TEXT_NO_SOURCE = "%4$s|1이;가; %2$s 효과를 얻었습니다. (%9$s)",
|
||||
ACTION_SPELL_AURA_APPLIED_DOSE_BUFF_POSSESSIVE = "1",
|
||||
ACTION_SPELL_AURA_APPLIED_DOSE_DEBUFF = "걸림",
|
||||
ACTION_SPELL_AURA_APPLIED_DOSE_DEBUFF_FULL_TEXT = "%4$s|1이;가; %1$s의 %2$s에 걸렸습니다. (%9$s)",
|
||||
ACTION_SPELL_AURA_APPLIED_DOSE_DEBUFF_FULL_TEXT_NO_SOURCE = "%4$s|1이;가; %2$s에 걸렸습니다. (%9$s)",
|
||||
ACTION_SPELL_AURA_APPLIED_DOSE_DEBUFF_POSSESSIVE = "1",
|
||||
ACTION_SPELL_AURA_APPLIED_MASTER = "2",
|
||||
ACTION_SPELL_AURA_APPLIED_POSSESSIVE = "1",
|
||||
ACTION_SPELL_AURA_BROKEN = "파괴",
|
||||
ACTION_SPELL_AURA_BROKEN_BUFF = "파괴",
|
||||
ACTION_SPELL_AURA_BROKEN_BUFF_FULL_TEXT = "%1$s|1이;가; %4$s의 %2$s|1을;를; 해제했습니다.",
|
||||
ACTION_SPELL_AURA_BROKEN_BUFF_FULL_TEXT_NO_SOURCE = "%1$s의 %2$s|1이;가; 해제되었습니다.",
|
||||
ACTION_SPELL_AURA_BROKEN_BUFF_POSSESSIVE = "0",
|
||||
ACTION_SPELL_AURA_BROKEN_DEBUFF = "파괴",
|
||||
ACTION_SPELL_AURA_BROKEN_DEBUFF_FULL_TEXT = "%1$s|1이;가; %4$s의 %2$s|1을;를; 해제했습니다.",
|
||||
ACTION_SPELL_AURA_BROKEN_DEBUFF_FULL_TEXT_NO_SOURCE = "%1$s의 %2$s|1이;가; 해제되었습니다.",
|
||||
ACTION_SPELL_AURA_BROKEN_DEBUFF_POSSESSIVE = "0",
|
||||
ACTION_SPELL_AURA_BROKEN_SPELL_BUFF = "파괴",
|
||||
ACTION_SPELL_AURA_BROKEN_SPELL_BUFF_FULL_TEXT = "%1$s|1이;가; %5$s|1으로;로; %4$s의 %2$s|1을;를; 해제했습니다.",
|
||||
ACTION_SPELL_AURA_BROKEN_SPELL_BUFF_FULL_TEXT_NO_SOURCE = "%5$s|1으로;로; %4$s의 %2$s|1이;가; 해제되었습니다.",
|
||||
ACTION_SPELL_AURA_BROKEN_SPELL_BUFF_POSSESSIVE = "1",
|
||||
ACTION_SPELL_AURA_BROKEN_SPELL_DEBUFF = "파괴",
|
||||
ACTION_SPELL_AURA_BROKEN_SPELL_DEBUFF_FULL_TEXT = "%1$s|1이;가; %5$s|1으로;로; %4$s의 %2$s|1을;를; 해제했습니다.",
|
||||
ACTION_SPELL_AURA_BROKEN_SPELL_DEBUFF_FULL_TEXT_NO_SOURCE = "%5$s|1으로;로; %4$s의 %2$s|1이;가; 해제되었습니다.",
|
||||
ACTION_SPELL_AURA_BROKEN_SPELL_DEBUFF_POSSESSIVE = "1",
|
||||
ACTION_SPELL_AURA_REFRESH = "지속시간 초기화",
|
||||
ACTION_SPELL_AURA_REFRESH_BUFF = "지속시간 초기화",
|
||||
ACTION_SPELL_AURA_REFRESH_BUFF_FULL_TEXT = "%1$s|1이;가; %4$s의 %2$s 효과를 초기화합니다.",
|
||||
ACTION_SPELL_AURA_REFRESH_BUFF_FULL_TEXT_NO_SOURCE = "%4$s의 %2$s 주문 지속시간이 초기화됩니다.",
|
||||
ACTION_SPELL_AURA_REFRESH_BUFF_MASTER = "2",
|
||||
ACTION_SPELL_AURA_REFRESH_BUFF_POSSESSIVE = "1",
|
||||
ACTION_SPELL_AURA_REFRESH_BUFF_WITH_POINTS_FULL_TEXT = "%1$s|1이;가; %4$s의 %2$s 효과를 초기화합니다. %11$s",
|
||||
ACTION_SPELL_AURA_REFRESH_BUFF_WITH_POINTS_FULL_TEXT_NO_SOURCE = "%4$s의 %2$s 주문 지속시간이 초기화됩니다. %11$s",
|
||||
ACTION_SPELL_AURA_REFRESH_DEBUFF = "지속시간 초기화",
|
||||
ACTION_SPELL_AURA_REFRESH_DEBUFF_FULL_TEXT = "%1$s|1이;가; %4$s의 %2$s 효과를 초기화합니다.",
|
||||
ACTION_SPELL_AURA_REFRESH_DEBUFF_FULL_TEXT_NO_SOURCE = "%4$s의 %2$s 주문 지속시간이 초기화됩니다.",
|
||||
ACTION_SPELL_AURA_REFRESH_DEBUFF_MASTER = "1",
|
||||
ACTION_SPELL_AURA_REFRESH_DEBUFF_POSSESSIVE = "1",
|
||||
ACTION_SPELL_AURA_REFRESH_DEBUFF_WITH_POINTS_FULL_TEXT = "%1$s|1이;가; %4$s의 %2$s 효과를 초기화합니다. %11$s",
|
||||
ACTION_SPELL_AURA_REFRESH_DEBUFF_WITH_POINTS_FULL_TEXT_NO_SOURCE = "%4$s의 %2$s 주문 지속시간이 초기화됩니다. %11$s",
|
||||
ACTION_SPELL_AURA_REFRESH_MASTER = "2",
|
||||
ACTION_SPELL_AURA_REMOVED = "제거",
|
||||
ACTION_SPELL_AURA_REMOVED_BUFF = "효과 사라짐",
|
||||
ACTION_SPELL_AURA_REMOVED_BUFF_FULL_TEXT = "%4$s에게서 %1$s의 %2$s 효과가 사라졌습니다.",
|
||||
ACTION_SPELL_AURA_REMOVED_BUFF_FULL_TEXT_NO_SOURCE = "%4$s에게서 %2$s 효과가 사라졌습니다.",
|
||||
ACTION_SPELL_AURA_REMOVED_BUFF_POSSESSIVE = "1",
|
||||
ACTION_SPELL_AURA_REMOVED_BUFF_WITH_POINTS_FULL_TEXT = "%4$s에게서 %1$s의 %2$s 효과가 사라졌습니다. %11$s",
|
||||
ACTION_SPELL_AURA_REMOVED_BUFF_WITH_POINTS_FULL_TEXT_NO_SOURCE = "%4$s에게서 %2$s 효과가 사라졌습니다. %11$s",
|
||||
ACTION_SPELL_AURA_REMOVED_DEBUFF = "사라짐",
|
||||
ACTION_SPELL_AURA_REMOVED_DEBUFF_FULL_TEXT = "%1$s의 %2$s|1이;가; %4$s에게서 사라졌습니다.",
|
||||
ACTION_SPELL_AURA_REMOVED_DEBUFF_FULL_TEXT_NO_SOURCE = "%2$s|1이;가; %4$s에게서 사라졌습니다.",
|
||||
ACTION_SPELL_AURA_REMOVED_DEBUFF_POSSESSIVE = "1",
|
||||
ACTION_SPELL_AURA_REMOVED_DEBUFF_WITH_POINTS_FULL_TEXT = "%1$s의 %2$s|1이;가; %4$s에게서 사라졌습니다. %11$s",
|
||||
ACTION_SPELL_AURA_REMOVED_DEBUFF_WITH_POINTS_FULL_TEXT_NO_SOURCE = "%2$s|1이;가; %4$s에게서 사라졌습니다. %11$s",
|
||||
ACTION_SPELL_AURA_REMOVED_DOSE = "감소",
|
||||
ACTION_SPELL_AURA_REMOVED_DOSE_BUFF = "감소",
|
||||
ACTION_SPELL_AURA_REMOVED_DOSE_BUFF_FULL_TEXT = "%1$s의 %2$s(%9$s) 효과가 감소했습니다.",
|
||||
ACTION_SPELL_AURA_REMOVED_DOSE_BUFF_FULL_TEXT_NO_SOURCE = "%2$s(%9$s) 효과가 감소했습니다.",
|
||||
ACTION_SPELL_AURA_REMOVED_DOSE_BUFF_POSSESSIVE = "1",
|
||||
ACTION_SPELL_AURA_REMOVED_DOSE_DEBUFF = "감소",
|
||||
ACTION_SPELL_AURA_REMOVED_DOSE_DEBUFF_FULL_TEXT = "%2$s(%9$s)|1이;가; %1$s에게서 사라졌습니다.",
|
||||
ACTION_SPELL_AURA_REMOVED_DOSE_DEBUFF_FULL_TEXT_NO_SOURCE = "%2$s(%9$s)|1이;가; 사라졌습니다.",
|
||||
ACTION_SPELL_AURA_REMOVED_DOSE_DEBUFF_POSSESSIVE = "1",
|
||||
ACTION_SPELL_AURA_REMOVED_FULL_TEXT = "%1$s의 %2$s|1이;가; %4$s에게서 제거되었습니다.",
|
||||
ACTION_SPELL_AURA_REMOVED_FULL_TEXT_NO_SOURCE = "%1$s의 %2$s|1이;가; %4$s에게서 제거되었습니다.",
|
||||
ACTION_SPELL_AURA_REMOVED_POSSESSIVE = "1",
|
||||
ACTION_SPELL_BUILDING_DAMAGE = "손상",
|
||||
ACTION_SPELL_BUILDING_DAMAGE_FULL_TEXT = "%1$s|1이;가; %2$s|1으로;로; %4$s|1을;를; 공격하여 %5$s의 피해를 입혔습니다. %6$s",
|
||||
ACTION_SPELL_BUILDING_DAMAGE_FULL_TEXT_NO_SOURCE = "%2$s|1으로;로; %4$s|1을;를; 공격하여 %5$s의 피해를 입혔습니다. %6$s",
|
||||
ACTION_SPELL_BUILDING_DAMAGE_MASTER = "1",
|
||||
ACTION_SPELL_BUILDING_DAMAGE_POSSESSIVE = "1",
|
||||
ACTION_SPELL_BUILDING_HEAL = "수리",
|
||||
ACTION_SPELL_BUILDING_HEAL_FULL_TEXT = "%1$s의 %2$s|1으로;로; %4$s의 체력이 %9$s만큼 복구되었습니다. %6$s",
|
||||
ACTION_SPELL_BUILDING_HEAL_FULL_TEXT_NO_SOURCE = "%2$s|1으로;로; %4$s의 체력이 %9$s만큼 복구되었습니다. %6$s",
|
||||
ACTION_SPELL_BUILDING_HEAL_POSSESSIVE = "1",
|
||||
ACTION_SPELL_CAST_FAILED = "사용 실패",
|
||||
ACTION_SPELL_CAST_FAILED_FULL_TEXT = "%1$s|1이;가; %2$s 시전에 실패했습니다. %6$s",
|
||||
ACTION_SPELL_CAST_FAILED_MASTER = "1",
|
||||
ACTION_SPELL_CAST_FAILED_POSSESSIVE = "1",
|
||||
ACTION_SPELL_CAST_START = "시전 시작",
|
||||
ACTION_SPELL_CAST_START_FULL_TEXT = "%1$s|1이;가; %4$s에게 %2$s 시전을 시작합니다.",
|
||||
ACTION_SPELL_CAST_START_FULL_TEXT_NO_DEST = "%1$s|1이;가; %2$s 시전을 시작합니다.",
|
||||
ACTION_SPELL_CAST_START_FULL_TEXT_NO_SOURCE = "무엇인가가 %4$s에게 %2$s 시전을 시작합니다.",
|
||||
ACTION_SPELL_CAST_START_MASTER = "2",
|
||||
ACTION_SPELL_CAST_START_POSSESSIVE = "0",
|
||||
ACTION_SPELL_CAST_SUCCESS = "시전",
|
||||
ACTION_SPELL_CAST_SUCCESS_FULL_TEXT = "%1$s|1이;가; %4$s에게 %2$s|1을;를; 시전합니다.",
|
||||
ACTION_SPELL_CAST_SUCCESS_FULL_TEXT_NO_DEST = "%1$s|1이;가; %2$s|1을;를; 시전합니다.",
|
||||
ACTION_SPELL_CAST_SUCCESS_FULL_TEXT_NO_SOURCE = "무엇인가가 %4$s에게 %2$s 시전을 시작합니다.",
|
||||
ACTION_SPELL_CAST_SUCCESS_MASTER = "2",
|
||||
ACTION_SPELL_CAST_SUCCESS_POSSESSIVE = "0",
|
||||
ACTION_SPELL_CREATE = "만듦",
|
||||
ACTION_SPELL_CREATE_FULL_TEXT = "%1$s|1이;가; %2$s|1으로;로; %4$s|1을;를; 만들었습니다. %6$s",
|
||||
ACTION_SPELL_CREATE_FULL_TEXT_NO_SOURCE = "%2$s|1으로;로; %4$s|1을;를; 만들었습니다. %6$s",
|
||||
ACTION_SPELL_CREATE_POSSESSIVE = "1",
|
||||
ACTION_SPELL_DAMAGE = "피해",
|
||||
ACTION_SPELL_DAMAGE_FULL_TEXT = "%1$s|1이;가; %2$s|1으로;로; %4$s에게 %5$s의 피해를 입혔습니다. %6$s",
|
||||
ACTION_SPELL_DAMAGE_FULL_TEXT_NO_SOURCE = "%2$s|1으로;로; %4$s|1이;가; %5$s의 피해를 입었습니다. %6$s",
|
||||
ACTION_SPELL_DAMAGE_MASTER = "1",
|
||||
ACTION_SPELL_DAMAGE_POSSESSIVE = "1",
|
||||
ACTION_SPELL_DISPEL = "무효화",
|
||||
ACTION_SPELL_DISPEL_BUFF = "무효화",
|
||||
ACTION_SPELL_DISPEL_BUFF_FULL_TEXT = "%4$s의 %5$s|1이;가; %1$s의 %2$s|1으로;로; 무효화되었습니다.",
|
||||
ACTION_SPELL_DISPEL_BUFF_FULL_TEXT_NO_SOURCE = "%4$s의 %5$s|1이;가; %2$s|1으로;로; 무효화되었습니다.",
|
||||
ACTION_SPELL_DISPEL_BUFF_POSSESSIVE = "1",
|
||||
ACTION_SPELL_DISPEL_DEBUFF = "해제",
|
||||
ACTION_SPELL_DISPEL_DEBUFF_FULL_TEXT = "%4$s의 %5$s|1이;가; %1$s의 %2$s|1으로;로; 해제되었습니다.",
|
||||
ACTION_SPELL_DISPEL_DEBUFF_FULL_TEXT_NO_SOURCE = "%4$s의 %5$s|1이;가; %2$s|1으로;로; 해제되었습니다.",
|
||||
ACTION_SPELL_DISPEL_DEBUFF_POSSESSIVE = "1",
|
||||
ACTION_SPELL_DISPEL_FAILED = "무효화 실패",
|
||||
ACTION_SPELL_DISPEL_FAILED_FULL_TEXT = "%1$s|1이;가; %2$s|1으로;로; %4$s에게 걸려 있는 %5$s|1을;를; 무효화하지 못했습니다.",
|
||||
ACTION_SPELL_DISPEL_FAILED_FULL_TEXT_NO_SOURCE = "%2$s|1으로;로; %4$s에게 걸려 있는 %5$s|1을;를; 무효화하지 못했습니다.",
|
||||
ACTION_SPELL_DISPEL_FAILED_POSSESSIVE = "1",
|
||||
ACTION_SPELL_DISPEL_POSSESSIVE = "1",
|
||||
ACTION_SPELL_DRAIN = "소진",
|
||||
ACTION_SPELL_DRAIN_FULL_TEXT = "%1$s|1이;가; %2$s|1으로;로; %4$s의 %8$s|1을;를; %9$s만큼 소진시켰습니다.",
|
||||
ACTION_SPELL_DRAIN_FULL_TEXT_NO_SOURCE = "%2$s|1이;가; %4$s의 %8$s|1을;를; %9$s만큼 소진시켰습니다.",
|
||||
ACTION_SPELL_DRAIN_POSSESSIVE = "1",
|
||||
ACTION_SPELL_DURABILITY_DAMAGE = "내구도 감소",
|
||||
ACTION_SPELL_DURABILITY_DAMAGE_ALL = "전체 내구도 감소",
|
||||
ACTION_SPELL_DURABILITY_DAMAGE_ALL_FULL_TEXT = "%1$s|1이;가; %2$s|1으로;로; %4$s에게 피해를 입혔습니다: 모든 아이템의 내구도가 감소했습니다.",
|
||||
ACTION_SPELL_DURABILITY_DAMAGE_ALL_POSSESSIVE = "1",
|
||||
ACTION_SPELL_DURABILITY_DAMAGE_FULL_TEXT = "%1$s|1이;가; %2$s|1으로;로; %4$s에게 피해를 입혔습니다: %5$s|1이;가; 손상되었습니다.",
|
||||
ACTION_SPELL_DURABILITY_DAMAGE_POSSESSIVE = "1",
|
||||
ACTION_SPELL_ENERGIZE = "얻음",
|
||||
ACTION_SPELL_ENERGIZE_FULL_TEXT = "%4$s|1이;가; %1$s의 %2$s|1으로;로; %9$s의 %8$s|1을;를; 얻었습니다.",
|
||||
ACTION_SPELL_ENERGIZE_FULL_TEXT_NO_SOURCE = "%4$s|1이;가; %2$s|1으로;로; %9$s의 %8$s|1을;를; 얻었습니다.",
|
||||
ACTION_SPELL_ENERGIZE_POSSESSIVE = "1",
|
||||
ACTION_SPELL_ENERGIZE_RESULT = "%9$s %8$s 얻음",
|
||||
ACTION_SPELL_EXTRA_ATTACKS = "추가 공격",
|
||||
ACTION_SPELL_EXTRA_ATTACKS_FULL_TEXT = "%1$s|1이;가; %2$s|1으로;로; %9$s회의 추가 공격 기회를 얻었습니다.",
|
||||
ACTION_SPELL_EXTRA_ATTACKS_FULL_TEXT_NO_SOURCE = "%2$s|1으로;로; %9$s회의 추가 공격 기회를 얻었습니다.",
|
||||
ACTION_SPELL_EXTRA_ATTACKS_POSSESSIVE = "1",
|
||||
ACTION_SPELL_HEAL = "생명력 회복",
|
||||
ACTION_SPELL_HEAL_FULL_TEXT = "%1$s의 %2$s|1으로;로; %4$s의 생명력이 %9$s만큼 회복되었습니다. %6$s",
|
||||
ACTION_SPELL_HEAL_FULL_TEXT_NO_SOURCE = "%2$s|1으로;로; %4$s의 생명력이 %9$s만큼 회복되었습니다. %6$s",
|
||||
ACTION_SPELL_HEAL_POSSESSIVE = "1",
|
||||
ACTION_SPELL_INSTAKILL = "죽임",
|
||||
ACTION_SPELL_INSTAKILL_FULL_TEXT = "%1$s|1이;가; %2$s|1으로;로; 즉시 %4$s|1을;를; 죽였습니다.",
|
||||
ACTION_SPELL_INSTAKILL_FULL_TEXT_NO_SOURCE = "%2$s|1으로;로; 즉시 %4$s|1을;를; 죽였습니다.",
|
||||
ACTION_SPELL_INSTAKILL_POSSESSIVE = "1",
|
||||
ACTION_SPELL_INSTAKILL_UNCONSCIOUS = "기절",
|
||||
ACTION_SPELL_INSTAKILL_UNCONSCIOUS_FULL_TEXT = "%1$s %2$s|1이;가; %4$s|1을;를; 기절시킵니다.",
|
||||
ACTION_SPELL_INSTAKILL_UNCONSCIOUS_FULL_TEXT_NO_SOURCE = "%2$s|1이;가; %4$s|1을;를; 기절시킵니다.",
|
||||
ACTION_SPELL_INSTAKILL_UNCONSCIOUS_POSSESSIVE = "1",
|
||||
ACTION_SPELL_INTERRUPT = "차단",
|
||||
ACTION_SPELL_INTERRUPT_FULL_TEXT = "%1$s|1이;가; %2$s|1으로;로; %4$s의 %5$s|1을;를; 차단했습니다.",
|
||||
ACTION_SPELL_INTERRUPT_FULL_TEXT_NO_SOURCE = "%2$s|1으로;로; %4$s의 %5$s|1을;를; 차단했습니다.",
|
||||
ACTION_SPELL_INTERRUPT_POSSESSIVE = "1",
|
||||
ACTION_SPELL_LEECH = "소진",
|
||||
ACTION_SPELL_LEECH_FULL_TEXT = "%1$s의 %2$s|1으로;로; %4$s의 %8$s|1이;가; %9$s만큼 소진되었습니다. %1$s|1이;가; %10$s의 %8$s|1을;를; 얻었습니다.",
|
||||
ACTION_SPELL_LEECH_FULL_TEXT_NO_SOURCE = "%2$s|1으로;로; %4$s의 %8$s|1이;가; %9$s만큼 소진되었습니다.",
|
||||
ACTION_SPELL_LEECH_POSSESSIVE = "1",
|
||||
ACTION_SPELL_LEECH_RESULT = "%10$s %8$s 얻음",
|
||||
ACTION_SPELL_MISSED = "적중하지 않음",
|
||||
ACTION_SPELL_MISSED_ABSORB = "흡수됨",
|
||||
ACTION_SPELL_MISSED_ABSORB_FULL_TEXT = "%1$s|1이;가; %2$s|1으로;로; %4$s|1을;를; 공격했지만 피해가 흡수되었습니다. %6$s",
|
||||
ACTION_SPELL_MISSED_ABSORB_FULL_TEXT_NO_SOURCE = "%2$s|1으로;로; %4$s|1을;를; 공격했지만 피해가 흡수되었습니다. %6$s",
|
||||
ACTION_SPELL_MISSED_ABSORB_POSSESSIVE = "1",
|
||||
ACTION_SPELL_MISSED_BLOCK = "방어함",
|
||||
ACTION_SPELL_MISSED_BLOCK_FULL_TEXT = "%4$s|1이;가; %1$s의 %2$s|1을;를; 방어했습니다. %6$s",
|
||||
ACTION_SPELL_MISSED_BLOCK_FULL_TEXT_NO_SOURCE = "%4$s|1이;가; %2$s|1을;를; 방어했습니다. %6$s",
|
||||
ACTION_SPELL_MISSED_BLOCK_POSSESSIVE = "1",
|
||||
ACTION_SPELL_MISSED_DEFLECT = "튕김",
|
||||
ACTION_SPELL_MISSED_DEFLECT_FULL_TEXT = "%1$s|1이;가; %2$s|1으로;로; %4$s|1을;를; 공격했지만 튕겨냈습니다.",
|
||||
ACTION_SPELL_MISSED_DEFLECT_FULL_TEXT_NO_SOURCE = "%2$s|1으로;로; %4$s|1을;를; 공격했지만 튕겨냈습니다.",
|
||||
ACTION_SPELL_MISSED_DEFLECT_POSSESSIVE = "1",
|
||||
ACTION_SPELL_MISSED_DODGE = "피함",
|
||||
ACTION_SPELL_MISSED_DODGE_FULL_TEXT = "%1$s|1이;가; %2$s|1으로;로; %4$s|1을;를; 공격했지만 교묘히 피했습니다.",
|
||||
ACTION_SPELL_MISSED_DODGE_FULL_TEXT_NO_SOURCE = "%4$s|1이;가; %2$s|1을;를; 교묘히 피했습니다.",
|
||||
ACTION_SPELL_MISSED_DODGE_POSSESSIVE = "1",
|
||||
ACTION_SPELL_MISSED_EVADE = "벗어남",
|
||||
ACTION_SPELL_MISSED_EVADE_FULL_TEXT = "%1$s|1이;가; %2$s|1으로;로; %4$s|1을;를; 공격했지만 빗나갔습니다.",
|
||||
ACTION_SPELL_MISSED_EVADE_FULL_TEXT_NO_SOURCE = "%2$s|1으로;로; %4$s|1을;를; 공격했지만 벗어났습니다.",
|
||||
ACTION_SPELL_MISSED_EVADE_POSSESSIVE = "1",
|
||||
ACTION_SPELL_MISSED_FULL_TEXT = "%1$s|1이;가; %2$s|1으로;로; %4$s|1을;를; 공격했지만 적중하지 않았습니다.",
|
||||
ACTION_SPELL_MISSED_FULL_TEXT_NO_SOURCE = "%2$s|1이;가; %4$s에게 적중하지 않았습니다.",
|
||||
ACTION_SPELL_MISSED_IMMUNE = "면역",
|
||||
ACTION_SPELL_MISSED_IMMUNE_FULL_TEXT = "%1$s의 %2$s|1이;가; 실패했습니다. %4$s|1은;는; 면역입니다.",
|
||||
ACTION_SPELL_MISSED_IMMUNE_FULL_TEXT_NO_SOURCE = "%2$s|1이;가; 실패했습니다. %4$s|1은;는; 면역입니다.",
|
||||
ACTION_SPELL_MISSED_MISFIRE = "공격 실패",
|
||||
ACTION_SPELL_MISSED_MISFIRE_FULL_TEXT = "%1$s|1이;가; %2$s|1으로;로; %4$s|1을;를; 공격하려 했지만 실패했습니다.",
|
||||
ACTION_SPELL_MISSED_MISFIRE_FULL_TEXT_NO_SOURCE = "%2$s|1으로;로; %4$s|1을;를; 공격하는 데 실패했습니다.",
|
||||
ACTION_SPELL_MISSED_MISFIRE_POSSESSIVE = "1",
|
||||
ACTION_SPELL_MISSED_MISS = "빗나감",
|
||||
ACTION_SPELL_MISSED_MISS_FULL_TEXT = "%1$s|1이;가; %2$s|1으로;로; %4$s|1을;를; 공격했지만 적중하지 않았습니다.",
|
||||
ACTION_SPELL_MISSED_MISS_FULL_TEXT_NO_SOURCE = "%2$s|1이;가; %4$s에게 적중하지 않았습니다.",
|
||||
ACTION_SPELL_MISSED_MISS_POSSESSIVE = "1",
|
||||
ACTION_SPELL_MISSED_PARRY = "막음",
|
||||
ACTION_SPELL_MISSED_PARRY_FULL_TEXT = "%1$s|1이;가; %2$s|1으로;로; %4$s|1을;를; 공격했지만 막았습니다.",
|
||||
ACTION_SPELL_MISSED_PARRY_FULL_TEXT_NO_SOURCE = "%2$s|1으로;로; %4$s|1을;를; 공격했지만 막았습니다.",
|
||||
ACTION_SPELL_MISSED_PARRY_POSSESSIVE = "1",
|
||||
ACTION_SPELL_MISSED_POSSESSIVE = "1",
|
||||
ACTION_SPELL_MISSED_REFLECT = "반사함",
|
||||
ACTION_SPELL_MISSED_REFLECT_FULL_TEXT = "%4$s|1이;가; %1$s의 %2$s|1을;를; 반사했습니다.",
|
||||
ACTION_SPELL_MISSED_REFLECT_FULL_TEXT_NO_SOURCE = "%4$s|1이;가; %2$s|1을;를; 반사했습니다.",
|
||||
ACTION_SPELL_MISSED_RESIST = "저항함",
|
||||
ACTION_SPELL_MISSED_RESIST_FULL_TEXT = "%4$s|1이;가; %1$s의 %2$s|1을;를; 모두 저항했습니다. %6$s",
|
||||
ACTION_SPELL_MISSED_RESIST_FULL_TEXT_NO_SOURCE = "%4$s|1이;가; %2$s|1을;를; 모두 저항했습니다. %6$s",
|
||||
ACTION_SPELL_MISSED_RESIST_POSSESSIVE = "1",
|
||||
ACTION_SPELL_PERIODIC_DAMAGE = "피해",
|
||||
ACTION_SPELL_PERIODIC_DAMAGE_FULL_TEXT = "%4$s|1이;가; %1$s의 %2$s|1으로;로; %5$s의 피해를 입었습니다. %6$s",
|
||||
ACTION_SPELL_PERIODIC_DAMAGE_FULL_TEXT_NO_SOURCE = "%4$s|1이;가; %2$s|1으로;로; %5$s의 피해를 입었습니다. %6$s",
|
||||
ACTION_SPELL_PERIODIC_DAMAGE_POSSESSIVE = "1",
|
||||
ACTION_SPELL_PERIODIC_DRAIN = "소진",
|
||||
ACTION_SPELL_PERIODIC_DRAIN_FULL_TEXT = "%1$s|1이;가; %2$s|1으로;로; %4$s의 %8$s|1을;를; %9$s만큼 소진시켰습니다.",
|
||||
ACTION_SPELL_PERIODIC_DRAIN_FULL_TEXT_NO_SOURCE = "%2$s|1으로;로; %4$s의 %8$s|1이;가; %9$s만큼 소진되었습니다.",
|
||||
ACTION_SPELL_PERIODIC_DRAIN_POSSESSIVE = "1",
|
||||
ACTION_SPELL_PERIODIC_ENERGIZE = "얻음",
|
||||
ACTION_SPELL_PERIODIC_ENERGIZE_FULL_TEXT = "%4$s|1이;가; %1$s의 %2$s|1으로;로; %9$s의 %8$s|1을;를; 얻었습니다.",
|
||||
ACTION_SPELL_PERIODIC_ENERGIZE_FULL_TEXT_NO_SOURCE = "%4$s|1이;가; %2$s|1으로;로; %9$s의 %8$s|1을;를; 얻었습니다.",
|
||||
ACTION_SPELL_PERIODIC_ENERGIZE_POSSESSIVE = "1",
|
||||
ACTION_SPELL_PERIODIC_ENERGIZE_RESULT = "$extraAmount %8$s 얻음",
|
||||
ACTION_SPELL_PERIODIC_HEAL = "생명력 회복",
|
||||
ACTION_SPELL_PERIODIC_HEAL_FULL_TEXT = "%1$s의 %2$s|1으로;로; %4$s의 생명력이 %9$s만큼 회복되었습니다. %6$s",
|
||||
ACTION_SPELL_PERIODIC_HEAL_FULL_TEXT_NO_SOURCE = "%2$s|1으로;로; %4$s의 생명력이 %9$s만큼 회복되었습니다. %6$s",
|
||||
ACTION_SPELL_PERIODIC_HEAL_POSSESSIVE = "1",
|
||||
ACTION_SPELL_PERIODIC_LEECH = "소진",
|
||||
ACTION_SPELL_PERIODIC_LEECH_FULL_TEXT = "%1$s의 %2$s|1으로;로; %4$s의 %8$s|1이;가; %9$s만큼 소진되었습니다. %1$s|1이;가; %10$s의 %8$s|1을;를; 얻었습니다.",
|
||||
ACTION_SPELL_PERIODIC_LEECH_FULL_TEXT_NO_SOURCE = "%2$s|1으로;로; %4$s의 %8$s|1이;가; %9$s만큼 소진되었습니다. %1$s|1이;가; %10$s의 %8$s|1을;를; 얻었습니다.",
|
||||
ACTION_SPELL_PERIODIC_LEECH_POSSESSIVE = "1",
|
||||
ACTION_SPELL_PERIODIC_LEECH_RESULT = "(%10$s %8$s 얻음)",
|
||||
ACTION_SPELL_PERIODIC_MISSED = "적중하지 않음",
|
||||
ACTION_SPELL_PERIODIC_MISSED_ABSORB = "(%1$s 흡수됨)",
|
||||
ACTION_SPELL_PERIODIC_MISSED_ABSORB_FULL_TEXT = "%1$s의 %2$s|1이;가; 흡수되어 %4$s에게 피해를 주지 못했습니다. %6$s",
|
||||
ACTION_SPELL_PERIODIC_MISSED_ABSORB_FULL_TEXT_NO_SOURCE = "%2$s|1이;가; 흡수되어 %4$s에게 피해를 주지 못했습니다. %6$s",
|
||||
ACTION_SPELL_PERIODIC_MISSED_ABSORB_POSSESSIVE = "1",
|
||||
ACTION_SPELL_PERIODIC_MISSED_BLOCK = "일시적으로 방어함",
|
||||
ACTION_SPELL_PERIODIC_MISSED_BLOCK_FULL_TEXT = "%1$s의 %2$s|1이;가; 일시적으로 방어되어 %4$s에게 피해를 주지 못했습니다. %6$s",
|
||||
ACTION_SPELL_PERIODIC_MISSED_BLOCK_FULL_TEXT_NO_SOURCE = "%2$s|1이;가; 일시적으로 방어되어 %4$s에게 피해를 주지 못했습니다. %6$s",
|
||||
ACTION_SPELL_PERIODIC_MISSED_BLOCK_POSSESSIVE = "1",
|
||||
ACTION_SPELL_PERIODIC_MISSED_DEFLECTED = "(일시적으로 튕김)",
|
||||
ACTION_SPELL_PERIODIC_MISSED_DEFLECTED_FULL_TEXT = "%1$s의 %2$s|1이;가; 일시적으로 튕겨 %4$s에게 피해를 주지 못했습니다. %6$s",
|
||||
ACTION_SPELL_PERIODIC_MISSED_DEFLECTED_FULL_TEXT_NO_SOURCE = "%2$s|1이;가; 일시적으로 튕겨 %4$s에게 피해를 주지 못했습니다. %6$s",
|
||||
ACTION_SPELL_PERIODIC_MISSED_DEFLECTED_POSSESSIVE = "1",
|
||||
ACTION_SPELL_PERIODIC_MISSED_DODGE = "일시적으로 피함",
|
||||
ACTION_SPELL_PERIODIC_MISSED_DODGE_FULL_TEXT = "%1$s의 %2$s|1이;가; 일시적으로 회피되어 %4$s에게 피해를 주지 못했습니다. %6$s",
|
||||
ACTION_SPELL_PERIODIC_MISSED_DODGE_FULL_TEXT_NO_SOURCE = "%2$s|1이;가; 일시적으로 회피되어 %4$s에게 피해를 주지 못했습니다. %6$s",
|
||||
ACTION_SPELL_PERIODIC_MISSED_DODGE_POSSESSIVE = "1",
|
||||
ACTION_SPELL_PERIODIC_MISSED_EVADED = "(일시적으로 벗어남)",
|
||||
ACTION_SPELL_PERIODIC_MISSED_EVADED_FULL_TEXT = "%1$s의 %2$s|1이;가; 일시적으로 벗어나 %4$s에게 피해를 주지 못했습니다. %6$s",
|
||||
ACTION_SPELL_PERIODIC_MISSED_EVADED_FULL_TEXT_NO_SOURCE = "%2$s|1이;가; 일시적으로 벗어나 %4$s에게 피해를 주지 못했습니다. %6$s",
|
||||
ACTION_SPELL_PERIODIC_MISSED_EVADED_POSSESSIVE = "1",
|
||||
ACTION_SPELL_PERIODIC_MISSED_FULL_TEXT = "%1$s의 %2$s|1이;가; 일시적으로 %4$s에게 피해를 주지 못했습니다. %6$s",
|
||||
ACTION_SPELL_PERIODIC_MISSED_FULL_TEXT_NO_SOURCE = "%2$s|1이;가; 일시적으로 %4$s에게 피해를 주지 못했습니다. %6$s",
|
||||
ACTION_SPELL_PERIODIC_MISSED_IMMUNE = "면역",
|
||||
ACTION_SPELL_PERIODIC_MISSED_IMMUNE_FULL_TEXT = "%4$s|1이;가; %1$s의 %2$s에 면역입니다. %6$s",
|
||||
ACTION_SPELL_PERIODIC_MISSED_IMMUNE_FULL_TEXT_NO_SOURCE = "%4$s|1이;가; %2$s에 면역입니다. %6$s",
|
||||
ACTION_SPELL_PERIODIC_MISSED_IMMUNE_POSSESSIVE = "1",
|
||||
ACTION_SPELL_PERIODIC_MISSED_MISS = "일시적으로 적중하지 않음",
|
||||
ACTION_SPELL_PERIODIC_MISSED_MISS_FULL_TEXT = "%1$s의 %2$s|1이;가; 일시적으로 적중하지 않아 %4$s에게 피해를 주지 못했습니다. %6$s",
|
||||
ACTION_SPELL_PERIODIC_MISSED_MISS_FULL_TEXT_NO_SOURCE = "%2$s|1이;가; 일시적으로 적중하지 않아 %4$s에게 피해를 주지 못했습니다. %6$s",
|
||||
ACTION_SPELL_PERIODIC_MISSED_MISS_POSSESSIVE = "1",
|
||||
ACTION_SPELL_PERIODIC_MISSED_PARRY = "일시적으로 막음",
|
||||
ACTION_SPELL_PERIODIC_MISSED_PARRY_FULL_TEXT = "%1$s의 %2$s|1이;가; 일시적으로 막혀 %4$s에게 피해를 주지 못했습니다. %6$s",
|
||||
ACTION_SPELL_PERIODIC_MISSED_PARRY_FULL_TEXT_NO_SOURCE = "%2$s|1이;가; 일시적으로 막혀 %4$s에게 피해를 주지 못했습니다. %6$s",
|
||||
ACTION_SPELL_PERIODIC_MISSED_PARRY_POSSESSIVE = "1",
|
||||
ACTION_SPELL_PERIODIC_MISSED_POSSESSIVE = "1",
|
||||
ACTION_SPELL_PERIODIC_MISSED_RESIST = "일시적으로 저항함",
|
||||
ACTION_SPELL_PERIODIC_MISSED_RESIST_FULL_TEXT = "%1$s의 %2$s|1이;가; %4$s에게 피해를 주지 못했습니다. %4$s|1이;가; 저항했습니다. %6$s",
|
||||
ACTION_SPELL_PERIODIC_MISSED_RESIST_FULL_TEXT_NO_SOURCE = "%2$s|1이;가; %4$s에게 피해를 주지 못했습니다. %4$s|1이;가; 저항했습니다. %6$s",
|
||||
ACTION_SPELL_PERIODIC_MISSED_RESIST_POSSESSIVE = "1",
|
||||
ACTION_SPELL_RESURRECT = "부활함",
|
||||
ACTION_SPELL_RESURRECT_FULL_TEXT = "%1$s|1이;가; %2$s|1으로;로; %4$s|1을;를; 부활시켰습니다. %6$s",
|
||||
ACTION_SPELL_RESURRECT_FULL_TEXT_NO_SOURCE = "%2$s|1으로;로; %4$s|1을;를; 부활시켰습니다. %6$s",
|
||||
ACTION_SPELL_RESURRECT_POSSESSIVE = "1",
|
||||
ACTION_SPELL_STOLEN = "훔침",
|
||||
ACTION_SPELL_STOLEN_BUFF = "훔침",
|
||||
ACTION_SPELL_STOLEN_BUFF_FULL_TEXT = "%1$s|1이;가; %2$s|1으로;로; %4$s의 %5$s|1을;를; 훔쳤습니다.",
|
||||
ACTION_SPELL_STOLEN_BUFF_FULL_TEXT_NO_SOURCE = "%2$s|1으로;로; %4$s의 %5$s|1을;를; 훔쳤습니다.",
|
||||
ACTION_SPELL_STOLEN_BUFF_POSSESSIVE = "1",
|
||||
ACTION_SPELL_STOLEN_BUFF__POSSESSIVE = "1",
|
||||
ACTION_SPELL_STOLEN_DEBUFF = "훔침",
|
||||
ACTION_SPELL_STOLEN_DEBUFF_FULL_TEXT = "%1$s의 %2$s|1으로;로; %4$s의 $extraSpell|1이;가; %1$s에게 이전되었습니다.",
|
||||
ACTION_SPELL_STOLEN_DEBUFF_FULL_TEXT_NO_SOURCE = "%2$s|1으로;로; %4$s의 $extraSpell|1이;가; 이전되었습니다.",
|
||||
ACTION_SPELL_STOLEN_DEBUFF_POSSESSIVE = "1",
|
||||
ACTION_SPELL_STOLEN_FULL_TEXT = "%1$s|1이;가; %2$s|1으로;로; %4$s의 %5$s|1을;를; 훔쳤습니다.",
|
||||
ACTION_SPELL_STOLEN_FULL_TEXT_NO_SOURCE = "%2$s|1으로;로; %4$s의 %5$s|1을;를; 훔쳤습니다.",
|
||||
ACTION_SPELL_STOLEN_POSSESSIVE = "1",
|
||||
ACTION_SPELL_SUMMON = "소환",
|
||||
ACTION_SPELL_SUMMON_FULL_TEXT = "%1$s|1이;가; %2$s|1으로;로; %4$s|1을;를; 소환했습니다. %6$s",
|
||||
ACTION_SPELL_SUMMON_FULL_TEXT_NO_SOURCE = "%2$s|1으로;로; %4$s|1을;를; 소환했습니다. %6$s",
|
||||
ACTION_SPELL_SUMMON_POSSESSIVE = "1",
|
||||
ACTION_SWING = "근접 공격",
|
||||
ACTION_SWING_DAMAGE = "피해",
|
||||
ACTION_SWING_DAMAGE_FULL_TEXT = "%1$s|1이;가; 근접 공격으로 %4$s에게 %5$s의 피해를 입혔습니다. %6$s",
|
||||
ACTION_SWING_DAMAGE_FULL_TEXT_NO_SOURCE = "근접 공격으로 %4$s|1이;가; %5$s의 피해를 입었습니다. %6$s",
|
||||
ACTION_SWING_DAMAGE_POSSESSIVE = "1",
|
||||
ACTION_SWING_MISSED = "적중하지 않음",
|
||||
ACTION_SWING_MISSED_ABSORB = "흡수됨",
|
||||
ACTION_SWING_MISSED_ABSORB_FULL_TEXT = "%1$s|1이;가; %4$s|1을;를; 공격했지만 피해가 흡수되었습니다. %6$s",
|
||||
ACTION_SWING_MISSED_ABSORB_POSSESSIVE = "1",
|
||||
ACTION_SWING_MISSED_BLOCK = "방어함",
|
||||
ACTION_SWING_MISSED_BLOCK_FULL_TEXT = "%1$s|1이;가; %4$s의 공격을 방어했습니다. %6$s",
|
||||
ACTION_SWING_MISSED_BLOCK_POSSESSIVE = "1",
|
||||
ACTION_SWING_MISSED_DEFLECT = "(튕김)",
|
||||
ACTION_SWING_MISSED_DEFLECT_FULL_TEXT = "%1$s|1이;가; %4$s|1을;를; 공격했지만 튕겨냈습니다.",
|
||||
ACTION_SWING_MISSED_DEFLECT_POSSESSIVE = "1",
|
||||
ACTION_SWING_MISSED_DODGE = "피함",
|
||||
ACTION_SWING_MISSED_DODGE_FULL_TEXT = "%4$s|1이;가; %1$s의 공격을 교묘히 피했습니다.",
|
||||
ACTION_SWING_MISSED_DODGE_POSSESSIVE = "1",
|
||||
ACTION_SWING_MISSED_EVADE = "(벗어남)",
|
||||
ACTION_SWING_MISSED_EVADE_FULL_TEXT = "%1$s|1이;가; %4$s|1을;를; 공격했지만 벗어났습니다.",
|
||||
ACTION_SWING_MISSED_EVADE_POSSESSIVE = "1",
|
||||
ACTION_SWING_MISSED_FULL_TEXT = "%1$s|1이;가; %4$s|1을;를; 공격했지만 적중하지 않았습니다.",
|
||||
ACTION_SWING_MISSED_IMMUNE = "면역",
|
||||
ACTION_SWING_MISSED_IMMUNE_FULL_TEXT = "%1$s의 공격이 실패했습니다. %4$s|1은;는; 면역입니다.",
|
||||
ACTION_SWING_MISSED_IMMUNE_POSSESSIVE = "1",
|
||||
ACTION_SWING_MISSED_MISFIRE = "(공격 실패)",
|
||||
ACTION_SWING_MISSED_MISFIRE_FULL_TEXT = "%1$s|1이;가; %4$s|1을;를; 공격하려 했지만 실패했습니다.",
|
||||
ACTION_SWING_MISSED_MISFIRE_POSSESSIVE = "1",
|
||||
ACTION_SWING_MISSED_MISS = "(빗나감)",
|
||||
ACTION_SWING_MISSED_MISS_FULL_TEXT = "%1$s|1이;가; %4$s|1을;를; 공격했지만 적중하지 않았습니다.",
|
||||
ACTION_SWING_MISSED_MISS_POSSESSIVE = "1",
|
||||
ACTION_SWING_MISSED_PARRY = "막음",
|
||||
ACTION_SWING_MISSED_PARRY_FULL_TEXT = "%4$s|1이;가; %1$s의 공격을 막았습니다.",
|
||||
ACTION_SWING_MISSED_PARRY_POSSESSIVE = "1",
|
||||
ACTION_SWING_MISSED_POSSESSIVE = "1",
|
||||
ACTION_SWING_MISSED_RESIST = "저항함",
|
||||
ACTION_SWING_MISSED_RESIST_FULL_TEXT = "%4$s|1이;가; %1$s의 공격을 모두 저항했습니다. %6$s",
|
||||
ACTION_SWING_MISSED_RESIST_POSSESSIVE = "1",
|
||||
ACTION_UNIT_BECCOMES_UNCONSCIOUS = "쓰러짐",
|
||||
ACTION_UNIT_BECOMES_UNCONSCIOUS_FULL_TEXT = "%4$s|1이;가; 쓰러집니다.",
|
||||
ACTION_UNIT_BECOMES_UNCONSCIOUS_POSSESSIVE = "0",
|
||||
ACTION_UNIT_DESTROYED = "파괴됨",
|
||||
ACTION_UNIT_DESTROYED_FULL_TEXT = "%4$s|1이;가; 파괴되었습니다.",
|
||||
ACTION_UNIT_DESTROYED_POSSESSIVE = "0",
|
||||
ACTION_UNIT_DIED = "죽음",
|
||||
ACTION_UNIT_DIED_FULL_TEXT = "%4$s|1이;가; 죽었습니다.",
|
||||
ACTION_UNIT_DIED_POSSESSIVE = "0",
|
||||
ACTION_UNIT_DISSIPATES = "사라짐",
|
||||
ACTION_UNIT_DISSIPATES_FULL_TEXT = "%4$s|1이;가; 사라집니다.",
|
||||
ACTION_UNIT_DISSIPATES_POSSESSIVE = "0",
|
||||
ADD = "추가",
|
||||
ADDITIONAL_FILTERS = "추가 필터",
|
||||
ADD_FILTER = "필터 추가",
|
||||
AURAS = "오라",
|
||||
AURAS_COMBATLOG_TOOLTIP = "이로운 효과나 해로운 효과에 대한 메시지를 표시합니다.",
|
||||
BENEFICIAL = "이로운 효과",
|
||||
BENEFICIAL_AURA_COMBATLOG_TOOLTIP = "강화 효과를 얻거나 잃었을 때 메시지를 표시합니다.",
|
||||
BLIZZARD_COMBAT_LOG_MENU_BOTH = "%s|1과;와; 관련된 기록을 모두 보여주십시오.",
|
||||
BLIZZARD_COMBAT_LOG_MENU_EVERYTHING = "모두",
|
||||
BLIZZARD_COMBAT_LOG_MENU_INCOMING = "%s에게 무슨 일이 일어났습니까?",
|
||||
BLIZZARD_COMBAT_LOG_MENU_OUTGOING = "%s|1이;가; 무엇을 했습니까?",
|
||||
BLIZZARD_COMBAT_LOG_MENU_OUTGOING_ME = "%s|1이;가; 당신에게 무엇을 했습니까?",
|
||||
BLIZZARD_COMBAT_LOG_MENU_RESET = "원래대로",
|
||||
BLIZZARD_COMBAT_LOG_MENU_SAVE = "새 필터로 저장",
|
||||
BLIZZARD_COMBAT_LOG_MENU_SPELL_HIDE = "같은 종류의 메시지 숨기기",
|
||||
BLIZZARD_COMBAT_LOG_MENU_SPELL_LINK = "%s|1을;를; 대화창으로 링크",
|
||||
BY_SOURCE = "행위자",
|
||||
BY_SOURCE_COMBATLOG_TOOLTIP = "행위자를 기준으로 문장에 색을 입힙니다.",
|
||||
BY_TARGET = "대상",
|
||||
BY_TARGET_COMBATLOG_TOOLTIP = "대상을 기준으로 문장에 색을 입힙니다.",
|
||||
COLORIZE = "색 지정",
|
||||
COLORS = "색상",
|
||||
COLOR_BY_SCHOOL = "마법 계열별 색 설정",
|
||||
COMBATLOG_DEFAULTS = "원래대로",
|
||||
COMBATLOG_FILTER_STRING_CUSTOM_UNIT = "사용자 개체",
|
||||
COMBATLOG_FILTER_STRING_FRIENDLY_UNITS = "친구",
|
||||
COMBATLOG_FILTER_STRING_HOSTILE_PLAYERS = "적대적인 플레이어",
|
||||
COMBATLOG_FILTER_STRING_HOSTILE_UNITS = "적대적 대상",
|
||||
COMBATLOG_FILTER_STRING_ME = "자신",
|
||||
COMBATLOG_FILTER_STRING_MY_PET = "소환수",
|
||||
COMBATLOG_FILTER_STRING_NEUTRAL_UNITS = "중립적 대상",
|
||||
COMBATLOG_FILTER_STRING_UNKNOWN_UNITS = "알 수 없음",
|
||||
COMBATLOG_HIGHLIGHT_ABILITY = "주문 및 기술",
|
||||
COMBATLOG_HIGHLIGHT_DAMAGE = "피해",
|
||||
COMBATLOG_HIGHLIGHT_KILL = "처치",
|
||||
COMBATLOG_HIGHLIGHT_SCHOOL = "마법 계열",
|
||||
COMBATLOG_UNKNOWN_UNIT = "무엇인가",
|
||||
COMBAT_FACTION_CHANGE = "평판",
|
||||
COMBAT_HONOR_GAIN = "명예",
|
||||
COMBAT_LOG_UNIT_YOU_ENABLED = "1",
|
||||
COMBAT_MISC_INFO = "기타 정보",
|
||||
COMBAT_XP_GAIN = "경험치",
|
||||
CONFIRM_COMBAT_FILTER_DEFAULTS = "정말 필터를 초기화하시겠습니까?",
|
||||
CONFIRM_COMBAT_FILTER_DELETE = "정말 이 필터를 삭제하시겠습니까?",
|
||||
COPY_FILTER = "필터 복사",
|
||||
DAMAGE_NUMBER = "피해 수치",
|
||||
DAMAGE_SCHOOL_TEXT = "마법 계열",
|
||||
DAMAGE_SHIELD = "피해 보호막",
|
||||
DAMAGE_SHIELD_COMBATLOG_TOOLTIP = "근접 공격자에게 피해를 입히는 주문이나 능력으로 인한 피해 메시지를 표시합니다. 예: 가시 등",
|
||||
DEATHS_COMBATLOG_TOOLTIP = "무엇인가가 죽었을 때 메시지를 표시합니다.",
|
||||
DEFAULT_COMBATLOG_FILTER_NAME = "필터: %d",
|
||||
DISPELS = "무효화",
|
||||
DISPEL_AURA_COMBATLOG_TOOLTIP = "효과가 제거되거나, 파괴되거나, 훔쳐졌을 때 메시지를 표시합니다.",
|
||||
DONE_BY = "행위자",
|
||||
DONE_TO = "대상",
|
||||
DRAINS = "소진",
|
||||
ENTER_FILTER_NAME = "필터 이름을 입력하십시오.",
|
||||
ENTIRE_LINE = "전체 문장",
|
||||
ENTIRE_LINE_COMBATLOG_TOOLTIP = "아래 선택에 따라 전체 문장에 색을 입힙니다.",
|
||||
ENVIRONMENTAL_DAMAGE = "환경 피해",
|
||||
ENVIRONMENTAL_DAMAGE_COMBATLOG_TOOLTIP = "낙하, 익사, 용암에 의한 피해를 입었을 때 메시지를 표시합니다.",
|
||||
EXAMPLE_SPELL_FIREBALL = "화염구",
|
||||
EXAMPLE_SPELL_FROSTBOLT = "얼음 화살",
|
||||
EXAMPLE_TARGET_MONSTER = "몬스터",
|
||||
EXAMPLE_TEXT = "예시 문구",
|
||||
EXTRA_ATTACKS = "추가 공격",
|
||||
FAILURES = "실패",
|
||||
FILTER_BY_ENEMIES_COMBATLOG_TOOLTIP = "적대적인 NPC, 소환수의 동작",
|
||||
FILTER_BY_FRIENDS_COMBATLOG_TOOLTIP = "아군 플레이어, 소환수, NPC의 동작",
|
||||
FILTER_BY_HOSTILE_PLAYERS_COMBATLOG_TOOLTIP = "적대적인 플레이어의 동작",
|
||||
FILTER_BY_ME_COMBATLOG_TOOLTIP = "자신, 자신의 덫, 자신의 주문에 의한 동작",
|
||||
FILTER_BY_NEUTRAL_COMBATLOG_TOOLTIP = "중립적 NPC의 동작",
|
||||
FILTER_BY_PET_COMBATLOG_TOOLTIP = "자신의 소환수, 소환된 수호물, 자신이 현혹한 플레이어의 동작",
|
||||
FILTER_BY_UNKNOWN_COMBATLOG_TOOLTIP = "낙하 피해, 독, 용암 등에 의한 동작",
|
||||
FILTER_NAME = "필터 이름",
|
||||
FILTER_TO_FRIENDS_COMBATLOG_TOOLTIP = "아군 플레이어, 소환수, NPC에게 행해진 동작",
|
||||
FILTER_TO_HOSTILE_COMBATLOG_TOOLTIP = "적대적인 소환수, NPC에게 행해진 동작",
|
||||
FILTER_TO_HOSTILE_PLAYERS_COMBATLOG_TOOLTIP = "적대적인 플레이어에게 행해진 동작",
|
||||
FILTER_TO_ME_COMBATLOG_TOOLTIP = "자신에게 행해진 동작",
|
||||
FILTER_TO_NEUTRAL_COMBATLOG_TOOLTIP = "중립적 NPC에게 행해진 동작",
|
||||
FILTER_TO_PET_COMBATLOG_TOOLTIP = "자신의 소환수, 소환된 수호물, 자신이 현혹한 플레이어에게 행해진 동작",
|
||||
FILTER_TO_UNKNOWN_COMBATLOG_TOOLTIP = "보이지 않는 대상에게 행해진 동작",
|
||||
FORMATTING = "형식",
|
||||
FULL_TEXT_COMBATLOG_TOOLTIP = "전투 메시지를 전체 문장으로 표시합니다.",
|
||||
HARMFUL_AURA_COMBATLOG_TOOLTIP = "약화 효과를 얻거나 잃었을 때 메시지를 표시합니다.",
|
||||
HEALS = "치유",
|
||||
HIGHLIGHTING = "강조",
|
||||
HIGHLIGHT_ABILITY_COMBATLOG_TOOLTIP = "전투 메시지 상에서 능력의 이름을 강조합니다.",
|
||||
HIGHLIGHT_DAMAGE_COMBATLOG_TOOLTIP = "전투 메시지 상에서 피해의 수치를 강조합니다.",
|
||||
HIGHLIGHT_KILL_COMBATLOG_TOOLTIP = "자신이나 파티원이 대상을 처치했을 때 메시지를 강조합니다.",
|
||||
HIGHLIGHT_SCHOOL_COMBATLOG_TOOLTIP = "전투 메시지 상에서 주문의 마법 계열을 강조합니다.",
|
||||
HOSTILE = "해로운 효과",
|
||||
INTERRUPTS = "차단",
|
||||
ITEM_NAMES = "아이템 이름",
|
||||
ITEM_NAMES_SHOW_BRACES_COMBATLOG_TOOLTIP = "아이템에 괄호 표시",
|
||||
KILLS_COMBATLOG_TOOLTIP = "파티원이 어떤 대상을 처치했을 때 메시지를 표시합니다.",
|
||||
MELEE = "근접 공격",
|
||||
MELEE_COMBATLOG_TOOLTIP = "근접 공격에 관련된 메시지를 표시합니다.",
|
||||
MESSAGE_SOURCES = "메시지 출처",
|
||||
MISSES = "적중하지 않음",
|
||||
MOVE_FILTER_DOWN = "필터를 아래로 이동",
|
||||
MOVE_FILTER_UP = "필터를 위로 이동",
|
||||
OTHER = "기타",
|
||||
PERIODIC = "주기적인 효과",
|
||||
POWER_GAINS = "얻은 자원",
|
||||
POWER_GAINS_COMBATLOG_TOOLTIP = "주문이나 능력으로 마나, 기력, 분노, 집중, 기, 신성한 힘, 암흑 구슬이 회복될 때 메시지를 표시합니다.",
|
||||
QUICKBUTTON_NAME_EVERYTHING = "모두",
|
||||
QUICKBUTTON_NAME_EVERYTHING_TOOLTIP = "모든 전투 메시지를 표시합니다.",
|
||||
QUICKBUTTON_NAME_KILLS = "처치",
|
||||
QUICKBUTTON_NAME_KILLS_TOOLTIP = "처치 및 죽음에 대한 메시지를 표시합니다.",
|
||||
QUICKBUTTON_NAME_ME = "자신(대상)",
|
||||
QUICKBUTTON_NAME_ME_TOOLTIP = "자신에게 행해진 모든 내용을 표시합니다.",
|
||||
QUICKBUTTON_NAME_SELF = "자신",
|
||||
QUICKBUTTON_NAME_SELF_TOOLTIP = "자신의 행위와 자신에게 행해진 행위에 대한 메시지를 표시합니다.",
|
||||
QUICK_BUTTON_COMBATLOG_TOOLTIP = "대화창에 필터를 추가합니다.",
|
||||
RANGED = "원거리 공격",
|
||||
RANGED_COMBATLOG_TOOLTIP = "활, 총, 투척 무기, 마법봉 공격 메시지를 표시합니다.",
|
||||
RANGE_DAMAGE_COMBATLOG_TOOLTIP = "원거리 공격으로 입힌 전체 피해나 부분적인 피해를 표시합니다.",
|
||||
RANGE_MISSED_COMBATLOG_TOOLTIP = "피해를 입히지 못한 원거리 공격에 대한 메시지를 표시합니다.",
|
||||
RESURRECT = "부활",
|
||||
SETTINGS = "설정",
|
||||
SHOW_BRACES = "괄호 표시",
|
||||
SHOW_BRACES_COMBATLOG_TOOLTIP = "전투 메시지에서 링크 정보가 있는 단어를 괄호로 묶습니다.",
|
||||
SHOW_QUICK_BUTTON = "빠른 버튼 표시하기",
|
||||
SHOW_TIMESTAMP = "시간 표시",
|
||||
SOURCE = "획득 방법:",
|
||||
SPECIAL = "특수 주문",
|
||||
SPELLS_COMBATLOG_TOOLTIP = "주문과 특수 능력에 관한 메시지를 표시합니다.",
|
||||
SPELL_CASTING = "주문 시전",
|
||||
SPELL_CASTING_COMBATLOG_TOOLTIP = "주문 시전에 관련된 메시지를 표시합니다.",
|
||||
SPELL_CAST_FAILED_COMBATLOG_TOOLTIP = "주문을 시전하지 못하거나 시전에 실패했을 때 메시지를 표시합니다.",
|
||||
SPELL_CAST_START_COMBATLOG_TOOLTIP = "주문 시전을 시작할 때 메시지를 표시합니다.",
|
||||
SPELL_CAST_SUCCESS_COMBATLOG_TOOLTIP = "성공적으로 주문을 시전했을 때 메시지를 표시합니다.",
|
||||
SPELL_COLOR_BY_SCHOOL_COMBATLOG_TOOLTIP = "주문의 마법 계열에 색을 입힙니다.",
|
||||
SPELL_DAMAGE_COMBATLOG_TOOLTIP = "주문이나 능력으로 피해를 입혔을 때 메시지를 표시합니다.",
|
||||
SPELL_DAMAGE_NUMBER_COMBATLOG_TOOLTIP = "근접 공격을 제외한 공격 피해에 색을 입힙니다.",
|
||||
SPELL_DAMAGE_SCHOOL_COMBATLOG_TOOLTIP = "공격 마법 계열에 색을 입힙니다. (예: 암흑)",
|
||||
SPELL_DRAIN_COMBATLOG_TOOLTIP = "주문이나 능력으로 마나, 기력, 분노, 집중이 감소할 때 메시지를 표시합니다.",
|
||||
SPELL_EXTRA_ATTACKS_COMBATLOG_TOOLTIP = "주문이나 능력으로 추가 공격 기회를 얻었을 때 메시지를 표시합니다.",
|
||||
SPELL_HEAL_COMBATLOG_TOOLTIP = "주문이나 능력으로 피해가 치유될 때 메시지를 표시합니다.",
|
||||
SPELL_INSTAKILL_COMBATLOG_TOOLTIP = "내구도 감소나 소환수에게 분배되는 피해 등 특별한 형태의 메시지를 표시합니다.",
|
||||
SPELL_INTERRUPT_COMBATLOG_TOOLTIP = "주문이나 능력으로 다른 주문이 취소될 때 메시지를 표시합니다.",
|
||||
SPELL_MISSED_COMBATLOG_TOOLTIP = "주문이나 능력으로 피해를 입히지 못했을 때 메시지를 표시합니다. 피함, 막음, 방어함, 튕김, 면역, 흡수, 벗어남이 포함됩니다.",
|
||||
SPELL_NAMES = "주문 이름",
|
||||
SPELL_NAMES_COMBATLOG_TOOLTIP = "주문의 이름에 색을 입힙니다.",
|
||||
SPELL_NAMES_SHOW_BRACES_COMBATLOG_TOOLTIP = "주문이나 기술에 괄호 표시",
|
||||
SPELL_PERIODIC_COMBATLOG_TOOLTIP = "효과가 증가하는 주문을 표시합니다.",
|
||||
SPELL_PERIODIC_DAMAGE_COMBATLOG_TOOLTIP = "주문이나 능력으로 주기적인 피해를 입힐 때 메시지를 표시합니다. 예: 어둠의 권능: 고통, 부패 등",
|
||||
SPELL_PERIODIC_HEAL_COMBATLOG_TOOLTIP = "주문이나 능력으로 주기적인 치유가 이루어질 때 메시지를 표시합니다. 예: 소생, 회복 등",
|
||||
SPELL_PERIODIC_MISSED_COMBATLOG_TOOLTIP = "주문이나 능력으로 인한 주기적인 피해가 실패했을 때 메시지를 표시합니다. 면역, 흡수, 벗어남 등이 포함됩니다.",
|
||||
SPELL_PERIODIC_OTHER_COMBATLOG_TOOLTIP = "주문이나 능력으로 주기적인 효과가 발생할 때 메시지를 표시합니다. 예: 마나 회복, 마나 흡수 등",
|
||||
SPELL_RESURRECT_COMBATLOG_TOOLTIP = "다른 플레이어나 NPC를 부활시키는 주문에 대한 메시지를 표시합니다.",
|
||||
SPELL_SUMMON_COMBATLOG_TOOLTIP = "몬스터나 NPC를 소환하거나 물건을 창조할 때 메시지를 표시합니다.",
|
||||
START = "시작",
|
||||
STRING_SCHOOL_UNKNOWN = "알 수 없음",
|
||||
SUCCESS = "성공",
|
||||
SUMMONS = "소환",
|
||||
SWING_DAMAGE_COMBATLOG_TOOLTIP = "근접 공격으로 입힌 전체 피해나 부분적인 피해를 표시합니다.",
|
||||
SWING_MISSED_COMBATLOG_TOOLTIP = "피해를 입히지 못한 근접 공격에 대한 메시지를 표시합니다.",
|
||||
TEXT_MODE_A = "A",
|
||||
TEXT_MODE_A_STRING_1 = "%1$s %2$s %4$s %5$s %3$s %6$s %11$s",
|
||||
TEXT_MODE_A_STRING_2 = "%1$s %2$s %4$s %5$s %3$s %6$s",
|
||||
TEXT_MODE_A_STRING_3 = "%1$s %5$s %3$s %4$s %2$s. %6$s",
|
||||
TEXT_MODE_A_STRING_ACTION = "|Haction:%s|h%s|h",
|
||||
TEXT_MODE_A_STRING_BRACE_ITEM = "|c%s[|r%s|c%s]|r",
|
||||
TEXT_MODE_A_STRING_BRACE_SPELL = "|c%s[|r%s|c%s]|r",
|
||||
TEXT_MODE_A_STRING_BRACE_UNIT = "|c%s[|r%s|c%s]|r",
|
||||
TEXT_MODE_A_STRING_DEST_ICON = "|Hicon:%d:dest|h%s|h",
|
||||
TEXT_MODE_A_STRING_DEST_UNIT = "%s|Hunit:%s:%s|h%s|h",
|
||||
TEXT_MODE_A_STRING_ITEM = "|Hitem:%s|h%s|h",
|
||||
TEXT_MODE_A_STRING_POSSESSIVE = "%s",
|
||||
TEXT_MODE_A_STRING_REMAINING_POINTS = "(%s 남음)",
|
||||
TEXT_MODE_A_STRING_RESULT_ABSORB = "(%s 흡수됨)",
|
||||
TEXT_MODE_A_STRING_RESULT_BLOCK = "(%s 피해 방어)",
|
||||
TEXT_MODE_A_STRING_RESULT_CRITICAL = "(치명상)",
|
||||
TEXT_MODE_A_STRING_RESULT_CRITICAL_SPELL = "(극대화)",
|
||||
TEXT_MODE_A_STRING_RESULT_CRUSHING = "(강타당함)",
|
||||
TEXT_MODE_A_STRING_RESULT_FORMAT = "$resultAmount $resultType",
|
||||
TEXT_MODE_A_STRING_RESULT_GLANCING = "(비껴맞음)",
|
||||
TEXT_MODE_A_STRING_RESULT_MULTISTRIKE = "(연속타격)",
|
||||
TEXT_MODE_A_STRING_RESULT_OVERENERGIZE = "(%s 과충전)",
|
||||
TEXT_MODE_A_STRING_RESULT_OVERHEALING = "(%s 초과 치유)",
|
||||
TEXT_MODE_A_STRING_RESULT_OVERKILLING = "(%s 초과 피해)",
|
||||
TEXT_MODE_A_STRING_RESULT_PARRY = "(%d 막음)",
|
||||
TEXT_MODE_A_STRING_RESULT_REFLECT = "반사함",
|
||||
TEXT_MODE_A_STRING_RESULT_RESIST = "(%s 저항함)",
|
||||
TEXT_MODE_A_STRING_RESULT_VULNERABILITY = "(%s 약점 피해)",
|
||||
TEXT_MODE_A_STRING_SOURCE_ICON = "|Hicon:%s:source|h%s|h",
|
||||
TEXT_MODE_A_STRING_SOURCE_UNIT = "%s|Hunit:%s:%s|h%s|h",
|
||||
TEXT_MODE_A_STRING_SPELL = "|Hspell:%s:%s:%s|h%s|h",
|
||||
TEXT_MODE_A_STRING_SPELL_EXTRA = "|Hspell:%s:%s:%s|h%s|h",
|
||||
TEXT_MODE_A_STRING_TIMESTAMP = "%s> %s",
|
||||
TEXT_MODE_A_STRING_VALUE_SCHOOL = "(%s %s)",
|
||||
TEXT_MODE_A_STRING_VALUE_TYPE = "%s (%s)",
|
||||
TEXT_MODE_A_TIMESTAMP = "%H:%M:%S",
|
||||
TIMESTAMP_COMBATLOG_TOOLTIP = "전투 메시지에 시간을 표시합니다.",
|
||||
UNIT_COLORS = "대상 색:",
|
||||
UNIT_NAMES = "플레이어, NPC, 몬스터 이름",
|
||||
UNIT_NAMES_COMBATLOG_TOOLTIP = "플레이어, NPC, 몬스터 이름에 색을 입힙니다.",
|
||||
UNIT_NAMES_SHOW_BRACES_COMBATLOG_TOOLTIP = "이름에 괄호 표시",
|
||||
UNIT_YOU = "당신",
|
||||
UNIT_YOU_DEST = "당신",
|
||||
UNIT_YOU_DEST_POSSESSIVE = "당신",
|
||||
UNIT_YOU_SOURCE = "당신",
|
||||
UNIT_YOU_SOURCE_POSSESSIVE = "당신",
|
||||
USE_FULL_TEXT_MODE = "전체 문장으로 보기",
|
||||
}
|
||||
Vendored
+677
@@ -0,0 +1,677 @@
|
||||
-- Classic Era GlobalStrings (RU) that the combat log reads
|
||||
-- and the 1.12 client lacks. Generated; do not edit by hand.
|
||||
pfUI_locale["ruRU"]["combatlog"] = {
|
||||
ACTION_DAMAGE_SHIELD = "Урон",
|
||||
ACTION_DAMAGE_SHIELD_FULL_TEXT = "\"%2$s\" |3-1(%1$s) отражает %9$s |4единицу:единицы:единиц; %7$s на |3-3(%4$s)%6$s.",
|
||||
ACTION_DAMAGE_SHIELD_FULL_TEXT_NO_SOURCE = "\"%2$s\" отражает %9$s |4единицу:единицы:единиц; %7$s на |3-3(%4$s)%6$s.",
|
||||
ACTION_DAMAGE_SHIELD_MISSED = "Промах",
|
||||
ACTION_DAMAGE_SHIELD_MISSED_BLOCK = ": выстрел блокирован",
|
||||
ACTION_DAMAGE_SHIELD_MISSED_BLOCK_FULL_TEXT = "%4$s блокирует заклинание \"%2$s\" |3-1(%1$s)%6$s",
|
||||
ACTION_DAMAGE_SHIELD_MISSED_BLOCK_FULL_TEXT_NO_SOURCE = "%4$s блокирует заклинание \"%2$s\"%6$s.",
|
||||
ACTION_DAMAGE_SHIELD_MISSED_BLOCK_POSSESSIVE = "1",
|
||||
ACTION_DAMAGE_SHIELD_MISSED_DEFLECT = ": выстрел отклонен",
|
||||
ACTION_DAMAGE_SHIELD_MISSED_DEFLECT_FULL_TEXT = "%4$s отклоняет заклинание \"%2$s\" |3-1(%1$s).",
|
||||
ACTION_DAMAGE_SHIELD_MISSED_DEFLECT_FULL_TEXT_NO_SOURCE = "%4$s отклоняет заклинание \"%2$s\".",
|
||||
ACTION_DAMAGE_SHIELD_MISSED_DEFLECT_POSSESSIVE = "1",
|
||||
ACTION_DAMAGE_SHIELD_MISSED_DODGE = ": уклонение",
|
||||
ACTION_DAMAGE_SHIELD_MISSED_DODGE_FULL_TEXT = "%4$s уклоняется от заклинания \"%2$s\" |3-1(%1$s).",
|
||||
ACTION_DAMAGE_SHIELD_MISSED_DODGE_FULL_TEXT_NO_SOURCE = "%4$s уклоняется от заклинания \"%2$s\".",
|
||||
ACTION_DAMAGE_SHIELD_MISSED_DODGE_POSSESSIVE = "1",
|
||||
ACTION_DAMAGE_SHIELD_MISSED_EVADED = ": атака не достигла цели",
|
||||
ACTION_DAMAGE_SHIELD_MISSED_EVADED_FULL_TEXT = "Заклинание \"%2$s\" |3-1(%1$s) не достигает |3-1(%4$s).",
|
||||
ACTION_DAMAGE_SHIELD_MISSED_EVADED_FULL_TEXT_NO_SOURCE = "Заклинание \"%2$s\" не достигает |3-1(%4$s).",
|
||||
ACTION_DAMAGE_SHIELD_MISSED_EVADED_POSSESSIVE = "1",
|
||||
ACTION_DAMAGE_SHIELD_MISSED_FULL_TEXT = "\"%2$s\" |3-1(%1$s) не попадает по |3-2(%4$s).",
|
||||
ACTION_DAMAGE_SHIELD_MISSED_FULL_TEXT_NO_SOURCE = "\"%2$s\" не попадает по |3-2(%4$s).",
|
||||
ACTION_DAMAGE_SHIELD_MISSED_IMMUNE = ": цель невосприимчива",
|
||||
ACTION_DAMAGE_SHIELD_MISSED_IMMUNE_FULL_TEXT = "%4$s обладает невосприимчивостью к заклинанию \"%2$s\" |3-1(%1$s).",
|
||||
ACTION_DAMAGE_SHIELD_MISSED_IMMUNE_FULL_TEXT_NO_SOURCE = "%4$s обладает невосприимчивостью к заклинанию \"%2$s\".",
|
||||
ACTION_DAMAGE_SHIELD_MISSED_IMMUNE_POSSESSIVE = "1",
|
||||
ACTION_DAMAGE_SHIELD_MISSED_MISS = ": промах",
|
||||
ACTION_DAMAGE_SHIELD_MISSED_MISS_FULL_TEXT = "\"%2$s\" |3-1(%1$s) не попадает по |3-2(%4$s).",
|
||||
ACTION_DAMAGE_SHIELD_MISSED_MISS_FULL_TEXT_NO_SOURCE = "\"%2$s\" не попадает по |3-2(%4$s).",
|
||||
ACTION_DAMAGE_SHIELD_MISSED_MISS_POSSESSIVE = "1",
|
||||
ACTION_DAMAGE_SHIELD_MISSED_PARRY = ": выстрел парирован",
|
||||
ACTION_DAMAGE_SHIELD_MISSED_PARRY_FULL_TEXT = "%4$s парирует способность \"%2$s\" |3-1(%1$s).",
|
||||
ACTION_DAMAGE_SHIELD_MISSED_PARRY_FULL_TEXT_NO_SOURCE = "%4$s парирует способность \"%2$s\".",
|
||||
ACTION_DAMAGE_SHIELD_MISSED_PARRY_POSSESSIVE = "1",
|
||||
ACTION_DAMAGE_SHIELD_MISSED_POSSESSIVE = "1",
|
||||
ACTION_DAMAGE_SHIELD_MISSED_RESIST = ": сопротивление",
|
||||
ACTION_DAMAGE_SHIELD_MISSED_RESIST_FULL_TEXT = "%4$s полностью сопротивляется заклинанию \"%2$s\" |3-1(%1$s)%6$s",
|
||||
ACTION_DAMAGE_SHIELD_MISSED_RESIST_FULL_TEXT_NO_SOURCE = "%4$s полностью сопротивляется заклинанию \"%2$s\"%6$s",
|
||||
ACTION_DAMAGE_SHIELD_MISSED_RESIST_POSSESSIVE = "1",
|
||||
ACTION_DAMAGE_SHIELD_POSSESSIVE = "1",
|
||||
ACTION_DAMAGE_SPLIT = "Разделение урона",
|
||||
ACTION_DAMAGE_SPLIT_ABSORBED_FULL_TEXT = "%4$s поглощает урон от заклинания \"%2$s\" |3-1(%1$s) %6$s",
|
||||
ACTION_DAMAGE_SPLIT_FULL_TEXT = "\"%2$s\" |3-1(%1$s) наносит |3-2(%4$s) %9$s |4единицу:единицы:единиц; урона.",
|
||||
ACTION_DAMAGE_SPLIT_POSSESSIVE = "0",
|
||||
ACTION_DAMAGE_SPLIT_RESULT_FULL_TEXT = "\"%2$s\" |3-1(%1$s) наносит %9$s ед. урона |3-2(%4$s) %6$s",
|
||||
ACTION_ENCHANT_APPLIED = "зачаровано",
|
||||
ACTION_ENCHANT_APPLIED_FULL_TEXT = "%1$s накладывает чары \"%2$s\" на предмет \"%5$s\" |3-1(%4$s).",
|
||||
ACTION_ENCHANT_APPLIED_POSSESSIVE = "0",
|
||||
ACTION_ENCHANT_REMOVED = "чары развеялись",
|
||||
ACTION_ENCHANT_REMOVED_FULL_TEXT = "Эффект \"%2$s\" перестает действовать на предмете |3-1(%4$s) \"%5$s\".",
|
||||
ACTION_ENCHANT_REMOVED_POSSESSIVE = "0",
|
||||
ACTION_ENVIRONMENTAL_DAMAGE = "Урон",
|
||||
ACTION_ENVIRONMENTAL_DAMAGE_DROWNING = "Утопление",
|
||||
ACTION_ENVIRONMENTAL_DAMAGE_DROWNING_FULL_TEXT = "%4$s тонет и теряет %9$s |4единицу:единицы:единиц; здоровья.",
|
||||
ACTION_ENVIRONMENTAL_DAMAGE_DROWNING_POSSESSIVE = "0",
|
||||
ACTION_ENVIRONMENTAL_DAMAGE_FALLING = "Падение",
|
||||
ACTION_ENVIRONMENTAL_DAMAGE_FALLING_FULL_TEXT = "%4$s падает и теряет %9$s |4единицу:единицы:единиц; здоровья.",
|
||||
ACTION_ENVIRONMENTAL_DAMAGE_FALLING_POSSESSIVE = "0",
|
||||
ACTION_ENVIRONMENTAL_DAMAGE_FATIGUE = "Усталость",
|
||||
ACTION_ENVIRONMENTAL_DAMAGE_FATIGUE_FULL_TEXT = "%4$s от усталости теряет %9$s |4единицу:единицы:единиц; здоровья.",
|
||||
ACTION_ENVIRONMENTAL_DAMAGE_FATIGUE_POSSESSIVE = "0",
|
||||
ACTION_ENVIRONMENTAL_DAMAGE_FIRE = "Огонь",
|
||||
ACTION_ENVIRONMENTAL_DAMAGE_FIRE_FULL_TEXT = "%4$s получает %9$s |4единицу:единицы:единиц; урона от огня.",
|
||||
ACTION_ENVIRONMENTAL_DAMAGE_FIRE_POSSESSIVE = "0",
|
||||
ACTION_ENVIRONMENTAL_DAMAGE_FULL_TEXT = "%4$s теряет %9$s |4единицу:единицы:единиц; здоровья из-за опасностей окружающего мира.",
|
||||
ACTION_ENVIRONMENTAL_DAMAGE_LAVA = "Лава",
|
||||
ACTION_ENVIRONMENTAL_DAMAGE_LAVA_FULL_TEXT = "%4$s погружается в лаву и теряет %9$s |4единицу:единицы:единиц; здоровья. %6$s",
|
||||
ACTION_ENVIRONMENTAL_DAMAGE_LAVA_POSSESSIVE = "0",
|
||||
ACTION_ENVIRONMENTAL_DAMAGE_POSSESSIVE = "0",
|
||||
ACTION_ENVIRONMENTAL_DAMAGE_SLIME = "Слизь",
|
||||
ACTION_ENVIRONMENTAL_DAMAGE_SLIME_FULL_TEXT = "%4$s погружается в слизь и теряет %9$s |4единицу:единицы:единиц; здоровья. %6$s",
|
||||
ACTION_ENVIRONMENTAL_DAMAGE_SLIME_POSSESSIVE = "0",
|
||||
ACTION_PARTY_KILL = "Убийство",
|
||||
ACTION_PARTY_KILL_FULL_TEXT = "%1$s убивает |3-3(%4$s)!",
|
||||
ACTION_PARTY_KILL_POSSESSIVE = "0",
|
||||
ACTION_PARTY_KILL_UNCONSCIOUS = "нейтрализован",
|
||||
ACTION_PARTY_KILL_UNCONSCIOUS_FULL_TEXT = "Игрок %1$s нейтрализовал |3-3(%4$s)!",
|
||||
ACTION_PARTY_KILL_UNCONSCIOUS_POSSESSIVE = "0",
|
||||
ACTION_RANGED = "Дальний бой",
|
||||
ACTION_RANGE_DAMAGE = "Попадание",
|
||||
ACTION_RANGE_DAMAGE_FULL_TEXT = "Атака дальнего боя |3-1(%1$s) бьет по |3-2(%4$s) на %5$s%6$s.",
|
||||
ACTION_RANGE_DAMAGE_FULL_TEXT_NO_SOURCE = "Атака дальнего боя бьет по |3-2(%4$s) на %5$s%6$s.",
|
||||
ACTION_RANGE_DAMAGE_POSSESSIVE = "1",
|
||||
ACTION_RANGE_MISSED = "Промах",
|
||||
ACTION_RANGE_MISSED_ABSORB = ": поглощение",
|
||||
ACTION_RANGE_MISSED_ABSORB_FULL_TEXT = "%4$s поглощает выстрел |3-1(%1$s)%6$s.",
|
||||
ACTION_RANGE_MISSED_ABSORB_POSSESSIVE = "1",
|
||||
ACTION_RANGE_MISSED_BLOCK = ": выстрел блокирован",
|
||||
ACTION_RANGE_MISSED_BLOCK_FULL_TEXT = "%1$s блокирует выстрел |3-1(%4$s)%6$s.",
|
||||
ACTION_RANGE_MISSED_BLOCK_POSSESSIVE = "1",
|
||||
ACTION_RANGE_MISSED_DEFLECT = ": выстрел отклонен",
|
||||
ACTION_RANGE_MISSED_DEFLECT_FULL_TEXT = "%4$s отклоняет выстрел |3-1(%1$s).",
|
||||
ACTION_RANGE_MISSED_DEFLECT_POSSESSIVE = "1",
|
||||
ACTION_RANGE_MISSED_DODGE = ": уклонение",
|
||||
ACTION_RANGE_MISSED_DODGE_FULL_TEXT = "%4$s уклоняется от выстрела |3-1(%1$s).",
|
||||
ACTION_RANGE_MISSED_DODGE_POSSESSIVE = "1",
|
||||
ACTION_RANGE_MISSED_EVADE = ": атака не достигла цели",
|
||||
ACTION_RANGE_MISSED_EVADE_FULL_TEXT = "Выстрел |3-1(%1$s) не достигает |3-1(%4$s).",
|
||||
ACTION_RANGE_MISSED_EVADE_POSSESSIVE = "1",
|
||||
ACTION_RANGE_MISSED_FULL_TEXT = "%1$s не попадает по |3-2(%4$s).",
|
||||
ACTION_RANGE_MISSED_IMMUNE = ": цель невосприимчива",
|
||||
ACTION_RANGE_MISSED_IMMUNE_FULL_TEXT = "%4$s обладает невосприимчивостью к выстрелу |3-1(%1$s).",
|
||||
ACTION_RANGE_MISSED_IMMUNE_POSSESSIVE = "1",
|
||||
ACTION_RANGE_MISSED_MISFIRE = "Промах.",
|
||||
ACTION_RANGE_MISSED_MISFIRE_FULL_TEXT = "Выстрел 3-1(%1$s) не попадает по |3-2(%4$s).",
|
||||
ACTION_RANGE_MISSED_MISFIRE_POSSESSIVE = "1",
|
||||
ACTION_RANGE_MISSED_MISS = ": промах",
|
||||
ACTION_RANGE_MISSED_MISS_FULL_TEXT = "%1$s не попадает по |3-2(%4$s).",
|
||||
ACTION_RANGE_MISSED_MISS_POSSESSIVE = "1",
|
||||
ACTION_RANGE_MISSED_PARRY = ": выстрел парирован",
|
||||
ACTION_RANGE_MISSED_PARRY_FULL_TEXT = "%4$s парирует выстрел |3-1(%1$s).",
|
||||
ACTION_RANGE_MISSED_PARRY_POSSESSIVE = "1",
|
||||
ACTION_RANGE_MISSED_POSSESSIVE = "1",
|
||||
ACTION_RANGE_MISSED_RESIST = ": сопротивление",
|
||||
ACTION_RANGE_MISSED_RESIST_FULL_TEXT = "%4$s полностью сопротивляется выстрелу |3-1(%1$s)%6$s.",
|
||||
ACTION_RANGE_MISSED_RESIST_POSSESSIVE = "1",
|
||||
ACTION_SPELL_AURA_APPLIED = "накладывается",
|
||||
ACTION_SPELL_AURA_APPLIED_BUFF = "накладывается",
|
||||
ACTION_SPELL_AURA_APPLIED_BUFF_FULL_TEXT = "На |3-3(%4$s) накладывается эффект \"%2$s\" |3-1(%1$s).",
|
||||
ACTION_SPELL_AURA_APPLIED_BUFF_FULL_TEXT_NO_SOURCE = "%4$s обретает %2$s.",
|
||||
ACTION_SPELL_AURA_APPLIED_BUFF_MASTER = "2",
|
||||
ACTION_SPELL_AURA_APPLIED_BUFF_POSSESSIVE = "1",
|
||||
ACTION_SPELL_AURA_APPLIED_BUFF_WITH_POINTS_FULL_TEXT = "На |3-3(%4$s) накладывается эффект \"%2$s\" |3-1(%1$s). %11$s",
|
||||
ACTION_SPELL_AURA_APPLIED_BUFF_WITH_POINTS_FULL_TEXT_NO_SOURCE = "На |3-3(%4$s) накладывается эффект \"%2$s\". %11$s",
|
||||
ACTION_SPELL_AURA_APPLIED_DEBUFF = "Негативный эффект",
|
||||
ACTION_SPELL_AURA_APPLIED_DEBUFF_FULL_TEXT = "%4$s находится под воздействием эффекта \"%2$s\" |3-1(%1$s).",
|
||||
ACTION_SPELL_AURA_APPLIED_DEBUFF_FULL_TEXT_NO_SOURCE = "%4$s находится под воздействием эффекта \"%2$s\".",
|
||||
ACTION_SPELL_AURA_APPLIED_DEBUFF_MASTER = "1",
|
||||
ACTION_SPELL_AURA_APPLIED_DEBUFF_POSSESSIVE = "1",
|
||||
ACTION_SPELL_AURA_APPLIED_DEBUFF_WITH_POINTS_FULL_TEXT = "%4$s находится под воздействием эффекта \"%2$s\" |3-1(%1$s). %11$s",
|
||||
ACTION_SPELL_AURA_APPLIED_DEBUFF_WITH_POINTS_FULL_TEXT_NO_SOURCE = "%4$s находится под воздействием эффекта \"%2$s\". %11$s",
|
||||
ACTION_SPELL_AURA_APPLIED_DOSE = "Суммирование",
|
||||
ACTION_SPELL_AURA_APPLIED_DOSE_BUFF = "Суммирование",
|
||||
ACTION_SPELL_AURA_APPLIED_DOSE_BUFF_FULL_TEXT = "На |3-3(%4$s) накладывается эффект \"%2$s\" |3-1(%1$s) (%9$s).",
|
||||
ACTION_SPELL_AURA_APPLIED_DOSE_BUFF_FULL_TEXT_NO_SOURCE = "%4$s получает %2$s (%9$s).",
|
||||
ACTION_SPELL_AURA_APPLIED_DOSE_BUFF_POSSESSIVE = "1",
|
||||
ACTION_SPELL_AURA_APPLIED_DOSE_DEBUFF = "Негативный эффект",
|
||||
ACTION_SPELL_AURA_APPLIED_DOSE_DEBUFF_FULL_TEXT = "%4$s находится под воздействием эффекта \"%2$s\" |3-1(%1$s) (%9$s).",
|
||||
ACTION_SPELL_AURA_APPLIED_DOSE_DEBUFF_FULL_TEXT_NO_SOURCE = "%4$s находится под воздействием %2$s (%9$s).",
|
||||
ACTION_SPELL_AURA_APPLIED_DOSE_DEBUFF_POSSESSIVE = "1",
|
||||
ACTION_SPELL_AURA_APPLIED_MASTER = "2",
|
||||
ACTION_SPELL_AURA_APPLIED_POSSESSIVE = "1",
|
||||
ACTION_SPELL_AURA_BROKEN = "прервано",
|
||||
ACTION_SPELL_AURA_BROKEN_BUFF = "прервано",
|
||||
ACTION_SPELL_AURA_BROKEN_BUFF_FULL_TEXT = "\"%4$s\" |3-1(%2$s) снято |3-4(%1$s).",
|
||||
ACTION_SPELL_AURA_BROKEN_BUFF_FULL_TEXT_NO_SOURCE = "Кто-то прервал действие заклинания \"%2$s\" |3-1(%1$s).",
|
||||
ACTION_SPELL_AURA_BROKEN_BUFF_POSSESSIVE = "0",
|
||||
ACTION_SPELL_AURA_BROKEN_DEBUFF = "прервано",
|
||||
ACTION_SPELL_AURA_BROKEN_DEBUFF_FULL_TEXT = "\"%4$s\" |3-1(%2$s) снято |3-4(%1$s).",
|
||||
ACTION_SPELL_AURA_BROKEN_DEBUFF_FULL_TEXT_NO_SOURCE = "Кто-то прервал действие заклинания \"%2$s\" |3-1(%1$s).",
|
||||
ACTION_SPELL_AURA_BROKEN_DEBUFF_POSSESSIVE = "0",
|
||||
ACTION_SPELL_AURA_BROKEN_SPELL_BUFF = "прервано",
|
||||
ACTION_SPELL_AURA_BROKEN_SPELL_BUFF_FULL_TEXT = "%5$s |3-1(%1$s) прекращает действие эффекта \"%2$s\" на |3-3(%4$s).",
|
||||
ACTION_SPELL_AURA_BROKEN_SPELL_BUFF_FULL_TEXT_NO_SOURCE = "%5$s прерывает действие \"%2$s\" |3-1(%4$s).",
|
||||
ACTION_SPELL_AURA_BROKEN_SPELL_BUFF_POSSESSIVE = "1",
|
||||
ACTION_SPELL_AURA_BROKEN_SPELL_DEBUFF = "прервано",
|
||||
ACTION_SPELL_AURA_BROKEN_SPELL_DEBUFF_FULL_TEXT = "%5$s |3-1(%1$s) прекращает действие эффекта \"%2$s\" на |3-3(%4$s).",
|
||||
ACTION_SPELL_AURA_BROKEN_SPELL_DEBUFF_FULL_TEXT_NO_SOURCE = "%5$s прерывает действие \"%2$s\" |3-1(%4$s).",
|
||||
ACTION_SPELL_AURA_BROKEN_SPELL_DEBUFF_POSSESSIVE = "1",
|
||||
ACTION_SPELL_AURA_REFRESH = "обновлено",
|
||||
ACTION_SPELL_AURA_REFRESH_BUFF = "обновлено",
|
||||
ACTION_SPELL_AURA_REFRESH_BUFF_FULL_TEXT = "Эффект \"%2$s\" |3-1(%1$s) обновлен на |3-5(%4$s).",
|
||||
ACTION_SPELL_AURA_REFRESH_BUFF_FULL_TEXT_NO_SOURCE = "Эффект \"%2$s\" обновлен на |3-5(%4$s).",
|
||||
ACTION_SPELL_AURA_REFRESH_BUFF_MASTER = "2",
|
||||
ACTION_SPELL_AURA_REFRESH_BUFF_POSSESSIVE = "1",
|
||||
ACTION_SPELL_AURA_REFRESH_BUFF_WITH_POINTS_FULL_TEXT = "Эффект \"%2$s\" |3-1(%1$s) обновлен на |3-5(%4$s). %11$s",
|
||||
ACTION_SPELL_AURA_REFRESH_BUFF_WITH_POINTS_FULL_TEXT_NO_SOURCE = "Эффект \"%2$s\" обновлен на |3-5(%4$s). %11$s",
|
||||
ACTION_SPELL_AURA_REFRESH_DEBUFF = "обновлено",
|
||||
ACTION_SPELL_AURA_REFRESH_DEBUFF_FULL_TEXT = "Эффект \"%2$s\" |3-1(%1$s) обновлен на |3-5(%4$s).",
|
||||
ACTION_SPELL_AURA_REFRESH_DEBUFF_FULL_TEXT_NO_SOURCE = "Эффект \"%2$s\" обновлен на |3-5(%4$s).",
|
||||
ACTION_SPELL_AURA_REFRESH_DEBUFF_MASTER = "1",
|
||||
ACTION_SPELL_AURA_REFRESH_DEBUFF_POSSESSIVE = "1",
|
||||
ACTION_SPELL_AURA_REFRESH_DEBUFF_WITH_POINTS_FULL_TEXT = "Эффект \"%2$s\" |3-1(%1$s) обновлен на |3-5(%4$s). %11$s",
|
||||
ACTION_SPELL_AURA_REFRESH_DEBUFF_WITH_POINTS_FULL_TEXT_NO_SOURCE = "Эффект \"%2$s\" обновлен на |3-5(%4$s). %11$s",
|
||||
ACTION_SPELL_AURA_REFRESH_MASTER = "2",
|
||||
ACTION_SPELL_AURA_REMOVED = "Снятие",
|
||||
ACTION_SPELL_AURA_REMOVED_BUFF = "Окончание действия",
|
||||
ACTION_SPELL_AURA_REMOVED_BUFF_FULL_TEXT = "Действие эффекта \"%2$s\", наложенного |3-4(%1$s) на |3-3(%4$s), заканчивается.",
|
||||
ACTION_SPELL_AURA_REMOVED_BUFF_FULL_TEXT_NO_SOURCE = "Действие эффекта \"%2$s\" на |3-2(%4$s) заканчивается.",
|
||||
ACTION_SPELL_AURA_REMOVED_BUFF_POSSESSIVE = "1",
|
||||
ACTION_SPELL_AURA_REMOVED_BUFF_WITH_POINTS_FULL_TEXT = "Действие эффекта \"%2$s\", наложенного |3-4(%1$s) на |3-3(%4$s), заканчивается. %11$s",
|
||||
ACTION_SPELL_AURA_REMOVED_BUFF_WITH_POINTS_FULL_TEXT_NO_SOURCE = "Действие эффекта \"%2$s\", наложенного на |3-3(%4$s), заканчивается. %11$s",
|
||||
ACTION_SPELL_AURA_REMOVED_DEBUFF = "Прекращение действия",
|
||||
ACTION_SPELL_AURA_REMOVED_DEBUFF_FULL_TEXT = "Эффект \"%2$s\" |3-1(%1$s), наложенный на |3-3(%4$s), рассеивается.",
|
||||
ACTION_SPELL_AURA_REMOVED_DEBUFF_FULL_TEXT_NO_SOURCE = "%2$s рассеивается на %4$s.",
|
||||
ACTION_SPELL_AURA_REMOVED_DEBUFF_POSSESSIVE = "1",
|
||||
ACTION_SPELL_AURA_REMOVED_DEBUFF_WITH_POINTS_FULL_TEXT = "Эффект \"%2$s\" |3-1(%1$s), наложенный на |3-3(%4$s), рассеивается. %11$s",
|
||||
ACTION_SPELL_AURA_REMOVED_DEBUFF_WITH_POINTS_FULL_TEXT_NO_SOURCE = "Эффект \"%2$s\", наложенный на |3-3(%4$s), рассеивается. %11$s",
|
||||
ACTION_SPELL_AURA_REMOVED_DOSE = "Сокращение",
|
||||
ACTION_SPELL_AURA_REMOVED_DOSE_BUFF = "Сокращение",
|
||||
ACTION_SPELL_AURA_REMOVED_DOSE_BUFF_FULL_TEXT = "Действие эффекта |3-1(%1$s) \"%2$s\" (%9$s) проходит.",
|
||||
ACTION_SPELL_AURA_REMOVED_DOSE_BUFF_FULL_TEXT_NO_SOURCE = "Действие эффекта \"%2$s\" (%9$s) ослабляется.",
|
||||
ACTION_SPELL_AURA_REMOVED_DOSE_BUFF_POSSESSIVE = "1",
|
||||
ACTION_SPELL_AURA_REMOVED_DOSE_DEBUFF = "Уменьшение",
|
||||
ACTION_SPELL_AURA_REMOVED_DOSE_DEBUFF_FULL_TEXT = "Действие эффекта \"%2$s\" |3-1(%1$s) (%9$s) заканчивается.",
|
||||
ACTION_SPELL_AURA_REMOVED_DOSE_DEBUFF_FULL_TEXT_NO_SOURCE = "\"%2$s\" (%9$s) прекращает свое действие.",
|
||||
ACTION_SPELL_AURA_REMOVED_DOSE_DEBUFF_POSSESSIVE = "1",
|
||||
ACTION_SPELL_AURA_REMOVED_FULL_TEXT = "С |3-1(%4$s) снято заклинание \"%2$s\" |3-1(%1$s).",
|
||||
ACTION_SPELL_AURA_REMOVED_FULL_TEXT_NO_SOURCE = "С |3-1(%4$s) снято заклинание \"%2$s\" |3-1(%1$s).",
|
||||
ACTION_SPELL_AURA_REMOVED_POSSESSIVE = "1",
|
||||
ACTION_SPELL_BUILDING_DAMAGE = "бьет",
|
||||
ACTION_SPELL_BUILDING_DAMAGE_FULL_TEXT = "%2$s |3-1(%1$s) наносит |3-2(%4$s) %5$s%6$s.",
|
||||
ACTION_SPELL_BUILDING_DAMAGE_FULL_TEXT_NO_SOURCE = "%2$s наносит |3-2(%4$s) %5$s%6$s",
|
||||
ACTION_SPELL_BUILDING_DAMAGE_MASTER = "1",
|
||||
ACTION_SPELL_BUILDING_DAMAGE_POSSESSIVE = "1",
|
||||
ACTION_SPELL_BUILDING_HEAL = "отремонтировано",
|
||||
ACTION_SPELL_BUILDING_HEAL_FULL_TEXT = "%2$s |3-1(%1$s) ремонтирует %4$s на %9$s ед.%6$s.",
|
||||
ACTION_SPELL_BUILDING_HEAL_FULL_TEXT_NO_SOURCE = "%2$s ремонтирует |3-3(%4$s) на %9$s ед.%6$s",
|
||||
ACTION_SPELL_BUILDING_HEAL_POSSESSIVE = "1",
|
||||
ACTION_SPELL_CAST_FAILED = "Неудача.",
|
||||
ACTION_SPELL_CAST_FAILED_FULL_TEXT = "Заклинание \"%2$s\" |3-1(%1$s) не сработало. %6$s",
|
||||
ACTION_SPELL_CAST_FAILED_MASTER = "1",
|
||||
ACTION_SPELL_CAST_FAILED_POSSESSIVE = "1",
|
||||
ACTION_SPELL_CAST_START = "Начало применения",
|
||||
ACTION_SPELL_CAST_START_FULL_TEXT = "%1$s начинает применять способность %2$s к |3-2(%4$s).",
|
||||
ACTION_SPELL_CAST_START_FULL_TEXT_NO_DEST = "%1$s начинает применять способность %2$s.",
|
||||
ACTION_SPELL_CAST_START_FULL_TEXT_NO_SOURCE = "Что-то начинает применять способность %2$s к |3-2(%4$s).",
|
||||
ACTION_SPELL_CAST_START_MASTER = "2",
|
||||
ACTION_SPELL_CAST_START_POSSESSIVE = "0",
|
||||
ACTION_SPELL_CAST_SUCCESS = "Применение",
|
||||
ACTION_SPELL_CAST_SUCCESS_FULL_TEXT = "%1$s применяет заклинание \"%2$s\" на |3-3(%4$s).",
|
||||
ACTION_SPELL_CAST_SUCCESS_FULL_TEXT_NO_DEST = "%1$s применяет заклинание \"%2$s\".",
|
||||
ACTION_SPELL_CAST_SUCCESS_FULL_TEXT_NO_SOURCE = "На |3-3(%4$s) накладывается эффект \"%2$s\".",
|
||||
ACTION_SPELL_CAST_SUCCESS_MASTER = "2",
|
||||
ACTION_SPELL_CAST_SUCCESS_POSSESSIVE = "0",
|
||||
ACTION_SPELL_CREATE = "создает",
|
||||
ACTION_SPELL_CREATE_FULL_TEXT = "\"%2$s\" |3-1(%1$s) создает предмет \"%4$s\"%6$s.",
|
||||
ACTION_SPELL_CREATE_FULL_TEXT_NO_SOURCE = "\"%2$s\" создает \"%4$s\"%6$s.",
|
||||
ACTION_SPELL_CREATE_POSSESSIVE = "1",
|
||||
ACTION_SPELL_DAMAGE = "Попадание",
|
||||
ACTION_SPELL_DAMAGE_FULL_TEXT = "\"%2$s\" |3-1(%1$s) наносит |3-2(%4$s) %5$s%6$s.",
|
||||
ACTION_SPELL_DAMAGE_FULL_TEXT_NO_SOURCE = "\"%2$s\" наносит |3-2(%4$s) урон: %5$s. %6$s",
|
||||
ACTION_SPELL_DAMAGE_MASTER = "1",
|
||||
ACTION_SPELL_DAMAGE_POSSESSIVE = "1",
|
||||
ACTION_SPELL_DISPEL = "Развеивание",
|
||||
ACTION_SPELL_DISPEL_BUFF = "Развеивание",
|
||||
ACTION_SPELL_DISPEL_BUFF_FULL_TEXT = "%5$s |3-1(%4$s) рассеивается заклинанием \"%2$s\" |3-1(%1$s).\"",
|
||||
ACTION_SPELL_DISPEL_BUFF_FULL_TEXT_NO_SOURCE = "\"%2$s\" рассеивает заклинание \"%5$s\" |3-1(%4$s).",
|
||||
ACTION_SPELL_DISPEL_BUFF_POSSESSIVE = "1",
|
||||
ACTION_SPELL_DISPEL_DEBUFF = "Очищение",
|
||||
ACTION_SPELL_DISPEL_DEBUFF_FULL_TEXT = "\"%2$s\" |3-1(%1$s) очищает заклинание \"%5$s\" |3-1(%4$s).",
|
||||
ACTION_SPELL_DISPEL_DEBUFF_FULL_TEXT_NO_SOURCE = "\"%2$s\" очищает заклинание \"%5$s\" |3-1(%4$s).",
|
||||
ACTION_SPELL_DISPEL_DEBUFF_POSSESSIVE = "1",
|
||||
ACTION_SPELL_DISPEL_FAILED = "Не удалось развеять.",
|
||||
ACTION_SPELL_DISPEL_FAILED_FULL_TEXT = "Заклинанию |3-1(%1$s) \"%2$s\" не удалось развеять заклинание |3-1(%4$s) \"%5$s\".",
|
||||
ACTION_SPELL_DISPEL_FAILED_FULL_TEXT_NO_SOURCE = "Заклинанию \"%2$s\" не удается развеять заклинание \"%5$s\" |3-1(%4$s).",
|
||||
ACTION_SPELL_DISPEL_FAILED_POSSESSIVE = "1",
|
||||
ACTION_SPELL_DISPEL_POSSESSIVE = "1",
|
||||
ACTION_SPELL_DRAIN = "Похищение",
|
||||
ACTION_SPELL_DRAIN_FULL_TEXT = "\"%1$s\" |3-1(%2$s) отнимает %9$s |4единицу:единицы:единиц; |3-1(%8$s) у |3-1(%4$s).",
|
||||
ACTION_SPELL_DRAIN_FULL_TEXT_NO_SOURCE = " %2$s отнимает у |3-1(%4$s) %9$s |4единицу:единицы:единиц; |3-1(%8$s ).",
|
||||
ACTION_SPELL_DRAIN_POSSESSIVE = "1",
|
||||
ACTION_SPELL_DURABILITY_DAMAGE = "Повреждение предмета",
|
||||
ACTION_SPELL_DURABILITY_DAMAGE_ALL = "Повреждение всех предметов",
|
||||
ACTION_SPELL_DURABILITY_DAMAGE_ALL_FULL_TEXT = "\"%2$s\" |3-1(%1$s) наносит урон |3-2(%4$s): повреждаются все предметы.",
|
||||
ACTION_SPELL_DURABILITY_DAMAGE_ALL_POSSESSIVE = "1",
|
||||
ACTION_SPELL_DURABILITY_DAMAGE_FULL_TEXT = "\"%2$s\" |3-1(%1$s) наносит урон |3-2(%4$s). Поврежден предмет: %5$s.",
|
||||
ACTION_SPELL_DURABILITY_DAMAGE_POSSESSIVE = "1",
|
||||
ACTION_SPELL_ENERGIZE = "Энергия",
|
||||
ACTION_SPELL_ENERGIZE_FULL_TEXT = "%4$s получает %9$s |4единицу:единицы:единиц; |3-1(%8$s) от заклинания \"%2$s\" |3-1(%1$s).\"",
|
||||
ACTION_SPELL_ENERGIZE_FULL_TEXT_NO_SOURCE = "%4$s получает %9$s |4единицу:единицы:единиц; |3-1(%8$s) благодаря заклинанию \"%2$s\".",
|
||||
ACTION_SPELL_ENERGIZE_POSSESSIVE = "1",
|
||||
ACTION_SPELL_ENERGIZE_RESULT = "Получено %9$s |4единица:единицы:единиц; %8$s",
|
||||
ACTION_SPELL_EXTRA_ATTACKS = "Дополнительные атаки",
|
||||
ACTION_SPELL_EXTRA_ATTACKS_FULL_TEXT = "\"%2$s\" дает |3-2(\"%1$s) %9$s |4дополнительную атаку:дополнительных атаки:дополнительных атак;.",
|
||||
ACTION_SPELL_EXTRA_ATTACKS_FULL_TEXT_NO_SOURCE = "\"%2$s\" дает %9$s |4дополнительную атаку:дополнительных атаки:дополнительных атак;.",
|
||||
ACTION_SPELL_EXTRA_ATTACKS_POSSESSIVE = "1",
|
||||
ACTION_SPELL_HEAL = "Лечение",
|
||||
ACTION_SPELL_HEAL_FULL_TEXT = "\"%2$s\" |3-1(%1$s) исцеляет |3-3(%4$s) на %9$s |4единицу:единицы:единиц; здоровья%6$s.",
|
||||
ACTION_SPELL_HEAL_FULL_TEXT_NO_SOURCE = "\"%2$s\" исцеляет |3-3(%4$s) на %9$s |4единицу:единицы:единиц; %6$s.",
|
||||
ACTION_SPELL_HEAL_POSSESSIVE = "1",
|
||||
ACTION_SPELL_INSTAKILL = "Убийство",
|
||||
ACTION_SPELL_INSTAKILL_FULL_TEXT = "\"%2$s\" |3-1(%1$s) мгновенно убивает |3-3(%4$s).",
|
||||
ACTION_SPELL_INSTAKILL_FULL_TEXT_NO_SOURCE = "\"%2$s\" мгновенно убивает |3-3(%4$s).",
|
||||
ACTION_SPELL_INSTAKILL_POSSESSIVE = "1",
|
||||
ACTION_SPELL_INSTAKILL_UNCONSCIOUS = "нейтрализован",
|
||||
ACTION_SPELL_INSTAKILL_UNCONSCIOUS_FULL_TEXT = "%1$s %2$s нейтрализует |3-3(%4$s).",
|
||||
ACTION_SPELL_INSTAKILL_UNCONSCIOUS_FULL_TEXT_NO_SOURCE = "%2$s нейтрализует |3-3(%4$s).",
|
||||
ACTION_SPELL_INSTAKILL_UNCONSCIOUS_POSSESSIVE = "1",
|
||||
ACTION_SPELL_INTERRUPT = "прерывание",
|
||||
ACTION_SPELL_INTERRUPT_FULL_TEXT = "\"%2$s\" |3-1(%1$s) прерывает заклинание \"%5$s\" |3-1(%4$s).",
|
||||
ACTION_SPELL_INTERRUPT_FULL_TEXT_NO_SOURCE = "\"%2$s\" прерывает заклинание \"%5$s\" |3-1(%4$s).",
|
||||
ACTION_SPELL_INTERRUPT_POSSESSIVE = "1",
|
||||
ACTION_SPELL_LEECH = "Похищение",
|
||||
ACTION_SPELL_LEECH_FULL_TEXT = "\"%2$s\" |3-1(%1$s) отнимает %9$s |4единицу:единицы:единиц; |3-1(%8$s) из |3-1(%4$s). %1$s получает %10$s |4единицу:единицы:единиц; |3-1(%8$s).",
|
||||
ACTION_SPELL_LEECH_FULL_TEXT_NO_SOURCE = "\"%2$s\" отнимает %9$s |4единицу:единицы:единиц; |3-1(%8$s) у |3-1(%4$s).",
|
||||
ACTION_SPELL_LEECH_POSSESSIVE = "1",
|
||||
ACTION_SPELL_LEECH_RESULT = "Получено %10$s |4единица:единицы:единиц; |3-1(%8$s)",
|
||||
ACTION_SPELL_MISSED = "Промах",
|
||||
ACTION_SPELL_MISSED_ABSORB = "Поглощение",
|
||||
ACTION_SPELL_MISSED_ABSORB_FULL_TEXT = "\"%2$s\" |3-1(%1$s) поглощается |3-4(%4$s)%6$s",
|
||||
ACTION_SPELL_MISSED_ABSORB_FULL_TEXT_NO_SOURCE = "%4$s поглощает заклинание \"%2$s\"%6$s",
|
||||
ACTION_SPELL_MISSED_ABSORB_POSSESSIVE = "1",
|
||||
ACTION_SPELL_MISSED_BLOCK = "Блок",
|
||||
ACTION_SPELL_MISSED_BLOCK_FULL_TEXT = "%4$s блокирует заклинание \"%2$s\" |3-1(%1$s)%6$s",
|
||||
ACTION_SPELL_MISSED_BLOCK_FULL_TEXT_NO_SOURCE = "%4$s блокирует заклинание \"%2$s\"%6$s.",
|
||||
ACTION_SPELL_MISSED_BLOCK_POSSESSIVE = "1",
|
||||
ACTION_SPELL_MISSED_DEFLECT = "Отклонение",
|
||||
ACTION_SPELL_MISSED_DEFLECT_FULL_TEXT = "%4$s отклоняет заклинание \"%2$s\" |3-1(%1$s).",
|
||||
ACTION_SPELL_MISSED_DEFLECT_FULL_TEXT_NO_SOURCE = "%4$s отклоняет заклинание \"%2$s\".",
|
||||
ACTION_SPELL_MISSED_DEFLECT_POSSESSIVE = "1",
|
||||
ACTION_SPELL_MISSED_DODGE = "Уклонение",
|
||||
ACTION_SPELL_MISSED_DODGE_FULL_TEXT = "%4$s уклоняется от заклинания \"%2$s\" |3-1(%1$s).",
|
||||
ACTION_SPELL_MISSED_DODGE_FULL_TEXT_NO_SOURCE = "%4$s уклоняется от заклинания \"%2$s\".",
|
||||
ACTION_SPELL_MISSED_DODGE_POSSESSIVE = "1",
|
||||
ACTION_SPELL_MISSED_EVADE = "Атака не достигла цели",
|
||||
ACTION_SPELL_MISSED_EVADE_FULL_TEXT = "Заклинание \"%2$s\" |3-1(%1$s) не достигает |3-1(%4$s).",
|
||||
ACTION_SPELL_MISSED_EVADE_FULL_TEXT_NO_SOURCE = "Заклинание \"%2$s\" не достигает |3-1(%4$s).",
|
||||
ACTION_SPELL_MISSED_EVADE_POSSESSIVE = "1",
|
||||
ACTION_SPELL_MISSED_FULL_TEXT = "\"%2$s\" |3-1(%1$s) не попадает по |3-2(%4$s).",
|
||||
ACTION_SPELL_MISSED_FULL_TEXT_NO_SOURCE = "\"%2$s\" не попадает по |3-2(%4$s).",
|
||||
ACTION_SPELL_MISSED_IMMUNE = "Невосприимчивость",
|
||||
ACTION_SPELL_MISSED_IMMUNE_FULL_TEXT = "%4$s обладает невосприимчивостью к заклинанию \"%2$s\" |3-1(%1$s).",
|
||||
ACTION_SPELL_MISSED_IMMUNE_FULL_TEXT_NO_SOURCE = "%4$s обладает невосприимчивостью к заклинанию \"%2$s\".",
|
||||
ACTION_SPELL_MISSED_MISFIRE = "Промах",
|
||||
ACTION_SPELL_MISSED_MISFIRE_FULL_TEXT = "\"%1$s\" |3-1(%2$s) не попадает по |3-2(%4$s).",
|
||||
ACTION_SPELL_MISSED_MISFIRE_FULL_TEXT_NO_SOURCE = "\"%2$s\" не попадает по |3-2(%4$s).",
|
||||
ACTION_SPELL_MISSED_MISFIRE_POSSESSIVE = "1",
|
||||
ACTION_SPELL_MISSED_MISS = "Промах",
|
||||
ACTION_SPELL_MISSED_MISS_FULL_TEXT = "\"%2$s\" |3-1(%1$s) не попадает по |3-2(%4$s).",
|
||||
ACTION_SPELL_MISSED_MISS_FULL_TEXT_NO_SOURCE = "\"%2$s\" не попадает по |3-2(%4$s).",
|
||||
ACTION_SPELL_MISSED_MISS_POSSESSIVE = "1",
|
||||
ACTION_SPELL_MISSED_PARRY = "Парирование",
|
||||
ACTION_SPELL_MISSED_PARRY_FULL_TEXT = "%4$s парирует способность \"%2$s\" |3-1(%1$s).",
|
||||
ACTION_SPELL_MISSED_PARRY_FULL_TEXT_NO_SOURCE = "%4$s парирует способность \"%2$s\".",
|
||||
ACTION_SPELL_MISSED_PARRY_POSSESSIVE = "1",
|
||||
ACTION_SPELL_MISSED_POSSESSIVE = "1",
|
||||
ACTION_SPELL_MISSED_REFLECT = "отражение",
|
||||
ACTION_SPELL_MISSED_REFLECT_FULL_TEXT = "%4$s отражает заклинание \"%2$s\" |3-1(%1$s).",
|
||||
ACTION_SPELL_MISSED_REFLECT_FULL_TEXT_NO_SOURCE = "%4$s отражает заклинание \"%2$s\".",
|
||||
ACTION_SPELL_MISSED_RESIST = "сопротивление",
|
||||
ACTION_SPELL_MISSED_RESIST_FULL_TEXT = "%4$s полностью сопротивляется заклинанию \"%2$s\" |3-1(%1$s)%6$s",
|
||||
ACTION_SPELL_MISSED_RESIST_FULL_TEXT_NO_SOURCE = "%4$s полностью сопротивляется заклинанию \"%2$s\"%6$s",
|
||||
ACTION_SPELL_MISSED_RESIST_POSSESSIVE = "1",
|
||||
ACTION_SPELL_PERIODIC_DAMAGE = "Урон",
|
||||
ACTION_SPELL_PERIODIC_DAMAGE_FULL_TEXT = "\"%2$s\" |3-1(%1$s) наносит |3-2(%4$s) %5$s%6$s.",
|
||||
ACTION_SPELL_PERIODIC_DAMAGE_FULL_TEXT_NO_SOURCE = "%4$s получает %5$s от заклинания \"%2$s\"%6$s.",
|
||||
ACTION_SPELL_PERIODIC_DAMAGE_POSSESSIVE = "1",
|
||||
ACTION_SPELL_PERIODIC_DRAIN = "Похищение",
|
||||
ACTION_SPELL_PERIODIC_DRAIN_FULL_TEXT = "\"%1$s\" |3-1(%2$s) отнимает %9$s |4единицу:единицы:единиц; |3-1(%8$s) у |3-1(%4$s).",
|
||||
ACTION_SPELL_PERIODIC_DRAIN_FULL_TEXT_NO_SOURCE = "\"%2$s\" отнимает %9$s |4единицу:единицы:единиц; |3-1(%8$s) у |3-1(%4$s).",
|
||||
ACTION_SPELL_PERIODIC_DRAIN_POSSESSIVE = "1",
|
||||
ACTION_SPELL_PERIODIC_ENERGIZE = "Энергия",
|
||||
ACTION_SPELL_PERIODIC_ENERGIZE_FULL_TEXT = "%4$s получает %9$s |4единицу:единицы:единиц; |3-1(%8$s) от заклинания \"%2$s\" |3-1(%1$s).\"",
|
||||
ACTION_SPELL_PERIODIC_ENERGIZE_FULL_TEXT_NO_SOURCE = "%4$s получает %9$s |4единицу:единицы:единиц; |3-1(%8$s) благодаря заклинанию \"%2$s\".",
|
||||
ACTION_SPELL_PERIODIC_ENERGIZE_POSSESSIVE = "1",
|
||||
ACTION_SPELL_PERIODIC_ENERGIZE_RESULT = "%8$s: +$extraAmount",
|
||||
ACTION_SPELL_PERIODIC_HEAL = "Лечение",
|
||||
ACTION_SPELL_PERIODIC_HEAL_FULL_TEXT = "%4$s получает %9$s |4единицу:единицы:единиц; здоровья от заклинания \"%2$s\" |3-1(%1$s)%6$s.",
|
||||
ACTION_SPELL_PERIODIC_HEAL_FULL_TEXT_NO_SOURCE = "%4$s получает %9$s |4единицу:единицы:единиц; здоровья от заклинания \"%2$s\". %6$s",
|
||||
ACTION_SPELL_PERIODIC_HEAL_POSSESSIVE = "1",
|
||||
ACTION_SPELL_PERIODIC_LEECH = "Похищение",
|
||||
ACTION_SPELL_PERIODIC_LEECH_FULL_TEXT = "\"%2$s\" |3-1(%1$s) отнимает %9$s |4единицу:единицы:единиц; |3-1(%8$s) из |3-1(%4$s). %1$s получает %10$s |4единицу:единицы:единиц; |3-1(%8$s).",
|
||||
ACTION_SPELL_PERIODIC_LEECH_FULL_TEXT_NO_SOURCE = "\"%2$s\" отнимает %9$s |4единицу:единицы:единиц; |3-1(%8$s) у |3-1(%4$s). %1$s получает %10$s |4единицу:единицы:единиц; |3-1(%8$s).",
|
||||
ACTION_SPELL_PERIODIC_LEECH_POSSESSIVE = "1",
|
||||
ACTION_SPELL_PERIODIC_LEECH_RESULT = " (Получено %10$s |4единица:единицы:единиц; |3-1(%8$s))",
|
||||
ACTION_SPELL_PERIODIC_MISSED = "Промах",
|
||||
ACTION_SPELL_PERIODIC_MISSED_ABSORB = " (поглощение: %1$s)",
|
||||
ACTION_SPELL_PERIODIC_MISSED_ABSORB_FULL_TEXT = "\"%2$s\" |3-1(%1$s) поглощается |3-4(%4$s)%6$s",
|
||||
ACTION_SPELL_PERIODIC_MISSED_ABSORB_FULL_TEXT_NO_SOURCE = "%4$s поглощает заклинание \"%2$s\"%6$s",
|
||||
ACTION_SPELL_PERIODIC_MISSED_ABSORB_POSSESSIVE = "1",
|
||||
ACTION_SPELL_PERIODIC_MISSED_BLOCK = ": заклинание однократно блокировано",
|
||||
ACTION_SPELL_PERIODIC_MISSED_BLOCK_FULL_TEXT = "%4$s временно блокирует заклинание \"%2$s\" |3-1(%1$s)%6$s.",
|
||||
ACTION_SPELL_PERIODIC_MISSED_BLOCK_FULL_TEXT_NO_SOURCE = "%4$s на мгновение блокирует заклинание \"%2$s\"%6$s.",
|
||||
ACTION_SPELL_PERIODIC_MISSED_BLOCK_POSSESSIVE = "1",
|
||||
ACTION_SPELL_PERIODIC_MISSED_DEFLECTED = ": однократное отклонение",
|
||||
ACTION_SPELL_PERIODIC_MISSED_DEFLECTED_FULL_TEXT = "%4$s на мгновение отклоняет заклинание \"%2$s\" |3-1(%1$s)%6$s.",
|
||||
ACTION_SPELL_PERIODIC_MISSED_DEFLECTED_FULL_TEXT_NO_SOURCE = "%4$s на мгновение отклоняет заклинание \"%2$s\"%6$s.",
|
||||
ACTION_SPELL_PERIODIC_MISSED_DEFLECTED_POSSESSIVE = "1",
|
||||
ACTION_SPELL_PERIODIC_MISSED_DODGE = ": однократное уклонение",
|
||||
ACTION_SPELL_PERIODIC_MISSED_DODGE_FULL_TEXT = "%4$s на мгновение уклоняется от заклинания \"%2$s\" |3-1(%1$s)%6$s.",
|
||||
ACTION_SPELL_PERIODIC_MISSED_DODGE_FULL_TEXT_NO_SOURCE = "%4$s на мгновение уклоняется от заклинания \"%2$s\"%6$s.",
|
||||
ACTION_SPELL_PERIODIC_MISSED_DODGE_POSSESSIVE = "1",
|
||||
ACTION_SPELL_PERIODIC_MISSED_EVADED = ": временно не достигает цели",
|
||||
ACTION_SPELL_PERIODIC_MISSED_EVADED_FULL_TEXT = "Заклинание \"%2$s\" |3-1(%1$s) на мгновение не достигает |3-1(%4$s)%6$s.",
|
||||
ACTION_SPELL_PERIODIC_MISSED_EVADED_FULL_TEXT_NO_SOURCE = "Заклинание \"%2$s\" на мгновение не достигает |3-1(%4$s)%6$s.",
|
||||
ACTION_SPELL_PERIODIC_MISSED_EVADED_POSSESSIVE = "1",
|
||||
ACTION_SPELL_PERIODIC_MISSED_FULL_TEXT = "\"%2$s\" |3-1(%1$s) временно не действует на |3-3(%4$s)%6$s.",
|
||||
ACTION_SPELL_PERIODIC_MISSED_FULL_TEXT_NO_SOURCE = "\"%2$s\" временно не действует на |3-3(%4$s)%6$s.",
|
||||
ACTION_SPELL_PERIODIC_MISSED_IMMUNE = ": цель невосприимчива",
|
||||
ACTION_SPELL_PERIODIC_MISSED_IMMUNE_FULL_TEXT = "На |3-3(%4$s) не подействовало заклинание |3-1(%1$s) \"%2$s\". %6$s",
|
||||
ACTION_SPELL_PERIODIC_MISSED_IMMUNE_FULL_TEXT_NO_SOURCE = "На |3-3(%4$s) не подействовало заклинание \"%2$s\". %6$s",
|
||||
ACTION_SPELL_PERIODIC_MISSED_IMMUNE_POSSESSIVE = "1",
|
||||
ACTION_SPELL_PERIODIC_MISSED_MISS = ": однократный промах",
|
||||
ACTION_SPELL_PERIODIC_MISSED_MISS_FULL_TEXT = "\"%2$s\" |3-1(%1$s) на мгновение перестает действовать на |3-1(%4$s)%6$s.",
|
||||
ACTION_SPELL_PERIODIC_MISSED_MISS_FULL_TEXT_NO_SOURCE = "\"%2$s\" на мгновение перестает действовать на |3-1(%4$s)%6$s.",
|
||||
ACTION_SPELL_PERIODIC_MISSED_MISS_POSSESSIVE = "1",
|
||||
ACTION_SPELL_PERIODIC_MISSED_PARRY = ": однократное парирование",
|
||||
ACTION_SPELL_PERIODIC_MISSED_PARRY_FULL_TEXT = "%4$s на мгновение парирует заклинание \"%2$s\" |3-1(%1$s)%6$s.",
|
||||
ACTION_SPELL_PERIODIC_MISSED_PARRY_FULL_TEXT_NO_SOURCE = "%4$s на мгновение парирует заклинание \"%2$s\"%6$s.",
|
||||
ACTION_SPELL_PERIODIC_MISSED_PARRY_POSSESSIVE = "1",
|
||||
ACTION_SPELL_PERIODIC_MISSED_POSSESSIVE = "1",
|
||||
ACTION_SPELL_PERIODIC_MISSED_RESIST = ": однократное сопротивление",
|
||||
ACTION_SPELL_PERIODIC_MISSED_RESIST_FULL_TEXT = "\"%2$s\" |3-1(%1$s) не действует на |3-3(%4$s). %4$s сопротивляется заклинанию. %6$s.",
|
||||
ACTION_SPELL_PERIODIC_MISSED_RESIST_FULL_TEXT_NO_SOURCE = "\"%2$s\" не действует на |3-3(%4$s). %4$s сопротивляется заклинанию. %6$s.",
|
||||
ACTION_SPELL_PERIODIC_MISSED_RESIST_POSSESSIVE = "1",
|
||||
ACTION_SPELL_RESURRECT = "воскрешено",
|
||||
ACTION_SPELL_RESURRECT_FULL_TEXT = "%1$s воскрешает |3-3(%4$s)%6$s с помощью заклинания \"%2$s\".",
|
||||
ACTION_SPELL_RESURRECT_FULL_TEXT_NO_SOURCE = "%2$s воскрешает %4$s%6$s.",
|
||||
ACTION_SPELL_RESURRECT_POSSESSIVE = "1",
|
||||
ACTION_SPELL_STOLEN = "Похищение",
|
||||
ACTION_SPELL_STOLEN_BUFF = "Похищение",
|
||||
ACTION_SPELL_STOLEN_BUFF_FULL_TEXT = "\"%2$s\" |3-1(%1$s) похищает заклинание \"%5$s\" |3-1(%4$s).",
|
||||
ACTION_SPELL_STOLEN_BUFF_FULL_TEXT_NO_SOURCE = "\"%2$s\" похищает заклинание \"%5$s\" |3-1(%4$s).",
|
||||
ACTION_SPELL_STOLEN_BUFF_POSSESSIVE = "1",
|
||||
ACTION_SPELL_STOLEN_BUFF__POSSESSIVE = "1",
|
||||
ACTION_SPELL_STOLEN_DEBUFF = "Похищение",
|
||||
ACTION_SPELL_STOLEN_DEBUFF_FULL_TEXT = "\"%2$s\" |3-1(%1$s) передает заклинание |3-1(%4$s) \"$extraSpell\" |3-2(%1$s).",
|
||||
ACTION_SPELL_STOLEN_DEBUFF_FULL_TEXT_NO_SOURCE = "\"%2$s\" передает |3-2(%4$s) заклинание \"$extraSpell\".",
|
||||
ACTION_SPELL_STOLEN_DEBUFF_POSSESSIVE = "1",
|
||||
ACTION_SPELL_STOLEN_FULL_TEXT = "\"%2$s\" |3-1(%1$s) похищает заклинание \"%5$s\" |3-1(%4$s).",
|
||||
ACTION_SPELL_STOLEN_FULL_TEXT_NO_SOURCE = "\"%2$s\" похищает заклинание \"%5$s\" |3-1(%4$s).",
|
||||
ACTION_SPELL_STOLEN_POSSESSIVE = "1",
|
||||
ACTION_SPELL_SUMMON = "призывает",
|
||||
ACTION_SPELL_SUMMON_FULL_TEXT = "\"%2$s\" |3-1(%1$s) призывает |3-3(%4$s)%6$s.",
|
||||
ACTION_SPELL_SUMMON_FULL_TEXT_NO_SOURCE = "%2$s призывает |3-3(%4$s)%6$s",
|
||||
ACTION_SPELL_SUMMON_POSSESSIVE = "1",
|
||||
ACTION_SWING = "Ближний бой",
|
||||
ACTION_SWING_DAMAGE = "Попадание",
|
||||
ACTION_SWING_DAMAGE_FULL_TEXT = "Атака ближнего боя |3-1(%1$s) наносит |3-2(%4$s) %5$s%6$s.",
|
||||
ACTION_SWING_DAMAGE_FULL_TEXT_NO_SOURCE = "Атака ближнего боя бьет по |3-2(%4$s) на %5$s%6$s.",
|
||||
ACTION_SWING_DAMAGE_POSSESSIVE = "1",
|
||||
ACTION_SWING_MISSED = "Промах",
|
||||
ACTION_SWING_MISSED_ABSORB = ": поглощение",
|
||||
ACTION_SWING_MISSED_ABSORB_FULL_TEXT = "%4$s поглощает атаку |3-1(%1$s)%6$s",
|
||||
ACTION_SWING_MISSED_ABSORB_POSSESSIVE = "1",
|
||||
ACTION_SWING_MISSED_BLOCK = ": выстрел блокирован",
|
||||
ACTION_SWING_MISSED_BLOCK_FULL_TEXT = "%4$s%6$s блокирует атаку |3-1(%1$s).",
|
||||
ACTION_SWING_MISSED_BLOCK_POSSESSIVE = "1",
|
||||
ACTION_SWING_MISSED_DEFLECT = ": выстрел отклонен",
|
||||
ACTION_SWING_MISSED_DEFLECT_FULL_TEXT = "%4$s отклоняет атаку |3-1(%1$s).",
|
||||
ACTION_SWING_MISSED_DEFLECT_POSSESSIVE = "1",
|
||||
ACTION_SWING_MISSED_DODGE = ": уклонение",
|
||||
ACTION_SWING_MISSED_DODGE_FULL_TEXT = "%4$s уклоняется от атаки |3-1(%1$s).",
|
||||
ACTION_SWING_MISSED_DODGE_POSSESSIVE = "1",
|
||||
ACTION_SWING_MISSED_EVADE = ": атака не достигла цели",
|
||||
ACTION_SWING_MISSED_EVADE_FULL_TEXT = "Атака |3-1(%1$s) не достигает |3-1(%4$s).",
|
||||
ACTION_SWING_MISSED_EVADE_POSSESSIVE = "1",
|
||||
ACTION_SWING_MISSED_FULL_TEXT = "%1$s не попадает по |3-2(%4$s).",
|
||||
ACTION_SWING_MISSED_IMMUNE = ": цель невосприимчива",
|
||||
ACTION_SWING_MISSED_IMMUNE_FULL_TEXT = "%4$s обладает невосприимчивостью к атаке |3-1(%1$s).",
|
||||
ACTION_SWING_MISSED_IMMUNE_POSSESSIVE = "1",
|
||||
ACTION_SWING_MISSED_MISFIRE = "Промах.",
|
||||
ACTION_SWING_MISSED_MISFIRE_FULL_TEXT = "Атака |3-1(%1$s) не попадает по |3-2(%4$s).",
|
||||
ACTION_SWING_MISSED_MISFIRE_POSSESSIVE = "1",
|
||||
ACTION_SWING_MISSED_MISS = ": промах",
|
||||
ACTION_SWING_MISSED_MISS_FULL_TEXT = "%1$s не попадает по |3-2(%4$s).",
|
||||
ACTION_SWING_MISSED_MISS_POSSESSIVE = "1",
|
||||
ACTION_SWING_MISSED_PARRY = ": выстрел парирован",
|
||||
ACTION_SWING_MISSED_PARRY_FULL_TEXT = "%4$s парирует атаку |3-1(%1$s).",
|
||||
ACTION_SWING_MISSED_PARRY_POSSESSIVE = "1",
|
||||
ACTION_SWING_MISSED_POSSESSIVE = "1",
|
||||
ACTION_SWING_MISSED_RESIST = ": сопротивление",
|
||||
ACTION_SWING_MISSED_RESIST_FULL_TEXT = "%4$s полностью сопротивляется атаке |3-1(%1$s)%6$s",
|
||||
ACTION_SWING_MISSED_RESIST_POSSESSIVE = "1",
|
||||
ACTION_UNIT_BECCOMES_UNCONSCIOUS = "падает",
|
||||
ACTION_UNIT_BECOMES_UNCONSCIOUS_FULL_TEXT = "%4$s падает.",
|
||||
ACTION_UNIT_BECOMES_UNCONSCIOUS_POSSESSIVE = "0",
|
||||
ACTION_UNIT_DESTROYED = "Уничтожение",
|
||||
ACTION_UNIT_DESTROYED_FULL_TEXT = "%4$s умирает.",
|
||||
ACTION_UNIT_DESTROYED_POSSESSIVE = "0",
|
||||
ACTION_UNIT_DIED = "умерли",
|
||||
ACTION_UNIT_DIED_FULL_TEXT = "%4$s погибает.",
|
||||
ACTION_UNIT_DIED_POSSESSIVE = "0",
|
||||
ACTION_UNIT_DISSIPATES = "рассеивается",
|
||||
ACTION_UNIT_DISSIPATES_FULL_TEXT = "%4$s рассеивается.",
|
||||
ACTION_UNIT_DISSIPATES_POSSESSIVE = "0",
|
||||
ADD = "Добавить",
|
||||
ADDITIONAL_FILTERS = "Дополнительные фильтры",
|
||||
ADD_FILTER = "Добавить",
|
||||
AURAS = "Ауры",
|
||||
AURAS_COMBATLOG_TOOLTIP = "Отображение сообщений о благотворных и вредоносных состояниях.",
|
||||
BENEFICIAL = "Защитные",
|
||||
BENEFICIAL_AURA_COMBATLOG_TOOLTIP = "Отображение сообщений о приобретении или потере благотворной ауры вашим персонажем.",
|
||||
BLIZZARD_COMBAT_LOG_MENU_BOTH = "Все действия, касающиеся |3-1(%s)",
|
||||
BLIZZARD_COMBAT_LOG_MENU_EVERYTHING = "Показывать все",
|
||||
BLIZZARD_COMBAT_LOG_MENU_INCOMING = "Действия по отношению к |3-2(%s)?",
|
||||
BLIZZARD_COMBAT_LOG_MENU_OUTGOING = "Действия |3-1(%s)",
|
||||
BLIZZARD_COMBAT_LOG_MENU_OUTGOING_ME = "Действия |3-1(%s) по отношению к вам",
|
||||
BLIZZARD_COMBAT_LOG_MENU_RESET = "Сброс",
|
||||
BLIZZARD_COMBAT_LOG_MENU_SAVE = "Сохранить как новый фильтр",
|
||||
BLIZZARD_COMBAT_LOG_MENU_SPELL_HIDE = "Скрывать подобные сообщения.",
|
||||
BLIZZARD_COMBAT_LOG_MENU_SPELL_LINK = "Отправить ссылку на \"%s\" в чат.",
|
||||
BY_SOURCE = "Источник",
|
||||
BY_SOURCE_COMBATLOG_TOOLTIP = "Цвет строки зависит от источника.",
|
||||
BY_TARGET = "Цель",
|
||||
BY_TARGET_COMBATLOG_TOOLTIP = "Цвет строки зависит от цели.",
|
||||
COLORIZE = "Цвета:",
|
||||
COLORS = "Цвета",
|
||||
COLOR_BY_SCHOOL = "Цвета школ",
|
||||
COMBATLOG_DEFAULTS = "По умолчанию",
|
||||
COMBATLOG_FILTER_STRING_CUSTOM_UNIT = "По выбору",
|
||||
COMBATLOG_FILTER_STRING_FRIENDLY_UNITS = "Друзья",
|
||||
COMBATLOG_FILTER_STRING_HOSTILE_PLAYERS = "Враждебные игроки",
|
||||
COMBATLOG_FILTER_STRING_HOSTILE_UNITS = "Индикаторы противников",
|
||||
COMBATLOG_FILTER_STRING_ME = "Я",
|
||||
COMBATLOG_FILTER_STRING_MY_PET = "Питомец",
|
||||
COMBATLOG_FILTER_STRING_NEUTRAL_UNITS = "Нейтральный",
|
||||
COMBATLOG_FILTER_STRING_UNKNOWN_UNITS = "Неизвестно",
|
||||
COMBATLOG_HIGHLIGHT_ABILITY = "Способность",
|
||||
COMBATLOG_HIGHLIGHT_DAMAGE = "Урон",
|
||||
COMBATLOG_HIGHLIGHT_KILL = "Убийства",
|
||||
COMBATLOG_HIGHLIGHT_SCHOOL = "Школы магии",
|
||||
COMBATLOG_UNKNOWN_UNIT = "Что-то",
|
||||
COMBAT_FACTION_CHANGE = "Репутация",
|
||||
COMBAT_HONOR_GAIN = "Честь",
|
||||
COMBAT_LOG_UNIT_YOU_ENABLED = "1",
|
||||
COMBAT_MISC_INFO = "Разное",
|
||||
COMBAT_XP_GAIN = "Опыт",
|
||||
CONFIRM_COMBAT_FILTER_DEFAULTS = "Вы действительно хотите сбросить настройки фильтров?",
|
||||
CONFIRM_COMBAT_FILTER_DELETE = "Удалить этот фильтр?",
|
||||
COPY_FILTER = "Копировать",
|
||||
DAMAGE_NUMBER = "Величина урона",
|
||||
DAMAGE_SCHOOL_TEXT = "Школа магии",
|
||||
DAMAGE_SHIELD = "Ответные повреждения",
|
||||
DAMAGE_SHIELD_COMBATLOG_TOOLTIP = "Отображение сообщений об уроне, наносимом заклинаниями или способностями в ответ на атаки в ближнем бою (\"Шипы\" и т. п.).",
|
||||
DEATHS_COMBATLOG_TOOLTIP = "Отображение сообщений о смерти различных существ.",
|
||||
DEFAULT_COMBATLOG_FILTER_NAME = "Фильтр %d",
|
||||
DISPELS = "Развеивание",
|
||||
DISPEL_AURA_COMBATLOG_TOOLTIP = "Отображение сообщений об исчезновении, разрушении или похищении аур.",
|
||||
DONE_BY = "Источник:",
|
||||
DONE_TO = "Цель:",
|
||||
DRAINS = "Похищение",
|
||||
ENTER_FILTER_NAME = "Введите название фильтра:",
|
||||
ENTIRE_LINE = "Вся строка",
|
||||
ENTIRE_LINE_COMBATLOG_TOOLTIP = "Цветовое выделение всей строки в соответствии с параметрами, указанными ниже.",
|
||||
ENVIRONMENTAL_DAMAGE = "Урон от окружающего мира",
|
||||
ENVIRONMENTAL_DAMAGE_COMBATLOG_TOOLTIP = "Отображение сообщений о получении разными персонажами урона от падения, утопления или погружения в лаву.",
|
||||
EXAMPLE_SPELL_FIREBALL = "Огненный шар",
|
||||
EXAMPLE_SPELL_FROSTBOLT = "Ледяная стрела",
|
||||
EXAMPLE_TARGET_MONSTER = "Монстр",
|
||||
EXAMPLE_TEXT = "Пример текста:",
|
||||
EXTRA_ATTACKS = "Дополнит. атаки",
|
||||
FAILURES = "Неудачное",
|
||||
FILTER_BY_ENEMIES_COMBATLOG_TOOLTIP = "Действия враждебных игроков, питомцев и существ.",
|
||||
FILTER_BY_FRIENDS_COMBATLOG_TOOLTIP = "Действия дружественных игроков, питомцев и существ.",
|
||||
FILTER_BY_HOSTILE_PLAYERS_COMBATLOG_TOOLTIP = "Действия враждебных игроков.",
|
||||
FILTER_BY_ME_COMBATLOG_TOOLTIP = "Действия вашего персонажа, а также его ловушек и заклинаний.",
|
||||
FILTER_BY_NEUTRAL_COMBATLOG_TOOLTIP = "Действия нейтральных существ.",
|
||||
FILTER_BY_PET_COMBATLOG_TOOLTIP = "Действия ваших питомцев, вызванных существ и подчиненных персонажей.",
|
||||
FILTER_BY_UNKNOWN_COMBATLOG_TOOLTIP = "Действия окружающего мира: падение, кислота, лава и т.п.",
|
||||
FILTER_NAME = "Название фильтра",
|
||||
FILTER_TO_FRIENDS_COMBATLOG_TOOLTIP = "Действия в отношении дружественных игроков, питомцев и существ.",
|
||||
FILTER_TO_HOSTILE_COMBATLOG_TOOLTIP = "Действия в отношении враждебных питомцев и существ.",
|
||||
FILTER_TO_HOSTILE_PLAYERS_COMBATLOG_TOOLTIP = "Действия в отношении враждебных игроков.",
|
||||
FILTER_TO_ME_COMBATLOG_TOOLTIP = "Действия в отношении вашего персонажа.",
|
||||
FILTER_TO_NEUTRAL_COMBATLOG_TOOLTIP = "Действия в отношении нейтральных существ.",
|
||||
FILTER_TO_PET_COMBATLOG_TOOLTIP = "Действия в отношении ваших питомцев, вызванных существ и подчиненных персонажей.",
|
||||
FILTER_TO_UNKNOWN_COMBATLOG_TOOLTIP = "Действия в отношении невидимых целей.",
|
||||
FORMATTING = "Формат",
|
||||
FULL_TEXT_COMBATLOG_TOOLTIP = "Показывать записи журнала боя в полном виде.",
|
||||
HARMFUL_AURA_COMBATLOG_TOOLTIP = "Отображение сообщений о приобретении или потере губительной ауры вашим персонажем.",
|
||||
HEALS = "Лечение",
|
||||
HIGHLIGHTING = "Подсветка:",
|
||||
HIGHLIGHT_ABILITY_COMBATLOG_TOOLTIP = "Подсветка названий способностей в боевых сообщениях.",
|
||||
HIGHLIGHT_DAMAGE_COMBATLOG_TOOLTIP = "Подсветка величины урона в боевых сообщениях.",
|
||||
HIGHLIGHT_KILL_COMBATLOG_TOOLTIP = "Подсветка всей строки при убийстве противника вами или другим членом вашей группы.",
|
||||
HIGHLIGHT_SCHOOL_COMBATLOG_TOOLTIP = "Подсветка названий школ магии в боевых сообщениях.",
|
||||
HOSTILE = "Губительные",
|
||||
INTERRUPTS = "Прерывание",
|
||||
ITEM_NAMES = "Названия предметов",
|
||||
ITEM_NAMES_SHOW_BRACES_COMBATLOG_TOOLTIP = "Заключение в скобки названий предметов.",
|
||||
KILLS_COMBATLOG_TOOLTIP = "Отображение сообщений об убийстве противников членами вашей группы.",
|
||||
MELEE = "Ближний бой",
|
||||
MELEE_COMBATLOG_TOOLTIP = "Отображение информации об ударах ближнего боя.",
|
||||
MESSAGE_SOURCES = "Источники сообщений",
|
||||
MISSES = "Промах",
|
||||
MOVE_FILTER_DOWN = "Переместить ниже",
|
||||
MOVE_FILTER_UP = "Переместить выше",
|
||||
OTHER = "Другое",
|
||||
PERIODIC = "Периодические эффекты",
|
||||
POWER_GAINS = "Получение энергии",
|
||||
POWER_GAINS_COMBATLOG_TOOLTIP = "Отображение сообщений о восполнении маны, энергии, ярости, концентрации, энергии ци, энергии Света или сфер Тьмы с помощью заклинаний или способностей.",
|
||||
QUICKBUTTON_NAME_EVERYTHING = "Все",
|
||||
QUICKBUTTON_NAME_EVERYTHING_TOOLTIP = "Отображение всех сообщений о бое.",
|
||||
QUICKBUTTON_NAME_KILLS = "Убийства",
|
||||
QUICKBUTTON_NAME_KILLS_TOOLTIP = "Показ всех смертей и убийств.",
|
||||
QUICKBUTTON_NAME_ME = "Что случилось с персонажем?",
|
||||
QUICKBUTTON_NAME_ME_TOOLTIP = "Отображение всех действий в отношении вашего персонажа.",
|
||||
QUICKBUTTON_NAME_SELF = "Персонаж",
|
||||
QUICKBUTTON_NAME_SELF_TOOLTIP = "Отображение сообщений о действиях вашего персонажа и в отношении него.",
|
||||
QUICK_BUTTON_COMBATLOG_TOOLTIP = "Помещение ссылки на фильтр в окно чата.",
|
||||
RANGED = "Дальний бой",
|
||||
RANGED_COMBATLOG_TOOLTIP = "Природа",
|
||||
RANGE_DAMAGE_COMBATLOG_TOOLTIP = "Отображение информации об атаках дальнего боя, наносящих полный или частичный урон.",
|
||||
RANGE_MISSED_COMBATLOG_TOOLTIP = "Отображение информации об атаках дальнего боя, не наносящих урона.",
|
||||
RESURRECT = "Воскрешений",
|
||||
SETTINGS = "Параметры",
|
||||
SHOW_BRACES = "Выделять скобками",
|
||||
SHOW_BRACES_COMBATLOG_TOOLTIP = "Выделение ссылок в сообщениях журнала боя.",
|
||||
SHOW_QUICK_BUTTON = "Быстрый вызов",
|
||||
SHOW_TIMESTAMP = "Отображать время",
|
||||
SOURCE = "Источник:",
|
||||
SPECIAL = "Особые",
|
||||
SPELLS_COMBATLOG_TOOLTIP = "Отображение сообщений о заклинаниях и особых способностях.",
|
||||
SPELL_CASTING = "Применение заклинаний",
|
||||
SPELL_CASTING_COMBATLOG_TOOLTIP = "Отображение сообщений о применении заклинаний.",
|
||||
SPELL_CAST_FAILED_COMBATLOG_TOOLTIP = "Отображение сообщений о невозможности применения заклинаний.",
|
||||
SPELL_CAST_START_COMBATLOG_TOOLTIP = "Отображение сообщений о начале применения заклинаний.",
|
||||
SPELL_CAST_SUCCESS_COMBATLOG_TOOLTIP = "Отображение сообщений об успешном завершении заклинаний.",
|
||||
SPELL_COLOR_BY_SCHOOL_COMBATLOG_TOOLTIP = "Цветовое выделение названий заклинаний в соответствии с школами магии.",
|
||||
SPELL_DAMAGE_COMBATLOG_TOOLTIP = "Отображение сообщений о нанесении урона заклинаниями или способностями.",
|
||||
SPELL_DAMAGE_NUMBER_COMBATLOG_TOOLTIP = "Цветовое выделение величины урона (кроме ближнего боя).",
|
||||
SPELL_DAMAGE_SCHOOL_COMBATLOG_TOOLTIP = "Цветовое выделение школ урона (\"Темной магии\" и т.п.)",
|
||||
SPELL_DRAIN_COMBATLOG_TOOLTIP = "Отображение сообщений о снижении объема маны, энергии, ярости и концентрации под влиянием заклинаний или способностей.",
|
||||
SPELL_EXTRA_ATTACKS_COMBATLOG_TOOLTIP = "Отображение сообщений о дополнительных атаках, вызванных заклинаниями или способностями.",
|
||||
SPELL_HEAL_COMBATLOG_TOOLTIP = "Отображение сообщений об исцеляющих заклинаниях и способностях.",
|
||||
SPELL_INSTAKILL_COMBATLOG_TOOLTIP = "Отображение сообщений об особых заклинаниях: например, повреждающих экипировку или наносящих урон питомцам.",
|
||||
SPELL_INTERRUPT_COMBATLOG_TOOLTIP = "Отображение сообщений о прерывании заклинаниями или способностями действия других заклинаний.",
|
||||
SPELL_MISSED_COMBATLOG_TOOLTIP = "Отображение сообщений о неудачном применении боевых заклинаний и способностей, в т.ч., связанном с уклонением, парированием, блоком, отражением, невосприимчивостью, поглощением и уверткой.",
|
||||
SPELL_NAMES = "Названия заклинаний",
|
||||
SPELL_NAMES_COMBATLOG_TOOLTIP = "Цветовое выделение названий заклинаний.",
|
||||
SPELL_NAMES_SHOW_BRACES_COMBATLOG_TOOLTIP = "Заключение в скобки названий заклинаний.",
|
||||
SPELL_PERIODIC_COMBATLOG_TOOLTIP = "Отображение информации о заклинаниях постепенного действия.",
|
||||
SPELL_PERIODIC_DAMAGE_COMBATLOG_TOOLTIP = "Отображение сообщений о периодическом уроне от заклинаний или способностей (\"Слово Тьмы: Боль\", \"Порча\" и т. п.).",
|
||||
SPELL_PERIODIC_HEAL_COMBATLOG_TOOLTIP = "Отображение сообщений о периодическом исцелении от заклинаний или способностей (\"Обновление\", \"Омоложение\" и т. п.).",
|
||||
SPELL_PERIODIC_MISSED_COMBATLOG_TOOLTIP = "Отображение сообщений о частично неудачном применении боевых заклинаний и способностей, в т.ч., связанных с невосприимчивостью, поглощением и уверткой.",
|
||||
SPELL_PERIODIC_OTHER_COMBATLOG_TOOLTIP = "Отображение сообщений о других видах периодических эффектов заклинаний и способностей, например, восполнении или похищении маны.",
|
||||
SPELL_RESURRECT_COMBATLOG_TOOLTIP = "Показывать сообщения о воскрешении игрока или существа с помощью заклинания или способности.",
|
||||
SPELL_SUMMON_COMBATLOG_TOOLTIP = "Показывать сообщения, когда с помощью заклинания призывается существо.",
|
||||
START = "Начало",
|
||||
STRING_SCHOOL_UNKNOWN = "Неизвестно",
|
||||
SUCCESS = "Успешное",
|
||||
SUMMONS = "Призывов",
|
||||
SWING_DAMAGE_COMBATLOG_TOOLTIP = "Отображение информации об ударах в ближнем бою, наносящих полный или частичный урон.",
|
||||
SWING_MISSED_COMBATLOG_TOOLTIP = "Отображение атак в ближнем бою, не наносящих урона.",
|
||||
TEXT_MODE_A = "A",
|
||||
TEXT_MODE_A_STRING_1 = "%s %s %s %s %s. %s %11$s",
|
||||
TEXT_MODE_A_STRING_2 = "%2$s |3-1(%1$s) - %3$s - %4$s - %5$s%6$s.",
|
||||
TEXT_MODE_A_STRING_3 = "%1$s %5$s %3$s %4$s %2$s. %6$s",
|
||||
TEXT_MODE_A_STRING_ACTION = "|Haction:%s|h%s|h",
|
||||
TEXT_MODE_A_STRING_BRACE_ITEM = "|c%s[|r%s|c%s]|r",
|
||||
TEXT_MODE_A_STRING_BRACE_SPELL = "|c%s[|r%s|c%s]|r",
|
||||
TEXT_MODE_A_STRING_BRACE_UNIT = "|c%s[|r%s|c%s]|r",
|
||||
TEXT_MODE_A_STRING_DEST_ICON = "|Hicon:%d:dest|h%s|h",
|
||||
TEXT_MODE_A_STRING_DEST_UNIT = "%s|Hunit:%s:%s|h%s|h",
|
||||
TEXT_MODE_A_STRING_ITEM = "|Hitem:%s|h%s|h",
|
||||
TEXT_MODE_A_STRING_POSSESSIVE = "%s",
|
||||
TEXT_MODE_A_STRING_REMAINING_POINTS = "Осталось: %s",
|
||||
TEXT_MODE_A_STRING_RESULT_ABSORB = "Поглощено: %s ед. урона.",
|
||||
TEXT_MODE_A_STRING_RESULT_BLOCK = "Заблокировано: %s ед. урона.",
|
||||
TEXT_MODE_A_STRING_RESULT_CRITICAL = ": критический эффект",
|
||||
TEXT_MODE_A_STRING_RESULT_CRITICAL_SPELL = ": критический эффект",
|
||||
TEXT_MODE_A_STRING_RESULT_CRUSHING = ": сокрушительный удар",
|
||||
TEXT_MODE_A_STRING_RESULT_FORMAT = "$resultAmount $resultType",
|
||||
TEXT_MODE_A_STRING_RESULT_GLANCING = ": удар пришелся вскользь",
|
||||
TEXT_MODE_A_STRING_RESULT_MULTISTRIKE = "Многократная атака.",
|
||||
TEXT_MODE_A_STRING_RESULT_OVERENERGIZE = "(%s: перенасыщение энергией)",
|
||||
TEXT_MODE_A_STRING_RESULT_OVERHEALING = "Избыточное лечение: %s.",
|
||||
TEXT_MODE_A_STRING_RESULT_OVERKILLING = " (избыточный урон: %s)",
|
||||
TEXT_MODE_A_STRING_RESULT_PARRY = "Парировано: %d.",
|
||||
TEXT_MODE_A_STRING_RESULT_REFLECT = "Атака отражена",
|
||||
TEXT_MODE_A_STRING_RESULT_RESIST = " (сопротивление %s |4единице:единицам:единицам; урона)",
|
||||
TEXT_MODE_A_STRING_RESULT_VULNERABILITY = " (%s |4единица:единицы:единиц; урона за счет уязвимости)",
|
||||
TEXT_MODE_A_STRING_SOURCE_ICON = "|Hicon:%s:source|h%s|h",
|
||||
TEXT_MODE_A_STRING_SOURCE_UNIT = "%s|Hunit:%s:%s|h%s|h",
|
||||
TEXT_MODE_A_STRING_SPELL = "|Hspell:%s:%s:%s|h%s|h",
|
||||
TEXT_MODE_A_STRING_SPELL_EXTRA = "|Hspell:%s:%s:%s|h%s|h",
|
||||
TEXT_MODE_A_STRING_TIMESTAMP = "%s> %s",
|
||||
TEXT_MODE_A_STRING_VALUE_SCHOOL = "%s (%s)",
|
||||
TEXT_MODE_A_STRING_VALUE_TYPE = "%s (%s)",
|
||||
TEXT_MODE_A_TIMESTAMP = "%H:%M:%S",
|
||||
TIMESTAMP_COMBATLOG_TOOLTIP = "Отображение даты и времени в сообщениях журнала боя.",
|
||||
UNIT_COLORS = "Цвета объектов:",
|
||||
UNIT_NAMES = "Объект действия",
|
||||
UNIT_NAMES_COMBATLOG_TOOLTIP = "Цветовое выделение названий объектов.",
|
||||
UNIT_NAMES_SHOW_BRACES_COMBATLOG_TOOLTIP = "Заключение в скобки названий объектов.",
|
||||
UNIT_YOU = "Вы",
|
||||
UNIT_YOU_DEST = "Вы",
|
||||
UNIT_YOU_DEST_POSSESSIVE = "Ваш",
|
||||
UNIT_YOU_SOURCE = "Вы",
|
||||
UNIT_YOU_SOURCE_POSSESSIVE = "Ваше",
|
||||
USE_FULL_TEXT_MODE = "Использовать полный режим",
|
||||
}
|
||||
Vendored
+677
@@ -0,0 +1,677 @@
|
||||
-- Classic Era GlobalStrings (CN) that the combat log reads
|
||||
-- and the 1.12 client lacks. Generated; do not edit by hand.
|
||||
pfUI_locale["zhCN"]["combatlog"] = {
|
||||
ACTION_DAMAGE_SHIELD = "伤害",
|
||||
ACTION_DAMAGE_SHIELD_FULL_TEXT = "%1$s%2$s将%9$s点%7$s伤害反射给%4$s。%6$s",
|
||||
ACTION_DAMAGE_SHIELD_FULL_TEXT_NO_SOURCE = "%2$s将%9$s点%7$s伤害反射给%4$s。%6$s",
|
||||
ACTION_DAMAGE_SHIELD_MISSED = "未命中",
|
||||
ACTION_DAMAGE_SHIELD_MISSED_BLOCK = "(格挡)",
|
||||
ACTION_DAMAGE_SHIELD_MISSED_BLOCK_FULL_TEXT = "%1$s%2$s被%4$s格挡了。%6$s",
|
||||
ACTION_DAMAGE_SHIELD_MISSED_BLOCK_FULL_TEXT_NO_SOURCE = "%2$s被%4$s格挡了。%6$s",
|
||||
ACTION_DAMAGE_SHIELD_MISSED_BLOCK_POSSESSIVE = "1",
|
||||
ACTION_DAMAGE_SHIELD_MISSED_DEFLECT = "(偏转)",
|
||||
ACTION_DAMAGE_SHIELD_MISSED_DEFLECT_FULL_TEXT = "%1$s%2$s被%4$s偏转了。",
|
||||
ACTION_DAMAGE_SHIELD_MISSED_DEFLECT_FULL_TEXT_NO_SOURCE = "%2$s被%4$s偏转了。",
|
||||
ACTION_DAMAGE_SHIELD_MISSED_DEFLECT_POSSESSIVE = "1",
|
||||
ACTION_DAMAGE_SHIELD_MISSED_DODGE = "(躲闪)",
|
||||
ACTION_DAMAGE_SHIELD_MISSED_DODGE_FULL_TEXT = "%1$s%2$s被%4$s躲闪了。",
|
||||
ACTION_DAMAGE_SHIELD_MISSED_DODGE_FULL_TEXT_NO_SOURCE = "%2$s被%4$s躲闪了。",
|
||||
ACTION_DAMAGE_SHIELD_MISSED_DODGE_POSSESSIVE = "1",
|
||||
ACTION_DAMAGE_SHIELD_MISSED_EVADED = "(闪避)",
|
||||
ACTION_DAMAGE_SHIELD_MISSED_EVADED_FULL_TEXT = "%1$s%2$s被%4$s闪避了。",
|
||||
ACTION_DAMAGE_SHIELD_MISSED_EVADED_FULL_TEXT_NO_SOURCE = "%2$s被%4$s闪避了。",
|
||||
ACTION_DAMAGE_SHIELD_MISSED_EVADED_POSSESSIVE = "1",
|
||||
ACTION_DAMAGE_SHIELD_MISSED_FULL_TEXT = "%1$s%2$s未命中%4$s。",
|
||||
ACTION_DAMAGE_SHIELD_MISSED_FULL_TEXT_NO_SOURCE = "%2$s未命中%4$s。",
|
||||
ACTION_DAMAGE_SHIELD_MISSED_IMMUNE = "(免疫)",
|
||||
ACTION_DAMAGE_SHIELD_MISSED_IMMUNE_FULL_TEXT = "%1$s%2$s失败。%4$s对此免疫。",
|
||||
ACTION_DAMAGE_SHIELD_MISSED_IMMUNE_FULL_TEXT_NO_SOURCE = "%2$s失败。%4$s对此免疫。",
|
||||
ACTION_DAMAGE_SHIELD_MISSED_IMMUNE_POSSESSIVE = "1",
|
||||
ACTION_DAMAGE_SHIELD_MISSED_MISS = "(未命中)",
|
||||
ACTION_DAMAGE_SHIELD_MISSED_MISS_FULL_TEXT = "%1$s%2$s未命中%4$s。",
|
||||
ACTION_DAMAGE_SHIELD_MISSED_MISS_FULL_TEXT_NO_SOURCE = "%2$s未命中%4$s。",
|
||||
ACTION_DAMAGE_SHIELD_MISSED_MISS_POSSESSIVE = "1",
|
||||
ACTION_DAMAGE_SHIELD_MISSED_PARRY = "(招架)",
|
||||
ACTION_DAMAGE_SHIELD_MISSED_PARRY_FULL_TEXT = "%1$s%2$s被%4$s招架了。",
|
||||
ACTION_DAMAGE_SHIELD_MISSED_PARRY_FULL_TEXT_NO_SOURCE = "%2$s被%4$s招架了。",
|
||||
ACTION_DAMAGE_SHIELD_MISSED_PARRY_POSSESSIVE = "1",
|
||||
ACTION_DAMAGE_SHIELD_MISSED_POSSESSIVE = "1",
|
||||
ACTION_DAMAGE_SHIELD_MISSED_RESIST = "(抵抗)",
|
||||
ACTION_DAMAGE_SHIELD_MISSED_RESIST_FULL_TEXT = "%1$s%2$s被%4$s完全抵抗了。%6$s",
|
||||
ACTION_DAMAGE_SHIELD_MISSED_RESIST_FULL_TEXT_NO_SOURCE = "%2$s被%4$s完全抵抗了。%6$s",
|
||||
ACTION_DAMAGE_SHIELD_MISSED_RESIST_POSSESSIVE = "1",
|
||||
ACTION_DAMAGE_SHIELD_POSSESSIVE = "1",
|
||||
ACTION_DAMAGE_SPLIT = "分担伤害",
|
||||
ACTION_DAMAGE_SPLIT_ABSORBED_FULL_TEXT = "%4$s %6$s吸收了%1$s的%2$s点伤害。",
|
||||
ACTION_DAMAGE_SPLIT_FULL_TEXT = "%1$s%2$s对%4$s$s造成%9$s点伤害。",
|
||||
ACTION_DAMAGE_SPLIT_POSSESSIVE = "0",
|
||||
ACTION_DAMAGE_SPLIT_RESULT_FULL_TEXT = "%1$s的%2$s对%4$s %6$s造成%9$s点伤害。",
|
||||
ACTION_ENCHANT_APPLIED = "附魔",
|
||||
ACTION_ENCHANT_APPLIED_FULL_TEXT = "%1$s在%4$s%5$s上施放了%2$s。",
|
||||
ACTION_ENCHANT_APPLIED_POSSESSIVE = "0",
|
||||
ACTION_ENCHANT_REMOVED = "附魔消失",
|
||||
ACTION_ENCHANT_REMOVED_FULL_TEXT = "%2$s从%4$s%5$s上消失了。",
|
||||
ACTION_ENCHANT_REMOVED_POSSESSIVE = "0",
|
||||
ACTION_ENVIRONMENTAL_DAMAGE = "伤害",
|
||||
ACTION_ENVIRONMENTAL_DAMAGE_DROWNING = "溺水",
|
||||
ACTION_ENVIRONMENTAL_DAMAGE_DROWNING_FULL_TEXT = "%4$s溺水,损失了%9$s点生命值。",
|
||||
ACTION_ENVIRONMENTAL_DAMAGE_DROWNING_POSSESSIVE = "0",
|
||||
ACTION_ENVIRONMENTAL_DAMAGE_FALLING = "掉落",
|
||||
ACTION_ENVIRONMENTAL_DAMAGE_FALLING_FULL_TEXT = "%4$s受到%9$s点掉落伤害。",
|
||||
ACTION_ENVIRONMENTAL_DAMAGE_FALLING_POSSESSIVE = "0",
|
||||
ACTION_ENVIRONMENTAL_DAMAGE_FATIGUE = "疲倦",
|
||||
ACTION_ENVIRONMENTAL_DAMAGE_FATIGUE_FULL_TEXT = "%4$s筋疲力尽,损失了%9$s点生命值。",
|
||||
ACTION_ENVIRONMENTAL_DAMAGE_FATIGUE_POSSESSIVE = "0",
|
||||
ACTION_ENVIRONMENTAL_DAMAGE_FIRE = "火焰",
|
||||
ACTION_ENVIRONMENTAL_DAMAGE_FIRE_FULL_TEXT = "%4$s受到了%9$s点火焰伤害。",
|
||||
ACTION_ENVIRONMENTAL_DAMAGE_FIRE_POSSESSIVE = "0",
|
||||
ACTION_ENVIRONMENTAL_DAMAGE_FULL_TEXT = "%4$s因环境伤害而损失了%9$s点生命值。",
|
||||
ACTION_ENVIRONMENTAL_DAMAGE_LAVA = "岩浆",
|
||||
ACTION_ENVIRONMENTAL_DAMAGE_LAVA_FULL_TEXT = "%4$s在岩浆中,损失了%9$s点生命值。%6$s",
|
||||
ACTION_ENVIRONMENTAL_DAMAGE_LAVA_POSSESSIVE = "0",
|
||||
ACTION_ENVIRONMENTAL_DAMAGE_POSSESSIVE = "0",
|
||||
ACTION_ENVIRONMENTAL_DAMAGE_SLIME = "淤泥",
|
||||
ACTION_ENVIRONMENTAL_DAMAGE_SLIME_FULL_TEXT = "%4$s在淤泥中,损失了%9$s点生命值。%6$s",
|
||||
ACTION_ENVIRONMENTAL_DAMAGE_SLIME_POSSESSIVE = "0",
|
||||
ACTION_PARTY_KILL = "杀死了",
|
||||
ACTION_PARTY_KILL_FULL_TEXT = "%1$s杀死了%4$s!",
|
||||
ACTION_PARTY_KILL_POSSESSIVE = "0",
|
||||
ACTION_PARTY_KILL_UNCONSCIOUS = "被击昏",
|
||||
ACTION_PARTY_KILL_UNCONSCIOUS_FULL_TEXT = "%1$s击昏了%4$s!",
|
||||
ACTION_PARTY_KILL_UNCONSCIOUS_POSSESSIVE = "0",
|
||||
ACTION_RANGED = "射击",
|
||||
ACTION_RANGE_DAMAGE = "命中",
|
||||
ACTION_RANGE_DAMAGE_FULL_TEXT = "%1$s远程射击命中%4$s造成了%5$s伤害。%6$s",
|
||||
ACTION_RANGE_DAMAGE_FULL_TEXT_NO_SOURCE = "一次远程射击命中%4$s造成了%5$s伤害。%6$s",
|
||||
ACTION_RANGE_DAMAGE_POSSESSIVE = "1",
|
||||
ACTION_RANGE_MISSED = "未命中",
|
||||
ACTION_RANGE_MISSED_ABSORB = "(吸收)",
|
||||
ACTION_RANGE_MISSED_ABSORB_FULL_TEXT = "%1$s射击被%4$s吸收了。%6$s",
|
||||
ACTION_RANGE_MISSED_ABSORB_POSSESSIVE = "1",
|
||||
ACTION_RANGE_MISSED_BLOCK = "(格挡)",
|
||||
ACTION_RANGE_MISSED_BLOCK_FULL_TEXT = "%1$s射击被%4$s格挡了。%6$s",
|
||||
ACTION_RANGE_MISSED_BLOCK_POSSESSIVE = "1",
|
||||
ACTION_RANGE_MISSED_DEFLECT = "(偏转)",
|
||||
ACTION_RANGE_MISSED_DEFLECT_FULL_TEXT = "%1$s射击被%4$s偏转了。",
|
||||
ACTION_RANGE_MISSED_DEFLECT_POSSESSIVE = "1",
|
||||
ACTION_RANGE_MISSED_DODGE = "(躲闪)",
|
||||
ACTION_RANGE_MISSED_DODGE_FULL_TEXT = "%1$s射击被%4$s躲闪了。",
|
||||
ACTION_RANGE_MISSED_DODGE_POSSESSIVE = "1",
|
||||
ACTION_RANGE_MISSED_EVADE = "(闪避)",
|
||||
ACTION_RANGE_MISSED_EVADE_FULL_TEXT = "%1$s射击被%4$s闪避了。",
|
||||
ACTION_RANGE_MISSED_EVADE_POSSESSIVE = "1",
|
||||
ACTION_RANGE_MISSED_FULL_TEXT = "%1$s射击未命中%4$s。",
|
||||
ACTION_RANGE_MISSED_IMMUNE = "(免疫)",
|
||||
ACTION_RANGE_MISSED_IMMUNE_FULL_TEXT = "%1$s射击失败。%4$s对此免疫。",
|
||||
ACTION_RANGE_MISSED_IMMUNE_POSSESSIVE = "1",
|
||||
ACTION_RANGE_MISSED_MISFIRE = "(未命中)",
|
||||
ACTION_RANGE_MISSED_MISFIRE_FULL_TEXT = "%1$s射击未命中%4$s。",
|
||||
ACTION_RANGE_MISSED_MISFIRE_POSSESSIVE = "1",
|
||||
ACTION_RANGE_MISSED_MISS = "(未命中)",
|
||||
ACTION_RANGE_MISSED_MISS_FULL_TEXT = "%1$s射击未命中%4$s。",
|
||||
ACTION_RANGE_MISSED_MISS_POSSESSIVE = "1",
|
||||
ACTION_RANGE_MISSED_PARRY = "(招架)",
|
||||
ACTION_RANGE_MISSED_PARRY_FULL_TEXT = "%1$s射击被%4$s招架了。",
|
||||
ACTION_RANGE_MISSED_PARRY_POSSESSIVE = "1",
|
||||
ACTION_RANGE_MISSED_POSSESSIVE = "1",
|
||||
ACTION_RANGE_MISSED_RESIST = "(抵抗)",
|
||||
ACTION_RANGE_MISSED_RESIST_FULL_TEXT = "%1$s射击被%4$s完全抵抗了。%6$s",
|
||||
ACTION_RANGE_MISSED_RESIST_POSSESSIVE = "1",
|
||||
ACTION_SPELL_AURA_APPLIED = "附加",
|
||||
ACTION_SPELL_AURA_APPLIED_BUFF = "获得",
|
||||
ACTION_SPELL_AURA_APPLIED_BUFF_FULL_TEXT = "%4$s获得了%1$s%2$s。",
|
||||
ACTION_SPELL_AURA_APPLIED_BUFF_FULL_TEXT_NO_SOURCE = "%4$s获得了%2$s。",
|
||||
ACTION_SPELL_AURA_APPLIED_BUFF_MASTER = "2",
|
||||
ACTION_SPELL_AURA_APPLIED_BUFF_POSSESSIVE = "1",
|
||||
ACTION_SPELL_AURA_APPLIED_BUFF_WITH_POINTS_FULL_TEXT = "%4$s获得了%1$s %2$s. %11$s",
|
||||
ACTION_SPELL_AURA_APPLIED_BUFF_WITH_POINTS_FULL_TEXT_NO_SOURCE = "%4$s获得了%2$s. %11$s",
|
||||
ACTION_SPELL_AURA_APPLIED_DEBUFF = "影响",
|
||||
ACTION_SPELL_AURA_APPLIED_DEBUFF_FULL_TEXT = "%4$s受到了%1$s%2$s的影响。",
|
||||
ACTION_SPELL_AURA_APPLIED_DEBUFF_FULL_TEXT_NO_SOURCE = "%4$s受到了%2$s的影响。",
|
||||
ACTION_SPELL_AURA_APPLIED_DEBUFF_MASTER = "1",
|
||||
ACTION_SPELL_AURA_APPLIED_DEBUFF_POSSESSIVE = "1",
|
||||
ACTION_SPELL_AURA_APPLIED_DEBUFF_WITH_POINTS_FULL_TEXT = "%4$s受到了%1$s %2$s. %11$s的影响",
|
||||
ACTION_SPELL_AURA_APPLIED_DEBUFF_WITH_POINTS_FULL_TEXT_NO_SOURCE = "%4$s受到了%2$s. %11$s的影响",
|
||||
ACTION_SPELL_AURA_APPLIED_DOSE = "堆叠",
|
||||
ACTION_SPELL_AURA_APPLIED_DOSE_BUFF = "堆叠",
|
||||
ACTION_SPELL_AURA_APPLIED_DOSE_BUFF_FULL_TEXT = "%4$s获得了%1$s%2$s(%9$s)。",
|
||||
ACTION_SPELL_AURA_APPLIED_DOSE_BUFF_FULL_TEXT_NO_SOURCE = "%4$s获得了%2$s(%9$s)。",
|
||||
ACTION_SPELL_AURA_APPLIED_DOSE_BUFF_POSSESSIVE = "1",
|
||||
ACTION_SPELL_AURA_APPLIED_DOSE_DEBUFF = "影响",
|
||||
ACTION_SPELL_AURA_APPLIED_DOSE_DEBUFF_FULL_TEXT = "%4$s受到了%1$s%2$s的影响(%9$s)。",
|
||||
ACTION_SPELL_AURA_APPLIED_DOSE_DEBUFF_FULL_TEXT_NO_SOURCE = "%4$s受到了%2$s的影响(%9$s)。",
|
||||
ACTION_SPELL_AURA_APPLIED_DOSE_DEBUFF_POSSESSIVE = "1",
|
||||
ACTION_SPELL_AURA_APPLIED_MASTER = "2",
|
||||
ACTION_SPELL_AURA_APPLIED_POSSESSIVE = "1",
|
||||
ACTION_SPELL_AURA_BROKEN = "打破",
|
||||
ACTION_SPELL_AURA_BROKEN_BUFF = "打破",
|
||||
ACTION_SPELL_AURA_BROKEN_BUFF_FULL_TEXT = "%1$s打破了%4$s%2$s。",
|
||||
ACTION_SPELL_AURA_BROKEN_BUFF_FULL_TEXT_NO_SOURCE = "%1$s%2$s被某目标打破了。",
|
||||
ACTION_SPELL_AURA_BROKEN_BUFF_POSSESSIVE = "0",
|
||||
ACTION_SPELL_AURA_BROKEN_DEBUFF = "打破",
|
||||
ACTION_SPELL_AURA_BROKEN_DEBUFF_FULL_TEXT = "%1$s打破了%4$s%2$s。",
|
||||
ACTION_SPELL_AURA_BROKEN_DEBUFF_FULL_TEXT_NO_SOURCE = "%1$s%2$s被某目标打破了。",
|
||||
ACTION_SPELL_AURA_BROKEN_DEBUFF_POSSESSIVE = "0",
|
||||
ACTION_SPELL_AURA_BROKEN_SPELL_BUFF = "打破",
|
||||
ACTION_SPELL_AURA_BROKEN_SPELL_BUFF_FULL_TEXT = "%1$s的%5$s打破了%4$s%2$s。",
|
||||
ACTION_SPELL_AURA_BROKEN_SPELL_BUFF_FULL_TEXT_NO_SOURCE = "%5$s打破了%4$s%2$s。",
|
||||
ACTION_SPELL_AURA_BROKEN_SPELL_BUFF_POSSESSIVE = "1",
|
||||
ACTION_SPELL_AURA_BROKEN_SPELL_DEBUFF = "打破",
|
||||
ACTION_SPELL_AURA_BROKEN_SPELL_DEBUFF_FULL_TEXT = "%1$s的%5$s打破了%4$s%2$s。",
|
||||
ACTION_SPELL_AURA_BROKEN_SPELL_DEBUFF_FULL_TEXT_NO_SOURCE = "%5$s打破了%4$s%2$s。",
|
||||
ACTION_SPELL_AURA_BROKEN_SPELL_DEBUFF_POSSESSIVE = "1",
|
||||
ACTION_SPELL_AURA_REFRESH = "被刷新",
|
||||
ACTION_SPELL_AURA_REFRESH_BUFF = "被刷新",
|
||||
ACTION_SPELL_AURA_REFRESH_BUFF_FULL_TEXT = "%1$s%2$s在%4$s身上刷新了。",
|
||||
ACTION_SPELL_AURA_REFRESH_BUFF_FULL_TEXT_NO_SOURCE = "%2$s在%4$s身上刷新了。",
|
||||
ACTION_SPELL_AURA_REFRESH_BUFF_MASTER = "2",
|
||||
ACTION_SPELL_AURA_REFRESH_BUFF_POSSESSIVE = "1",
|
||||
ACTION_SPELL_AURA_REFRESH_BUFF_WITH_POINTS_FULL_TEXT = "%1$s %2$s在%4$s. %11$s身上刷新了",
|
||||
ACTION_SPELL_AURA_REFRESH_BUFF_WITH_POINTS_FULL_TEXT_NO_SOURCE = "%2$s在%4$s. %11$s的身上刷新了",
|
||||
ACTION_SPELL_AURA_REFRESH_DEBUFF = "被刷新",
|
||||
ACTION_SPELL_AURA_REFRESH_DEBUFF_FULL_TEXT = "%1$s%2$s在%4$s身上刷新了。",
|
||||
ACTION_SPELL_AURA_REFRESH_DEBUFF_FULL_TEXT_NO_SOURCE = "%2$s在%4$s身上刷新了。",
|
||||
ACTION_SPELL_AURA_REFRESH_DEBUFF_MASTER = "1",
|
||||
ACTION_SPELL_AURA_REFRESH_DEBUFF_POSSESSIVE = "1",
|
||||
ACTION_SPELL_AURA_REFRESH_DEBUFF_WITH_POINTS_FULL_TEXT = "%1$s %2$s在%4$s. %11$s身上刷新了",
|
||||
ACTION_SPELL_AURA_REFRESH_DEBUFF_WITH_POINTS_FULL_TEXT_NO_SOURCE = "%2$s在%4$s. %11$s的身上刷新了",
|
||||
ACTION_SPELL_AURA_REFRESH_MASTER = "2",
|
||||
ACTION_SPELL_AURA_REMOVED = "移除",
|
||||
ACTION_SPELL_AURA_REMOVED_BUFF = "消失",
|
||||
ACTION_SPELL_AURA_REMOVED_BUFF_FULL_TEXT = "%1$s%2$s从%4$s身上消失了。",
|
||||
ACTION_SPELL_AURA_REMOVED_BUFF_FULL_TEXT_NO_SOURCE = "%2$s从%4$s身上消失了。",
|
||||
ACTION_SPELL_AURA_REMOVED_BUFF_POSSESSIVE = "1",
|
||||
ACTION_SPELL_AURA_REMOVED_BUFF_WITH_POINTS_FULL_TEXT = "%1$s %2$s从%4$s. %11$s身上消失了",
|
||||
ACTION_SPELL_AURA_REMOVED_BUFF_WITH_POINTS_FULL_TEXT_NO_SOURCE = "%2$s从%4$s. %11$s的身上消失了",
|
||||
ACTION_SPELL_AURA_REMOVED_DEBUFF = "消散",
|
||||
ACTION_SPELL_AURA_REMOVED_DEBUFF_FULL_TEXT = "%1$s%2$s从%4$s身上消散了。",
|
||||
ACTION_SPELL_AURA_REMOVED_DEBUFF_FULL_TEXT_NO_SOURCE = "%2$s从%4$s身上消散了。",
|
||||
ACTION_SPELL_AURA_REMOVED_DEBUFF_POSSESSIVE = "1",
|
||||
ACTION_SPELL_AURA_REMOVED_DEBUFF_WITH_POINTS_FULL_TEXT = "%1$s %2$s从%4$s. %11$s身上消散了",
|
||||
ACTION_SPELL_AURA_REMOVED_DEBUFF_WITH_POINTS_FULL_TEXT_NO_SOURCE = "%2$s从%4$s. %11$s的身上消散了",
|
||||
ACTION_SPELL_AURA_REMOVED_DOSE = "降低",
|
||||
ACTION_SPELL_AURA_REMOVED_DOSE_BUFF = "降低",
|
||||
ACTION_SPELL_AURA_REMOVED_DOSE_BUFF_FULL_TEXT = "%1$s%2$s(%9$s)衰减了。",
|
||||
ACTION_SPELL_AURA_REMOVED_DOSE_BUFF_FULL_TEXT_NO_SOURCE = "%2$s(%9$s)衰减了。",
|
||||
ACTION_SPELL_AURA_REMOVED_DOSE_BUFF_POSSESSIVE = "1",
|
||||
ACTION_SPELL_AURA_REMOVED_DOSE_DEBUFF = "衰减",
|
||||
ACTION_SPELL_AURA_REMOVED_DOSE_DEBUFF_FULL_TEXT = "%1$s%2$s(%9$s)消退了。",
|
||||
ACTION_SPELL_AURA_REMOVED_DOSE_DEBUFF_FULL_TEXT_NO_SOURCE = "%2$s(%9$s)消退了。",
|
||||
ACTION_SPELL_AURA_REMOVED_DOSE_DEBUFF_POSSESSIVE = "1",
|
||||
ACTION_SPELL_AURA_REMOVED_FULL_TEXT = "%1$s%2$s被从%4$s身上移除了。",
|
||||
ACTION_SPELL_AURA_REMOVED_FULL_TEXT_NO_SOURCE = "%1$s%2$s被从%4$s身上移除了。",
|
||||
ACTION_SPELL_AURA_REMOVED_POSSESSIVE = "1",
|
||||
ACTION_SPELL_BUILDING_DAMAGE = "打击",
|
||||
ACTION_SPELL_BUILDING_DAMAGE_FULL_TEXT = "%1$s%2$s打击%4$s造成了%5$s伤害。%6$s",
|
||||
ACTION_SPELL_BUILDING_DAMAGE_FULL_TEXT_NO_SOURCE = "%2$s打击%4$s造成了%5$s伤害。%6$s",
|
||||
ACTION_SPELL_BUILDING_DAMAGE_MASTER = "1",
|
||||
ACTION_SPELL_BUILDING_DAMAGE_POSSESSIVE = "1",
|
||||
ACTION_SPELL_BUILDING_HEAL = "修理",
|
||||
ACTION_SPELL_BUILDING_HEAL_FULL_TEXT = "%1$s%2$s修理%4$s,恢复了%9$s点生命值。%6$s",
|
||||
ACTION_SPELL_BUILDING_HEAL_FULL_TEXT_NO_SOURCE = "%2$s修理%4$s,恢复了%9$s点生命值。%6$s",
|
||||
ACTION_SPELL_BUILDING_HEAL_POSSESSIVE = "1",
|
||||
ACTION_SPELL_CAST_FAILED = "失败",
|
||||
ACTION_SPELL_CAST_FAILED_FULL_TEXT = "%1$s%2$s未能施放。%6$s",
|
||||
ACTION_SPELL_CAST_FAILED_MASTER = "1",
|
||||
ACTION_SPELL_CAST_FAILED_POSSESSIVE = "1",
|
||||
ACTION_SPELL_CAST_START = "开始施放",
|
||||
ACTION_SPELL_CAST_START_FULL_TEXT = "%1$s开始向%4$s施放%2$s。",
|
||||
ACTION_SPELL_CAST_START_FULL_TEXT_NO_DEST = "%1$s开始施放%2$s。",
|
||||
ACTION_SPELL_CAST_START_FULL_TEXT_NO_SOURCE = "某物体开始对%4$s施放%2$s。",
|
||||
ACTION_SPELL_CAST_START_MASTER = "2",
|
||||
ACTION_SPELL_CAST_START_POSSESSIVE = "0",
|
||||
ACTION_SPELL_CAST_SUCCESS = "施放",
|
||||
ACTION_SPELL_CAST_SUCCESS_FULL_TEXT = "%1$s向%4$s施放了%2$s。",
|
||||
ACTION_SPELL_CAST_SUCCESS_FULL_TEXT_NO_DEST = "%1$s施放了%2$s。",
|
||||
ACTION_SPELL_CAST_SUCCESS_FULL_TEXT_NO_SOURCE = "某目标对%4$s施放了%2$s。",
|
||||
ACTION_SPELL_CAST_SUCCESS_MASTER = "2",
|
||||
ACTION_SPELL_CAST_SUCCESS_POSSESSIVE = "0",
|
||||
ACTION_SPELL_CREATE = "制造",
|
||||
ACTION_SPELL_CREATE_FULL_TEXT = "%1$s%2$s制造了一个%4$s。%6$s",
|
||||
ACTION_SPELL_CREATE_FULL_TEXT_NO_SOURCE = "%2$s制造了一个%4$s。%6$s",
|
||||
ACTION_SPELL_CREATE_POSSESSIVE = "1",
|
||||
ACTION_SPELL_DAMAGE = "命中",
|
||||
ACTION_SPELL_DAMAGE_FULL_TEXT = "%1$s%2$s命中%4$s造成%5$s伤害。%6$s",
|
||||
ACTION_SPELL_DAMAGE_FULL_TEXT_NO_SOURCE = "%2$s命中%4$s,造成%5$s点伤害。%6$s",
|
||||
ACTION_SPELL_DAMAGE_MASTER = "1",
|
||||
ACTION_SPELL_DAMAGE_POSSESSIVE = "1",
|
||||
ACTION_SPELL_DISPEL = "驱散",
|
||||
ACTION_SPELL_DISPEL_BUFF = "驱散",
|
||||
ACTION_SPELL_DISPEL_BUFF_FULL_TEXT = "%4$s%5$s被%1$s%2$s驱散了。",
|
||||
ACTION_SPELL_DISPEL_BUFF_FULL_TEXT_NO_SOURCE = "%4$s%5$s被%2$s驱散了。",
|
||||
ACTION_SPELL_DISPEL_BUFF_POSSESSIVE = "1",
|
||||
ACTION_SPELL_DISPEL_DEBUFF = "净化",
|
||||
ACTION_SPELL_DISPEL_DEBUFF_FULL_TEXT = "%4$s%5$s被%1$s%2$s净化了。",
|
||||
ACTION_SPELL_DISPEL_DEBUFF_FULL_TEXT_NO_SOURCE = "%4$s%5$s被%2$s净化了。",
|
||||
ACTION_SPELL_DISPEL_DEBUFF_POSSESSIVE = "1",
|
||||
ACTION_SPELL_DISPEL_FAILED = "驱散失败",
|
||||
ACTION_SPELL_DISPEL_FAILED_FULL_TEXT = "%1$s%2$s未能驱散%4$s%5$s。",
|
||||
ACTION_SPELL_DISPEL_FAILED_FULL_TEXT_NO_SOURCE = "%2$s未能驱散%4$s%5$s。",
|
||||
ACTION_SPELL_DISPEL_FAILED_POSSESSIVE = "1",
|
||||
ACTION_SPELL_DISPEL_POSSESSIVE = "1",
|
||||
ACTION_SPELL_DRAIN = "吸取",
|
||||
ACTION_SPELL_DRAIN_FULL_TEXT = "%1$s%2$s从%4$s身上吸取了%9$s点%8$s。",
|
||||
ACTION_SPELL_DRAIN_FULL_TEXT_NO_SOURCE = "%2$s从%4$s身上吸取了%9$s点%8$s。",
|
||||
ACTION_SPELL_DRAIN_POSSESSIVE = "1",
|
||||
ACTION_SPELL_DURABILITY_DAMAGE = "耐久度下降",
|
||||
ACTION_SPELL_DURABILITY_DAMAGE_ALL = "完全耐久度下降",
|
||||
ACTION_SPELL_DURABILITY_DAMAGE_ALL_FULL_TEXT = "%1$s%2$s对%4$s造成伤害:所有装备受损。",
|
||||
ACTION_SPELL_DURABILITY_DAMAGE_ALL_POSSESSIVE = "1",
|
||||
ACTION_SPELL_DURABILITY_DAMAGE_FULL_TEXT = "%1$s%2$s对%4$s造成伤害:%5$s受损。",
|
||||
ACTION_SPELL_DURABILITY_DAMAGE_POSSESSIVE = "1",
|
||||
ACTION_SPELL_ENERGIZE = "补充",
|
||||
ACTION_SPELL_ENERGIZE_FULL_TEXT = "%4$s因%1$s%2$s获得了%9$s点%8$s。",
|
||||
ACTION_SPELL_ENERGIZE_FULL_TEXT_NO_SOURCE = "%4$s因%2$s获得了%9$s点%8$s。",
|
||||
ACTION_SPELL_ENERGIZE_POSSESSIVE = "1",
|
||||
ACTION_SPELL_ENERGIZE_RESULT = "获得%9$s点%8$s",
|
||||
ACTION_SPELL_EXTRA_ATTACKS = "获得额外攻击",
|
||||
ACTION_SPELL_EXTRA_ATTACKS_FULL_TEXT = "%1$s通过%2$s获得了%9$s次额外攻击。",
|
||||
ACTION_SPELL_EXTRA_ATTACKS_FULL_TEXT_NO_SOURCE = "通过%2$s获得%9$s次额外攻击。",
|
||||
ACTION_SPELL_EXTRA_ATTACKS_POSSESSIVE = "1",
|
||||
ACTION_SPELL_HEAL = "治疗",
|
||||
ACTION_SPELL_HEAL_FULL_TEXT = "%1$s%2$s为%4$s恢复了%9$s点生命值。%6$s",
|
||||
ACTION_SPELL_HEAL_FULL_TEXT_NO_SOURCE = "%2$s为%4$s恢复了%9$s点生命值。%6$s",
|
||||
ACTION_SPELL_HEAL_POSSESSIVE = "1",
|
||||
ACTION_SPELL_INSTAKILL = "杀死了",
|
||||
ACTION_SPELL_INSTAKILL_FULL_TEXT = "%1$s%2$s杀死了%4$s。",
|
||||
ACTION_SPELL_INSTAKILL_FULL_TEXT_NO_SOURCE = "%2$s杀死了%4$s。",
|
||||
ACTION_SPELL_INSTAKILL_POSSESSIVE = "1",
|
||||
ACTION_SPELL_INSTAKILL_UNCONSCIOUS = "被击昏",
|
||||
ACTION_SPELL_INSTAKILL_UNCONSCIOUS_FULL_TEXT = "%1$s %2$s击昏了%4$s。",
|
||||
ACTION_SPELL_INSTAKILL_UNCONSCIOUS_FULL_TEXT_NO_SOURCE = "%2$s击昏了%4$s。",
|
||||
ACTION_SPELL_INSTAKILL_UNCONSCIOUS_POSSESSIVE = "1",
|
||||
ACTION_SPELL_INTERRUPT = "打断",
|
||||
ACTION_SPELL_INTERRUPT_FULL_TEXT = "%1$s%2$s打断了%4$s%5$s。",
|
||||
ACTION_SPELL_INTERRUPT_FULL_TEXT_NO_SOURCE = "%2$s打断了%4$s%5$s。",
|
||||
ACTION_SPELL_INTERRUPT_POSSESSIVE = "1",
|
||||
ACTION_SPELL_LEECH = "吸取",
|
||||
ACTION_SPELL_LEECH_FULL_TEXT = "%1$s%2$s从%4$s身上吸取了%9$s点%8$s。%1$s获得了%10$s点%8$s。",
|
||||
ACTION_SPELL_LEECH_FULL_TEXT_NO_SOURCE = "%2$s从%4$s身上吸取了%9$s点%8$s。",
|
||||
ACTION_SPELL_LEECH_POSSESSIVE = "1",
|
||||
ACTION_SPELL_LEECH_RESULT = "获得%10$s点%8$s",
|
||||
ACTION_SPELL_MISSED = "未命中",
|
||||
ACTION_SPELL_MISSED_ABSORB = "被吸收",
|
||||
ACTION_SPELL_MISSED_ABSORB_FULL_TEXT = "%1$s%2$s被%4$s吸收了。%6$s",
|
||||
ACTION_SPELL_MISSED_ABSORB_FULL_TEXT_NO_SOURCE = "%2$s被%4$s吸收了。%6$s",
|
||||
ACTION_SPELL_MISSED_ABSORB_POSSESSIVE = "1",
|
||||
ACTION_SPELL_MISSED_BLOCK = "被格挡",
|
||||
ACTION_SPELL_MISSED_BLOCK_FULL_TEXT = "%1$s%2$s被%4$s格挡了。%6$s",
|
||||
ACTION_SPELL_MISSED_BLOCK_FULL_TEXT_NO_SOURCE = "%2$s被%4$s格挡了。%6$s",
|
||||
ACTION_SPELL_MISSED_BLOCK_POSSESSIVE = "1",
|
||||
ACTION_SPELL_MISSED_DEFLECT = "偏转",
|
||||
ACTION_SPELL_MISSED_DEFLECT_FULL_TEXT = "%1$s%2$s被%4$s偏转了。",
|
||||
ACTION_SPELL_MISSED_DEFLECT_FULL_TEXT_NO_SOURCE = "%2$s被%4$s偏转了。",
|
||||
ACTION_SPELL_MISSED_DEFLECT_POSSESSIVE = "1",
|
||||
ACTION_SPELL_MISSED_DODGE = "被躲闪",
|
||||
ACTION_SPELL_MISSED_DODGE_FULL_TEXT = "%1$s%2$s被%4$s躲闪了。",
|
||||
ACTION_SPELL_MISSED_DODGE_FULL_TEXT_NO_SOURCE = "%2$s被%4$s躲闪了。",
|
||||
ACTION_SPELL_MISSED_DODGE_POSSESSIVE = "1",
|
||||
ACTION_SPELL_MISSED_EVADE = "被闪避",
|
||||
ACTION_SPELL_MISSED_EVADE_FULL_TEXT = "%1$s%2$s被%4$s闪避了。",
|
||||
ACTION_SPELL_MISSED_EVADE_FULL_TEXT_NO_SOURCE = "%2$s被%4$s闪避了。",
|
||||
ACTION_SPELL_MISSED_EVADE_POSSESSIVE = "1",
|
||||
ACTION_SPELL_MISSED_FULL_TEXT = "%1$s%2$s未命中%4$s。",
|
||||
ACTION_SPELL_MISSED_FULL_TEXT_NO_SOURCE = "%2$s未命中%4$s。",
|
||||
ACTION_SPELL_MISSED_IMMUNE = "免疫",
|
||||
ACTION_SPELL_MISSED_IMMUNE_FULL_TEXT = "%1$s%2$s失败。%4$s对此免疫。",
|
||||
ACTION_SPELL_MISSED_IMMUNE_FULL_TEXT_NO_SOURCE = "%2$s失败。%4$s对此免疫。",
|
||||
ACTION_SPELL_MISSED_MISFIRE = "未命中",
|
||||
ACTION_SPELL_MISSED_MISFIRE_FULL_TEXT = "%1$s%2$s未命中%4$s。",
|
||||
ACTION_SPELL_MISSED_MISFIRE_FULL_TEXT_NO_SOURCE = "%2$s未命中%4$s。",
|
||||
ACTION_SPELL_MISSED_MISFIRE_POSSESSIVE = "1",
|
||||
ACTION_SPELL_MISSED_MISS = "未命中",
|
||||
ACTION_SPELL_MISSED_MISS_FULL_TEXT = "%1$s%2$s未命中%4$s。",
|
||||
ACTION_SPELL_MISSED_MISS_FULL_TEXT_NO_SOURCE = "%2$s未命中%4$s。",
|
||||
ACTION_SPELL_MISSED_MISS_POSSESSIVE = "1",
|
||||
ACTION_SPELL_MISSED_PARRY = "被招架",
|
||||
ACTION_SPELL_MISSED_PARRY_FULL_TEXT = "%1$s%2$s被%4$s招架了。",
|
||||
ACTION_SPELL_MISSED_PARRY_FULL_TEXT_NO_SOURCE = "%2$s被%4$s招架了。",
|
||||
ACTION_SPELL_MISSED_PARRY_POSSESSIVE = "1",
|
||||
ACTION_SPELL_MISSED_POSSESSIVE = "1",
|
||||
ACTION_SPELL_MISSED_REFLECT = "被反射",
|
||||
ACTION_SPELL_MISSED_REFLECT_FULL_TEXT = "%1$s%2$s被%4$s反射了。",
|
||||
ACTION_SPELL_MISSED_REFLECT_FULL_TEXT_NO_SOURCE = "%2$s被%4$s反射了。",
|
||||
ACTION_SPELL_MISSED_RESIST = "被抵抗",
|
||||
ACTION_SPELL_MISSED_RESIST_FULL_TEXT = "%1$s%2$s被%4$s完全抵抗了。%6$s",
|
||||
ACTION_SPELL_MISSED_RESIST_FULL_TEXT_NO_SOURCE = "%2$s被%4$s完全抵抗了。%6$s",
|
||||
ACTION_SPELL_MISSED_RESIST_POSSESSIVE = "1",
|
||||
ACTION_SPELL_PERIODIC_DAMAGE = "伤害",
|
||||
ACTION_SPELL_PERIODIC_DAMAGE_FULL_TEXT = "%4$s因%1$s%2$s受到了%5$s伤害。%6$s",
|
||||
ACTION_SPELL_PERIODIC_DAMAGE_FULL_TEXT_NO_SOURCE = "%4$s因%2$s受到了%5$s伤害。%6$s",
|
||||
ACTION_SPELL_PERIODIC_DAMAGE_POSSESSIVE = "1",
|
||||
ACTION_SPELL_PERIODIC_DRAIN = "吸取",
|
||||
ACTION_SPELL_PERIODIC_DRAIN_FULL_TEXT = "%1$s%2$s从%4$s身上吸取了%9$s点%8$s。",
|
||||
ACTION_SPELL_PERIODIC_DRAIN_FULL_TEXT_NO_SOURCE = "%2$s从%4$s身上吸取了%9$s点%8$s。",
|
||||
ACTION_SPELL_PERIODIC_DRAIN_POSSESSIVE = "1",
|
||||
ACTION_SPELL_PERIODIC_ENERGIZE = "补充",
|
||||
ACTION_SPELL_PERIODIC_ENERGIZE_FULL_TEXT = "%4$s因%1$s%2$s获得了%9$s点%8$s。",
|
||||
ACTION_SPELL_PERIODIC_ENERGIZE_FULL_TEXT_NO_SOURCE = "%4$s因%2$s获得了%9$s点%8$s。",
|
||||
ACTION_SPELL_PERIODIC_ENERGIZE_POSSESSIVE = "1",
|
||||
ACTION_SPELL_PERIODIC_ENERGIZE_RESULT = "获得$extraAmount点%8$s",
|
||||
ACTION_SPELL_PERIODIC_HEAL = "治疗",
|
||||
ACTION_SPELL_PERIODIC_HEAL_FULL_TEXT = "%4$s因%1$s%2$s获得了%9$s点生命值。%6$s",
|
||||
ACTION_SPELL_PERIODIC_HEAL_FULL_TEXT_NO_SOURCE = "%4$s因%2$s恢复了%9$s点生命值。%6$s",
|
||||
ACTION_SPELL_PERIODIC_HEAL_POSSESSIVE = "1",
|
||||
ACTION_SPELL_PERIODIC_LEECH = "吸取",
|
||||
ACTION_SPELL_PERIODIC_LEECH_FULL_TEXT = "%1$s%2$s从%4$s身上吸取了%9$s点%8$s。%1$s获得了%10$s点%8$s。",
|
||||
ACTION_SPELL_PERIODIC_LEECH_FULL_TEXT_NO_SOURCE = "%2$s从%4$s身上吸取了%9$s点%8$s。%1$s获得了%10$s点%8$s。",
|
||||
ACTION_SPELL_PERIODIC_LEECH_POSSESSIVE = "1",
|
||||
ACTION_SPELL_PERIODIC_LEECH_RESULT = "(获得%10$s点%8$s)",
|
||||
ACTION_SPELL_PERIODIC_MISSED = "未命中",
|
||||
ACTION_SPELL_PERIODIC_MISSED_ABSORB = "(%1$s 吸收)",
|
||||
ACTION_SPELL_PERIODIC_MISSED_ABSORB_FULL_TEXT = "%1$s%2$s被%4$s吸收了。%6$s",
|
||||
ACTION_SPELL_PERIODIC_MISSED_ABSORB_FULL_TEXT_NO_SOURCE = "%2$s暂时被%4$s吸收了。%6$s",
|
||||
ACTION_SPELL_PERIODIC_MISSED_ABSORB_POSSESSIVE = "1",
|
||||
ACTION_SPELL_PERIODIC_MISSED_BLOCK = "(周期伤害被格挡)",
|
||||
ACTION_SPELL_PERIODIC_MISSED_BLOCK_FULL_TEXT = "%1$s%2$s暂时被%4$s格挡了。%6$s",
|
||||
ACTION_SPELL_PERIODIC_MISSED_BLOCK_FULL_TEXT_NO_SOURCE = "%2$s暂时被%4$s格挡了。%6$s",
|
||||
ACTION_SPELL_PERIODIC_MISSED_BLOCK_POSSESSIVE = "1",
|
||||
ACTION_SPELL_PERIODIC_MISSED_DEFLECTED = "(周期伤害被偏转)",
|
||||
ACTION_SPELL_PERIODIC_MISSED_DEFLECTED_FULL_TEXT = "%1$s%2$s暂时被%4$s偏转了。%6$s",
|
||||
ACTION_SPELL_PERIODIC_MISSED_DEFLECTED_FULL_TEXT_NO_SOURCE = "%2$s暂时被%4$s偏转了。%6$s",
|
||||
ACTION_SPELL_PERIODIC_MISSED_DEFLECTED_POSSESSIVE = "1",
|
||||
ACTION_SPELL_PERIODIC_MISSED_DODGE = "(周期伤害被躲闪)",
|
||||
ACTION_SPELL_PERIODIC_MISSED_DODGE_FULL_TEXT = "%1$s%2$s暂时被%4$s躲闪了。%6$s",
|
||||
ACTION_SPELL_PERIODIC_MISSED_DODGE_FULL_TEXT_NO_SOURCE = "%2$s暂时被%4$s躲闪了。%6$s",
|
||||
ACTION_SPELL_PERIODIC_MISSED_DODGE_POSSESSIVE = "1",
|
||||
ACTION_SPELL_PERIODIC_MISSED_EVADED = "(周期伤害被闪避)",
|
||||
ACTION_SPELL_PERIODIC_MISSED_EVADED_FULL_TEXT = "%1$s%2$s暂时被%4$s闪避了。%6$s",
|
||||
ACTION_SPELL_PERIODIC_MISSED_EVADED_FULL_TEXT_NO_SOURCE = "%2$s暂时被%4$s闪避了。%6$s",
|
||||
ACTION_SPELL_PERIODIC_MISSED_EVADED_POSSESSIVE = "1",
|
||||
ACTION_SPELL_PERIODIC_MISSED_FULL_TEXT = "%1$s%2$s暂时未能对%4$s产生影响。%6$s",
|
||||
ACTION_SPELL_PERIODIC_MISSED_FULL_TEXT_NO_SOURCE = "%2$s暂时未能影响%4$s。%6$s",
|
||||
ACTION_SPELL_PERIODIC_MISSED_IMMUNE = "(免疫)",
|
||||
ACTION_SPELL_PERIODIC_MISSED_IMMUNE_FULL_TEXT = "%4$s对%1$s %2$s免疫。%6$s",
|
||||
ACTION_SPELL_PERIODIC_MISSED_IMMUNE_FULL_TEXT_NO_SOURCE = "%4$s对%2$s免疫。%6$s",
|
||||
ACTION_SPELL_PERIODIC_MISSED_IMMUNE_POSSESSIVE = "1",
|
||||
ACTION_SPELL_PERIODIC_MISSED_MISS = "(周期伤害未命中)",
|
||||
ACTION_SPELL_PERIODIC_MISSED_MISS_FULL_TEXT = "%1$s%2$s暂时未命中%4$s。%6$s",
|
||||
ACTION_SPELL_PERIODIC_MISSED_MISS_FULL_TEXT_NO_SOURCE = "%2$s暂时未命中%4$s。%6$s",
|
||||
ACTION_SPELL_PERIODIC_MISSED_MISS_POSSESSIVE = "1",
|
||||
ACTION_SPELL_PERIODIC_MISSED_PARRY = "(周期伤害被招架)",
|
||||
ACTION_SPELL_PERIODIC_MISSED_PARRY_FULL_TEXT = "%1$s%2$s暂时被%4$s招架了。%6$s",
|
||||
ACTION_SPELL_PERIODIC_MISSED_PARRY_FULL_TEXT_NO_SOURCE = "%2$s暂时被%4$s招架了。%6$s",
|
||||
ACTION_SPELL_PERIODIC_MISSED_PARRY_POSSESSIVE = "1",
|
||||
ACTION_SPELL_PERIODIC_MISSED_POSSESSIVE = "1",
|
||||
ACTION_SPELL_PERIODIC_MISSED_RESIST = "(周期伤害被抵抗)",
|
||||
ACTION_SPELL_PERIODIC_MISSED_RESIST_FULL_TEXT = "%1$s%2$s未能对%4$s产生影响。%4$s抵抗了。%6$s",
|
||||
ACTION_SPELL_PERIODIC_MISSED_RESIST_FULL_TEXT_NO_SOURCE = "%2$s未能影响%4$s。%4$s抵抗了。%6$s",
|
||||
ACTION_SPELL_PERIODIC_MISSED_RESIST_POSSESSIVE = "1",
|
||||
ACTION_SPELL_RESURRECT = "复活",
|
||||
ACTION_SPELL_RESURRECT_FULL_TEXT = "%1$s%2$s复活了%4$s。%6$s",
|
||||
ACTION_SPELL_RESURRECT_FULL_TEXT_NO_SOURCE = "%2$s复活了%4$s。%6$s",
|
||||
ACTION_SPELL_RESURRECT_POSSESSIVE = "1",
|
||||
ACTION_SPELL_STOLEN = "偷取",
|
||||
ACTION_SPELL_STOLEN_BUFF = "偷取",
|
||||
ACTION_SPELL_STOLEN_BUFF_FULL_TEXT = "%1$s%2$s偷取了%4$s%5$s。",
|
||||
ACTION_SPELL_STOLEN_BUFF_FULL_TEXT_NO_SOURCE = "%2$s偷取了%4$s%5$s。",
|
||||
ACTION_SPELL_STOLEN_BUFF_POSSESSIVE = "1",
|
||||
ACTION_SPELL_STOLEN_BUFF__POSSESSIVE = "1",
|
||||
ACTION_SPELL_STOLEN_DEBUFF = "偷取",
|
||||
ACTION_SPELL_STOLEN_DEBUFF_FULL_TEXT = "%1$s%2$s将%4$s$extraSpell转移给了%1$s。",
|
||||
ACTION_SPELL_STOLEN_DEBUFF_FULL_TEXT_NO_SOURCE = "%2$s转移了%4$s$extraSpell。",
|
||||
ACTION_SPELL_STOLEN_DEBUFF_POSSESSIVE = "1",
|
||||
ACTION_SPELL_STOLEN_FULL_TEXT = "%1$s%2$s偷取了%4$s%5$s。",
|
||||
ACTION_SPELL_STOLEN_FULL_TEXT_NO_SOURCE = "%2$s偷取了%4$s%5$s。",
|
||||
ACTION_SPELL_STOLEN_POSSESSIVE = "1",
|
||||
ACTION_SPELL_SUMMON = "召唤",
|
||||
ACTION_SPELL_SUMMON_FULL_TEXT = "%1$s%2$s召唤了%4$s。%6$s",
|
||||
ACTION_SPELL_SUMMON_FULL_TEXT_NO_SOURCE = "%2$s召唤了%4$s。%6$s",
|
||||
ACTION_SPELL_SUMMON_POSSESSIVE = "1",
|
||||
ACTION_SWING = "近战攻击",
|
||||
ACTION_SWING_DAMAGE = "命中",
|
||||
ACTION_SWING_DAMAGE_FULL_TEXT = "%1$s近战攻击命中%4$s造成了%5$s伤害。%6$s",
|
||||
ACTION_SWING_DAMAGE_FULL_TEXT_NO_SOURCE = "一次近战攻击命中%4$s造成了%5$s伤害。%6$s",
|
||||
ACTION_SWING_DAMAGE_POSSESSIVE = "1",
|
||||
ACTION_SWING_MISSED = "未命中",
|
||||
ACTION_SWING_MISSED_ABSORB = "(吸收)",
|
||||
ACTION_SWING_MISSED_ABSORB_FULL_TEXT = "%1$s攻击被%4$s吸收了。%6$s",
|
||||
ACTION_SWING_MISSED_ABSORB_POSSESSIVE = "1",
|
||||
ACTION_SWING_MISSED_BLOCK = "(格挡)",
|
||||
ACTION_SWING_MISSED_BLOCK_FULL_TEXT = "%1$s攻击被%4$s格挡了。%6$s",
|
||||
ACTION_SWING_MISSED_BLOCK_POSSESSIVE = "1",
|
||||
ACTION_SWING_MISSED_DEFLECT = "(偏转)",
|
||||
ACTION_SWING_MISSED_DEFLECT_FULL_TEXT = "%1$s攻击被%4$s偏转了。",
|
||||
ACTION_SWING_MISSED_DEFLECT_POSSESSIVE = "1",
|
||||
ACTION_SWING_MISSED_DODGE = "(躲闪)",
|
||||
ACTION_SWING_MISSED_DODGE_FULL_TEXT = "%1$s攻击被%4$s躲闪了。",
|
||||
ACTION_SWING_MISSED_DODGE_POSSESSIVE = "1",
|
||||
ACTION_SWING_MISSED_EVADE = "(闪避)",
|
||||
ACTION_SWING_MISSED_EVADE_FULL_TEXT = "%1$s攻击被%4$s闪避了。",
|
||||
ACTION_SWING_MISSED_EVADE_POSSESSIVE = "1",
|
||||
ACTION_SWING_MISSED_FULL_TEXT = "%1$s攻击未命中%4$s。",
|
||||
ACTION_SWING_MISSED_IMMUNE = "(免疫)",
|
||||
ACTION_SWING_MISSED_IMMUNE_FULL_TEXT = "%1$s攻击失败。%4$s对此免疫。",
|
||||
ACTION_SWING_MISSED_IMMUNE_POSSESSIVE = "1",
|
||||
ACTION_SWING_MISSED_MISFIRE = "(未命中)",
|
||||
ACTION_SWING_MISSED_MISFIRE_FULL_TEXT = "%1$s攻击未命中%4$s。",
|
||||
ACTION_SWING_MISSED_MISFIRE_POSSESSIVE = "1",
|
||||
ACTION_SWING_MISSED_MISS = "(未命中)",
|
||||
ACTION_SWING_MISSED_MISS_FULL_TEXT = "%1$s攻击未命中%4$s。",
|
||||
ACTION_SWING_MISSED_MISS_POSSESSIVE = "1",
|
||||
ACTION_SWING_MISSED_PARRY = "(招架)",
|
||||
ACTION_SWING_MISSED_PARRY_FULL_TEXT = "%1$s攻击被%4$s招架了。",
|
||||
ACTION_SWING_MISSED_PARRY_POSSESSIVE = "1",
|
||||
ACTION_SWING_MISSED_POSSESSIVE = "1",
|
||||
ACTION_SWING_MISSED_RESIST = "(抵抗)",
|
||||
ACTION_SWING_MISSED_RESIST_FULL_TEXT = "%1$s攻击被%4$s完全抵抗了。%6$s",
|
||||
ACTION_SWING_MISSED_RESIST_POSSESSIVE = "1",
|
||||
ACTION_UNIT_BECCOMES_UNCONSCIOUS = "倒下",
|
||||
ACTION_UNIT_BECOMES_UNCONSCIOUS_FULL_TEXT = "%4$s倒下了。",
|
||||
ACTION_UNIT_BECOMES_UNCONSCIOUS_POSSESSIVE = "0",
|
||||
ACTION_UNIT_DESTROYED = "摧毁",
|
||||
ACTION_UNIT_DESTROYED_FULL_TEXT = "%4$s被摧毁了。",
|
||||
ACTION_UNIT_DESTROYED_POSSESSIVE = "0",
|
||||
ACTION_UNIT_DIED = "死亡",
|
||||
ACTION_UNIT_DIED_FULL_TEXT = "%4$s死亡了。",
|
||||
ACTION_UNIT_DIED_POSSESSIVE = "0",
|
||||
ACTION_UNIT_DISSIPATES = "消散",
|
||||
ACTION_UNIT_DISSIPATES_FULL_TEXT = "%4$s消散了。",
|
||||
ACTION_UNIT_DISSIPATES_POSSESSIVE = "0",
|
||||
ADD = "添加",
|
||||
ADDITIONAL_FILTERS = "更多过滤条件",
|
||||
ADD_FILTER = "添加过滤",
|
||||
AURAS = "光环",
|
||||
AURAS_COMBATLOG_TOOLTIP = "显示有关增益和负面状态效果的信息。",
|
||||
BENEFICIAL = "增益",
|
||||
BENEFICIAL_AURA_COMBATLOG_TOOLTIP = "当你获得或失去有益光环时显示信息。",
|
||||
BLIZZARD_COMBAT_LOG_MENU_BOTH = "显示所有与%s有关的信息?",
|
||||
BLIZZARD_COMBAT_LOG_MENU_EVERYTHING = "全部显示",
|
||||
BLIZZARD_COMBAT_LOG_MENU_INCOMING = "%s发生了什么事情?",
|
||||
BLIZZARD_COMBAT_LOG_MENU_OUTGOING = "%s做了些什么?",
|
||||
BLIZZARD_COMBAT_LOG_MENU_OUTGOING_ME = "%s对你做了什么?",
|
||||
BLIZZARD_COMBAT_LOG_MENU_RESET = "重置",
|
||||
BLIZZARD_COMBAT_LOG_MENU_SAVE = "保存为新的过滤条件",
|
||||
BLIZZARD_COMBAT_LOG_MENU_SPELL_HIDE = "隐藏与这一条类似的信息。",
|
||||
BLIZZARD_COMBAT_LOG_MENU_SPELL_LINK = "将%s链接到聊天频道中。",
|
||||
BY_SOURCE = "按来源",
|
||||
BY_SOURCE_COMBATLOG_TOOLTIP = "按照施法者以颜色区分。",
|
||||
BY_TARGET = "按目标",
|
||||
BY_TARGET_COMBATLOG_TOOLTIP = "按照目标以颜色区分。",
|
||||
COLORIZE = "彩色标记:",
|
||||
COLORS = "颜色",
|
||||
COLOR_BY_SCHOOL = "按类型区分颜色",
|
||||
COMBATLOG_DEFAULTS = "战斗记录默认",
|
||||
COMBATLOG_FILTER_STRING_CUSTOM_UNIT = "自定义单位",
|
||||
COMBATLOG_FILTER_STRING_FRIENDLY_UNITS = "友方",
|
||||
COMBATLOG_FILTER_STRING_HOSTILE_PLAYERS = "敌方玩家",
|
||||
COMBATLOG_FILTER_STRING_HOSTILE_UNITS = "敌方单位",
|
||||
COMBATLOG_FILTER_STRING_ME = "我",
|
||||
COMBATLOG_FILTER_STRING_MY_PET = "宠物",
|
||||
COMBATLOG_FILTER_STRING_NEUTRAL_UNITS = "中立",
|
||||
COMBATLOG_FILTER_STRING_UNKNOWN_UNITS = "未知",
|
||||
COMBATLOG_HIGHLIGHT_ABILITY = "技能",
|
||||
COMBATLOG_HIGHLIGHT_DAMAGE = "伤害",
|
||||
COMBATLOG_HIGHLIGHT_KILL = "杀死",
|
||||
COMBATLOG_HIGHLIGHT_SCHOOL = "类型",
|
||||
COMBATLOG_UNKNOWN_UNIT = "某目标",
|
||||
COMBAT_FACTION_CHANGE = "声望",
|
||||
COMBAT_HONOR_GAIN = "荣誉",
|
||||
COMBAT_LOG_UNIT_YOU_ENABLED = "1",
|
||||
COMBAT_MISC_INFO = "其它信息",
|
||||
COMBAT_XP_GAIN = "经验",
|
||||
CONFIRM_COMBAT_FILTER_DEFAULTS = "你确定要将过滤条件设定为初始状态吗?",
|
||||
CONFIRM_COMBAT_FILTER_DELETE = "你确认要删除这个过滤条件?",
|
||||
COPY_FILTER = "复制过滤",
|
||||
DAMAGE_NUMBER = "伤害数值",
|
||||
DAMAGE_SCHOOL_TEXT = "伤害类型",
|
||||
DAMAGE_SHIELD = "伤害护盾",
|
||||
DAMAGE_SHIELD_COMBATLOG_TOOLTIP = "当法术或技能(如荆棘术)对近战攻击造成反弹伤害时显示信息。",
|
||||
DEATHS_COMBATLOG_TOOLTIP = "当某生物死亡时显示信息。",
|
||||
DEFAULT_COMBATLOG_FILTER_NAME = "过滤条件%d",
|
||||
DISPELS = "驱散",
|
||||
DISPEL_AURA_COMBATLOG_TOOLTIP = "当光环被移除、破坏或偷取时显示信息。",
|
||||
DONE_BY = "来源为:",
|
||||
DONE_TO = "目标为:",
|
||||
DRAINS = "吸取",
|
||||
ENTER_FILTER_NAME = "输入过滤名称:",
|
||||
ENTIRE_LINE = "整条信息",
|
||||
ENTIRE_LINE_COMBATLOG_TOOLTIP = "按照下面的方式用彩色标记整条信息。",
|
||||
ENVIRONMENTAL_DAMAGE = "环境伤害",
|
||||
ENVIRONMENTAL_DAMAGE_COMBATLOG_TOOLTIP = "当某人因摔落、溺水或泡在岩浆中而损失生命值时显示信息。",
|
||||
EXAMPLE_SPELL_FIREBALL = "火球术",
|
||||
EXAMPLE_SPELL_FROSTBOLT = "寒冰箭",
|
||||
EXAMPLE_TARGET_MONSTER = "怪物",
|
||||
EXAMPLE_TEXT = "范例文字:",
|
||||
EXTRA_ATTACKS = "额外攻击",
|
||||
FAILURES = "失败",
|
||||
FILTER_BY_ENEMIES_COMBATLOG_TOOLTIP = "敌方怪物和宠物进行的动作。",
|
||||
FILTER_BY_FRIENDS_COMBATLOG_TOOLTIP = "由友方玩家、宠物和怪物进行的动作。",
|
||||
FILTER_BY_HOSTILE_PLAYERS_COMBATLOG_TOOLTIP = "敌方玩家进行的动作。",
|
||||
FILTER_BY_ME_COMBATLOG_TOOLTIP = "由你、你的陷阱和你的法术进行的动作。",
|
||||
FILTER_BY_NEUTRAL_COMBATLOG_TOOLTIP = "由中立生物进行的动作。",
|
||||
FILTER_BY_PET_COMBATLOG_TOOLTIP = "由你的宠物、召唤生物和被魅惑玩家进行的动作。",
|
||||
FILTER_BY_UNKNOWN_COMBATLOG_TOOLTIP = "由掉落、酸液或岩浆之类的源头产生的动作。",
|
||||
FILTER_NAME = "过滤名称",
|
||||
FILTER_TO_FRIENDS_COMBATLOG_TOOLTIP = "对友方玩家、宠物和怪物进行的动作。",
|
||||
FILTER_TO_HOSTILE_COMBATLOG_TOOLTIP = "对敌方宠物和怪物进行的动作。",
|
||||
FILTER_TO_HOSTILE_PLAYERS_COMBATLOG_TOOLTIP = "对敌方玩家进行的动作。",
|
||||
FILTER_TO_ME_COMBATLOG_TOOLTIP = "对你进行的动作。",
|
||||
FILTER_TO_NEUTRAL_COMBATLOG_TOOLTIP = "对中立生物进行的动作。",
|
||||
FILTER_TO_PET_COMBATLOG_TOOLTIP = "对你的宠物、召唤生物和被魅惑玩家进行的动作。",
|
||||
FILTER_TO_UNKNOWN_COMBATLOG_TOOLTIP = "对隐形目标进行的动作。",
|
||||
FORMATTING = "格式",
|
||||
FULL_TEXT_COMBATLOG_TOOLTIP = "整句显示战斗记录信息。",
|
||||
HARMFUL_AURA_COMBATLOG_TOOLTIP = "当你获得或失去有害光环时显示信息。",
|
||||
HEALS = "治疗",
|
||||
HIGHLIGHTING = "高亮显示:",
|
||||
HIGHLIGHT_ABILITY_COMBATLOG_TOOLTIP = "在战斗信息中高亮显示技能名。",
|
||||
HIGHLIGHT_DAMAGE_COMBATLOG_TOOLTIP = "在战斗信息中高亮显示伤害数值。",
|
||||
HIGHLIGHT_KILL_COMBATLOG_TOOLTIP = "高亮显示你或你的队友杀死敌人时所显示的信息。",
|
||||
HIGHLIGHT_SCHOOL_COMBATLOG_TOOLTIP = "在战斗信息中高亮显示法术的类型。",
|
||||
HOSTILE = "敌对",
|
||||
INTERRUPTS = "打断",
|
||||
ITEM_NAMES = "物品名",
|
||||
ITEM_NAMES_SHOW_BRACES_COMBATLOG_TOOLTIP = "在物品名称外显示括号。",
|
||||
KILLS_COMBATLOG_TOOLTIP = "当你的队友杀死某目标时显示信息。",
|
||||
MELEE = "近战",
|
||||
MELEE_COMBATLOG_TOOLTIP = "显示普通的近战攻击。",
|
||||
MESSAGE_SOURCES = "信息来源",
|
||||
MISSES = "未命中",
|
||||
MOVE_FILTER_DOWN = "过滤条件下移",
|
||||
MOVE_FILTER_UP = "过滤条件上移",
|
||||
OTHER = "其它",
|
||||
PERIODIC = "周期",
|
||||
POWER_GAINS = "获得能量",
|
||||
POWER_GAINS_COMBATLOG_TOOLTIP = "当法术或技能恢复法力、能量、怒气、集中值、真气、神圣能量或暗影宝珠时显示信息。",
|
||||
QUICKBUTTON_NAME_EVERYTHING = "所有",
|
||||
QUICKBUTTON_NAME_EVERYTHING_TOOLTIP = "显示所有战斗信息。",
|
||||
QUICKBUTTON_NAME_KILLS = "杀敌",
|
||||
QUICKBUTTON_NAME_KILLS_TOOLTIP = "显示所有死亡和杀敌信息。",
|
||||
QUICKBUTTON_NAME_ME = "我发生了什么?",
|
||||
QUICKBUTTON_NAME_ME_TOOLTIP = "显示我所接收的所有行为信息。",
|
||||
QUICKBUTTON_NAME_SELF = "自己",
|
||||
QUICKBUTTON_NAME_SELF_TOOLTIP = "显示你所进行的和你所接收的动作的信息。",
|
||||
QUICK_BUTTON_COMBATLOG_TOOLTIP = "在聊天窗口中放置一个该过滤条件的快捷方式。",
|
||||
RANGED = "远程",
|
||||
RANGED_COMBATLOG_TOOLTIP = "显示弓箭、枪械、投掷武器和魔杖的攻击。",
|
||||
RANGE_DAMAGE_COMBATLOG_TOOLTIP = "显示造成了全额或部分伤害的远程射击。",
|
||||
RANGE_MISSED_COMBATLOG_TOOLTIP = "显示未能造成伤害的远程射击。",
|
||||
RESURRECT = "复活",
|
||||
SETTINGS = "设置",
|
||||
SHOW_BRACES = "显示括号",
|
||||
SHOW_BRACES_COMBATLOG_TOOLTIP = "在战斗记录信息中的超链接外显示括号。",
|
||||
SHOW_QUICK_BUTTON = "显示快捷按钮",
|
||||
SHOW_TIMESTAMP = "显示时间戳",
|
||||
SOURCE = "来源:",
|
||||
SPECIAL = "特殊",
|
||||
SPELLS_COMBATLOG_TOOLTIP = "显示有关法术和特殊技能的信息。",
|
||||
SPELL_CASTING = "法术施放",
|
||||
SPELL_CASTING_COMBATLOG_TOOLTIP = "显示有关法术施放的信息。",
|
||||
SPELL_CAST_FAILED_COMBATLOG_TOOLTIP = "当法术无法施放或施放失败时显示信息。",
|
||||
SPELL_CAST_START_COMBATLOG_TOOLTIP = "当法术开始施放时显示信息。",
|
||||
SPELL_CAST_SUCCESS_COMBATLOG_TOOLTIP = "当法术成功施放时显示信息。",
|
||||
SPELL_COLOR_BY_SCHOOL_COMBATLOG_TOOLTIP = "按类型用彩色标记法术名。",
|
||||
SPELL_DAMAGE_COMBATLOG_TOOLTIP = "当法术或技能造成伤害时显示信息。",
|
||||
SPELL_DAMAGE_NUMBER_COMBATLOG_TOOLTIP = "以彩色标记非普通攻击的伤害数值。",
|
||||
SPELL_DAMAGE_SCHOOL_COMBATLOG_TOOLTIP = "彩色标记伤害类型。(例如:暗影)",
|
||||
SPELL_DRAIN_COMBATLOG_TOOLTIP = "当法术或技能降低法力、能量、怒气、或集中值时显示信息。",
|
||||
SPELL_EXTRA_ATTACKS_COMBATLOG_TOOLTIP = "当法术或技能提供额外攻击时显示信息。",
|
||||
SPELL_HEAL_COMBATLOG_TOOLTIP = "当法术或技能恢复生命值时显示信息。",
|
||||
SPELL_INSTAKILL_COMBATLOG_TOOLTIP = "显示有关特殊法术类型的信息,比如造成耐久度损失或者与宠物分担伤害的法术。",
|
||||
SPELL_INTERRUPT_COMBATLOG_TOOLTIP = "当法术或技能打断另一个法术时显示信息。",
|
||||
SPELL_MISSED_COMBATLOG_TOOLTIP = "当法术或技能未能造成伤害时显示信息。这包括躲闪、招架、格挡、偏转、免疫、吸收和闪避。",
|
||||
SPELL_NAMES = "法术名",
|
||||
SPELL_NAMES_COMBATLOG_TOOLTIP = "彩色标记法术名。",
|
||||
SPELL_NAMES_SHOW_BRACES_COMBATLOG_TOOLTIP = "在法术名称外显示括号。",
|
||||
SPELL_PERIODIC_COMBATLOG_TOOLTIP = "显示法术效果增量的信息。",
|
||||
SPELL_PERIODIC_DAMAGE_COMBATLOG_TOOLTIP = "当法术或技能周期性地造成伤害时(如暗言术:痛或腐蚀术)显示信息。",
|
||||
SPELL_PERIODIC_HEAL_COMBATLOG_TOOLTIP = "当法术或技能周期性地恢复生命值时(如恢复或回春术)显示信息。",
|
||||
SPELL_PERIODIC_MISSED_COMBATLOG_TOOLTIP = "当法术或技能未能造成周期性的伤害时显示信息。这包括免疫、吸收和闪避。",
|
||||
SPELL_PERIODIC_OTHER_COMBATLOG_TOOLTIP = "当法术或技能周期性地产生其它效果时(如恢复或吸取法力值)显示信息。",
|
||||
SPELL_RESURRECT_COMBATLOG_TOOLTIP = "当法术或技能复活另一个玩家或怪物时显示信息。",
|
||||
SPELL_SUMMON_COMBATLOG_TOOLTIP = "当法术召唤出怪物或创造一个物体时显示信息。",
|
||||
START = "开始",
|
||||
STRING_SCHOOL_UNKNOWN = "未知",
|
||||
SUCCESS = "成功",
|
||||
SUMMONS = "召唤",
|
||||
SWING_DAMAGE_COMBATLOG_TOOLTIP = "显示造成了全额或部分伤害的近战攻击。",
|
||||
SWING_MISSED_COMBATLOG_TOOLTIP = "显示未能造成伤害的近战攻击。",
|
||||
TEXT_MODE_A = "A",
|
||||
TEXT_MODE_A_STRING_1 = "%s %s %s %s %s. %s %11$s",
|
||||
TEXT_MODE_A_STRING_2 = "%1$s %3$s%2$s%4$s%5$s。%6$s",
|
||||
TEXT_MODE_A_STRING_3 = "%1$s%5$s%3$s%4$s%2$s。%6$s",
|
||||
TEXT_MODE_A_STRING_ACTION = "|Haction:%s|h%s|h",
|
||||
TEXT_MODE_A_STRING_BRACE_ITEM = "|c%s[|r%s|c%s]|r",
|
||||
TEXT_MODE_A_STRING_BRACE_SPELL = "|c%s[|r%s|c%s]|r",
|
||||
TEXT_MODE_A_STRING_BRACE_UNIT = "|c%s[|r%s|c%s]|r",
|
||||
TEXT_MODE_A_STRING_DEST_ICON = "|Hicon:%d:dest|h%s|h",
|
||||
TEXT_MODE_A_STRING_DEST_UNIT = "%s|Hunit:%s:%s|h%s|h",
|
||||
TEXT_MODE_A_STRING_ITEM = "|Hitem:%s|h%s|h",
|
||||
TEXT_MODE_A_STRING_POSSESSIVE = "%s的",
|
||||
TEXT_MODE_A_STRING_REMAINING_POINTS = "(剩余%s)",
|
||||
TEXT_MODE_A_STRING_RESULT_ABSORB = "(%s 吸收)",
|
||||
TEXT_MODE_A_STRING_RESULT_BLOCK = "(%s 格挡)",
|
||||
TEXT_MODE_A_STRING_RESULT_CRITICAL = "(爆击)",
|
||||
TEXT_MODE_A_STRING_RESULT_CRITICAL_SPELL = "(爆击)",
|
||||
TEXT_MODE_A_STRING_RESULT_CRUSHING = "(碾压)",
|
||||
TEXT_MODE_A_STRING_RESULT_FORMAT = "$resultAmount点$resultType",
|
||||
TEXT_MODE_A_STRING_RESULT_GLANCING = "(偏斜)",
|
||||
TEXT_MODE_A_STRING_RESULT_MULTISTRIKE = "(溅射)",
|
||||
TEXT_MODE_A_STRING_RESULT_OVERENERGIZE = "(%s 过量充能)",
|
||||
TEXT_MODE_A_STRING_RESULT_OVERHEALING = "(%s 过量治疗)",
|
||||
TEXT_MODE_A_STRING_RESULT_OVERKILLING = "(%s 过量伤害)",
|
||||
TEXT_MODE_A_STRING_RESULT_PARRY = "(%d招架)",
|
||||
TEXT_MODE_A_STRING_RESULT_REFLECT = "被反射",
|
||||
TEXT_MODE_A_STRING_RESULT_RESIST = "(%s 抵抗)",
|
||||
TEXT_MODE_A_STRING_RESULT_VULNERABILITY = "(%s 易伤伤害)",
|
||||
TEXT_MODE_A_STRING_SOURCE_ICON = "|Hicon:%s:source|h%s|h",
|
||||
TEXT_MODE_A_STRING_SOURCE_UNIT = "%s|Hunit:%s:%s|h%s|h",
|
||||
TEXT_MODE_A_STRING_SPELL = "|Hspell:%s:%s:%s|h%s|h",
|
||||
TEXT_MODE_A_STRING_SPELL_EXTRA = "|Hspell:%s:%s:%s|h%s|h",
|
||||
TEXT_MODE_A_STRING_TIMESTAMP = "%s> %s",
|
||||
TEXT_MODE_A_STRING_VALUE_SCHOOL = "%s %s",
|
||||
TEXT_MODE_A_STRING_VALUE_TYPE = "%s(%s)",
|
||||
TEXT_MODE_A_TIMESTAMP = "%H:%M:%S",
|
||||
TIMESTAMP_COMBATLOG_TOOLTIP = "显示战斗记录信息的时间戳。",
|
||||
UNIT_COLORS = "单位颜色:",
|
||||
UNIT_NAMES = "单位名称",
|
||||
UNIT_NAMES_COMBATLOG_TOOLTIP = "彩色标记单位名。",
|
||||
UNIT_NAMES_SHOW_BRACES_COMBATLOG_TOOLTIP = "在单位名称外显示括号。",
|
||||
UNIT_YOU = "你",
|
||||
UNIT_YOU_DEST = "你",
|
||||
UNIT_YOU_DEST_POSSESSIVE = "你的",
|
||||
UNIT_YOU_SOURCE = "你",
|
||||
UNIT_YOU_SOURCE_POSSESSIVE = "你的",
|
||||
USE_FULL_TEXT_MODE = "使用详细模式",
|
||||
}
|
||||
Vendored
+16
-6
@@ -1,11 +1,6 @@
|
||||
pfUI_locale["deDE"] = {}
|
||||
|
||||
|
||||
pfUI_locale["deDE"]["healduration"] = {
|
||||
["Rejuvenation"] = "Erhöht die Dauer Eures Zaubers 'Verjüngung' um 3 Sek.",
|
||||
["Renew"] = "Erhöht die Wirkungsdauer von 'Erneuerung' um 3 Sek.",
|
||||
}
|
||||
|
||||
pfUI_locale["deDE"]["customcast"] = {
|
||||
["AIMEDSHOT"] = "Gezielter Schuss",
|
||||
["MULTISHOT"] = "Mehrfach-Schuss",
|
||||
@@ -30,4 +25,19 @@ pfUI_locale["deDE"]["resurrections"] = {
|
||||
|
||||
-- custom entries not detected by DBC extractor
|
||||
|
||||
|
||||
-- Classic Era GlobalStrings (DE) that the loss of control alert
|
||||
-- reads and the 1.12 client lacks.
|
||||
pfUI_locale["deDE"]["lossofcontrol"] = {
|
||||
LOSS_OF_CONTROL_DISPLAY_CHARM = "Betört",
|
||||
LOSS_OF_CONTROL_DISPLAY_CONFUSE = "Verwirrt",
|
||||
LOSS_OF_CONTROL_DISPLAY_DISARM = "Entwaffnet",
|
||||
LOSS_OF_CONTROL_DISPLAY_FEAR = "Verängstigt",
|
||||
LOSS_OF_CONTROL_DISPLAY_INTERRUPT_SCHOOL = "%s gesperrt",
|
||||
LOSS_OF_CONTROL_DISPLAY_PACIFY = "Befriedet",
|
||||
LOSS_OF_CONTROL_DISPLAY_PACIFYSILENCE = "Kampfunfähig",
|
||||
LOSS_OF_CONTROL_DISPLAY_POSSESS = "Besessen",
|
||||
LOSS_OF_CONTROL_DISPLAY_ROOT = "Bewegungsunfähig",
|
||||
LOSS_OF_CONTROL_DISPLAY_SCHOOL_INTERRUPT = "Unterbrochen",
|
||||
LOSS_OF_CONTROL_DISPLAY_SILENCE = "Stille",
|
||||
LOSS_OF_CONTROL_DISPLAY_STUN = "Betäubt",
|
||||
}
|
||||
|
||||
Vendored
+16
-6
@@ -1,11 +1,6 @@
|
||||
pfUI_locale["enUS"] = {}
|
||||
|
||||
|
||||
pfUI_locale["enUS"]["healduration"] = {
|
||||
["Rejuvenation"] = "Increases the duration of your Rejuvenation spell by 3 sec.",
|
||||
["Renew"] = "Increases the duration of your Renew spell by 3 sec.",
|
||||
}
|
||||
|
||||
pfUI_locale["enUS"]["customcast"] = {
|
||||
["AIMEDSHOT"] = "Aimed Shot",
|
||||
["MULTISHOT"] = "Multi-Shot",
|
||||
@@ -30,4 +25,19 @@ pfUI_locale["enUS"]["resurrections"] = {
|
||||
|
||||
-- custom entries not detected by DBC extractor
|
||||
|
||||
|
||||
-- Classic Era GlobalStrings (GB) that the loss of control alert
|
||||
-- reads and the 1.12 client lacks.
|
||||
pfUI_locale["enUS"]["lossofcontrol"] = {
|
||||
LOSS_OF_CONTROL_DISPLAY_CHARM = "Charmed",
|
||||
LOSS_OF_CONTROL_DISPLAY_CONFUSE = "Confused",
|
||||
LOSS_OF_CONTROL_DISPLAY_DISARM = "Disarmed",
|
||||
LOSS_OF_CONTROL_DISPLAY_FEAR = "Feared",
|
||||
LOSS_OF_CONTROL_DISPLAY_INTERRUPT_SCHOOL = "%s Locked",
|
||||
LOSS_OF_CONTROL_DISPLAY_PACIFY = "Pacified",
|
||||
LOSS_OF_CONTROL_DISPLAY_PACIFYSILENCE = "Disabled",
|
||||
LOSS_OF_CONTROL_DISPLAY_POSSESS = "Possessed",
|
||||
LOSS_OF_CONTROL_DISPLAY_ROOT = "Rooted",
|
||||
LOSS_OF_CONTROL_DISPLAY_SCHOOL_INTERRUPT = "Interrupted",
|
||||
LOSS_OF_CONTROL_DISPLAY_SILENCE = "Silenced",
|
||||
LOSS_OF_CONTROL_DISPLAY_STUN = "Stunned",
|
||||
}
|
||||
|
||||
Vendored
+16
-6
@@ -1,11 +1,6 @@
|
||||
pfUI_locale["esES"] = {}
|
||||
|
||||
|
||||
pfUI_locale["esES"]["healduration"] = {
|
||||
["Rejuvenation"] = "Aumenta 3 s la duración de tu hechizo Rejuvenecimiento.",
|
||||
["Renew"] = "Aumenta en 3 s la duración de tu hechizo Renovar.",
|
||||
}
|
||||
|
||||
pfUI_locale["esES"]["customcast"] = {
|
||||
["AIMEDSHOT"] = "Disparo de puntería",
|
||||
["MULTISHOT"] = "Multidisparo",
|
||||
@@ -30,4 +25,19 @@ pfUI_locale["esES"]["resurrections"] = {
|
||||
|
||||
-- custom entries not detected by DBC extractor
|
||||
|
||||
|
||||
-- Classic Era GlobalStrings (ES) that the loss of control alert
|
||||
-- reads and the 1.12 client lacks.
|
||||
pfUI_locale["esES"]["lossofcontrol"] = {
|
||||
LOSS_OF_CONTROL_DISPLAY_CHARM = "Embelesado",
|
||||
LOSS_OF_CONTROL_DISPLAY_CONFUSE = "Confundido",
|
||||
LOSS_OF_CONTROL_DISPLAY_DISARM = "Desarmado",
|
||||
LOSS_OF_CONTROL_DISPLAY_FEAR = "Asustado",
|
||||
LOSS_OF_CONTROL_DISPLAY_INTERRUPT_SCHOOL = "Bloqueo: %s",
|
||||
LOSS_OF_CONTROL_DISPLAY_PACIFY = "Pacificado",
|
||||
LOSS_OF_CONTROL_DISPLAY_PACIFYSILENCE = "Inutilizado",
|
||||
LOSS_OF_CONTROL_DISPLAY_POSSESS = "Poseído",
|
||||
LOSS_OF_CONTROL_DISPLAY_ROOT = "Enraizado",
|
||||
LOSS_OF_CONTROL_DISPLAY_SCHOOL_INTERRUPT = "Interrumpido",
|
||||
LOSS_OF_CONTROL_DISPLAY_SILENCE = "Silenciado",
|
||||
LOSS_OF_CONTROL_DISPLAY_STUN = "Aturdido",
|
||||
}
|
||||
|
||||
Vendored
+16
-6
@@ -1,11 +1,6 @@
|
||||
pfUI_locale["frFR"] = {}
|
||||
|
||||
|
||||
pfUI_locale["frFR"]["healduration"] = {
|
||||
["Rejuvenation"] = "Augmente la durée de votre sort Récupération de 3 sec.",
|
||||
["Renew"] = "Augmente la durée de votre sort Rénovation de 3 sec.",
|
||||
}
|
||||
|
||||
pfUI_locale["frFR"]["customcast"] = {
|
||||
["AIMEDSHOT"] = "Visée",
|
||||
["MULTISHOT"] = "Flèches multiples",
|
||||
@@ -30,4 +25,19 @@ pfUI_locale["frFR"]["resurrections"] = {
|
||||
|
||||
-- custom entries not detected by DBC extractor
|
||||
|
||||
|
||||
-- Classic Era GlobalStrings (FR) that the loss of control alert
|
||||
-- reads and the 1.12 client lacks.
|
||||
pfUI_locale["frFR"]["lossofcontrol"] = {
|
||||
LOSS_OF_CONTROL_DISPLAY_CHARM = "Charme",
|
||||
LOSS_OF_CONTROL_DISPLAY_CONFUSE = "Confusion",
|
||||
LOSS_OF_CONTROL_DISPLAY_DISARM = "Désarmement",
|
||||
LOSS_OF_CONTROL_DISPLAY_FEAR = "Peur",
|
||||
LOSS_OF_CONTROL_DISPLAY_INTERRUPT_SCHOOL = "%s verrouillé",
|
||||
LOSS_OF_CONTROL_DISPLAY_PACIFY = "Pacification",
|
||||
LOSS_OF_CONTROL_DISPLAY_PACIFYSILENCE = "Neutralisation",
|
||||
LOSS_OF_CONTROL_DISPLAY_POSSESS = "$gPossédé:Possédée;",
|
||||
LOSS_OF_CONTROL_DISPLAY_ROOT = "Immobilisation",
|
||||
LOSS_OF_CONTROL_DISPLAY_SCHOOL_INTERRUPT = "Interruption",
|
||||
LOSS_OF_CONTROL_DISPLAY_SILENCE = "Silence",
|
||||
LOSS_OF_CONTROL_DISPLAY_STUN = "Étourdissement",
|
||||
}
|
||||
|
||||
Vendored
+16
-6
@@ -1,11 +1,6 @@
|
||||
pfUI_locale["koKR"] = {}
|
||||
|
||||
|
||||
pfUI_locale["koKR"]["healduration"] = {
|
||||
["Rejuvenation"] = "회복의 지속시간이 3초만큼 증가합니다.",
|
||||
["Renew"] = "소생의 지속시간이 3초만큼 증가합니다.",
|
||||
}
|
||||
|
||||
pfUI_locale["koKR"]["customcast"] = {
|
||||
["AIMEDSHOT"] = "조준 사격",
|
||||
["MULTISHOT"] = "일제 사격",
|
||||
@@ -30,4 +25,19 @@ pfUI_locale["koKR"]["resurrections"] = {
|
||||
|
||||
-- custom entries not detected by DBC extractor
|
||||
|
||||
|
||||
-- Classic Era GlobalStrings (KR) that the loss of control alert
|
||||
-- reads and the 1.12 client lacks.
|
||||
pfUI_locale["koKR"]["lossofcontrol"] = {
|
||||
LOSS_OF_CONTROL_DISPLAY_CHARM = "현혹",
|
||||
LOSS_OF_CONTROL_DISPLAY_CONFUSE = "혼란",
|
||||
LOSS_OF_CONTROL_DISPLAY_DISARM = "무장 해제",
|
||||
LOSS_OF_CONTROL_DISPLAY_FEAR = "공포",
|
||||
LOSS_OF_CONTROL_DISPLAY_INTERRUPT_SCHOOL = "%s 계열 차단됨",
|
||||
LOSS_OF_CONTROL_DISPLAY_PACIFY = "평정",
|
||||
LOSS_OF_CONTROL_DISPLAY_PACIFYSILENCE = "무력화",
|
||||
LOSS_OF_CONTROL_DISPLAY_POSSESS = "빙의",
|
||||
LOSS_OF_CONTROL_DISPLAY_ROOT = "이동 불가",
|
||||
LOSS_OF_CONTROL_DISPLAY_SCHOOL_INTERRUPT = "차단",
|
||||
LOSS_OF_CONTROL_DISPLAY_SILENCE = "침묵",
|
||||
LOSS_OF_CONTROL_DISPLAY_STUN = "기절",
|
||||
}
|
||||
|
||||
Vendored
+16
-6
@@ -1,11 +1,6 @@
|
||||
pfUI_locale["ruRU"] = {}
|
||||
|
||||
|
||||
pfUI_locale["ruRU"]["healduration"] = {
|
||||
["Rejuvenation"] = "Увеличивает время действия \"Омоложения\" на 3 сек.",
|
||||
["Renew"] = "Продлевает действие \"Обновления\" на 3 сек.",
|
||||
}
|
||||
|
||||
pfUI_locale["ruRU"]["customcast"] = {
|
||||
["AIMEDSHOT"] = "Прицельный выстрел",
|
||||
["MULTISHOT"] = "Залп",
|
||||
@@ -30,4 +25,19 @@ pfUI_locale["ruRU"]["resurrections"] = {
|
||||
|
||||
-- custom entries not detected by DBC extractor
|
||||
|
||||
|
||||
-- Classic Era GlobalStrings (RU) that the loss of control alert
|
||||
-- reads and the 1.12 client lacks.
|
||||
pfUI_locale["ruRU"]["lossofcontrol"] = {
|
||||
LOSS_OF_CONTROL_DISPLAY_CHARM = "Подчинение",
|
||||
LOSS_OF_CONTROL_DISPLAY_CONFUSE = "Растерянный",
|
||||
LOSS_OF_CONTROL_DISPLAY_DISARM = "Без оружия",
|
||||
LOSS_OF_CONTROL_DISPLAY_FEAR = "Страх",
|
||||
LOSS_OF_CONTROL_DISPLAY_INTERRUPT_SCHOOL = "%s: способности недоступны",
|
||||
LOSS_OF_CONTROL_DISPLAY_PACIFY = "Покой",
|
||||
LOSS_OF_CONTROL_DISPLAY_PACIFYSILENCE = "Отключено",
|
||||
LOSS_OF_CONTROL_DISPLAY_POSSESS = "Подчинен",
|
||||
LOSS_OF_CONTROL_DISPLAY_ROOT = "Обездвиженность",
|
||||
LOSS_OF_CONTROL_DISPLAY_SCHOOL_INTERRUPT = "Прерывание",
|
||||
LOSS_OF_CONTROL_DISPLAY_SILENCE = "Немота.",
|
||||
LOSS_OF_CONTROL_DISPLAY_STUN = "Оглушение",
|
||||
}
|
||||
|
||||
Vendored
+16
-6
@@ -1,11 +1,6 @@
|
||||
pfUI_locale["zhCN"] = {}
|
||||
|
||||
|
||||
pfUI_locale["zhCN"]["healduration"] = {
|
||||
["Rejuvenation"] = "使你的回春术的持续时间延长3秒。",
|
||||
["Renew"] = "使你的恢复术的持续时间延长3秒。",
|
||||
}
|
||||
|
||||
pfUI_locale["zhCN"]["customcast"] = {
|
||||
["AIMEDSHOT"] = "瞄准射击",
|
||||
["MULTISHOT"] = "多重射击",
|
||||
@@ -30,4 +25,19 @@ pfUI_locale["zhCN"]["resurrections"] = {
|
||||
|
||||
-- custom entries not detected by DBC extractor
|
||||
|
||||
|
||||
-- Classic Era GlobalStrings (CN) that the loss of control alert
|
||||
-- reads and the 1.12 client lacks.
|
||||
pfUI_locale["zhCN"]["lossofcontrol"] = {
|
||||
LOSS_OF_CONTROL_DISPLAY_CHARM = "魅惑",
|
||||
LOSS_OF_CONTROL_DISPLAY_CONFUSE = "迷惑",
|
||||
LOSS_OF_CONTROL_DISPLAY_DISARM = "缴械",
|
||||
LOSS_OF_CONTROL_DISPLAY_FEAR = "恐惧",
|
||||
LOSS_OF_CONTROL_DISPLAY_INTERRUPT_SCHOOL = "%s系法术被锁定",
|
||||
LOSS_OF_CONTROL_DISPLAY_PACIFY = "平静",
|
||||
LOSS_OF_CONTROL_DISPLAY_PACIFYSILENCE = "禁用",
|
||||
LOSS_OF_CONTROL_DISPLAY_POSSESS = "被占据",
|
||||
LOSS_OF_CONTROL_DISPLAY_ROOT = "被定身",
|
||||
LOSS_OF_CONTROL_DISPLAY_SCHOOL_INTERRUPT = "打断",
|
||||
LOSS_OF_CONTROL_DISPLAY_SILENCE = "沉默",
|
||||
LOSS_OF_CONTROL_DISPLAY_STUN = "昏迷",
|
||||
}
|
||||
|
||||
Vendored
+3
-3
@@ -724,10 +724,10 @@ local light = {
|
||||
["showicon"] = "1",
|
||||
},
|
||||
},
|
||||
["cooldown"] = {
|
||||
["font"] = "Interface\\AddOns\\pfUI\\fonts\\Myriad-Pro.ttf",
|
||||
},
|
||||
["appearance"] = {
|
||||
["cd"] = {
|
||||
["font"] = "Interface\\AddOns\\pfUI\\fonts\\Myriad-Pro.ttf",
|
||||
},
|
||||
["castbar"] = {
|
||||
["texture"] = "Interface\\AddOns\\pfUI\\img\\bar_gradient",
|
||||
},
|
||||
|
||||
Vendored
-50
@@ -1,50 +0,0 @@
|
||||
-- barlength = {[formfactor]={cols, rows}}
|
||||
pfGridmath = {
|
||||
[1] = {{1,1}},
|
||||
[2] = {{2,1},{1,2}},
|
||||
[3] = {{3,1},{1,3}},
|
||||
[4] = {{4,1},{2,2},{1,4}},
|
||||
[5] = {{5,1},{1,5}},
|
||||
[6] = {{6,1},{3,2},{2,3},{1,6}},
|
||||
[7] = {{7,1},{1,7}},
|
||||
[8] = {{8,1},{4,2},{2,4},{1,8}},
|
||||
[9] = {{9,1},{3,3},{1,9}},
|
||||
[10] = {{10,1},{5,2},{2,5},{1,10}},
|
||||
[11] = {{11,1},{1,11}},
|
||||
[12] = {{12,1},{6,2},{4,3},{3,4},{2,6},{1,12}}
|
||||
}
|
||||
|
||||
-- list of valid unitstrings
|
||||
pfValidUnits = {}
|
||||
pfValidUnits["pet"] = true
|
||||
pfValidUnits["player"] = true
|
||||
pfValidUnits["target"] = true
|
||||
pfValidUnits["mouseover"] = true
|
||||
|
||||
pfValidUnits["focus"] = true
|
||||
pfValidUnits["focustarget"] = true
|
||||
pfValidUnits["focustargettarget"] = true
|
||||
|
||||
pfValidUnits["pettarget"] = true
|
||||
pfValidUnits["playertarget"] = true
|
||||
pfValidUnits["targettarget"] = true
|
||||
pfValidUnits["mouseovertarget"] = true
|
||||
pfValidUnits["targettargettarget"] = true
|
||||
|
||||
for i=1,4 do
|
||||
pfValidUnits["party" .. i] = true
|
||||
pfValidUnits["party" .. i .. "target"] = true
|
||||
pfValidUnits["partypet" .. i] = true
|
||||
pfValidUnits["partypet" .. i .. "target"] = true
|
||||
end
|
||||
|
||||
for i=1,40 do
|
||||
pfValidUnits["raid" .. i] = true
|
||||
pfValidUnits["raid" .. i .. "target"] = true
|
||||
|
||||
pfValidUnits["raidpet" .. i] = true
|
||||
pfValidUnits["raidpet" .. i .. "target"] = true
|
||||
|
||||
pfValidUnits["nameplate" .. i] = true
|
||||
pfValidUnits["nameplate" .. i .. "target"] = true
|
||||
end
|
||||
Vendored
+28
-20
@@ -1,4 +1,6 @@
|
||||
pfUI_translation["deDE"] = {
|
||||
["2D"] = nil,
|
||||
["3D"] = nil,
|
||||
["3D World Unit Font"] = nil,
|
||||
["Abbreviate Numbers (4200 -> 4.2k)"] = nil,
|
||||
["Abbreviate Unit Names"] = nil,
|
||||
@@ -6,6 +8,7 @@ pfUI_translation["deDE"] = {
|
||||
["Actionbar"] = nil,
|
||||
["Action Bar"] = nil,
|
||||
["Action Bar Border Size"] = nil,
|
||||
["Action Bars"] = nil,
|
||||
["Active Addons"] = nil,
|
||||
["Add button to the frame"] = nil,
|
||||
["Added button"] = nil,
|
||||
@@ -27,11 +30,11 @@ pfUI_translation["deDE"] = {
|
||||
["Always Show Item Comparison"] = nil,
|
||||
["Always Show On Target Units"] = nil,
|
||||
["Always Show On Units With Missing HP"] = nil,
|
||||
["Always Use 2D Portraits"] = nil,
|
||||
["Ammo Counter"] = nil,
|
||||
["Anchor Bags Above Chat"] = nil,
|
||||
["A new installation of |cff33ffccpf|rUI ships with 4 prebuilt design profiles. Click below if you wish to load one of these profiles."] = nil,
|
||||
["A new version is available"] = nil,
|
||||
["Animate Health And Power Bars"] = nil,
|
||||
["Appearance"] = nil,
|
||||
["Ascending"] = nil,
|
||||
["Author"] = nil,
|
||||
@@ -78,7 +81,7 @@ pfUI_translation["deDE"] = {
|
||||
["Buffbar Width"] = nil,
|
||||
["Buff/Debuff Icons"] = nil,
|
||||
["Buff/Debuff Indicators"] = nil,
|
||||
["Buff Font Size"] = nil,
|
||||
["Buff Indicators"] = nil,
|
||||
["Buff Limit"] = nil,
|
||||
["Buff Position"] = nil,
|
||||
["Buffs"] = nil,
|
||||
@@ -120,9 +123,13 @@ pfUI_translation["deDE"] = {
|
||||
["Chat Bubble Transparency"] = nil,
|
||||
["Chat Default Brackets"] = nil,
|
||||
["Class"] = nil,
|
||||
["Class Icon (Round)"] = nil,
|
||||
["Class Icon (Square)"] = nil,
|
||||
["Clear Rolls"] = nil,
|
||||
["Click Action"] = nil,
|
||||
["Click Casting"] = nil,
|
||||
["Click to undress"] = nil,
|
||||
["Undress"] = nil,
|
||||
["Clock"] = nil,
|
||||
["Close"] = nil,
|
||||
["Collapse Empty Slots"] = nil,
|
||||
@@ -145,21 +152,16 @@ pfUI_translation["deDE"] = {
|
||||
["Configuration"] = nil,
|
||||
["Configure"] = nil,
|
||||
["Cooldown"] = nil,
|
||||
["Cooldown Color (5 Seconds Or Less)"] = nil,
|
||||
["Cooldown Color (Days)"] = nil,
|
||||
["Cooldown Color (Hours)"] = nil,
|
||||
["Cooldown Color (Less than 3 Sec)"] = nil,
|
||||
["Cooldown Color (Minutes)"] = nil,
|
||||
["Cooldown Color (Seconds)"] = nil,
|
||||
["Cooldown / Durations"] = nil,
|
||||
["Cooldown Text Font"] = nil,
|
||||
["Cooldown Text Font Size"] = nil,
|
||||
["Cooldown Text Font Size (Blizzard Frames)"] = nil,
|
||||
["Cooldown Text Font Size (Foreign Frames)"] = nil,
|
||||
["Cooldown Text Size"] = nil,
|
||||
["Cooldown Text Threshold"] = nil,
|
||||
["Cooldown Text Time Threshold"] = nil,
|
||||
["Coordinates Location"] = nil,
|
||||
["Coordinates On Minimap"] = nil,
|
||||
["Copied to clipboard"] = nil,
|
||||
["Count"] = nil,
|
||||
["Create Profile"] = nil,
|
||||
["Ctrl-Click"] = nil,
|
||||
@@ -276,12 +278,9 @@ pfUI_translation["deDE"] = {
|
||||
["Enable Custom Incoming Whispers Layout"] = nil,
|
||||
["Enable Debuff Display"] = nil,
|
||||
["Enable Debuffs"] = nil,
|
||||
["Enable Durations On Blizzard Frames"] = nil,
|
||||
["Enable Durations On Foreign Frames"] = nil,
|
||||
["Enable Energy Ticks"] = nil,
|
||||
["Enable Extended Guild Information"] = nil,
|
||||
["Enable Frame Shadow"] = nil,
|
||||
["Enable Full-Text Search"] = nil,
|
||||
["Enable Indicators"] = nil,
|
||||
["Enable Item Quality Color For Equipment Only"] = nil,
|
||||
["Enable \"Loot & Spam\" Chat Window"] = nil,
|
||||
@@ -336,6 +335,7 @@ pfUI_translation["deDE"] = {
|
||||
["Font"] = nil,
|
||||
["Font Options"] = nil,
|
||||
["Font Padding"] = nil,
|
||||
["Font Size"] = nil,
|
||||
["Font Style"] = nil,
|
||||
["Force Blizzard Borders (|cffffaaaaExperimental|r)"] = nil,
|
||||
["fps"] = nil,
|
||||
@@ -370,7 +370,6 @@ pfUI_translation["deDE"] = {
|
||||
["Health"] = nil,
|
||||
["Health - Auto"] = nil,
|
||||
["Healthbar"] = nil,
|
||||
["Healthbar Animation Speed"] = nil,
|
||||
["Health Bar Color"] = nil,
|
||||
["Healthbar Embedded"] = nil,
|
||||
["Healthbar Height"] = nil,
|
||||
@@ -395,7 +394,6 @@ pfUI_translation["deDE"] = {
|
||||
["Hide Channel Names"] = nil,
|
||||
["Hide Chat When Bags Are Opened"] = nil,
|
||||
["Hide Combat Log"] = nil,
|
||||
["Hide Foreign Cooldown Animations"] = nil,
|
||||
["Hide Group Frames While In Raid"] = nil,
|
||||
["Hide Healthbar On Critters"] = nil,
|
||||
["Hide Healthbar On Enemy NPCs"] = nil,
|
||||
@@ -404,6 +402,7 @@ pfUI_translation["deDE"] = {
|
||||
["Hide Healthbar On Friendly Players"] = nil,
|
||||
["Hide Healthbar On Neutral NPCs"] = nil,
|
||||
["Hide Healthbar On Totems"] = nil,
|
||||
["Hide Numbers On Spell Cooldowns Up To (Seconds)"] = nil,
|
||||
["Hide Timeout"] = nil,
|
||||
["Hide When Entering Combat"] = nil,
|
||||
["Highlight Equipped Items"] = nil,
|
||||
@@ -432,7 +431,6 @@ pfUI_translation["deDE"] = {
|
||||
["Inherit Default Colors"] = nil,
|
||||
["Inputbox Height"] = nil,
|
||||
["Inputbox Width"] = nil,
|
||||
["Instant"] = nil,
|
||||
["Integrations"] = nil,
|
||||
["Invert Health Bar"] = nil,
|
||||
["is not allowed in profile name"] = nil,
|
||||
@@ -477,6 +475,7 @@ pfUI_translation["deDE"] = {
|
||||
["Look & Feel"] = nil,
|
||||
["Loot"] = nil,
|
||||
["Loot & Spam"] = nil,
|
||||
["Loss Of Control"] = nil,
|
||||
["Macro Text Color"] = nil,
|
||||
["Macro Text Size"] = nil,
|
||||
["Main Actionbar"] = nil,
|
||||
@@ -516,6 +515,7 @@ pfUI_translation["deDE"] = {
|
||||
["Name | Health Missing"] = nil,
|
||||
["Name (Linebreak) -Health Missing"] = nil,
|
||||
["Nameplate Border Size"] = nil,
|
||||
["Nameplate Debuffs"] = nil,
|
||||
["Nameplates"] = nil,
|
||||
["Nameplate Width"] = nil,
|
||||
["Name (Short)"] = nil,
|
||||
@@ -554,6 +554,7 @@ pfUI_translation["deDE"] = {
|
||||
["On State Change"] = nil,
|
||||
["Options"] = nil,
|
||||
["Orientation"] = nil,
|
||||
["Other Addons"] = nil,
|
||||
["Other Panel: Minimap"] = nil,
|
||||
["Outline"] = nil,
|
||||
["Outlines"] = nil,
|
||||
@@ -582,6 +583,7 @@ pfUI_translation["deDE"] = {
|
||||
["Pixel"] = nil,
|
||||
["Player"] = nil,
|
||||
["Player Buff Bar"] = nil,
|
||||
["Player Buffs"] = nil,
|
||||
["Player Castbar"] = nil,
|
||||
["Player Debuff Bar"] = nil,
|
||||
["Player SP/Haste Display"] = nil,
|
||||
@@ -592,6 +594,7 @@ pfUI_translation["deDE"] = {
|
||||
["Portrait Alpha"] = nil,
|
||||
["Portrait Height"] = nil,
|
||||
["Portrait Position"] = nil,
|
||||
["Portrait Style"] = nil,
|
||||
["Portrait Width"] = nil,
|
||||
["Powerbar"] = nil,
|
||||
["Power Bar Anchor"] = nil,
|
||||
@@ -647,6 +650,7 @@ pfUI_translation["deDE"] = {
|
||||
["Resting"] = nil,
|
||||
["Reveal Unexplored Areas"] = nil,
|
||||
["Switch to current zone"] = "Zur aktuellen Zone wechseln",
|
||||
["Reverse Sweep On"] = nil,
|
||||
["Right"] = nil,
|
||||
["Right Actionbar"] = nil,
|
||||
["Right Anchor"] = nil,
|
||||
@@ -668,6 +672,7 @@ pfUI_translation["deDE"] = {
|
||||
["Save & Reload"] = nil,
|
||||
["Scale"] = nil,
|
||||
["Scale Border On HiDPI Displays"] = nil,
|
||||
["Scale Font Size With Icon"] = nil,
|
||||
["Scaling"] = nil,
|
||||
["Screen Edge Glow Intensity"] = nil,
|
||||
["Screen Resolution"] = nil,
|
||||
@@ -727,7 +732,7 @@ pfUI_translation["deDE"] = {
|
||||
["Show Loot Icon"] = nil,
|
||||
["Show Macro Text"] = nil,
|
||||
["Show Meters By Default"] = nil,
|
||||
["Show Milliseconds When Timer Runs Out"] = nil,
|
||||
["Show Numbers On"] = nil,
|
||||
["Show On Friendly Units"] = nil,
|
||||
["Show On Hostile Units"] = nil,
|
||||
["Show Procs Indicators"] = nil,
|
||||
@@ -745,10 +750,10 @@ pfUI_translation["deDE"] = {
|
||||
["Show Spell Icon"] = nil,
|
||||
["Show Spell Name"] = nil,
|
||||
["Show Stacks"] = nil,
|
||||
["Show Sweep On"] = nil,
|
||||
["Show Tenths Below 5 Seconds"] = nil,
|
||||
["Show Text"] = nil,
|
||||
["Show Time Left"] = nil,
|
||||
["Show Timer"] = nil,
|
||||
["Show Timer Animation"] = nil,
|
||||
["Show Timer Text"] = nil,
|
||||
["Show Totems Indicators"] = nil,
|
||||
["Shrink & Return"] = nil,
|
||||
@@ -765,8 +770,10 @@ pfUI_translation["deDE"] = {
|
||||
["Soulshards"] = nil,
|
||||
["Spacing"] = nil,
|
||||
["Special Recipient"] = nil,
|
||||
["Spellbook And Character"] = nil,
|
||||
["Spell Power Color"] = nil,
|
||||
["Square"] = nil,
|
||||
["Stack Count Font Size"] = nil,
|
||||
["Stance Bar 1"] = nil,
|
||||
["Stance Bar 2"] = nil,
|
||||
["Stance Bar 3"] = nil,
|
||||
@@ -801,7 +808,6 @@ pfUI_translation["deDE"] = {
|
||||
["Thistle Tea"] = nil,
|
||||
["Threshold To Trust Health Estimation"] = nil,
|
||||
["Time"] = nil,
|
||||
["Timer"] = nil,
|
||||
["Time Remaining"] = nil,
|
||||
["Timer In Minutes"] = nil,
|
||||
["Timestamp Brackets"] = nil,
|
||||
@@ -812,6 +818,7 @@ pfUI_translation["deDE"] = {
|
||||
["Tiny (PixelPerfect)"] = nil,
|
||||
["Toggle as Tank"] = nil,
|
||||
["Tooltip"] = nil,
|
||||
["Tooltip Auras"] = nil,
|
||||
["Tooltip Position"] = nil,
|
||||
["Tooltip Text Font"] = nil,
|
||||
["Tooltip Text Font Size"] = nil,
|
||||
@@ -823,11 +830,13 @@ pfUI_translation["deDE"] = {
|
||||
["Total Gold"] = nil,
|
||||
["Totem Direction"] = nil,
|
||||
["Totem Icons"] = nil,
|
||||
["Totems"] = nil,
|
||||
["Tracked Reputation"] = nil,
|
||||
["Tracking Icon Size"] = nil,
|
||||
["Trigger Actions On Key Down"] = nil,
|
||||
["UI-Scale"] = nil,
|
||||
["Unbuffed"] = nil,
|
||||
["Unit Frame Auras"] = nil,
|
||||
["Unit Frame Border Size"] = nil,
|
||||
["Unit Frame Layout"] = nil,
|
||||
["Unit Frames"] = nil,
|
||||
@@ -854,7 +863,6 @@ pfUI_translation["deDE"] = {
|
||||
["Use Custom Color Power Bar Background"] = nil,
|
||||
["Use Custom Font Settings"] = nil,
|
||||
["Use Custom Spell Power Color (unchecked = biggest school color)"] = nil,
|
||||
["Use Dynamic Font Size"] = nil,
|
||||
["Use Item Rarity Color For Loot-Roll Timer"] = nil,
|
||||
["Use Original Game Fonts"] = nil,
|
||||
["Use Raid Frames To Display Group Members"] = nil,
|
||||
|
||||
Vendored
+28
-20
@@ -1,4 +1,6 @@
|
||||
pfUI_translation["enUS"] = {
|
||||
["2D"] = nil,
|
||||
["3D"] = nil,
|
||||
["3D World Unit Font"] = nil,
|
||||
["Abbreviate Numbers (4200 -> 4.2k)"] = nil,
|
||||
["Abbreviate Unit Names"] = nil,
|
||||
@@ -6,6 +8,7 @@ pfUI_translation["enUS"] = {
|
||||
["Actionbar"] = nil,
|
||||
["Action Bar"] = nil,
|
||||
["Action Bar Border Size"] = nil,
|
||||
["Action Bars"] = nil,
|
||||
["Active Addons"] = nil,
|
||||
["Add button to the frame"] = nil,
|
||||
["Added button"] = nil,
|
||||
@@ -28,11 +31,11 @@ pfUI_translation["enUS"] = {
|
||||
["Always Show Item Comparison"] = nil,
|
||||
["Always Show On Target Units"] = nil,
|
||||
["Always Show On Units With Missing HP"] = nil,
|
||||
["Always Use 2D Portraits"] = nil,
|
||||
["Ammo Counter"] = nil,
|
||||
["Anchor Bags Above Chat"] = nil,
|
||||
["A new installation of |cff33ffccpf|rUI ships with 4 prebuilt design profiles. Click below if you wish to load one of these profiles."] = nil,
|
||||
["A new version is available"] = nil,
|
||||
["Animate Health And Power Bars"] = nil,
|
||||
["Appearance"] = nil,
|
||||
["Ascending"] = nil,
|
||||
["Author"] = nil,
|
||||
@@ -81,7 +84,7 @@ pfUI_translation["enUS"] = {
|
||||
["Buffbar Width"] = nil,
|
||||
["Buff/Debuff Icons"] = nil,
|
||||
["Buff/Debuff Indicators"] = nil,
|
||||
["Buff Font Size"] = nil,
|
||||
["Buff Indicators"] = nil,
|
||||
["Buff Limit"] = nil,
|
||||
["Buff Position"] = nil,
|
||||
["Buffs"] = nil,
|
||||
@@ -125,10 +128,14 @@ pfUI_translation["enUS"] = {
|
||||
["Chat Bubble Transparency"] = nil,
|
||||
["Chat Default Brackets"] = nil,
|
||||
["Class"] = nil,
|
||||
["Class Icon (Round)"] = nil,
|
||||
["Class Icon (Square)"] = nil,
|
||||
["Clear"] = nil,
|
||||
["Clear Rolls"] = nil,
|
||||
["Click Action"] = nil,
|
||||
["Click Casting"] = nil,
|
||||
["Click to undress"] = nil,
|
||||
["Undress"] = nil,
|
||||
["Clock"] = nil,
|
||||
["Close"] = nil,
|
||||
["Collapse Empty Slots"] = nil,
|
||||
@@ -151,21 +158,16 @@ pfUI_translation["enUS"] = {
|
||||
["Configuration"] = nil,
|
||||
["Configure"] = nil,
|
||||
["Cooldown"] = nil,
|
||||
["Cooldown Color (5 Seconds Or Less)"] = nil,
|
||||
["Cooldown Color (Days)"] = nil,
|
||||
["Cooldown Color (Hours)"] = nil,
|
||||
["Cooldown Color (Less than 3 Sec)"] = nil,
|
||||
["Cooldown Color (Minutes)"] = nil,
|
||||
["Cooldown Color (Seconds)"] = nil,
|
||||
["Cooldown / Durations"] = nil,
|
||||
["Cooldown Text Font"] = nil,
|
||||
["Cooldown Text Font Size"] = nil,
|
||||
["Cooldown Text Font Size (Blizzard Frames)"] = nil,
|
||||
["Cooldown Text Font Size (Foreign Frames)"] = nil,
|
||||
["Cooldown Text Size"] = nil,
|
||||
["Cooldown Text Threshold"] = nil,
|
||||
["Cooldown Text Time Threshold"] = nil,
|
||||
["Coordinates Location"] = nil,
|
||||
["Coordinates On Minimap"] = nil,
|
||||
["Copied to clipboard"] = nil,
|
||||
["Count"] = nil,
|
||||
["Create Profile"] = nil,
|
||||
["Ctrl-Click"] = nil,
|
||||
@@ -285,12 +287,9 @@ pfUI_translation["enUS"] = {
|
||||
["Enable Custom Incoming Whispers Layout"] = nil,
|
||||
["Enable Debuff Display"] = nil,
|
||||
["Enable Debuffs"] = nil,
|
||||
["Enable Durations On Blizzard Frames"] = nil,
|
||||
["Enable Durations On Foreign Frames"] = nil,
|
||||
["Enable Energy Ticks"] = nil,
|
||||
["Enable Extended Guild Information"] = nil,
|
||||
["Enable Frame Shadow"] = nil,
|
||||
["Enable Full-Text Search"] = nil,
|
||||
["Enable Indicators"] = nil,
|
||||
["Enable Item Quality Color For Equipment Only"] = nil,
|
||||
["Enable \"Loot & Spam\" Chat Window"] = nil,
|
||||
@@ -346,6 +345,7 @@ pfUI_translation["enUS"] = {
|
||||
["Font"] = nil,
|
||||
["Font Options"] = nil,
|
||||
["Font Padding"] = nil,
|
||||
["Font Size"] = nil,
|
||||
["Font Style"] = nil,
|
||||
["Force Blizzard Borders (|cffffaaaaExperimental|r)"] = nil,
|
||||
["fps"] = nil,
|
||||
@@ -380,7 +380,6 @@ pfUI_translation["enUS"] = {
|
||||
["Health"] = nil,
|
||||
["Health - Auto"] = nil,
|
||||
["Healthbar"] = nil,
|
||||
["Healthbar Animation Speed"] = nil,
|
||||
["Health Bar Color"] = nil,
|
||||
["Healthbar Embedded"] = nil,
|
||||
["Healthbar Height"] = nil,
|
||||
@@ -405,7 +404,6 @@ pfUI_translation["enUS"] = {
|
||||
["Hide Channel Names"] = nil,
|
||||
["Hide Chat When Bags Are Opened"] = nil,
|
||||
["Hide Combat Log"] = nil,
|
||||
["Hide Foreign Cooldown Animations"] = nil,
|
||||
["Hide Group Frames While In Raid"] = nil,
|
||||
["Hide Healthbar On Critters"] = nil,
|
||||
["Hide Healthbar On Enemy NPCs"] = nil,
|
||||
@@ -414,6 +412,7 @@ pfUI_translation["enUS"] = {
|
||||
["Hide Healthbar On Friendly Players"] = nil,
|
||||
["Hide Healthbar On Neutral NPCs"] = nil,
|
||||
["Hide Healthbar On Totems"] = nil,
|
||||
["Hide Numbers On Spell Cooldowns Up To (Seconds)"] = nil,
|
||||
["Hide Timeout"] = nil,
|
||||
["Hide When Entering Combat"] = nil,
|
||||
["Highlight Equipped Items"] = nil,
|
||||
@@ -443,7 +442,6 @@ pfUI_translation["enUS"] = {
|
||||
["Inherit Default Colors"] = nil,
|
||||
["Inputbox Height"] = nil,
|
||||
["Inputbox Width"] = nil,
|
||||
["Instant"] = nil,
|
||||
["Integrations"] = nil,
|
||||
["Invert Health Bar"] = nil,
|
||||
["is not allowed in profile name"] = nil,
|
||||
@@ -489,6 +487,7 @@ pfUI_translation["enUS"] = {
|
||||
["Loot"] = nil,
|
||||
["Loot & Spam"] = nil,
|
||||
["Loot History"] = nil,
|
||||
["Loss Of Control"] = nil,
|
||||
["Macro Text Color"] = nil,
|
||||
["Macro Text Size"] = nil,
|
||||
["Main Actionbar"] = nil,
|
||||
@@ -529,6 +528,7 @@ pfUI_translation["enUS"] = {
|
||||
["Name | Health Missing"] = nil,
|
||||
["Name (Linebreak) -Health Missing"] = nil,
|
||||
["Nameplate Border Size"] = nil,
|
||||
["Nameplate Debuffs"] = nil,
|
||||
["Nameplates"] = nil,
|
||||
["Nameplate Width"] = nil,
|
||||
["Name (Short)"] = nil,
|
||||
@@ -570,6 +570,7 @@ pfUI_translation["enUS"] = {
|
||||
["Optional Dependencies"] = nil,
|
||||
["Options"] = nil,
|
||||
["Orientation"] = nil,
|
||||
["Other Addons"] = nil,
|
||||
["Other Panel: Minimap"] = nil,
|
||||
["Outline"] = nil,
|
||||
["Outlines"] = nil,
|
||||
@@ -600,6 +601,7 @@ pfUI_translation["enUS"] = {
|
||||
["Pixel"] = nil,
|
||||
["Player"] = nil,
|
||||
["Player Buff Bar"] = nil,
|
||||
["Player Buffs"] = nil,
|
||||
["Player Castbar"] = nil,
|
||||
["Player Debuff Bar"] = nil,
|
||||
["Player SP/Haste Display"] = nil,
|
||||
@@ -610,6 +612,7 @@ pfUI_translation["enUS"] = {
|
||||
["Portrait Alpha"] = nil,
|
||||
["Portrait Height"] = nil,
|
||||
["Portrait Position"] = nil,
|
||||
["Portrait Style"] = nil,
|
||||
["Portrait Width"] = nil,
|
||||
["Powerbar"] = nil,
|
||||
["Power Bar Anchor"] = nil,
|
||||
@@ -666,6 +669,7 @@ pfUI_translation["enUS"] = {
|
||||
["Reveal Unexplored Areas"] = nil,
|
||||
["Switch to current zone"] = nil,
|
||||
["Retrieving item information..."] = nil,
|
||||
["Reverse Sweep On"] = nil,
|
||||
["Right"] = nil,
|
||||
["Right Actionbar"] = nil,
|
||||
["Right Anchor"] = nil,
|
||||
@@ -687,6 +691,7 @@ pfUI_translation["enUS"] = {
|
||||
["Save & Reload"] = nil,
|
||||
["Scale"] = nil,
|
||||
["Scale Border On HiDPI Displays"] = nil,
|
||||
["Scale Font Size With Icon"] = nil,
|
||||
["Scaling"] = nil,
|
||||
["Screen Edge Glow Intensity"] = nil,
|
||||
["Screen Resolution"] = nil,
|
||||
@@ -746,7 +751,7 @@ pfUI_translation["enUS"] = {
|
||||
["Show Loot Icon"] = nil,
|
||||
["Show Macro Text"] = nil,
|
||||
["Show Meters By Default"] = nil,
|
||||
["Show Milliseconds When Timer Runs Out"] = nil,
|
||||
["Show Numbers On"] = nil,
|
||||
["Show On Friendly Units"] = nil,
|
||||
["Show On Hostile Units"] = nil,
|
||||
["Show Procs Indicators"] = nil,
|
||||
@@ -764,10 +769,10 @@ pfUI_translation["enUS"] = {
|
||||
["Show Spell Icon"] = nil,
|
||||
["Show Spell Name"] = nil,
|
||||
["Show Stacks"] = nil,
|
||||
["Show Sweep On"] = nil,
|
||||
["Show Tenths Below 5 Seconds"] = nil,
|
||||
["Show Text"] = nil,
|
||||
["Show Time Left"] = nil,
|
||||
["Show Timer"] = nil,
|
||||
["Show Timer Animation"] = nil,
|
||||
["Show Timer Text"] = nil,
|
||||
["Show Totems Indicators"] = nil,
|
||||
["Shrink & Return"] = nil,
|
||||
@@ -789,8 +794,10 @@ pfUI_translation["enUS"] = {
|
||||
["Soulshards"] = nil,
|
||||
["Spacing"] = nil,
|
||||
["Special Recipient"] = nil,
|
||||
["Spellbook And Character"] = nil,
|
||||
["Spell Power Color"] = nil,
|
||||
["Square"] = nil,
|
||||
["Stack Count Font Size"] = nil,
|
||||
["Stance Bar 1"] = nil,
|
||||
["Stance Bar 2"] = nil,
|
||||
["Stance Bar 3"] = nil,
|
||||
@@ -826,7 +833,6 @@ pfUI_translation["enUS"] = {
|
||||
["Thistle Tea"] = nil,
|
||||
["Threshold To Trust Health Estimation"] = nil,
|
||||
["Time"] = nil,
|
||||
["Timer"] = nil,
|
||||
["Timer Alignment"] = nil,
|
||||
["Timer X Offset"] = nil,
|
||||
["Timer Y Offset"] = nil,
|
||||
@@ -840,6 +846,7 @@ pfUI_translation["enUS"] = {
|
||||
["Tiny (PixelPerfect)"] = nil,
|
||||
["Toggle as Tank"] = nil,
|
||||
["Tooltip"] = nil,
|
||||
["Tooltip Auras"] = nil,
|
||||
["Tooltip Position"] = nil,
|
||||
["Tooltip Text Font"] = nil,
|
||||
["Tooltip Text Font Size"] = nil,
|
||||
@@ -851,11 +858,13 @@ pfUI_translation["enUS"] = {
|
||||
["Total Gold"] = nil,
|
||||
["Totem Direction"] = nil,
|
||||
["Totem Icons"] = nil,
|
||||
["Totems"] = nil,
|
||||
["Tracked Reputation"] = nil,
|
||||
["Tracking Icon Size"] = nil,
|
||||
["Trigger Actions On Key Down"] = nil,
|
||||
["UI-Scale"] = nil,
|
||||
["Unbuffed"] = nil,
|
||||
["Unit Frame Auras"] = nil,
|
||||
["Unit Frame Border Size"] = nil,
|
||||
["Unit Frame Layout"] = nil,
|
||||
["Unit Frames"] = nil,
|
||||
@@ -882,7 +891,6 @@ pfUI_translation["enUS"] = {
|
||||
["Use Custom Color Power Bar Background"] = nil,
|
||||
["Use Custom Font Settings"] = nil,
|
||||
["Use Custom Spell Power Color (unchecked = biggest school color)"] = nil,
|
||||
["Use Dynamic Font Size"] = nil,
|
||||
["Use Item Rarity Color For Loot-Roll Timer"] = nil,
|
||||
["Use Original Game Fonts"] = nil,
|
||||
["Use Raid Frames To Display Group Members"] = nil,
|
||||
|
||||
Vendored
+28
-20
@@ -1,4 +1,6 @@
|
||||
pfUI_translation["esES"] = {
|
||||
["2D"] = nil,
|
||||
["3D"] = nil,
|
||||
["3D World Unit Font"] = nil,
|
||||
["Abbreviate Numbers (4200 -> 4.2k)"] = "Abreviar números (4200 -> 4.2k)",
|
||||
["Abbreviate Unit Names"] = nil,
|
||||
@@ -6,6 +8,7 @@ pfUI_translation["esES"] = {
|
||||
["Actionbar"] = "Barra de acción",
|
||||
["Action Bar"] = "Barra de acción",
|
||||
["Action Bar Border Size"] = "Tamaño del borde de la barra de acción",
|
||||
["Action Bars"] = nil,
|
||||
["Active Addons"] = "Accesorios activos",
|
||||
["Add button to the frame"] = "Añadir botón al marco",
|
||||
["Added button"] = "Botón añadido",
|
||||
@@ -27,11 +30,11 @@ pfUI_translation["esES"] = {
|
||||
["Always Show Item Comparison"] = "Mostrar siempre la comparativa entre objetos",
|
||||
["Always Show On Target Units"] = "Mostrar siempre en el objectivo",
|
||||
["Always Show On Units With Missing HP"] = "Mostrar siempre en unidades con falta de salud",
|
||||
["Always Use 2D Portraits"] = "Usar siempre retratos 2D",
|
||||
["Ammo Counter"] = "Contador de munición",
|
||||
["Anchor Bags Above Chat"] = nil,
|
||||
["A new installation of |cff33ffccpf|rUI ships with 4 prebuilt design profiles. Click below if you wish to load one of these profiles."] = "Una nueva instalación de |cff33ffccpf|rUI viene con 4 perfiles de diseño preconfigurados. Haga clic debajo si deseas cargar uno de estos perfiles.",
|
||||
["A new version is available"] = "Una nueva versión está disponible",
|
||||
["Animate Health And Power Bars"] = nil,
|
||||
["Appearance"] = "Apariencia",
|
||||
["Ascending"] = "Ascendiendo",
|
||||
["Author"] = "Autor",
|
||||
@@ -78,7 +81,7 @@ pfUI_translation["esES"] = {
|
||||
["Buffbar Width"] = "Ancho de la barra de beneficios",
|
||||
["Buff/Debuff Icons"] = "Iconos de los beneficios/perjuicios",
|
||||
["Buff/Debuff Indicators"] = "Indicadores de beneficios/perjuicios",
|
||||
["Buff Font Size"] = "Tamaño de la fuente de beneficios",
|
||||
["Buff Indicators"] = nil,
|
||||
["Buff Limit"] = "Límite de beneficios",
|
||||
["Buff Position"] = "Posición de los beneficios",
|
||||
["Buffs"] = "Beneficios",
|
||||
@@ -120,9 +123,13 @@ pfUI_translation["esES"] = {
|
||||
["Chat Bubble Transparency"] = "Transparencia de los bocadillos de chat",
|
||||
["Chat Default Brackets"] = "Corchetes de chat predeterminados",
|
||||
["Class"] = "Clase",
|
||||
["Class Icon (Round)"] = nil,
|
||||
["Class Icon (Square)"] = nil,
|
||||
["Clear Rolls"] = "Borrar los dados",
|
||||
["Click Action"] = "Acción al hacer clic",
|
||||
["Click Casting"] = "Lanzamiento al hacer click",
|
||||
["Click to undress"] = nil,
|
||||
["Undress"] = nil,
|
||||
["Clock"] = "Reloj",
|
||||
["Close"] = "Cerrar",
|
||||
["Collapse Empty Slots"] = nil,
|
||||
@@ -145,21 +152,16 @@ pfUI_translation["esES"] = {
|
||||
["Configuration"] = "Configuración",
|
||||
["Configure"] = "Configurar",
|
||||
["Cooldown"] = "Reutilización",
|
||||
["Cooldown Color (5 Seconds Or Less)"] = nil,
|
||||
["Cooldown Color (Days)"] = "Color de reutilización (días)",
|
||||
["Cooldown Color (Hours)"] = "Color de reutilización (horas)",
|
||||
["Cooldown Color (Less than 3 Sec)"] = "Color de reutilización (menos de 3 segundos)",
|
||||
["Cooldown Color (Minutes)"] = "Color de reutilización (minutos)",
|
||||
["Cooldown Color (Seconds)"] = "Color de reutilización (segundos)",
|
||||
["Cooldown / Durations"] = nil,
|
||||
["Cooldown Text Font"] = nil,
|
||||
["Cooldown Text Font Size"] = "Tamaño de la fuente de texto de reutilización",
|
||||
["Cooldown Text Font Size (Blizzard Frames)"] = "Tamaño de la fuente del tiempo de reutilización (Marcos de Blizzard)",
|
||||
["Cooldown Text Font Size (Foreign Frames)"] = "Tamaño de la fuente del tiempo de reutilización (Marcos ajenos)",
|
||||
["Cooldown Text Size"] = "Tamaño del texto del tiempo de reutilización",
|
||||
["Cooldown Text Threshold"] = nil,
|
||||
["Cooldown Text Time Threshold"] = "Umbral del texto del tiempo de reutilización",
|
||||
["Coordinates Location"] = "Coordenadas de localización",
|
||||
["Coordinates On Minimap"] = "Coordenadas en el minimapa",
|
||||
["Copied to clipboard"] = nil,
|
||||
["Count"] = "Recuento",
|
||||
["Create Profile"] = "Crear perfil",
|
||||
["Ctrl-Click"] = "Ctrl-Clic",
|
||||
@@ -276,12 +278,9 @@ pfUI_translation["esES"] = {
|
||||
["Enable Custom Incoming Whispers Layout"] = "Activar disposición de susurros entrantes personalizado",
|
||||
["Enable Debuff Display"] = "Mostrar los perjuicios",
|
||||
["Enable Debuffs"] = "Activar los perjuicios",
|
||||
["Enable Durations On Blizzard Frames"] = "Activar duración en los marcos de Blizzard",
|
||||
["Enable Durations On Foreign Frames"] = "Activar duración en los marcos extranjeros",
|
||||
["Enable Energy Ticks"] = "Activar tics de energía",
|
||||
["Enable Extended Guild Information"] = "Activar información de hermandad extendida",
|
||||
["Enable Frame Shadow"] = "Activar sombra del marco",
|
||||
["Enable Full-Text Search"] = nil,
|
||||
["Enable Indicators"] = "Activar indicadores",
|
||||
["Enable Item Quality Color For Equipment Only"] = "Mostrar el color de calidad de objetos solo para equipo",
|
||||
["Enable \"Loot & Spam\" Chat Window"] = "Activar ventana de chat \"Botín y spam\"",
|
||||
@@ -336,6 +335,7 @@ pfUI_translation["esES"] = {
|
||||
["Font"] = "Fuente",
|
||||
["Font Options"] = "Opciones de fuente",
|
||||
["Font Padding"] = "Relleno de fuente",
|
||||
["Font Size"] = nil,
|
||||
["Font Style"] = "Estilo de la fuente",
|
||||
["Force Blizzard Borders (|cffffaaaaExperimental|r)"] = nil,
|
||||
["fps"] = "ips",
|
||||
@@ -370,7 +370,6 @@ pfUI_translation["esES"] = {
|
||||
["Health"] = "Salud",
|
||||
["Health - Auto"] = "Salud - Auto",
|
||||
["Healthbar"] = "Barra de salud",
|
||||
["Healthbar Animation Speed"] = "Velocidad de animación de la barra de salud",
|
||||
["Health Bar Color"] = "Color de la barra de salud",
|
||||
["Healthbar Embedded"] = "Barra de salud embebida",
|
||||
["Healthbar Height"] = "Altura de la barra de salud",
|
||||
@@ -395,7 +394,6 @@ pfUI_translation["esES"] = {
|
||||
["Hide Channel Names"] = "Ocultar nombres de canales",
|
||||
["Hide Chat When Bags Are Opened"] = "Ocultar el chat al abrir las bolsas",
|
||||
["Hide Combat Log"] = "Ocultar el registro del combate",
|
||||
["Hide Foreign Cooldown Animations"] = "Esconde animaciones de reutilización externas",
|
||||
["Hide Group Frames While In Raid"] = "Ocultar los marcos de grupo mientras estés en banda",
|
||||
["Hide Healthbar On Critters"] = "Esconder la barra de salud con las alimañas",
|
||||
["Hide Healthbar On Enemy NPCs"] = "Esconder la barra de salud con los PNJs enemigos",
|
||||
@@ -404,6 +402,7 @@ pfUI_translation["esES"] = {
|
||||
["Hide Healthbar On Friendly Players"] = "Esconder la barra de salud con los jugadores amistosos",
|
||||
["Hide Healthbar On Neutral NPCs"] = "Esconder la barra de salud con los PNJs neutrales",
|
||||
["Hide Healthbar On Totems"] = "Esconder la barra de salud con los tótems",
|
||||
["Hide Numbers On Spell Cooldowns Up To (Seconds)"] = nil,
|
||||
["Hide Timeout"] = "Ocultar temporizador",
|
||||
["Hide When Entering Combat"] = "Ocultar si entras combate",
|
||||
["Highlight Equipped Items"] = "Resaltar objetos equipados",
|
||||
@@ -432,7 +431,6 @@ pfUI_translation["esES"] = {
|
||||
["Inherit Default Colors"] = "Color predeterminado",
|
||||
["Inputbox Height"] = "Altura de la barra de entrada",
|
||||
["Inputbox Width"] = "Ancho de la barra de entrada",
|
||||
["Instant"] = "Instantáneo",
|
||||
["Integrations"] = "Integraciones",
|
||||
["Invert Health Bar"] = "Invertir la barra de salud",
|
||||
["is not allowed in profile name"] = "no se permite en el nombre de perfil",
|
||||
@@ -477,6 +475,7 @@ pfUI_translation["esES"] = {
|
||||
["Look & Feel"] = nil,
|
||||
["Loot"] = "Botín",
|
||||
["Loot & Spam"] = "Botín y spam",
|
||||
["Loss Of Control"] = nil,
|
||||
["Macro Text Color"] = "Color de texto de macros",
|
||||
["Macro Text Size"] = "Tamaño de texto de macros",
|
||||
["Main Actionbar"] = "Barra de acción principal",
|
||||
@@ -516,6 +515,7 @@ pfUI_translation["esES"] = {
|
||||
["Name | Health Missing"] = "Nombre | Falta de salud",
|
||||
["Name (Linebreak) -Health Missing"] = nil,
|
||||
["Nameplate Border Size"] = "Tamaño del borde de las placas de nombre",
|
||||
["Nameplate Debuffs"] = nil,
|
||||
["Nameplates"] = "Placas identificativas",
|
||||
["Nameplate Width"] = "Ancho de las placas identificativas",
|
||||
["Name (Short)"] = "Nombre (corto)",
|
||||
@@ -554,6 +554,7 @@ pfUI_translation["esES"] = {
|
||||
["On State Change"] = "En un cambio de estado",
|
||||
["Options"] = "Opciones",
|
||||
["Orientation"] = "Orientación",
|
||||
["Other Addons"] = nil,
|
||||
["Other Panel: Minimap"] = "Otro panel: minimapa",
|
||||
["Outline"] = "Contorno",
|
||||
["Outlines"] = "Contornos",
|
||||
@@ -582,6 +583,7 @@ pfUI_translation["esES"] = {
|
||||
["Pixel"] = "Píxel",
|
||||
["Player"] = "Jugador",
|
||||
["Player Buff Bar"] = "Barra de beneficios del jugador",
|
||||
["Player Buffs"] = nil,
|
||||
["Player Castbar"] = "Barra de lanzamiento del jugador",
|
||||
["Player Debuff Bar"] = "Barra de perjuicios del jugador",
|
||||
["Player SP/Haste Display"] = nil,
|
||||
@@ -592,6 +594,7 @@ pfUI_translation["esES"] = {
|
||||
["Portrait Alpha"] = "Transparencia del retrato",
|
||||
["Portrait Height"] = "Altura Retrato",
|
||||
["Portrait Position"] = "Posición del retrato",
|
||||
["Portrait Style"] = nil,
|
||||
["Portrait Width"] = "Ancho Retrato",
|
||||
["Powerbar"] = "Barra de poder",
|
||||
["Power Bar Anchor"] = "Ancla de la barra de poder",
|
||||
@@ -647,6 +650,7 @@ pfUI_translation["esES"] = {
|
||||
["Resting"] = "Descansando",
|
||||
["Reveal Unexplored Areas"] = "Mostrar áreas no exploradas",
|
||||
["Switch to current zone"] = "Ir a la zona actual",
|
||||
["Reverse Sweep On"] = nil,
|
||||
["Right"] = "Derecho",
|
||||
["Right Actionbar"] = "Barra de acción derecha",
|
||||
["Right Anchor"] = nil,
|
||||
@@ -668,6 +672,7 @@ pfUI_translation["esES"] = {
|
||||
["Save & Reload"] = nil,
|
||||
["Scale"] = "Escala",
|
||||
["Scale Border On HiDPI Displays"] = "Escalar los bordes en las pantallas con DPI alto",
|
||||
["Scale Font Size With Icon"] = nil,
|
||||
["Scaling"] = "Escalada",
|
||||
["Screen Edge Glow Intensity"] = "Intensidad de brillo en los bordes de la pantalla",
|
||||
["Screen Resolution"] = "Resolución de pantalla",
|
||||
@@ -727,7 +732,7 @@ pfUI_translation["esES"] = {
|
||||
["Show Loot Icon"] = "Mostrar icono de botín",
|
||||
["Show Macro Text"] = "Mostrar texto de macro",
|
||||
["Show Meters By Default"] = "Mostrar medidores por defecto",
|
||||
["Show Milliseconds When Timer Runs Out"] = "Mostrar milisegundos cuando el temporizador se acaba",
|
||||
["Show Numbers On"] = nil,
|
||||
["Show On Friendly Units"] = "Mostrar en unidades amistosas",
|
||||
["Show On Hostile Units"] = "Mostrar en unidades enemigas",
|
||||
["Show Procs Indicators"] = "Mostrar indicadores de beneficios temporales activados",
|
||||
@@ -745,10 +750,10 @@ pfUI_translation["esES"] = {
|
||||
["Show Spell Icon"] = "Mostrar icono de hechizo",
|
||||
["Show Spell Name"] = nil,
|
||||
["Show Stacks"] = "Mostrar pilas",
|
||||
["Show Sweep On"] = nil,
|
||||
["Show Tenths Below 5 Seconds"] = nil,
|
||||
["Show Text"] = nil,
|
||||
["Show Time Left"] = "Mostrar el tiempo restante",
|
||||
["Show Timer"] = nil,
|
||||
["Show Timer Animation"] = "Mostrar la animación del temporizador",
|
||||
["Show Timer Text"] = "Mostrar el texto del temporizador",
|
||||
["Show Totems Indicators"] = "Mostrar los indicadores de tótems",
|
||||
["Shrink & Return"] = "Encogerse y volver",
|
||||
@@ -765,8 +770,10 @@ pfUI_translation["esES"] = {
|
||||
["Soulshards"] = "Fragmentos de alma",
|
||||
["Spacing"] = "Espaciado",
|
||||
["Special Recipient"] = "Destinatario especial",
|
||||
["Spellbook And Character"] = nil,
|
||||
["Spell Power Color"] = nil,
|
||||
["Square"] = "Cuadrado",
|
||||
["Stack Count Font Size"] = nil,
|
||||
["Stance Bar 1"] = "Barra de actitud 1",
|
||||
["Stance Bar 2"] = "Barra de actitud 2",
|
||||
["Stance Bar 3"] = "Barra de actitud 3",
|
||||
@@ -801,7 +808,6 @@ pfUI_translation["esES"] = {
|
||||
["Thistle Tea"] = nil,
|
||||
["Threshold To Trust Health Estimation"] = "Umbral para confiar en la estimación de salud",
|
||||
["Time"] = "Tiempo",
|
||||
["Timer"] = "Temporizador",
|
||||
["Time Remaining"] = "Tiempo restante",
|
||||
["Timer In Minutes"] = "Temporizador en minutos",
|
||||
["Timestamp Brackets"] = "Corchetes de marca de tiempo",
|
||||
@@ -812,6 +818,7 @@ pfUI_translation["esES"] = {
|
||||
["Tiny (PixelPerfect)"] = "Minúsculo (píxel perfecta)",
|
||||
["Toggle as Tank"] = "Alternar si eres el tanque",
|
||||
["Tooltip"] = "Descripción emergente",
|
||||
["Tooltip Auras"] = nil,
|
||||
["Tooltip Position"] = "Posición de la descripción emergente",
|
||||
["Tooltip Text Font"] = nil,
|
||||
["Tooltip Text Font Size"] = nil,
|
||||
@@ -823,11 +830,13 @@ pfUI_translation["esES"] = {
|
||||
["Total Gold"] = "Oro Total",
|
||||
["Totem Direction"] = "Dirección del tótem",
|
||||
["Totem Icons"] = "Iconos de los tótems",
|
||||
["Totems"] = nil,
|
||||
["Tracked Reputation"] = "Reputación rastreada",
|
||||
["Tracking Icon Size"] = "Tamaño del icono de rastreo",
|
||||
["Trigger Actions On Key Down"] = "Disparar acciones por presionar la tecla abajo",
|
||||
["UI-Scale"] = "Escala de IU",
|
||||
["Unbuffed"] = "Sin beneficios",
|
||||
["Unit Frame Auras"] = nil,
|
||||
["Unit Frame Border Size"] = "Tamaño del borde del marco de unidad",
|
||||
["Unit Frame Layout"] = "Disposición del Marco de unidad",
|
||||
["Unit Frames"] = "Marcos de unidad",
|
||||
@@ -854,7 +863,6 @@ pfUI_translation["esES"] = {
|
||||
["Use Custom Color Power Bar Background"] = "Usar un color personalizado para el fondo de la barra de poder",
|
||||
["Use Custom Font Settings"] = "Usar las opciones de fuente personalizada",
|
||||
["Use Custom Spell Power Color (unchecked = biggest school color)"] = nil,
|
||||
["Use Dynamic Font Size"] = "Usar un tamaño de fuente dinámico",
|
||||
["Use Item Rarity Color For Loot-Roll Timer"] = "Usar el color de la rareza del objeto para el temporizador de tirar los dados",
|
||||
["Use Original Game Fonts"] = nil,
|
||||
["Use Raid Frames To Display Group Members"] = "Usar marcos de la banda para mostrar miembros del grupo",
|
||||
|
||||
Vendored
+98
-20
@@ -1,4 +1,6 @@
|
||||
pfUI_translation["frFR"] = {
|
||||
["2D"] = nil,
|
||||
["3D"] = nil,
|
||||
["3D World Unit Font"] = nil,
|
||||
["Abbreviate Numbers (4200 -> 4.2k)"] = "Nombre abrégés (4200 -> 4.2k)",
|
||||
["Abbreviate Unit Names"] = nil,
|
||||
@@ -6,6 +8,7 @@ pfUI_translation["frFR"] = {
|
||||
["Actionbar"] = "Barre d'action",
|
||||
["Action Bar"] = "Barre d'action",
|
||||
["Action Bar Border Size"] = "Taille de la bordure de la barre d'action",
|
||||
["Action Bars"] = nil,
|
||||
["Active Addons"] = "Addons Actif",
|
||||
["Add button to the frame"] = "Ajoute un bouton au cadre",
|
||||
["Added button"] = "Bouton ajouté",
|
||||
@@ -27,11 +30,11 @@ pfUI_translation["frFR"] = {
|
||||
["Always Show Item Comparison"] = "Toujours afficher la comparaison d'objet",
|
||||
["Always Show On Target Units"] = "Toujours montrer sur la cible",
|
||||
["Always Show On Units With Missing HP"] = "Toujours montrer sur les cibles avec de la vie manquante",
|
||||
["Always Use 2D Portraits"] = "Toujours utiliser les portraits 2D",
|
||||
["Ammo Counter"] = "Compteur de munitions",
|
||||
["Anchor Bags Above Chat"] = nil,
|
||||
["A new installation of |cff33ffccpf|rUI ships with 4 prebuilt design profiles. Click below if you wish to load one of these profiles."] = "Une nouvelle installation de |cff33ffccpf|rUI est livrée avec 4 profils de conception prédéfinis, Cliquez ci-dessous si vous souhaitez charger l'un de ces profils",
|
||||
["A new version is available"] = "Une nouvelle version est disponible",
|
||||
["Animate Health And Power Bars"] = nil,
|
||||
["Appearance"] = "Apparence",
|
||||
["Ascending"] = "Ascendante",
|
||||
["Author"] = "Auteur",
|
||||
@@ -78,7 +81,7 @@ pfUI_translation["frFR"] = {
|
||||
["Buffbar Width"] = "Largeur de la barre des Améliorations",
|
||||
["Buff/Debuff Icons"] = "Icones de Améliorations/Affaiblissements",
|
||||
["Buff/Debuff Indicators"] = nil,
|
||||
["Buff Font Size"] = "Taille de la police des Améliorations",
|
||||
["Buff Indicators"] = nil,
|
||||
["Buff Limit"] = "Limite des améliorations",
|
||||
["Buff Position"] = "Position des améliorations",
|
||||
["Buffs"] = "Buffs",
|
||||
@@ -120,9 +123,13 @@ pfUI_translation["frFR"] = {
|
||||
["Chat Bubble Transparency"] = "Transparence de la bulle de chat",
|
||||
["Chat Default Brackets"] = "Supports par défaut du chat",
|
||||
["Class"] = "Classe",
|
||||
["Class Icon (Round)"] = nil,
|
||||
["Class Icon (Square)"] = nil,
|
||||
["Clear Rolls"] = "Clear les roulements",
|
||||
["Click Action"] = "Action au clic",
|
||||
["Click Casting"] = "Clique sur le lancement de sort",
|
||||
["Click to undress"] = nil,
|
||||
["Undress"] = nil,
|
||||
["Clock"] = "Horloge",
|
||||
["Close"] = "Fermer",
|
||||
["Collapse Empty Slots"] = nil,
|
||||
@@ -145,21 +152,16 @@ pfUI_translation["frFR"] = {
|
||||
["Configuration"] = "Configuration",
|
||||
["Configure"] = "Configurer",
|
||||
["Cooldown"] = "Temps de recharge",
|
||||
["Cooldown Color (5 Seconds Or Less)"] = nil,
|
||||
["Cooldown Color (Days)"] = "Couleur des temps de recharge (Jours)",
|
||||
["Cooldown Color (Hours)"] = "Couleur des temps de recharge (Heures)",
|
||||
["Cooldown Color (Less than 3 Sec)"] = "Couleur des temps de recharge (Moins de 3 secondes)",
|
||||
["Cooldown Color (Minutes)"] = "Couleur des temps de recharge (Minutes)",
|
||||
["Cooldown Color (Seconds)"] = "Couleur des temps de recharge (Secondes)",
|
||||
["Cooldown / Durations"] = nil,
|
||||
["Cooldown Text Font"] = nil,
|
||||
["Cooldown Text Font Size"] = "Taille de la police du texte des temps de recharge",
|
||||
["Cooldown Text Font Size (Blizzard Frames)"] = "Taille de la police du texte des temps de recharge (Blizzard Frames)",
|
||||
["Cooldown Text Font Size (Foreign Frames)"] = "Taille de la police du texte des temps de recharge (Foreign Frames)",
|
||||
["Cooldown Text Size"] = nil,
|
||||
["Cooldown Text Threshold"] = nil,
|
||||
["Cooldown Text Time Threshold"] = "Seuil du texte des temps de recharge",
|
||||
["Coordinates Location"] = "Coordonnées Emplacement",
|
||||
["Coordinates On Minimap"] = "Coordonnées sur la mini-carte",
|
||||
["Copied to clipboard"] = nil,
|
||||
["Count"] = "Compter",
|
||||
["Create Profile"] = "Créer un profil",
|
||||
["Ctrl-Click"] = "Ctrl-Clique",
|
||||
@@ -276,12 +278,9 @@ pfUI_translation["frFR"] = {
|
||||
["Enable Custom Incoming Whispers Layout"] = "Activer la personnalisation de la fenêtre des Chuchotements entrants",
|
||||
["Enable Debuff Display"] = "Activer l'affichage des Affaiblissements",
|
||||
["Enable Debuffs"] = "Activer les affaiblissements",
|
||||
["Enable Durations On Blizzard Frames"] = "Activer les durées sur les cadres Blizzard",
|
||||
["Enable Durations On Foreign Frames"] = "Activer les durées sur les cadres extérieur",
|
||||
["Enable Energy Ticks"] = "Activer la barre de rechargement d'énergie",
|
||||
["Enable Extended Guild Information"] = "Activer les informations de guilde étendues",
|
||||
["Enable Frame Shadow"] = "Activer l'ombre des cadres",
|
||||
["Enable Full-Text Search"] = nil,
|
||||
["Enable Indicators"] = "Activer les indicateurs",
|
||||
["Enable Item Quality Color For Equipment Only"] = "Activer la couleur de la qualité des objets seulement sur les pièces d'équipement",
|
||||
["Enable \"Loot & Spam\" Chat Window"] = "Activer la fenêtre de chat \"Butins & Spam\"",
|
||||
@@ -336,6 +335,7 @@ pfUI_translation["frFR"] = {
|
||||
["Font"] = "Police de caractère",
|
||||
["Font Options"] = "Options de la Police",
|
||||
["Font Padding"] = "Remplissage de la police",
|
||||
["Font Size"] = nil,
|
||||
["Font Style"] = "Style de la police",
|
||||
["Force Blizzard Borders (|cffffaaaaExperimental|r)"] = nil,
|
||||
["fps"] = "fps",
|
||||
@@ -370,7 +370,6 @@ pfUI_translation["frFR"] = {
|
||||
["Health"] = "Point de vie",
|
||||
["Health - Auto"] = "Points de vie - Automatique",
|
||||
["Healthbar"] = "Barre des points de vie",
|
||||
["Healthbar Animation Speed"] = "Vitesse de l'animation des barres de vie",
|
||||
["Health Bar Color"] = "Couleur de la barre des points de vie",
|
||||
["Healthbar Embedded"] = "Barres de vies intégrées",
|
||||
["Healthbar Height"] = "Hauteur des barres de vies",
|
||||
@@ -395,7 +394,6 @@ pfUI_translation["frFR"] = {
|
||||
["Hide Channel Names"] = "Masquer le nom des canaux",
|
||||
["Hide Chat When Bags Are Opened"] = "Masquer le chat quand les sacs sont ouverts",
|
||||
["Hide Combat Log"] = "Masquer le journal de combat",
|
||||
["Hide Foreign Cooldown Animations"] = "Masquer les animations de temps de recharge étrangères",
|
||||
["Hide Group Frames While In Raid"] = "Masquer l'UI Groupe en Raid",
|
||||
["Hide Healthbar On Critters"] = "Masquer la barre de vie des bêtes",
|
||||
["Hide Healthbar On Enemy NPCs"] = "Masquer la barre de vie des PNJs ennemis",
|
||||
@@ -404,6 +402,7 @@ pfUI_translation["frFR"] = {
|
||||
["Hide Healthbar On Friendly Players"] = "Masquer la barre de vie des joueurs amicaux",
|
||||
["Hide Healthbar On Neutral NPCs"] = "Masquer la barre de vie des PNJs neutre",
|
||||
["Hide Healthbar On Totems"] = "Masquer la barre de vie des totems",
|
||||
["Hide Numbers On Spell Cooldowns Up To (Seconds)"] = nil,
|
||||
["Hide Timeout"] = "Masquer le délai d'expiration",
|
||||
["Hide When Entering Combat"] = "Masquer lors de l'entrée en combat",
|
||||
["Highlight Equipped Items"] = "Mettre en surbrillance les objets équipés",
|
||||
@@ -432,7 +431,6 @@ pfUI_translation["frFR"] = {
|
||||
["Inherit Default Colors"] = "Hériter des couleurs par défaut",
|
||||
["Inputbox Height"] = "Hauteur du champ de saisie du texte",
|
||||
["Inputbox Width"] = "Largeur du champ de saisie du texte",
|
||||
["Instant"] = "Instantané",
|
||||
["Integrations"] = nil,
|
||||
["Invert Health Bar"] = "Inverser les barres de vie",
|
||||
["is not allowed in profile name"] = "n'est pas autorisé comme nom de profil",
|
||||
@@ -477,6 +475,7 @@ pfUI_translation["frFR"] = {
|
||||
["Look & Feel"] = nil,
|
||||
["Loot"] = "Butin",
|
||||
["Loot & Spam"] = "Butin & Spam",
|
||||
["Loss Of Control"] = nil,
|
||||
["Macro Text Color"] = "Couleur du texte de la macro",
|
||||
["Macro Text Size"] = "Taille du texte de la macro",
|
||||
["Main Actionbar"] = "Barre d'action principale",
|
||||
@@ -516,6 +515,7 @@ pfUI_translation["frFR"] = {
|
||||
["Name | Health Missing"] = "Nom | santé manquante",
|
||||
["Name (Linebreak) -Health Missing"] = nil,
|
||||
["Nameplate Border Size"] = "Taille de la bordure des barres de vie flottantes",
|
||||
["Nameplate Debuffs"] = nil,
|
||||
["Nameplates"] = "Barres de vie flottantes",
|
||||
["Nameplate Width"] = "Largeur des barres de vie flottantes",
|
||||
["Name (Short)"] = "Nom (Court)",
|
||||
@@ -554,6 +554,7 @@ pfUI_translation["frFR"] = {
|
||||
["On State Change"] = "Sur changement d'état",
|
||||
["Options"] = "Options",
|
||||
["Orientation"] = "Orientation",
|
||||
["Other Addons"] = nil,
|
||||
["Other Panel: Minimap"] = "Autre panneau : Minicarte",
|
||||
["Outline"] = "Contour",
|
||||
["Outlines"] = "Grandes lignes",
|
||||
@@ -582,6 +583,7 @@ pfUI_translation["frFR"] = {
|
||||
["Pixel"] = "Pixel",
|
||||
["Player"] = "Joueur",
|
||||
["Player Buff Bar"] = "Barre des Améliorations du Joueur",
|
||||
["Player Buffs"] = nil,
|
||||
["Player Castbar"] = "Barre d'incantation du Joueur",
|
||||
["Player Debuff Bar"] = "Barre des Affaiblissements du Joueur",
|
||||
["Player SP/Haste Display"] = nil,
|
||||
@@ -592,6 +594,7 @@ pfUI_translation["frFR"] = {
|
||||
["Portrait Alpha"] = "Transparence du portrait",
|
||||
["Portrait Height"] = "Hauteur du portrait",
|
||||
["Portrait Position"] = "Position du portrait",
|
||||
["Portrait Style"] = nil,
|
||||
["Portrait Width"] = "Largeur du portrait",
|
||||
["Powerbar"] = "Barre des ressources",
|
||||
["Power Bar Anchor"] = "Ancrage de la Barre des ressources",
|
||||
@@ -647,6 +650,7 @@ pfUI_translation["frFR"] = {
|
||||
["Resting"] = "Au Repos",
|
||||
["Reveal Unexplored Areas"] = "Révèle les zones non explorées",
|
||||
["Switch to current zone"] = "Aller à la zone actuelle",
|
||||
["Reverse Sweep On"] = nil,
|
||||
["Right"] = "Droit",
|
||||
["Right Actionbar"] = "Barre d'action droite",
|
||||
["Right Anchor"] = nil,
|
||||
@@ -668,6 +672,7 @@ pfUI_translation["frFR"] = {
|
||||
["Save & Reload"] = nil,
|
||||
["Scale"] = "Échelle",
|
||||
["Scale Border On HiDPI Displays"] = "Échelle de bordure sur les écrans HiDPI",
|
||||
["Scale Font Size With Icon"] = nil,
|
||||
["Scaling"] = "Mise à l'échelle",
|
||||
["Screen Edge Glow Intensity"] = nil,
|
||||
["Screen Resolution"] = "Résolution d'écran",
|
||||
@@ -727,7 +732,7 @@ pfUI_translation["frFR"] = {
|
||||
["Show Loot Icon"] = "Afficher l'icône du butin",
|
||||
["Show Macro Text"] = "Afficher le texte des macros",
|
||||
["Show Meters By Default"] = "Afficher les compteurs par défaut",
|
||||
["Show Milliseconds When Timer Runs Out"] = "Afficher les Millisecondes quand le temps est épuisée",
|
||||
["Show Numbers On"] = nil,
|
||||
["Show On Friendly Units"] = "Afficher sur les unités amicales",
|
||||
["Show On Hostile Units"] = "Afficher sur les unités hostiles",
|
||||
["Show Procs Indicators"] = "Afficher les indicateurs de Procs",
|
||||
@@ -745,10 +750,10 @@ pfUI_translation["frFR"] = {
|
||||
["Show Spell Icon"] = "Afficher l'icone des sorts",
|
||||
["Show Spell Name"] = nil,
|
||||
["Show Stacks"] = "Afficher les empilements",
|
||||
["Show Sweep On"] = nil,
|
||||
["Show Tenths Below 5 Seconds"] = nil,
|
||||
["Show Text"] = nil,
|
||||
["Show Time Left"] = "Afficher le temps restant",
|
||||
["Show Timer"] = nil,
|
||||
["Show Timer Animation"] = nil,
|
||||
["Show Timer Text"] = nil,
|
||||
["Show Totems Indicators"] = "Afficher les indicateurs des totems",
|
||||
["Shrink & Return"] = "Rétrécir et retourner",
|
||||
@@ -765,8 +770,10 @@ pfUI_translation["frFR"] = {
|
||||
["Soulshards"] = "Pierre d'âme",
|
||||
["Spacing"] = "Espacement",
|
||||
["Special Recipient"] = "Recipient spécial",
|
||||
["Spellbook And Character"] = nil,
|
||||
["Spell Power Color"] = nil,
|
||||
["Square"] = "Carré",
|
||||
["Stack Count Font Size"] = nil,
|
||||
["Stance Bar 1"] = "Barre de posture 1",
|
||||
["Stance Bar 2"] = "Barre de posture 2",
|
||||
["Stance Bar 3"] = "Barre de posture 3",
|
||||
@@ -801,7 +808,6 @@ pfUI_translation["frFR"] = {
|
||||
["Thistle Tea"] = nil,
|
||||
["Threshold To Trust Health Estimation"] = "Seuil de confiance pour l'estimation de la santé",
|
||||
["Time"] = "Heure",
|
||||
["Timer"] = nil,
|
||||
["Time Remaining"] = "Temps restant",
|
||||
["Timer In Minutes"] = "Temps en minutes",
|
||||
["Timestamp Brackets"] = "Supports des horaires des messages",
|
||||
@@ -812,6 +818,7 @@ pfUI_translation["frFR"] = {
|
||||
["Tiny (PixelPerfect)"] = "Minuscule (PixelParfait)",
|
||||
["Toggle as Tank"] = "Basculer en tant que tank",
|
||||
["Tooltip"] = "Infobulle",
|
||||
["Tooltip Auras"] = nil,
|
||||
["Tooltip Position"] = "Position de l'infobulle",
|
||||
["Tooltip Text Font"] = nil,
|
||||
["Tooltip Text Font Size"] = nil,
|
||||
@@ -823,11 +830,13 @@ pfUI_translation["frFR"] = {
|
||||
["Total Gold"] = "Or Total",
|
||||
["Totem Direction"] = "Direction des totems",
|
||||
["Totem Icons"] = "Icones des totems",
|
||||
["Totems"] = nil,
|
||||
["Tracked Reputation"] = nil,
|
||||
["Tracking Icon Size"] = "Taille de l'icône de suivi",
|
||||
["Trigger Actions On Key Down"] = "Déclencher des actions sur la touche enfoncée",
|
||||
["UI-Scale"] = "Echelle de l'interface",
|
||||
["Unbuffed"] = "Sans Améliorations",
|
||||
["Unit Frame Auras"] = nil,
|
||||
["Unit Frame Border Size"] = "Taille de la bordure des cadres d'unité",
|
||||
["Unit Frame Layout"] = "Position des cadres d'unité",
|
||||
["Unit Frames"] = "Cadres d'unités",
|
||||
@@ -854,7 +863,6 @@ pfUI_translation["frFR"] = {
|
||||
["Use Custom Color Power Bar Background"] = "Utiliser l'arrière-plan de la barre d'alimentation de couleur personnalisée",
|
||||
["Use Custom Font Settings"] = nil,
|
||||
["Use Custom Spell Power Color (unchecked = biggest school color)"] = nil,
|
||||
["Use Dynamic Font Size"] = "Utiliser la taille de police dynamique",
|
||||
["Use Item Rarity Color For Loot-Roll Timer"] = "Utiliser la couleur de la rareté de l'objet pour la minuterie du lancer de dés",
|
||||
["Use Original Game Fonts"] = nil,
|
||||
["Use Raid Frames To Display Group Members"] = "Utiliser l'UI Raid pour afficher les Membres du Groupe",
|
||||
@@ -890,4 +898,74 @@ pfUI_translation["frFR"] = {
|
||||
["Zonetime"] = nil,
|
||||
["Zoom & Fade"] = "Zoom et fondu",
|
||||
["Zoom Target Nameplate"] = "Zoom la cible des barres de vie flottantes",
|
||||
["%d items, %d ignored"] = "%d objets, %d ignorés",
|
||||
["Add the current zone"] = "Ajouter la zone actuelle",
|
||||
["Announce Automatic Set Switches In Chat"] = "Annoncer les changements automatiques d'ensemble dans le chat",
|
||||
["Any Form"] = "N'importe quelle forme",
|
||||
["Aquatic Form"] = "Forme aquatique",
|
||||
["Automatic Set Switching"] = "Changement automatique d'ensemble",
|
||||
["Battle Stance"] = "Posture de combat",
|
||||
["Battleground"] = "Champ de bataille",
|
||||
["Bear Form"] = "Forme d'ours",
|
||||
["Berserker Stance"] = "Posture berserker",
|
||||
["Cat Form"] = "Forme de félin",
|
||||
["Condition met, but a trigger higher in the list wins"] = "Condition remplie, mais un déclencheur plus haut dans la liste est prioritaire",
|
||||
["Create an equipment set first."] = "Créez d'abord un ensemble d'équipement.",
|
||||
["Currently active"] = "Actuellement actif",
|
||||
["Defensive Stance"] = "Posture défensive",
|
||||
["Do Nothing"] = "Ne rien faire",
|
||||
["Dungeon"] = "Donjon",
|
||||
["Eating / Drinking"] = "Manger / Boire",
|
||||
["Enable Automatic Set Switching"] = "Activer le changement automatique d'ensemble",
|
||||
["Equip"] = "Équiper",
|
||||
["Equip sets automatically when mounted, swimming, eating, in a zone, at a given time and more."] = "Équipe automatiquement des ensembles en monture, en nageant, en mangeant, dans une zone, à une heure donnée, etc.",
|
||||
["Equipment Manager"] = "Gestionnaire d'équipement",
|
||||
["Equippable items in your bags, bank and paperdoll that no equipment set uses."] = "Objets équipables dans vos sacs, votre banque et sur votre personnage qu'aucun ensemble n'utilise.",
|
||||
["Equipping %s"] = "Équipement de %s",
|
||||
["Equipping %s (%s)"] = "Équipement de %s (%s)",
|
||||
["Every equippable item is part of a set."] = "Tous les objets équipables font partie d'un ensemble.",
|
||||
["Ghost Wolf"] = "Loup fantôme",
|
||||
["Here"] = "Ici",
|
||||
["Ignored (Right-Click to unignore)"] = "Ignoré (clic droit pour ne plus ignorer)",
|
||||
["In Bags"] = "Dans les sacs",
|
||||
["In Bank"] = "En banque",
|
||||
["Include Bank Items"] = "Inclure les objets en banque",
|
||||
["Instance Type"] = "Type d'instance",
|
||||
["Items Not In Any Set"] = "Objets hors de tout ensemble",
|
||||
["Local time window, e.g. 20:00-23:00"] = "Plage horaire locale, ex. 20:00-23:00",
|
||||
["Minimum Item Quality"] = "Qualité minimale des objets",
|
||||
["Moonkin Form"] = "Forme de sélénien",
|
||||
["Mounted"] = "En monture",
|
||||
["New Trigger"] = "Nouveau déclencheur",
|
||||
["No Form (Caster)"] = "Sans forme (lanceur de sorts)",
|
||||
["No set selected"] = "Aucun ensemble choisi",
|
||||
["No triggers yet. Click \"New Trigger\" to add one."] = "Aucun déclencheur. Cliquez sur \"Nouveau déclencheur\" pour en ajouter un.",
|
||||
["Not part of any equipment set"] = "Ne fait partie d'aucun ensemble",
|
||||
["Open World"] = "Monde extérieur",
|
||||
["Resting (Inn / City)"] = "Repos (auberge / ville)",
|
||||
["Restore Previous Gear"] = "Remettre l'équipement précédent",
|
||||
["Restoring previous gear"] = "Remise de l'équipement précédent",
|
||||
["Select a trigger to edit it."] = "Sélectionnez un déclencheur pour le modifier.",
|
||||
["Selected Trigger"] = "Déclencheur sélectionné",
|
||||
["Separate several zones with ;"] = "Séparez plusieurs zones par ;",
|
||||
["Shadowform"] = "Forme d'Ombre",
|
||||
["Shapeshift Form / Stance"] = "Forme / Posture",
|
||||
["Shift-Click: Link Ctrl-Click: Preview\nRight-Click: Ignore / Unignore"] = "Maj-clic : lien Ctrl-clic : aperçu\nClic droit : ignorer / ne plus ignorer",
|
||||
["Show Ignored"] = "Afficher les ignorés",
|
||||
["Stealth"] = "Camouflage",
|
||||
["Stealthed"] = "Camouflé",
|
||||
["Swimming"] = "À la nage",
|
||||
["Targeting A Boss"] = "Cible un boss",
|
||||
["Time Of Day"] = "Heure de la journée",
|
||||
["Travel Form"] = "Forme de voyage",
|
||||
["Tree of Life Form"] = "Forme d'arbre de vie",
|
||||
["Triggers"] = "Déclencheurs",
|
||||
["Triggers higher in the list take priority. Gear is never swapped in combat, while dead or while casting: the switch waits until it can happen."] = "Les déclencheurs en haut de la liste sont prioritaires. L'équipement n'est jamais changé en combat, mort ou pendant une incantation : le changement attend que ce soit possible.",
|
||||
["Unused"] = "Inutilisés",
|
||||
["Value"] = "Valeur",
|
||||
["When"] = "Quand",
|
||||
["When It Ends"] = "À la fin",
|
||||
["Windows may wrap past midnight (22:00-02:00)."] = "Une plage peut passer minuit (22:00-02:00).",
|
||||
["Zone"] = "Zone",
|
||||
["Zone or subzone name"] = "Nom de zone ou de sous-zone",
|
||||
}
|
||||
|
||||
Vendored
+28
-20
@@ -1,4 +1,6 @@
|
||||
pfUI_translation["koKR"] = {
|
||||
["2D"] = nil,
|
||||
["3D"] = nil,
|
||||
["3D World Unit Font"] = nil,
|
||||
["Abbreviate Numbers (4200 -> 4.2k)"] = "체력수치 약어 (4200 -> 4.2k)",
|
||||
["Abbreviate Unit Names"] = nil,
|
||||
@@ -6,6 +8,7 @@ pfUI_translation["koKR"] = {
|
||||
["Actionbar"] = "액션바",
|
||||
["Action Bar"] = nil,
|
||||
["Action Bar Border Size"] = "액션바 테두리 크기",
|
||||
["Action Bars"] = nil,
|
||||
["Active Addons"] = "애드온 활성화",
|
||||
["Add button to the frame"] = nil,
|
||||
["Added button"] = nil,
|
||||
@@ -27,11 +30,11 @@ pfUI_translation["koKR"] = {
|
||||
["Always Show Item Comparison"] = "항상 착용 장비와 비교 표시",
|
||||
["Always Show On Target Units"] = nil,
|
||||
["Always Show On Units With Missing HP"] = nil,
|
||||
["Always Use 2D Portraits"] = "항상 2D초상화 사용",
|
||||
["Ammo Counter"] = "탄약 갯수",
|
||||
["Anchor Bags Above Chat"] = nil,
|
||||
["A new installation of |cff33ffccpf|rUI ships with 4 prebuilt design profiles. Click below if you wish to load one of these profiles."] = nil,
|
||||
["A new version is available"] = nil,
|
||||
["Animate Health And Power Bars"] = nil,
|
||||
["Appearance"] = "외관 설정",
|
||||
["Ascending"] = nil,
|
||||
["Author"] = nil,
|
||||
@@ -78,7 +81,7 @@ pfUI_translation["koKR"] = {
|
||||
["Buffbar Width"] = nil,
|
||||
["Buff/Debuff Icons"] = nil,
|
||||
["Buff/Debuff Indicators"] = nil,
|
||||
["Buff Font Size"] = nil,
|
||||
["Buff Indicators"] = nil,
|
||||
["Buff Limit"] = "버프 한도",
|
||||
["Buff Position"] = "버프 위치",
|
||||
["Buffs"] = nil,
|
||||
@@ -120,9 +123,13 @@ pfUI_translation["koKR"] = {
|
||||
["Chat Bubble Transparency"] = nil,
|
||||
["Chat Default Brackets"] = nil,
|
||||
["Class"] = "클래스(직업)",
|
||||
["Class Icon (Round)"] = nil,
|
||||
["Class Icon (Square)"] = nil,
|
||||
["Clear Rolls"] = nil,
|
||||
["Click Action"] = "클릭 액션",
|
||||
["Click Casting"] = nil,
|
||||
["Click to undress"] = nil,
|
||||
["Undress"] = nil,
|
||||
["Clock"] = "시계",
|
||||
["Close"] = "닫기",
|
||||
["Collapse Empty Slots"] = nil,
|
||||
@@ -145,21 +152,16 @@ pfUI_translation["koKR"] = {
|
||||
["Configuration"] = "구성",
|
||||
["Configure"] = nil,
|
||||
["Cooldown"] = "쿨다운",
|
||||
["Cooldown Color (5 Seconds Or Less)"] = nil,
|
||||
["Cooldown Color (Days)"] = "재사용 대기시간 컬러(일)",
|
||||
["Cooldown Color (Hours)"] = "재사용 대기시간 컬러(시간)",
|
||||
["Cooldown Color (Less than 3 Sec)"] = "재사용 대기시간 컬러(3초전)",
|
||||
["Cooldown Color (Minutes)"] = "재사용 대기시간 컬러(분)",
|
||||
["Cooldown Color (Seconds)"] = "재사용 대기시간 컬러(초)",
|
||||
["Cooldown / Durations"] = nil,
|
||||
["Cooldown Text Font"] = nil,
|
||||
["Cooldown Text Font Size"] = "재사용 대기시간 텍스트 폰트 크기",
|
||||
["Cooldown Text Font Size (Blizzard Frames)"] = nil,
|
||||
["Cooldown Text Font Size (Foreign Frames)"] = nil,
|
||||
["Cooldown Text Size"] = nil,
|
||||
["Cooldown Text Threshold"] = nil,
|
||||
["Cooldown Text Time Threshold"] = "재사용 대기시간 텍스트 임계 값",
|
||||
["Coordinates Location"] = nil,
|
||||
["Coordinates On Minimap"] = "미니맵의 좌표",
|
||||
["Copied to clipboard"] = nil,
|
||||
["Count"] = "카운트",
|
||||
["Create Profile"] = "프로파일 생성",
|
||||
["Ctrl-Click"] = nil,
|
||||
@@ -276,12 +278,9 @@ pfUI_translation["koKR"] = {
|
||||
["Enable Custom Incoming Whispers Layout"] = "사용자 지정 귓속말 레이아웃 활성화",
|
||||
["Enable Debuff Display"] = nil,
|
||||
["Enable Debuffs"] = "디버프 활성화",
|
||||
["Enable Durations On Blizzard Frames"] = nil,
|
||||
["Enable Durations On Foreign Frames"] = nil,
|
||||
["Enable Energy Ticks"] = "Energy Ticks 활성화",
|
||||
["Enable Extended Guild Information"] = "길드 정보 확장 사용",
|
||||
["Enable Frame Shadow"] = nil,
|
||||
["Enable Full-Text Search"] = nil,
|
||||
["Enable Indicators"] = nil,
|
||||
["Enable Item Quality Color For Equipment Only"] = "착용장비 전용 아이템품질 색상 활성화",
|
||||
["Enable \"Loot & Spam\" Chat Window"] = "\"루팅 & 스팜\"채팅 창 사용",
|
||||
@@ -336,6 +335,7 @@ pfUI_translation["koKR"] = {
|
||||
["Font"] = nil,
|
||||
["Font Options"] = nil,
|
||||
["Font Padding"] = nil,
|
||||
["Font Size"] = nil,
|
||||
["Font Style"] = nil,
|
||||
["Force Blizzard Borders (|cffffaaaaExperimental|r)"] = nil,
|
||||
["fps"] = "프레임",
|
||||
@@ -370,7 +370,6 @@ pfUI_translation["koKR"] = {
|
||||
["Health"] = nil,
|
||||
["Health - Auto"] = "체력-자동",
|
||||
["Healthbar"] = nil,
|
||||
["Healthbar Animation Speed"] = "체력바 애니메이션 속도",
|
||||
["Health Bar Color"] = nil,
|
||||
["Healthbar Embedded"] = "체력바에 겹쳐보기",
|
||||
["Healthbar Height"] = "체력바 높이",
|
||||
@@ -395,7 +394,6 @@ pfUI_translation["koKR"] = {
|
||||
["Hide Channel Names"] = "채널 이름 숨기기",
|
||||
["Hide Chat When Bags Are Opened"] = nil,
|
||||
["Hide Combat Log"] = "전투 기록 숨기기",
|
||||
["Hide Foreign Cooldown Animations"] = nil,
|
||||
["Hide Group Frames While In Raid"] = nil,
|
||||
["Hide Healthbar On Critters"] = nil,
|
||||
["Hide Healthbar On Enemy NPCs"] = nil,
|
||||
@@ -404,6 +402,7 @@ pfUI_translation["koKR"] = {
|
||||
["Hide Healthbar On Friendly Players"] = nil,
|
||||
["Hide Healthbar On Neutral NPCs"] = nil,
|
||||
["Hide Healthbar On Totems"] = nil,
|
||||
["Hide Numbers On Spell Cooldowns Up To (Seconds)"] = nil,
|
||||
["Hide Timeout"] = nil,
|
||||
["Hide When Entering Combat"] = nil,
|
||||
["Highlight Equipped Items"] = nil,
|
||||
@@ -432,7 +431,6 @@ pfUI_translation["koKR"] = {
|
||||
["Inherit Default Colors"] = nil,
|
||||
["Inputbox Height"] = "챗팅 입력창 높이",
|
||||
["Inputbox Width"] = "챗팅 입력창 넓이",
|
||||
["Instant"] = "즉시",
|
||||
["Integrations"] = nil,
|
||||
["Invert Health Bar"] = "체력바 반전",
|
||||
["is not allowed in profile name"] = "프로필 이름에 허용되지 않습니다.",
|
||||
@@ -477,6 +475,7 @@ pfUI_translation["koKR"] = {
|
||||
["Look & Feel"] = nil,
|
||||
["Loot"] = "룻팅",
|
||||
["Loot & Spam"] = "룻팅 & 기타",
|
||||
["Loss Of Control"] = nil,
|
||||
["Macro Text Color"] = nil,
|
||||
["Macro Text Size"] = nil,
|
||||
["Main Actionbar"] = nil,
|
||||
@@ -516,6 +515,7 @@ pfUI_translation["koKR"] = {
|
||||
["Name | Health Missing"] = nil,
|
||||
["Name (Linebreak) -Health Missing"] = nil,
|
||||
["Nameplate Border Size"] = nil,
|
||||
["Nameplate Debuffs"] = nil,
|
||||
["Nameplates"] = "상바",
|
||||
["Nameplate Width"] = "상바 넓이",
|
||||
["Name (Short)"] = nil,
|
||||
@@ -554,6 +554,7 @@ pfUI_translation["koKR"] = {
|
||||
["On State Change"] = nil,
|
||||
["Options"] = nil,
|
||||
["Orientation"] = nil,
|
||||
["Other Addons"] = nil,
|
||||
["Other Panel: Minimap"] = "나머지 패널:미니맵",
|
||||
["Outline"] = nil,
|
||||
["Outlines"] = nil,
|
||||
@@ -582,6 +583,7 @@ pfUI_translation["koKR"] = {
|
||||
["Pixel"] = nil,
|
||||
["Player"] = "플레이어",
|
||||
["Player Buff Bar"] = nil,
|
||||
["Player Buffs"] = nil,
|
||||
["Player Castbar"] = nil,
|
||||
["Player Debuff Bar"] = nil,
|
||||
["Player SP/Haste Display"] = nil,
|
||||
@@ -592,6 +594,7 @@ pfUI_translation["koKR"] = {
|
||||
["Portrait Alpha"] = "초상화 투명도",
|
||||
["Portrait Height"] = "세로 높이",
|
||||
["Portrait Position"] = "초상화 위치",
|
||||
["Portrait Style"] = nil,
|
||||
["Portrait Width"] = "세로 너비",
|
||||
["Powerbar"] = nil,
|
||||
["Power Bar Anchor"] = nil,
|
||||
@@ -647,6 +650,7 @@ pfUI_translation["koKR"] = {
|
||||
["Resting"] = "휴식",
|
||||
["Reveal Unexplored Areas"] = nil,
|
||||
["Switch to current zone"] = nil,
|
||||
["Reverse Sweep On"] = nil,
|
||||
["Right"] = "오른쪽",
|
||||
["Right Actionbar"] = nil,
|
||||
["Right Anchor"] = nil,
|
||||
@@ -668,6 +672,7 @@ pfUI_translation["koKR"] = {
|
||||
["Save & Reload"] = nil,
|
||||
["Scale"] = nil,
|
||||
["Scale Border On HiDPI Displays"] = nil,
|
||||
["Scale Font Size With Icon"] = nil,
|
||||
["Scaling"] = nil,
|
||||
["Screen Edge Glow Intensity"] = nil,
|
||||
["Screen Resolution"] = "화면 해상도",
|
||||
@@ -727,7 +732,7 @@ pfUI_translation["koKR"] = {
|
||||
["Show Loot Icon"] = nil,
|
||||
["Show Macro Text"] = "매크로 텍스트 표시",
|
||||
["Show Meters By Default"] = nil,
|
||||
["Show Milliseconds When Timer Runs Out"] = nil,
|
||||
["Show Numbers On"] = nil,
|
||||
["Show On Friendly Units"] = nil,
|
||||
["Show On Hostile Units"] = nil,
|
||||
["Show Procs Indicators"] = nil,
|
||||
@@ -745,10 +750,10 @@ pfUI_translation["koKR"] = {
|
||||
["Show Spell Icon"] = nil,
|
||||
["Show Spell Name"] = nil,
|
||||
["Show Stacks"] = nil,
|
||||
["Show Sweep On"] = nil,
|
||||
["Show Tenths Below 5 Seconds"] = nil,
|
||||
["Show Text"] = nil,
|
||||
["Show Time Left"] = nil,
|
||||
["Show Timer"] = nil,
|
||||
["Show Timer Animation"] = nil,
|
||||
["Show Timer Text"] = nil,
|
||||
["Show Totems Indicators"] = nil,
|
||||
["Shrink & Return"] = nil,
|
||||
@@ -765,8 +770,10 @@ pfUI_translation["koKR"] = {
|
||||
["Soulshards"] = "영혼의 조각",
|
||||
["Spacing"] = nil,
|
||||
["Special Recipient"] = nil,
|
||||
["Spellbook And Character"] = nil,
|
||||
["Spell Power Color"] = nil,
|
||||
["Square"] = nil,
|
||||
["Stack Count Font Size"] = nil,
|
||||
["Stance Bar 1"] = nil,
|
||||
["Stance Bar 2"] = nil,
|
||||
["Stance Bar 3"] = nil,
|
||||
@@ -801,7 +808,6 @@ pfUI_translation["koKR"] = {
|
||||
["Thistle Tea"] = nil,
|
||||
["Threshold To Trust Health Estimation"] = nil,
|
||||
["Time"] = "시간",
|
||||
["Timer"] = nil,
|
||||
["Time Remaining"] = nil,
|
||||
["Timer In Minutes"] = nil,
|
||||
["Timestamp Brackets"] = nil,
|
||||
@@ -812,6 +818,7 @@ pfUI_translation["koKR"] = {
|
||||
["Tiny (PixelPerfect)"] = nil,
|
||||
["Toggle as Tank"] = nil,
|
||||
["Tooltip"] = "툴팁",
|
||||
["Tooltip Auras"] = nil,
|
||||
["Tooltip Position"] = "툴팁위치",
|
||||
["Tooltip Text Font"] = nil,
|
||||
["Tooltip Text Font Size"] = nil,
|
||||
@@ -823,11 +830,13 @@ pfUI_translation["koKR"] = {
|
||||
["Total Gold"] = "총 금",
|
||||
["Totem Direction"] = nil,
|
||||
["Totem Icons"] = nil,
|
||||
["Totems"] = nil,
|
||||
["Tracked Reputation"] = nil,
|
||||
["Tracking Icon Size"] = nil,
|
||||
["Trigger Actions On Key Down"] = nil,
|
||||
["UI-Scale"] = "UI-크기",
|
||||
["Unbuffed"] = nil,
|
||||
["Unit Frame Auras"] = nil,
|
||||
["Unit Frame Border Size"] = "유닛프레임 테두리 크기",
|
||||
["Unit Frame Layout"] = "유닛프레임 레이아웃",
|
||||
["Unit Frames"] = "유닛프레임",
|
||||
@@ -854,7 +863,6 @@ pfUI_translation["koKR"] = {
|
||||
["Use Custom Color Power Bar Background"] = nil,
|
||||
["Use Custom Font Settings"] = nil,
|
||||
["Use Custom Spell Power Color (unchecked = biggest school color)"] = nil,
|
||||
["Use Dynamic Font Size"] = nil,
|
||||
["Use Item Rarity Color For Loot-Roll Timer"] = nil,
|
||||
["Use Original Game Fonts"] = nil,
|
||||
["Use Raid Frames To Display Group Members"] = nil,
|
||||
|
||||
Vendored
+28
-20
@@ -1,4 +1,6 @@
|
||||
pfUI_translation["ruRU"] = {
|
||||
["2D"] = nil,
|
||||
["3D"] = nil,
|
||||
["3D World Unit Font"] = nil,
|
||||
["Abbreviate Numbers (4200 -> 4.2k)"] = "Сокращать числа (4200 -> 4.2k)",
|
||||
["Abbreviate Unit Names"] = "Сокращать имена юнитов",
|
||||
@@ -6,6 +8,7 @@ pfUI_translation["ruRU"] = {
|
||||
["Actionbar"] = "Панель действий",
|
||||
["Action Bar"] = "Панель действий",
|
||||
["Action Bar Border Size"] = "Размер границы панели действий",
|
||||
["Action Bars"] = nil,
|
||||
["Active Addons"] = "Активные аддоны",
|
||||
["Add button to the frame"] = "Добавить кнопку в окно",
|
||||
["Added button"] = "Добавлена кнопка",
|
||||
@@ -27,11 +30,11 @@ pfUI_translation["ruRU"] = {
|
||||
["Always Show Item Comparison"] = "Всегда показывать сравнение предметов",
|
||||
["Always Show On Target Units"] = "Всегда показывать над выбранной целью",
|
||||
["Always Show On Units With Missing HP"] = "Всегда показывать над целями с неполным здоровьем",
|
||||
["Always Use 2D Portraits"] = "Всегда использовать 2D-портреты",
|
||||
["Ammo Counter"] = "Счетчик боеприпасов",
|
||||
["Anchor Bags Above Chat"] = nil,
|
||||
["A new installation of |cff33ffccpf|rUI ships with 4 prebuilt design profiles. Click below if you wish to load one of these profiles."] = "Новая установка |cff33ffccpf|rUI предлагает 4 предварительно созданных профиля дизайна. Нажмите ниже, если вы хотите загрузить один из этих профилей.",
|
||||
["A new version is available"] = "Доступна новая версия",
|
||||
["Animate Health And Power Bars"] = nil,
|
||||
["Appearance"] = "Внешний вид",
|
||||
["Ascending"] = "По возрастанию",
|
||||
["Author"] = "Автор",
|
||||
@@ -78,7 +81,7 @@ pfUI_translation["ruRU"] = {
|
||||
["Buffbar Width"] = "Ширина панели баффов",
|
||||
["Buff/Debuff Icons"] = "Иконки баффов/дебаффов",
|
||||
["Buff/Debuff Indicators"] = "Индикаторы баффов/дебаффов",
|
||||
["Buff Font Size"] = "Размер шрифта баффов",
|
||||
["Buff Indicators"] = nil,
|
||||
["Buff Limit"] = "Предел баффов",
|
||||
["Buff Position"] = "Расположение баффов",
|
||||
["Buffs"] = "Баффы",
|
||||
@@ -120,9 +123,13 @@ pfUI_translation["ruRU"] = {
|
||||
["Chat Bubble Transparency"] = "Прозрачность пузыря чата",
|
||||
["Chat Default Brackets"] = "Скобки чата",
|
||||
["Class"] = "Класс",
|
||||
["Class Icon (Round)"] = nil,
|
||||
["Class Icon (Square)"] = nil,
|
||||
["Clear Rolls"] = "Очистить броски",
|
||||
["Click Action"] = "Действие при нажатии",
|
||||
["Click Casting"] = "Каст по нажатию",
|
||||
["Click to undress"] = nil,
|
||||
["Undress"] = nil,
|
||||
["Clock"] = "Часы",
|
||||
["Close"] = "Закрыть",
|
||||
["Collapse Empty Slots"] = nil,
|
||||
@@ -145,21 +152,16 @@ pfUI_translation["ruRU"] = {
|
||||
["Configuration"] = "Конфигурация",
|
||||
["Configure"] = "Применить",
|
||||
["Cooldown"] = "Восстановление",
|
||||
["Cooldown Color (5 Seconds Or Less)"] = nil,
|
||||
["Cooldown Color (Days)"] = "Цвет восстановления (дни)",
|
||||
["Cooldown Color (Hours)"] = "Цвет восстановления (часы)",
|
||||
["Cooldown Color (Less than 3 Sec)"] = "Цвет восстановления (менее 3 секунд)",
|
||||
["Cooldown Color (Minutes)"] = "Цвет восстановления (минуты)",
|
||||
["Cooldown Color (Seconds)"] = "Цвет восстановления (секунды)",
|
||||
["Cooldown / Durations"] = "Восстановление / Длительность",
|
||||
["Cooldown Text Font"] = nil,
|
||||
["Cooldown Text Font Size"] = "Текст времени восстановления(CD)",
|
||||
["Cooldown Text Font Size (Blizzard Frames)"] = "Текст времени восстановления (окна Blizzard)",
|
||||
["Cooldown Text Font Size (Foreign Frames)"] = "Текст времени восстановления (Сторонние окна)",
|
||||
["Cooldown Text Size"] = "Размер текста восстановления",
|
||||
["Cooldown Text Threshold"] = "Текст порога восстановления",
|
||||
["Cooldown Text Time Threshold"] = "Порог текста восстановления",
|
||||
["Coordinates Location"] = "Расположение координат",
|
||||
["Coordinates On Minimap"] = "Координаты на миникарте",
|
||||
["Copied to clipboard"] = nil,
|
||||
["Count"] = "Счет",
|
||||
["Create Profile"] = "Создать профиль",
|
||||
["Ctrl-Click"] = "Ctrl+нажатие",
|
||||
@@ -276,12 +278,9 @@ pfUI_translation["ruRU"] = {
|
||||
["Enable Custom Incoming Whispers Layout"] = "Включить пользовательский макет входящего шепота",
|
||||
["Enable Debuff Display"] = "Включить отображение дебаффов",
|
||||
["Enable Debuffs"] = "Включить дебаффы",
|
||||
["Enable Durations On Blizzard Frames"] = "Включить длительность на окнах Blizzard",
|
||||
["Enable Durations On Foreign Frames"] = "Включить длительность на сторонних окнах",
|
||||
["Enable Energy Ticks"] = "Включить восполнение энергии",
|
||||
["Enable Extended Guild Information"] = "Включить расширенную информацию о гильдии",
|
||||
["Enable Frame Shadow"] = "Включить тень окон",
|
||||
["Enable Full-Text Search"] = nil,
|
||||
["Enable Indicators"] = "Включить индикаторы",
|
||||
["Enable Item Quality Color For Equipment Only"] = "Включить цвет качества предметов только для экипировки",
|
||||
["Enable \"Loot & Spam\" Chat Window"] = "Включить окно чата \"Добыча & Спам\"",
|
||||
@@ -336,6 +335,7 @@ pfUI_translation["ruRU"] = {
|
||||
["Font"] = "Шрифт",
|
||||
["Font Options"] = "Шрифт",
|
||||
["Font Padding"] = "Отступ шрифта",
|
||||
["Font Size"] = nil,
|
||||
["Font Style"] = "Стиль шрифта",
|
||||
["Force Blizzard Borders (|cffffaaaaExperimental|r)"] = "Границы Blizzard принудительно (|cffffaaaaЭкспериментально|r)",
|
||||
["fps"] = "кад./сек.",
|
||||
@@ -370,7 +370,6 @@ pfUI_translation["ruRU"] = {
|
||||
["Health"] = "Здоровье",
|
||||
["Health - Auto"] = "Здоровье - автоматически",
|
||||
["Healthbar"] = "Панель здоровья",
|
||||
["Healthbar Animation Speed"] = "Скорость анимации панели здоровья",
|
||||
["Health Bar Color"] = "Цвет панели здоровья",
|
||||
["Healthbar Embedded"] = "На панели здоровья",
|
||||
["Healthbar Height"] = "Высота панели здоровья",
|
||||
@@ -395,7 +394,6 @@ pfUI_translation["ruRU"] = {
|
||||
["Hide Channel Names"] = "Скрыть названия каналов",
|
||||
["Hide Chat When Bags Are Opened"] = "Скрыть чат, когда сумки открыты",
|
||||
["Hide Combat Log"] = "Скрыть журнал боя",
|
||||
["Hide Foreign Cooldown Animations"] = "Скрыть сторонние анимации перезарядки",
|
||||
["Hide Group Frames While In Raid"] = "Скрыть окно группы, когда в рейде",
|
||||
["Hide Healthbar On Critters"] = "Скрыть панель здоровья существ",
|
||||
["Hide Healthbar On Enemy NPCs"] = "Скрыть панель здоровья вражеских NPC",
|
||||
@@ -404,6 +402,7 @@ pfUI_translation["ruRU"] = {
|
||||
["Hide Healthbar On Friendly Players"] = "Скрыть панель здоровья дружеских игроков",
|
||||
["Hide Healthbar On Neutral NPCs"] = "Скрыть панель здоровья нейтральных NPC",
|
||||
["Hide Healthbar On Totems"] = "Скрыть панель здоровья тотемов",
|
||||
["Hide Numbers On Spell Cooldowns Up To (Seconds)"] = nil,
|
||||
["Hide Timeout"] = "Время до скрытия",
|
||||
["Hide When Entering Combat"] = "Скрыть при вхождении в режим боя",
|
||||
["Highlight Equipped Items"] = "Выделять экипированные предметы",
|
||||
@@ -432,7 +431,6 @@ pfUI_translation["ruRU"] = {
|
||||
["Inherit Default Colors"] = "Наследовать цвета по умолчанию",
|
||||
["Inputbox Height"] = "Высота поля ввода",
|
||||
["Inputbox Width"] = "Ширина поля ввода",
|
||||
["Instant"] = "Мгновенно",
|
||||
["Integrations"] = "Встраиваемые",
|
||||
["Invert Health Bar"] = "Инвертировать панель здоровья",
|
||||
["is not allowed in profile name"] = "не разрешено в имени профиля",
|
||||
@@ -477,6 +475,7 @@ pfUI_translation["ruRU"] = {
|
||||
["Look & Feel"] = "Смотреть и чувствовать",
|
||||
["Loot"] = "Добыча",
|
||||
["Loot & Spam"] = "Добыча & Спам",
|
||||
["Loss Of Control"] = nil,
|
||||
["Macro Text Color"] = "Цвет текста макросов",
|
||||
["Macro Text Size"] = "Размер текста макросов",
|
||||
["Main Actionbar"] = "Основная",
|
||||
@@ -516,6 +515,7 @@ pfUI_translation["ruRU"] = {
|
||||
["Name | Health Missing"] = "Имя | Отсутствующее здоровье",
|
||||
["Name (Linebreak) -Health Missing"] = "Имя (разрыв линии) -Отсутствует здоровье",
|
||||
["Nameplate Border Size"] = "Размер границы индикатора здоровья",
|
||||
["Nameplate Debuffs"] = nil,
|
||||
["Nameplates"] = "Индикаторы здоровья",
|
||||
["Nameplate Width"] = "Ширина индикатора здоровья",
|
||||
["Name (Short)"] = "Короткое имя",
|
||||
@@ -554,6 +554,7 @@ pfUI_translation["ruRU"] = {
|
||||
["On State Change"] = "Изменение статуса",
|
||||
["Options"] = "Опции",
|
||||
["Orientation"] = "Ориентация",
|
||||
["Other Addons"] = nil,
|
||||
["Other Panel: Minimap"] = "Другая панель: миникарта",
|
||||
["Outline"] = "Контурный", -- font style
|
||||
["Outlines"] = "Контуры",
|
||||
@@ -582,6 +583,7 @@ pfUI_translation["ruRU"] = {
|
||||
["Pixel"] = "пиксель",
|
||||
["Player"] = "Игрок",
|
||||
["Player Buff Bar"] = "Панель баффов игрока",
|
||||
["Player Buffs"] = nil,
|
||||
["Player Castbar"] = "Панель применения игрока",
|
||||
["Player Debuff Bar"] = "Панель дебаффов игрока",
|
||||
["Player SP/Haste Display"] = nil,
|
||||
@@ -592,6 +594,7 @@ pfUI_translation["ruRU"] = {
|
||||
["Portrait Alpha"] = "Прозрачность портрета",
|
||||
["Portrait Height"] = "Рост портрета",
|
||||
["Portrait Position"] = "Расположение портрета",
|
||||
["Portrait Style"] = nil,
|
||||
["Portrait Width"] = "Ширина портрета",
|
||||
["Powerbar"] = "Панель силы (мана, ярость, энергия, фокус)",
|
||||
["Power Bar Anchor"] = "Привязка панели силы",
|
||||
@@ -647,6 +650,7 @@ pfUI_translation["ruRU"] = {
|
||||
["Resting"] = "Отдыхающий",
|
||||
["Reveal Unexplored Areas"] = "Показывать неисследованные области",
|
||||
["Switch to current zone"] = "Перейти к текущей зоне",
|
||||
["Reverse Sweep On"] = nil,
|
||||
["Right"] = "Справа",
|
||||
["Right Actionbar"] = "Правая",
|
||||
["Right Anchor"] = nil,
|
||||
@@ -668,6 +672,7 @@ pfUI_translation["ruRU"] = {
|
||||
["Save & Reload"] = "Сохранить и перезагрузить",
|
||||
["Scale"] = "Масштаб",
|
||||
["Scale Border On HiDPI Displays"] = "Масштабировать границы на HiDPI мониторах",
|
||||
["Scale Font Size With Icon"] = nil,
|
||||
["Scaling"] = "Масштаб интерфейса",
|
||||
["Screen Edge Glow Intensity"] = "Интенсивность свечения на краях экрана",
|
||||
["Screen Resolution"] = "Разрешение экрана",
|
||||
@@ -727,7 +732,7 @@ pfUI_translation["ruRU"] = {
|
||||
["Show Loot Icon"] = "Показать иконку добычи",
|
||||
["Show Macro Text"] = "Показать текст макросов",
|
||||
["Show Meters By Default"] = "Показать счетчики по умолчанию",
|
||||
["Show Milliseconds When Timer Runs Out"] = "Показать миллисекунды, когда таймер заканчивается",
|
||||
["Show Numbers On"] = nil,
|
||||
["Show On Friendly Units"] = "Показать на дружественных юнитах",
|
||||
["Show On Hostile Units"] = "Показать на вражеских юнитах",
|
||||
["Show Procs Indicators"] = "Показать проки (Procs)",
|
||||
@@ -745,10 +750,10 @@ pfUI_translation["ruRU"] = {
|
||||
["Show Spell Icon"] = "Показать иконку заклинания",
|
||||
["Show Spell Name"] = "Показать название заклинания",
|
||||
["Show Stacks"] = "Показать стаки",
|
||||
["Show Sweep On"] = nil,
|
||||
["Show Tenths Below 5 Seconds"] = nil,
|
||||
["Show Text"] = nil,
|
||||
["Show Time Left"] = "Показать оставшееся время",
|
||||
["Show Timer"] = "Показать таймер",
|
||||
["Show Timer Animation"] = "Показать анимацию таймера",
|
||||
["Show Timer Text"] = "Показать текст таймера",
|
||||
["Show Totems Indicators"] = "Показать индикаторы тотемов",
|
||||
["Shrink & Return"] = "Сжатие и возврат",
|
||||
@@ -765,8 +770,10 @@ pfUI_translation["ruRU"] = {
|
||||
["Soulshards"] = "Камни душ",
|
||||
["Spacing"] = "Расстояние",
|
||||
["Special Recipient"] = "Конкретный получатель",
|
||||
["Spellbook And Character"] = nil,
|
||||
["Spell Power Color"] = nil,
|
||||
["Square"] = "Квадрат",
|
||||
["Stack Count Font Size"] = nil,
|
||||
["Stance Bar 1"] = "Панель 1-ой стойки",
|
||||
["Stance Bar 2"] = "Панель 2-ой стойки",
|
||||
["Stance Bar 3"] = "Панель 3-ей стойки",
|
||||
@@ -801,7 +808,6 @@ pfUI_translation["ruRU"] = {
|
||||
["Thistle Tea"] = nil,
|
||||
["Threshold To Trust Health Estimation"] = "Точность подсчетов здоровья",
|
||||
["Time"] = "Время",
|
||||
["Timer"] = "Таймер",
|
||||
["Time Remaining"] = "Время до нового уровня",
|
||||
["Timer In Minutes"] = "Таймер в минутах",
|
||||
["Timestamp Brackets"] = "Скобки отметок времени",
|
||||
@@ -812,6 +818,7 @@ pfUI_translation["ruRU"] = {
|
||||
["Tiny (PixelPerfect)"] = "Крошечный (идеальный пиксель)",
|
||||
["Toggle as Tank"] = "Переключить как танк",
|
||||
["Tooltip"] = "Подсказка",
|
||||
["Tooltip Auras"] = nil,
|
||||
["Tooltip Position"] = "Расположение подсказки",
|
||||
["Tooltip Text Font"] = nil,
|
||||
["Tooltip Text Font Size"] = nil,
|
||||
@@ -823,11 +830,13 @@ pfUI_translation["ruRU"] = {
|
||||
["Total Gold"] = "Всего золота",
|
||||
["Totem Direction"] = "Направление тотемов",
|
||||
["Totem Icons"] = "Иконки тотемов",
|
||||
["Totems"] = nil,
|
||||
["Tracked Reputation"] = "Отслеживаемая репутация",
|
||||
["Tracking Icon Size"] = "Размер иконки отслеживания",
|
||||
["Trigger Actions On Key Down"] = "Активация действий при нажатии клавиши (а не ее отпускании)",
|
||||
["UI-Scale"] = "Масштаб пользовательского интерфейса",
|
||||
["Unbuffed"] = "Без баффа",
|
||||
["Unit Frame Auras"] = nil,
|
||||
["Unit Frame Border Size"] = "Размер границы окна юнита",
|
||||
["Unit Frame Layout"] = "Макет окна юнита",
|
||||
["Unit Frames"] = "Окна юнита",
|
||||
@@ -854,7 +863,6 @@ pfUI_translation["ruRU"] = {
|
||||
["Use Custom Color Power Bar Background"] = "Использовать пользовательский цвет фона панели силы",
|
||||
["Use Custom Font Settings"] = "Использовать пользовательские настройки шрифта",
|
||||
["Use Custom Spell Power Color (unchecked = biggest school color)"] = nil,
|
||||
["Use Dynamic Font Size"] = "Использовать динамический размер шрифта",
|
||||
["Use Item Rarity Color For Loot-Roll Timer"] = "Использовать цвет качества предмета для таймера распределения добычи",
|
||||
["Use Original Game Fonts"] = "Использовать оригинальные игровые шрифты",
|
||||
["Use Raid Frames To Display Group Members"] = "Использовать окна рейда для отображения членов группы",
|
||||
|
||||
Vendored
+28
-20
@@ -1,4 +1,6 @@
|
||||
pfUI_translation["zhCN"] = {
|
||||
["2D"] = nil,
|
||||
["3D"] = nil,
|
||||
["3D World Unit Font"] = "3D世界单位字体",
|
||||
["Abbreviate Numbers (4200 -> 4.2k)"] = "缩写数字格式[4200为4.2K]",
|
||||
["Abbreviate Unit Names"] = "缩写单位名称",
|
||||
@@ -6,6 +8,7 @@ pfUI_translation["zhCN"] = {
|
||||
["Actionbar"] = "动作条",
|
||||
["Action Bar"] = "动作条",
|
||||
["Action Bar Border Size"] = "动作条边框大小",
|
||||
["Action Bars"] = nil,
|
||||
["Active Addons"] = "激活的插件",
|
||||
["Add button to the frame"] = "添加按钮到框架",
|
||||
["Added button"] = "已添加按钮",
|
||||
@@ -27,11 +30,11 @@ pfUI_translation["zhCN"] = {
|
||||
["Always Show Item Comparison"] = "始终显示装备比较(或按SHIFT键)",
|
||||
["Always Show On Target Units"] = "始终在目标单位上显示",
|
||||
["Always Show On Units With Missing HP"] = "始终在未满血单位上显示",
|
||||
["Always Use 2D Portraits"] = "始终使用2D头像",
|
||||
["Ammo Counter"] = "弹药数量",
|
||||
["Anchor Bags Above Chat"] = "将背包锚定在聊天框上方",
|
||||
["A new installation of |cff33ffccpf|rUI ships with 4 prebuilt design profiles. Click below if you wish to load one of these profiles."] = "pfUI的新安装自带4以下四种预设风格.点击下方可选择其一",
|
||||
["A new version is available"] = "发现新版本!",
|
||||
["Animate Health And Power Bars"] = nil,
|
||||
["Appearance"] = "外观设置",
|
||||
["Ascending"] = "上移",
|
||||
["Author"] = "作者",
|
||||
@@ -78,7 +81,7 @@ pfUI_translation["zhCN"] = {
|
||||
["Buffbar Width"] = "Buff条宽度",
|
||||
["Buff/Debuff Icons"] = "Buff/Debuff图标",
|
||||
["Buff/Debuff Indicators"] = "Buff/Debuff指示器",
|
||||
["Buff Font Size"] = "Buff字体大小",
|
||||
["Buff Indicators"] = nil,
|
||||
["Buff Limit"] = "Buff总数量",
|
||||
["Buff Position"] = "Buff显示的位置",
|
||||
["Buffs"] = "Buff(增益)",
|
||||
@@ -120,9 +123,13 @@ pfUI_translation["zhCN"] = {
|
||||
["Chat Bubble Transparency"] = "聊天框气泡效果透明度",
|
||||
["Chat Default Brackets"] = "聊天框默认括号",
|
||||
["Class"] = "职业",
|
||||
["Class Icon (Round)"] = nil,
|
||||
["Class Icon (Square)"] = nil,
|
||||
["Clear Rolls"] = "清除Roll点",
|
||||
["Click Action"] = "点击操作",
|
||||
["Click Casting"] = "点击施法",
|
||||
["Click to undress"] = nil,
|
||||
["Undress"] = nil,
|
||||
["Clock"] = "时间",
|
||||
["Close"] = "关闭",
|
||||
["Collapse Empty Slots"] = nil,
|
||||
@@ -145,21 +152,16 @@ pfUI_translation["zhCN"] = {
|
||||
["Configuration"] = "配置",
|
||||
["Configure"] = "配置",
|
||||
["Cooldown"] = "冷却时间",
|
||||
["Cooldown Color (5 Seconds Or Less)"] = nil,
|
||||
["Cooldown Color (Days)"] = "技能冷却时间颜色[天]",
|
||||
["Cooldown Color (Hours)"] = "技能冷却时间颜色[时]",
|
||||
["Cooldown Color (Less than 3 Sec)"] = "技能冷却时间颜色[少于3秒]",
|
||||
["Cooldown Color (Minutes)"] = "技能冷却时间颜色[分]",
|
||||
["Cooldown Color (Seconds)"] = "技能冷却时间颜色[秒]",
|
||||
["Cooldown / Durations"] = "冷却 / 时长",
|
||||
["Cooldown Text Font"] = "Debuff计时字体",
|
||||
["Cooldown Text Font Size"] = "Debuff计时文字大小",
|
||||
["Cooldown Text Font Size (Blizzard Frames)"] = "Debuff计时文字大小(暴雪姓名板)",
|
||||
["Cooldown Text Font Size (Foreign Frames)"] = "Debuff计时文字大小(插件姓名板)",
|
||||
["Cooldown Text Size"] = "技能冷却文字大小",
|
||||
["Cooldown Text Threshold"] = "冷却监控阈值(只监控大于该数值的技能)",
|
||||
["Cooldown Text Time Threshold"] = "技能冷却时间文字临界值",
|
||||
["Coordinates Location"] = "坐标位置",
|
||||
["Coordinates On Minimap"] = "小地图上的坐标",
|
||||
["Copied to clipboard"] = nil,
|
||||
["Count"] = "计数器",
|
||||
["Create Profile"] = "新建配置",
|
||||
["Ctrl-Click"] = "CTRL点击",
|
||||
@@ -276,12 +278,9 @@ pfUI_translation["zhCN"] = {
|
||||
["Enable Custom Incoming Whispers Layout"] = "启用私聊样式",
|
||||
["Enable Debuff Display"] = "启用Debuff显示",
|
||||
["Enable Debuffs"] = "显示Debuff",
|
||||
["Enable Durations On Blizzard Frames"] = "在暴雪栏显示冷却倒计时",
|
||||
["Enable Durations On Foreign Frames"] = "在技能栏显示冷却倒计时",
|
||||
["Enable Energy Ticks"] = "显示能量刻度",
|
||||
["Enable Extended Guild Information"] = "公会信息扩展显示",
|
||||
["Enable Frame Shadow"] = "启用框架阴影",
|
||||
["Enable Full-Text Search"] = "启用全文搜索",
|
||||
["Enable Indicators"] = "启用指示器",
|
||||
["Enable Item Quality Color For Equipment Only"] = "仅在装备上显示品质颜色",
|
||||
["Enable \"Loot & Spam\" Chat Window"] = "启用[拾取、综合]聊天窗口",
|
||||
@@ -336,6 +335,7 @@ pfUI_translation["zhCN"] = {
|
||||
["Font"] = "字体",
|
||||
["Font Options"] = "字体设置",
|
||||
["Font Padding"] = "字体偏移",
|
||||
["Font Size"] = nil,
|
||||
["Font Style"] = "字体风格",
|
||||
["Force Blizzard Borders (|cffffaaaaExperimental|r)"] = "强制显示暴雪边框(|cffffaaaa测试功能|r)",
|
||||
["fps"] = "帧",
|
||||
@@ -370,7 +370,6 @@ pfUI_translation["zhCN"] = {
|
||||
["Health"] = "生命值",
|
||||
["Health - Auto"] = "动态生命值和百分比",
|
||||
["Healthbar"] = "血条",
|
||||
["Healthbar Animation Speed"] = "掉血动画速度",
|
||||
["Health Bar Color"] = "血条颜色",
|
||||
["Healthbar Embedded"] = "血条上显示动态头像",
|
||||
["Healthbar Height"] = "血条高度",
|
||||
@@ -395,7 +394,6 @@ pfUI_translation["zhCN"] = {
|
||||
["Hide Channel Names"] = "隐藏频道名称",
|
||||
["Hide Chat When Bags Are Opened"] = "打开背包后隐藏聊天框",
|
||||
["Hide Combat Log"] = "隐藏战斗日志",
|
||||
["Hide Foreign Cooldown Animations"] = "隐藏技能冷却动画",
|
||||
["Hide Group Frames While In Raid"] = "在团队框架下隐藏小队框架",
|
||||
["Hide Healthbar On Critters"] = "隐藏小动物血条",
|
||||
["Hide Healthbar On Enemy NPCs"] = "隐藏敌方NPCs血条",
|
||||
@@ -404,6 +402,7 @@ pfUI_translation["zhCN"] = {
|
||||
["Hide Healthbar On Friendly Players"] = "隐藏友好玩家血条",
|
||||
["Hide Healthbar On Neutral NPCs"] = "隐藏中立单位血条",
|
||||
["Hide Healthbar On Totems"] = "隐藏图腾血条",
|
||||
["Hide Numbers On Spell Cooldowns Up To (Seconds)"] = nil,
|
||||
["Hide Timeout"] = "超时隐藏",
|
||||
["Hide When Entering Combat"] = "进入战斗时隐藏",
|
||||
["Highlight Equipped Items"] = "高亮已装备的物品",
|
||||
@@ -432,7 +431,6 @@ pfUI_translation["zhCN"] = {
|
||||
["Inherit Default Colors"] = "继承默认颜色",
|
||||
["Inputbox Height"] = "输入框高度",
|
||||
["Inputbox Width"] = "输入框宽度",
|
||||
["Instant"] = "极快",
|
||||
["Integrations"] = "整合",
|
||||
["Invert Health Bar"] = "血量反色显示",
|
||||
["is not allowed in profile name"] = "在配置文件名中不允许",
|
||||
@@ -477,6 +475,7 @@ pfUI_translation["zhCN"] = {
|
||||
["Look & Feel"] = "外观和风格",
|
||||
["Loot"] = "拾取",
|
||||
["Loot & Spam"] = "拾取 & 聊天",
|
||||
["Loss Of Control"] = nil,
|
||||
["Macro Text Color"] = "宏文本颜色",
|
||||
["Macro Text Size"] = "宏文本大小",
|
||||
["Main Actionbar"] = "主动作条",
|
||||
@@ -516,6 +515,7 @@ pfUI_translation["zhCN"] = {
|
||||
["Name | Health Missing"] = "名字 | 失去的生命值",
|
||||
["Name (Linebreak) -Health Missing"] = "名字 (换行符) -失去的生命值",
|
||||
["Nameplate Border Size"] = "姓名板边框尺寸",
|
||||
["Nameplate Debuffs"] = nil,
|
||||
["Nameplates"] = "姓名板",
|
||||
["Nameplate Width"] = "姓名板宽度",
|
||||
["Name (Short)"] = "名字 (短)",
|
||||
@@ -554,6 +554,7 @@ pfUI_translation["zhCN"] = {
|
||||
["On State Change"] = "状态改变时",
|
||||
["Options"] = "设置",
|
||||
["Orientation"] = "方向",
|
||||
["Other Addons"] = nil,
|
||||
["Other Panel: Minimap"] = "小地图面板",
|
||||
["Outline"] = "轮廓",
|
||||
["Outlines"] = "轮廓线",
|
||||
@@ -582,6 +583,7 @@ pfUI_translation["zhCN"] = {
|
||||
["Pixel"] = "像素",
|
||||
["Player"] = "玩家",
|
||||
["Player Buff Bar"] = "玩家Buffs条",
|
||||
["Player Buffs"] = nil,
|
||||
["Player Castbar"] = "玩家施法条",
|
||||
["Player Debuff Bar"] = "玩家Debuffs条",
|
||||
["Player SP/Haste Display"] = nil,
|
||||
@@ -592,6 +594,7 @@ pfUI_translation["zhCN"] = {
|
||||
["Portrait Alpha"] = "人偶透明度",
|
||||
["Portrait Height"] = "纵向高度",
|
||||
["Portrait Position"] = "人偶头像位置",
|
||||
["Portrait Style"] = nil,
|
||||
["Portrait Width"] = "纵向宽度",
|
||||
["Powerbar"] = "能量(蓝)条",
|
||||
["Power Bar Anchor"] = "能量条对齐方式(以血条为锚点)",
|
||||
@@ -647,6 +650,7 @@ pfUI_translation["zhCN"] = {
|
||||
["Resting"] = "休息中",
|
||||
["Reveal Unexplored Areas"] = "展示未勘探的地区",
|
||||
["Switch to current zone"] = nil,
|
||||
["Reverse Sweep On"] = nil,
|
||||
["Right"] = "右边",
|
||||
["Right Actionbar"] = "右侧动作条",
|
||||
["Right Anchor"] = "右锚点",
|
||||
@@ -668,6 +672,7 @@ pfUI_translation["zhCN"] = {
|
||||
["Save & Reload"] = "保存并重载",
|
||||
["Scale"] = "比例",
|
||||
["Scale Border On HiDPI Displays"] = "缩放高DPI显示器上的边框",
|
||||
["Scale Font Size With Icon"] = nil,
|
||||
["Scaling"] = "UI缩放",
|
||||
["Screen Edge Glow Intensity"] = "屏幕边缘发光强度",
|
||||
["Screen Resolution"] = "屏幕分辨率",
|
||||
@@ -728,7 +733,7 @@ pfUI_translation["zhCN"] = {
|
||||
["Show Loot Icon"] = "显示拾取权图标",
|
||||
["Show Macro Text"] = "显示宏的名字",
|
||||
["Show Meters By Default"] = "由默认显示其他接口表",
|
||||
["Show Milliseconds When Timer Runs Out"] = "当冷却即将结束时显示毫秒",
|
||||
["Show Numbers On"] = nil,
|
||||
["Show On Friendly Units"] = "显示友好单位姓名板",
|
||||
["Show On Hostile Units"] = "显示敌对单位姓名板",
|
||||
["Show Procs Indicators"] = "显示触发效果计时器",
|
||||
@@ -746,10 +751,10 @@ pfUI_translation["zhCN"] = {
|
||||
["Show Spell Icon"] = "显示技能图标",
|
||||
["Show Spell Name"] = "显示技能名称",
|
||||
["Show Stacks"] = "显示堆叠",
|
||||
["Show Sweep On"] = nil,
|
||||
["Show Tenths Below 5 Seconds"] = nil,
|
||||
["Show Text"] = "显示文本",
|
||||
["Show Time Left"] = "显示剩余时间",
|
||||
["Show Timer"] = "显示计时器",
|
||||
["Show Timer Animation"] = "显示计时器动画",
|
||||
["Show Timer Text"] = "显示计时器文本",
|
||||
["Show Totems Indicators"] = "显示图腾指示器",
|
||||
["Shrink & Return"] = "收缩 & 返回",
|
||||
@@ -766,8 +771,10 @@ pfUI_translation["zhCN"] = {
|
||||
["Soulshards"] = "灵魂碎片",
|
||||
["Spacing"] = "间距",
|
||||
["Special Recipient"] = "特殊指定角色",
|
||||
["Spellbook And Character"] = nil,
|
||||
["Spell Power Color"] = nil,
|
||||
["Square"] = "方块",
|
||||
["Stack Count Font Size"] = nil,
|
||||
["Stance Bar 1"] = "姿态动作条 1",
|
||||
["Stance Bar 2"] = "姿态动作条 2",
|
||||
["Stance Bar 3"] = "姿态动作条 3",
|
||||
@@ -802,7 +809,6 @@ pfUI_translation["zhCN"] = {
|
||||
["Thistle Tea"] = "菊花茶",
|
||||
["Threshold To Trust Health Estimation"] = "信任生命值预估的阈值",
|
||||
["Time"] = "时间",
|
||||
["Timer"] = "计时器",
|
||||
["Time Remaining"] = "剩余时间",
|
||||
["Timer In Minutes"] = "计时器(分钟)",
|
||||
["Timestamp Brackets"] = "时间戳括弧",
|
||||
@@ -813,6 +819,7 @@ pfUI_translation["zhCN"] = {
|
||||
["Tiny (PixelPerfect)"] = "极小(像素完美)",
|
||||
["Toggle as Tank"] = "切换成为坦克",
|
||||
["Tooltip"] = "信息提示框",
|
||||
["Tooltip Auras"] = nil,
|
||||
["Tooltip Position"] = "信息提示框位置",
|
||||
["Tooltip Text Font"] = "鼠标提示框字体",
|
||||
["Tooltip Text Font Size"] ="鼠标提示框字体大小",
|
||||
@@ -824,11 +831,13 @@ pfUI_translation["zhCN"] = {
|
||||
["Total Gold"] = "总黄金",
|
||||
["Totem Direction"] = "图腾方向",
|
||||
["Totem Icons"] = "图腾图标",
|
||||
["Totems"] = nil,
|
||||
["Tracked Reputation"] = "被追踪的声望",
|
||||
["Tracking Icon Size"] = "追踪图标大小",
|
||||
["Trigger Actions On Key Down"] = "按下即施法",
|
||||
["UI-Scale"] = "UI缩放比例",
|
||||
["Unbuffed"] = "该Buff缺失者",
|
||||
["Unit Frame Auras"] = nil,
|
||||
["Unit Frame Border Size"] = "头像边框大小",
|
||||
["Unit Frame Layout"] = "头像框架样式",
|
||||
["Unit Frames"] = "头像框架",
|
||||
@@ -855,7 +864,6 @@ pfUI_translation["zhCN"] = {
|
||||
["Use Custom Color Power Bar Background"] = "使用自定义颜色显示能量值背景",
|
||||
["Use Custom Font Settings"] = "使用自定义字体设置",
|
||||
["Use Custom Spell Power Color (unchecked = biggest school color)"] = nil,
|
||||
["Use Dynamic Font Size"] = "使用动态字体大小",
|
||||
["Use Item Rarity Color For Loot-Roll Timer"] = "为战利品Roll点计时框启用物品稀有颜色",
|
||||
["Use Original Game Fonts"] = "使用游戏原始字体",
|
||||
["Use Raid Frames To Display Group Members"] = '使用团队框架显示小组成员',
|
||||
|
||||
Vendored
+28
-20
@@ -1,4 +1,6 @@
|
||||
pfUI_translation["zhTW"] = {
|
||||
["2D"] = nil,
|
||||
["3D"] = nil,
|
||||
["3D World Unit Font"] = nil,
|
||||
["Abbreviate Numbers (4200 -> 4.2k)"] = "縮寫數位格式[4200為4.2K]",
|
||||
["Abbreviate Unit Names"] = nil,
|
||||
@@ -6,6 +8,7 @@ pfUI_translation["zhTW"] = {
|
||||
["Actionbar"] = "動作條",
|
||||
["Action Bar"] = nil,
|
||||
["Action Bar Border Size"] = "動作條邊框大小",
|
||||
["Action Bars"] = nil,
|
||||
["Active Addons"] = "啟動的外掛程式",
|
||||
["Add button to the frame"] = nil,
|
||||
["Added button"] = nil,
|
||||
@@ -27,11 +30,11 @@ pfUI_translation["zhTW"] = {
|
||||
["Always Show Item Comparison"] = "始終顯示裝備比較",
|
||||
["Always Show On Target Units"] = nil,
|
||||
["Always Show On Units With Missing HP"] = nil,
|
||||
["Always Use 2D Portraits"] = "始終使用2D頭像",
|
||||
["Ammo Counter"] = "彈藥數量",
|
||||
["Anchor Bags Above Chat"] = nil,
|
||||
["A new installation of |cff33ffccpf|rUI ships with 4 prebuilt design profiles. Click below if you wish to load one of these profiles."] = "pfUI的安裝內建有四種風格.點選以下讀取其一",
|
||||
["A new version is available"] = nil,
|
||||
["Animate Health And Power Bars"] = nil,
|
||||
["Appearance"] = "外觀設置",
|
||||
["Ascending"] = "下移",
|
||||
["Author"] = nil,
|
||||
@@ -78,7 +81,7 @@ pfUI_translation["zhTW"] = {
|
||||
["Buffbar Width"] = "Buff寬度",
|
||||
["Buff/Debuff Icons"] = nil,
|
||||
["Buff/Debuff Indicators"] = nil,
|
||||
["Buff Font Size"] = "Buff字體大小",
|
||||
["Buff Indicators"] = nil,
|
||||
["Buff Limit"] = "Buff總數量",
|
||||
["Buff Position"] = "Buff顯示的位置",
|
||||
["Buffs"] = "Buff(增益)",
|
||||
@@ -120,9 +123,13 @@ pfUI_translation["zhTW"] = {
|
||||
["Chat Bubble Transparency"] = "聊天框氣泡效果透明度",
|
||||
["Chat Default Brackets"] = "聊天框默認括弧",
|
||||
["Class"] = "職業",
|
||||
["Class Icon (Round)"] = nil,
|
||||
["Class Icon (Square)"] = nil,
|
||||
["Clear Rolls"] = "清除Roll點",
|
||||
["Click Action"] = "點擊操作",
|
||||
["Click Casting"] = nil,
|
||||
["Click to undress"] = nil,
|
||||
["Undress"] = nil,
|
||||
["Clock"] = "時間",
|
||||
["Close"] = "關閉",
|
||||
["Collapse Empty Slots"] = nil,
|
||||
@@ -145,21 +152,16 @@ pfUI_translation["zhTW"] = {
|
||||
["Configuration"] = "配置",
|
||||
["Configure"] = "設置",
|
||||
["Cooldown"] = "冷卻時間",
|
||||
["Cooldown Color (5 Seconds Or Less)"] = nil,
|
||||
["Cooldown Color (Days)"] = "技能冷卻時間顏色[天]",
|
||||
["Cooldown Color (Hours)"] = "技能冷卻時間顏色[時]",
|
||||
["Cooldown Color (Less than 3 Sec)"] = "技能冷卻時間顏色[少於3秒]",
|
||||
["Cooldown Color (Minutes)"] = "技能冷卻時間顏色[分]",
|
||||
["Cooldown Color (Seconds)"] = "技能冷卻時間顏色[秒]",
|
||||
["Cooldown / Durations"] = nil,
|
||||
["Cooldown Text Font"] = nil,
|
||||
["Cooldown Text Font Size"] = "技能冷卻時間文字大小",
|
||||
["Cooldown Text Font Size (Blizzard Frames)"] = nil,
|
||||
["Cooldown Text Font Size (Foreign Frames)"] = nil,
|
||||
["Cooldown Text Size"] = nil,
|
||||
["Cooldown Text Threshold"] = nil,
|
||||
["Cooldown Text Time Threshold"] = "技能冷卻時間文字臨界值",
|
||||
["Coordinates Location"] = "座標位置",
|
||||
["Coordinates On Minimap"] = "小地圖上的座標",
|
||||
["Copied to clipboard"] = nil,
|
||||
["Count"] = "計數器",
|
||||
["Create Profile"] = "新建配置",
|
||||
["Ctrl-Click"] = "CTRL點擊",
|
||||
@@ -276,12 +278,9 @@ pfUI_translation["zhTW"] = {
|
||||
["Enable Custom Incoming Whispers Layout"] = "啟用私聊樣式",
|
||||
["Enable Debuff Display"] = "啟用Debuff顯示",
|
||||
["Enable Debuffs"] = "顯示Debuff",
|
||||
["Enable Durations On Blizzard Frames"] = "啟用持續時間在暴雪框架上",
|
||||
["Enable Durations On Foreign Frames"] = "啟用持續時間在外來框架上",
|
||||
["Enable Energy Ticks"] = "顯示能量刻度",
|
||||
["Enable Extended Guild Information"] = "公會資訊擴展顯示",
|
||||
["Enable Frame Shadow"] = "啟用框架陰影",
|
||||
["Enable Full-Text Search"] = nil,
|
||||
["Enable Indicators"] = nil,
|
||||
["Enable Item Quality Color For Equipment Only"] = "僅在裝備上顯示品質顏色",
|
||||
["Enable \"Loot & Spam\" Chat Window"] = "啟用[拾取、綜合]聊天視窗",
|
||||
@@ -336,6 +335,7 @@ pfUI_translation["zhTW"] = {
|
||||
["Font"] = nil,
|
||||
["Font Options"] = nil,
|
||||
["Font Padding"] = nil,
|
||||
["Font Size"] = nil,
|
||||
["Font Style"] = nil,
|
||||
["Force Blizzard Borders (|cffffaaaaExperimental|r)"] = nil,
|
||||
["fps"] = "幀",
|
||||
@@ -370,7 +370,6 @@ pfUI_translation["zhTW"] = {
|
||||
["Health"] = nil,
|
||||
["Health - Auto"] = "動態生命值和百分比",
|
||||
["Healthbar"] = "生命條",
|
||||
["Healthbar Animation Speed"] = "掉血動畫速度",
|
||||
["Health Bar Color"] = nil,
|
||||
["Healthbar Embedded"] = "血條上顯示動態頭像",
|
||||
["Healthbar Height"] = "生命條高度",
|
||||
@@ -395,7 +394,6 @@ pfUI_translation["zhTW"] = {
|
||||
["Hide Channel Names"] = "隱藏頻道名稱",
|
||||
["Hide Chat When Bags Are Opened"] = "打開背包後隱藏聊天框",
|
||||
["Hide Combat Log"] = "隱藏戰鬥日誌",
|
||||
["Hide Foreign Cooldown Animations"] = nil,
|
||||
["Hide Group Frames While In Raid"] = "在團隊框架下隱藏小隊框架",
|
||||
["Hide Healthbar On Critters"] = nil,
|
||||
["Hide Healthbar On Enemy NPCs"] = nil,
|
||||
@@ -404,6 +402,7 @@ pfUI_translation["zhTW"] = {
|
||||
["Hide Healthbar On Friendly Players"] = nil,
|
||||
["Hide Healthbar On Neutral NPCs"] = nil,
|
||||
["Hide Healthbar On Totems"] = nil,
|
||||
["Hide Numbers On Spell Cooldowns Up To (Seconds)"] = nil,
|
||||
["Hide Timeout"] = nil,
|
||||
["Hide When Entering Combat"] = nil,
|
||||
["Highlight Equipped Items"] = nil,
|
||||
@@ -432,7 +431,6 @@ pfUI_translation["zhTW"] = {
|
||||
["Inherit Default Colors"] = nil,
|
||||
["Inputbox Height"] = "輸入框高度",
|
||||
["Inputbox Width"] = "輸入框寬度",
|
||||
["Instant"] = "極快",
|
||||
["Integrations"] = nil,
|
||||
["Invert Health Bar"] = "血量反色顯示",
|
||||
["is not allowed in profile name"] = "在設定檔名中不允許",
|
||||
@@ -477,6 +475,7 @@ pfUI_translation["zhTW"] = {
|
||||
["Look & Feel"] = nil,
|
||||
["Loot"] = "拾取",
|
||||
["Loot & Spam"] = "拾取 & 聊天",
|
||||
["Loss Of Control"] = nil,
|
||||
["Macro Text Color"] = nil,
|
||||
["Macro Text Size"] = nil,
|
||||
["Main Actionbar"] = nil,
|
||||
@@ -516,6 +515,7 @@ pfUI_translation["zhTW"] = {
|
||||
["Name | Health Missing"] = nil,
|
||||
["Name (Linebreak) -Health Missing"] = nil,
|
||||
["Nameplate Border Size"] = nil,
|
||||
["Nameplate Debuffs"] = nil,
|
||||
["Nameplates"] = "姓名板",
|
||||
["Nameplate Width"] = "姓名板高度",
|
||||
["Name (Short)"] = "名字 (短)",
|
||||
@@ -554,6 +554,7 @@ pfUI_translation["zhTW"] = {
|
||||
["On State Change"] = nil,
|
||||
["Options"] = nil,
|
||||
["Orientation"] = nil,
|
||||
["Other Addons"] = nil,
|
||||
["Other Panel: Minimap"] = "小地圖面板",
|
||||
["Outline"] = nil,
|
||||
["Outlines"] = nil,
|
||||
@@ -582,6 +583,7 @@ pfUI_translation["zhTW"] = {
|
||||
["Pixel"] = nil,
|
||||
["Player"] = "玩家",
|
||||
["Player Buff Bar"] = nil,
|
||||
["Player Buffs"] = nil,
|
||||
["Player Castbar"] = nil,
|
||||
["Player Debuff Bar"] = nil,
|
||||
["Player SP/Haste Display"] = nil,
|
||||
@@ -592,6 +594,7 @@ pfUI_translation["zhTW"] = {
|
||||
["Portrait Alpha"] = "人偶透明度",
|
||||
["Portrait Height"] = "纵向高度",
|
||||
["Portrait Position"] = "人偶頭像位置",
|
||||
["Portrait Style"] = nil,
|
||||
["Portrait Width"] = "纵向宽度",
|
||||
["Powerbar"] = "能量(藍)條",
|
||||
["Power Bar Anchor"] = "能量條對齊方式(以血條為錨點)",
|
||||
@@ -647,6 +650,7 @@ pfUI_translation["zhTW"] = {
|
||||
["Resting"] = "休息中",
|
||||
["Reveal Unexplored Areas"] = "展示未勘探的地區",
|
||||
["Switch to current zone"] = nil,
|
||||
["Reverse Sweep On"] = nil,
|
||||
["Right"] = "右邊",
|
||||
["Right Actionbar"] = nil,
|
||||
["Right Anchor"] = nil,
|
||||
@@ -668,6 +672,7 @@ pfUI_translation["zhTW"] = {
|
||||
["Save & Reload"] = nil,
|
||||
["Scale"] = "比例",
|
||||
["Scale Border On HiDPI Displays"] = nil,
|
||||
["Scale Font Size With Icon"] = nil,
|
||||
["Scaling"] = nil,
|
||||
["Screen Edge Glow Intensity"] = nil,
|
||||
["Screen Resolution"] = "螢幕解析度",
|
||||
@@ -727,7 +732,7 @@ pfUI_translation["zhTW"] = {
|
||||
["Show Loot Icon"] = nil,
|
||||
["Show Macro Text"] = "顯示巨集的名字",
|
||||
["Show Meters By Default"] = "由默認顯示其他介面表",
|
||||
["Show Milliseconds When Timer Runs Out"] = nil,
|
||||
["Show Numbers On"] = nil,
|
||||
["Show On Friendly Units"] = nil,
|
||||
["Show On Hostile Units"] = nil,
|
||||
["Show Procs Indicators"] = nil,
|
||||
@@ -745,10 +750,10 @@ pfUI_translation["zhTW"] = {
|
||||
["Show Spell Icon"] = nil,
|
||||
["Show Spell Name"] = nil,
|
||||
["Show Stacks"] = nil,
|
||||
["Show Sweep On"] = nil,
|
||||
["Show Tenths Below 5 Seconds"] = nil,
|
||||
["Show Text"] = nil,
|
||||
["Show Time Left"] = nil,
|
||||
["Show Timer"] = nil,
|
||||
["Show Timer Animation"] = nil,
|
||||
["Show Timer Text"] = nil,
|
||||
["Show Totems Indicators"] = nil,
|
||||
["Shrink & Return"] = nil,
|
||||
@@ -765,8 +770,10 @@ pfUI_translation["zhTW"] = {
|
||||
["Soulshards"] = "靈魂碎片",
|
||||
["Spacing"] = nil,
|
||||
["Special Recipient"] = "特殊指定角色",
|
||||
["Spellbook And Character"] = nil,
|
||||
["Spell Power Color"] = nil,
|
||||
["Square"] = "方形",
|
||||
["Stack Count Font Size"] = nil,
|
||||
["Stance Bar 1"] = nil,
|
||||
["Stance Bar 2"] = nil,
|
||||
["Stance Bar 3"] = nil,
|
||||
@@ -801,7 +808,6 @@ pfUI_translation["zhTW"] = {
|
||||
["Thistle Tea"] = nil,
|
||||
["Threshold To Trust Health Estimation"] = nil,
|
||||
["Time"] = "計時器",
|
||||
["Timer"] = nil,
|
||||
["Time Remaining"] = "剩餘時間",
|
||||
["Timer In Minutes"] = nil,
|
||||
["Timestamp Brackets"] = "時間戳括弧",
|
||||
@@ -812,6 +818,7 @@ pfUI_translation["zhTW"] = {
|
||||
["Tiny (PixelPerfect)"] = "極小(像素完美)",
|
||||
["Toggle as Tank"] = "切換成為坦克",
|
||||
["Tooltip"] = "滑鼠提示框",
|
||||
["Tooltip Auras"] = nil,
|
||||
["Tooltip Position"] = "滑鼠提示框位置",
|
||||
["Tooltip Text Font"] = nil,
|
||||
["Tooltip Text Font Size"] = nil,
|
||||
@@ -823,11 +830,13 @@ pfUI_translation["zhTW"] = {
|
||||
["Total Gold"] = "總金量",
|
||||
["Totem Direction"] = nil,
|
||||
["Totem Icons"] = nil,
|
||||
["Totems"] = nil,
|
||||
["Tracked Reputation"] = nil,
|
||||
["Tracking Icon Size"] = "追蹤圖示大小",
|
||||
["Trigger Actions On Key Down"] = nil,
|
||||
["UI-Scale"] = "UI縮放比例",
|
||||
["Unbuffed"] = "該Buff缺失者",
|
||||
["Unit Frame Auras"] = nil,
|
||||
["Unit Frame Border Size"] = "頭像邊框大小",
|
||||
["Unit Frame Layout"] = "頭像框架樣式",
|
||||
["Unit Frames"] = "頭像框架",
|
||||
@@ -854,7 +863,6 @@ pfUI_translation["zhTW"] = {
|
||||
["Use Custom Color Power Bar Background"] = nil,
|
||||
["Use Custom Font Settings"] = nil,
|
||||
["Use Custom Spell Power Color (unchecked = biggest school color)"] = nil,
|
||||
["Use Dynamic Font Size"] = nil,
|
||||
["Use Item Rarity Color For Loot-Roll Timer"] = "為戰利品Roll點計時框啟用物品稀有顏色",
|
||||
["Use Original Game Fonts"] = nil,
|
||||
["Use Raid Frames To Display Group Members"] = '使用團隊框架顯示小組成員',
|
||||
|
||||
@@ -1,6 +1,8 @@
|
||||
<Ui xmlns="http://www.blizzard.com/wow/ui/">
|
||||
<Include file="..\api\api.lua"/>
|
||||
<Include file="..\api\cooldown.lua"/>
|
||||
<Include file="..\api\config.lua"/>
|
||||
<Include file="..\api\ui-widgets.lua"/>
|
||||
<Include file="..\api\ui-widgets.xml"/>
|
||||
<Include file="..\api\unitframes.lua"/>
|
||||
</Ui>
|
||||
|
||||
@@ -1,13 +1,4 @@
|
||||
<Ui xmlns="http://www.blizzard.com/wow/ui/">
|
||||
<Include file="..\env\locales_enUS.lua"/>
|
||||
<Include file="..\env\locales_koKR.lua"/>
|
||||
<Include file="..\env\locales_frFR.lua"/>
|
||||
<Include file="..\env\locales_deDE.lua"/>
|
||||
<Include file="..\env\locales_zhCN.lua"/>
|
||||
<Include file="..\env\locales_esES.lua"/>
|
||||
<Include file="..\env\locales_ruRU.lua"/>
|
||||
|
||||
<Include file="..\env\tables.lua"/>
|
||||
<Include file="..\env\profiles.lua"/>
|
||||
|
||||
<Include file="..\env\translations_enUS.lua"/>
|
||||
|
||||
@@ -1,8 +1,6 @@
|
||||
<Ui xmlns="http://www.blizzard.com/wow/ui/">
|
||||
<Include file="..\libs\libtipscan.lua"/>
|
||||
<Include file="..\libs\libspell.lua"/>
|
||||
<Include file="..\libs\libdebuff.lua"/>
|
||||
<Include file="..\libs\librange.lua"/>
|
||||
<Include file="..\libs\libunitscan.lua"/>
|
||||
<Include file="..\libs\libhealth.lua"/>
|
||||
<Include file="..\libs\libthrottle.lua"/>
|
||||
|
||||
+4
-1
@@ -7,6 +7,8 @@
|
||||
<Include file="..\modules\gryphons.lua"/>
|
||||
<Include file="..\modules\hunterbar.lua"/>
|
||||
<Include file="..\modules\chat.lua"/>
|
||||
<Include file="..\modules\combatlog.lua"/>
|
||||
<Include file="..\modules\combatlog_config.lua"/>
|
||||
<Include file="..\modules\whisperproxy.lua"/>
|
||||
<Include file="..\modules\chatcopy.lua"/>
|
||||
<Include file="..\modules\bubbles.lua"/>
|
||||
@@ -32,7 +34,6 @@
|
||||
<Include file="..\modules\autovendor.lua"/>
|
||||
<Include file="..\modules\bags.lua"/>
|
||||
<Include file="..\modules\itemclick.lua"/>
|
||||
<Include file="..\modules\cooldown.lua"/>
|
||||
<Include file="..\modules\tooltip.lua"/>
|
||||
<Include file="..\modules\questitem.lua"/>
|
||||
<Include file="..\modules\thirdparty.lua"/>
|
||||
@@ -80,4 +81,6 @@
|
||||
<Include file="..\modules\loothistory.lua"/>
|
||||
<Include file="..\modules\newitem.lua"/>
|
||||
<Include file="..\modules\friendnotes.lua"/>
|
||||
<Include file="..\modules\lossofcontrol.lua"/>
|
||||
<Include file="..\modules\radar.lua"/>
|
||||
</Ui>
|
||||
+83
-184
@@ -2,16 +2,21 @@
|
||||
setfenv(1, pfUI:GetEnvironment())
|
||||
|
||||
--[[ libpredict ]]--
|
||||
-- A pfUI library that detects, receives and sends heal and resurrection predictions.
|
||||
-- A pfUI library that detects, receives and sends heal predictions.
|
||||
-- Healing predictions are done by caching the last known "normal" heal value of the
|
||||
-- spell when last being used. Those chaches are cleared when new talents are detected.
|
||||
-- The API provides function calls similar to later WoW expansions such as:
|
||||
-- UnitGetIncomingHeals(unit)
|
||||
-- UnitHasIncomingResurrection(unit)
|
||||
-- UnitHasResurrection(unit)
|
||||
--
|
||||
-- The library is able to receive and send compatible messages to HealComm
|
||||
-- including resurrections. It has an option to disable the sending of those
|
||||
-- messages in case HealComm is already active.
|
||||
-- UnitHasResurrection extends ClassicAPI's UnitHasIncomingResurrection, which
|
||||
-- ends with the cast, to a resurrection that landed and waits for the target
|
||||
-- to accept it.
|
||||
--
|
||||
-- The library is able to receive and send compatible messages to HealComm,
|
||||
-- and announces the player's resurrections to HealComm and CTRA. It has an
|
||||
-- option to disable the sending of those messages in case HealComm is
|
||||
-- already active.
|
||||
--
|
||||
-- Casts are read from ClassicAPI's UNIT_SPELLCAST_* events and heal amounts
|
||||
-- from COMBAT_LOG_EVENT_UNFILTERED. GetHotDuration() reads live HoT timers
|
||||
@@ -20,18 +25,16 @@ setfenv(1, pfUI:GetEnvironment())
|
||||
-- return instantly when another libpredict is already active
|
||||
if pfUI.api.libpredict then return end
|
||||
|
||||
local heals, ress, events, hots = {}, {}, {}, {}
|
||||
local heals, events, hots = {}, {}, {}
|
||||
local spell_queue = { "DUMMY", "DUMMYRank 9", "TARGET" }
|
||||
local player = UnitName("player")
|
||||
local cache, gear_string = {}, ""
|
||||
local foreignCache = {} -- [casterName][spellKey] = amount, in-memory cache for other healers
|
||||
local rejuvDuration, renewDuration = 12, 15 --default durations
|
||||
local ressGuidToName = {} -- [casterGuid] = casterName, for interrupted-cast cleanup
|
||||
local healGuidToName = {} -- [casterGuid] = casterName, for interrupted-cast cleanup
|
||||
local sentTargets = {} -- [castGUID] = target name of an own cast, from UNIT_SPELLCAST_SENT
|
||||
local castTargets = {} -- [castGUID] = target name of a foreign cast, from UNIT_SPELLCAST_START
|
||||
local ress_timers = {} -- [target][sender] = expiry_timestamp (60s rez window)
|
||||
local RESS_TIMEOUT = 60 -- Vanilla: rez offer expires after 60s
|
||||
local resOffers = {} -- [guid] = expiry of a landed resurrection the target has yet to accept
|
||||
local RES_OFFER_TIMEOUT = 60 -- the target's resurrect popup declines itself after 60s
|
||||
|
||||
-- Localized spell names resolved once from canonical rank-1 spellIDs.
|
||||
-- Every rank shares the same name, so per-rank comparisons elsewhere can
|
||||
@@ -42,7 +45,6 @@ local RENEW = C_Spell.GetSpellName(139) -- Renew (Rank 1)
|
||||
local REGROWTH = C_Spell.GetSpellName(8936) -- Regrowth (Rank 1)
|
||||
|
||||
local libpredict = CreateFrame("Frame")
|
||||
libpredict:RegisterEvent("UNIT_HEALTH")
|
||||
libpredict:RegisterEvent("CHAT_MSG_ADDON")
|
||||
libpredict:RegisterEvent("PLAYER_TARGET_CHANGED")
|
||||
libpredict:RegisterEvent("PLAYER_LOGOUT")
|
||||
@@ -55,13 +57,8 @@ libpredict:SetScript("OnEvent", function()
|
||||
return
|
||||
end
|
||||
|
||||
if event == "CHAT_MSG_ADDON" and (arg1 == "HealComm" or arg1 == "CTRA") then
|
||||
this:ParseChatMessage(arg4, arg2, arg1)
|
||||
elseif event == "UNIT_HEALTH" then
|
||||
local name = UnitName(arg1)
|
||||
if name and ress[name] and not UnitIsDeadOrGhost(arg1) then
|
||||
ress[name] = nil
|
||||
end
|
||||
if event == "CHAT_MSG_ADDON" and arg1 == "HealComm" then
|
||||
this:ParseChatMessage(arg4, arg2)
|
||||
end
|
||||
end)
|
||||
|
||||
@@ -95,22 +92,14 @@ local function cacheRaidNames()
|
||||
if pguid then guidNameCache[pguid] = UnitName("player") end
|
||||
end
|
||||
|
||||
local function isRezSpell(spellId)
|
||||
if not L["resurrections"] then return false end
|
||||
local spellName = C_Spell.GetSpellName(spellId)
|
||||
return spellName and L["resurrections"][spellName]
|
||||
end
|
||||
|
||||
-- Build cache on world enter
|
||||
libpredict:RegisterEvent("PLAYER_ENTERING_WORLD")
|
||||
libpredict:RegisterEvent("RAID_ROSTER_UPDATE")
|
||||
libpredict:RegisterEvent("PARTY_MEMBERS_CHANGED")
|
||||
local origOnEvent = libpredict:GetScript("OnEvent")
|
||||
libpredict:SetScript("OnEvent", function()
|
||||
libpredict:HookScript("OnEvent", function()
|
||||
if event == "PLAYER_ENTERING_WORLD" or event == "RAID_ROSTER_UPDATE" or event == "PARTY_MEMBERS_CHANGED" then
|
||||
cacheRaidNames()
|
||||
end
|
||||
if origOnEvent then origOnEvent() end
|
||||
end)
|
||||
|
||||
-- Own cast-time spell started (heals + rez)
|
||||
@@ -131,7 +120,6 @@ local function OnOwnCastStart(spellId, castGUID)
|
||||
|
||||
if L["resurrections"][spellName] then
|
||||
if target then
|
||||
libpredict:Ress(player, target, UnitGUID("player"))
|
||||
libpredict.sender:SendHealCommMsg("Resurrection/" .. target .. "/start/")
|
||||
libpredict.sender:SendResCommMsg("RES " .. target)
|
||||
libpredict.sender.resurrecting = true
|
||||
@@ -212,7 +200,7 @@ local function OnOwnCastStart(spellId, castGUID)
|
||||
end
|
||||
end
|
||||
|
||||
-- Own cast landed: HealStop, Regrowth timer, instant HoTs, own rez timer
|
||||
-- Own cast landed: HealStop, Regrowth timer, instant HoTs
|
||||
local function OnOwnCastSucceeded(spellId, castGUID)
|
||||
local target = sentTargets[castGUID] or spell_queue[3]
|
||||
sentTargets[castGUID] = nil
|
||||
@@ -250,14 +238,10 @@ local function OnOwnCastSucceeded(spellId, castGUID)
|
||||
libpredict:Hot(player, target, hotType, duration, nil, "UNIT_SPELLCAST_SUCCEEDED", rank)
|
||||
libpredict.sender:SendHealCommMsg(hotType .. "/" .. target .. "/" .. duration .. "/" .. rank .. "/")
|
||||
end
|
||||
|
||||
if isRezSpell(spellId) then
|
||||
libpredict:RessSetTimer(player, target)
|
||||
end
|
||||
end
|
||||
|
||||
-- Foreign cast-time spell started (heals + rez)
|
||||
local function OnOtherCastStart(unit, spellId, castGUID)
|
||||
-- Foreign cast-time heal started
|
||||
local function OnOtherCastStart(unit, spellId)
|
||||
local spellName = C_Spell.GetSpellName(spellId)
|
||||
if not spellName then return end
|
||||
|
||||
@@ -267,13 +251,6 @@ local function OnOtherCastStart(unit, spellId, castGUID)
|
||||
|
||||
local targetName = UnitSpellTargetName(unit)
|
||||
if not targetName then return end
|
||||
castTargets[castGUID] = targetName
|
||||
|
||||
-- Resurrection cast
|
||||
if L["resurrections"][spellName] then
|
||||
libpredict:Ress(casterName, targetName, casterGuid)
|
||||
return
|
||||
end
|
||||
|
||||
-- Heal cast: look up cached amount from a previous cast by this healer
|
||||
local _, _, _, startMs, endMs = C_Spell.UnitCastingInfo(unit)
|
||||
@@ -324,35 +301,31 @@ local function OnOtherCastStart(unit, spellId, castGUID)
|
||||
libpredict:Heal(casterName, targetName, amount, castTime, casterGuid)
|
||||
end
|
||||
|
||||
-- Foreign cast landed: rez timer, or the predicted heal is fulfilled
|
||||
local function OnOtherCastSucceeded(unit, spellId, castGUID)
|
||||
local casterGuid = UnitGUID(unit)
|
||||
local casterName = resolveNameFromGuid(casterGuid)
|
||||
-- Foreign cast landed: the predicted heal is fulfilled
|
||||
local function OnOtherCastSucceeded(unit)
|
||||
local casterName = resolveNameFromGuid(UnitGUID(unit))
|
||||
if not casterName then return end
|
||||
|
||||
if isRezSpell(spellId) then
|
||||
local targetName = castTargets[castGUID]
|
||||
if targetName then
|
||||
libpredict:RessSetTimer(casterName, targetName)
|
||||
end
|
||||
return
|
||||
end
|
||||
|
||||
libpredict:HealStop(casterName)
|
||||
end
|
||||
|
||||
-- Foreign cast interrupted: remove cancelled resses/heals
|
||||
-- Foreign cast interrupted: remove cancelled heals
|
||||
local function OnOtherCastInterrupted(unit)
|
||||
local casterGuid = UnitGUID(unit)
|
||||
if not casterGuid then return end
|
||||
local ressName = ressGuidToName[casterGuid]
|
||||
if ressName then
|
||||
libpredict:RessStop(ressName)
|
||||
end
|
||||
local healName = healGuidToName[casterGuid]
|
||||
if healName then libpredict:HealStop(healName) end
|
||||
end
|
||||
|
||||
-- Flag the unit frames showing `guid` to redraw their resurrection icon
|
||||
local function RefreshResFrames(guid)
|
||||
for _, frame in pairs(pfUI.uf.frames) do
|
||||
if frame.unitstr and UnitGUID(frame.unitstr) == guid then
|
||||
frame.update_indicators = true
|
||||
end
|
||||
end
|
||||
end
|
||||
|
||||
libpredict:SetScript("OnUpdate", function()
|
||||
-- throttle cleanup - no need to check every frame
|
||||
local now = pfUI.uf.now or GetTime()
|
||||
@@ -366,13 +339,12 @@ libpredict:SetScript("OnUpdate", function()
|
||||
end
|
||||
end
|
||||
|
||||
-- Rez timeout: remove offer after 60s if player doesn't accept
|
||||
for target, senders in pairs(ress_timers) do
|
||||
for sender, expiry in pairs(senders) do
|
||||
if now >= expiry then
|
||||
senders[sender] = nil
|
||||
if ress[target] then ress[target][sender] = nil end
|
||||
end
|
||||
-- drop resurrection offers the target accepted or let run out
|
||||
for guid, expiry in pairs(resOffers) do
|
||||
local unit = UnitTokenFromGUID(guid)
|
||||
if now >= expiry or not (unit and UnitIsDeadOrGhost(unit)) then
|
||||
resOffers[guid] = nil
|
||||
RefreshResFrames(guid)
|
||||
end
|
||||
end
|
||||
end)
|
||||
@@ -386,8 +358,6 @@ function libpredict:ParseComm(sender, msg)
|
||||
if libpredict.debug then
|
||||
DEFAULT_CHAT_FRAME:AddMessage("|cff00ffff[libpredict RX]|r HealStop from " .. tostring(sender))
|
||||
end
|
||||
elseif msg == "Resurrection/stop/" then
|
||||
msgtype = "RessStop"
|
||||
elseif msg then
|
||||
local msgobj = {strsplit("/", msg)}
|
||||
|
||||
@@ -397,10 +367,6 @@ function libpredict:ParseComm(sender, msg)
|
||||
msgtype, time = "Delay", msgobj[2]
|
||||
end
|
||||
|
||||
if msgobj[1] and msgobj[1] == "Resurrection" and msgobj[2] then
|
||||
msgtype, target = "Ress", msgobj[2]
|
||||
end
|
||||
|
||||
if msgobj[1] == "Heal" and msgobj[2] then
|
||||
msgtype, target, heal, time = "Heal", msgobj[2], msgobj[3], msgobj[4]
|
||||
end
|
||||
@@ -472,25 +438,12 @@ end
|
||||
local recentHots = {}
|
||||
local DUPLICATE_WINDOW = 0.5 -- Ignoriere gleiche Nachricht innerhalb 0.5s
|
||||
|
||||
function libpredict:ParseChatMessage(sender, msg, comm)
|
||||
local msgtype, target, heal, time, rank
|
||||
|
||||
if comm == "HealComm" then
|
||||
msgtype, target, heal, time, rank = libpredict:ParseComm(sender, msg)
|
||||
elseif comm == "CTRA" then
|
||||
local _, _, cmd, ctratarget = string.find(msg, "(%a+)%s?([^#]*)")
|
||||
if cmd and ctratarget and cmd == "RES" and ctratarget ~= "" and ctratarget ~= UNKNOWN then
|
||||
msgtype = "Ress"
|
||||
target = ctratarget
|
||||
end
|
||||
end
|
||||
function libpredict:ParseChatMessage(sender, msg)
|
||||
local msgtype, target, heal, time, rank = libpredict:ParseComm(sender, msg)
|
||||
|
||||
if msgtype == "Stop" and sender then
|
||||
libpredict:HealStop(sender)
|
||||
return
|
||||
elseif ( msg == "RessStop" or msg == "RESNO" ) and sender then
|
||||
libpredict:RessStop(sender)
|
||||
return
|
||||
elseif msgtype == "Delay" and time then
|
||||
libpredict:HealDelay(sender, time)
|
||||
elseif msgtype == "Heal" and target and heal and time then
|
||||
@@ -501,29 +454,6 @@ function libpredict:ParseChatMessage(sender, msg, comm)
|
||||
else
|
||||
libpredict:Heal(sender, target, heal, time)
|
||||
end
|
||||
elseif msgtype == "Ress" then
|
||||
-- HealComm: only for other players (own resses tracked via UNIT_SPELLCAST_START)
|
||||
local playerName = UnitName("player")
|
||||
if sender ~= playerName then
|
||||
local senderGuid
|
||||
for i = 1, GetNumRaidMembers() do
|
||||
local unit = "raid" .. i
|
||||
if UnitName(unit) == sender then
|
||||
senderGuid = UnitGUID(unit)
|
||||
break
|
||||
end
|
||||
end
|
||||
if not senderGuid then
|
||||
for i = 1, GetNumPartyMembers() do
|
||||
local unit = "party" .. i
|
||||
if UnitName(unit) == sender then
|
||||
senderGuid = UnitGUID(unit)
|
||||
break
|
||||
end
|
||||
end
|
||||
end
|
||||
libpredict:Ress(sender, target, senderGuid)
|
||||
end
|
||||
elseif msgtype == "Hot" then
|
||||
-- Duplicate check: ignore same sender+target+spell within DUPLICATE_WINDOW
|
||||
local now = pfUI.uf.now or GetTime()
|
||||
@@ -672,41 +602,6 @@ function libpredict:HealDelay(sender, delay)
|
||||
end
|
||||
end
|
||||
|
||||
function libpredict:Ress(sender, target, senderGuid)
|
||||
ress[target] = ress[target] or {}
|
||||
ress[target][sender] = true
|
||||
if senderGuid then ressGuidToName[senderGuid] = sender end
|
||||
-- no timer here - timer is only set once the cast actually completes
|
||||
end
|
||||
|
||||
function libpredict:RessSetTimer(sender, target)
|
||||
ress_timers[target] = ress_timers[target] or {}
|
||||
local existing = ress_timers[target][sender]
|
||||
if not existing or GetTime() >= existing then
|
||||
ress_timers[target][sender] = GetTime() + RESS_TIMEOUT
|
||||
else
|
||||
end
|
||||
end
|
||||
|
||||
function libpredict:RessStop(sender)
|
||||
local now = GetTime()
|
||||
for ttarget, t in pairs(ress) do
|
||||
for tsender in pairs(ress[ttarget]) do
|
||||
if sender == tsender then
|
||||
local expiry = ress_timers[ttarget] and ress_timers[ttarget][tsender]
|
||||
if not expiry or now >= expiry then
|
||||
ress[ttarget][tsender] = nil
|
||||
if ress_timers[ttarget] then ress_timers[ttarget][tsender] = nil end
|
||||
else
|
||||
end
|
||||
end
|
||||
end
|
||||
end
|
||||
for guid, name in pairs(ressGuidToName) do
|
||||
if name == sender then ressGuidToName[guid] = nil end
|
||||
end
|
||||
end
|
||||
|
||||
function libpredict:UnitGetIncomingHeals(unit)
|
||||
if not unit then return 0 end
|
||||
local name = UnitName(unit)
|
||||
@@ -729,26 +624,35 @@ function libpredict:UnitGetIncomingHeals(unit)
|
||||
return sumheal
|
||||
end
|
||||
|
||||
function libpredict:UnitHasIncomingResurrection(unit)
|
||||
if not unit then return nil end
|
||||
local name = UnitName(unit)
|
||||
if not name then return nil end
|
||||
|
||||
if not ress[name] then
|
||||
return nil
|
||||
else
|
||||
for sender, val in pairs(ress[name]) do
|
||||
if val == true then
|
||||
return val
|
||||
end
|
||||
end
|
||||
end
|
||||
return nil
|
||||
-- Whether a resurrection is being cast at the unit, or landed and waits for
|
||||
-- the unit to accept it
|
||||
function libpredict:UnitHasResurrection(unit)
|
||||
return UnitHasIncomingResurrection(unit) or resOffers[UnitGUID(unit)] ~= nil
|
||||
end
|
||||
|
||||
local realm = GetRealmName()
|
||||
local resetcache = CreateFrame("Frame")
|
||||
local hotsetbonus = libtipscan:GetScanner("hotsetbonus")
|
||||
|
||||
-- set bonus spells that lengthen a HoT
|
||||
local REJUVENATION_SET_BONUS = 21871 -- Stormrage Raiment (8)
|
||||
local RENEW_SET_BONUS = 26171 -- Garments of the Oracle (5)
|
||||
|
||||
-- the set bonus spells the equipped gear grants
|
||||
local function GetActiveSetBonuses()
|
||||
local pieces = {}
|
||||
for slot = 1, 19 do
|
||||
local setID = C_Item.GetItemSetID({ equipmentSlotIndex = slot })
|
||||
if setID then pieces[setID] = (pieces[setID] or 0) + 1 end
|
||||
end
|
||||
|
||||
local active = {}
|
||||
for setID, count in pairs(pieces) do
|
||||
for _, bonus in ipairs(C_Item.GetItemSetInfo(setID).bonuses) do
|
||||
if count >= bonus.threshold then active[bonus.spellID] = true end
|
||||
end
|
||||
end
|
||||
return active
|
||||
end
|
||||
resetcache:RegisterEvent("PLAYER_ENTERING_WORLD")
|
||||
resetcache:RegisterEvent("LEARNED_SPELL_IN_TAB")
|
||||
resetcache:RegisterEvent("CHARACTER_POINTS_CHANGED")
|
||||
@@ -773,19 +677,9 @@ resetcache:SetScript("OnEvent", function()
|
||||
if gear == gear_string then return end
|
||||
gear_string = gear
|
||||
|
||||
local setBonusCounter
|
||||
setBonusCounter = 0
|
||||
for i=1,10 do --there is no need to check slots above 10
|
||||
hotsetbonus:SetInventoryItem("player", i)
|
||||
if hotsetbonus:Find(L["healduration"]["Rejuvenation"]) then setBonusCounter = setBonusCounter + 1 end
|
||||
end
|
||||
rejuvDuration = setBonusCounter == 8 and 15 or 12
|
||||
setBonusCounter = 0
|
||||
for i =1,10 do
|
||||
hotsetbonus:SetInventoryItem("player", i)
|
||||
if hotsetbonus:Find(L["healduration"]["Renew"]) then setBonusCounter = setBonusCounter + 1 end
|
||||
end
|
||||
renewDuration = setBonusCounter == 5 and 18 or 15
|
||||
local bonuses = GetActiveSetBonuses()
|
||||
rejuvDuration = bonuses[REJUVENATION_SET_BONUS] and 15 or 12
|
||||
renewDuration = bonuses[RENEW_SET_BONUS] and 18 or 15
|
||||
end
|
||||
|
||||
-- flag all cached heals for renewal
|
||||
@@ -834,7 +728,6 @@ local pendingHots = {}
|
||||
|
||||
-- Gather Data by User Actions
|
||||
hooksecurefunc("CastSpell", function(id, bookType)
|
||||
if not libpredict.sender.enabled then return end
|
||||
local effect, rank = libspell.GetSpellInfo(id, bookType)
|
||||
if not effect then return end
|
||||
spell_queue[1] = effect
|
||||
@@ -887,7 +780,6 @@ hooksecurefunc("CastSpell", function(id, bookType)
|
||||
end)
|
||||
|
||||
hooksecurefunc("CastSpellByName", function(effect, target)
|
||||
if not libpredict.sender.enabled then return end
|
||||
local effect, rank = libspell.GetSpellInfo(effect)
|
||||
if not effect then return end
|
||||
|
||||
@@ -951,7 +843,6 @@ hooksecurefunc("CastSpellByName", function(effect, target)
|
||||
end)
|
||||
|
||||
hooksecurefunc("UseAction", function(slot, target, selfcast)
|
||||
if not libpredict.sender.enabled then return end
|
||||
if not IsCurrentAction(slot) then return end
|
||||
local kind, id = GetActionInfo(slot)
|
||||
local effect, rank
|
||||
@@ -1012,8 +903,10 @@ hooksecurefunc("UseAction", function(slot, target, selfcast)
|
||||
end)
|
||||
|
||||
libpredict.sender = CreateFrame("Frame", "pfPredictionSender", UIParent)
|
||||
-- cleared when a HealComm addon already broadcasts this player's casts
|
||||
libpredict.sender.enabled = true
|
||||
libpredict.sender.SendHealCommMsg = function(self, msg)
|
||||
if not self.enabled then return end
|
||||
-- Smart channel selection: Only send to relevant channel to avoid duplicates
|
||||
if IsInRaid() then
|
||||
-- In raid: Only send to RAID (includes all raid members)
|
||||
@@ -1026,6 +919,7 @@ libpredict.sender.SendHealCommMsg = function(self, msg)
|
||||
-- BG groups are handled by RAID channel
|
||||
end
|
||||
libpredict.sender.SendResCommMsg = function(self, msg)
|
||||
if not self.enabled then return end
|
||||
-- Smart channel selection: Only send to relevant channel to avoid duplicates
|
||||
if IsInRaid() then
|
||||
-- In raid: Only send to RAID (includes all raid members)
|
||||
@@ -1071,7 +965,6 @@ libpredict.sender:RegisterEvent("UNIT_SPELLCAST_DELAYED")
|
||||
libpredict.sender:RegisterEvent("UNIT_SPELLCAST_SUCCEEDED")
|
||||
libpredict.sender:RegisterEvent("UNIT_SPELLCAST_FAILED")
|
||||
libpredict.sender:RegisterEvent("UNIT_SPELLCAST_INTERRUPTED")
|
||||
libpredict.sender:RegisterEvent("UNIT_SPELLCAST_STOP")
|
||||
libpredict.sender:RegisterEvent("COMBAT_LOG_EVENT_UNFILTERED")
|
||||
|
||||
-- Shared cleanup helper for failed/interrupted casts
|
||||
@@ -1083,7 +976,6 @@ local function onCastFailed()
|
||||
s.healing = nil
|
||||
elseif s.resurrecting then
|
||||
local target = s.current_cast_target or spell_queue[3]
|
||||
libpredict:RessStop(UnitName("player"))
|
||||
s:SendHealCommMsg("Resurrection/stop/")
|
||||
s:SendResCommMsg("RESNO " .. (target or ""))
|
||||
s.resurrecting = nil
|
||||
@@ -1134,11 +1026,20 @@ local function OnHeal()
|
||||
end
|
||||
end
|
||||
|
||||
-- A landed resurrection: the target has an offer to accept, which outlasts
|
||||
-- UnitHasIncomingResurrection's end with the cast
|
||||
local function OnResurrect()
|
||||
-- arg8=destGUID
|
||||
resOffers[arg8] = GetTime() + RES_OFFER_TIMEOUT
|
||||
RefreshResFrames(arg8)
|
||||
end
|
||||
|
||||
local lastOtherCast = {} -- [event] = castGUID of the last other-unit event handled
|
||||
|
||||
libpredict.sender:SetScript("OnEvent", function()
|
||||
if event == "COMBAT_LOG_EVENT_UNFILTERED" then
|
||||
if arg2 == "SPELL_HEAL" then OnHeal() end
|
||||
if arg2 == "SPELL_HEAL" then OnHeal()
|
||||
elseif arg2 == "SPELL_RESURRECT" then OnResurrect() end
|
||||
return
|
||||
end
|
||||
|
||||
@@ -1174,13 +1075,11 @@ libpredict.sender:SetScript("OnEvent", function()
|
||||
lastOtherCast[event] = arg2
|
||||
|
||||
if event == "UNIT_SPELLCAST_START" then
|
||||
OnOtherCastStart(unit, arg3, arg2)
|
||||
OnOtherCastStart(unit, arg3)
|
||||
elseif event == "UNIT_SPELLCAST_SUCCEEDED" then
|
||||
OnOtherCastSucceeded(unit, arg3, arg2)
|
||||
OnOtherCastSucceeded(unit)
|
||||
elseif event == "UNIT_SPELLCAST_INTERRUPTED" then
|
||||
OnOtherCastInterrupted(unit)
|
||||
elseif event == "UNIT_SPELLCAST_STOP" then
|
||||
castTargets[arg2] = nil
|
||||
end
|
||||
end)
|
||||
|
||||
|
||||
@@ -1,30 +0,0 @@
|
||||
-- load pfUI environment
|
||||
setfenv(1, pfUI:GetEnvironment())
|
||||
|
||||
--[[ librange ]]--
|
||||
-- A thin wrapper over ClassicAPI's UnitInRange: a fixed 40y healing-range
|
||||
-- check computed C-side from unit positions, valid for any unit. There is
|
||||
-- no cache or scan loop -- the check is cheap enough to run per query,
|
||||
-- which also sidesteps the staleness a cached scan hit on zone changes and
|
||||
-- roster re-indexing.
|
||||
--
|
||||
-- librange:UnitInSpellRange(unit)
|
||||
-- Returns `1` if the unit is within range, `nil` otherwise.
|
||||
|
||||
if pfUI.api.librange then return end
|
||||
|
||||
local librange = {}
|
||||
|
||||
function librange:UnitInSpellRange(unit)
|
||||
-- _G-qualified: bare `UnitInRange` resolves to pfUI.api.UnitInRange inside
|
||||
-- the pfUI environment (which calls us), so this must reach ClassicAPI's
|
||||
-- global directly or it recurses.
|
||||
local inRange, checked = _G.UnitInRange(unit)
|
||||
-- position miss (e.g. a unit outside the client's sync range): we can't
|
||||
-- tell, so default to in-range -- matches the old cache's nil behavior.
|
||||
if not checked then return 1 end
|
||||
return inRange and 1 or nil
|
||||
end
|
||||
|
||||
-- add librange to pfUI API
|
||||
pfUI.api.librange = librange
|
||||
+1
-3
@@ -116,9 +116,7 @@ function libspell.GetSpellInfo(index, bookType)
|
||||
end
|
||||
|
||||
-- Reset all spell caches whenever new spells are learned/unlearned
|
||||
local resetcache = CreateFrame("Frame")
|
||||
resetcache:RegisterEvent("LEARNED_SPELL_IN_TAB")
|
||||
resetcache:SetScript("OnEvent", function()
|
||||
pfUI.events:RegisterFrameEventAndCallback("LEARNED_SPELL_IN_TAB", function()
|
||||
table.wipe(spellmaxrank)
|
||||
table.wipe(spellindex)
|
||||
table.wipe(spellinfo)
|
||||
|
||||
@@ -1,200 +0,0 @@
|
||||
-- load pfUI environment
|
||||
setfenv(1, pfUI:GetEnvironment())
|
||||
|
||||
--[[ libtipscan ]]--
|
||||
-- A pfUI library that provides tooltip scanner.
|
||||
--
|
||||
-- libtipscan:GetScanner(name)
|
||||
-- returns or resets a scanner for use with tooltip methods
|
||||
--
|
||||
-- libtipscan:List()
|
||||
-- prints a list of all active scanners
|
||||
--
|
||||
-- The scanner tooltip returned by :GetScanner has all the Set____ GameTooltip methods with a built-in full clear
|
||||
-- In addition the scanner has the following custom methods
|
||||
-- <scanner>:Text()
|
||||
-- return a table with all the left, right texts in {[line] = {left, right}} format
|
||||
-- <scanner>:Find(text, [exact])
|
||||
-- returns true (linenumber) and [the text found or the captures made if text is a pattern]
|
||||
-- exact is optional flag making it look only for exact matches
|
||||
-- <scanner>:Color(r,g,b)
|
||||
-- returns true (linenumber) if the r,g,b color tuple is found as text color on the scanner
|
||||
-- accepts color table as argument as well (eg. <scanner>:Color(RED_FONT_COLOR) )
|
||||
-- <scanner>:Line(line_number)
|
||||
-- returns left, right text from that tooltip line
|
||||
-- <scanner>:List()
|
||||
-- prints a list of all available scanner methods
|
||||
|
||||
-- return instantly when another libtipscan is already active
|
||||
if pfUI.api.libtipscan then return end
|
||||
|
||||
local libtipscan = {}
|
||||
local baseName = "pfUIScan"
|
||||
local methods = {
|
||||
"SetBagItem", "SetAction", "SetAuctionItem", "SetAuctionSellItem", "SetBuybackItem",
|
||||
"SetCraftItem", "SetCraftSpell", "SetHyperlink", "SetInboxItem", "SetInventoryItem",
|
||||
"SetLootItem", "SetLootRollItem", "SetMerchantItem", "SetPetAction", "SetPlayerBuff",
|
||||
"SetQuestItem", "SetQuestLogItem", "SetQuestRewardSpell", "SetSendMailItem", "SetShapeshift",
|
||||
"SetSpell", "SetTalent", "SetTrackingSpell", "SetTradePlayerItem", "SetTradeSkillItem", "SetTradeTargetItem",
|
||||
"SetTrainerService", "SetUnit", "SetUnitBuff", "SetUnitDebuff",
|
||||
}
|
||||
local extra_methods = {
|
||||
"Find", "Line", "Text", "List",
|
||||
}
|
||||
|
||||
local getFontString = function(obj)
|
||||
local name = obj:GetName()
|
||||
local r, g, b, color, a
|
||||
local text, segment
|
||||
|
||||
for i=1, obj:NumLines() do
|
||||
local left = _G[string.format("%sTextLeft%d",name,i)]
|
||||
segment = left and left:IsVisible() and left:GetText()
|
||||
segment = segment and segment ~= "" and segment or nil
|
||||
if segment then
|
||||
r, g, b, a = left:GetTextColor()
|
||||
segment = rgbhex(r,g,b) .. segment .. "|r"
|
||||
text = text and text .. "\n" .. segment or segment
|
||||
end
|
||||
end
|
||||
return text
|
||||
end
|
||||
|
||||
local getText = function(obj)
|
||||
local name = obj:GetName()
|
||||
local text = {}
|
||||
for i=1, obj:NumLines() do
|
||||
local left, right = _G[string.format("%sTextLeft%d",name,i)], _G[string.format("%sTextRight%d",name,i)]
|
||||
left = left and left:IsVisible() and left:GetText()
|
||||
right = right and right:IsVisible() and right:GetText()
|
||||
left = left and left ~= "" and left or nil
|
||||
right = right and right ~= "" and right or nil
|
||||
if left or right then
|
||||
text[i] = {left, right}
|
||||
end
|
||||
end
|
||||
return text
|
||||
end
|
||||
|
||||
local findText = function(obj, text, exact)
|
||||
local name = obj:GetName()
|
||||
for i=1, obj:NumLines() do
|
||||
local left, right = _G[string.format("%sTextLeft%d",name,i)], _G[string.format("%sTextRight%d",name,i)]
|
||||
left = left and left:IsVisible() and left:GetText()
|
||||
right = right and right:IsVisible() and right:GetText()
|
||||
if exact then
|
||||
if (left and left == text) or (right and right == text) then
|
||||
return i, text
|
||||
end
|
||||
else
|
||||
if left then
|
||||
local found,_,a1,a2,a3,a4,a5,a6,a7,a8,a9,a10 = string.find(left, text)
|
||||
if found then
|
||||
return i, a1,a2,a3,a4,a5,a6,a7,a8,a9,a10
|
||||
end
|
||||
end
|
||||
if right then
|
||||
local found,_,a1,a2,a3,a4,a5,a6,a7,a8,a9,a10 = string.find(right, text)
|
||||
if found then
|
||||
return i, a1,a2,a3,a4,a5,a6,a7,a8,a9,a10
|
||||
end
|
||||
end
|
||||
end
|
||||
end
|
||||
end
|
||||
|
||||
local lineText = function(obj, line)
|
||||
local name = obj:GetName()
|
||||
if line <= obj:NumLines() then
|
||||
local left, right = _G[string.format("%sTextLeft%d",name,line)], _G[string.format("%sTextRight%d",name,line)]
|
||||
left = left and left:IsVisible() and left:GetText()
|
||||
right = right and right:IsVisible() and right:GetText()
|
||||
|
||||
if left or right then
|
||||
return left, right
|
||||
end
|
||||
end
|
||||
end
|
||||
|
||||
local findColor = function(obj, r,g,b)
|
||||
local name = obj:GetName()
|
||||
if type(r) == "table" then
|
||||
r,g,b = r.r or r[1], r.g or r[2], r.b or r[3]
|
||||
end
|
||||
for i=1, obj:NumLines() do
|
||||
local tr, tg, tb
|
||||
local left, right = _G[string.format("%sTextLeft%d",name,i)], _G[string.format("%sTextRight%d",name,i)]
|
||||
if left and left:IsVisible() then
|
||||
tr, tg, tb = left:GetTextColor()
|
||||
tr, tg, tb = round(tr,1), round(tg,1), round(tb,1)
|
||||
end
|
||||
if tr and (tr == r and tg == g and tb == b) then
|
||||
return i
|
||||
end
|
||||
if right and right:IsVisible() then
|
||||
tr, tg, tb = right:GetTextColor()
|
||||
tr, tg, tb = round(tr,1), round(tg,1), round(tb,1)
|
||||
end
|
||||
if tr and (tr == r and tg == g and tb == b) then
|
||||
return i
|
||||
end
|
||||
end
|
||||
end
|
||||
|
||||
libtipscan._registry = setmetatable({},{__index = function(t,k)
|
||||
local v = CreateFrame("GameTooltip", string.format("%s%s",baseName,k), nil, "GameTooltipTemplate")
|
||||
v:SetOwner(WorldFrame,"ANCHOR_NONE")
|
||||
v:SetScript("OnHide", function ()
|
||||
this:SetOwner(WorldFrame,"ANCHOR_NONE")
|
||||
end)
|
||||
function v:Text()
|
||||
return getText(self)
|
||||
end
|
||||
function v:FontString()
|
||||
return getFontString(self)
|
||||
end
|
||||
function v:Find(text, exact)
|
||||
return findText(self, text, exact)
|
||||
end
|
||||
function v:Color(r,g,b)
|
||||
return findColor(self,r,g,b)
|
||||
end
|
||||
function v:Line(line)
|
||||
return lineText(self, line)
|
||||
end
|
||||
for _,method in ipairs(methods) do
|
||||
local method = method
|
||||
local old = v[method]
|
||||
v[method] = function(v, a1,a2,a3,a4,a5,a6,a7,a8,a9,a10)
|
||||
v:ClearLines()
|
||||
v:SetOwner(WorldFrame, "ANCHOR_NONE")
|
||||
return old(v, a1,a2,a3,a4,a5,a6,a7,a8,a9,a10)
|
||||
end
|
||||
end
|
||||
function v:List()
|
||||
table.sort(methods)
|
||||
for _,method in ipairs(methods) do
|
||||
print(method)
|
||||
end
|
||||
for _,method in ipairs(extra_methods) do
|
||||
print(method)
|
||||
end
|
||||
end
|
||||
rawset(t,k,v)
|
||||
return v
|
||||
end})
|
||||
|
||||
function libtipscan:GetScanner(type)
|
||||
local scanner = self._registry[type]
|
||||
scanner:ClearLines()
|
||||
return scanner
|
||||
end
|
||||
|
||||
function libtipscan:List()
|
||||
for name, scanner in pairs(self._registry) do
|
||||
print(name)
|
||||
end
|
||||
end
|
||||
|
||||
-- add libtipscan to pfUI API
|
||||
pfUI.api.libtipscan = libtipscan
|
||||
+42
-101
@@ -2,37 +2,26 @@
|
||||
setfenv(1, pfUI:GetEnvironment())
|
||||
|
||||
--[[ libunitscan ]]--
|
||||
-- A pfUI library that detects and saves all kind of unit related informations.
|
||||
-- Such as level, class, elite-state and playertype. Each query causes the library
|
||||
-- to automatically scan for the target if not already existing. Player-data is
|
||||
-- persisted within the pfUI_playerDB where the mob data is a throw-away table.
|
||||
-- The automatic target scanner is only working for vanilla due to client limitations
|
||||
-- on further expansions.
|
||||
-- A pfUI library that remembers the class, level and guild of every player it
|
||||
-- sees: in the friends, guild, raid and party rosters, in /who results, and as
|
||||
-- target, mouseover or nameplate. The data is persisted within pfUI_playerDB,
|
||||
-- for the places that only have a player's name, such as chat links and
|
||||
-- offline friends. Anything with a unit reads the unit itself instead.
|
||||
--
|
||||
-- External functions:
|
||||
-- GetUnitInfo(name, active, isPlayer)
|
||||
-- Returns information of the given unitname. Returns nil if no match is found.
|
||||
-- When nothing is found and the active flag is set, the autoscanner will
|
||||
-- automatically pick it up and try to fill the missing entry by targetting the unit.
|
||||
-- Pass isPlayer=true/false to restrict the lookup to the players or mobs table
|
||||
-- (avoids name-collision false positives, e.g. a player and an NPC named Chromie).
|
||||
-- GetUnitInfo(name)
|
||||
-- Returns information of the given player name. Returns nil if the player
|
||||
-- was never seen.
|
||||
--
|
||||
-- class[String] - The class of the unit
|
||||
-- level[Number] - The level of the unit
|
||||
-- elite[String] - The elite state of the unit (See UnitClassification())
|
||||
-- player[Boolean] - Returns true if unit is a player
|
||||
-- guild[String] - Returns guild name of unit is a player
|
||||
--
|
||||
-- Internal functions:
|
||||
-- libunitscan:AddData(db, name, class, level, elite)
|
||||
-- Adds unit data to a given db. Where db should be either "players" or "mobs"
|
||||
-- class[String] - The class of the player
|
||||
-- level[Number] - The level of the player
|
||||
-- guild[String] - The guild name of the player
|
||||
--
|
||||
|
||||
-- return instantly when another libunitscan is already active
|
||||
if pfUI.api.libunitscan then return end
|
||||
|
||||
local units = { players = {}, mobs = {} }
|
||||
local queue = { }
|
||||
local players = {}
|
||||
|
||||
-- Feed (guid, name, classToken) into ClassicAPI's persistent name
|
||||
-- cache when the unit's GUID is resolvable. Roster-style packets
|
||||
@@ -46,28 +35,19 @@ local function RememberByUnit(unit, name, class)
|
||||
C_PlayerCache.RememberPlayer(guid, name, class, UnitRace(unit), UnitSex(unit))
|
||||
end
|
||||
|
||||
function GetUnitInfo(name, active, isPlayer)
|
||||
if isPlayer ~= false and units["players"][name] then
|
||||
local ret = units["players"][name]
|
||||
return ret.class, ret.level, ret.elite, true, ret.guild
|
||||
elseif isPlayer ~= true and units["mobs"][name] then
|
||||
local ret = units["mobs"][name]
|
||||
return ret.class, ret.level, ret.elite, nil, ret.guild
|
||||
elseif active then
|
||||
queue[name] = true
|
||||
libunitscan:Show()
|
||||
function GetUnitInfo(name)
|
||||
local ret = players[name]
|
||||
if ret then
|
||||
return ret.class, ret.level, ret.guild
|
||||
end
|
||||
end
|
||||
|
||||
local function AddData(db, name, class, level, elite, guild)
|
||||
if not name or not db then return end
|
||||
units[db] = units[db] or {}
|
||||
units[db][name] = units[db][name] or {}
|
||||
units[db][name].class = class or units[db][name].class
|
||||
units[db][name].level = level or units[db][name].level
|
||||
units[db][name].elite = elite or units[db][name].elite
|
||||
units[db][name].guild = guild or units[db][name].guild
|
||||
queue[name] = nil
|
||||
local function AddData(name, class, level, guild)
|
||||
if not name then return end
|
||||
players[name] = players[name] or {}
|
||||
players[name].class = class or players[name].class
|
||||
players[name].level = level or players[name].level
|
||||
players[name].guild = guild or players[name].guild
|
||||
end
|
||||
|
||||
local libunitscan = CreateFrame("Frame", "pfUnitScan", UIParent)
|
||||
@@ -85,14 +65,14 @@ libunitscan:SetScript("OnEvent", function()
|
||||
if event == "PLAYER_ENTERING_WORLD" then
|
||||
|
||||
-- load pfUI_playerDB
|
||||
units.players = pfUI_playerDB
|
||||
players = pfUI_playerDB
|
||||
|
||||
-- update own character details
|
||||
local name = UnitName("player")
|
||||
local class = UnitClassBase("player")
|
||||
local level = UnitLevel("player")
|
||||
local guild = GetGuildInfo("player")
|
||||
AddData("players", name, class, level, nil, guild)
|
||||
AddData(name, class, level, guild)
|
||||
RememberByUnit("player", name, class)
|
||||
|
||||
elseif event == "FRIENDLIST_UPDATE" then
|
||||
@@ -100,38 +80,38 @@ libunitscan:SetScript("OnEvent", function()
|
||||
local info = C_FriendList.GetFriendInfoByIndex(i)
|
||||
if info then
|
||||
local level = info.level > 0 and info.level or nil
|
||||
AddData("players", info.name, info.classFilename, level)
|
||||
AddData(info.name, info.classFilename, level)
|
||||
end
|
||||
end
|
||||
|
||||
elseif event == "GUILD_ROSTER_UPDATE" then
|
||||
local name, class, level, _, guild
|
||||
local guild = GetGuildInfo("player")
|
||||
local name, class, level, _
|
||||
for i = 1, GetNumGuildMembers() do
|
||||
name, _, _, level, class = GetGuildRosterInfo(i)
|
||||
guild = GetGuildInfo("player")
|
||||
class = L["class"][class] or nil
|
||||
AddData("players", name, class, level, nil, guild)
|
||||
AddData(name, class, level, guild)
|
||||
end
|
||||
|
||||
elseif event == "RAID_ROSTER_UPDATE" then
|
||||
local name, class, SubGroup, level, unit, _
|
||||
local name, class, level, unit, _
|
||||
for i = 1, GetNumRaidMembers() do
|
||||
unit = "raid" .. i
|
||||
name, _, SubGroup, level, class = GetRaidRosterInfo(i)
|
||||
name, _, _, level, class = GetRaidRosterInfo(i)
|
||||
class = L["class"][class] or nil
|
||||
AddData("players", name, class, level)
|
||||
AddData(name, class, level)
|
||||
RememberByUnit(unit, name, class)
|
||||
end
|
||||
|
||||
elseif event == "PARTY_MEMBERS_CHANGED" then
|
||||
local name, class, level, unit, _, guild
|
||||
local name, class, level, unit, guild
|
||||
for i = 1, GetNumPartyMembers() do
|
||||
unit = "party" .. i
|
||||
class = UnitClassBase(unit)
|
||||
name = UnitName(unit)
|
||||
level = UnitLevel(unit)
|
||||
guild = GetGuildInfo(unit)
|
||||
AddData("players", name, class, level, nil, guild)
|
||||
AddData(name, class, level, guild)
|
||||
RememberByUnit(unit, name, class)
|
||||
end
|
||||
|
||||
@@ -139,7 +119,7 @@ libunitscan:SetScript("OnEvent", function()
|
||||
for i = 1, C_FriendList.GetNumWhoResults() do
|
||||
local info = C_FriendList.GetWhoInfo(i)
|
||||
if info then
|
||||
AddData("players", info.fullName, info.filename, info.level, nil, info.fullGuildName)
|
||||
AddData(info.fullName, info.filename, info.level, info.fullGuildName)
|
||||
end
|
||||
end
|
||||
|
||||
@@ -147,55 +127,16 @@ libunitscan:SetScript("OnEvent", function()
|
||||
local scan = event == "PLAYER_TARGET_CHANGED" and "target"
|
||||
or event == "NAME_PLATE_UNIT_ADDED" and arg1
|
||||
or "mouseover"
|
||||
local name, class, level, elite, guild, _
|
||||
if UnitExists(scan) then
|
||||
if UnitIsPlayer(scan) then
|
||||
class = UnitClassBase(scan)
|
||||
level = UnitLevel(scan)
|
||||
-- UnitLevel returns -1 for unknown levels, don't overwrite known values
|
||||
level = level > 0 and level or nil
|
||||
name = UnitName(scan)
|
||||
guild = GetGuildInfo(scan)
|
||||
AddData("players", name, class, level, nil, guild)
|
||||
RememberByUnit(scan, name, class)
|
||||
else
|
||||
class = UnitClassBase(scan)
|
||||
elite = UnitClassification(scan)
|
||||
level = UnitLevel(scan)
|
||||
-- UnitLevel returns -1 for unknown levels, don't overwrite known values
|
||||
level = level > 0 and level or nil
|
||||
name = UnitName(scan)
|
||||
guild = UnitSubName(scan)
|
||||
AddData("mobs", name, class, level, elite, guild)
|
||||
end
|
||||
if UnitIsPlayer(scan) then
|
||||
local name = UnitName(scan)
|
||||
local class = UnitClassBase(scan)
|
||||
-- UnitLevel returns -1 for unknown levels, don't overwrite known values
|
||||
local level = UnitLevel(scan)
|
||||
level = level > 0 and level or nil
|
||||
AddData(name, class, level, GetGuildInfo(scan))
|
||||
RememberByUnit(scan, name, class)
|
||||
end
|
||||
end
|
||||
end)
|
||||
|
||||
-- setup sound function switches
|
||||
local SoundOn = PlaySound
|
||||
local SoundOff = function() return end
|
||||
|
||||
libunitscan:SetScript("OnUpdate", function()
|
||||
-- don't scan when another unit is in target
|
||||
if UnitExists("target") or UnitName("target") then return end
|
||||
|
||||
local name = next(queue)
|
||||
if name then
|
||||
-- disable sound
|
||||
_G.PlaySound = SoundOff
|
||||
|
||||
-- try to target the unknown unit
|
||||
TargetByName(name, true)
|
||||
ClearTarget()
|
||||
|
||||
-- enable sound again
|
||||
_G.PlaySound = SoundOn
|
||||
|
||||
queue[name] = nil
|
||||
end
|
||||
|
||||
this:Hide()
|
||||
end)
|
||||
|
||||
pfUI.api.libunitscan = libunitscan
|
||||
|
||||
+138
-204
@@ -13,6 +13,12 @@ pfUI:RegisterModule("actionbar", function ()
|
||||
local updatecache = { } -- contains a list of buttons slots that shall be refreshed later -> [slot] = true
|
||||
local buttoncache = { } -- contains a list of all buttons ever created -> [slot] = frame
|
||||
|
||||
-- ClassicAPI's left/right modifier state, which unlike IsShiftKeyDown is
|
||||
-- corrected for keys released while the game was in the background
|
||||
local function ShiftDown() return IsLeftShiftKeyDown() or IsRightShiftKeyDown() end
|
||||
local function CtrlDown() return IsLeftControlKeyDown() or IsRightControlKeyDown() end
|
||||
local function AltDown() return IsLeftAltKeyDown() or IsRightAltKeyDown() end
|
||||
|
||||
-- try to assume based on the current mouse positions if a button drag
|
||||
-- should happen even if action-on-key-down is used. By that replace the
|
||||
-- cast events by reverting the active buttons to the old mouse-up state.
|
||||
@@ -25,13 +31,13 @@ pfUI:RegisterModule("actionbar", function ()
|
||||
-- skip if always shift-drag is not enabled
|
||||
if C.bars.shiftdrag ~= "1" then return end
|
||||
|
||||
if drag_await and not drag_active and IsShiftKeyDown() then
|
||||
if drag_await and not drag_active and ShiftDown() then
|
||||
drag_active = true
|
||||
-- set all buttons to regular on release clicks
|
||||
for id, button in pairs(buttoncache) do
|
||||
button:RegisterForClicks("LeftButtonUp", "RightButtonUp")
|
||||
end
|
||||
elseif drag_active and not IsShiftKeyDown() then
|
||||
elseif drag_active and not ShiftDown() then
|
||||
drag_active = nil
|
||||
-- set all buttons back to their defaults
|
||||
for id, button in pairs(buttoncache) do
|
||||
@@ -39,6 +45,7 @@ pfUI:RegisterModule("actionbar", function ()
|
||||
end
|
||||
end
|
||||
end
|
||||
pfUI.events:RegisterFrameEventAndCallback("MODIFIER_STATE_CHANGED", AssumeButtonDrag)
|
||||
|
||||
-- hide blizzard bars
|
||||
local function kill(f, killshow)
|
||||
@@ -161,113 +168,83 @@ pfUI:RegisterModule("actionbar", function ()
|
||||
[12] = "Pet",
|
||||
}
|
||||
|
||||
-- Button animations scale and fade a copy of the icon through keyframes of
|
||||
-- { duration, scale, alpha, smoothing }. Styles with hideicon hide the icon
|
||||
-- while the copy plays.
|
||||
local button_animations = {
|
||||
["none"] = function()
|
||||
this.active = nil
|
||||
this:Hide()
|
||||
end,
|
||||
["zoomfade"] = function()
|
||||
if this.active == 0 then
|
||||
-- init animation
|
||||
this:SetSize(this.parent:GetSize())
|
||||
this:SetScale(this.parent:GetScale())
|
||||
this.tex:SetTexture(this.parent.icon:GetTexture())
|
||||
this.tex:SetVertexColor(this.parent.icon:GetVertexColor())
|
||||
this:SetAlpha(1)
|
||||
this.active = 1
|
||||
return
|
||||
elseif this.active == 1 then
|
||||
-- run animation
|
||||
local fade = 30/GetFramerate()*0.05
|
||||
this:SetAlpha(this:GetAlpha() - fade)
|
||||
this:SetScale(this:GetScale() + fade)
|
||||
if this:GetAlpha() > 0 then return end
|
||||
end
|
||||
|
||||
-- stop animation
|
||||
this.active = nil
|
||||
this:Hide()
|
||||
end,
|
||||
["shrinkreturn"] = function()
|
||||
if this.active == 0 then
|
||||
-- init animation
|
||||
this:SetSize(this.parent:GetSize())
|
||||
this:SetScale(this.parent:GetScale())
|
||||
this.tex:SetTexture(this.parent.icon:GetTexture())
|
||||
this.tex:SetVertexColor(this.parent.icon:GetVertexColor())
|
||||
this:SetAlpha(1)
|
||||
this.parent.icon:Hide()
|
||||
this.active = 1
|
||||
this.time = 0
|
||||
return
|
||||
elseif this.active == 1 then
|
||||
-- run animation
|
||||
this.time = this.time + 30/GetFramerate()*0.1
|
||||
local fade = 1 -math.exp(-this.time)*math.sin(this.time*math.pi)
|
||||
this:SetAlpha(fade)
|
||||
this:SetScale(fade)
|
||||
if this.time < 1 then return end
|
||||
end
|
||||
|
||||
-- stop animation
|
||||
this.active = nil
|
||||
this:Hide()
|
||||
this.parent.icon:Show()
|
||||
end,
|
||||
["elasticzoom"] = function()
|
||||
if this.active == 0 then
|
||||
-- init animation
|
||||
this:SetSize(this.parent:GetSize())
|
||||
this:SetScale(this.parent:GetScale())
|
||||
this.tex:SetTexture(this.parent.icon:GetTexture())
|
||||
this.tex:SetVertexColor(this.parent.icon:GetVertexColor())
|
||||
this:SetAlpha(1)
|
||||
this.parent.icon:Hide()
|
||||
this.active = 1
|
||||
this.time = 0
|
||||
return
|
||||
elseif this.active == 1 then
|
||||
-- run animation
|
||||
this.time = this.time + 30/GetFramerate()*0.03
|
||||
local fade = 1 -math.exp(-this.time*6)*math.sin(this.time*4*math.pi)
|
||||
this:SetAlpha(fade)
|
||||
this:SetScale(fade)
|
||||
if this.time < 1 then return end
|
||||
end
|
||||
|
||||
-- stop animation
|
||||
this.active = nil
|
||||
this:Hide()
|
||||
this.parent.icon:Show()
|
||||
end,
|
||||
["wobblezoom"] = function()
|
||||
if this.active == 0 then
|
||||
-- init animation
|
||||
this:SetSize(this.parent:GetSize())
|
||||
this:SetScale(this.parent:GetScale())
|
||||
this.tex:SetTexture(this.parent.icon:GetTexture())
|
||||
this.tex:SetVertexColor(this.parent.icon:GetVertexColor())
|
||||
this:SetAlpha(1)
|
||||
this.parent.icon:Hide()
|
||||
this.active = 1
|
||||
this.time = 0
|
||||
return
|
||||
elseif this.active == 1 then
|
||||
-- run animation
|
||||
this.time = this.time + 30/GetFramerate()*0.02
|
||||
local fade = 1 -math.exp(-this.time*6)*math.sin(this.time*10*math.pi)
|
||||
this:SetAlpha(fade)
|
||||
this:SetScale(fade)
|
||||
if this.time < 1 then return end
|
||||
end
|
||||
|
||||
-- stop animation
|
||||
this.active = nil
|
||||
this:Hide()
|
||||
this.parent.icon:Show()
|
||||
end,
|
||||
["zoomfade"] = {
|
||||
{ .67, 2, 0, "NONE" },
|
||||
},
|
||||
["shrinkreturn"] = { hideicon = true,
|
||||
{ .13, .36, .36, "OUT" },
|
||||
{ .2, 1, 1, "IN" },
|
||||
},
|
||||
["elasticzoom"] = { hideicon = true,
|
||||
{ .1, .47, .47, "OUT" },
|
||||
{ .28, 1.12, 1, "IN_OUT" },
|
||||
{ .28, .97, .97, "IN_OUT" },
|
||||
{ .46, 1, 1, "IN_OUT" },
|
||||
},
|
||||
["wobblezoom"] = { hideicon = true,
|
||||
{ .07, .25, .25, "OUT" },
|
||||
{ .17, 1.41, 1, "IN_OUT" },
|
||||
{ .17, .77, .77, "IN_OUT" },
|
||||
{ .17, 1.12, 1, "IN_OUT" },
|
||||
{ .17, .93, .93, "IN_OUT" },
|
||||
{ .17, 1.04, 1, "IN_OUT" },
|
||||
{ .17, .98, .98, "IN_OUT" },
|
||||
{ .59, 1, 1, "IN_OUT" },
|
||||
},
|
||||
}
|
||||
|
||||
local function CreateButtonAnimation(button, style)
|
||||
local group = button.animation.tex:CreateAnimationGroup()
|
||||
group:SetIgnoreFramerateThrottle(true)
|
||||
|
||||
local scale, alpha = 1, 1
|
||||
for order, key in ipairs(style) do
|
||||
local duration, nextscale, nextalpha, smoothing = unpack(key)
|
||||
|
||||
local zoom = group:CreateAnimation("Scale")
|
||||
zoom:SetOrder(order)
|
||||
zoom:SetDuration(duration)
|
||||
zoom:SetSmoothing(smoothing)
|
||||
zoom:SetScale(nextscale / scale, nextscale / scale)
|
||||
|
||||
local fade = group:CreateAnimation("Alpha")
|
||||
fade:SetOrder(order)
|
||||
fade:SetDuration(duration)
|
||||
fade:SetSmoothing(smoothing)
|
||||
fade:SetChange(nextalpha - alpha)
|
||||
|
||||
scale, alpha = nextscale, nextalpha
|
||||
end
|
||||
|
||||
local function Done()
|
||||
button.animation:Hide()
|
||||
button.icon:Show()
|
||||
end
|
||||
group:SetScript("OnFinished", Done)
|
||||
group:SetScript("OnStop", Done)
|
||||
|
||||
return group
|
||||
end
|
||||
|
||||
local function PlayButtonAnimation(button)
|
||||
local style = button_animations[C.bars.animation]
|
||||
if not style then return end
|
||||
|
||||
local animation = button.animation
|
||||
animation.groups[style] = animation.groups[style] or CreateButtonAnimation(button, style)
|
||||
|
||||
animation.tex:StopAnimating()
|
||||
animation.tex:SetTexture(button.icon:GetTexture())
|
||||
animation.tex:SetVertexColor(button.icon:GetVertexColor())
|
||||
animation:Show()
|
||||
if style.hideicon then button.icon:Hide() end
|
||||
animation.groups[style]:Play()
|
||||
end
|
||||
|
||||
local function GetActiveBar()
|
||||
if CURRENT_ACTIONBAR_PAGE == 1 and GetBonusBarOffset() ~= 0 then
|
||||
return NUM_ACTIONBAR_PAGES + GetBonusBarOffset()
|
||||
@@ -310,8 +287,7 @@ pfUI:RegisterModule("actionbar", function ()
|
||||
-- trigger action animation
|
||||
if ( pfUI_config.bars.keydown == "1" and keystate == "down" ) or (pfUI_config.bars.keydown == "0" and keystate == "up" ) or self.bar == 11 or mouse then
|
||||
if C.bars.animmode == "keypress" and ( self:GetAlpha() > .1 or C.bars.animalways == "1" ) then
|
||||
self.animation.active = 0
|
||||
self.animation:Show()
|
||||
PlayButtonAnimation(self)
|
||||
end
|
||||
end
|
||||
|
||||
@@ -364,8 +340,9 @@ pfUI:RegisterModule("actionbar", function ()
|
||||
local function ButtonEnter(self)
|
||||
self = self or this
|
||||
|
||||
-- indicate that dragging could get enabled
|
||||
-- indicate that dragging could get enabled, at once if shift is held
|
||||
drag_await = true
|
||||
AssumeButtonDrag()
|
||||
|
||||
GameTooltip:ClearLines()
|
||||
GameTooltip_SetDefaultAnchor(GameTooltip, self)
|
||||
@@ -382,8 +359,6 @@ pfUI:RegisterModule("actionbar", function ()
|
||||
end
|
||||
elseif self.spellID then
|
||||
GameTooltip:SetSpellByID(self.spellID)
|
||||
elseif self.spellslot and self.booktype then
|
||||
GameTooltip:SetSpell(self.spellslot, self.booktype)
|
||||
else
|
||||
GameTooltip:SetAction(self.id)
|
||||
end
|
||||
@@ -416,11 +391,7 @@ pfUI:RegisterModule("actionbar", function ()
|
||||
end
|
||||
|
||||
-- equipped item
|
||||
if IsEquippedAction(sid) and C.bars.showequipped == "1" then
|
||||
self.equipped:Show()
|
||||
else
|
||||
self.equipped:Hide()
|
||||
end
|
||||
self.equipped:SetShown(IsEquippedAction(sid) and C.bars.showequipped == "1")
|
||||
end
|
||||
|
||||
local start, duration, enable, castable, autocast, token
|
||||
@@ -456,11 +427,6 @@ pfUI:RegisterModule("actionbar", function ()
|
||||
id = self.bar == 1 and self.slot or sid-((self.bar)-1)*12
|
||||
end
|
||||
|
||||
-- overwrite with spell macro texture where possible
|
||||
if self.spellslot and self.booktype then
|
||||
texture = GetSpellTexture(self.spellslot, self.booktype)
|
||||
end
|
||||
|
||||
if not self.showempty and self.backdrop and not texture and grid == 0 then
|
||||
self.backdrop:Hide()
|
||||
self.hide = true
|
||||
@@ -472,8 +438,7 @@ pfUI:RegisterModule("actionbar", function ()
|
||||
-- active border
|
||||
if active then
|
||||
if C.bars.animmode == "statechange" and not self.active:IsShown() then
|
||||
self.animation.active = 0
|
||||
self.animation:Show()
|
||||
PlayButtonAnimation(self)
|
||||
end
|
||||
|
||||
self.backdrop:SetBackdropBorderColor(cr,cg,cb,1)
|
||||
@@ -513,11 +478,7 @@ pfUI:RegisterModule("actionbar", function ()
|
||||
self.autocast:Hide()
|
||||
end
|
||||
|
||||
if castable and C.bars.showcastable == "1" then
|
||||
self.autocastable:Show()
|
||||
else
|
||||
self.autocastable:Hide()
|
||||
end
|
||||
self.autocastable:SetShown(castable and C.bars.showcastable == "1")
|
||||
end
|
||||
|
||||
-- keybinds
|
||||
@@ -590,9 +551,6 @@ pfUI:RegisterModule("actionbar", function ()
|
||||
start, duration, enable = GetShapeshiftFormCooldown(button.id)
|
||||
elseif button.bar == 12 then
|
||||
start, duration, enable = GetPetActionCooldown(button.id)
|
||||
elseif button.spellslot and button.booktype then
|
||||
start, duration = GetSpellCooldown(button.spellslot, button.booktype)
|
||||
enable = 1
|
||||
else
|
||||
start, duration, enable = GetActionCooldown(button.id)
|
||||
end
|
||||
@@ -694,9 +652,6 @@ pfUI:RegisterModule("actionbar", function ()
|
||||
if (this.tick_main or 0) > GetTime() then return end
|
||||
this.tick_main = GetTime() + 0.025
|
||||
|
||||
-- update buttons whenever a button drag is assumed
|
||||
AssumeButtonDrag()
|
||||
|
||||
if pfUI.unlock then
|
||||
-- update all bars when entering unlock
|
||||
if pfUI.unlock:IsShown() ~= unlock then
|
||||
@@ -901,14 +856,9 @@ pfUI:RegisterModule("actionbar", function ()
|
||||
if class == "DRUID" then
|
||||
pageswitch:RegisterUnitEvent("UNIT_SPELLCAST_SUCCEEDED", "player")
|
||||
end
|
||||
pageswitch:SetScript("OnEvent", function()
|
||||
if event == "PLAYER_LOGOUT" then
|
||||
this:UnregisterAllEvents()
|
||||
this:SetScript("OnEvent", nil)
|
||||
this:SetScript("OnUpdate", nil)
|
||||
return
|
||||
end
|
||||
|
||||
-- tracks prowl and shadowform from the page switch frame's events
|
||||
local function UpdateFormPaging()
|
||||
if class == "PRIEST" then
|
||||
if event == "UPDATE_SHAPESHIFT_FORM" or event == "PLAYER_ENTERING_WORLD" then
|
||||
formpaging = InShadowform()
|
||||
@@ -956,33 +906,50 @@ pfUI:RegisterModule("actionbar", function ()
|
||||
formpaging = nil
|
||||
end
|
||||
end
|
||||
end)
|
||||
end
|
||||
|
||||
-- sets the page the held modifier and the form ask for. It also runs on
|
||||
-- every page change, so a page switched by other means snaps back.
|
||||
local function UpdatePage()
|
||||
local page = _G.CURRENT_ACTIONBAR_PAGE
|
||||
|
||||
pageswitch:SetScript("OnUpdate", function()
|
||||
-- switch actionbar page depending on meta key that is pressed
|
||||
if C.bars.pagemastershift == "1" and IsShiftKeyDown() then
|
||||
SwitchBar(shift)
|
||||
return
|
||||
elseif C.bars.pagemasterctrl == "1" and IsControlKeyDown() then
|
||||
SwitchBar(ctrl)
|
||||
return
|
||||
elseif C.bars.pagemasteralt == "1" and IsAltKeyDown() then
|
||||
SwitchBar(alt)
|
||||
return
|
||||
if C.bars.pagemastershift == "1" and ShiftDown() then
|
||||
page = shift
|
||||
elseif C.bars.pagemasterctrl == "1" and CtrlDown() then
|
||||
page = ctrl
|
||||
elseif C.bars.pagemasteralt == "1" and AltDown() then
|
||||
page = alt
|
||||
elseif C.bars.pagemasteralt == "1" or C.bars.pagemasterctrl == "1" or C.bars.pagemastershift == "1" then
|
||||
SwitchBar(default)
|
||||
page = default
|
||||
end
|
||||
|
||||
-- switch actionbar page while druid stealth / priest shadowform is active
|
||||
if (class == "DRUID" and C.bars.druidstealth == "1")
|
||||
or (class == "PRIEST" and C.bars.priestshadow == "1") then
|
||||
if formpaging and _G.CURRENT_ACTIONBAR_PAGE == 1 then
|
||||
SwitchBar(formpage)
|
||||
elseif not formpaging and _G.CURRENT_ACTIONBAR_PAGE == 8 then
|
||||
SwitchBar(default)
|
||||
if formpaging and page == default then
|
||||
page = formpage
|
||||
elseif not formpaging and page == formpage then
|
||||
page = default
|
||||
end
|
||||
end
|
||||
|
||||
SwitchBar(page)
|
||||
end
|
||||
|
||||
pageswitch:SetScript("OnEvent", function()
|
||||
if event == "PLAYER_LOGOUT" then
|
||||
this:UnregisterAllEvents()
|
||||
this:SetScript("OnEvent", nil)
|
||||
return
|
||||
end
|
||||
|
||||
UpdateFormPaging()
|
||||
UpdatePage()
|
||||
end)
|
||||
|
||||
pfUI.events:RegisterFrameEventAndCallback("MODIFIER_STATE_CHANGED", UpdatePage)
|
||||
pfUI.events:RegisterFrameEventAndCallback("ACTIONBAR_PAGE_CHANGED", UpdatePage)
|
||||
end
|
||||
|
||||
local function CreateActionButton(parent, bar, button)
|
||||
@@ -1000,8 +967,6 @@ pfUI:RegisterModule("actionbar", function ()
|
||||
local bind_size = tonumber(C.bars.bind_size)
|
||||
local bind_color = { GetStringColor(C.bars.bind_color) }
|
||||
|
||||
local cd_size = tonumber(C.bars.cd_size)
|
||||
|
||||
local showempty = C.bars["bar"..bar].showempty
|
||||
local showmacro = C.bars["bar"..bar].showmacro
|
||||
local showkybind = C.bars["bar"..bar].showkeybind
|
||||
@@ -1011,7 +976,6 @@ pfUI:RegisterModule("actionbar", function ()
|
||||
if macro_size == 0 then macro_size = 1 end
|
||||
if count_size == 0 then macro_size = 1 end
|
||||
if bind_size == 0 then macro_size = 1 end
|
||||
if cd_size == 0 then cd_size = nil end
|
||||
|
||||
local button_name = "pfActionBar" .. barnames[bar] .. "Button" .. button
|
||||
|
||||
@@ -1043,10 +1007,7 @@ pfUI:RegisterModule("actionbar", function ()
|
||||
f.slot = id
|
||||
|
||||
-- cooldown
|
||||
f.cd = CreateFrame("Cooldown", f:GetName() .. "Cooldown", f, "CooldownFrameTemplate")
|
||||
f.cd.pfCooldownStyleAnimation = 1
|
||||
f.cd.pfCooldownType = "NOGCD"
|
||||
f.cd.pfCooldownSize = cd_size
|
||||
f.cd = CreateCooldown(f, "actionbar", f:GetName() .. "Cooldown")
|
||||
|
||||
-- icon
|
||||
f.icon = f:CreateTexture(button_name .. "Icon", "BACKGROUND")
|
||||
@@ -1055,8 +1016,8 @@ pfUI:RegisterModule("actionbar", function ()
|
||||
|
||||
-- animation
|
||||
f.animation = CreateFrame("Frame", button_name .. "Animation", f)
|
||||
f.animation.parent = f
|
||||
f.animation:SetPoint("CENTER", 0, 0)
|
||||
f.animation.groups = {}
|
||||
f.animation:SetAllPoints()
|
||||
f.animation:Hide()
|
||||
f.animation.tex = f.animation:CreateTexture(button_name .. "AnimationTexture", "BACKGROUND")
|
||||
f.animation.tex:SetTexCoord(.08, .92, .08, .92)
|
||||
@@ -1115,9 +1076,6 @@ pfUI:RegisterModule("actionbar", function ()
|
||||
f:RegisterForClicks("LeftButtonUp", "RightButtonUp")
|
||||
end
|
||||
|
||||
-- set animation
|
||||
f.animation:SetScript("OnUpdate", button_animations[C.bars.animation])
|
||||
|
||||
-- pet autocast
|
||||
if bar == 12 then
|
||||
f.autocast:SetScale(C.bars["bar"..bar].icon_size / 25)
|
||||
@@ -1125,7 +1083,7 @@ pfUI:RegisterModule("actionbar", function ()
|
||||
end
|
||||
|
||||
-- macro options
|
||||
if showmacro == "1" then f.macro:Show() else f.macro:Hide() end
|
||||
f.macro:SetShown(showmacro == "1")
|
||||
SetAllPointsOffset(f.macro, f, font_offset, -font_offset)
|
||||
f.macro:SetFont(font, macro_size, "OUTLINE")
|
||||
f.macro:SetTextColor(unpack(macro_color))
|
||||
@@ -1133,7 +1091,7 @@ pfUI:RegisterModule("actionbar", function ()
|
||||
f.macro:SetJustifyV("BOTTOM")
|
||||
|
||||
-- keybind options
|
||||
if showkybind == "1" then f.keybind:Show() else f.keybind:Hide() end
|
||||
f.keybind:SetShown(showkybind == "1")
|
||||
SetAllPointsOffset(f.keybind, f, font_offset, -font_offset)
|
||||
f.keybind:SetFont(font, bind_size, "OUTLINE")
|
||||
f.keybind:SetTextColor(unpack(bind_color))
|
||||
@@ -1142,15 +1100,13 @@ pfUI:RegisterModule("actionbar", function ()
|
||||
f.keybind:SetNonSpaceWrap(false)
|
||||
|
||||
-- item count options
|
||||
if showcount == "1" then f.count:Show() else f.count:Hide() end
|
||||
f.count:SetShown(showcount == "1")
|
||||
SetAllPointsOffset(f.count, f, font_offset, -font_offset)
|
||||
f.count:SetFont(font, count_size, "OUTLINE")
|
||||
f.count:SetTextColor(unpack(count_color))
|
||||
f.count:SetJustifyH("RIGHT")
|
||||
f.count:SetJustifyV("BOTTOM")
|
||||
|
||||
f.scanmacro, f.spellslot, f.booktype = nil, nil, nil
|
||||
|
||||
-- range glow color
|
||||
f.rangeColor = GetStringColorObject(C.bars.rangecolor)
|
||||
|
||||
@@ -1162,7 +1118,7 @@ pfUI:RegisterModule("actionbar", function ()
|
||||
|
||||
-- equipped color
|
||||
if f.equipped then
|
||||
f.equipped:SetTexture(GetStringColor(C.bars.eqcolor))
|
||||
f.equipped:SetColorTexture(GetStringColor(C.bars.eqcolor))
|
||||
end
|
||||
|
||||
-- general appearance
|
||||
@@ -1217,8 +1173,7 @@ pfUI:RegisterModule("actionbar", function ()
|
||||
end
|
||||
|
||||
-- the stored layout is invalid, temporary fallback
|
||||
local _, _, fcols, frows = string.find(tostring(formfactor or ""), "(%d+)%s*x%s*(%d+)")
|
||||
if not ((fcols and frows) or pfGridmath[buttons][BarLayoutFormfactor(formfactor)]) then
|
||||
if not fcols2 or not frows2 then
|
||||
formfactor = BarLayoutOptions(buttons)[1]
|
||||
end
|
||||
|
||||
@@ -1244,11 +1199,7 @@ pfUI:RegisterModule("actionbar", function ()
|
||||
-- handle pet bar
|
||||
if i == 12 then
|
||||
-- only show when pet actions exists
|
||||
if PetHasActionBar() or pfUI.unlock and pfUI.unlock:IsShown() then
|
||||
bars[i]:Show()
|
||||
else
|
||||
bars[i]:Hide()
|
||||
end
|
||||
bars[i]:SetShown(PetHasActionBar() or pfUI.unlock and pfUI.unlock:IsShown())
|
||||
|
||||
-- show/hide petbar on petbar updates
|
||||
if init then
|
||||
@@ -1268,11 +1219,7 @@ pfUI:RegisterModule("actionbar", function ()
|
||||
-- handle shapeshift bar
|
||||
elseif i == 11 then
|
||||
-- only show when shapeshifts exist
|
||||
if GetNumShapeshiftForms() > 0 then
|
||||
bars[i]:Show()
|
||||
else
|
||||
bars[i]:Hide()
|
||||
end
|
||||
bars[i]:SetShown(GetNumShapeshiftForms() > 0)
|
||||
|
||||
-- update shapeshift bar when amount of spells changes
|
||||
if init then
|
||||
@@ -1514,23 +1461,10 @@ pfUI:RegisterModule("actionbar", function ()
|
||||
_G.ShapeshiftBar_ChangeForm = function(slot) pfActionButton(slot, nil, "ShapeShiftBar") end
|
||||
|
||||
-- handle drag-drop grid
|
||||
local grid = CreateFrame("Frame")
|
||||
grid:RegisterEvent("ACTIONBAR_SHOWGRID")
|
||||
grid:RegisterEvent("ACTIONBAR_HIDEGRID")
|
||||
grid:RegisterEvent("PET_BAR_SHOWGRID")
|
||||
grid:RegisterEvent("PET_BAR_HIDEGRID")
|
||||
|
||||
grid:SetScript("OnEvent", function()
|
||||
if event == "ACTIONBAR_SHOWGRID" then
|
||||
pfUI.bars:UpdateGrid(1)
|
||||
elseif event == "ACTIONBAR_HIDEGRID" then
|
||||
pfUI.bars:UpdateGrid(0)
|
||||
elseif event == "PET_BAR_SHOWGRID" then
|
||||
pfUI.bars:UpdateGrid(1, "PET")
|
||||
elseif event == "PET_BAR_HIDEGRID" then
|
||||
pfUI.bars:UpdateGrid(0, "PET")
|
||||
end
|
||||
end)
|
||||
pfUI.events:RegisterFrameEventAndCallback("ACTIONBAR_SHOWGRID", function() pfUI.bars:UpdateGrid(1) end)
|
||||
pfUI.events:RegisterFrameEventAndCallback("ACTIONBAR_HIDEGRID", function() pfUI.bars:UpdateGrid(0) end)
|
||||
pfUI.events:RegisterFrameEventAndCallback("PET_BAR_SHOWGRID", function() pfUI.bars:UpdateGrid(1, "PET") end)
|
||||
pfUI.events:RegisterFrameEventAndCallback("PET_BAR_HIDEGRID", function() pfUI.bars:UpdateGrid(0, "PET") end)
|
||||
|
||||
-- reagent counter
|
||||
if C.bars.reagents == "1" then
|
||||
|
||||
@@ -402,11 +402,7 @@ pfUI:RegisterModule("addonbuttons", function ()
|
||||
-- rescan before deciding whether the panel should be shown by default
|
||||
pfUI.addonbuttons:ProcessButtons()
|
||||
|
||||
if C.abuttons.showdefault == "1" and GetNumButtons() > 0 then
|
||||
pfUI.addonbuttons:Show()
|
||||
else
|
||||
pfUI.addonbuttons:Hide()
|
||||
end
|
||||
pfUI.addonbuttons:SetShown(C.abuttons.showdefault == "1" and GetNumButtons() > 0)
|
||||
|
||||
-- apply workarounds
|
||||
for k, v in pairs(pfUI.addonbuttons.overrides) do
|
||||
|
||||
@@ -128,7 +128,7 @@ pfUI:RegisterModule("addoncompat", function ()
|
||||
{T["Yes"], function()
|
||||
ReloadUI()
|
||||
end},
|
||||
{T["No"], function() end},
|
||||
{T["No"], nop},
|
||||
nil)
|
||||
end
|
||||
end
|
||||
|
||||
+121
-165
@@ -69,17 +69,53 @@ pfUI:RegisterModule("addons", function ()
|
||||
pfUI.addons:Hide()
|
||||
end)
|
||||
|
||||
-- installed addons, one entry per row of the addon list
|
||||
local addons = {}
|
||||
for i = 1, GetNumAddOns() do
|
||||
local name, title, notes = GetAddOnInfo(i)
|
||||
addons[i] = {
|
||||
index = i,
|
||||
name = name,
|
||||
title = title,
|
||||
notes = notes,
|
||||
author = GetAddOnMetadata(name, "Author"),
|
||||
version = GetAddOnMetadata(name, "Version"),
|
||||
deps = { GetAddOnDependencies(i) }, -- required (.toc Dependencies)
|
||||
optdeps = { C_AddOns.GetAddOnOptionalDependencies(i) }, -- optional (.toc OptionalDeps)
|
||||
}
|
||||
end
|
||||
|
||||
local function IsAddonEnabled(index)
|
||||
local _, _, _, enabled = GetAddOnInfo(index)
|
||||
return enabled
|
||||
end
|
||||
|
||||
local function SetAddonEnabled(index, enabled)
|
||||
if enabled then
|
||||
EnableAddOn(index)
|
||||
else
|
||||
DisableAddOn(index)
|
||||
end
|
||||
pfUI.addons.hasChanged = true
|
||||
end
|
||||
|
||||
-- addons profile
|
||||
local function GetSelectedAddonsList()
|
||||
local selected_addons = {}
|
||||
for i, frame in ipairs(pfUI.addons.list) do
|
||||
if frame.input:GetChecked() then
|
||||
table.insert(selected_addons, frame.aname)
|
||||
for i, addon in ipairs(addons) do
|
||||
if IsAddonEnabled(i) then
|
||||
table.insert(selected_addons, addon.name)
|
||||
end
|
||||
end
|
||||
return selected_addons
|
||||
end
|
||||
|
||||
local selectedProfile
|
||||
|
||||
local function IsSelectedProfile(profile)
|
||||
return profile == selectedProfile
|
||||
end
|
||||
|
||||
local function SetAddonProfile(profile)
|
||||
-- create new profile if not existing
|
||||
if not pfUI_addon_profiles[profile] then
|
||||
@@ -87,31 +123,24 @@ pfUI:RegisterModule("addons", function ()
|
||||
end
|
||||
|
||||
-- set dropdown to profile
|
||||
pfUI.addons.profile.dropdown:SetSelectionByText(profile)
|
||||
selectedProfile = profile
|
||||
pfUI.addons.profile.dropdown:GenerateMenu()
|
||||
|
||||
-- load profile
|
||||
local selected_list = pfUI_addon_profiles[profile]
|
||||
for i=1, GetNumAddOns() do
|
||||
local active = false
|
||||
local f = pfUI.addons.list[i]
|
||||
local selected = {}
|
||||
for _, name in ipairs(pfUI_addon_profiles[profile]) do
|
||||
selected[name] = true
|
||||
end
|
||||
|
||||
for i_i, n in ipairs(selected_list) do
|
||||
if f.aname == n then
|
||||
active = true
|
||||
break
|
||||
end
|
||||
end
|
||||
|
||||
if active then
|
||||
if not f.input:GetChecked() then
|
||||
f.input:Click()
|
||||
end
|
||||
else
|
||||
if f.input:GetChecked() then
|
||||
f.input:Click()
|
||||
end
|
||||
for i, addon in ipairs(addons) do
|
||||
if selected[addon.name] and not IsAddonEnabled(i) then
|
||||
SetAddonEnabled(i, true)
|
||||
elseif not selected[addon.name] and IsAddonEnabled(i) then
|
||||
SetAddonEnabled(i, false)
|
||||
end
|
||||
end
|
||||
|
||||
pfUI.addons.list.ScrollBox:ReinitializeFrames()
|
||||
end
|
||||
|
||||
-- addon profiles
|
||||
@@ -141,7 +170,7 @@ pfUI:RegisterModule("addons", function ()
|
||||
pfUI.addons.profile.del:SetText("-")
|
||||
pfUI.addons.profile.del:SetTextColor(1,.5,.5,1)
|
||||
pfUI.addons.profile.del:SetScript("OnClick", function() -- TODO
|
||||
local id, name = pfUI.addons.profile.dropdown:GetSelection()
|
||||
local name = selectedProfile
|
||||
if not name then return end
|
||||
CreateQuestionDialog(T["Delete profile"] .. " '|cff33ffcc" .. name .. "|r'?", function()
|
||||
pfUI_addon_profiles[name] = nil
|
||||
@@ -171,45 +200,15 @@ pfUI:RegisterModule("addons", function ()
|
||||
end)
|
||||
|
||||
-- addon profile: dropdown
|
||||
pfUI.addons.profile.dropdown = CreateDropDownButton("pfAddonListProfileList", pfUI.addons.profile)
|
||||
pfUI.addons.profile.dropdown:SetBackdrop(nil)
|
||||
pfUI.addons.profile.dropdown:ClearAllPoints()
|
||||
pfUI.addons.profile.dropdown = CreateFrame("DropdownButton", nil, pfUI.addons.profile, "pfUIDropdownTemplate")
|
||||
pfUI.addons.profile.dropdown:SetPoint("RIGHT", pfUI.addons.profile.add, "LEFT", -2, 0)
|
||||
pfUI.addons.profile.dropdown:SetWidth(220)
|
||||
pfUI.addons.profile.dropdown:SetMenu(function()
|
||||
local menu = {}
|
||||
|
||||
for name, list in pairs(pfUI_addon_profiles) do
|
||||
local name = name
|
||||
local entry = {}
|
||||
entry.text = name
|
||||
entry.checked = false
|
||||
entry.func = function()
|
||||
SetAddonProfile(name)
|
||||
end
|
||||
table.insert(menu, entry)
|
||||
pfUI.addons.profile.dropdown:SetupMenu(function(dropdown, rootDescription)
|
||||
for name in pairs(pfUI_addon_profiles) do
|
||||
rootDescription:CreateRadio(name, IsSelectedProfile, SetAddonProfile, name)
|
||||
end
|
||||
|
||||
return menu
|
||||
end)
|
||||
|
||||
-- addon list: scroll frame
|
||||
pfUI.addons.scroll = CreateScrollFrame("pfAddonListScroll", pfUI.addons)
|
||||
pfUI.addons.scroll:SetSize(360, 410)
|
||||
pfUI.addons.scroll:SetPoint("BOTTOM", 0, 10)
|
||||
|
||||
pfUI.addons.scroll.backdrop = CreateFrame("Frame", nil, pfUI.addons.scroll)
|
||||
pfUI.addons.scroll.backdrop:SetFrameLevel(1)
|
||||
pfUI.addons.scroll.backdrop:SetPoint("TOPLEFT", pfUI.addons.scroll, "TOPLEFT", -5, 5)
|
||||
pfUI.addons.scroll.backdrop:SetPoint("BOTTOMRIGHT", pfUI.addons.scroll, "BOTTOMRIGHT", 5, -5)
|
||||
CreateBackdrop(pfUI.addons.scroll.backdrop, nil, true)
|
||||
|
||||
-- addon list: scroll parent
|
||||
pfUI.addons.list = CreateScrollChild("pfAddonList", pfUI.addons.scroll)
|
||||
pfUI.addons.list:RegisterEvent("ADDON_LOADED")
|
||||
pfUI.addons.list:RegisterEvent("PLAYER_ENTERING_WORLD")
|
||||
pfUI.addons.list:SetHeight(GetNumAddOns() * 25 + 26)
|
||||
|
||||
local function AddDependencyLines(header, deps)
|
||||
if not deps or table.getn(deps) == 0 then return end
|
||||
GameTooltip:AddLine(" ")
|
||||
@@ -225,137 +224,94 @@ pfUI:RegisterModule("addons", function ()
|
||||
end
|
||||
end
|
||||
|
||||
local function AddonOnEnter()
|
||||
this:SetBackdropBorderColor(1,1,1,.08)
|
||||
local function RowOnEnter(self)
|
||||
local addon = self.addon
|
||||
self:SetBackdropBorderColor(1,1,1,.08)
|
||||
|
||||
GameTooltip:SetOwner(this, "ANCHOR_RIGHT")
|
||||
GameTooltip:SetText(this.atitle)
|
||||
if this.aversion then
|
||||
GameTooltip:AddDoubleLine(T["Version"], this.aversion, 1,1,1, .2,1,.8)
|
||||
GameTooltip:SetOwner(self, "ANCHOR_RIGHT")
|
||||
GameTooltip:SetText(addon.title)
|
||||
if addon.version then
|
||||
GameTooltip:AddDoubleLine(T["Version"], addon.version, 1,1,1, .2,1,.8)
|
||||
end
|
||||
|
||||
if this.aauthor then
|
||||
GameTooltip:AddDoubleLine(T["Author"], this.aauthor, 1,1,1, .2,1,.8)
|
||||
if addon.author then
|
||||
GameTooltip:AddDoubleLine(T["Author"], addon.author, 1,1,1, .2,1,.8)
|
||||
end
|
||||
|
||||
GameTooltip:AddLine(this.anote, .75,.75,.75,1)
|
||||
AddDependencyLines(T["Dependencies"], this.adeps)
|
||||
AddDependencyLines(T["Optional Dependencies"], this.aoptdeps)
|
||||
GameTooltip:AddLine(addon.notes, .75,.75,.75,1)
|
||||
AddDependencyLines(T["Dependencies"], addon.deps)
|
||||
AddDependencyLines(T["Optional Dependencies"], addon.optdeps)
|
||||
GameTooltip:SetWidth(180)
|
||||
GameTooltip:Show()
|
||||
end
|
||||
|
||||
local function AddonOnLeave()
|
||||
this:SetBackdropBorderColor(1,1,1,.04)
|
||||
local function RowOnLeave(self)
|
||||
self:SetBackdropBorderColor(1,1,1,.04)
|
||||
GameTooltip:Hide()
|
||||
end
|
||||
|
||||
local function AddonOnClick()
|
||||
this.input:Click()
|
||||
local function RowOnClick(self)
|
||||
self.input:Click()
|
||||
end
|
||||
|
||||
local function InputOnClick()
|
||||
if this:GetChecked() then
|
||||
EnableAddOn(this:GetID())
|
||||
else
|
||||
DisableAddOn(this:GetID())
|
||||
end
|
||||
pfUI.addons.hasChanged = true
|
||||
local function InputOnClick(self)
|
||||
SetAddonEnabled(self:GetParent().addon.index, self:GetChecked())
|
||||
|
||||
local id, name = pfUI.addons.profile.dropdown:GetSelection()
|
||||
name = name or T["Current"]
|
||||
pfUI_addon_profiles[name] = GetSelectedAddonsList()
|
||||
pfUI_addon_profiles[selectedProfile or T["Current"]] = GetSelectedAddonsList()
|
||||
end
|
||||
|
||||
pfUI.addons.list:SetScript("OnEvent", function()
|
||||
for i=1, GetNumAddOns() do
|
||||
local aname, atitle, anote = GetAddOnInfo(i)
|
||||
local aauthor = GetAddOnMetadata(aname, "Author")
|
||||
local aversion = GetAddOnMetadata(aname, "Version")
|
||||
local function InitRow(row, addon)
|
||||
-- one-time setup of a pooled row
|
||||
if not row.input then
|
||||
row:SetBackdrop(pfUI.backdrop_hover)
|
||||
row:SetBackdropBorderColor(1,1,1,.04)
|
||||
|
||||
-- basic frame
|
||||
if not pfUI.addons.list[i] then
|
||||
pfUI.addons.list[i] = CreateFrame("Button", nil, pfUI.addons.list)
|
||||
local frame = pfUI.addons.list[i]
|
||||
frame.aname = aname
|
||||
frame.atitle = atitle
|
||||
frame.anote = anote
|
||||
frame.aauthor = aauthor
|
||||
frame.aversion = aversion
|
||||
frame.adeps = { GetAddOnDependencies(i) } -- required (.toc Dependencies)
|
||||
frame.aoptdeps = { C_AddOns.GetAddOnOptionalDependencies(i) } -- optional (.toc OptionalDeps)
|
||||
row:EnableMouse(true)
|
||||
row:SetScript("OnEnter", RowOnEnter)
|
||||
row:SetScript("OnLeave", RowOnLeave)
|
||||
row:SetScript("OnClick", RowOnClick)
|
||||
|
||||
frame:SetSize(340, 25)
|
||||
frame:SetPoint("TOPLEFT", 5, i * -25 + 20)
|
||||
-- caption
|
||||
row.caption = row:CreateFontString(nil, "LOW", "GameFontNormal")
|
||||
row.caption:SetFont(pfUI.font_default, C.global.font_size + 2, "OUTLINE")
|
||||
row.caption:SetPoint("LEFT", row, "LEFT", 2, 0)
|
||||
row.caption:SetFontObject(GameFontWhite)
|
||||
row.caption:SetJustifyH("LEFT")
|
||||
|
||||
frame:SetBackdrop(pfUI.backdrop_hover)
|
||||
frame:SetBackdropBorderColor(1,1,1,.04)
|
||||
|
||||
frame:EnableMouse(1)
|
||||
frame:SetScript("OnEnter", AddonOnEnter)
|
||||
frame:SetScript("OnLeave", AddonOnLeave)
|
||||
frame:SetScript("OnClick", AddonOnClick)
|
||||
|
||||
-- caption
|
||||
frame.caption = frame:CreateFontString("Status", "LOW", "GameFontNormal")
|
||||
frame.caption:SetFont(pfUI.font_default, C.global.font_size + 2, "OUTLINE")
|
||||
frame.caption:SetPoint("LEFT", frame, "LEFT", 2, 0)
|
||||
frame.caption:SetFontObject(GameFontWhite)
|
||||
frame.caption:SetJustifyH("LEFT")
|
||||
frame.caption:SetText(atitle)
|
||||
|
||||
-- input field
|
||||
frame.input = CreateFrame("CheckButton", nil, frame, "UICheckButtonTemplate")
|
||||
frame.input:SetFrameLevel(3)
|
||||
frame.input:SetNormalTexture("")
|
||||
frame.input:SetPushedTexture("")
|
||||
frame.input:SetHighlightTexture("")
|
||||
CreateBackdrop(frame.input, nil, true)
|
||||
frame.input:SetBackdropBorderColor(.3,.3,.3,1)
|
||||
frame.input:SetWidth(14)
|
||||
frame.input:SetHeight(14)
|
||||
frame.input:SetPoint("RIGHT" , -5, 1)
|
||||
frame.input:SetID(i)
|
||||
frame.input:SetScript("OnClick", InputOnClick)
|
||||
end
|
||||
|
||||
if IsAddOnLoaded(i) then
|
||||
pfUI.addons.list[i].input:SetChecked()
|
||||
pfUI.addons.list[i].caption:SetAlpha(1)
|
||||
else
|
||||
pfUI.addons.list[i].caption:SetAlpha(.5)
|
||||
end
|
||||
-- input field
|
||||
row.input = CreateFrame("CheckButton", nil, row, "UICheckButtonTemplate")
|
||||
row.input:SetNormalTexture("")
|
||||
row.input:SetPushedTexture("")
|
||||
row.input:SetHighlightTexture("")
|
||||
CreateBackdrop(row.input, nil, true)
|
||||
row.input:SetBackdropBorderColor(.3,.3,.3,1)
|
||||
row.input:SetSize(14, 14)
|
||||
row.input:SetPoint("RIGHT" , -5, 1)
|
||||
row.input:SetScript("OnClick", InputOnClick)
|
||||
end
|
||||
end)
|
||||
|
||||
-- show only frames in visible range
|
||||
function pfUI.addons.scroll:ShowVisibleRange()
|
||||
local top_index, bottom_index, range
|
||||
range = floor(pfUI.addons.scroll:GetHeight() / 25) + 1
|
||||
top_index = floor(pfUI.addons.scroll:GetVerticalScroll() / 25) > 0 and floor(pfUI.addons.scroll:GetVerticalScroll() / 25) or 1
|
||||
bottom_index = top_index + range
|
||||
for i=1, GetNumAddOns() do
|
||||
if i >= top_index and i <= bottom_index then
|
||||
pfUI.addons.list[i]:Show()
|
||||
else
|
||||
pfUI.addons.list[i]:Hide()
|
||||
end
|
||||
end
|
||||
row.addon = addon
|
||||
row.caption:SetText(addon.title)
|
||||
row.caption:SetAlpha(IsAddOnLoaded(addon.index) and 1 or .5)
|
||||
row.input:SetChecked(IsAddonEnabled(addon.index))
|
||||
end
|
||||
|
||||
pfUI.addons.scroll.slider:SetScript("OnValueChanged", function()
|
||||
this:GetParent():SetVerticalScroll(this:GetValue())
|
||||
end)
|
||||
pfUI.addons.scroll:SetScript("OnScrollRangeChanged", function()
|
||||
this.slider:SetMinMaxValues(1, floor(this:GetVerticalScrollRange() + 25))
|
||||
end)
|
||||
pfUI.addons.scroll:SetScript("OnShow", function()
|
||||
this.slider:SetValue(floor(this:GetVerticalScroll()))
|
||||
pfUI.addons.scroll:ShowVisibleRange()
|
||||
end)
|
||||
pfUI.addons.scroll:SetScript("OnVerticalScroll", function()
|
||||
pfUI.addons.scroll:ShowVisibleRange()
|
||||
this.slider:SetValue(floor(this:GetVerticalScroll()))
|
||||
-- addon list: a ScrollBox keeps rows only for the addons in view
|
||||
pfUI.addons.list = CreateFrame("Frame", "pfAddonList", pfUI.addons, "pfUIScrollBoxListTemplate")
|
||||
pfUI.addons.list:SetSize(370, 420)
|
||||
pfUI.addons.list:SetPoint("BOTTOM", 0, 5)
|
||||
CreateBackdrop(pfUI.addons.list, nil, true)
|
||||
|
||||
local view = CreateScrollBoxListLinearView(5, 5, 5, 8)
|
||||
view:SetElementExtent(25)
|
||||
view:SetElementInitializer("Button", InitRow)
|
||||
ScrollUtil.InitScrollBoxListWithScrollBar(pfUI.addons.list.ScrollBox, pfUI.addons.list.ScrollBar, view)
|
||||
pfUI.addons.list.ScrollBox:SetDataProvider(CreateDataProvider(addons))
|
||||
|
||||
-- a load-on-demand addon that loads brightens its row
|
||||
pfUI.addons.list:RegisterEvent("ADDON_LOADED")
|
||||
pfUI.addons.list:SetScript("OnEvent", function(self)
|
||||
self.ScrollBox:ReinitializeFrames()
|
||||
end)
|
||||
|
||||
end)
|
||||
|
||||
+17
-19
@@ -16,33 +16,33 @@ pfUI:RegisterModule("afkcam", function ()
|
||||
overlay.top:SetPoint("TOPLEFT", overlay, "TOPLEFT")
|
||||
overlay.top:SetPoint("TOPRIGHT", overlay, "TOPRIGHT")
|
||||
overlay.top:SetHeight(100)
|
||||
overlay.top:SetTexture(1,1,1,1)
|
||||
overlay.top:SetColorTexture(1,1,1,1)
|
||||
overlay.top:SetGradientAlpha("VERTICAL", 0,0,0,0, 0,0,0,1)
|
||||
|
||||
overlay.bottom = overlay:CreateTexture("pfAFKGradientTop", "BACKGROUND")
|
||||
overlay.bottom:SetPoint("BOTTOMLEFT", overlay, "BOTTOMLEFT")
|
||||
overlay.bottom:SetPoint("BOTTOMRIGHT", overlay, "BOTTOMRIGHT")
|
||||
overlay.bottom:SetHeight(100)
|
||||
overlay.bottom:SetTexture(1,1,1,1)
|
||||
overlay.bottom:SetColorTexture(1,1,1,1)
|
||||
overlay.bottom:SetGradientAlpha("VERTICAL", 0,0,0,1, 0,0,0,0)
|
||||
|
||||
overlay:SetFrameStrata("DIALOG")
|
||||
overlay:SetAllPoints(WorldFrame)
|
||||
|
||||
overlay:SetScript("OnMouseUp",function()
|
||||
SendChatMessage("","AFK")
|
||||
this._parent:stop()
|
||||
end)
|
||||
-- /afk toggles, so send it only while AFK is still set: once the client
|
||||
-- or the server has cleared it, /afk would set it again
|
||||
local function Wake()
|
||||
if IsChatAFK() then SendChatMessage("", "AFK") end
|
||||
afkcam:stop()
|
||||
end
|
||||
overlay:SetScript("OnMouseUp", Wake)
|
||||
overlay:SetScript("OnShow", function()
|
||||
this:EnableKeyboard(true)
|
||||
end)
|
||||
overlay:SetScript("OnHide", function()
|
||||
this:EnableKeyboard(false)
|
||||
end)
|
||||
overlay:SetScript("OnKeyUp",function()
|
||||
SendChatMessage("","AFK")
|
||||
this._parent:stop()
|
||||
end)
|
||||
overlay:SetScript("OnKeyUp", Wake)
|
||||
overlay:Hide()
|
||||
|
||||
local chat = CreateFrame("ScrollingMessageFrame", "pfAFKCamChat", overlay)
|
||||
@@ -59,7 +59,10 @@ pfUI:RegisterModule("afkcam", function ()
|
||||
if not this:IsVisible() then return end
|
||||
local info = _G.ChatTypeInfo[string.gsub(event,"CHAT_MSG_","")]
|
||||
if not info then return end
|
||||
local class = GetUnitInfo(arg2 or "")
|
||||
-- the engine name-queries a chat sender before the event fires, so the
|
||||
-- sender's GUID (arg12) always resolves
|
||||
local _, class
|
||||
if arg12 and arg12 ~= "" then _, class = GetPlayerInfoByGUID(arg12) end
|
||||
local author, msg
|
||||
if class and class ~= UNKNOWN then
|
||||
local class_color = PFUI_CLASS_COLORS[class]:GenerateHexColorMarkup()
|
||||
@@ -74,15 +77,10 @@ pfUI:RegisterModule("afkcam", function ()
|
||||
chat:RegisterEvent(ctype)
|
||||
end
|
||||
chat:SetScript("OnMouseWheel",function()
|
||||
if arg1 > 0 then
|
||||
this:ScrollUp()
|
||||
else
|
||||
this:ScrollDown()
|
||||
end
|
||||
this:ScrollByAmount(arg1)
|
||||
end)
|
||||
overlay.chat = chat
|
||||
|
||||
overlay._parent = afkcam
|
||||
afkcam.overlay = overlay
|
||||
|
||||
local clock = CreateFrame("Frame", "pfAFKClock", overlay)
|
||||
@@ -166,9 +164,9 @@ pfUI:RegisterModule("afkcam", function ()
|
||||
if event == "PLAYER_FLAGS_CHANGED" then
|
||||
if UnitIsAFK('player') then
|
||||
delay:Show()
|
||||
elseif delay:IsVisible() then
|
||||
else
|
||||
delay:Hide()
|
||||
this:stop()
|
||||
if this._spinning then this:stop() end
|
||||
end
|
||||
else
|
||||
if this._spinning then
|
||||
|
||||
@@ -57,7 +57,7 @@ pfUI:RegisterModule("autovendor", function ()
|
||||
-- Setup Autosell button
|
||||
autovendor.button = CreateFrame("Button", "pfMerchantAutoVendorButton", MerchantFrame)
|
||||
autovendor.button:SetSize(36, 36)
|
||||
autovendor.button.icon = autovendor.button:CreateTexture("ARTWORK")
|
||||
autovendor.button.icon = autovendor.button:CreateTexture(nil, "ARTWORK")
|
||||
autovendor.button.icon:SetTexture("Interface\\Icons\\Spell_Shadow_SacrificialShield")
|
||||
autovendor.button:SetScript("OnEnter", function()
|
||||
GameTooltip:SetOwner(this, "ANCHOR_RIGHT")
|
||||
@@ -86,11 +86,7 @@ pfUI:RegisterModule("autovendor", function ()
|
||||
if not pfMerchantFrame_Update then
|
||||
local pfMerchantFrame_Update = MerchantFrame_Update
|
||||
function _G.MerchantFrame_Update()
|
||||
if MerchantFrame.selectedTab == 1 and C["global"]["autosell"] ~= "1" then
|
||||
autovendor.button:Show()
|
||||
else
|
||||
autovendor.button:Hide()
|
||||
end
|
||||
autovendor.button:SetShown(MerchantFrame.selectedTab == 1 and C["global"]["autosell"] ~= "1")
|
||||
pfMerchantFrame_Update()
|
||||
end
|
||||
end
|
||||
|
||||
+48
-103
@@ -6,8 +6,6 @@ pfUI:RegisterModule("bags", function ()
|
||||
[1804] = {frame="picklock"},
|
||||
}
|
||||
|
||||
local scanner = libtipscan:GetScanner("input_search")
|
||||
|
||||
local function BagSortOpts()
|
||||
return {
|
||||
reverse = C.appearance.bags.sortreverse == "1",
|
||||
@@ -42,11 +40,7 @@ pfUI:RegisterModule("bags", function ()
|
||||
|
||||
-- overwrite some bag functions
|
||||
function _G.OpenAllBags()
|
||||
if pfUI.bag.right:IsShown() then
|
||||
pfUI.bag.right:Hide()
|
||||
else
|
||||
pfUI.bag.right:Show()
|
||||
end
|
||||
pfUI.bag.right:SetShown(not pfUI.bag.right:IsShown())
|
||||
end
|
||||
|
||||
function _G.CloseAllBags()
|
||||
@@ -54,11 +48,7 @@ pfUI:RegisterModule("bags", function ()
|
||||
end
|
||||
|
||||
function _G.ToggleBackpack()
|
||||
if pfUI.bag.right:IsShown() then
|
||||
pfUI.bag.right:Hide()
|
||||
else
|
||||
pfUI.bag.right:Show()
|
||||
end
|
||||
pfUI.bag.right:SetShown(not pfUI.bag.right:IsShown())
|
||||
end
|
||||
|
||||
function _G.OpenBackpack()
|
||||
@@ -95,6 +85,7 @@ pfUI:RegisterModule("bags", function ()
|
||||
pfUI.bag:RegisterEvent("ITEM_LOCK_CHANGED")
|
||||
pfUI.bag:RegisterEvent("SPELLS_CHANGED")
|
||||
pfUI.bag:RegisterEvent("MERCHANT_CLOSED")
|
||||
pfUI.bag:RegisterEvent("INVENTORY_SEARCH_UPDATE")
|
||||
|
||||
pfUI.bag.delay = { UpdateBag = {} }
|
||||
|
||||
@@ -122,6 +113,11 @@ pfUI:RegisterModule("bags", function ()
|
||||
pfUI.bag:UpdateItemLock()
|
||||
end
|
||||
|
||||
if this.delay.UpdateSearch then
|
||||
this.delay.UpdateSearch = nil
|
||||
pfUI.bag:UpdateSearch()
|
||||
end
|
||||
|
||||
for bag in pairs(this.delay.UpdateBag) do
|
||||
this.delay.UpdateBag[bag] = nil
|
||||
pfUI.bag:UpdateBag(bag)
|
||||
@@ -159,6 +155,10 @@ pfUI:RegisterModule("bags", function ()
|
||||
this.delay.UpdateItemLock = true
|
||||
end
|
||||
|
||||
if event == "INVENTORY_SEARCH_UPDATE" then
|
||||
this.delay.UpdateSearch = true
|
||||
end
|
||||
|
||||
if event == "PLAYERBANKSLOTS_CHANGED" then
|
||||
this.delay.UpdateBag[-1] = true
|
||||
end
|
||||
@@ -377,6 +377,21 @@ pfUI:RegisterModule("bags", function ()
|
||||
end
|
||||
end
|
||||
|
||||
-- dim the slots that the bag search (C_Container.SetItemSearch) filters out
|
||||
local searchInfo = {}
|
||||
function pfUI.bag:UpdateSlotSearch(bag, slot)
|
||||
local info = C_Container.GetContainerItemInfo(bag, slot, searchInfo)
|
||||
pfUI.bags[bag].slots[slot].frame:SetAlpha(info and info.isFiltered and .25 or 1)
|
||||
end
|
||||
|
||||
function pfUI.bag:UpdateSearch()
|
||||
for bag = -2, 11 do
|
||||
for slot in ipairs(pfUI.bags[bag].slots) do
|
||||
pfUI.bag:UpdateSlotSearch(bag, slot)
|
||||
end
|
||||
end
|
||||
end
|
||||
|
||||
function pfUI.bag:UpdateSlot(bag, slot)
|
||||
if not pfUI.bags[bag] then return end
|
||||
|
||||
@@ -392,28 +407,26 @@ pfUI:RegisterModule("bags", function ()
|
||||
pfUI.bags[bag].slots[slot].slot = slot
|
||||
pfUI.bags[bag].slots[slot].frame:SetID(slot)
|
||||
|
||||
-- add cooldown frame to bankslots
|
||||
if tpl == "BankItemButtonGenericTemplate" then
|
||||
local bankslot = pfUI.bags[bag].slots[slot].frame
|
||||
local name = "pfBag" .. bag .. "item" .. slot .. "Cooldown"
|
||||
bankslot.cd = CreateFrame("Cooldown", name, bankslot, "CooldownFrameTemplate")
|
||||
bankslot.cd.pfCooldownStyleAnimation = 1
|
||||
bankslot.cd.pfCooldownType = "NOGCD"
|
||||
else
|
||||
local bagslot = pfUI.bags[bag].slots[slot].frame
|
||||
bagslot.cd = _G[bagslot:GetName().."Cooldown"]
|
||||
bagslot.cd.pfCooldownType = "NOGCD"
|
||||
end
|
||||
-- native cooldown frame: the bank template has none and the bag
|
||||
-- template's is 1.12's indicator Model, which can't reverse.
|
||||
-- ContainerFrame_UpdateCooldown reads the "<button>Cooldown" global.
|
||||
-- 1.12 binds a frame's name only while that global is unset, so the
|
||||
-- global is rebound by hand; the Model starts hidden and nothing
|
||||
-- reaches it after that
|
||||
local slotframe = pfUI.bags[bag].slots[slot].frame
|
||||
local cdname = slotframe:GetName() .. "Cooldown"
|
||||
slotframe.cd = CreateCooldown(slotframe, "bags", cdname)
|
||||
_G[cdname] = slotframe.cd
|
||||
|
||||
if not pfUI.bags[bag].slots[slot].frame.backdrop then
|
||||
CreateBackdrop(pfUI.bags[bag].slots[slot].frame, default_border)
|
||||
end
|
||||
|
||||
local highlight = pfUI.bags[bag].slots[slot].frame:GetHighlightTexture()
|
||||
highlight:SetTexture(.5, .5, .5, .5)
|
||||
highlight:SetColorTexture(.5, .5, .5, .5)
|
||||
|
||||
local pushed = pfUI.bags[bag].slots[slot].frame:GetPushedTexture()
|
||||
pushed:SetTexture(.5, .5, .5, .5)
|
||||
pushed:SetColorTexture(.5, .5, .5, .5)
|
||||
|
||||
local questText = pfUI.bags[bag].slots[slot].frame.qtext
|
||||
questText:SetFont(pfUI.font_default, 13, "THICKOUTLINE")
|
||||
@@ -463,6 +476,7 @@ pfUI:RegisterModule("bags", function ()
|
||||
SetItemButtonTexture(pfUI.bags[bag].slots[slot].frame, texture)
|
||||
SetItemButtonCount(pfUI.bags[bag].slots[slot].frame, count)
|
||||
SetItemButtonDesaturated(pfUI.bags[bag].slots[slot].frame, locked, 0.5, 0.5, 0.5)
|
||||
pfUI.bag:UpdateSlotSearch(bag, slot)
|
||||
|
||||
local hasItem = texture and 1 or nil
|
||||
pfUI.bags[bag].slots[slot].frame.hasItem = hasItem
|
||||
@@ -558,10 +572,10 @@ pfUI:RegisterModule("bags", function ()
|
||||
border:SetTexture("")
|
||||
|
||||
local highlight = frame.bagslots.slots[slot].frame:GetHighlightTexture()
|
||||
highlight:SetTexture(.5, .5, .5, .5)
|
||||
highlight:SetColorTexture(.5, .5, .5, .5)
|
||||
|
||||
local pushed = frame.bagslots.slots[slot].frame:GetPushedTexture()
|
||||
pushed:SetTexture(.5, .5, .5, .5)
|
||||
pushed:SetColorTexture(.5, .5, .5, .5)
|
||||
|
||||
if frame == pfUI.bag.left then
|
||||
frame.bagslots.slots[slot].frame:SetID(slot + 4)
|
||||
@@ -571,31 +585,16 @@ pfUI:RegisterModule("bags", function ()
|
||||
frame.bagslots.slots[slot].slot = slot
|
||||
end
|
||||
|
||||
local SlotEnter = frame.bagslots.slots[slot].frame:GetScript("OnEnter")
|
||||
frame.bagslots.slots[slot].frame:SetScript("OnEnter", function()
|
||||
frame.bagslots.slots[slot].frame:HookScript("OnEnter", function()
|
||||
for slot, f in ipairs(pfUI.bags[this.slot + 1].slots) do
|
||||
CreateBackdrop(f.frame, default_border)
|
||||
f.frame.backdrop:SetBackdropBorderColor(.2,1,.8,1)
|
||||
end
|
||||
SlotEnter(this)
|
||||
end)
|
||||
|
||||
local SlotLeave = frame.bagslots.slots[slot].frame:GetScript("OnLeave")
|
||||
frame.bagslots.slots[slot].frame:SetScript("OnLeave", function()
|
||||
frame.bagslots.slots[slot].frame:HookScript("OnLeave", function()
|
||||
pfUI.bag:UpdateBag(this.slot + 1)
|
||||
SlotLeave()
|
||||
end)
|
||||
|
||||
-- On TBC, the OnEvent function of the template scans for framenames,
|
||||
-- and obviously doesn't know the pf-Names. Therefore, triggering
|
||||
-- the update function on each frame manually
|
||||
if frame == pfUI.bag.left and BankFrameItemButton_Update then
|
||||
local SlotUpdate = frame.bagslots.slots[slot].frame:GetScript("OnUpdate")
|
||||
frame.bagslots.slots[slot].frame:SetScript("OnUpdate", function()
|
||||
if SlotUpdate then SlotUpdate(this) end
|
||||
BankFrameItemButton_Update(this)
|
||||
end)
|
||||
end
|
||||
end
|
||||
|
||||
local left = (slot-min)*(frame.button_size/5*4+default_border*2) + default_border
|
||||
@@ -1008,7 +1007,6 @@ pfUI:RegisterModule("bags", function ()
|
||||
-- bag search
|
||||
if not frame.search then
|
||||
frame.search = CreateFrame("Frame", "pfBagSearch", frame)
|
||||
frame.search.db = {}
|
||||
frame.search:SetHeight(12)
|
||||
frame.search:SetPoint("TOPLEFT", frame, "TOPLEFT", default_border, -default_border)
|
||||
frame.search:SetPoint("TOPRIGHT", frame.sort, "TOPLEFT", -default_border*3, -default_border)
|
||||
@@ -1033,51 +1031,12 @@ pfUI:RegisterModule("bags", function ()
|
||||
|
||||
frame.search.edit:SetScript("OnEditFocusLost", function()
|
||||
this:SetText(T["Search"])
|
||||
for bag=-2, 11 do
|
||||
local bagsize = GetContainerNumSlots(bag)
|
||||
if bag == -2 and pfUI.bag.showKeyring == true then bagsize = GetKeyRingSize() end
|
||||
for slot=1, bagsize do
|
||||
pfUI.bags[bag].slots[slot].frame:SetAlpha(1)
|
||||
end
|
||||
end
|
||||
C_Container.SetItemSearch("")
|
||||
end)
|
||||
|
||||
frame.search.edit:SetScript("OnTextChanged", function()
|
||||
if this:GetText() == T["Search"] then return end
|
||||
for bag=-2, 11 do
|
||||
local bagsize = GetContainerNumSlots(bag)
|
||||
if bag == -2 and pfUI.bag.showKeyring == true then bagsize = GetKeyRingSize() end
|
||||
for slot=1, bagsize do
|
||||
pfUI.bags[bag].slots[slot].frame:SetAlpha(.25)
|
||||
local texture, itemCount, locked, quality, readable = GetContainerItemInfo(bag, slot)
|
||||
if itemCount then
|
||||
local itemLink = GetContainerItemLink(bag, slot)
|
||||
local itemstring = string.sub(itemLink, string.find(itemLink, "%[")+1, string.find(itemLink, "%]")-1)
|
||||
|
||||
if C.appearance.bags.fulltext == "1" then
|
||||
if not frame.search.db[itemLink] then
|
||||
scanner:SetBagItem(bag, slot)
|
||||
local text = scanner:Text()
|
||||
|
||||
local str = ""
|
||||
for k, v in pairs(text) do
|
||||
str = str .. (v[1] or "") .. (v[2] or "")
|
||||
end
|
||||
|
||||
frame.search.db[itemLink] = strlower(str)
|
||||
end
|
||||
|
||||
if strfind(frame.search.db[itemLink], strlower(this:GetText()), 1, true) then
|
||||
pfUI.bags[bag].slots[slot].frame:SetAlpha(1)
|
||||
end
|
||||
end
|
||||
|
||||
if strfind(strlower(itemstring), strlower(this:GetText()), 1, true) then
|
||||
pfUI.bags[bag].slots[slot].frame:SetAlpha(1)
|
||||
end
|
||||
end
|
||||
end
|
||||
end
|
||||
C_Container.SetItemSearch(this:GetText())
|
||||
end)
|
||||
|
||||
frame.search:SetScript("OnLeave", function()
|
||||
@@ -1092,17 +1051,7 @@ pfUI:RegisterModule("bags", function ()
|
||||
|
||||
frame.search:SetScript("OnHide", function()
|
||||
frame.search.edit:SetText(T["Search"])
|
||||
for bag = -2, 11 do
|
||||
if pfUI.bags[bag] then
|
||||
local bagsize = GetContainerNumSlots(bag)
|
||||
if bag == -2 and pfUI.bag.showKeyring == true then bagsize = GetKeyRingSize() end
|
||||
for slot = 1, bagsize do
|
||||
if pfUI.bags[bag] and pfUI.bags[bag].slots[slot] then
|
||||
pfUI.bags[bag].slots[slot].frame:SetAlpha(1)
|
||||
end
|
||||
end
|
||||
end
|
||||
end
|
||||
C_Container.SetItemSearch("")
|
||||
end)
|
||||
end
|
||||
else
|
||||
@@ -1165,11 +1114,7 @@ pfUI:RegisterModule("bags", function ()
|
||||
end)
|
||||
|
||||
frame.bags:SetScript("OnClick", function()
|
||||
if pfUI.bag.left.bagslots:IsShown() then
|
||||
pfUI.bag.left.bagslots:Hide()
|
||||
else
|
||||
pfUI.bag.left.bagslots:Show()
|
||||
end
|
||||
pfUI.bag.left.bagslots:SetShown(not pfUI.bag.left.bagslots:IsShown())
|
||||
end)
|
||||
end
|
||||
|
||||
|
||||
+6
-7
@@ -2,7 +2,7 @@ pfUI:RegisterModule("bubbles", function ()
|
||||
|
||||
local alpha = tonumber(C.chat.bubbles.alpha)
|
||||
|
||||
pfUI.bubbles = CreateFrame("Frame", "pfChatBubbles", UIParent)
|
||||
pfUI.bubbles = Mixin(CreateFrame("Frame", "pfChatBubbles", UIParent), DirtiableMixin)
|
||||
pfUI.bubbles:RegisterEvent("CHAT_MSG_SAY")
|
||||
pfUI.bubbles:RegisterEvent("CHAT_MSG_YELL")
|
||||
pfUI.bubbles:RegisterEvent("CHAT_MSG_PARTY")
|
||||
@@ -11,12 +11,6 @@ pfUI:RegisterModule("bubbles", function ()
|
||||
pfUI.bubbles:RegisterEvent("CHAT_MSG_MONSTER_YELL")
|
||||
pfUI.bubbles:RegisterEvent("CHAT_MSG_MONSTER_PARTY")
|
||||
|
||||
pfUI.bubbles:SetScript("OnEvent", function()
|
||||
-- Bubble frames are attached to WorldFrame after the chat event fires,
|
||||
-- so wait one tick before scanning.
|
||||
RunNextFrame(function() pfUI.bubbles:ScanBubbles() end)
|
||||
end)
|
||||
|
||||
function pfUI.bubbles:ProcessBubble(f)
|
||||
f.text:Hide()
|
||||
f.text:SetFont(pfUI.font_default, tonumber(C.global.font_size) * UIParent:GetScale(), "OUTLINE")
|
||||
@@ -62,4 +56,9 @@ pfUI:RegisterModule("bubbles", function ()
|
||||
end
|
||||
end
|
||||
end
|
||||
|
||||
-- Bubble frames are attached to WorldFrame after the chat event fires, so
|
||||
-- the scan waits a frame, and runs once for all of that frame's messages.
|
||||
pfUI.bubbles:SetDirtyMethod(pfUI.bubbles.ScanBubbles)
|
||||
pfUI.bubbles:SetScript("OnEvent", pfUI.bubbles.MarkDirty)
|
||||
end)
|
||||
|
||||
+73
-73
@@ -16,6 +16,25 @@ pfUI:RegisterModule("buff", function ()
|
||||
ScanAuraSlots("player", "HARMFUL", harmfulSlots, 16)
|
||||
end
|
||||
|
||||
-- weapon enchants report only their time left, and no event as their
|
||||
-- charges and time run down, so the OnUpdate below refreshes their buttons
|
||||
-- too: the charges, and the timer when the enchant was renewed
|
||||
local function RefreshWeaponButton(buff, timeleft, charges)
|
||||
timeleft = (timeleft or 0) / 1000
|
||||
charges = charges or 0
|
||||
buff.stacks:SetText(charges > 1 and charges or "")
|
||||
|
||||
local expires = GetTime() + timeleft
|
||||
if timeleft <= 0 then
|
||||
buff.cd:Clear()
|
||||
buff.cdExpires = nil
|
||||
elseif not buff.cdExpires or abs(buff.cdExpires - expires) > 1 then
|
||||
SetCooldownTimeLeft(buff.cd, timeleft)
|
||||
buff.cdExpires = expires
|
||||
end
|
||||
buff.cdStart = nil
|
||||
end
|
||||
|
||||
local function RefreshBuffButton(buff)
|
||||
if buff.btype == "HELPFUL" then
|
||||
if C.buffs.separateweapons == "1" then
|
||||
@@ -33,7 +52,7 @@ pfUI:RegisterModule("buff", function ()
|
||||
end
|
||||
|
||||
local slots = buff.btype == "HELPFUL" and helpfulSlots or harmfulSlots
|
||||
local name, icon, count, dispelType, _, expirationTime, _, _, _, spellId = C_UnitAuras.UnitAuraBySlot("player", slots[buff.id])
|
||||
local name, icon, count, dispelType, duration, expirationTime, _, _, _, spellId = C_UnitAuras.UnitAuraBySlot("player", slots[buff.id])
|
||||
|
||||
--detect weapon buffs
|
||||
if buff.btype == "HELPFUL" and ((C.buffs.separateweapons == "0" and buff.gid <= pfUI.buff.wepbuffs.count) or (pfUI.buff.wepbuffs.count > 0 and buff.weapon ~= nil)) then
|
||||
@@ -57,21 +76,22 @@ pfUI:RegisterModule("buff", function ()
|
||||
end
|
||||
end
|
||||
|
||||
-- Set Weapon Texture and Border
|
||||
-- Set Weapon Texture, Border and Timer
|
||||
if buff.mode == "MAINHAND" then
|
||||
buff.texture:SetTexture(GetInventoryItemTexture("player", 16))
|
||||
buff.backdrop:SetBackdropBorderColor(GetItemQualityColor(GetInventoryItemQuality("player", 16) or 1))
|
||||
RefreshWeaponButton(buff, mhtime, mhcharge)
|
||||
elseif buff.mode == "OFFHAND" then
|
||||
buff.texture:SetTexture(GetInventoryItemTexture("player", 17))
|
||||
buff.backdrop:SetBackdropBorderColor(GetItemQualityColor(GetInventoryItemQuality("player", 17) or 1))
|
||||
RefreshWeaponButton(buff, ohtime, ohcharge)
|
||||
end
|
||||
elseif name and (( buff.btype == "HARMFUL" and C.buffs.debuffs == "1" ) or ( buff.btype == "HELPFUL" and C.buffs.buffs == "1" )) then
|
||||
-- Set Buff Texture and Border
|
||||
buff.mode = buff.btype
|
||||
buff.expirationTime = expirationTime
|
||||
buff.stackCount = count
|
||||
buff.spellId = spellId
|
||||
buff.texture:SetTexture(icon)
|
||||
buff.stacks:SetText((count or 0) > 1 and count or "")
|
||||
|
||||
if buff.btype == "HARMFUL" then
|
||||
local dispelColor = C_UnitAuras.GetAuraDispelTypeColor(dispelType)
|
||||
@@ -79,6 +99,18 @@ pfUI:RegisterModule("buff", function ()
|
||||
else
|
||||
buff.backdrop:SetBackdropBorderColor(br,bg,bb,ba)
|
||||
end
|
||||
|
||||
-- start the timer from the aura's duration; permanent auras have none
|
||||
local start, dur = GetAuraTimer(duration, expirationTime)
|
||||
if dur <= 0 then
|
||||
buff.cd:Clear()
|
||||
buff.cdStart = nil
|
||||
elseif buff.cdStart == nil or abs(buff.cdStart - start) > .5 or buff.cdDuration ~= dur then
|
||||
CooldownFrame_SetTimer(buff.cd, start, dur, 1)
|
||||
buff.cdStart = start
|
||||
buff.cdDuration = dur
|
||||
end
|
||||
buff.cdExpires = nil
|
||||
else
|
||||
buff:Hide()
|
||||
return
|
||||
@@ -106,17 +138,24 @@ pfUI:RegisterModule("buff", function ()
|
||||
buff.texture:SetTexCoord(.07,.93,.07,.93)
|
||||
buff.texture:SetAllPoints(buff)
|
||||
|
||||
buff.timer = buff:CreateFontString(nil, "OVERLAY", "GameFontNormal")
|
||||
buff.timer:SetTextColor(1,1,1,1)
|
||||
buff.timer:SetJustifyH("CENTER")
|
||||
buff.timer:SetJustifyV("CENTER")
|
||||
-- overlay lifts the stacks above the sweep: a child frame renders above
|
||||
-- all of its parent's own regions, so they would dim under the dark
|
||||
-- wedge otherwise
|
||||
buff.overlay = CreateFrame("Frame", nil, buff)
|
||||
buff.overlay:SetAllPoints(buff)
|
||||
|
||||
buff.stacks = buff:CreateFontString(nil, "OVERLAY", "GameFontNormal")
|
||||
buff.stacks = buff.overlay:CreateFontString(nil, "OVERLAY", "GameFontNormal")
|
||||
buff.stacks:SetTextColor(1,1,1,1)
|
||||
buff.stacks:SetJustifyH("RIGHT")
|
||||
buff.stacks:SetJustifyV("BOTTOM")
|
||||
buff.stacks:SetAllPoints(buff)
|
||||
|
||||
-- the sweep and the duration numbers (the template covers the button and
|
||||
-- starts hidden); RefreshBuffButton starts its timer
|
||||
buff.cd = CreateCooldown(buff, "buff", buttonName .. "Cooldown")
|
||||
buff.cd:SetFrameLevel(buff:GetFrameLevel() + 1)
|
||||
buff.overlay:SetFrameLevel(buff:GetFrameLevel() + 2)
|
||||
|
||||
buff:RegisterForClicks("RightButtonUp")
|
||||
|
||||
buff.weapon = weapon
|
||||
@@ -193,66 +232,24 @@ pfUI:RegisterModule("buff", function ()
|
||||
end
|
||||
end)
|
||||
|
||||
-- PERF: Consolidated OnUpdate handler for all buff timers
|
||||
-- This replaces 50 individual OnUpdate handlers with a single one
|
||||
-- the buttons that can show a weapon enchant: the first two buffs, or the
|
||||
-- separate weapon buttons
|
||||
local weaponButtons
|
||||
|
||||
-- weapon enchants, see RefreshWeaponButton
|
||||
pfUI.buff:SetScript("OnUpdate", function()
|
||||
local now = GetTime()
|
||||
if not this.nextUpdate then this.nextUpdate = now + 0.1 end
|
||||
if this.nextUpdate > now then return end
|
||||
this.nextUpdate = now + 0.1
|
||||
|
||||
-- Cache weapon enchant info once per update cycle
|
||||
local mh, mhtime, mhcharge, oh, ohtime, ohcharge = GetWeaponEnchantInfo()
|
||||
|
||||
-- Update all visible buff buttons
|
||||
local buttons = pfUI.buff.buffs.buttons
|
||||
for i = 1, 32 do
|
||||
local buff = buttons[i]
|
||||
local _, mhtime, mhcharge, _, ohtime, ohcharge = GetWeaponEnchantInfo()
|
||||
for _, buff in ipairs(weaponButtons) do
|
||||
if buff:IsShown() then
|
||||
local timeleft, stacks = 0, 0
|
||||
if buff.mode == buff.btype then
|
||||
timeleft = buff.expirationTime > 0 and (buff.expirationTime - now) or 0
|
||||
stacks = buff.stackCount or 0
|
||||
elseif buff.mode == "MAINHAND" then
|
||||
timeleft = mhtime and mhtime / 1000 or 0
|
||||
stacks = mhcharge or 0
|
||||
if buff.mode == "MAINHAND" then
|
||||
RefreshWeaponButton(buff, mhtime, mhcharge)
|
||||
elseif buff.mode == "OFFHAND" then
|
||||
timeleft = ohtime and ohtime / 1000 or 0
|
||||
stacks = ohcharge or 0
|
||||
end
|
||||
buff.timer:SetText(timeleft > 0 and GetColoredTimeString(timeleft) or "")
|
||||
buff.stacks:SetText(stacks > 1 and stacks or "")
|
||||
end
|
||||
end
|
||||
|
||||
-- Update all visible debuff buttons
|
||||
buttons = pfUI.buff.debuffs.buttons
|
||||
for i = 1, 16 do
|
||||
local buff = buttons[i]
|
||||
if buff:IsShown() then
|
||||
local timeleft = buff.expirationTime > 0 and (buff.expirationTime - now) or 0
|
||||
local stacks = buff.stackCount or 0
|
||||
buff.timer:SetText(timeleft > 0 and GetColoredTimeString(timeleft) or "")
|
||||
buff.stacks:SetText(stacks > 1 and stacks or "")
|
||||
end
|
||||
end
|
||||
|
||||
-- Update weapon buff buttons if separate
|
||||
if C.buffs.separateweapons == "1" then
|
||||
buttons = pfUI.buff.wepbuffs.buttons
|
||||
for i = 1, 2 do
|
||||
local buff = buttons[i]
|
||||
if buff:IsShown() then
|
||||
local timeleft, stacks = 0, 0
|
||||
if buff.mode == "MAINHAND" then
|
||||
timeleft = mhtime and mhtime / 1000 or 0
|
||||
stacks = mhcharge or 0
|
||||
elseif buff.mode == "OFFHAND" then
|
||||
timeleft = ohtime and ohtime / 1000 or 0
|
||||
stacks = ohcharge or 0
|
||||
end
|
||||
buff.timer:SetText(timeleft > 0 and GetColoredTimeString(timeleft) or "")
|
||||
buff.stacks:SetText(stacks > 1 and stacks or "")
|
||||
RefreshWeaponButton(buff, ohtime, ohcharge)
|
||||
end
|
||||
end
|
||||
end
|
||||
@@ -283,52 +280,55 @@ pfUI:RegisterModule("buff", function ()
|
||||
pfUI.buff.debuffs.buttons[i] = CreateBuffButton(i, "HARMFUL")
|
||||
end
|
||||
|
||||
weaponButtons = {
|
||||
pfUI.buff.buffs.buttons[1], pfUI.buff.buffs.buttons[2],
|
||||
pfUI.buff.wepbuffs.buttons[1], pfUI.buff.wepbuffs.buttons[2],
|
||||
}
|
||||
|
||||
-- config loading
|
||||
function pfUI.buff:UpdateConfigBuffButton(buff)
|
||||
local fontsize = C.buffs.fontsize == "-1" and C.global.font_size or C.buffs.fontsize
|
||||
local buffSize, buffSpacing = tonumber(C.buffs.size), tonumber(C.buffs.spacing)
|
||||
local rowextra = C.buffs.textinside == "1" and 0 or GetCooldownFontSize(buffSize) * 1.5
|
||||
local rowcount, relFrame, offsetX, offsetY
|
||||
if buff.btype == "HELPFUL" then
|
||||
if buff.weapon == 1 and C.buffs.separateweapons == "1" then
|
||||
rowcount = floor((buff.gid-1) / tonumber(C.buffs.wepbuffrowsize))
|
||||
relFrame = pfUI.buff.wepbuffs
|
||||
offsetX = -(buff.gid-1-rowcount*tonumber(C.buffs.wepbuffrowsize))*(buffSize+2*buffSpacing)
|
||||
offsetY = -(rowcount) * ((C.buffs.textinside == "1" and 0 or (fontsize*1.5))+buffSize+2*buffSpacing)
|
||||
offsetY = -(rowcount) * (rowextra+buffSize+2*buffSpacing)
|
||||
else
|
||||
rowcount = floor((buff.gid-1) / tonumber(C.buffs.buffrowsize))
|
||||
relFrame = pfUI.buff.buffs
|
||||
offsetX = -(buff.gid-1-rowcount*tonumber(C.buffs.buffrowsize))*(buffSize+2*buffSpacing)
|
||||
offsetY = -(rowcount) * ((C.buffs.textinside == "1" and 0 or (fontsize*1.5))+buffSize+2*buffSpacing)
|
||||
offsetY = -(rowcount) * (rowextra+buffSize+2*buffSpacing)
|
||||
end
|
||||
else
|
||||
rowcount = floor((buff.gid-1) / tonumber(C.buffs.debuffrowsize))
|
||||
relFrame = pfUI.buff.debuffs
|
||||
offsetX = -(buff.gid-1-rowcount*tonumber(C.buffs.debuffrowsize))*(buffSize+2*buffSpacing)
|
||||
offsetY = -(rowcount) * ((C.buffs.textinside == "1" and 0 or (fontsize*1.5))+buffSize+2*buffSpacing)
|
||||
offsetY = -(rowcount) * (rowextra+buffSize+2*buffSpacing)
|
||||
end
|
||||
buff:SetSize(buffSize, buffSize)
|
||||
buff:ClearAllPoints()
|
||||
buff:SetPoint("TOPRIGHT", relFrame, "TOPRIGHT",offsetX, offsetY)
|
||||
|
||||
buff.timer:SetFont(pfUI.font_default, fontsize, "OUTLINE")
|
||||
buff.stacks:SetFont(pfUI.font_default, fontsize+1, "OUTLINE")
|
||||
|
||||
buff.timer:SetHeight(fontsize * 1.3)
|
||||
|
||||
buff.timer:ClearAllPoints()
|
||||
-- the duration numbers sit inside the icon or below it
|
||||
local countdown = buff.cd:GetCountdownFontString()
|
||||
countdown:ClearAllPoints()
|
||||
if C.buffs.textinside == "1" then
|
||||
buff.timer:SetAllPoints(buff)
|
||||
countdown:SetPoint("CENTER", buff, "CENTER", 0, 0)
|
||||
else
|
||||
buff.timer:SetPoint("TOP", buff, "BOTTOM", 0, -3)
|
||||
countdown:SetPoint("TOP", buff, "BOTTOM", 0, -3)
|
||||
end
|
||||
end
|
||||
|
||||
function pfUI.buff:UpdateConfig()
|
||||
local fontsize = C.buffs.fontsize == "-1" and C.global.font_size or C.buffs.fontsize
|
||||
|
||||
local spacing = tonumber(C.buffs.spacing)
|
||||
local cell = tonumber(C.buffs.size) + 2 * spacing
|
||||
local rowextra = C.buffs.textinside == "1" and 0 or (fontsize * 1.5)
|
||||
local rowextra = C.buffs.textinside == "1" and 0 or GetCooldownFontSize(tonumber(C.buffs.size)) * 1.5
|
||||
|
||||
local function SizeBuffFrame(frame, rowsize, count)
|
||||
rowsize = tonumber(rowsize)
|
||||
|
||||
+38
-9
@@ -103,6 +103,7 @@ pfUI:RegisterModule("buffwatch", function ()
|
||||
fcache[tostring(config)] = nil -- invalidate so the new entry takes effect immediately
|
||||
DEFAULT_CHAT_FRAME:AddMessage("|cff33ffcc" .. skill .. "|r" .. T["is now blacklisted."])
|
||||
end
|
||||
this.parent.Refresh()
|
||||
elseif this.parent.unit == "player" then
|
||||
local aura = C_UnitAuras.GetAuraDataByIndex("player", this.id, this.type)
|
||||
if aura and aura.spellId then C_Spell.CancelSpellByID(aura.spellId) end
|
||||
@@ -246,7 +247,7 @@ pfUI:RegisterModule("buffwatch", function ()
|
||||
table.sort(frame.buffs, frame.buffcmp)
|
||||
|
||||
-- create a buff bar for each below threshold
|
||||
local bar = 1
|
||||
local bar, crossing = 1, nil
|
||||
for id, data in pairs(frame.buffs) do
|
||||
if data[1] and ((data[1] ~= 0 and data[1] < frame.threshold) or frame.threshold == -1) -- timeleft checks
|
||||
and data[3] and data[3] ~= "" -- buff has a name
|
||||
@@ -340,6 +341,10 @@ pfUI:RegisterModule("buffwatch", function ()
|
||||
|
||||
frame.bars[bar]:Show()
|
||||
bar = bar + 1
|
||||
elseif data[1] and data[1] > 0 and data[3] and data[4] and frame.threshold ~= -1 then
|
||||
-- still above the threshold: its bar shows once it drops under
|
||||
local wait = data[1] - frame.threshold
|
||||
if not crossing or wait < crossing then crossing = wait end
|
||||
end
|
||||
end
|
||||
|
||||
@@ -347,13 +352,11 @@ pfUI:RegisterModule("buffwatch", function ()
|
||||
for i = bar, table.getn(frame.bars) do
|
||||
frame.bars[i]:Hide()
|
||||
end
|
||||
end
|
||||
|
||||
-- Create a new Buff Bar
|
||||
local function BuffBarFrameOnUpdate()
|
||||
if ( this.tick or 1) > GetTime() then return else this.tick = GetTime() + .4 end
|
||||
RefreshBuffBarFrame(this)
|
||||
this:RefreshPosition()
|
||||
-- no event marks an aura's time left dropping under the threshold, so
|
||||
-- wake when the next one does
|
||||
if frame.crossing then frame.crossing:Cancel() end
|
||||
frame.crossing = crossing and C_Timer.NewTimer(crossing + .1, frame.Refresh) or nil
|
||||
end
|
||||
|
||||
local function RefreshPosition(self)
|
||||
@@ -373,6 +376,19 @@ pfUI:RegisterModule("buffwatch", function ()
|
||||
end
|
||||
end
|
||||
|
||||
-- every watch frame: one stacks on the bars of another, so all of them
|
||||
-- re-anchor together
|
||||
local watched = {}
|
||||
local function RefreshPositions()
|
||||
for _, frame in pairs(watched) do frame:RefreshPosition() end
|
||||
end
|
||||
|
||||
-- the bars sit above their unit frame's aura rows, which move when the
|
||||
-- rows lay out again
|
||||
pfUI.events:RegisterCallback("unitframe:auras", function(_, unit)
|
||||
if unit == pfUI.uf.player or unit == pfUI.uf.target then RefreshPositions() end
|
||||
end, "buffwatch")
|
||||
|
||||
local function CreateBuffBarFrame(unit, type)
|
||||
local framename = "pf" .. unit .. ( type == "HARMFUL" and "Debuff" or "Buff" ) .. "Bar"
|
||||
local frame = _G[framename] or CreateFrame("Frame", framename, UIParent)
|
||||
@@ -388,9 +404,22 @@ pfUI:RegisterModule("buffwatch", function ()
|
||||
end
|
||||
|
||||
frame.RefreshPosition = RefreshPosition
|
||||
frame.Refresh = function()
|
||||
RefreshBuffBarFrame(frame)
|
||||
RefreshPositions()
|
||||
end
|
||||
|
||||
-- OnEvent (UNIT_AURA) doesn't trigger properly on buff refresh
|
||||
frame:SetScript("OnUpdate", BuffBarFrameOnUpdate)
|
||||
-- UNIT_AURA_DELTA reports refreshes and new durations as well, so the bars
|
||||
-- follow the auras on events alone. A new target is another unit, whose
|
||||
-- auras no delta describes.
|
||||
frame:RegisterUnitEvent("UNIT_AURA_DELTA", frame.unit)
|
||||
frame:RegisterEvent("PLAYER_ENTERING_WORLD")
|
||||
if frame.unit == "target" then frame:RegisterEvent("PLAYER_TARGET_CHANGED") end
|
||||
frame:SetScript("OnEvent", frame.Refresh)
|
||||
table.insert(watched, frame)
|
||||
|
||||
-- the first read waits until the caller has configured the frame
|
||||
RunNextFrame(frame.Refresh)
|
||||
|
||||
return frame
|
||||
end
|
||||
|
||||
+8
-13
@@ -150,8 +150,8 @@ pfUI:RegisterModule("castbar", function ()
|
||||
-- One-shot poll: read C_Spell for the bar's unit, stamp or clear. Called
|
||||
-- from event handlers (cast start, target/focus change), never per-frame.
|
||||
local function RefreshBar(cb, rank)
|
||||
local query = cb.unitstr ~= "" and cb.unitstr or cb.unitname
|
||||
if not query or (cb.unitstr ~= "" and not UnitExists(cb.unitstr)) then
|
||||
local query = cb.unitstr
|
||||
if not UnitExists(query) then
|
||||
ClearBar(cb)
|
||||
return
|
||||
end
|
||||
@@ -178,7 +178,7 @@ pfUI:RegisterModule("castbar", function ()
|
||||
end
|
||||
end
|
||||
|
||||
local function CreateCastbar(name, parent, unitstr, unitname)
|
||||
local function CreateCastbar(name, parent, unitstr)
|
||||
local cb = CreateFrame("Frame", name, parent or UIParent)
|
||||
|
||||
cb:SetHeight(C.global.font_size * 1.5)
|
||||
@@ -186,7 +186,6 @@ pfUI:RegisterModule("castbar", function ()
|
||||
cb:SetFrameLevel(8)
|
||||
|
||||
cb.unitstr = unitstr
|
||||
cb.unitname = unitname
|
||||
|
||||
-- icon
|
||||
cb.icon = CreateFrame("Frame", nil, cb)
|
||||
@@ -235,14 +234,14 @@ pfUI:RegisterModule("castbar", function ()
|
||||
cb.bar.lag = cb.bar:CreateTexture(nil, "OVERLAY")
|
||||
cb.bar.lag:SetPoint("TOPRIGHT", cb.bar, "TOPRIGHT", 0, 0)
|
||||
cb.bar.lag:SetPoint("BOTTOMRIGHT", cb.bar, "BOTTOMRIGHT", 0, 0)
|
||||
cb.bar.lag:SetTexture(1,.2,.2,.2)
|
||||
cb.bar.lag:SetColorTexture(1,.2,.2,.2)
|
||||
|
||||
-- Per-craft progress spark for tradeskill merge — a thin vertical line
|
||||
-- that crosses the bar once per craft in the chain (so on a 5-stack it
|
||||
-- moves 5x faster than the main fill). Position is updated by OnUpdate
|
||||
-- while a merge is active; hidden otherwise.
|
||||
cb.bar.spark = cb.bar:CreateTexture(nil, "OVERLAY")
|
||||
cb.bar.spark:SetTexture(1, 1, 1, 0.8)
|
||||
cb.bar.spark:SetColorTexture(1, 1, 1, 0.8)
|
||||
cb.bar.spark:SetWidth(2)
|
||||
cb.bar.spark:SetPoint("TOP", cb.bar, "TOPLEFT", 0, 0)
|
||||
cb.bar.spark:SetPoint("BOTTOM", cb.bar, "BOTTOMLEFT", 0, 0)
|
||||
@@ -277,7 +276,7 @@ pfUI:RegisterModule("castbar", function ()
|
||||
|
||||
-- Non-player bars: if the unit disappears (target died / detarget),
|
||||
-- drop the bar immediately.
|
||||
if this.unitstr ~= "" and this.unitstr ~= "player" and not UnitExists(this.unitstr) then
|
||||
if this.unitstr ~= "player" and not UnitExists(this.unitstr) then
|
||||
ClearBar(this)
|
||||
return
|
||||
end
|
||||
@@ -423,13 +422,12 @@ pfUI:RegisterModule("castbar", function ()
|
||||
-- endMs. delay is a positive magnitude; OnUpdate signs it "+" for casts
|
||||
-- and "-" for channels. Skipped during a tradeskill merge.
|
||||
if this.endTime and not this.tradeskillTotal then
|
||||
local query = this.unitstr ~= "" and this.unitstr or this.unitname
|
||||
local startMs, endMs
|
||||
if this.isChannel then
|
||||
local _, _, _, s, e = C_Spell.UnitChannelInfo(query)
|
||||
local _, _, _, s, e = C_Spell.UnitChannelInfo(unit)
|
||||
startMs, endMs = s, e
|
||||
else
|
||||
local _, _, _, s, e = C_Spell.UnitCastingInfo(query)
|
||||
local _, _, _, s, e = C_Spell.UnitCastingInfo(unit)
|
||||
startMs, endMs = s, e
|
||||
end
|
||||
if startMs and endMs then
|
||||
@@ -544,9 +542,6 @@ pfUI:RegisterModule("castbar", function ()
|
||||
pfUI.castbar.focus:SetHeight(C.castbar.focus.height)
|
||||
end
|
||||
|
||||
-- bind castbar to the "focus" unit token; the GUID resolves at read time
|
||||
pfUI.castbar.focus.unitstr = "focus"
|
||||
|
||||
UpdateMovable(pfUI.castbar.focus)
|
||||
end
|
||||
end)
|
||||
+46
-102
@@ -145,7 +145,7 @@ pfUI:RegisterModule("chat", function ()
|
||||
["URL"] = function(a1,a2,a3) return pfUI.chat:FormatLink(pfUI.chat.URLPattern.URL.fm,a1,a2,a3) end,
|
||||
}
|
||||
|
||||
-- url copy dialog
|
||||
-- url links
|
||||
function pfUI.chat:FormatLink(formatter,a1,a2,a3,a4,a5,a6,a7,a8,a9,a10)
|
||||
if not (formatter and a1) then return end
|
||||
local newtext = string.format(formatter,a1,a2,a3,a4,a5,a6,a7,a8,a9,a10)
|
||||
@@ -185,74 +185,11 @@ pfUI:RegisterModule("chat", function ()
|
||||
return text
|
||||
end
|
||||
|
||||
pfUI.chat.urlcopy = CreateFrame("Frame", "pfURLCopy", UIParent)
|
||||
pfUI.chat.urlcopy:Hide()
|
||||
pfUI.chat.urlcopy:SetWidth(270)
|
||||
pfUI.chat.urlcopy:SetHeight(65)
|
||||
pfUI.chat.urlcopy:SetFrameStrata("FULLSCREEN")
|
||||
pfUI.chat.urlcopy:SetPoint("CENTER", 0, 0)
|
||||
CreateBackdrop(pfUI.chat.urlcopy, nil, nil, 0.8)
|
||||
|
||||
pfUI.chat.urlcopy:SetMovable(true)
|
||||
pfUI.chat.urlcopy:EnableMouse(true)
|
||||
pfUI.chat.urlcopy:RegisterForDrag("LeftButton")
|
||||
pfUI.chat.urlcopy:SetScript("OnDragStart",function()
|
||||
this:StartMoving()
|
||||
-- clicking a url link copies it
|
||||
LinkUtil.RegisterLinkHandler("url", function(link, text, linkData)
|
||||
CopyText(linkData.options)
|
||||
end)
|
||||
|
||||
pfUI.chat.urlcopy:SetScript("OnDragStop",function()
|
||||
this:StopMovingOrSizing()
|
||||
end)
|
||||
|
||||
pfUI.chat.urlcopy:SetScript("OnShow", function()
|
||||
this.text:HighlightText()
|
||||
end)
|
||||
|
||||
pfUI.chat.urlcopy.text = CreateFrame("EditBox", "pfURLCopyEditBox", pfUI.chat.urlcopy)
|
||||
pfUI.chat.urlcopy.text:SetTextColor(.2,1,.8,1)
|
||||
pfUI.chat.urlcopy.text:SetJustifyH("CENTER")
|
||||
|
||||
pfUI.chat.urlcopy.text:SetWidth(250)
|
||||
pfUI.chat.urlcopy.text:SetHeight(20)
|
||||
pfUI.chat.urlcopy.text:SetPoint("TOP", pfUI.chat.urlcopy, "TOP", 0, -10)
|
||||
pfUI.chat.urlcopy.text:SetFontObject(GameFontNormal)
|
||||
CreateBackdrop(pfUI.chat.urlcopy.text)
|
||||
|
||||
pfUI.chat.urlcopy.text:SetScript("OnEscapePressed", function(self)
|
||||
pfUI.chat.urlcopy:Hide()
|
||||
end)
|
||||
|
||||
pfUI.chat.urlcopy.text:SetScript("OnEditFocusLost", function(self)
|
||||
pfUI.chat.urlcopy:Hide()
|
||||
end)
|
||||
|
||||
pfUI.chat.urlcopy.close = CreateFrame("Button", "pfURLCopyClose", pfUI.chat.urlcopy, "UIPanelButtonTemplate")
|
||||
pfUI.api.SkinButton(pfUI.chat.urlcopy.close)
|
||||
pfUI.chat.urlcopy.close:SetWidth(70)
|
||||
pfUI.chat.urlcopy.close:SetHeight(18)
|
||||
pfUI.chat.urlcopy.close:SetPoint("BOTTOMRIGHT", pfUI.chat.urlcopy, "BOTTOMRIGHT", -10, 10)
|
||||
|
||||
pfUI.chat.urlcopy.close:SetText(T["Close"])
|
||||
pfUI.chat.urlcopy.close:SetScript("OnClick", function()
|
||||
pfUI.chat.urlcopy:Hide()
|
||||
end)
|
||||
|
||||
pfUI.chat.urlcopy.SetItemRef = SetItemRef
|
||||
pfUI.chat.urlcopy.CopyText = function(text)
|
||||
pfUI.chat.urlcopy.text:SetText(text)
|
||||
pfUI.chat.urlcopy:Show()
|
||||
end
|
||||
|
||||
function _G.SetItemRef(link, text, button)
|
||||
if (strsub(link, 1, 3) == "url") then
|
||||
if string.len(link) > 4 and string.sub(link,1,4) == "url:" then
|
||||
pfUI.chat.urlcopy.CopyText(string.sub(link,5, string.len(link)))
|
||||
end
|
||||
return
|
||||
end
|
||||
pfUI.chat.urlcopy.SetItemRef(link, text, button)
|
||||
end
|
||||
|
||||
pfUI.chat.right = CreateFrame("Frame", "pfChatRight", UIParent)
|
||||
pfUI.chat.right:SetFrameStrata("BACKGROUND")
|
||||
pfUI.chat.right:SetWidth(C.chat.right.width)
|
||||
@@ -278,22 +215,14 @@ pfUI:RegisterModule("chat", function ()
|
||||
pfUI.chat:RegisterEvent("UI_SCALE_CHANGED")
|
||||
|
||||
local function ChatOnMouseWheel()
|
||||
if (arg1 > 0) then
|
||||
if IsShiftKeyDown() then
|
||||
this:ScrollToTop()
|
||||
else
|
||||
for i=1, C.chat.global.scrollspeed do
|
||||
this:ScrollUp()
|
||||
end
|
||||
end
|
||||
elseif (arg1 < 0) then
|
||||
if IsShiftKeyDown() then
|
||||
this:ScrollToBottom()
|
||||
else
|
||||
for i=1, C.chat.global.scrollspeed do
|
||||
this:ScrollDown()
|
||||
end
|
||||
end
|
||||
if not IsShiftKeyDown() then
|
||||
this:ScrollByAmount(arg1 * C.chat.global.scrollspeed)
|
||||
elseif arg1 > 0 then
|
||||
-- stops with the oldest line on top, as the wheel does; ScrollToTop
|
||||
-- would leave it alone on the bottom line
|
||||
this:ScrollByAmount(this:GetMaxScrollRange())
|
||||
else
|
||||
this:ScrollToBottom()
|
||||
end
|
||||
end
|
||||
|
||||
@@ -376,7 +305,8 @@ pfUI:RegisterModule("chat", function ()
|
||||
CreateBackdrop(LanguageMenu)
|
||||
CreateBackdrop(VoiceMacroMenu)
|
||||
|
||||
local combatlogpanel = (CombatLogQuickButtonFrame_Custom and CombatLogQuickButtonFrame_Custom:GetHeight() or 0)
|
||||
-- the combatlog module's quick button bar sits above the docked log
|
||||
local combatlogpanel = (ChatFrame2.CombatLogQuickButtonFrame and ChatFrame2.CombatLogQuickButtonFrame:GetHeight() or 0)
|
||||
|
||||
for i=1, NUM_CHAT_WINDOWS do
|
||||
local frame = _G["ChatFrame"..i]
|
||||
@@ -389,7 +319,7 @@ pfUI:RegisterModule("chat", function ()
|
||||
end
|
||||
end
|
||||
|
||||
if combat > 5 then
|
||||
if frame.CombatLogQuickButtonFrame or combat > 5 then
|
||||
frame.pfCombatLog = true
|
||||
else
|
||||
frame.pfCombatLog = nil
|
||||
@@ -456,7 +386,7 @@ pfUI:RegisterModule("chat", function ()
|
||||
|
||||
-- hide textures
|
||||
for j,v in ipairs({tab:GetRegions()}) do
|
||||
if j==5 then v:SetTexture(0,0,0,0) end
|
||||
if j==5 then v:SetColorTexture(0,0,0,0) end
|
||||
v:SetHeight(C.global.font_size+default_border*2)
|
||||
end
|
||||
|
||||
@@ -779,6 +709,20 @@ pfUI:RegisterModule("chat", function ()
|
||||
local r,g,b,a = GetStringColor(C.chat.text.timecolor)
|
||||
local timecolorhex = rgbhex(r,g,b,a)
|
||||
|
||||
-- AddMessage puts the time between these at the start of each line
|
||||
local timestampStart = timecolorhex .. tleft
|
||||
local timestampEnd = tright .. "|r "
|
||||
|
||||
-- [ StripTimestamp ]
|
||||
-- Returns a chat line without the timestamp AddMessage put before it.
|
||||
function pfUI.chat.StripTimestamp(text)
|
||||
if C.chat.text.time ~= "1" or text:sub(1, #timestampStart) ~= timestampStart then
|
||||
return text
|
||||
end
|
||||
local _, last = text:find(timestampEnd, #timestampStart + 1, true)
|
||||
return last and text:sub(last + 1) or text
|
||||
end
|
||||
|
||||
local r,g,b = GetStringColor(C.chat.text.unknowncolor)
|
||||
local unknowncolorhex = rgbhex(r,g,b)
|
||||
|
||||
@@ -788,12 +732,14 @@ pfUI:RegisterModule("chat", function ()
|
||||
return pfUI_playerDB[name].level
|
||||
end
|
||||
|
||||
local function AddMessage(frame, text, a1, a2, a3, a4, a5, a6, a7, a8, a9, a10, a11, a12, a13, a14, a15, a16, a17)
|
||||
-- Passes every argument after the text on: GetMessageInfo returns them all,
|
||||
-- and a hook that drops some loses them for every frame after it.
|
||||
local function AddMessage(frame, text, ...)
|
||||
if not text then return end
|
||||
|
||||
-- skip chat parsing on combat log
|
||||
if frame.pfCombatLog then
|
||||
return frame:HookAddMessage(text, a1, a2, a3, a4, a5, a6, a7, a8, a9, a10, a11, a12, a13, a14, a15, a16, a17)
|
||||
return frame:HookAddMessage(text, ...)
|
||||
end
|
||||
|
||||
-- payload of the CHAT_MSG event printing this line; nil for lines
|
||||
@@ -879,24 +825,25 @@ pfUI:RegisterModule("chat", function ()
|
||||
-- pushes the whisper colour code off position 1 and the find below fails
|
||||
local isWhisper = C.chat.global.whispermod == "1" and string.find(text, wcol, 1) == 1
|
||||
|
||||
if isWhisper then
|
||||
-- patch incoming whisper string to match the colors, before the
|
||||
-- timestamp so it keeps the form StripTimestamp looks for
|
||||
text = string.gsub(text, "|r", "|r" .. wcol)
|
||||
end
|
||||
|
||||
-- show timestamp in chat
|
||||
if C.chat.text.time == "1" then
|
||||
text = timecolorhex .. tleft .. date(C.chat.text.timeformat) .. tright .. "|r " .. text
|
||||
text = timestampStart .. date(C.chat.text.timeformat) .. timestampEnd .. text
|
||||
end
|
||||
|
||||
-- save chat history
|
||||
if isWhisper then
|
||||
SaveChatHistory(frame:GetID(), string.gsub(text, wcol, ""), cr, cg, cb)
|
||||
else
|
||||
SaveChatHistory(frame:GetID(), text, a1, a2, a3)
|
||||
SaveChatHistory(frame:GetID(), text, ...)
|
||||
end
|
||||
|
||||
if isWhisper then
|
||||
-- patch incoming whisper string to match the colors
|
||||
text = string.gsub(text, "|r", "|r" .. wcol)
|
||||
end
|
||||
|
||||
frame:HookAddMessage(text, a1, a2, a3, a4, a5, a6, a7, a8, a9, a10, a11, a12, a13, a14, a15, a16, a17)
|
||||
frame:HookAddMessage(text, ...)
|
||||
end
|
||||
|
||||
for i=1,NUM_CHAT_WINDOWS do
|
||||
@@ -906,12 +853,9 @@ pfUI:RegisterModule("chat", function ()
|
||||
|
||||
if not _G["ChatFrame"..i].HookAddMessage then
|
||||
if C.chat.text.history == "1" then
|
||||
-- write history to chat
|
||||
local history = GetChatHistory(i)
|
||||
for j=30,0,-1 do
|
||||
if history[j] then
|
||||
_G["ChatFrame"..i]:AddMessage(history[j], .7,.7,.7)
|
||||
end
|
||||
-- write history to chat, newest first, above the lines already there
|
||||
for _, msg in ipairs(GetChatHistory(i)) do
|
||||
_G["ChatFrame"..i]:BackFillMessage(msg, .7,.7,.7)
|
||||
end
|
||||
end
|
||||
|
||||
|
||||
+50
-106
@@ -1,5 +1,4 @@
|
||||
pfUI:RegisterModule("chatcopy", function ()
|
||||
local limit = 100
|
||||
local f = CreateFrame("Frame")
|
||||
f:RegisterEvent("PLAYER_ENTERING_WORLD")
|
||||
f:SetScript("OnEvent", function()
|
||||
@@ -15,26 +14,27 @@ pfUI:RegisterModule("chatcopy", function ()
|
||||
button.icon:SetTexture("Interface\\Buttons\\UI-GuildButton-PublicNote-Disabled")
|
||||
button.icon:SetAllPoints()
|
||||
|
||||
-- show or hide the copy box of every chat frame
|
||||
local function SetCopyMode(state)
|
||||
button.state = state
|
||||
|
||||
for i=1, _G.NUM_CHAT_WINDOWS do
|
||||
local scroll = _G["ChatFrame"..i].scroll
|
||||
if scroll then
|
||||
scroll:SetShown(state)
|
||||
end
|
||||
end
|
||||
|
||||
if state then
|
||||
button.icon:SetTexture("Interface\\Buttons\\UI-GuildButton-PublicNote-Up")
|
||||
else
|
||||
button.icon:SetTexture("Interface\\Buttons\\UI-GuildButton-PublicNote-Disabled")
|
||||
end
|
||||
end
|
||||
|
||||
button:SetScript("OnClick", function()
|
||||
if arg1 == "LeftButton" then
|
||||
this.state = not this.state
|
||||
|
||||
for i=1, _G.NUM_CHAT_WINDOWS do
|
||||
local frame = _G["ChatFrame"..i]
|
||||
local scroll = frame.scroll
|
||||
|
||||
if scroll and this.state then
|
||||
scroll:Show()
|
||||
elseif scroll then
|
||||
scroll:Hide()
|
||||
end
|
||||
end
|
||||
|
||||
if this.state then
|
||||
button.icon:SetTexture("Interface\\Buttons\\UI-GuildButton-PublicNote-Up")
|
||||
else
|
||||
button.icon:SetTexture("Interface\\Buttons\\UI-GuildButton-PublicNote-Disabled")
|
||||
end
|
||||
SetCopyMode(not this.state)
|
||||
elseif arg1 == "RightButton" then
|
||||
if ChatMenu:IsShown() then
|
||||
ChatMenu:Hide()
|
||||
@@ -56,98 +56,42 @@ pfUI:RegisterModule("chatcopy", function ()
|
||||
|
||||
for i=1, _G.NUM_CHAT_WINDOWS do
|
||||
local frame = _G["ChatFrame"..i]
|
||||
local name = frame:GetName()
|
||||
|
||||
local combat = 0
|
||||
for i, msg in pairs(frame.messageTypeList) do
|
||||
if strfind(msg, "SPELL", 1) or strfind(msg, "COMBAT", 1) then
|
||||
combat = combat + 1
|
||||
-- the chat frame's messages in an edit box to copy from
|
||||
local scroll = CreateFrame("Frame", "pfChatCopy" .. i, frame, "pfUIScrollingEditBoxTemplate")
|
||||
scroll:SetAllPoints(frame)
|
||||
scroll.tex = scroll:CreateTexture(nil, "BACKGROUND")
|
||||
scroll.tex:SetColorTexture(0,0,0,.95)
|
||||
scroll.tex:SetPoint("TOPLEFT", -3, 3)
|
||||
scroll.tex:SetPoint("BOTTOMRIGHT", 3, -3)
|
||||
scroll:Hide()
|
||||
|
||||
scroll:RegisterCallback("OnEscapePressed", function()
|
||||
SetCopyMode(false)
|
||||
end, scroll)
|
||||
|
||||
scroll:HookScript("OnShow", function()
|
||||
-- each line in its own color, which also replaces the |r resets inside it
|
||||
local lines = {}
|
||||
for index=1, frame:GetNumMessages() do
|
||||
local text, r, g, b = frame:GetMessageInfo(index)
|
||||
if C.chat.text.copytime == "0" then
|
||||
text = pfUI.chat.StripTimestamp(text)
|
||||
end
|
||||
local color = rgbhex(r, g, b)
|
||||
table.insert(lines, color .. text:gsub("|r", color))
|
||||
end
|
||||
end
|
||||
local text = table.concat(lines, "\n")
|
||||
|
||||
if combat < 5 then
|
||||
-- initialize message cache
|
||||
local history = {}
|
||||
local AddMessage = frame.AddMessage
|
||||
frame.AddMessage = function(self,msg,r,g,b)
|
||||
if msg and r and g and b then
|
||||
local col = rgbhex(r,g,b)
|
||||
table.insert(history, 1, col..string.gsub(msg, "|r", col))
|
||||
elseif msg then
|
||||
table.insert(history, 1, "|cffffffff"..msg)
|
||||
end
|
||||
scroll:SetFont(frame:GetFont())
|
||||
scroll:SetText(text)
|
||||
|
||||
if history[limit] then
|
||||
table.remove(history, limit)
|
||||
end
|
||||
AddMessage(self,msg,r,g,b)
|
||||
end
|
||||
-- the cursor at the end scrolls the box to the newest line
|
||||
scroll:SetFocus()
|
||||
scroll:SetCursorPosition(#text)
|
||||
end)
|
||||
|
||||
-- read chat defaults
|
||||
local font, size, flags = frame:GetFont()
|
||||
|
||||
-- build the frames
|
||||
local scroll = CreateScrollFrame("ChatFrameScroll"..i, frame)
|
||||
scroll:SetAllPoints(frame)
|
||||
scroll.tex = scroll:CreateTexture(nil, "BACKGROUND")
|
||||
scroll.tex:SetTexture(0,0,0,.95)
|
||||
scroll.tex:SetPoint("TOPLEFT", -3, 3)
|
||||
scroll.tex:SetPoint("BOTTOMRIGHT", 3, -3)
|
||||
scroll:Hide()
|
||||
|
||||
local editbox = CreateFrame("EditBox", "pfChatCopyBox" .. i, scroll)
|
||||
editbox:SetSize(frame:GetSize())
|
||||
editbox:SetAllPoints(scroll)
|
||||
editbox:SetTextColor(1,1,1,1)
|
||||
editbox:SetFontObject(ChatFontNormal)
|
||||
editbox:SetFont(font, size, flags)
|
||||
editbox:SetAutoFocus(true)
|
||||
editbox:SetMultiLine(true)
|
||||
editbox:SetMaxLetters(0)
|
||||
|
||||
editbox:SetScript("OnMouseDown", function()
|
||||
editbox.hasFocus = true
|
||||
end)
|
||||
|
||||
editbox:SetScript("OnEscapePressed", function()
|
||||
if editbox.hasFocus then
|
||||
editbox:HighlightText(0, 0)
|
||||
editbox:ClearFocus()
|
||||
editbox.hasFocus = false
|
||||
else
|
||||
editbox:GetParent():Hide()
|
||||
pfChatCopyButton.icon:SetTexture("Interface\\Buttons\\UI-GuildButton-PublicNote-Disabled")
|
||||
pfChatCopyButton.state = false
|
||||
end
|
||||
end)
|
||||
|
||||
scroll:SetScrollChild(editbox)
|
||||
scroll:SetScript("OnShow", function()
|
||||
editbox:SetText("")
|
||||
for i=limit,0,-1 do
|
||||
if history[i] then
|
||||
editbox:Insert("\n" .. history[i])
|
||||
end
|
||||
end
|
||||
|
||||
editbox:SetScript("OnUpdate", function()
|
||||
if not this.count then this.count = 0 end
|
||||
|
||||
scroll:UpdateScrollChildRect()
|
||||
scroll:SetVerticalScroll(scroll:GetVerticalScrollRange())
|
||||
scroll:Scroll()
|
||||
this.count = this.count + 1
|
||||
|
||||
-- the scroll frame takes a while to update
|
||||
if this.count >= 3 then
|
||||
this:SetScript("OnUpdate", nil)
|
||||
this.count = 0
|
||||
end
|
||||
end)
|
||||
end)
|
||||
|
||||
frame.scroll = scroll
|
||||
end
|
||||
frame.scroll = scroll
|
||||
end
|
||||
|
||||
this:UnregisterAllEvents()
|
||||
|
||||
File diff suppressed because it is too large
Load Diff
File diff suppressed because it is too large
Load Diff
@@ -23,15 +23,15 @@ pfUI:RegisterModule("combopoints", function ()
|
||||
pfUI.combopoints[point]:SetPoint("CENTER", UIParent, "CENTER", (point - 3) * (combo_width + border*3), 10 )
|
||||
end
|
||||
|
||||
pfUI.combopoints[point].tex = pfUI.combopoints[point]:CreateTexture("OVERLAY")
|
||||
pfUI.combopoints[point].tex = pfUI.combopoints[point]:CreateTexture(nil, "OVERLAY")
|
||||
pfUI.combopoints[point].tex:SetAllPoints(pfUI.combopoints[point])
|
||||
|
||||
if point < 3 then
|
||||
pfUI.combopoints[point].tex:SetTexture(1, .3, .3, .75)
|
||||
pfUI.combopoints[point].tex:SetColorTexture(1, .3, .3, .75)
|
||||
elseif point < 4 then
|
||||
pfUI.combopoints[point].tex:SetTexture(1, 1, .3, .75)
|
||||
pfUI.combopoints[point].tex:SetColorTexture(1, 1, .3, .75)
|
||||
else
|
||||
pfUI.combopoints[point].tex:SetTexture(.3, 1, .3, .75)
|
||||
pfUI.combopoints[point].tex:SetColorTexture(.3, 1, .3, .75)
|
||||
end
|
||||
|
||||
UpdateMovable(pfUI.combopoints[point])
|
||||
|
||||
@@ -1,152 +0,0 @@
|
||||
pfUI:RegisterModule("cooldown", function ()
|
||||
-- cache values
|
||||
-- local lowcolor = {strsplit(",", C.appearance.cd.lowcolor)}
|
||||
-- local normalcolor = {strsplit(",", C.appearance.cd.normalcolor)}
|
||||
-- local minutecolor = {strsplit(",", C.appearance.cd.minutecolor)}
|
||||
-- local hourcolor = {strsplit(",", C.appearance.cd.hourcolor)}
|
||||
-- local daycolor = {strsplit(",", C.appearance.cd.daycolor)}
|
||||
|
||||
local function pfCooldownOnUpdate()
|
||||
-- Throttle FIRST. One of these runs per visible cooldown text, every frame,
|
||||
-- so anything above this gate is multiplied by the frame rate and by how
|
||||
-- many cooldowns are ticking.
|
||||
local now = GetTime()
|
||||
if (this.tick or 0) > now then return end
|
||||
this.tick = now + .1
|
||||
|
||||
local parent = this:GetParent()
|
||||
if not parent then this:Hide() return end
|
||||
|
||||
-- avoid to set cooldowns on invalid frames. The cooldown frame is stashed
|
||||
-- at creation: resolving it as _G[parent:GetName() .. "Cooldown"] built and
|
||||
-- interned that string twice per call, and this is the hottest path in the
|
||||
-- UI. The stashed reference is also the frame itself rather than a guess
|
||||
-- from its parent's name, so it holds for cooldowns named anything else.
|
||||
if this.cooldown and not this.cooldown:IsShown() then
|
||||
this:Hide()
|
||||
return
|
||||
end
|
||||
|
||||
-- fix own alpha value (should be inherited, but somehow isn't always)
|
||||
if this:GetAlpha() ~= parent:GetAlpha() then
|
||||
this:SetAlpha(parent:GetAlpha())
|
||||
end
|
||||
|
||||
if this.start < now then
|
||||
-- calculating remaining time as it should be
|
||||
local remaining = this.duration - (now - this.start)
|
||||
if remaining >= 0 then
|
||||
this.text:SetText(GetColoredTimeString(remaining))
|
||||
else
|
||||
this:Hide()
|
||||
end
|
||||
else
|
||||
-- I have absolutely no idea, but it works:
|
||||
-- https://github.com/Stanzilla/WoWUIBugs/issues/47
|
||||
local currentTime = time()
|
||||
local startupTime = currentTime - now
|
||||
-- just a simplification of: ((2^32) - (start * 1000)) / 1000
|
||||
local cdTime = (2 ^ 32) / 1000 - this.start
|
||||
local cdStartTime = startupTime - cdTime
|
||||
local cdEndTime = cdStartTime + this.duration
|
||||
local remaining = cdEndTime - currentTime
|
||||
|
||||
if remaining >= 0 then
|
||||
this.text:SetText(GetColoredTimeString(remaining))
|
||||
else
|
||||
this:Hide()
|
||||
end
|
||||
end
|
||||
end
|
||||
|
||||
local height, size
|
||||
local textcount = 0
|
||||
local function pfCreateCoolDown(cooldown, start, duration)
|
||||
textcount = textcount + 1
|
||||
local name = cooldown.GetName and cooldown:GetName() or "pfCooldown" .. textcount
|
||||
|
||||
cooldown.pfCooldownText = CreateFrame("Frame", name .. "Text", cooldown:GetParent())
|
||||
cooldown.pfCooldownText.cooldown = cooldown
|
||||
cooldown.pfCooldownText:SetAllPoints(cooldown)
|
||||
cooldown.pfCooldownText:SetFrameLevel(cooldown:GetParent():GetFrameLevel() + 2)
|
||||
cooldown.pfCooldownText.text = cooldown.pfCooldownText:CreateFontString(name .. "TextString", "OVERLAY")
|
||||
|
||||
if not cooldown.pfCooldownType then
|
||||
size = tonumber(C.appearance.cd.font_size_foreign)
|
||||
elseif cooldown.pfCooldownType == "BLIZZARD" then
|
||||
size = tonumber(C.appearance.cd.font_size_blizz)
|
||||
elseif cooldown.pfCooldownSize then
|
||||
size = tonumber(cooldown.pfCooldownSize)
|
||||
else
|
||||
size = tonumber(C.appearance.cd.font_size)
|
||||
end
|
||||
|
||||
-- enforce dynamic font size
|
||||
if C.appearance.cd.dynamicsize == "1" and cooldown.GetParent then
|
||||
height = cooldown:GetParent() and cooldown:GetParent():GetHeight() or cooldown:GetHeight() or 0
|
||||
size = math.max((height > 0 and height * .64 or 16), size)
|
||||
end
|
||||
|
||||
cooldown.pfCooldownText.text:SetFont(pfUI.media[C.appearance.cd.font], size, "OUTLINE")
|
||||
cooldown.pfCooldownText.text:SetPoint("CENTER", cooldown.pfCooldownText, "CENTER", 0, 0)
|
||||
cooldown.pfCooldownText:SetScript("OnUpdate", pfCooldownOnUpdate)
|
||||
end
|
||||
|
||||
-- hook
|
||||
local function SetCooldown(this, start, duration, enable)
|
||||
-- abort on unknown frames
|
||||
if C.appearance.cd.foreign == "0" and not this.pfCooldownType then
|
||||
return
|
||||
end
|
||||
|
||||
-- add support for omnicc's disable flag
|
||||
if this.noCooldownCount then
|
||||
return
|
||||
end
|
||||
|
||||
-- realign the indicator Models that stock buttons build; the model is
|
||||
-- drawn at 36px and needs scaling to its button. A Cooldown draws its
|
||||
-- sweep to its own rect.
|
||||
local parent = this.GetParent and not this:IsObjectType("Cooldown") and this:GetParent()
|
||||
if parent and parent:GetWidth() / 36 > 0 then
|
||||
this:SetScale(parent:GetWidth() / 36)
|
||||
this:SetPoint("TOPLEFT", parent, "TOPLEFT", -1, 1)
|
||||
this:SetPoint("BOTTOMRIGHT", parent, "BOTTOMRIGHT", 1, -1)
|
||||
end
|
||||
|
||||
-- don't draw global cooldowns
|
||||
if this.pfCooldownType == "NOGCD" and duration < tonumber(C.appearance.cd.threshold) then
|
||||
start, duration = 0, 0
|
||||
end
|
||||
|
||||
-- disable GCDs on non pfUI frames
|
||||
if not this.pfCooldownType and duration < tonumber(C.appearance.cd.threshold) then
|
||||
start, duration = 0, 0
|
||||
end
|
||||
|
||||
-- hide animation
|
||||
if this.pfCooldownStyleAnimation == 0 then
|
||||
this:SetAlpha(0)
|
||||
elseif not this.pfCooldownStyleAnimation and C.appearance.cd.hideanim == "1" then
|
||||
this:SetAlpha(0)
|
||||
end
|
||||
|
||||
-- print time as text on cooldown frames
|
||||
if ( not this.pfCooldownStyleText or this.pfCooldownStyleText == 1)
|
||||
and start > 0 and duration > 0 and (not enable or enable > 0) then
|
||||
if( not this.pfCooldownText ) then
|
||||
pfCreateCoolDown(this, start, duration)
|
||||
end
|
||||
|
||||
this.pfCooldownText.start = start
|
||||
this.pfCooldownText.duration = duration
|
||||
this.pfCooldownText:Show()
|
||||
elseif(this.pfCooldownText) then
|
||||
this.pfCooldownText:Hide()
|
||||
end
|
||||
end
|
||||
|
||||
-- hook the SetTimer function that every cooldown, Cooldown frame or
|
||||
-- stock indicator Model, is driven through.
|
||||
hooksecurefunc("CooldownFrame_SetTimer", SetCooldown)
|
||||
end)
|
||||
+347
-85
@@ -1,5 +1,252 @@
|
||||
pfUI:RegisterModule("easteregg", function ()
|
||||
local today = date("%m%d")
|
||||
|
||||
-- A full screen scene for the time the player is AFK on a holiday. The
|
||||
-- night fades in, and a click or coming back clears AFK and hides it.
|
||||
local function CreateScene(name, greeting, info)
|
||||
local scene = CreateFrame("Button", name, WorldFrame)
|
||||
scene:SetFrameStrata("DIALOG")
|
||||
scene:SetAllPoints()
|
||||
scene:Hide()
|
||||
|
||||
scene.night = scene:CreateTexture(nil, "BACKGROUND")
|
||||
scene.night:SetColorTexture(0,0,0,1)
|
||||
scene.night:SetGradientAlpha("VERTICAL", 0,0,0,.5, 0,0,0,1)
|
||||
scene.night:SetAllPoints()
|
||||
|
||||
scene.stext = scene:CreateFontString(nil, "ARTWORK", "GameFontWhite")
|
||||
scene.stext:SetFont(STANDARD_TEXT_FONT, 14, "OUTLINE")
|
||||
scene.stext:SetPoint("TOP", 0, -380)
|
||||
scene.stext:SetText("|cff33ffccShagu|cffffffff wishes you a")
|
||||
|
||||
scene.text = scene:CreateFontString(nil, "ARTWORK", "GameFontWhite")
|
||||
scene.text:SetFont(pfUI.media["font:BigNoodleTitling.ttf"], 38)
|
||||
scene.text:SetPoint("TOP", 0, -400)
|
||||
scene.text:SetText(greeting)
|
||||
|
||||
local exit = "|cff444444<Click> or '/afk' to exit"
|
||||
scene.dtext = scene:CreateFontString(nil, "ARTWORK", "GameFontWhite")
|
||||
scene.dtext:SetFont(STANDARD_TEXT_FONT, 14, "OUTLINE")
|
||||
scene.dtext:SetPoint("TOP", 0, -430)
|
||||
scene.dtext:SetText(info and info .. "\n\n" .. exit or exit)
|
||||
|
||||
-- Fade the night in by playing a fade-out backwards. The scene keeps an
|
||||
-- alpha of 1, which comes back when the fade ends.
|
||||
scene.dusk = scene:CreateAnimationGroup()
|
||||
local fade = scene.dusk:CreateAnimation("Alpha")
|
||||
fade:SetChange(-1)
|
||||
fade:SetDuration(.8)
|
||||
|
||||
scene:SetScript("OnShow", function()
|
||||
this.dusk:Play(true)
|
||||
end)
|
||||
|
||||
-- start over on the next AFK
|
||||
scene:SetScript("OnHide", function()
|
||||
this:StopAnimating()
|
||||
end)
|
||||
|
||||
-- /afk toggles, so send it only while AFK is still set
|
||||
scene:SetScript("OnClick", function()
|
||||
if IsChatAFK() then SendChatMessage("", "AFK") end
|
||||
this:Hide()
|
||||
end)
|
||||
|
||||
scene:RegisterEvent("PLAYER_FLAGS_CHANGED")
|
||||
scene:SetScript("OnEvent", function()
|
||||
this:SetShown(UnitIsAFK('player'))
|
||||
end)
|
||||
|
||||
return scene
|
||||
end
|
||||
|
||||
-- happy valentine's day
|
||||
if today == "0214" then
|
||||
local valentine = CreateScene("pfValentine", "happy valentine's day!")
|
||||
valentine.text:SetTextColor(1, .4, .6)
|
||||
|
||||
-- a rosy glow around the screen edges
|
||||
local glow = CreateFrame("Frame", nil, valentine)
|
||||
glow:SetAllPoints()
|
||||
glow:SetBackdrop({ edgeFile = pfUI.media["img:glow"], edgeSize = 32 })
|
||||
glow:SetBackdropBorderColor(1, .3, .5, 1)
|
||||
|
||||
-- A heart is a square turned onto its corner with a round lobe on each
|
||||
-- upper edge. The client's minimap mask is a plain white disc, so it
|
||||
-- tints into a lobe without a texture of our own. Smaller hearts are
|
||||
-- farther away, so they are darker and rise slower.
|
||||
local hearts = {}
|
||||
for i = 1, 40 do
|
||||
local width = math.random(10, 28)
|
||||
local side = width / 1.7
|
||||
local shade = .4 + width / 28 * .6
|
||||
local r, g, b = shade, shade * math.random() * .4, shade * (.2 + math.random() * .3)
|
||||
|
||||
local heart = CreateFrame("Frame", nil, valentine)
|
||||
heart:SetSize(width, width)
|
||||
heart.width = width
|
||||
|
||||
local tip = heart:CreateTexture(nil, "ARTWORK")
|
||||
tip:SetColorTexture(1, 1, 1)
|
||||
tip:SetVertexColor(r, g, b)
|
||||
tip:SetSize(side, side)
|
||||
tip:SetPoint("CENTER", 0, -side * .07)
|
||||
tip:SetRotation(math.pi / 4)
|
||||
|
||||
for _, x in ipairs({ -1, 1 }) do
|
||||
local lobe = heart:CreateTexture(nil, "ARTWORK")
|
||||
lobe:SetTexture("Textures\\MinimapMask")
|
||||
lobe:SetVertexColor(r, g, b)
|
||||
lobe:SetSize(side, side)
|
||||
lobe:SetPoint("CENTER", x * side * .354, side * .28)
|
||||
end
|
||||
|
||||
-- like the snow, but up from below the screen
|
||||
heart.float = heart:CreateAnimationGroup()
|
||||
heart.float:SetLooping("REPEAT")
|
||||
heart.float:SetIgnoreFramerateThrottle(true)
|
||||
heart.path = heart.float:CreateAnimation("Path")
|
||||
heart.path:SetCurve("SMOOTH")
|
||||
heart.points = {}
|
||||
for point = 1, 6 do
|
||||
heart.points[point] = heart.path:CreateControlPoint()
|
||||
end
|
||||
hearts[i] = heart
|
||||
end
|
||||
|
||||
local function LetThemFloat()
|
||||
local width, height = valentine:GetWidth(), valentine:GetHeight()
|
||||
for _, heart in ipairs(hearts) do
|
||||
local rise = height + heart.width
|
||||
local duration = rise / (20 + heart.width * 2)
|
||||
local sway = math.random(-30, 30)
|
||||
|
||||
heart:ClearAllPoints()
|
||||
heart:SetPoint("TOP", valentine, "BOTTOMLEFT", math.random() * width, 0)
|
||||
|
||||
heart.path:SetDuration(duration)
|
||||
heart.path:SetStartDelay(math.random() * duration)
|
||||
for point, control in ipairs(heart.points) do
|
||||
control:SetOffset(point % 2 == 1 and sway or -sway, rise * point / 6)
|
||||
end
|
||||
heart.float:Play()
|
||||
end
|
||||
end
|
||||
|
||||
-- Cupid hovers by the side, turned towards the middle
|
||||
local cupid = CreateFrame("PlayerModel", nil, valentine)
|
||||
cupid:SetSize(260, 260)
|
||||
cupid:SetPoint("BOTTOMRIGHT", -60, 60)
|
||||
cupid:SetScript("OnShow", function()
|
||||
this:SetDisplayInfo(15990)
|
||||
this:SetFacing(-.5)
|
||||
end)
|
||||
cupid:Hide()
|
||||
|
||||
valentine.dusk:SetScript("OnFinished", function()
|
||||
LetThemFloat()
|
||||
cupid:Show()
|
||||
end)
|
||||
|
||||
valentine:HookScript("OnHide", function()
|
||||
cupid:Hide()
|
||||
end)
|
||||
end
|
||||
|
||||
-- happy hallow's end
|
||||
if today == "1031" then
|
||||
local halloween = CreateScene("pfHallowsEnd", "happy hallow's end!")
|
||||
halloween.text:SetTextColor(1, .5, 0)
|
||||
|
||||
-- Candlelight glows in from the screen edges. It flickers in uneven
|
||||
-- steps of { duration, change } that end where they began, so the loop
|
||||
-- never jumps.
|
||||
local candle = CreateFrame("Frame", nil, halloween)
|
||||
candle:SetAllPoints()
|
||||
candle:SetBackdrop({ edgeFile = pfUI.media["img:glow"], edgeSize = 32 })
|
||||
candle:SetBackdropBorderColor(1, .5, .1, 1)
|
||||
|
||||
candle.flicker = candle:CreateAnimationGroup()
|
||||
candle.flicker:SetLooping("REPEAT")
|
||||
local steps = {
|
||||
{ .18, -.25 }, { .09, .1 }, { .22, -.2 }, { .14, .3 }, { .3, -.1 },
|
||||
{ .11, -.15 }, { .2, .2 }, { .16, -.3 }, { .26, .25 }, { .12, .15 },
|
||||
}
|
||||
for order, step in ipairs(steps) do
|
||||
local duration, change = unpack(step)
|
||||
local fade = candle.flicker:CreateAnimation("Alpha")
|
||||
fade:SetOrder(order)
|
||||
fade:SetDuration(duration)
|
||||
fade:SetChange(change)
|
||||
fade:SetSmoothing("IN_OUT")
|
||||
end
|
||||
|
||||
-- Once the night has fallen, undead rise along the bottom one after
|
||||
-- another, a different few on every AFK. They are creature displays, so
|
||||
-- they need no creature cache. A model frame aims its camera at the
|
||||
-- middle of the model's bounds, so the frame size alone sets how big one
|
||||
-- is. Bounds that reach far above the body, like the lich's, leave it
|
||||
-- standing too low, so it is left out.
|
||||
local undead = {
|
||||
158, -- skeleton
|
||||
201, -- green skeleton
|
||||
1245, -- skeleton mage
|
||||
137, -- ghoul
|
||||
18114, -- white-handed ghoul
|
||||
1200, -- zombie
|
||||
1201, -- green zombie
|
||||
1202, -- sea-green zombie
|
||||
915, -- banshee
|
||||
10690, -- green banshee
|
||||
146, -- ghost
|
||||
4629, -- shade
|
||||
7533, -- gargoyle
|
||||
7534, -- black gargoyle
|
||||
7854, -- blue gargoyle
|
||||
}
|
||||
|
||||
local function Rise()
|
||||
this:SetDisplayInfo(this.display)
|
||||
this:SetFacing(this.facing)
|
||||
end
|
||||
|
||||
local risen = {}
|
||||
local rising = halloween:CreateAnimationGroup()
|
||||
for i = 1, 7 do
|
||||
local size = math.random(180, 240)
|
||||
local model = CreateFrame("PlayerModel", nil, halloween)
|
||||
model:SetSize(size, size)
|
||||
model:SetPoint("BOTTOM", halloween, "BOTTOM", (i - 4) * 150 + math.random(-20, 20), math.random(-10, 20))
|
||||
model.facing = (math.random() - .5) * .8
|
||||
model:SetScript("OnShow", Rise)
|
||||
model:Hide()
|
||||
risen[i] = model
|
||||
|
||||
local rise = rising:CreateAnimation()
|
||||
rise:SetOrder(i)
|
||||
rise:SetDuration(.3)
|
||||
rise:SetScript("OnFinished", function() model:Show() end)
|
||||
end
|
||||
|
||||
halloween.dusk:SetScript("OnFinished", function()
|
||||
-- shuffle as many undead to the front as there are models
|
||||
for i, model in ipairs(risen) do
|
||||
local j = math.random(i, #undead)
|
||||
undead[i], undead[j] = undead[j], undead[i]
|
||||
model.display = undead[i]
|
||||
end
|
||||
|
||||
candle.flicker:Play()
|
||||
rising:Play()
|
||||
end)
|
||||
|
||||
halloween:HookScript("OnHide", function()
|
||||
for _, model in ipairs(risen) do
|
||||
model:Hide()
|
||||
end
|
||||
end)
|
||||
end
|
||||
|
||||
-- merry x-mas!
|
||||
if today == "1224" or today == "1225" then
|
||||
local title = (UnitFactionGroup("player") == "Horde") and PVP_RANK_18_0 or PVP_RANK_18_1
|
||||
@@ -27,89 +274,116 @@ pfUI:RegisterModule("easteregg", function ()
|
||||
_G.MARKED_AFK = "You are now |cff33ffcc" .. title .. "|r (AFK)."
|
||||
_G.MARKED_AFK_MESSAGE = "You are now |cff33ffcc" .. title .. "|r (AFK): %s"
|
||||
_G.CLEARED_AFK = "You are no longer |cff33ffcc" .. title .. "|r (AFK).\n|cff33ffccShagu|cffffffff wishes you a merry christmas. Thanks for using |cff33ffccpf|cffffffffUI|cffffffff!|r"
|
||||
|
||||
local snow = CreateScene("pfSnowfall", "merry christmas!")
|
||||
snow.text:SetTextColor(1, .25, .25)
|
||||
|
||||
-- Flakes fall past the screen for good and sway on the way down. Before
|
||||
-- each fall a flake waits above the screen for a while, which spreads
|
||||
-- them out.
|
||||
local flakes = {}
|
||||
for i = 1, 200 do
|
||||
local flake = snow:CreateTexture(nil, "OVERLAY")
|
||||
flake.fall = flake:CreateAnimationGroup()
|
||||
flake.fall:SetLooping("REPEAT")
|
||||
flake.fall:SetIgnoreFramerateThrottle(true)
|
||||
flake.path = flake.fall:CreateAnimation("Path")
|
||||
flake.path:SetCurve("SMOOTH")
|
||||
flake.points = {}
|
||||
for point = 1, 6 do
|
||||
flake.points[point] = flake.path:CreateControlPoint()
|
||||
end
|
||||
flakes[i] = flake
|
||||
end
|
||||
|
||||
local function LetItSnow()
|
||||
local width, height = snow:GetWidth(), snow:GetHeight()
|
||||
for _, flake in ipairs(flakes) do
|
||||
-- bigger flakes are closer, so they are brighter and fall faster
|
||||
local size = math.random(2, 5)
|
||||
local fall = height + size
|
||||
local duration = fall / (40 + size * 20)
|
||||
local sway = math.random(-20, 20)
|
||||
|
||||
flake:SetSize(size, size)
|
||||
flake:SetColorTexture(1, 1, 1, .3 + size * .14)
|
||||
flake:ClearAllPoints()
|
||||
flake:SetPoint("BOTTOM", snow, "TOPLEFT", math.random() * width, 0)
|
||||
|
||||
flake.path:SetDuration(duration)
|
||||
flake.path:SetStartDelay(math.random() * duration)
|
||||
for point, control in ipairs(flake.points) do
|
||||
control:SetOffset(point % 2 == 1 and sway or -sway, -fall * point / 6)
|
||||
end
|
||||
flake.fall:Play()
|
||||
end
|
||||
end
|
||||
|
||||
-- Snow piles up at the bottom for as long as the player stays AFK. The
|
||||
-- drift plays a shrink backwards, so it grows to its full height over
|
||||
-- ten minutes and keeps it once the group ends.
|
||||
local pile = snow:CreateTexture(nil, "ARTWORK")
|
||||
pile:SetPoint("BOTTOMLEFT", 0, 0)
|
||||
pile:SetPoint("BOTTOMRIGHT", 0, 0)
|
||||
pile:SetHeight(120)
|
||||
pile:SetColorTexture(1, 1, 1, 1)
|
||||
pile:SetGradientAlpha("VERTICAL", 1,1,1,.9, 1,1,1,0)
|
||||
pile:Hide()
|
||||
|
||||
pile.grow = pile:CreateAnimationGroup()
|
||||
local grow = pile.grow:CreateAnimation("Scale")
|
||||
grow:SetOrigin("BOTTOM", 0, 0)
|
||||
grow:SetScale(1, .01)
|
||||
grow:SetDuration(600)
|
||||
|
||||
snow.dusk:SetScript("OnFinished", function()
|
||||
LetItSnow()
|
||||
pile:Show()
|
||||
pile.grow:Play(true)
|
||||
end)
|
||||
|
||||
snow:HookScript("OnHide", function()
|
||||
pile:Hide()
|
||||
end)
|
||||
end
|
||||
|
||||
-- happy new year
|
||||
if today == "1231" or today == "0101" then
|
||||
local fireworks = CreateFrame("Button", "pfFireworks", WorldFrame)
|
||||
fireworks:SetFrameStrata("DIALOG")
|
||||
fireworks:SetAllPoints()
|
||||
fireworks:Hide()
|
||||
local fireworks = CreateScene("pfFireworks", "happy new year!",
|
||||
"Another year with |cff33ffccpf|rUI has passed.\nThanks for continuing to use it!")
|
||||
|
||||
fireworks.night = fireworks:CreateTexture("LOW")
|
||||
fireworks.night:SetTexture(0,0,0,1)
|
||||
fireworks.night:SetGradientAlpha("VERTICAL", 0,0,0,.5, 0,0,0,1)
|
||||
fireworks.night:SetAllPoints()
|
||||
-- Each explosion grows by 100px and fades out over 5/3s, then goes back
|
||||
-- to the pool.
|
||||
local explosions = CreateTexturePool(fireworks, "OVERLAY")
|
||||
|
||||
fireworks.stext = fireworks:CreateFontString("Status", "LOW", "GameFontWhite")
|
||||
fireworks.stext:SetFont(STANDARD_TEXT_FONT, 14, "OUTLINE")
|
||||
fireworks.stext:SetPoint("TOP", 0, -380)
|
||||
fireworks.stext:SetText("|cff33ffccShagu|cffffffff wishes you a")
|
||||
|
||||
fireworks.text = fireworks:CreateFontString("Status", "LOW", "GameFontWhite")
|
||||
fireworks.text:SetFont(pfUI.media["font:BigNoodleTitling.ttf"], 38)
|
||||
fireworks.text:SetPoint("TOP", 0, -400)
|
||||
fireworks.text:SetText("happy new year!")
|
||||
|
||||
fireworks.dtext = fireworks:CreateFontString("Status", "LOW", "GameFontWhite")
|
||||
fireworks.dtext:SetFont(STANDARD_TEXT_FONT, 14, "OUTLINE")
|
||||
fireworks.dtext:SetPoint("TOP", 0, -430)
|
||||
fireworks.dtext:SetText("Another year with |cff33ffccpf|rUI has passed.\nThanks for continuing to use it!\n\n|cff444444<Click> or '/afk' to exit")
|
||||
|
||||
fireworks:SetScript("OnClick", function()
|
||||
this:Hide()
|
||||
end)
|
||||
|
||||
-- trigger fireworks when being AFK
|
||||
fireworks:RegisterEvent("PLAYER_FLAGS_CHANGED")
|
||||
fireworks:SetScript("OnEvent", function()
|
||||
local isAFK = UnitIsAFK('player')
|
||||
if isAFK then
|
||||
this:SetAlpha(0)
|
||||
local function Explode(x, y, size, r, g, b, a)
|
||||
local tex = explosions:Acquire()
|
||||
if not tex.burst then
|
||||
tex.burst = tex:CreateAnimationGroup()
|
||||
tex.burst:SetIgnoreFramerateThrottle(true)
|
||||
tex.burst.grow = tex.burst:CreateAnimation("Scale")
|
||||
tex.burst.grow:SetDuration(5/3)
|
||||
local fade = tex.burst:CreateAnimation("Alpha")
|
||||
fade:SetChange(-1)
|
||||
fade:SetDuration(5/3)
|
||||
tex.burst:SetScript("OnFinished", function() explosions:Release(tex) end)
|
||||
end
|
||||
this:SetShown(isAFK)
|
||||
end)
|
||||
|
||||
-- basic explosion animation
|
||||
local function animation()
|
||||
local fps = (60 / math.max(GetFramerate(), 1))
|
||||
this:SetWidth(this:GetWidth()+fps)
|
||||
this:SetHeight(this:GetHeight()+fps)
|
||||
this:SetAlpha(this:GetAlpha()-fps*.01)
|
||||
if this:GetAlpha() <= 0 then
|
||||
this.free = true
|
||||
this:Hide()
|
||||
end
|
||||
tex:SetPoint("CENTER", fireworks, "TOPLEFT", x, y)
|
||||
tex:SetSize(size, size)
|
||||
tex:SetColorTexture(r, g, b, a)
|
||||
tex.burst.grow:SetScale((size + 100) / size, (size + 100) / size)
|
||||
tex:Show()
|
||||
tex.burst:Play()
|
||||
end
|
||||
|
||||
-- cache explosions to reuse frames
|
||||
local explosions = {}
|
||||
local function GetExplosion()
|
||||
for id, frame in pairs(explosions) do
|
||||
if frame.free then
|
||||
frame.free = nil
|
||||
return frame
|
||||
end
|
||||
end
|
||||
|
||||
local frame = CreateFrame("Frame", nil, fireworks)
|
||||
frame:SetScript("OnUpdate", animation)
|
||||
frame.tex = frame:CreateTexture("HIGH")
|
||||
frame.tex:SetAllPoints()
|
||||
|
||||
table.insert(explosions, frame)
|
||||
|
||||
return frame
|
||||
end
|
||||
fireworks:HookScript("OnHide", function()
|
||||
explosions:ReleaseAll()
|
||||
end)
|
||||
|
||||
-- create random amount of fireworks at random positions
|
||||
local width, height = GetScreenWidth(), GetScreenHeight()
|
||||
fireworks:SetScript("OnUpdate", function()
|
||||
-- fade in the night
|
||||
if this:GetAlpha() < 1 then
|
||||
this:SetAlpha(this:GetAlpha() + .02)
|
||||
return
|
||||
end
|
||||
if this.dusk:IsPlaying() then return end
|
||||
|
||||
-- let the "happy new year" blink
|
||||
local r,g,b = this.text:GetTextColor()
|
||||
@@ -117,26 +391,14 @@ pfUI:RegisterModule("easteregg", function ()
|
||||
|
||||
if ( this.tick or 1) > GetTime() then return else this.tick = GetTime() + math.random() - .2 end
|
||||
|
||||
local x,y = math.random(1, width), -1*math.random(1,height)
|
||||
local x,y = math.random(1, this:GetWidth()), -1*math.random(1, this:GetHeight())
|
||||
|
||||
-- create the base explosion
|
||||
local f = GetExplosion()
|
||||
f:ClearAllPoints()
|
||||
f:SetPoint("CENTER", fireworks, "TOPLEFT", x, y)
|
||||
f:SetSize(25, 25)
|
||||
f.tex:SetTexture(1,1,1,.5)
|
||||
f:SetAlpha(1)
|
||||
f:Show()
|
||||
Explode(x, y, 25, 1, 1, 1, .5)
|
||||
|
||||
-- create random amount of colored explosions
|
||||
for i=1, math.random(20) do
|
||||
local f = GetExplosion()
|
||||
f:ClearAllPoints()
|
||||
f:SetPoint("CENTER", fireworks, "TOPLEFT", x+(math.random(0,100)-50), y+(math.random(0,100)-50))
|
||||
f:SetSize(2, 2)
|
||||
f.tex:SetTexture(math.random(),math.random(),math.random(),1)
|
||||
f:SetAlpha(1)
|
||||
f:Show()
|
||||
Explode(x+(math.random(0,100)-50), y+(math.random(0,100)-50), 2, math.random(), math.random(), math.random(), 1)
|
||||
end
|
||||
end)
|
||||
end
|
||||
|
||||
@@ -132,8 +132,7 @@ pfUI:RegisterModule("energytick", function()
|
||||
energytick:SetAllPoints(pfUI.uf.player.power.bar)
|
||||
energytick:RegisterEvent("PLAYER_ENTERING_WORLD")
|
||||
energytick:RegisterUnitEvent("UNIT_DISPLAYPOWER", "player")
|
||||
energytick:RegisterUnitEvent("UNIT_ENERGY", "player")
|
||||
energytick:RegisterUnitEvent("UNIT_MANA", "player")
|
||||
energytick:RegisterUnitEvent("UNIT_POWER_UPDATE", "player")
|
||||
energytick:RegisterUnitEvent("UNIT_SPELLCAST_SUCCEEDED", "player")
|
||||
energytick:RegisterUnitEvent("UNIT_SPELLCAST_CHANNEL_STOP", "player")
|
||||
energytick:RegisterEvent("SPELLS_CHANGED")
|
||||
@@ -147,6 +146,7 @@ pfUI:RegisterModule("energytick", function()
|
||||
this.mode = "ENERGY"
|
||||
this:Show()
|
||||
else
|
||||
this.mode = nil
|
||||
this:Hide()
|
||||
end
|
||||
|
||||
@@ -155,7 +155,8 @@ pfUI:RegisterModule("energytick", function()
|
||||
return
|
||||
end
|
||||
|
||||
if event == "PLAYER_ENTERING_WORLD" then
|
||||
-- a shift swaps the power the gains are measured on
|
||||
if event == "PLAYER_ENTERING_WORLD" or event == "UNIT_DISPLAYPOWER" then
|
||||
this.lastPower = UnitPower("player")
|
||||
end
|
||||
|
||||
@@ -179,7 +180,8 @@ pfUI:RegisterModule("energytick", function()
|
||||
return
|
||||
end
|
||||
|
||||
if (event == "UNIT_MANA" or event == "UNIT_ENERGY") and arg1 == "player" then
|
||||
-- only the shown power: a cat druid's mana regen is not an energy gain
|
||||
if event == "UNIT_POWER_UPDATE" and arg2 == this.mode then
|
||||
local power = UnitPower("player")
|
||||
local diff = this.lastPower and (power - this.lastPower) or 0
|
||||
this.lastPower = power
|
||||
@@ -260,7 +262,7 @@ pfUI:RegisterModule("energytick", function()
|
||||
if fsrOverlay then
|
||||
-- classic style: a translucent shade on top of the power bar's own fill
|
||||
energytick.fsrbar = energytick:CreateTexture(nil, "ARTWORK")
|
||||
energytick.fsrbar:SetTexture(1, 1, 1, .15)
|
||||
energytick.fsrbar:SetColorTexture(1, 1, 1, .15)
|
||||
energytick.fsrbar:SetPoint("TOPLEFT", 0, 0)
|
||||
energytick.fsrbar:SetPoint("BOTTOMLEFT", 0, 0)
|
||||
else
|
||||
|
||||
+38
-4
@@ -86,6 +86,12 @@ pfUI:RegisterModule("eqcompare", function ()
|
||||
end
|
||||
end
|
||||
|
||||
local function HideCompareItem(self)
|
||||
local shoppingTooltip1, shoppingTooltip2 = unpack(self.shoppingTooltips or { ShoppingTooltip1, ShoppingTooltip2 })
|
||||
shoppingTooltip1:Hide()
|
||||
shoppingTooltip2:Hide()
|
||||
end
|
||||
|
||||
local prevMerchant = ShoppingTooltip1.SetMerchantCompareItem
|
||||
local function SetMerchantCompareItem(self, index, compareItem)
|
||||
if compareItem == 1 then
|
||||
@@ -135,15 +141,22 @@ pfUI:RegisterModule("eqcompare", function ()
|
||||
-- spot. Reading the rect inside the Set* call picks the side against the
|
||||
-- position the tooltip is about to leave, so place the compare a frame later.
|
||||
local deferred
|
||||
if C_AddOns.DoesAddOnExist("Guda") then
|
||||
EventUtil.ContinueOnAddOnLoaded("Guda", function()
|
||||
deferred = true
|
||||
end)
|
||||
HookAddon("Guda", function()
|
||||
deferred = true
|
||||
end)
|
||||
|
||||
-- the item each hooked tooltip shows, for MODIFIER_STATE_CHANGED. Every Set*
|
||||
-- clears the tooltip before it builds, so OnTooltipCleared drops the link
|
||||
-- of the previous content before the hook stores the new one.
|
||||
local links = {}
|
||||
local function forget()
|
||||
links[this] = nil
|
||||
end
|
||||
|
||||
local function makeHook(getter)
|
||||
return function(tooltip, arg1, arg2, arg3)
|
||||
local link = getter(arg1, arg2, arg3)
|
||||
links[tooltip] = link
|
||||
if not deferred then
|
||||
return ShowCompareItem(tooltip, link)
|
||||
end
|
||||
@@ -159,8 +172,29 @@ pfUI:RegisterModule("eqcompare", function ()
|
||||
for setter, getter in pairs(TooltipHooks) do
|
||||
hooksecurefunc(tooltip, setter, makeHook(getter))
|
||||
end
|
||||
tooltip:HookScript("OnTooltipCleared", forget)
|
||||
tooltip:HookScript("OnHide", forget)
|
||||
end
|
||||
|
||||
-- pressing or releasing shift over an item toggles its comparison at once.
|
||||
-- Merchant and auction comparisons show regardless of shift and never set
|
||||
-- a link, so they stay up.
|
||||
pfUI.events:RegisterFrameEventAndCallback("MODIFIER_STATE_CHANGED", function(_, key)
|
||||
if key ~= "LSHIFT" and key ~= "RSHIFT" then return end
|
||||
|
||||
local shift = IsShiftKeyDown()
|
||||
for tooltip, link in pairs(links) do
|
||||
-- a hidden tooltip got its item from a scan, not a hover
|
||||
if tooltip:IsShown() then
|
||||
if shift then
|
||||
ShowCompareItem(tooltip, link, shift)
|
||||
elseif C.tooltip.compare.showalways ~= "1" or C_Item.IsEquippedItem(link) then
|
||||
HideCompareItem(tooltip)
|
||||
end
|
||||
end
|
||||
end
|
||||
end)
|
||||
|
||||
HookTooltip(GameTooltip)
|
||||
|
||||
pfUI.eqcompare.HookTooltip = HookTooltip
|
||||
|
||||
+1343
-208
File diff suppressed because it is too large
Load Diff
@@ -1,10 +1,6 @@
|
||||
pfUI:RegisterModule("farmmode", function ()
|
||||
local function ToggleFarmMode()
|
||||
if pfUI.farmmap:IsShown() then
|
||||
pfUI.farmmap:Hide()
|
||||
else
|
||||
pfUI.farmmap:Show()
|
||||
end
|
||||
pfUI.farmmap:SetShown(not pfUI.farmmap:IsShown())
|
||||
end
|
||||
|
||||
local function MoveNodes(layer)
|
||||
|
||||
+11
-36
@@ -16,51 +16,26 @@ pfUI:RegisterModule("focus", function ()
|
||||
|
||||
-- PLAYER_FOCUS_CHANGED drives immediate refresh on focus assign / clear.
|
||||
-- Between events, ClassicAPI fires UNIT_* (health/mana/aura/...) with
|
||||
-- arg1 == "focus" and arg1 == "focustarget", so both frames update
|
||||
-- event-driven like target and need no polling tick.
|
||||
local refresher = CreateFrame("Frame")
|
||||
refresher:RegisterEvent("PLAYER_FOCUS_CHANGED")
|
||||
refresher:SetScript("OnEvent", function()
|
||||
pfUI.uf.focus.instantRefresh = true
|
||||
-- arg1 == "focus", so the bars update event-driven like target.
|
||||
-- focustarget is a chained unit like targettarget: UNIT_TARGET follows the
|
||||
-- focus retargeting, and a new focus only needs its visibility re-checked,
|
||||
-- which queues the full refresh when its target is a different unit.
|
||||
pfUI.events:RegisterFrameEventAndCallback("PLAYER_FOCUS_CHANGED", function()
|
||||
pfUI.uf:RefreshUnit(pfUI.uf.focus, "all")
|
||||
pfUI.uf.focustarget.instantRefresh = true
|
||||
pfUI.uf:RefreshUnit(pfUI.uf.focustarget, "all")
|
||||
pfUI.uf.focustarget:UpdateVisibility()
|
||||
end)
|
||||
end)
|
||||
|
||||
-- /focus and /clearfocus live in ClassicAPI's SlashCommandsRegistry now.
|
||||
-- /focusname is pfUI-specific because the engine has no name→GUID
|
||||
-- lookup for off-screen units — we resolve via a short target-swap.
|
||||
-- `/focus Name` takes the nearest prefix match; /focusname tries the exact
|
||||
-- name first, so "Bob" still wins over a nearer "Bobby".
|
||||
|
||||
pfUI.api.RegisterSlashCommand("PFFOCUSNAME", { '/focusname', '/pffocusname' }, function(msg)
|
||||
if msg == "" then return end
|
||||
|
||||
local prevGUID = UnitGUID("target")
|
||||
local prevPlayer = UnitIsUnit("target", "player")
|
||||
|
||||
-- Suppress async "Unknown unit" errors fired by TargetByName misses.
|
||||
UIErrorsFrame:UnregisterEvent("UI_ERROR_MESSAGE")
|
||||
|
||||
-- Try exact match first, then prefix match via /target.
|
||||
TargetByName(msg, true)
|
||||
if not UnitExists("target") then
|
||||
SlashCmdList.TARGET(msg)
|
||||
end
|
||||
|
||||
if UnitExists("target") then
|
||||
FocusUnit("target")
|
||||
end
|
||||
|
||||
RunNextFrame(function()
|
||||
UIErrorsFrame:RegisterEvent("UI_ERROR_MESSAGE")
|
||||
end)
|
||||
|
||||
if prevGUID and prevGUID ~= "0x0000000000000000" then
|
||||
TargetUnit(prevGUID)
|
||||
elseif prevPlayer then
|
||||
TargetUnit("player")
|
||||
else
|
||||
ClearTarget()
|
||||
local unit = UnitTokenFromName(msg, true) or UnitTokenFromName(msg)
|
||||
if unit then
|
||||
FocusUnit(unit)
|
||||
end
|
||||
end, true)
|
||||
|
||||
|
||||
+1
-1
@@ -456,7 +456,7 @@ pfUI:RegisterSkin("Friends", function ()
|
||||
end
|
||||
|
||||
-- all RaidFrame buttons are in Blizzard_RaidUI in Turtle WoW
|
||||
HookAddonOrVariable("Blizzard_RaidUI", function()
|
||||
HookAddon("Blizzard_RaidUI", function()
|
||||
if RaidFrameRaidInfoButton then SkinButton(RaidFrameRaidInfoButton) end
|
||||
if RaidFrameConvertToRaidButton then SkinButton(RaidFrameConvertToRaidButton) end
|
||||
if RaidFrameReadyCheckButton then SkinButton(RaidFrameReadyCheckButton) end
|
||||
|
||||
+1
-1
@@ -35,7 +35,7 @@ pfUI:RegisterModule("group", function ()
|
||||
end
|
||||
|
||||
if C.unitframes.grouptarget.visible == "1" and active then
|
||||
pfUI.uf.group[i].target = pfUI.uf.group[i].target or pfUI.uf:CreateUnitFrame("Party" .. i .. "Target", nil, C.unitframes.grouptarget, 0.2)
|
||||
pfUI.uf.group[i].target = pfUI.uf.group[i].target or pfUI.uf:CreateUnitFrame("Party" .. i .. "Target", nil, C.unitframes.grouptarget)
|
||||
pfUI.uf.group[i].target:UpdateFrameSize()
|
||||
pfUI.uf.group[i].target:SetPoint("TOPLEFT", pfUI.uf.group[i], "TOPRIGHT", 3*default_border, 0)
|
||||
pfUI.uf.group[i].target:UpdateConfig()
|
||||
|
||||
@@ -37,11 +37,7 @@ pfUI:RegisterModule("gryphons", function ()
|
||||
frame.texture:SetTexCoord(1, 0, 0, 1)
|
||||
end
|
||||
|
||||
if texture then
|
||||
frame:Show()
|
||||
else
|
||||
frame:Hide()
|
||||
end
|
||||
frame:SetShown(texture)
|
||||
end
|
||||
end
|
||||
|
||||
|
||||
+219
-194
@@ -1,5 +1,5 @@
|
||||
pfUI:RegisterModule("gui", function ()
|
||||
local Reload, U, CreateConfig, CreateTabFrame, CreateArea, CreateGUIEntry, EntryUpdate
|
||||
local Reload, U, CreateConfig, CreateTabFrame, CreateArea, CreateGUIEntry, EntryOnEnter, EntryOnLeave
|
||||
|
||||
-- "searchDB" gets populated when CreateConfig is called. The table holds
|
||||
-- information about the title, its parent buttons and the frame itself:
|
||||
@@ -47,25 +47,12 @@ pfUI:RegisterModule("gui", function ()
|
||||
end
|
||||
end})
|
||||
|
||||
function EntryUpdate()
|
||||
-- detect and skip during dropdowns
|
||||
local focus = GetMouseFocus()
|
||||
if focus and focus.parent and focus.parent.menu then
|
||||
if this.over then
|
||||
this.tex:Hide()
|
||||
this.over = nil
|
||||
end
|
||||
return
|
||||
end
|
||||
function EntryOnEnter()
|
||||
this.tex:Show()
|
||||
end
|
||||
|
||||
local over = MouseIsOverHitRect(this)
|
||||
if over and not this.over then
|
||||
this.tex:Show()
|
||||
this.over = true
|
||||
elseif not over and this.over then
|
||||
this.tex:Hide()
|
||||
this.over = nil
|
||||
end
|
||||
function EntryOnLeave()
|
||||
this.tex:Hide()
|
||||
end
|
||||
|
||||
function CreateConfig(ufunc, caption, category, config, widget, values, skip, named, type)
|
||||
@@ -116,9 +103,13 @@ pfUI:RegisterModule("gui", function ()
|
||||
if not widget or (widget and widget ~= "button") then
|
||||
|
||||
if widget ~= "header" then
|
||||
frame:SetScript("OnUpdate", EntryUpdate)
|
||||
-- light up while the cursor is over the row; its widgets pass
|
||||
-- their mouse motion on to it below
|
||||
frame:SetMouseMotionEnabled(true)
|
||||
frame:SetScript("OnEnter", EntryOnEnter)
|
||||
frame:SetScript("OnLeave", EntryOnLeave)
|
||||
frame.tex = frame:CreateTexture(nil, "BACKGROUND")
|
||||
frame.tex:SetTexture(1,1,1,.05)
|
||||
frame.tex:SetColorTexture(1,1,1,.05)
|
||||
frame.tex:SetAllPoints()
|
||||
frame.tex:Hide()
|
||||
end
|
||||
@@ -183,14 +174,14 @@ pfUI:RegisterModule("gui", function ()
|
||||
frame.color:SetHeight(12)
|
||||
CreateBackdrop(frame.color)
|
||||
frame.color:SetPoint("RIGHT" , -5, 1)
|
||||
frame.color.prev = frame.color.backdrop:CreateTexture("OVERLAY")
|
||||
frame.color.prev = frame.color.backdrop:CreateTexture(nil, "OVERLAY")
|
||||
frame.color.prev:SetAllPoints(frame.color)
|
||||
|
||||
local cr, cg, cb, ca = strsplit(",", category[config])
|
||||
if not cr or not cg or not cb or not ca then
|
||||
cr, cg, cb, ca = 1, 1, 1, 1
|
||||
end
|
||||
frame.color.prev:SetTexture(cr,cg,cb,ca)
|
||||
frame.color.prev:SetColorTexture(cr,cg,cb,ca)
|
||||
|
||||
frame.color:SetScript("OnClick", function()
|
||||
local cr, cg, cb, ca = strsplit(",", category[config])
|
||||
@@ -208,7 +199,7 @@ pfUI:RegisterModule("gui", function ()
|
||||
b = round(b, 3)
|
||||
a = round(a, 3)
|
||||
|
||||
preview:SetTexture(r,g,b,a)
|
||||
preview:SetColorTexture(r,g,b,a)
|
||||
|
||||
if not this:GetParent():IsShown() then
|
||||
category[config] = r .. "," .. g .. "," .. b .. "," .. a
|
||||
@@ -218,7 +209,7 @@ pfUI:RegisterModule("gui", function ()
|
||||
end
|
||||
|
||||
function ColorPickerFrame.cancelFunc()
|
||||
preview:SetTexture(cr,cg,cb,ca)
|
||||
preview:SetColorTexture(cr,cg,cb,ca)
|
||||
end
|
||||
|
||||
ColorPickerFrame.opacityFunc = ColorPickerFrame.func
|
||||
@@ -344,45 +335,43 @@ pfUI:RegisterModule("gui", function ()
|
||||
|
||||
-- use dropdown widget
|
||||
if widget == "dropdown" and values then
|
||||
frame.input = CreateDropDownButton(nil, frame)
|
||||
frame.input:SetBackdrop(nil)
|
||||
frame.input.menuframe:SetParent(pfUI.gui)
|
||||
local function IsSelected(value)
|
||||
return category[config] == value
|
||||
end
|
||||
|
||||
local function SetSelected(value)
|
||||
if category[config] ~= value then
|
||||
category[config] = value
|
||||
if ufunc then ufunc() else pfUI.gui.settingChanged = true end
|
||||
pfUI.events:TriggerEvent("config:changed", category, config)
|
||||
end
|
||||
end
|
||||
|
||||
frame.input = CreateFrame("DropdownButton", nil, frame, "pfUIDropdownTemplate")
|
||||
frame.input:SetPoint("RIGHT", frame, "RIGHT", 0, 0)
|
||||
frame.input:SetWidth(180)
|
||||
frame.input:SetMenu(function()
|
||||
local menu = {}
|
||||
|
||||
for i, k in pairs(_G.type(values) == "function" and values() or values) do
|
||||
local entry = {}
|
||||
frame.input:SetupMenu(function(dropdown, rootDescription)
|
||||
for _, k in pairs(_G.type(values) == "function" and values() or values) do
|
||||
-- get human readable
|
||||
local value, text = strsplit(":", k)
|
||||
text = text or value
|
||||
|
||||
entry.text = text
|
||||
entry.func = function()
|
||||
if category and category[config] ~= value then
|
||||
category[config] = value
|
||||
if ufunc then ufunc() else pfUI.gui.settingChanged = true end
|
||||
pfUI.events:TriggerEvent("config:changed", category, config)
|
||||
end
|
||||
end
|
||||
|
||||
if category and category[config] == value then
|
||||
frame.input.current = i
|
||||
end
|
||||
|
||||
table.insert(menu, entry)
|
||||
rootDescription:CreateRadio(text or value, IsSelected, SetSelected, value)
|
||||
end
|
||||
|
||||
return menu
|
||||
end)
|
||||
|
||||
frame.input:SetSelection(frame.input.current)
|
||||
end
|
||||
|
||||
-- use list widget
|
||||
if widget == "list" then
|
||||
-- index of the selected entry among the "#" separated ones
|
||||
local selected
|
||||
|
||||
local function IsSelected(index)
|
||||
return index == selected
|
||||
end
|
||||
|
||||
local function Select(index)
|
||||
selected = index
|
||||
end
|
||||
|
||||
frame.del = CreateFrame("Button", nil, frame, "UIPanelButtonTemplate")
|
||||
SkinButton(frame.del)
|
||||
frame.del:SetWidth(16)
|
||||
@@ -392,15 +381,16 @@ pfUI:RegisterModule("gui", function ()
|
||||
frame.del:SetText("-")
|
||||
frame.del:SetTextColor(1,.5,.5,1)
|
||||
frame.del:SetScript("OnClick", function()
|
||||
local sel = frame.input:GetSelection()
|
||||
if not selected then return end
|
||||
local newconf = ""
|
||||
for id, val in pairs({strsplit("#", category[config])}) do
|
||||
if id ~= sel then newconf = newconf .. "#" .. val end
|
||||
for id, val in ipairs({strsplit("#", category[config])}) do
|
||||
if id ~= selected and val ~= "" then newconf = newconf .. "#" .. val end
|
||||
end
|
||||
selected = nil
|
||||
category[config] = newconf
|
||||
if ufunc then ufunc() else pfUI.gui.settingChanged = true end
|
||||
pfUI.events:TriggerEvent("config:changed", category, config)
|
||||
frame.input:UpdateMenu()
|
||||
frame.input:GenerateMenu()
|
||||
end)
|
||||
|
||||
frame.add = CreateFrame("Button", nil, frame, "UIPanelButtonTemplate")
|
||||
@@ -416,24 +406,26 @@ pfUI:RegisterModule("gui", function ()
|
||||
category[config] = category[config] .. "#" .. this:GetParent().input:GetText()
|
||||
if ufunc then ufunc() else pfUI.gui.settingChanged = true end
|
||||
pfUI.events:TriggerEvent("config:changed", category, config)
|
||||
frame.input:UpdateMenu()
|
||||
frame.input:GenerateMenu()
|
||||
end, false, true)
|
||||
end)
|
||||
|
||||
frame.input = CreateDropDownButton(nil, frame)
|
||||
frame.input:SetBackdrop(nil)
|
||||
frame.input.menuframe:SetParent(pfUI.gui)
|
||||
frame.input = CreateFrame("DropdownButton", nil, frame, "pfUIDropdownTemplate")
|
||||
frame.input:SetPoint("RIGHT", frame.add, "LEFT", -2, 0)
|
||||
frame.input:SetWidth(140)
|
||||
frame.input:SetMenu(function()
|
||||
local menu = {}
|
||||
for i, val in pairs({strsplit("#", category[config])}) do
|
||||
table.insert(menu, { text = val })
|
||||
frame.input:SetupMenu(function(dropdown, rootDescription)
|
||||
for id, val in ipairs({strsplit("#", category[config])}) do
|
||||
if val ~= "" then
|
||||
rootDescription:CreateRadio(val, IsSelected, Select, id)
|
||||
end
|
||||
end
|
||||
return menu
|
||||
end)
|
||||
end
|
||||
|
||||
for _, child in ipairs({ frame:GetChildren() }) do
|
||||
child:SetPropagateMouseMotion(true)
|
||||
end
|
||||
|
||||
return frame
|
||||
end
|
||||
|
||||
@@ -498,31 +490,32 @@ pfUI:RegisterModule("gui", function ()
|
||||
f.button = parent[title]
|
||||
|
||||
f.bg = f:CreateTexture(nil, "BACKGROUND")
|
||||
f.bg:SetTexture(1,1,1,.05)
|
||||
f.bg:SetColorTexture(1,1,1,.05)
|
||||
f.bg:SetAllPoints()
|
||||
|
||||
f:SetScript("OnShow", function()
|
||||
this.indexed = true
|
||||
this.button.text:SetTextColor(.2,1,.8,1)
|
||||
this.button.bg:SetTexture(1,1,1,1)
|
||||
this.button.bg:SetColorTexture(1,1,1,1)
|
||||
this.button.bg:SetGradientAlpha("HORIZONTAL", 0,0,0,0, 1,1,1,.05)
|
||||
end)
|
||||
|
||||
f:SetScript("OnHide", function()
|
||||
this.button.text:SetTextColor(1,1,1,1)
|
||||
this.button.bg:SetTexture(0,0,0,0)
|
||||
this.button.bg:SetColorTexture(0,0,0,0)
|
||||
end)
|
||||
|
||||
-- are we a frame with contents?
|
||||
if func then
|
||||
f.scroll = CreateScrollFrame(nil, f)
|
||||
f.scroll = CreateFrame("ScrollFrame", nil, f, "pfUIScrollFrameTemplate")
|
||||
SetAllPointsOffset(f.scroll, f, 2)
|
||||
f.scroll.content = CreateScrollChild(nil, f.scroll)
|
||||
f.scroll.content = f.scroll.Content
|
||||
f.scroll.content.parent = f.scroll
|
||||
f.scroll.content:SetScript("OnShow", function()
|
||||
if not this.setup then
|
||||
func()
|
||||
this.setup = true
|
||||
this.parent:UpdateScrollChildRect()
|
||||
end
|
||||
end)
|
||||
end
|
||||
@@ -695,7 +688,10 @@ pfUI:RegisterModule("gui", function ()
|
||||
SkinButton(pfUI.gui.share)
|
||||
|
||||
-- searchbar
|
||||
local function SearchEntryClick()
|
||||
local results -- the result list, made with the search page on the first search
|
||||
local highlighted -- the config row the last clicked result points at
|
||||
|
||||
local function SearchResultClick()
|
||||
-- clear search focus
|
||||
pfUI.gui.search:ClearFocus()
|
||||
|
||||
@@ -705,35 +701,44 @@ pfUI:RegisterModule("gui", function ()
|
||||
end
|
||||
|
||||
-- highlight matched entry
|
||||
if not this.obj[-1].highlight then
|
||||
this.obj[-1].highlight = this.obj[-1]:CreateTexture(nil, "OVERLAY")
|
||||
this.obj[-1].highlight:SetAllPoints()
|
||||
this.obj[-1].highlight:SetTexture(.2,1,.8,.2)
|
||||
if highlighted then highlighted.highlight:Hide() end
|
||||
highlighted = this.obj[-1]
|
||||
if not highlighted.highlight then
|
||||
highlighted.highlight = highlighted:CreateTexture(nil, "OVERLAY")
|
||||
highlighted.highlight:SetAllPoints()
|
||||
highlighted.highlight:SetColorTexture(.2,1,.8,.2)
|
||||
end
|
||||
this.obj[-1].highlight:Show()
|
||||
highlighted.highlight:Show()
|
||||
end
|
||||
|
||||
local function CreateSearchEntry(parent, i)
|
||||
local f = CreateFrame("Button", nil, parent)
|
||||
f:SetPoint("TOPLEFT", 5, -5 + (i-1)*-25)
|
||||
f:SetWidth(565)
|
||||
f:SetHeight(20)
|
||||
f:SetScript("OnClick", SearchEntryClick)
|
||||
f:SetScript("OnUpdate", EntryUpdate)
|
||||
local function InitSearchResult(f, obj)
|
||||
-- one-time setup of a pooled row
|
||||
if not f.text then
|
||||
f:SetScript("OnClick", SearchResultClick)
|
||||
f:SetScript("OnEnter", EntryOnEnter)
|
||||
f:SetScript("OnLeave", EntryOnLeave)
|
||||
|
||||
f.text = f:CreateFontString("Status", "LOW", "GameFontWhite")
|
||||
f.text:SetFont(pfUI.font_default, pfUI_config.global.font_size, "OUTLINE")
|
||||
f.text:SetAllPoints()
|
||||
f.text:SetJustifyH("LEFT")
|
||||
f.text:SetJustifyV("CENTER")
|
||||
f.text:SetTextColor(.5,.5,.5)
|
||||
f.text = f:CreateFontString(nil, "LOW", "GameFontWhite")
|
||||
f.text:SetFont(pfUI.font_default, pfUI_config.global.font_size, "OUTLINE")
|
||||
f.text:SetAllPoints()
|
||||
f.text:SetJustifyH("LEFT")
|
||||
f.text:SetJustifyV("CENTER")
|
||||
f.text:SetTextColor(.5,.5,.5)
|
||||
|
||||
f.tex = f:CreateTexture(nil, "BACKGROUND")
|
||||
f.tex:SetTexture(1,1,1,.05)
|
||||
f.tex:SetAllPoints()
|
||||
f.tex:Hide()
|
||||
f.tex = f:CreateTexture(nil, "BACKGROUND")
|
||||
f.tex:SetColorTexture(1,1,1,.05)
|
||||
f.tex:SetAllPoints()
|
||||
f.tex:Hide()
|
||||
end
|
||||
|
||||
return f
|
||||
f.obj = obj
|
||||
|
||||
-- the path of submenus, then the entry
|
||||
local caption = ""
|
||||
for x=table.getn(obj),1,-1 do
|
||||
caption = caption .. "|cff33ffcc" .. obj[x].text:GetText() .. "|r » "
|
||||
end
|
||||
f.text:SetText(caption .. "|cffffffff" .. obj[0])
|
||||
end
|
||||
|
||||
pfUI.gui.search = CreateFrame("EditBox", nil, pfUI.gui)
|
||||
@@ -760,54 +765,34 @@ pfUI:RegisterModule("gui", function ()
|
||||
local defval = "["..T["Search"].."]"
|
||||
|
||||
-- initialize search window
|
||||
CreateGUIEntry(defval, nil, function() end)
|
||||
if not results then
|
||||
CreateGUIEntry(defval)
|
||||
results = CreateFrame("Frame", nil, pfUI.gui.frames[defval].area, "pfUIScrollBoxListTemplate")
|
||||
SetAllPointsOffset(results, pfUI.gui.frames[defval].area, 2)
|
||||
|
||||
local view = CreateScrollBoxListLinearView(0, 0, 0, 0, 5)
|
||||
view:SetElementExtent(20)
|
||||
view:SetElementInitializer("Button", InitSearchResult)
|
||||
ScrollUtil.InitScrollBoxListWithScrollBar(results.ScrollBox, results.ScrollBar, view)
|
||||
end
|
||||
pfUI.gui.frames[defval]:Click()
|
||||
|
||||
local scroll = pfUI.gui.frames[defval].area.scroll.content
|
||||
local parent = pfUI.gui.frames[defval].area.scroll
|
||||
scroll.results = scroll.results or {}
|
||||
|
||||
for i=1,table.getn(scroll.results) do
|
||||
scroll.results[i]:Hide()
|
||||
if scroll.results[i].obj and scroll.results[i].obj[-1].highlight then
|
||||
scroll.results[i].obj[-1].highlight:Hide()
|
||||
end
|
||||
if highlighted then
|
||||
highlighted.highlight:Hide()
|
||||
highlighted = nil
|
||||
end
|
||||
|
||||
if strlen(this:GetText()) < 1 then return end
|
||||
|
||||
local i = 1
|
||||
-- the matching entries, from the top of the list
|
||||
local matches = {}
|
||||
local search = strlower(this:GetText())
|
||||
for name, obj in pairs(searchDB) do
|
||||
local title = obj[0] and strlower(obj[0])
|
||||
if strfind(title, search) then
|
||||
-- build caption string
|
||||
local caption = ""
|
||||
for x=table.getn(obj),1,-1 do
|
||||
caption = caption .. "|cff33ffcc" .. obj[x].text:GetText() .. "|r » "
|
||||
if search ~= "" then
|
||||
for _, obj in pairs(searchDB) do
|
||||
if strfind(strlower(obj[0]), search, 1, true) then
|
||||
table.insert(matches, obj)
|
||||
end
|
||||
caption = caption .. "|cffffffff" .. obj[0]
|
||||
|
||||
-- build search entry button
|
||||
scroll.results[i] = scroll.results[i] or CreateSearchEntry(scroll, i)
|
||||
scroll.results[i].obj = obj
|
||||
scroll.results[i].text:SetText(caption)
|
||||
scroll.results[i]:Show()
|
||||
|
||||
i = i + 1
|
||||
end
|
||||
end
|
||||
|
||||
-- reload scroll frames
|
||||
scroll:Hide()
|
||||
scroll:SetHeight(i * 25 )
|
||||
scroll:Show()
|
||||
parent:SetScrollChild(scroll)
|
||||
QueueFunction(function()
|
||||
parent:SetVerticalScroll(0)
|
||||
parent:UpdateScrollState()
|
||||
parent:Scroll()
|
||||
end)
|
||||
results.ScrollBox:SetDataProvider(CreateDataProvider(matches))
|
||||
end)
|
||||
|
||||
pfUI.gui.search:SetScript("OnEditFocusGained", function(self)
|
||||
@@ -922,14 +907,6 @@ pfUI:RegisterModule("gui", function ()
|
||||
"HORIZONTAL:" .. T["Horizontal"],
|
||||
"VERTICAL:" .. T["Vertical"],
|
||||
},
|
||||
["uf_animationspeed"] = {
|
||||
"1:" .. T["Instant"],
|
||||
"2:" .. T["Very Fast"],
|
||||
"3:" .. T["Fast"],
|
||||
"5:" .. T["Medium"],
|
||||
"8:" .. T["Slow"],
|
||||
"13:" .. T["Very Slow"],
|
||||
},
|
||||
["xpanchors"] = {
|
||||
"__NONONIL__:" .. T["No Anchor"],
|
||||
"pfChatLeft:" .. T["Left Chat Frame"],
|
||||
@@ -980,6 +957,12 @@ pfUI:RegisterModule("gui", function ()
|
||||
"TOP:" .. T["Center"],
|
||||
"TOPRIGHT:" .. T["Right"]
|
||||
},
|
||||
["uf_portrait_style"] = {
|
||||
"3d:" .. T["3D"],
|
||||
"2d:" .. T["2D"],
|
||||
"classround:" .. T["Class Icon (Round)"],
|
||||
"classsquare:" .. T["Class Icon (Square)"]
|
||||
},
|
||||
["uf_portrait_position"] = {
|
||||
"bar:" .. T["Healthbar Embedded"],
|
||||
"left:" .. T["Left"],
|
||||
@@ -1300,7 +1283,7 @@ pfUI:RegisterModule("gui", function ()
|
||||
-- draw pfUI logo
|
||||
local function draw(p, fx, fy, tx, ty, r, g, b, a)
|
||||
local t = p:CreateTexture(nil, "OVERLAY")
|
||||
t:SetTexture(r,g,b,a)
|
||||
t:SetColorTexture(r,g,b,a)
|
||||
t:SetPoint("TOPLEFT", fx, fy)
|
||||
t:SetPoint("BOTTOMRIGHT", p, "TOPLEFT", tx, ty)
|
||||
end
|
||||
@@ -1327,14 +1310,14 @@ pfUI:RegisterModule("gui", function ()
|
||||
|
||||
this.version = this:CreateFontString("Status", "LOW", "GameFontWhite")
|
||||
this.version:SetFont(pfUI.font_default, C.global.font_size)
|
||||
this.version:SetPoint("TOPRIGHT", 375, -170)
|
||||
this.version:SetPoint("TOPRIGHT", this, "TOPLEFT", 375, -170)
|
||||
this.version:SetWidth(200)
|
||||
this.version:SetJustifyH("RIGHT")
|
||||
|
||||
this.update = this:CreateFontString("Status", "LOW", "GameFontWhite")
|
||||
this.update:SetFont(pfUI.font_default, C.global.font_size)
|
||||
this.update:SetPoint("TOPLEFT", 200, -140)
|
||||
this.update:SetPoint("TOPRIGHT", 375, -140)
|
||||
this.update:SetPoint("TOPRIGHT", this, "TOPLEFT", 375, -140)
|
||||
this.update:SetJustifyH("CENTER")
|
||||
this.update:SetTextColor(.2,1,.8)
|
||||
|
||||
@@ -1347,7 +1330,7 @@ pfUI:RegisterModule("gui", function ()
|
||||
|
||||
this.screen = this:CreateFontString("Status", "LOW", "GameFontWhite")
|
||||
this.screen:SetFont(pfUI.font_default, C.global.font_size)
|
||||
this.screen:SetPoint("TOPRIGHT", 375, -200)
|
||||
this.screen:SetPoint("TOPRIGHT", this, "TOPLEFT", 375, -200)
|
||||
this.screen:SetWidth(200)
|
||||
this.screen:SetJustifyH("RIGHT")
|
||||
|
||||
@@ -1360,7 +1343,7 @@ pfUI:RegisterModule("gui", function ()
|
||||
|
||||
this.scale = this:CreateFontString("Status", "LOW", "GameFontWhite")
|
||||
this.scale:SetFont(pfUI.font_default, C.global.font_size)
|
||||
this.scale:SetPoint("TOPRIGHT", 375, -220)
|
||||
this.scale:SetPoint("TOPRIGHT", this, "TOPLEFT", 375, -220)
|
||||
this.scale:SetWidth(200)
|
||||
this.scale:SetJustifyH("RIGHT")
|
||||
|
||||
@@ -1373,7 +1356,7 @@ pfUI:RegisterModule("gui", function ()
|
||||
|
||||
this.client = this:CreateFontString("Status", "LOW", "GameFontWhite")
|
||||
this.client:SetFont(pfUI.font_default, C.global.font_size)
|
||||
this.client:SetPoint("TOPRIGHT", 375, -250)
|
||||
this.client:SetPoint("TOPRIGHT", this, "TOPLEFT", 375, -250)
|
||||
this.client:SetWidth(200)
|
||||
this.client:SetJustifyH("RIGHT")
|
||||
|
||||
@@ -1385,7 +1368,7 @@ pfUI:RegisterModule("gui", function ()
|
||||
this.langc:SetText(T["Language"] .. ":")
|
||||
this.lang = this:CreateFontString("Status", "LOW", "GameFontWhite")
|
||||
this.lang:SetFont(pfUI.font_default, C.global.font_size)
|
||||
this.lang:SetPoint("TOPRIGHT", 375, -270)
|
||||
this.lang:SetPoint("TOPRIGHT", this, "TOPLEFT", 375, -270)
|
||||
this.lang:SetWidth(200)
|
||||
this.lang:SetJustifyH("RIGHT")
|
||||
|
||||
@@ -1414,7 +1397,7 @@ pfUI:RegisterModule("gui", function ()
|
||||
donate:SetHeight(20)
|
||||
donate:SetText(T["Donate"])
|
||||
donate:SetScript("OnClick", function()
|
||||
pfUI.chat.urlcopy.CopyText("https://buymeacoffee.com/brues")
|
||||
CopyText("https://buymeacoffee.com/brues")
|
||||
end)
|
||||
SkinButton(donate)
|
||||
|
||||
@@ -1424,7 +1407,7 @@ pfUI:RegisterModule("gui", function ()
|
||||
github:SetHeight(20)
|
||||
github:SetText(T["GitHub"])
|
||||
github:SetScript("OnClick", function()
|
||||
pfUI.chat.urlcopy.CopyText(GetAddOnMetadata(pfUI.name, "X-Website"))
|
||||
CopyText(GetAddOnMetadata(pfUI.name, "X-Website"))
|
||||
end)
|
||||
SkinButton(github)
|
||||
|
||||
@@ -1434,7 +1417,7 @@ pfUI:RegisterModule("gui", function ()
|
||||
website:SetHeight(20)
|
||||
website:SetText(T["Website"])
|
||||
website:SetScript("OnClick", function()
|
||||
pfUI.chat.urlcopy.CopyText(GetAddOnMetadata(pfUI.name, "X-Website"))
|
||||
CopyText(GetAddOnMetadata(pfUI.name, "X-Website"))
|
||||
end)
|
||||
SkinButton(website)
|
||||
end)
|
||||
@@ -1614,21 +1597,51 @@ pfUI:RegisterModule("gui", function ()
|
||||
end)
|
||||
|
||||
CreateGUIEntry(T["Settings"], T["Cooldown"], function()
|
||||
CreateConfig(U["buff"], T["Show Milliseconds When Timer Runs Out"], C.appearance.cd, "milliseconds", "checkbox")
|
||||
CreateConfig(nil, T["Cooldown Color (Less than 3 Sec)"], C.appearance.cd, "lowcolor", "color")
|
||||
CreateConfig(nil, T["Cooldown Color (Seconds)"], C.appearance.cd, "normalcolor", "color")
|
||||
CreateConfig(nil, T["Cooldown Color (Minutes)"], C.appearance.cd, "minutecolor", "color")
|
||||
CreateConfig(nil, T["Cooldown Color (Hours)"], C.appearance.cd, "hourcolor", "color")
|
||||
CreateConfig(nil, T["Cooldown Color (Days)"], C.appearance.cd, "daycolor", "color")
|
||||
CreateConfig(nil, T["Use Dynamic Font Size"], C.appearance.cd, "dynamicsize", "checkbox")
|
||||
CreateConfig(nil, T["Cooldown Text Font"], C.appearance.cd, "font", "dropdown", pfUI.gui.dropdowns.fonts)
|
||||
CreateConfig(nil, T["Cooldown Text Font Size"], C.appearance.cd, "font_size")
|
||||
CreateConfig(nil, T["Cooldown Text Font Size (Blizzard Frames)"], C.appearance.cd, "font_size_blizz")
|
||||
CreateConfig(nil, T["Cooldown Text Font Size (Foreign Frames)"], C.appearance.cd, "font_size_foreign")
|
||||
CreateConfig(nil, T["Cooldown Text Time Threshold"], C.appearance.cd, "threshold")
|
||||
CreateConfig(nil, T["Enable Durations On Blizzard Frames"], C.appearance.cd, "blizzard", "checkbox")
|
||||
CreateConfig(nil, T["Enable Durations On Foreign Frames"], C.appearance.cd, "foreign", "checkbox")
|
||||
CreateConfig(nil, T["Hide Foreign Cooldown Animations"], C.appearance.cd, "hideanim", "checkbox")
|
||||
-- every kind of cooldown CreateCooldown makes, as C.cooldown groups.
|
||||
-- Other addons' cooldowns only lose numbers or sweep (see
|
||||
-- api/cooldown.lua), so giving them back takes a reload
|
||||
local kinds = {
|
||||
{ "actionbar", T["Action Bars"] },
|
||||
{ "bags", T["Bags"] },
|
||||
{ "blizzard", T["Spellbook And Character"] },
|
||||
{ "unitframe", T["Unit Frame Auras"] },
|
||||
{ "indicator", T["Buff Indicators"] },
|
||||
{ "nameplate", T["Nameplate Debuffs"] },
|
||||
{ "buff", T["Player Buffs"] },
|
||||
{ "tooltip", T["Tooltip Auras"] },
|
||||
{ "totem", T["Totems"] },
|
||||
{ "lossofcontrol", T["Loss Of Control"] },
|
||||
{ "foreign", T["Other Addons"] },
|
||||
}
|
||||
|
||||
CreateConfig(nil, COUNTDOWN_FOR_COOLDOWNS_TEXT, "CVAR", "countdownForCooldowns", "checkbox")
|
||||
CreateConfig(UpdateCooldowns, T["Font"], C.cooldown, "font", "dropdown", pfUI.gui.dropdowns.fonts)
|
||||
CreateConfig(nil, T["Font Size"], C.cooldown, "font_size")
|
||||
CreateConfig(nil, T["Scale Font Size With Icon"], C.cooldown, "dynamicsize", "checkbox")
|
||||
CreateConfig(UpdateCooldowns, T["Hide Numbers On Spell Cooldowns Up To (Seconds)"], C.cooldown, "threshold")
|
||||
CreateConfig(UpdateCooldowns, T["Show Tenths Below 5 Seconds"], C.cooldown, "milliseconds", "checkbox")
|
||||
CreateConfig(UpdateCooldowns, T["Cooldown Color (5 Seconds Or Less)"], C.cooldown, "lowcolor", "color")
|
||||
CreateConfig(UpdateCooldowns, T["Cooldown Color (Seconds)"], C.cooldown, "normalcolor", "color")
|
||||
CreateConfig(UpdateCooldowns, T["Cooldown Color (Minutes)"], C.cooldown, "minutecolor", "color")
|
||||
CreateConfig(UpdateCooldowns, T["Cooldown Color (Hours)"], C.cooldown, "hourcolor", "color")
|
||||
CreateConfig(UpdateCooldowns, T["Cooldown Color (Days)"], C.cooldown, "daycolor", "color")
|
||||
|
||||
CreateConfig(nil, T["Show Numbers On"], nil, nil, "header")
|
||||
for _, kind in ipairs(kinds) do
|
||||
CreateConfig(kind[1] ~= "foreign" and UpdateCooldowns or nil, kind[2], C.cooldown[kind[1]], "text", "checkbox")
|
||||
end
|
||||
|
||||
CreateConfig(nil, T["Show Sweep On"], nil, nil, "header")
|
||||
for _, kind in ipairs(kinds) do
|
||||
CreateConfig(kind[1] ~= "foreign" and UpdateCooldowns or nil, kind[2], C.cooldown[kind[1]], "animation", "checkbox")
|
||||
end
|
||||
|
||||
CreateConfig(nil, T["Reverse Sweep On"], nil, nil, "header")
|
||||
for _, kind in ipairs(kinds) do
|
||||
if kind[1] ~= "foreign" then
|
||||
CreateConfig(UpdateCooldowns, kind[2], C.cooldown[kind[1]], "reverse", "checkbox")
|
||||
end
|
||||
end
|
||||
end)
|
||||
|
||||
CreateGUIEntry(T["Settings"], T["Screenshot"], function()
|
||||
@@ -2065,9 +2078,9 @@ pfUI:RegisterModule("gui", function ()
|
||||
|
||||
CreateGUIEntry(T["Unit Frames"], T["General"], function()
|
||||
CreateConfig(nil, T["Disable pfUI Unit Frames"], C.unitframes, "disable", "checkbox")
|
||||
CreateConfig(nil, T["Healthbar Animation Speed"], C.unitframes, "animation_speed", "dropdown", pfUI.gui.dropdowns.uf_animationspeed)
|
||||
CreateConfig(nil, T["Animate Health And Power Bars"], C.unitframes, "animatebars", "checkbox")
|
||||
CreateConfig(nil, T["Portrait Alpha"], C.unitframes, "portraitalpha")
|
||||
CreateConfig(nil, T["Always Use 2D Portraits"], C.unitframes, "always2dportrait", "checkbox")
|
||||
CreateConfig(nil, T["Portrait Style"], C.unitframes, "portraitstyle", "dropdown", pfUI.gui.dropdowns.uf_portrait_style)
|
||||
CreateConfig(nil, T["Enable 2D Portraits As Fallback"], C.unitframes, "portraittexture", "checkbox")
|
||||
CreateConfig(nil, T["Unit Frame Layout"], C.unitframes, "layout", "dropdown", pfUI.gui.dropdowns.uf_layout)
|
||||
CreateConfig(nil, T["Combopoint Width"], C.unitframes, "combowidth")
|
||||
@@ -2088,6 +2101,7 @@ pfUI:RegisterModule("gui", function ()
|
||||
CreateConfig(nil, T["Offhand Bar Color"], C.unitframes, "swingtimerohcolor", "color")
|
||||
CreateConfig(nil, T["Ranged Bar Color"], C.unitframes, "swingtimerrangedcolor", "color")
|
||||
CreateConfig(nil, T["Ranged Warn Color (Hunter)"], C.unitframes, "swingtimerrangedwarncolor", "color")
|
||||
CreateConfig(nil, T["Out Of Range Color"], C.unitframes, "swingtimeroutrangecolor", "color")
|
||||
CreateConfig(nil, T["Show On Next Attack Queue Color"], C.unitframes, "swingtimerhsqueue", "checkbox")
|
||||
CreateConfig(nil, T["Show Attack Speed"], C.unitframes, "swingtimerattackspeed", "checkbox")
|
||||
|
||||
@@ -2150,6 +2164,10 @@ pfUI:RegisterModule("gui", function ()
|
||||
CreateConfig(nil, T["Druid Mana Bar Texture"], C.unitframes, "druidmanatexture", "dropdown", pfUI.gui.dropdowns.uf_bartexture, nil, nil, nil)
|
||||
|
||||
|
||||
CreateConfig(nil, T["Target Indicators"], nil, nil, "header")
|
||||
CreateConfig(nil, T["Target Indicator Font Size"], C.unitframes, "indicator_font_size", nil, nil, nil, nil, nil)
|
||||
CreateConfig(nil, T["Show Line of Sight Indicator"], C.unitframes, "los_indicator", "checkbox", nil, nil, nil, nil)
|
||||
|
||||
CreateConfig(nil, T["SuperWoW Settings"], nil, nil, "header")
|
||||
CreateConfig(nil, T["Track Group on Minimap"], C.unitframes, "track_group", "checkbox", nil, nil, nil, nil)
|
||||
|
||||
@@ -2160,8 +2178,6 @@ pfUI:RegisterModule("gui", function ()
|
||||
CreateConfig(nil, T["Reactive Indicator Size"], C.unitframes, "reactive_size", nil, nil, nil, nil, nil)
|
||||
|
||||
CreateConfig(nil, T["UnitXP Settings"], nil, nil, "header")
|
||||
CreateConfig(nil, T["Font Size for all UnitXP texts"], C.unitframes, "unitxp_font_size", nil, nil, nil, nil, nil)
|
||||
CreateConfig(nil, T["Show Line of Sight Indicator"], C.unitframes, "los_indicator", "checkbox", nil, nil, nil, nil)
|
||||
CreateConfig(nil, T["Show Behind Indicator"], C.unitframes, "behind_indicator", "checkbox", nil, nil, nil, nil)
|
||||
CreateConfig(nil, T["Show Distance of Target"], C.unitframes, "distance_indicator", "checkbox", nil, nil, nil, nil)
|
||||
CreateConfig(nil, T["Hide yd characters"], C.unitframes, "hide_distance_yd", "checkbox", nil, nil, nil, nil)
|
||||
@@ -2338,10 +2354,6 @@ pfUI:RegisterModule("gui", function ()
|
||||
CreateConfig(U[c], T["Automatic Level Text Color"], C.unitframes[c], "levelcolor", "checkbox")
|
||||
CreateConfig(U[c], T["Automatic Class Text Color"], C.unitframes[c], "classcolor", "checkbox")
|
||||
|
||||
CreateConfig(U[c], T["Timer"], nil, nil, "header")
|
||||
CreateConfig(U[c], T["Show Timer Text"], C.unitframes[c], "cooldown_text", "checkbox")
|
||||
CreateConfig(Reload, T["Show Timer Animation"], C.unitframes[c], "cooldown_anim", "checkbox")
|
||||
|
||||
CreateConfig(U[c], T["Buffs"], nil, nil, "header")
|
||||
CreateConfig(U[c], T["Buff Position"], C.unitframes[c], "buffs", "dropdown", pfUI.gui.dropdowns.uf_buff_position)
|
||||
CreateConfig(U[c], T["Buff Size"], C.unitframes[c], "buffsize")
|
||||
@@ -2371,7 +2383,6 @@ pfUI:RegisterModule("gui", function ()
|
||||
|
||||
CreateConfig(U[c], T["Buff/Debuff Indicators"], nil, nil, "header")
|
||||
CreateConfig(U[c], T["Enable Indicators"], C.unitframes[c], "buff_indicator", "checkbox")
|
||||
CreateConfig(U[c], T["Show Time Left"], C.unitframes[c], "indicator_time", "checkbox")
|
||||
CreateConfig(U[c], T["Show Stacks"], C.unitframes[c], "indicator_stacks", "checkbox")
|
||||
CreateConfig(U[c], T["Indicator Size"], C.unitframes[c], "indicator_size")
|
||||
CreateConfig(U[c], T["Indicator Spacing"], C.unitframes[c], "indicator_spacing", "dropdown", pfUI.gui.dropdowns.spacing)
|
||||
@@ -2427,6 +2438,21 @@ pfUI:RegisterModule("gui", function ()
|
||||
CreateConfig(nil, T["Always Show Equipment Slot Flyouts"], C.character.inventory, "equipflyout", "checkbox")
|
||||
end)
|
||||
|
||||
CreateGUIEntry(T["Character"], T["Equipment Manager"], function()
|
||||
CreateConfig(nil, T["Automatic Set Switching"], nil, nil, "header")
|
||||
CreateConfig(U["equipmentmanager"], T["Enable Automatic Set Switching"], C.equipmentmanager, "autoswitch", "checkbox")
|
||||
CreateConfig(U["equipmentmanager"], T["Announce Automatic Set Switches In Chat"], C.equipmentmanager, "announce", "checkbox")
|
||||
CreateConfig(nil, T["Items Not In Any Set"], nil, nil, "header")
|
||||
CreateConfig(U["equipmentmanager"], T["Minimum Item Quality"], C.equipmentmanager, "unusedquality", "dropdown", {
|
||||
"0:" .. ITEM_QUALITY0_DESC,
|
||||
"1:" .. ITEM_QUALITY1_DESC,
|
||||
"2:" .. ITEM_QUALITY2_DESC,
|
||||
"3:" .. ITEM_QUALITY3_DESC,
|
||||
"4:" .. ITEM_QUALITY4_DESC,
|
||||
})
|
||||
CreateConfig(U["equipmentmanager"], T["Include Bank Items"], C.equipmentmanager, "unusedbank", "checkbox")
|
||||
end)
|
||||
|
||||
CreateGUIEntry(T["Character"], T["Reputation"], function()
|
||||
CreateConfig(nil, T["Show Reputation Remaining"], C.character.reputation, "repRequired", "checkbox")
|
||||
end)
|
||||
@@ -2443,7 +2469,6 @@ pfUI:RegisterModule("gui", function ()
|
||||
CreateConfig(nil, T["Hide Chat When Bags Are Opened"], C.appearance.bags, "hidechat", "checkbox")
|
||||
CreateConfig(nil, T["Bagslots Per Row"], C.appearance.bags, "bagrowlength")
|
||||
CreateConfig(nil, T["Bankslots Per Row"], C.appearance.bags, "bankrowlength")
|
||||
CreateConfig(nil, T["Enable Full-Text Search"], C.appearance.bags, "fulltext")
|
||||
CreateConfig(nil, T["Item Slot Size"], C.appearance.bags, "icon_size")
|
||||
CreateConfig(nil, T["Auto Sell Grey Items"], C.global, "autosell", "checkbox")
|
||||
CreateConfig(nil, T["Auto Repair Items"], C.global, "autorepair", "checkbox")
|
||||
@@ -2494,7 +2519,7 @@ pfUI:RegisterModule("gui", function ()
|
||||
CreateConfig(U["buff"], T["Number Of Buffs Per Row"], C.buffs, "buffrowsize")
|
||||
CreateConfig(U["buff"], T["Number Of Debuffs Per Row"], C.buffs, "debuffrowsize")
|
||||
CreateConfig(U["buff"], T["Show Duration Inside Buff"], C.buffs, "textinside", "checkbox")
|
||||
CreateConfig(U["buff"], T["Buff Font Size"], C.buffs, "fontsize")
|
||||
CreateConfig(U["buff"], T["Stack Count Font Size"], C.buffs, "fontsize")
|
||||
end)
|
||||
|
||||
CreateGUIEntry(T["Buffs"], T["Totem Icons"], function()
|
||||
@@ -2590,7 +2615,6 @@ pfUI:RegisterModule("gui", function ()
|
||||
CreateConfig(U["bars"], T["Item Count Text Color"], C.bars, "count_color", "color")
|
||||
CreateConfig(U["bars"], T["Keybind Text Size"], C.bars, "bind_size")
|
||||
CreateConfig(U["bars"], T["Keybind Text Color"], C.bars, "bind_color", "color")
|
||||
CreateConfig(nil, T["Cooldown Text Size"], C.bars, "cd_size")
|
||||
|
||||
CreateConfig(nil, T["Auto Paging"], nil, nil, "header")
|
||||
CreateConfig(U["bars"], T["Switch Pages On Alt Key Press"], C.bars, "pagemasteralt", "checkbox")
|
||||
@@ -2683,8 +2707,8 @@ pfUI:RegisterModule("gui", function ()
|
||||
elseif is_horizontal then
|
||||
if uneven ~= "Left" and uneven ~= "Right" then C.bars["bar"..id].uneven = "Left" end
|
||||
end
|
||||
if uneven_frame and uneven_frame.input and uneven_frame.input.UpdateMenu then
|
||||
uneven_frame.input:UpdateMenu()
|
||||
if uneven_frame then
|
||||
uneven_frame.input:GenerateMenu()
|
||||
end
|
||||
if U["bars"] then U["bars"]() end
|
||||
end
|
||||
@@ -2864,6 +2888,8 @@ pfUI:RegisterModule("gui", function ()
|
||||
end)
|
||||
|
||||
CreateGUIEntry(T["Chat"], nil, function()
|
||||
-- a nop updater skips the reload prompt; the nop settings below
|
||||
-- are read by AddMessage on every chat line
|
||||
CreateConfig(nil, T["Enable \"Loot & Spam\" Chat Window"], C.chat.right, "enable", "checkbox")
|
||||
CreateConfig(nil, T["Inputbox Width"], C.chat.text, "input_width")
|
||||
CreateConfig(nil, T["Inputbox Height"], C.chat.text, "input_height")
|
||||
@@ -2872,18 +2898,20 @@ pfUI:RegisterModule("gui", function ()
|
||||
CreateConfig(nil, T["Show Items On Mouseover"], C.chat.text, "mouseover", "checkbox")
|
||||
CreateConfig(nil, T["Chat Default Brackets"], C.chat.text, "bracket", nil, nil, nil, nil, "STRING")
|
||||
CreateConfig(nil, T["Enable Timestamps"], C.chat.text, "time", "checkbox")
|
||||
CreateConfig(nil, T["Timestamp Format"], C.chat.text, "timeformat", nil, nil, nil, nil, "STRING")
|
||||
CreateConfig(nop, T["Timestamp Format"], C.chat.text, "timeformat", nil, nil, nil, nil, "STRING")
|
||||
CreateConfig(nil, T["Timestamp Brackets"], C.chat.text, "timebracket", nil, nil, nil, nil, "STRING")
|
||||
CreateConfig(nil, T["Timestamp Color"], C.chat.text, "timecolor", "color")
|
||||
CreateConfig(nil, T["Hide Channel Names"], C.chat.text, "channelnumonly", "checkbox")
|
||||
-- read each time chat copy opens, so no reload
|
||||
CreateConfig(nop, T["Show Timestamps In Chat Copy"], C.chat.text, "copytime", "checkbox")
|
||||
CreateConfig(nop, T["Hide Channel Names"], C.chat.text, "channelnumonly", "checkbox")
|
||||
CreateConfig(nil, T["Generate Playerlinks"], C.chat.text, "playerlinks", "checkbox")
|
||||
CreateConfig(nil, T["Enable URL Detection"], C.chat.text, "detecturl", "checkbox")
|
||||
CreateConfig(nil, T["Enable Class Colors"], C.chat.text, "classcolor", "checkbox")
|
||||
CreateConfig(nop, T["Enable URL Detection"], C.chat.text, "detecturl", "checkbox")
|
||||
CreateConfig(nop, T["Enable Class Colors"], C.chat.text, "classcolor", "checkbox")
|
||||
local _, playerRace = UnitRace("player")
|
||||
CreateConfig(nil, T["Show Faction Icons"] .. " " .. GetFactionIcon(playerRace), C.chat.text, "factionicons", "checkbox")
|
||||
CreateConfig(nil, T["Show Race Icons"] .. " " .. GetRaceIcon(playerRace, UnitSex("player")), C.chat.text, "raceicons", "checkbox")
|
||||
CreateConfig(nil, T["Enable Player Levels"], C.chat.text, "playerlevel", "checkbox")
|
||||
CreateConfig(nil, T["Colorize Unknown Classes"], C.chat.text, "tintunknown", "checkbox")
|
||||
CreateConfig(nop, T["Show Faction Icons"] .. " " .. GetFactionIcon(playerRace), C.chat.text, "factionicons", "checkbox")
|
||||
CreateConfig(nop, T["Show Race Icons"] .. " " .. GetRaceIcon(playerRace, UnitSex("player")), C.chat.text, "raceicons", "checkbox")
|
||||
CreateConfig(nop, T["Enable Player Levels"], C.chat.text, "playerlevel", "checkbox")
|
||||
CreateConfig(nop, T["Colorize Unknown Classes"], C.chat.text, "tintunknown", "checkbox")
|
||||
CreateConfig(nil, T["Unknown Class Color"], C.chat.text, "unknowncolor", "color")
|
||||
CreateConfig(nil, T["Left Chat Width"], C.chat.left, "width")
|
||||
CreateConfig(nil, T["Left Chat Height"], C.chat.left, "height")
|
||||
@@ -2903,7 +2931,7 @@ pfUI:RegisterModule("gui", function ()
|
||||
CreateConfig(nil, T["Maximum Number Of Chat Lines"], C.chat.global, "maxlines")
|
||||
CreateConfig(nil, T["Enable Chat Fade"], C.chat.global, "fadeout", "checkbox")
|
||||
CreateConfig(nil, T["Seconds Before Chat Fade"], C.chat.global, "fadetime")
|
||||
CreateConfig(nil, T["Mousewheel Scroll Speed"], C.chat.global, "scrollspeed")
|
||||
CreateConfig(nop, T["Mousewheel Scroll Speed"], C.chat.global, "scrollspeed")
|
||||
CreateConfig(nil, T["Enable Chat Bubbles"], "CVAR", "chatBubbles", "checkbox")
|
||||
CreateConfig(nil, T["Enable Party Chat Bubbles"], "CVAR", "chatBubblesParty", "checkbox")
|
||||
CreateConfig(nil, T["Enable Chat Bubble Borders"], C.chat.bubbles, "borders", "checkbox")
|
||||
@@ -2957,9 +2985,6 @@ pfUI:RegisterModule("gui", function ()
|
||||
CreateConfig(U["nameplates"], T["Debuff Icon Offset"], C.nameplates, "debuffoffset")
|
||||
CreateConfig(U["nameplates"], T["Debuff Icon Size"], C.nameplates, "debuffsize")
|
||||
CreateConfig(U["nameplates"], T["Show Debuff Stacks"], C.nameplates.debuffs, "showstacks", "checkbox")
|
||||
CreateConfig(U["nameplates"], T["Enable Debuff Timers"], C.nameplates, "debufftimers", "checkbox")
|
||||
CreateConfig(U["nameplates"], T["Show Timer Text"], C.nameplates, "debufftext", "checkbox")
|
||||
CreateConfig(Reload, T["Show Timer Animation"], C.nameplates, "debuffanim", "checkbox")
|
||||
|
||||
CreateConfig(U["nameplates"], T["Filter Mode"], C.nameplates.debuffs, "filter", "dropdown", pfUI.gui.dropdowns.buffbarfilter)
|
||||
CreateConfig(U["nameplates"], T["Blacklist"], C.nameplates.debuffs, "blacklist", "list")
|
||||
|
||||
@@ -51,7 +51,7 @@ pfUI:RegisterModule("hoverbind", function ()
|
||||
pfUI.hoverbind.edit:SetAllPoints(UIParent)
|
||||
pfUI.hoverbind.edit.tex = pfUI.hoverbind.edit:CreateTexture("pfKeyBindShade", "BACKGROUND")
|
||||
pfUI.hoverbind.edit.tex:SetAllPoints(pfUI.hoverbind.edit)
|
||||
pfUI.hoverbind.edit.tex:SetTexture(0,0,0,.5)
|
||||
pfUI.hoverbind.edit.tex:SetColorTexture(0,0,0,.5)
|
||||
pfUI.hoverbind.edit:SetScript("OnClick", function()
|
||||
pfUI.hoverbind:Hide()
|
||||
end)
|
||||
|
||||
+49
-35
@@ -1,51 +1,65 @@
|
||||
pfUI:RegisterModule("infight", function ()
|
||||
local function OnUpdate()
|
||||
if not this.infight and not this.aggro and not this.health then return end
|
||||
if ( this.tick or 1) > GetTime() then return else this.tick = GetTime() + .1 end
|
||||
pfUI.infight = CreateFrame("Frame", "pfUICombatScreen", WorldFrame)
|
||||
pfUI.infight:SetAllPoints(WorldFrame)
|
||||
pfUI.infight:EnableMouse(false)
|
||||
pfUI.infight:Hide()
|
||||
|
||||
if not this.fadeValue then this.fadeValue = 1 end
|
||||
if this.fadeValue >= 0.3 then
|
||||
this.fadeModifier = -0.1
|
||||
end
|
||||
if this.fadeValue <= 0 then
|
||||
this.fadeModifier = 0.1
|
||||
end
|
||||
this.fadeValue = this.fadeValue + this.fadeModifier
|
||||
-- Shift the glow between red and a paler orange for good. The group only
|
||||
-- advances while the glow is shown, so a hidden glow costs nothing.
|
||||
local pulse = pfUI.infight:CreateAnimationGroup()
|
||||
pulse:SetLooping("BOUNCE")
|
||||
local shift = pulse:CreateAnimation()
|
||||
shift:SetDuration(.3)
|
||||
shift:SetSmoothing("IN_OUT")
|
||||
shift:SetScript("OnUpdate", function(self)
|
||||
local fade = self:GetSmoothProgress() * .3
|
||||
pfUI.infight:SetBackdropBorderColor(1, .2 + fade, fade, 1 - fade)
|
||||
end)
|
||||
pulse:Play()
|
||||
|
||||
local visible = nil
|
||||
if this.infight and UnitAffectingCombat("player") then visible = true end
|
||||
if this.aggro and UnitHasAggro("player") > 0 then visible = true end
|
||||
if this.health and UnitHealth("player")/UnitHealthMax("player")*100 <= 25 then visible = true end
|
||||
if UnitIsDeadOrGhost("player") then visible = nil end
|
||||
-- Combat, health, death and aggro all come from events.
|
||||
local combat, health, dead, aggro
|
||||
|
||||
if visible then
|
||||
this.screen:Show()
|
||||
this.screen:SetBackdropBorderColor(1,0.2+this.fadeValue, this.fadeValue, 1-this.fadeValue)
|
||||
else
|
||||
this.screen:Hide()
|
||||
end
|
||||
local function Refresh()
|
||||
pfUI.infight:SetShown((combat or health or aggro) and not dead)
|
||||
end
|
||||
|
||||
pfUI.infight = CreateFrame("Frame", "pfUICombat", UIParent)
|
||||
pfUI.infight:SetScript("OnUpdate", OnUpdate)
|
||||
local function UpdateAggro()
|
||||
aggro = C.appearance.infight.aggro == "1" and UnitHasAggro("player") > 0
|
||||
Refresh()
|
||||
end
|
||||
|
||||
pfUI.infight.screen = CreateFrame("Frame", "pfUICombatScreen", WorldFrame)
|
||||
pfUI.infight.screen:SetAllPoints(WorldFrame)
|
||||
pfUI.infight.screen:EnableMouse(false)
|
||||
pfUI.infight.screen:Hide()
|
||||
-- a combat drop is also when an attacker that left view is let go
|
||||
local function UpdatePlayer()
|
||||
combat = C.appearance.infight.screen == "1" and UnitAffectingCombat("player")
|
||||
health = C.appearance.infight.health == "1" and UnitHealth("player") / UnitHealthMax("player") <= .25
|
||||
dead = UnitIsDeadOrGhost("player")
|
||||
UpdateAggro()
|
||||
end
|
||||
|
||||
pfUI.infight:RegisterEvent("PLAYER_ENTERING_WORLD")
|
||||
pfUI.infight:RegisterEvent("PLAYER_REGEN_DISABLED")
|
||||
pfUI.infight:RegisterEvent("PLAYER_REGEN_ENABLED")
|
||||
pfUI.infight:RegisterEvent("PLAYER_DEAD")
|
||||
pfUI.infight:RegisterEvent("PLAYER_ALIVE")
|
||||
pfUI.infight:RegisterEvent("PLAYER_UNGHOST")
|
||||
pfUI.infight:RegisterUnitEvent("UNIT_HEALTH", "player")
|
||||
pfUI.infight:RegisterUnitEvent("UNIT_MAXHEALTH", "player")
|
||||
pfUI.infight:SetScript("OnEvent", UpdatePlayer)
|
||||
|
||||
pfUI.events:RegisterCallback("aggro:changed", function(_, old, new)
|
||||
local player = UnitGUID("player")
|
||||
if old == player or new == player then UpdateAggro() end
|
||||
end, "infight")
|
||||
|
||||
pfUI.infight.UpdateConfig = function(self)
|
||||
pfUI.infight.infight = C.appearance.infight.screen == "1" and true or nil
|
||||
pfUI.infight.aggro = C.appearance.infight.aggro == "1" and true or nil
|
||||
pfUI.infight.health = C.appearance.infight.health == "1" and true or nil
|
||||
|
||||
pfUI.infight.screen:SetBackdrop({
|
||||
pfUI.infight:SetBackdrop({
|
||||
edgeFile = pfUI.media["img:glow"], edgeSize = tonumber(C.appearance.infight.intensity),
|
||||
insets = {left = 0, right = 0, top = 0, bottom = 0},
|
||||
})
|
||||
|
||||
pfUI.infight.screen:Hide()
|
||||
UpdatePlayer()
|
||||
end
|
||||
|
||||
pfUI.infight.UpdateConfig()
|
||||
pfUI.infight:UpdateConfig()
|
||||
end)
|
||||
|
||||
@@ -46,22 +46,17 @@ pfUI:RegisterModule("innervatecall", function ()
|
||||
end)
|
||||
end
|
||||
|
||||
local frame = CreateFrame("Frame")
|
||||
frame:RegisterEvent("COMBAT_LOG_EVENT_UNFILTERED")
|
||||
frame:RegisterEvent("SPELL_UPDATE_COOLDOWN")
|
||||
frame:SetScript("OnEvent", function()
|
||||
if event == "SPELL_UPDATE_COOLDOWN" then
|
||||
if pending then ScheduleReady() end
|
||||
return
|
||||
end
|
||||
pfUI.events:RegisterFrameEventAndCallback("SPELL_UPDATE_COOLDOWN", function()
|
||||
if pending then ScheduleReady() end
|
||||
end)
|
||||
|
||||
pfUI.events:RegisterFrameEventAndCallback("COMBAT_LOG_EVENT_UNFILTERED", function()
|
||||
-- Innervate is instant, so it logs SPELL_CAST_SUCCESS with its target
|
||||
-- arg2=subevent, arg4=sourceGUID, arg9=destName, arg12=spellId
|
||||
if arg2 ~= "SPELL_CAST_SUCCESS" or arg12 ~= INNERVATE_SPELLID then return end
|
||||
local _, subevent, _, sourceGUID, _, _, _, _, destName, _, _, spellId = CombatLogGetCurrentEventInfo()
|
||||
if subevent ~= "SPELL_CAST_SUCCESS" or spellId ~= INNERVATE_SPELLID then return end
|
||||
|
||||
-- Only announce our own casts
|
||||
if not IsPlayerGuid(arg4) then return end
|
||||
local destName = arg9
|
||||
if not IsPlayerGuid(sourceGUID) then return end
|
||||
|
||||
-- Determine channel
|
||||
local channel = GetAnnounceChannel()
|
||||
|
||||
+97
-202
@@ -31,8 +31,9 @@ pfUI:RegisterModule("loot", function ()
|
||||
pfUI.loot.randoms = {}
|
||||
pfUI.loot.rollers = {}
|
||||
pfUI.loot.rollers_sorted = {}
|
||||
pfUI.loot.info = {}
|
||||
local info = pfUI.loot.info
|
||||
|
||||
-- the master loot menu while it is shown
|
||||
local masterLootMenu, OpenMasterLootMenu, RefreshMasterLootMenu
|
||||
|
||||
function pfUI.loot.RaidRoll(candidates)
|
||||
if type(candidates) ~= "table" then return end
|
||||
@@ -48,7 +49,7 @@ pfUI:RegisterModule("loot", function ()
|
||||
names = (k==1) and (i..":"..pfUI.loot.index_to_name[candidates[i]]) or (names..", "..i..":"..pfUI.loot.index_to_name[candidates[i]])
|
||||
-- fit the maximum names in a single 255 char message (15)
|
||||
if i == to or k == 15 then
|
||||
QueueFunction(SendChatMessageWide,names)
|
||||
SendChatMessageWide(names)
|
||||
names = ""
|
||||
end
|
||||
k = k<15 and k+1 or 1
|
||||
@@ -57,10 +58,11 @@ pfUI:RegisterModule("loot", function ()
|
||||
end
|
||||
pfUI.loot:RegisterEvent("CHAT_MSG_SYSTEM")
|
||||
pfUI.loot.randomRolling = true
|
||||
QueueFunction(RandomRoll,"1",tostring(to))
|
||||
RandomRoll("1",tostring(to))
|
||||
end
|
||||
end
|
||||
|
||||
-- the roll actions keep the menu open, so it can show the rolls coming in
|
||||
function pfUI.loot.RequestRolls()
|
||||
local slot = pfUI.loot.selectedSlot or 0
|
||||
local rollers = wipe(pfUI.loot.rollers)
|
||||
@@ -68,58 +70,16 @@ pfUI:RegisterModule("loot", function ()
|
||||
SendChatMessageWide(T["Roll for"].. " " .. GetLootSlotLink(slot))
|
||||
pfUI.loot:RegisterEvent("CHAT_MSG_SYSTEM")
|
||||
pfUI.loot.monitorRolling = true
|
||||
UIDropDownMenu_Refresh(GroupLootDropDown)
|
||||
end
|
||||
|
||||
function pfUI.loot:BuildSpecialRecipientsMenu(level)
|
||||
local slot = pfUI.loot.selectedSlot or 0
|
||||
if level == 1 then
|
||||
if pfUI.loot.my_index or pfUI.loot.disenchanter_index or pfUI.loot.banker_index then
|
||||
info = wipe(info)
|
||||
info.text = T["Special Recipient"]
|
||||
info.textR, info.textG, info.textB = NORMAL_FONT_COLOR:GetRGB()
|
||||
info.textHeight = 12
|
||||
info.hasArrow = 1
|
||||
info.notCheckable = 1
|
||||
info.value = "PFRECIPIENTS"
|
||||
info.func = nil
|
||||
UIDropDownMenu_AddButton(info)
|
||||
end
|
||||
elseif level == 2 then
|
||||
if UIDROPDOWNMENU_MENU_VALUE == "PFRECIPIENTS" then
|
||||
if (pfUI.loot.my_index) then
|
||||
info = wipe(info)
|
||||
info.text = T["Self"]
|
||||
info.textHeight = 12
|
||||
info.value = pfUI.loot.my_index
|
||||
info.func = GroupLootDropDown_GiveLoot
|
||||
UIDropDownMenu_AddButton(info,UIDROPDOWNMENU_MENU_LEVEL)
|
||||
end
|
||||
if (pfUI.loot.disenchanter_index) then
|
||||
info = wipe(info)
|
||||
info.text = T["Disenchanter"]
|
||||
info.textHeight = 12
|
||||
info.value = pfUI.loot.disenchanter_index
|
||||
info.func = GroupLootDropDown_GiveLoot
|
||||
UIDropDownMenu_AddButton(info,UIDROPDOWNMENU_MENU_LEVEL)
|
||||
end
|
||||
if (pfUI.loot.banker_index) then
|
||||
info = wipe(info)
|
||||
info.text = T["Banker"]
|
||||
info.textHeight = 12
|
||||
info.value = pfUI.loot.banker_index
|
||||
info.func = GroupLootDropDown_GiveLoot
|
||||
UIDropDownMenu_AddButton(info,UIDROPDOWNMENU_MENU_LEVEL)
|
||||
end
|
||||
end
|
||||
end
|
||||
RefreshMasterLootMenu()
|
||||
return MenuResponse.Open
|
||||
end
|
||||
|
||||
function pfUI.loot.ClearRolls()
|
||||
wipe(pfUI.loot.rollers)
|
||||
wipe(pfUI.loot.rollers_sorted)
|
||||
pfUI.loot.monitorRolling = nil
|
||||
UIDropDownMenu_Refresh(GroupLootDropDown)
|
||||
RefreshMasterLootMenu()
|
||||
return MenuResponse.Open
|
||||
end
|
||||
|
||||
function pfUI.loot.CallTieRoll(rollers)
|
||||
@@ -148,69 +108,12 @@ pfUI:RegisterModule("loot", function ()
|
||||
pfUI.loot:RegisterEvent("CHAT_MSG_SYSTEM")
|
||||
pfUI.loot.monitorRolling = true
|
||||
end
|
||||
UIDropDownMenu_Refresh(GroupLootDropDown)
|
||||
RefreshMasterLootMenu()
|
||||
return MenuResponse.Open
|
||||
end
|
||||
|
||||
function pfUI.loot:BuildSpecialRollsMenu(level)
|
||||
local slot = pfUI.loot.selectedSlot or 0
|
||||
if level == 1 then
|
||||
info = wipe(info)
|
||||
info.text = T["Random"]
|
||||
info.textR, info.textG, info.textB = NORMAL_FONT_COLOR:GetRGB()
|
||||
info.value = "PFRANDOM"
|
||||
info.textHeight = 12
|
||||
info.notCheckable = 1
|
||||
info.arg1 = pfUI.loot.randoms
|
||||
info.func = pfUI.loot.RaidRoll
|
||||
UIDropDownMenu_AddButton(info)
|
||||
|
||||
info = wipe(info)
|
||||
info.text = T["Request Rolls"]
|
||||
info.textR, info.textG, info.textB = NORMAL_FONT_COLOR:GetRGB()
|
||||
info.value = "PFROLLS"
|
||||
info.textHeight = 12
|
||||
info.hasArrow = 1
|
||||
info.notCheckable = 1
|
||||
info.func = pfUI.loot.RequestRolls
|
||||
UIDropDownMenu_AddButton(info)
|
||||
elseif level == 2 then
|
||||
if UIDROPDOWNMENU_MENU_VALUE == "PFROLLS" then
|
||||
info = wipe(info)
|
||||
info.text = T["Clear Rolls"]
|
||||
info.textR, info.textG, info.textB = NORMAL_FONT_COLOR:GetRGB()
|
||||
info.value = "PFCLEARROLLS"
|
||||
info.notCheckable = 1
|
||||
info.func = pfUI.loot.ClearRolls
|
||||
UIDropDownMenu_AddButton(info,UIDROPDOWNMENU_MENU_LEVEL)
|
||||
|
||||
info = wipe(info)
|
||||
info.text = T["Reroll Ties"]
|
||||
info.textR, info.textG, info.textB = NORMAL_FONT_COLOR:GetRGB()
|
||||
info.value = "PFTIEROLL"
|
||||
info.notCheckable = 1
|
||||
info.arg1 = pfUI.loot.rollers_sorted
|
||||
info.func = pfUI.loot.CallTieRoll
|
||||
UIDropDownMenu_AddButton(info,UIDROPDOWNMENU_MENU_LEVEL)
|
||||
for _,roller in ipairs(pfUI.loot.rollers_sorted) do
|
||||
info = wipe(info)
|
||||
info.text = string.format("%02d - %s",roller.roll,roller.who)
|
||||
info.textHeight = 12
|
||||
if roller.value == "disabled" then
|
||||
info.disabled = 1
|
||||
info.value = "disabled"
|
||||
else
|
||||
info.value = roller.value
|
||||
info.func = GroupLootDropDown_GiveLoot
|
||||
end
|
||||
info.notCheckable = 1
|
||||
UIDropDownMenu_AddButton(info,UIDROPDOWNMENU_MENU_LEVEL)
|
||||
end
|
||||
end
|
||||
end
|
||||
end
|
||||
|
||||
function pfUI.loot:BuildRaidMenu(level)
|
||||
local slot = pfUI.loot.selectedSlot or 0
|
||||
-- fills the candidate tables from the master loot candidates of the raid
|
||||
local function UpdateRaidCandidates()
|
||||
local index_to_name = wipe(pfUI.loot.index_to_name)
|
||||
local name_to_index = wipe(pfUI.loot.name_to_index)
|
||||
local classes_in_raid = wipe(pfUI.loot.classes_in_raid) -- [global class]=localized class for display
|
||||
@@ -242,89 +145,97 @@ pfUI:RegisterModule("loot", function ()
|
||||
table.insert(players_in_class[unit.class],candidate)
|
||||
end
|
||||
end
|
||||
if level == 1 then -- classes
|
||||
info = wipe(info)
|
||||
info.text = GIVE_LOOT
|
||||
info.textHeight = 12
|
||||
info.notCheckable = 1
|
||||
info.isTitle = 1
|
||||
UIDropDownMenu_AddButton(info)
|
||||
pfUI.loot:BuildSpecialRollsMenu(UIDROPDOWNMENU_MENU_LEVEL)
|
||||
pfUI.loot:BuildSpecialRecipientsMenu(UIDROPDOWNMENU_MENU_LEVEL)
|
||||
for order, class in ipairs(CLASS_SORT_ORDER) do
|
||||
local lclass = classes_in_raid[class]
|
||||
if (lclass) then
|
||||
info = wipe(info)
|
||||
info.text = lclass
|
||||
info.textR, info.textG, info.textB = .7,.7,.7
|
||||
if class and PFUI_CLASS_COLORS[class] then
|
||||
info.textR, info.textG, info.textB = PFUI_CLASS_COLORS[class]:GetRGB()
|
||||
end
|
||||
info.textHeight = 12
|
||||
info.hasArrow = 1
|
||||
info.notCheckable = 1
|
||||
info.value = class
|
||||
info.func = nil
|
||||
UIDropDownMenu_AddButton(info)
|
||||
end
|
||||
end
|
||||
elseif level == 2 then -- players
|
||||
pfUI.loot:BuildSpecialRollsMenu(UIDROPDOWNMENU_MENU_LEVEL)
|
||||
pfUI.loot:BuildSpecialRecipientsMenu(UIDROPDOWNMENU_MENU_LEVEL)
|
||||
local players = players_in_class[UIDROPDOWNMENU_MENU_VALUE]
|
||||
if (players) and next(players) then
|
||||
table.sort(players)
|
||||
for _, candidate in ipairs(players) do
|
||||
info = wipe(info)
|
||||
info.text = candidate
|
||||
info.textR, info.textG, info.textB = .7,.7,.7
|
||||
if UIDROPDOWNMENU_MENU_VALUE and PFUI_CLASS_COLORS[UIDROPDOWNMENU_MENU_VALUE] then
|
||||
info.textR, info.textG, info.textB = PFUI_CLASS_COLORS[UIDROPDOWNMENU_MENU_VALUE]:GetRGB()
|
||||
end
|
||||
info.textHeight = 12
|
||||
info.value = name_to_index[candidate]
|
||||
info.func = GroupLootDropDown_GiveLoot
|
||||
UIDropDownMenu_AddButton(info,UIDROPDOWNMENU_MENU_LEVEL)
|
||||
end
|
||||
end
|
||||
|
||||
-- gives the selected slot to a candidate, asking first for epic items
|
||||
local function GiveLoot(index)
|
||||
if ( pfUI.loot.selectedQuality >= MASTER_LOOT_THREHOLD ) then
|
||||
local dialog = StaticPopup_Show("CONFIRM_LOOT_DISTRIBUTION", ITEM_QUALITY_COLORS[pfUI.loot.selectedQuality].hex..pfUI.loot.selectedItemName..FONT_COLOR_CODE_CLOSE, GetMasterLootCandidate(index))
|
||||
if ( dialog ) then
|
||||
dialog.data = index
|
||||
end
|
||||
else
|
||||
GiveMasterLoot(pfUI.loot.selectedSlot, index)
|
||||
end
|
||||
end
|
||||
|
||||
function pfUI.loot:BuildPartyMenu(level)
|
||||
local slot = pfUI.loot.selectedSlot or 0
|
||||
if level == 1 then
|
||||
for i=1, MAX_PARTY_MEMBERS+1, 1 do
|
||||
-- A party gets its candidates. A raid gets the advanced loot tools, then
|
||||
-- a submenu of candidates per class.
|
||||
local function GenerateMasterLootMenu(owner, rootDescription)
|
||||
if not IsInRaid() then
|
||||
for i=1, MAX_PARTY_MEMBERS+1 do
|
||||
local candidate = GetMasterLootCandidate(i)
|
||||
if (candidate) then
|
||||
info = wipe(info)
|
||||
local unit = GroupInfoByName(candidate,"party")
|
||||
info.text = candidate
|
||||
info.textR, info.textG, info.textB = .7,.7,.7
|
||||
if unit.class and PFUI_CLASS_COLORS[unit.class] then
|
||||
info.textR, info.textG, info.textB = PFUI_CLASS_COLORS[unit.class]:GetRGB()
|
||||
end
|
||||
info.textHeight = 12
|
||||
info.value = i
|
||||
info.func = GroupLootDropDown_GiveLoot
|
||||
UIDropDownMenu_AddButton(info)
|
||||
rootDescription:CreateButton(PFUI_CLASS_COLORS[unit.class]:WrapTextInColorCode(candidate), GiveLoot, i)
|
||||
end
|
||||
end
|
||||
return
|
||||
end
|
||||
|
||||
UpdateRaidCandidates()
|
||||
rootDescription:CreateTitle(GIVE_LOOT)
|
||||
|
||||
if C.loot.advancedloot == "1" then
|
||||
rootDescription:CreateButton(NORMAL_FONT_COLOR:WrapTextInColorCode(T["Random"]), pfUI.loot.RaidRoll, pfUI.loot.randoms)
|
||||
rootDescription:CreateButton(NORMAL_FONT_COLOR:WrapTextInColorCode(T["Request Rolls"]), pfUI.loot.RequestRolls)
|
||||
|
||||
-- the rolls so far, highest first; a roller who can't get the item is greyed out
|
||||
if pfUI.loot.monitorRolling then
|
||||
rootDescription:CreateButton(NORMAL_FONT_COLOR:WrapTextInColorCode(T["Reroll Ties"]), pfUI.loot.CallTieRoll, pfUI.loot.rollers_sorted)
|
||||
rootDescription:CreateButton(NORMAL_FONT_COLOR:WrapTextInColorCode(T["Clear Rolls"]), pfUI.loot.ClearRolls)
|
||||
for _, roller in ipairs(pfUI.loot.rollers_sorted) do
|
||||
local button = rootDescription:CreateButton(string.format("%02d - %s", roller.roll, roller.who), GiveLoot, roller.value)
|
||||
button:SetEnabled(roller.value ~= "disabled")
|
||||
end
|
||||
end
|
||||
|
||||
if pfUI.loot.my_index or pfUI.loot.disenchanter_index or pfUI.loot.banker_index then
|
||||
local recipients = rootDescription:CreateButton(NORMAL_FONT_COLOR:WrapTextInColorCode(T["Special Recipient"]))
|
||||
if pfUI.loot.my_index then
|
||||
recipients:CreateButton(T["Self"], GiveLoot, pfUI.loot.my_index)
|
||||
end
|
||||
if pfUI.loot.disenchanter_index then
|
||||
recipients:CreateButton(T["Disenchanter"], GiveLoot, pfUI.loot.disenchanter_index)
|
||||
end
|
||||
if pfUI.loot.banker_index then
|
||||
recipients:CreateButton(T["Banker"], GiveLoot, pfUI.loot.banker_index)
|
||||
end
|
||||
end
|
||||
end
|
||||
|
||||
for _, class in ipairs(CLASS_SORT_ORDER) do
|
||||
local players = pfUI.loot.players_in_class[class]
|
||||
if (players) then
|
||||
local color = PFUI_CLASS_COLORS[class]
|
||||
local classButton = rootDescription:CreateButton(color:WrapTextInColorCode(pfUI.loot.classes_in_raid[class]))
|
||||
table.sort(players)
|
||||
for _, candidate in ipairs(players) do
|
||||
classButton:CreateButton(color:WrapTextInColorCode(candidate), GiveLoot, pfUI.loot.name_to_index[candidate])
|
||||
end
|
||||
end
|
||||
end
|
||||
end
|
||||
|
||||
function pfUI.loot:InitGroupDropDown()
|
||||
local inRaid = IsInRaid()
|
||||
if UIDROPDOWNMENU_MENU_LEVEL == 1 then
|
||||
if ( inRaid ) then
|
||||
pfUI.loot:BuildRaidMenu(UIDROPDOWNMENU_MENU_LEVEL)
|
||||
else
|
||||
pfUI.loot:BuildPartyMenu(UIDROPDOWNMENU_MENU_LEVEL)
|
||||
end
|
||||
elseif UIDROPDOWNMENU_MENU_LEVEL == 2 and (inRaid) then
|
||||
pfUI.loot:BuildRaidMenu(UIDROPDOWNMENU_MENU_LEVEL)
|
||||
-- Opens the menu under the clicked loot button, which owns it. The slots
|
||||
-- table is by row, not by loot slot, so after a looted item it no longer
|
||||
-- lines up with selectedSlot. Opening it again closes the one shown before.
|
||||
OpenMasterLootMenu = function()
|
||||
local slot = pfUI.loot.selectedLootButton
|
||||
local description = MenuUtil.CreateRootMenuDescription(pfUIMenuStyleMixin)
|
||||
Menu.PopulateDescription(GenerateMasterLootMenu, slot, description)
|
||||
|
||||
masterLootMenu = Menu.GetManager():OpenMenu(slot, description, AnchorUtil.CreateAnchor("TOPLEFT", slot, "BOTTOMLEFT", 0, 0))
|
||||
if masterLootMenu then
|
||||
masterLootMenu:SetClosedCallback(function() masterLootMenu = nil end)
|
||||
end
|
||||
end
|
||||
|
||||
-- a change to the candidates or the rolls rebuilds the menu while it is shown
|
||||
RefreshMasterLootMenu = function()
|
||||
if masterLootMenu then OpenMasterLootMenu() end
|
||||
end
|
||||
|
||||
function pfUI.loot:AddMasterLootMenus()
|
||||
for index,value in ipairs(UnitPopupMenus["SELF"]) do
|
||||
if value == "LOOT_PROMOTE" then
|
||||
@@ -376,7 +287,6 @@ pfUI:RegisterModule("loot", function ()
|
||||
end
|
||||
|
||||
if C.loot.advancedloot == "1" then
|
||||
UIDropDownMenu_Initialize(GroupLootDropDown, pfUI.loot.InitGroupDropDown, "MENU")
|
||||
for button, data in pairs(pfUI.loot.unitbuttons) do
|
||||
UnitPopupButtons[button] = { text = data[1], dist = 0}
|
||||
end
|
||||
@@ -413,7 +323,6 @@ pfUI:RegisterModule("loot", function ()
|
||||
end)
|
||||
else
|
||||
pfUI.loot:RemoveMasterlootMenus()
|
||||
UIDropDownMenu_Initialize(GroupLootDropDown, GroupLootDropDown_Initialize, "MENU")
|
||||
end
|
||||
|
||||
pfUI.loot.slots = {}
|
||||
@@ -506,8 +415,7 @@ pfUI:RegisterModule("loot", function ()
|
||||
|
||||
local function CloseOnClick()
|
||||
local lootbind = StaticPopup_FindVisible("LOOT_BIND")
|
||||
local masterloot = UIDROPDOWNMENU_INIT_MENU and (UIDROPDOWNMENU_INIT_MENU == "GroupLootDropDown")
|
||||
if lootbind or masterloot then else CloseLoot() end
|
||||
if lootbind or masterLootMenu then else CloseLoot() end
|
||||
end
|
||||
|
||||
function pfUI.loot:CreateSlot(id)
|
||||
@@ -531,7 +439,7 @@ pfUI:RegisterModule("loot", function ()
|
||||
|
||||
StaticPopup_Hide("CONFIRM_LOOT_DISTRIBUTION")
|
||||
local numItems = GetNumLootItems()
|
||||
pfUI.loot.selectedLootButton = this:GetName()
|
||||
pfUI.loot.selectedLootButton = this
|
||||
pfUI.loot.selectedSlot = this:GetID()
|
||||
pfUI.loot.selectedQuality = this.quality
|
||||
pfUI.loot.selectedItemName = this.name:GetText()
|
||||
@@ -542,7 +450,7 @@ pfUI:RegisterModule("loot", function ()
|
||||
LootSlot(this:GetID())
|
||||
-- workaround for bugged disenchant / container loot on some servers
|
||||
if numItems == 1 then
|
||||
QueueFunction(CloseOnClick)
|
||||
RunNextFrame(CloseOnClick)
|
||||
end
|
||||
end)
|
||||
|
||||
@@ -622,11 +530,11 @@ pfUI:RegisterModule("loot", function ()
|
||||
|
||||
pfUI.loot:SetScript("OnEvent", function()
|
||||
if event == "OPEN_MASTER_LOOT_LIST" then
|
||||
ToggleDropDownMenu(1, nil, GroupLootDropDown, pfUI.loot.slots[pfUI.loot.selectedSlot], 0, 0)
|
||||
OpenMasterLootMenu()
|
||||
end
|
||||
|
||||
if event == "UPDATE_MASTER_LOOT_LIST" then
|
||||
UIDropDownMenu_Refresh(GroupLootDropDown)
|
||||
RefreshMasterLootMenu()
|
||||
end
|
||||
|
||||
if event == "LOOT_OPENED" then
|
||||
@@ -657,7 +565,6 @@ pfUI:RegisterModule("loot", function ()
|
||||
if event == "LOOT_CLOSED" then
|
||||
StaticPopup_Hide("LOOT_BIND")
|
||||
HideUIPanel(this)
|
||||
if DropDownList1:IsShown() then CloseDropDownMenus() end
|
||||
for _, v in pairs(this.slots) do
|
||||
v:Hide()
|
||||
end
|
||||
@@ -689,7 +596,7 @@ pfUI:RegisterModule("loot", function ()
|
||||
table.sort(pfUI.loot.rollers_sorted,function(a,b)
|
||||
return a.roll > b.roll
|
||||
end)
|
||||
QueueFunction(UIDropDownMenu_Refresh,GroupLootDropDown)
|
||||
RefreshMasterLootMenu()
|
||||
end
|
||||
end
|
||||
|
||||
@@ -697,7 +604,7 @@ pfUI:RegisterModule("loot", function ()
|
||||
if C.loot.autopickup == "1" and GetNumPartyMembers() == 0 and GetNumRaidMembers() == 0 then
|
||||
if event == "LOOT_BIND_CONFIRM" then
|
||||
local slot = arg1
|
||||
QueueFunction(function()
|
||||
RunNextFrame(function()
|
||||
LootSlot(slot)
|
||||
StaticPopup_Hide("LOOT_BIND")
|
||||
end)
|
||||
@@ -712,18 +619,6 @@ pfUI:RegisterModule("loot", function ()
|
||||
LootFrame:UnregisterAllEvents()
|
||||
table.insert(UISpecialFrames, "pfLootFrame")
|
||||
|
||||
function _G.GroupLootDropDown_GiveLoot()
|
||||
if ( pfUI.loot.selectedQuality >= MASTER_LOOT_THREHOLD ) then
|
||||
local dialog = StaticPopup_Show("CONFIRM_LOOT_DISTRIBUTION", ITEM_QUALITY_COLORS[pfUI.loot.selectedQuality].hex..pfUI.loot.selectedItemName..FONT_COLOR_CODE_CLOSE, this:GetText())
|
||||
if ( dialog ) then
|
||||
dialog.data = this.value
|
||||
end
|
||||
else
|
||||
GiveMasterLoot(pfUI.loot.selectedSlot, this.value)
|
||||
end
|
||||
CloseDropDownMenus()
|
||||
end
|
||||
|
||||
StaticPopupDialogs["CONFIRM_LOOT_DISTRIBUTION"].OnAccept = function(data)
|
||||
GiveMasterLoot(pfUI.loot.selectedSlot, data)
|
||||
end
|
||||
|
||||
+80
-115
@@ -1,9 +1,9 @@
|
||||
pfUI:RegisterModule("loothistory", function ()
|
||||
local rawborder, border = GetBorderSize()
|
||||
|
||||
-- Layout
|
||||
local ITEM_H, PLAYER_H = 24, 18
|
||||
local ITEM_W, PLAYER_W = 350, 330
|
||||
-- Layout (rows are 2px apart)
|
||||
local ITEM_H, PLAYER_H = 24, 16
|
||||
local PLAYER_INDENT = 18
|
||||
|
||||
-- rollType constants returned by C_LootHistory.GetPlayerInfo (0/1/2; vanilla
|
||||
-- has no disenchant roll).
|
||||
@@ -86,30 +86,24 @@ pfUI:RegisterModule("loothistory", function ()
|
||||
pfUI.loothistory.clear:SetText(T["Clear"])
|
||||
pfUI.loothistory.clear:SetScript("OnClick", function() C_LootHistory.Clear() end)
|
||||
|
||||
-- scroll frame
|
||||
pfUI.loothistory.scroll = CreateScrollFrame("pfLootHistoryScroll", pfUI.loothistory)
|
||||
pfUI.loothistory.scroll:SetSize(360, 440)
|
||||
pfUI.loothistory.scroll:SetPoint("BOTTOM", 0, 10)
|
||||
|
||||
pfUI.loothistory.scroll.backdrop = CreateFrame("Frame", nil, pfUI.loothistory.scroll)
|
||||
pfUI.loothistory.scroll.backdrop:SetFrameLevel(1)
|
||||
pfUI.loothistory.scroll.backdrop:SetPoint("TOPLEFT", pfUI.loothistory.scroll, "TOPLEFT", -5, 5)
|
||||
pfUI.loothistory.scroll.backdrop:SetPoint("BOTTOMRIGHT", pfUI.loothistory.scroll, "BOTTOMRIGHT", 5, -5)
|
||||
CreateBackdrop(pfUI.loothistory.scroll.backdrop, nil, true)
|
||||
|
||||
local list = CreateScrollChild("pfLootHistoryList", pfUI.loothistory.scroll)
|
||||
-- ==========================================================================
|
||||
-- List: a row per item and, under an expanded item, a row per player
|
||||
-- ==========================================================================
|
||||
local list = CreateFrame("Frame", "pfLootHistoryList", pfUI.loothistory, "pfUIScrollBoxListTemplate")
|
||||
list:SetSize(370, 450)
|
||||
list:SetPoint("BOTTOM", 0, 5)
|
||||
CreateBackdrop(list, nil, true)
|
||||
pfUI.loothistory.list = list
|
||||
|
||||
-- ==========================================================================
|
||||
-- Frame pools
|
||||
-- ==========================================================================
|
||||
local itemFrames = {}
|
||||
|
||||
local FullUpdate -- forward declaration (toggle handlers call it)
|
||||
|
||||
local function CreateItemFrame()
|
||||
local f = CreateFrame("Button", nil, list)
|
||||
f:SetSize(ITEM_W, ITEM_H)
|
||||
local function ToggleExpanded(f)
|
||||
local id = f.rollID
|
||||
if id then expanded[id] = not expanded[id]; FullUpdate() end
|
||||
end
|
||||
|
||||
-- one-time setup of a pooled item row
|
||||
local function SetupItemRow(f)
|
||||
f:SetBackdrop(pfUI.backdrop_hover)
|
||||
f:SetBackdropBorderColor(1, 1, 1, .04)
|
||||
f:EnableMouse(1)
|
||||
@@ -118,10 +112,7 @@ pfUI:RegisterModule("loothistory", function ()
|
||||
f.toggle = CreateFrame("Button", nil, f)
|
||||
f.toggle:SetSize(14, 14)
|
||||
f.toggle:SetPoint("LEFT", 4, 0)
|
||||
f.toggle:SetScript("OnClick", function()
|
||||
local id = f.rollID
|
||||
if id then expanded[id] = not expanded[id]; FullUpdate() end
|
||||
end)
|
||||
f.toggle:SetScript("OnClick", function() ToggleExpanded(f) end)
|
||||
|
||||
-- icon + quality-colored border
|
||||
f.iconbg = CreateFrame("Frame", nil, f)
|
||||
@@ -138,18 +129,18 @@ pfUI:RegisterModule("loothistory", function ()
|
||||
f.winicon:SetSize(14, 14)
|
||||
f.winicon:SetPoint("RIGHT", f, "RIGHT", -6, 0)
|
||||
|
||||
f.winroll = f:CreateFontString("Status", "OVERLAY", "GameFontNormal")
|
||||
f.winroll = f:CreateFontString(nil, "OVERLAY", "GameFontNormal")
|
||||
f.winroll:SetFont(pfUI.font_default, C.global.font_size, "OUTLINE")
|
||||
f.winroll:SetPoint("RIGHT", f.winicon, "LEFT", -2, 0)
|
||||
f.winroll:SetTextColor(1, 1, 1, 1)
|
||||
|
||||
f.winname = f:CreateFontString("Status", "OVERLAY", "GameFontNormal")
|
||||
f.winname = f:CreateFontString(nil, "OVERLAY", "GameFontNormal")
|
||||
f.winname:SetFont(pfUI.font_default, C.global.font_size, "OUTLINE")
|
||||
f.winname:SetPoint("RIGHT", f.winroll, "LEFT", -4, 0)
|
||||
f.winname:SetJustifyH("RIGHT")
|
||||
|
||||
-- item name (leaves room on the right for the winner block)
|
||||
f.name = f:CreateFontString("Status", "OVERLAY", "GameFontNormal")
|
||||
f.name = f:CreateFontString(nil, "OVERLAY", "GameFontNormal")
|
||||
f.name:SetFont(pfUI.font_default, C.global.font_size, "OUTLINE")
|
||||
f.name:SetPoint("LEFT", f.iconbg, "RIGHT", 5, 0)
|
||||
f.name:SetPoint("RIGHT", f, "RIGHT", -100, 0)
|
||||
@@ -167,20 +158,13 @@ pfUI:RegisterModule("loothistory", function ()
|
||||
this:SetBackdropBorderColor(1, 1, 1, .04)
|
||||
GameTooltip:Hide()
|
||||
end)
|
||||
f:SetScript("OnClick", function()
|
||||
local id = this.rollID
|
||||
if id then expanded[id] = not expanded[id]; FullUpdate() end
|
||||
end)
|
||||
|
||||
return f
|
||||
f:SetScript("OnClick", function() ToggleExpanded(f) end)
|
||||
end
|
||||
|
||||
local function CreatePlayerFrame()
|
||||
local f = CreateFrame("Frame", nil, list)
|
||||
f:SetSize(PLAYER_W, PLAYER_H)
|
||||
|
||||
-- one-time setup of a pooled player row
|
||||
local function SetupPlayerRow(f)
|
||||
-- name is indented to leave room for the winner checkmark on its left
|
||||
f.name = f:CreateFontString("Status", "OVERLAY", "GameFontNormal")
|
||||
f.name = f:CreateFontString(nil, "OVERLAY", "GameFontNormal")
|
||||
f.name:SetFont(pfUI.font_default, C.global.font_size, "OUTLINE")
|
||||
f.name:SetPoint("LEFT", 20, 0)
|
||||
f.name:SetJustifyH("LEFT")
|
||||
@@ -189,7 +173,7 @@ pfUI:RegisterModule("loothistory", function ()
|
||||
f.rollicon:SetSize(16, 16)
|
||||
f.rollicon:SetPoint("RIGHT", -4, 0)
|
||||
|
||||
f.rolltext = f:CreateFontString("Status", "OVERLAY", "GameFontNormal")
|
||||
f.rolltext = f:CreateFontString(nil, "OVERLAY", "GameFontNormal")
|
||||
f.rolltext:SetFont(pfUI.font_default, C.global.font_size, "OUTLINE")
|
||||
f.rolltext:SetPoint("RIGHT", f.rollicon, "LEFT", -3, 0)
|
||||
f.rolltext:SetTextColor(1, 1, 1, 1)
|
||||
@@ -199,15 +183,8 @@ pfUI:RegisterModule("loothistory", function ()
|
||||
f.winmark:SetSize(16, 16)
|
||||
f.winmark:SetTexture(WINMARK)
|
||||
f.winmark:SetPoint("RIGHT", f.name, "LEFT", -1, 0)
|
||||
|
||||
return f
|
||||
end
|
||||
|
||||
local playerPool = CreateObjectPool(CreatePlayerFrame, function(_, pf)
|
||||
pf:Hide()
|
||||
pf:ClearAllPoints()
|
||||
end)
|
||||
|
||||
local function SetToggleTexture(toggle, isExpanded)
|
||||
if isExpanded then
|
||||
toggle:SetNormalTexture("Interface\\Buttons\\UI-MinusButton-Up")
|
||||
@@ -221,34 +198,28 @@ pfUI:RegisterModule("loothistory", function ()
|
||||
-- ==========================================================================
|
||||
-- Rendering
|
||||
-- ==========================================================================
|
||||
local function UpdateItemFrame(f, i)
|
||||
local rollID, itemLink, numPlayers, isDone, winnerIdx = C_LootHistory.GetItem(i)
|
||||
local function InitItemRow(f, row)
|
||||
if not f.toggle then SetupItemRow(f) end
|
||||
|
||||
local i = row.item
|
||||
local rollID, itemLink, _, isDone, winnerIdx = C_LootHistory.GetItem(i)
|
||||
f.rollID = rollID
|
||||
f.itemIdx = i
|
||||
f.itemLink = itemLink
|
||||
f.numPlayers = numPlayers or 0
|
||||
f.isDone = isDone
|
||||
|
||||
local isExpanded = rollID and expanded[rollID]
|
||||
SetToggleTexture(f.toggle, isExpanded)
|
||||
|
||||
-- Item icon/name/quality via the ClassicAPI Item mixin. When the item
|
||||
-- isn't cached yet, show a placeholder and re-paint this row from the
|
||||
-- ContinueOnItemLoad callback (guarded on rollID: rows are pooled, so the
|
||||
-- Item icon/name/quality via the ClassicAPI Item mixin. The row shows a
|
||||
-- placeholder until ContinueOnItemLoad paints it, which happens at once
|
||||
-- when the item is cached (guarded on rollID: rows are pooled, so the
|
||||
-- callback must no-op if the row has since been reused for another roll).
|
||||
local item = itemLink and Item:CreateFromItemLink(itemLink)
|
||||
if item and not item:IsItemEmpty() then
|
||||
if item:IsItemDataCached() then
|
||||
RenderItemVisual(f, item)
|
||||
else
|
||||
ShowRetrieving(f)
|
||||
local pending = rollID
|
||||
item:ContinueOnItemLoad(function()
|
||||
if f.rollID == pending then RenderItemVisual(f, item) end
|
||||
end)
|
||||
end
|
||||
else
|
||||
ShowRetrieving(f)
|
||||
ShowRetrieving(f)
|
||||
if itemLink then
|
||||
local item = Item:CreateFromItemLink(itemLink)
|
||||
local pending = rollID
|
||||
item:ContinueOnItemLoad(function()
|
||||
if f.rollID == pending then RenderItemVisual(f, item) end
|
||||
end)
|
||||
end
|
||||
|
||||
-- winner summary only on a decided, collapsed row
|
||||
@@ -279,16 +250,35 @@ pfUI:RegisterModule("loothistory", function ()
|
||||
end
|
||||
end
|
||||
|
||||
local function RenderPlayerFrame(pf, name, class, rollType, roll, isWinner)
|
||||
local function InitPlayerRow(pf, row)
|
||||
if not pf.name then SetupPlayerRow(pf) end
|
||||
|
||||
local name, class, rollType, roll, isWinner = C_LootHistory.GetPlayerInfo(row.item, row.player)
|
||||
pf.name:SetText(name or UNKNOWN)
|
||||
pf.name:SetTextColor(PFUI_CLASS_COLORS[class]:GetRGB())
|
||||
|
||||
pf.rollicon:SetTexture(ROLL_TEX[rollType] or ROLL_TEX[ROLL_PASS])
|
||||
if roll and roll > 0 then pf.rolltext:SetText(roll) else pf.rolltext:SetText("") end
|
||||
|
||||
if isWinner then pf.winmark:Show() else pf.winmark:Hide() end
|
||||
pf.winmark:SetShown(isWinner)
|
||||
end
|
||||
|
||||
local view = CreateScrollBoxListLinearView(2, 2, 4, 4, 2)
|
||||
view:SetElementFactory(function(factory, row)
|
||||
if row.player then
|
||||
factory("Frame", InitPlayerRow)
|
||||
else
|
||||
factory("Button", InitItemRow)
|
||||
end
|
||||
end)
|
||||
view:SetElementExtentCalculator(function(_, row)
|
||||
return row.player and PLAYER_H or ITEM_H
|
||||
end)
|
||||
view:SetElementIndentCalculator(function(row)
|
||||
return row.player and PLAYER_INDENT or 0
|
||||
end)
|
||||
ScrollUtil.InitScrollBoxListWithScrollBar(list.ScrollBox, list.ScrollBar, view)
|
||||
|
||||
-- A player row is worth showing while the roll is undecided (see everyone),
|
||||
-- or afterwards only if they actually rolled or it's you (hide the passers'
|
||||
-- noise on a decided roll) — mirrors Blizzard's ShouldDisplayPlayer.
|
||||
@@ -298,46 +288,23 @@ pfUI:RegisterModule("loothistory", function ()
|
||||
|
||||
function FullUpdate()
|
||||
if not pfUI.loothistory:IsShown() then return end
|
||||
playerPool:ReleaseAll()
|
||||
|
||||
local num = C_LootHistory.GetNumItems()
|
||||
local y = -2
|
||||
local rows = {}
|
||||
for i = 1, C_LootHistory.GetNumItems() do
|
||||
local rollID, _, numPlayers, isDone = C_LootHistory.GetItem(i)
|
||||
table.insert(rows, { item = i })
|
||||
|
||||
for i = 1, num do
|
||||
local f = itemFrames[i] or CreateItemFrame()
|
||||
itemFrames[i] = f
|
||||
UpdateItemFrame(f, i)
|
||||
f:ClearAllPoints()
|
||||
f:SetPoint("TOPLEFT", list, "TOPLEFT", 4, y)
|
||||
f:Show()
|
||||
y = y - ITEM_H - 2
|
||||
|
||||
if f.rollID and expanded[f.rollID] then
|
||||
for p = 1, f.numPlayers do
|
||||
local name, class, rollType, roll, isWinner, isMe = C_LootHistory.GetPlayerInfo(i, p)
|
||||
if ShouldDisplayPlayer(f.isDone, roll, isMe) then
|
||||
local pf = playerPool:Acquire()
|
||||
RenderPlayerFrame(pf, name, class, rollType, roll, isWinner)
|
||||
pf:ClearAllPoints()
|
||||
pf:SetPoint("TOPLEFT", list, "TOPLEFT", 22, y)
|
||||
pf:Show()
|
||||
y = y - PLAYER_H
|
||||
if rollID and expanded[rollID] then
|
||||
for p = 1, numPlayers or 0 do
|
||||
local _, _, _, roll, _, isMe = C_LootHistory.GetPlayerInfo(i, p)
|
||||
if ShouldDisplayPlayer(isDone, roll, isMe) then
|
||||
table.insert(rows, { item = i, player = p })
|
||||
end
|
||||
end
|
||||
y = y - 2
|
||||
end
|
||||
end
|
||||
|
||||
for i = num + 1, table.getn(itemFrames) do
|
||||
itemFrames[i]:Hide()
|
||||
end
|
||||
|
||||
-- Resize the scroll child and re-attach it: SetHeight alone on a
|
||||
-- SetAllPoints'd child doesn't make the ScrollFrame recompute its scroll
|
||||
-- range, so a dynamically-grown list wouldn't scroll until a /reload.
|
||||
list:SetHeight(math.max(1, -y + 2))
|
||||
pfUI.loothistory.scroll:SetScrollChild(list)
|
||||
pfUI.loothistory.scroll:UpdateScrollState()
|
||||
list.ScrollBox:SetDataProvider(CreateDataProvider(rows), ScrollBoxConstants.RetainScrollPosition)
|
||||
end
|
||||
|
||||
pfUI.loothistory:SetScript("OnShow", function() FullUpdate() end)
|
||||
@@ -345,20 +312,18 @@ pfUI:RegisterModule("loothistory", function ()
|
||||
-- ==========================================================================
|
||||
-- Events
|
||||
-- ==========================================================================
|
||||
local events = CreateFrame("Frame")
|
||||
events:RegisterEvent("LOOT_HISTORY_FULL_UPDATE")
|
||||
events:RegisterEvent("LOOT_HISTORY_ROLL_CHANGED")
|
||||
events:RegisterEvent("LOOT_HISTORY_ROLL_COMPLETE")
|
||||
events:SetScript("OnEvent", function()
|
||||
-- auto-show on a new roll opening / completing, if enabled
|
||||
if C.loothistory.autoshow == "1"
|
||||
and (event == "LOOT_HISTORY_FULL_UPDATE" or event == "LOOT_HISTORY_ROLL_COMPLETE")
|
||||
and not pfUI.loothistory:IsShown() then
|
||||
-- auto-show on a new roll opening / completing, if enabled
|
||||
local function AutoShow()
|
||||
if C.loothistory.autoshow == "1" and not pfUI.loothistory:IsShown() then
|
||||
pfUI.loothistory:Show() -- OnShow runs FullUpdate
|
||||
return
|
||||
end
|
||||
FullUpdate() -- no-op while hidden
|
||||
end)
|
||||
end
|
||||
|
||||
pfUI.events:RegisterFrameEventAndCallback("LOOT_HISTORY_FULL_UPDATE", AutoShow)
|
||||
pfUI.events:RegisterFrameEventAndCallback("LOOT_HISTORY_ROLL_COMPLETE", AutoShow)
|
||||
pfUI.events:RegisterFrameEventAndCallback("LOOT_HISTORY_ROLL_CHANGED", FullUpdate)
|
||||
|
||||
-- ==========================================================================
|
||||
-- Slash command
|
||||
|
||||
@@ -0,0 +1,88 @@
|
||||
pfUI:RegisterModule("lossofcontrol", function ()
|
||||
-- 5.x's loss of control alert. ClassicAPI's C_LossOfControl builds the
|
||||
-- effects from the player's debuffs and from the school lockout of an
|
||||
-- interrupt.
|
||||
local strings = L["lossofcontrol"]
|
||||
|
||||
-- how much each effect takes away; the alert shows the strongest one
|
||||
local PRIORITY = {
|
||||
STUN = 3, FEAR = 3, CONFUSE = 3, CHARM = 3, POSSESS = 3, PACIFYSILENCE = 3,
|
||||
SILENCE = 2, SCHOOL_INTERRUPT = 2, PACIFY = 2,
|
||||
DISARM = 1, ROOT = 1,
|
||||
}
|
||||
|
||||
-- the lockout packet does not name the interrupting spell
|
||||
local INTERRUPT_ICON = "Interface\\Icons\\Ability_Kick"
|
||||
|
||||
local function IsStronger(data, best)
|
||||
local priority, bestPriority = PRIORITY[data.locType], PRIORITY[best.locType]
|
||||
if priority ~= bestPriority then return priority > bestPriority end
|
||||
return (data.timeRemaining or math.huge) > (best.timeRemaining or math.huge)
|
||||
end
|
||||
|
||||
local frame = CreateFrame("Frame", "pfLossOfControl", UIParent)
|
||||
frame:SetSize(220, 48)
|
||||
frame:SetPoint("CENTER", 0, 120)
|
||||
frame:SetFrameStrata("HIGH")
|
||||
frame:Hide()
|
||||
|
||||
frame.icon = CreateFrame("Frame", nil, frame)
|
||||
frame.icon:SetSize(48, 48)
|
||||
frame.icon:SetPoint("LEFT", 0, 0)
|
||||
CreateBackdrop(frame.icon, nil, true)
|
||||
|
||||
frame.icon.tex = frame.icon:CreateTexture(nil, "ARTWORK")
|
||||
HandleIcon(frame.icon, frame.icon.tex)
|
||||
|
||||
frame.cd = CreateCooldown(frame.icon, "lossofcontrol")
|
||||
frame.cd:SetAllPoints(frame.icon.tex)
|
||||
|
||||
frame.label = frame:CreateFontString(nil, "OVERLAY")
|
||||
frame.label:SetFont(pfUI.font_default, 20, "OUTLINE")
|
||||
frame.label:SetTextColor(NORMAL_FONT_COLOR:GetRGB())
|
||||
frame.label:SetPoint("LEFT", frame.icon, "RIGHT", 8, 0)
|
||||
|
||||
frame.Refresh = function(self)
|
||||
local best
|
||||
for i = 1, C_LossOfControl.GetActiveLossOfControlDataCount() do
|
||||
local data = C_LossOfControl.GetActiveLossOfControlData(i)
|
||||
if not best or IsStronger(data, best) then best = data end
|
||||
end
|
||||
|
||||
if not best then
|
||||
if pfUI.unlock and pfUI.unlock:IsShown() then return end
|
||||
self:Hide()
|
||||
return
|
||||
end
|
||||
|
||||
if best.locType == "SCHOOL_INTERRUPT" then
|
||||
self.label:SetText(format(strings.LOSS_OF_CONTROL_DISPLAY_INTERRUPT_SCHOOL, C_Spell.GetSchoolString(best.lockoutSchool)))
|
||||
self.icon.tex:SetTexture(INTERRUPT_ICON)
|
||||
else
|
||||
self.label:SetText(strings["LOSS_OF_CONTROL_DISPLAY_" .. best.locType])
|
||||
self.icon.tex:SetTexture(best.iconTexture)
|
||||
end
|
||||
|
||||
CooldownFrame_SetTimer(self.cd, best.startTime or 0, best.duration or 0, best.startTime and 1 or 0)
|
||||
self:Show()
|
||||
end
|
||||
|
||||
-- a refreshed debuff (UNIT_AURA_DELTA) or a second kick on the same school
|
||||
-- (SPELL_UPDATE_COOLDOWN) changes the timer without a loss of control event
|
||||
frame:SetScript("OnShow", function()
|
||||
this:RegisterUnitEvent("UNIT_AURA_DELTA", "player")
|
||||
this:RegisterEvent("SPELL_UPDATE_COOLDOWN")
|
||||
end)
|
||||
frame:SetScript("OnHide", function()
|
||||
this:UnregisterAllEvents()
|
||||
end)
|
||||
frame:SetScript("OnEvent", function()
|
||||
this:Refresh()
|
||||
end)
|
||||
|
||||
pfUI.events:RegisterFrameEventAndCallback("LOSS_OF_CONTROL_ADDED", function() frame:Refresh() end)
|
||||
pfUI.events:RegisterFrameEventAndCallback("LOSS_OF_CONTROL_UPDATE", function() frame:Refresh() end)
|
||||
|
||||
UpdateMovable(frame)
|
||||
pfUI.lossofcontrol = frame
|
||||
end)
|
||||
@@ -8,7 +8,7 @@
|
||||
-- on both the modern (Turtle/Octo) and stock-vanilla macro UIs. The surrounding
|
||||
-- MacroFrame (list + body editor) is Blizzard's, already skinned elsewhere.
|
||||
pfUI:RegisterModule("macroicons", function ()
|
||||
HookAddonOrVariable("Blizzard_MacroUI", function()
|
||||
HookAddon("Blizzard_MacroUI", function()
|
||||
-- ============================================================
|
||||
-- Popup frame
|
||||
-- ============================================================
|
||||
|
||||
+8
-5
@@ -33,6 +33,10 @@ pfUI:RegisterModule("map", function ()
|
||||
local alpha = C.position["WorldMapFrame"].alpha
|
||||
local scale = C.position["WorldMapFrame"].scale
|
||||
|
||||
-- the hooks go on once, however often the loader runs: turtle-wow.lua also
|
||||
-- calls it, outside of an event
|
||||
local hooked
|
||||
|
||||
local pfMapLoader = CreateFrame("Frame")
|
||||
pfMapLoader:RegisterEvent("PLAYER_ENTERING_WORLD")
|
||||
pfMapLoader:SetScript("OnEvent", function()
|
||||
@@ -46,9 +50,8 @@ pfUI:RegisterModule("map", function ()
|
||||
WorldMapFrame:EnableMouse(true)
|
||||
WorldMapFrame:RegisterForDrag("LeftButton")
|
||||
|
||||
-- make sure the hooks get only applied once
|
||||
if not this.hooked then
|
||||
this.hooked = true
|
||||
if not hooked then
|
||||
hooked = true
|
||||
|
||||
WorldMapFrame:HookScript("OnShow", function()
|
||||
-- customize
|
||||
@@ -64,14 +67,14 @@ pfUI:RegisterModule("map", function ()
|
||||
|
||||
WorldMapFrame:HookScript("OnMouseWheel", function()
|
||||
if IsShiftKeyDown() then
|
||||
alpha = clamp(WorldMapFrame:GetAlpha() + arg1/10, 0.1, 1.0)
|
||||
alpha = Clamp(WorldMapFrame:GetAlpha() + arg1/10, 0.1, 1.0)
|
||||
WorldMapFrame:SetAlpha(alpha)
|
||||
end
|
||||
|
||||
if IsControlKeyDown() then
|
||||
local oldscale = WorldMapFrame:GetScale()
|
||||
local point, rel, relpoint, offx, offy = WorldMapFrame:GetPoint()
|
||||
scale = clamp(oldscale + arg1/10, 0.1, 2.0)
|
||||
scale = Clamp(oldscale + arg1/10, 0.1, 2.0)
|
||||
|
||||
-- recalculate world frame position based on old and new scale
|
||||
if point == "TOPLEFT" and relpoint == "TOPLEFT" then
|
||||
|
||||
@@ -138,7 +138,7 @@ pfUI:RegisterModule("mapcolors", function ()
|
||||
end
|
||||
|
||||
-- BattlefieldMinimap
|
||||
HookAddonOrVariable("Blizzard_BattlefieldMinimap", function()
|
||||
HookAddon("Blizzard_BattlefieldMinimap", function()
|
||||
Initialize('BattlefieldMinimap')
|
||||
|
||||
hooksecurefunc('BattlefieldMinimap_OnUpdate', function()
|
||||
|
||||
+35
-23
@@ -31,7 +31,6 @@ pfUI:RegisterModule("mapreveal", function ()
|
||||
end)
|
||||
|
||||
local explorecaches = {}
|
||||
local alreadyknown = {} -- per-zone accumulator: { [zone] = { [texName] = true } }
|
||||
|
||||
-- Own texture pool - separate from Blizzard's WorldMapOverlay textures
|
||||
local overlayPool = CreateTexturePool(WorldMapDetailFrame, "BORDER", nil, nil, function(_, tex)
|
||||
@@ -93,43 +92,45 @@ pfUI:RegisterModule("mapreveal", function ()
|
||||
-- clear stale caches
|
||||
for k in pairs(explorecaches) do explorecaches[k] = nil end
|
||||
|
||||
-- hide all our textures from last frame
|
||||
-- hide all our textures and icons from last frame
|
||||
overlayPool:ReleaseAll()
|
||||
explorePool:ReleaseAll()
|
||||
|
||||
local showExplore = C.appearance.worldmap.mapexploration == "1"
|
||||
local showReveal = C.appearance.worldmap.mapreveal == "1"
|
||||
if not showExplore and not showReveal then return end
|
||||
|
||||
local r,g,b,a = GetStringColor(C.appearance.worldmap.mapreveal_color)
|
||||
local mapFileName = GetMapInfo()
|
||||
if not mapFileName then mapFileName = "World" end
|
||||
|
||||
local numOverlays = GetNumMapOverlays()
|
||||
|
||||
-- accumulate explored overlays per zone (never clear, only add)
|
||||
if not alreadyknown[mapFileName] then alreadyknown[mapFileName] = {} end
|
||||
for i = 1, numOverlays do
|
||||
local texName = GetMapOverlayInfo(i)
|
||||
if texName then alreadyknown[mapFileName][string.upper(texName)] = true end
|
||||
end
|
||||
|
||||
local zoneKnown = alreadyknown[mapFileName]
|
||||
|
||||
-- hide explore icons
|
||||
explorePool:ReleaseAll()
|
||||
|
||||
-- ClassicAPI: full overlay list for the viewed zone (explored + unexplored),
|
||||
-- read straight from WorldMapOverlay.dbc. Replaces the hand-measured pfMapOverlayData.
|
||||
local zoneData = C_Map.GetMapOverlays() or {}
|
||||
|
||||
-- ClassicAPI: the unexplored subset of the viewed zone, using the engine's
|
||||
-- own explored-bit test. Replaces the alreadyknown accumulator, which
|
||||
-- replayed the explored-only GetMapOverlayInfo view. Keyed by the bare
|
||||
-- texture name, the same key the icon cache below uses.
|
||||
local unknown = {}
|
||||
if showExplore then
|
||||
for _, overlay in ipairs(C_MapExplorationInfo.GetUnexploredMapTextures() or {}) do
|
||||
if overlay.textureName and overlay.textureName ~= "" then
|
||||
unknown[string.upper(overlay.textureName)] = true
|
||||
end
|
||||
end
|
||||
end
|
||||
|
||||
for _, overlay in ipairs(zoneData) do
|
||||
local name = overlay.textureName -- bare, e.g. "DRYGULCHRAVINE"
|
||||
local textureName = overlay.texturePath -- full engine path (for SetTexture)
|
||||
local textureWidth = overlay.textureWidth
|
||||
local textureHeight = overlay.textureHeight
|
||||
local offsetX = overlay.offsetX
|
||||
local offsetY = overlay.offsetY
|
||||
|
||||
-- explore magnifying glass icon. `alreadyknown` stores the FULL paths
|
||||
-- GetMapOverlayInfo returns, so compare with the full path, not the bare
|
||||
-- name.
|
||||
if C.appearance.worldmap.mapexploration == "1" and not zoneKnown[string.upper(textureName)] then
|
||||
-- explore magnifying glass icon for overlays the engine still
|
||||
-- counts as unexplored.
|
||||
if showExplore and unknown[string.upper(name)] then
|
||||
local explore = explorePool:Acquire()
|
||||
explore:SetPoint("TOPLEFT", "WorldMapDetailFrame", "TOPLEFT", offsetX + textureWidth/2, -offsetY - textureHeight/2)
|
||||
explore.name = mapFileName .. " (" .. name .. ")"
|
||||
@@ -147,7 +148,7 @@ pfUI:RegisterModule("mapreveal", function ()
|
||||
-- disambiguated from the actual BLP dimensions. No 256px grid
|
||||
-- math here — deriving the grid from textureWidth/Height is
|
||||
-- exactly what shears quirky overlays (e.g. Icepoint's Kaneq'nuun).
|
||||
if C.appearance.worldmap.mapreveal == "1" then
|
||||
if showReveal then
|
||||
for _, tile in ipairs(overlay.tiles) do
|
||||
local tex = overlayPool:Acquire()
|
||||
|
||||
@@ -174,4 +175,15 @@ pfUI:RegisterModule("mapreveal", function ()
|
||||
pfWorldMapFrame_Update()
|
||||
end
|
||||
|
||||
end)
|
||||
-- live refresh while the map is open: exploration changes arrive on this
|
||||
-- event. Zone switches, zoom and (re)opens still come through the hook
|
||||
-- above, so nothing is redrawn while the map is closed — the next open
|
||||
-- rebuilds from the current state.
|
||||
|
||||
pfUI.events:RegisterFrameEventAndCallback("MAP_EXPLORATION_UPDATED", function()
|
||||
if WorldMapFrame and WorldMapFrame:IsShown() then
|
||||
pfWorldMapFrame_Update()
|
||||
end
|
||||
end)
|
||||
|
||||
end)
|
||||
|
||||
@@ -258,9 +258,7 @@ pfUI.marktracking = CreateFrame("Frame", "pfMarkTracking", UIParent)
|
||||
|
||||
-- Unlock mode: show fixed 1-row placeholder so positioning works correctly
|
||||
if pfUI.unlock then
|
||||
local origShow = pfUI.unlock:GetScript("OnShow")
|
||||
pfUI.unlock:SetScript("OnShow", function()
|
||||
if origShow then origShow() end
|
||||
pfUI.unlock:HookScript("OnShow", function()
|
||||
isUnlocked = true
|
||||
-- hide all rows, show container at 1-row height as drag handle
|
||||
for i = 1, 8 do
|
||||
@@ -270,9 +268,7 @@ pfUI.marktracking = CreateFrame("Frame", "pfMarkTracking", UIParent)
|
||||
pfUI.marktracking:Show()
|
||||
end)
|
||||
|
||||
local origHide = pfUI.unlock:GetScript("OnHide")
|
||||
pfUI.unlock:SetScript("OnHide", function()
|
||||
if origHide then origHide() end
|
||||
pfUI.unlock:HookScript("OnHide", function()
|
||||
isUnlocked = false
|
||||
UpdateDisplay()
|
||||
end)
|
||||
|
||||
+2
-2
@@ -18,7 +18,7 @@ pfUI:RegisterModule("minimap", function ()
|
||||
pfUI.minimap:SetPoint("TOPRIGHT", UIParent, -border*2, -border*2)
|
||||
UpdateMovable(pfUI.minimap)
|
||||
pfUI.minimap:SetScript("OnShow", function()
|
||||
QueueFunction(ShowUIPanel, Minimap)
|
||||
RunNextFrame(function() ShowUIPanel(Minimap) end)
|
||||
end)
|
||||
|
||||
Minimap:SetParent(pfUI.minimap)
|
||||
@@ -103,7 +103,7 @@ pfUI:RegisterModule("minimap", function ()
|
||||
this.highlight:SetAllPoints(this)
|
||||
this.highlight:SetFrameLevel(this:GetFrameLevel() + 1)
|
||||
|
||||
this.highlight.tex = this.highlight:CreateTexture("OVERLAY")
|
||||
this.highlight.tex = this.highlight:CreateTexture(nil, "OVERLAY")
|
||||
this.highlight.tex:SetTexture(pfUI.media["img:mail"])
|
||||
this.highlight.tex:SetPoint("TOPLEFT", MiniMapMailIcon, "TOPLEFT", -2, 2)
|
||||
this.highlight.tex:SetPoint("BOTTOMRIGHT", MiniMapMailIcon, "BOTTOMRIGHT", 2, -2)
|
||||
|
||||
+57
-104
@@ -130,8 +130,8 @@ pfUI:RegisterModule("nameplates", function ()
|
||||
cfg.targetcastbar = C.nameplates["targetcastbar"] == "1"
|
||||
cfg.notargalpha = tonumber(C.nameplates.notargalpha) or 0.5
|
||||
if cfg.notargalpha > 1 then cfg.notargalpha = cfg.notargalpha / 100 end
|
||||
-- Clamp to 0.99 so non-target plates never reach 1.0 (used for target detection)
|
||||
if cfg.notargalpha > 0.99 then cfg.notargalpha = 0.99 end
|
||||
-- Clamp to 1.0 so a 100% setting yields full opacity (target detection is GUID-based)
|
||||
if cfg.notargalpha > 1 then cfg.notargalpha = 1 end
|
||||
cfg.namefightcolor = C.nameplates.namefightcolor == "1"
|
||||
cfg.spellname = C.nameplates.spellname == "1"
|
||||
cfg.showhp = C.nameplates.showhp == "1"
|
||||
@@ -155,10 +155,6 @@ pfUI:RegisterModule("nameplates", function ()
|
||||
cfg.use_unitfonts = C.nameplates.use_unitfonts == "1"
|
||||
cfg.font_size = cfg.use_unitfonts and C.global.font_unit_size or C.global.font_size
|
||||
cfg.hptextformat = C.nameplates.hptextformat
|
||||
-- NEW: Cache debuff config
|
||||
cfg.debufftimers = C.nameplates.debufftimers == "1"
|
||||
cfg.debuffanim = tonumber(C.nameplates.debuffanim) or 0
|
||||
cfg.debufftext = tonumber(C.nameplates.debufftext) or 1
|
||||
|
||||
-- Throttle delays, resolved once instead of per plate per tick.
|
||||
-- libthrottle:Get walks the saved-variable table, a defaults fallback and a
|
||||
@@ -431,7 +427,7 @@ pfUI:RegisterModule("nameplates", function ()
|
||||
plate.debuffs[index]:SetFrameLevel(4)
|
||||
|
||||
plate.debuffs[index].icon = plate.debuffs[index]:CreateTexture(nil, "BACKGROUND")
|
||||
plate.debuffs[index].icon:SetTexture(.3,1,.8,1)
|
||||
plate.debuffs[index].icon:SetColorTexture(.3,1,.8,1)
|
||||
plate.debuffs[index].icon:SetAllPoints(plate.debuffs[index])
|
||||
|
||||
plate.debuffs[index].stacks = plate.debuffs[index]:CreateFontString(nil, "OVERLAY")
|
||||
@@ -440,13 +436,8 @@ pfUI:RegisterModule("nameplates", function ()
|
||||
plate.debuffs[index].stacks:SetJustifyV("BOTTOM")
|
||||
plate.debuffs[index].stacks:SetTextColor(1,1,0)
|
||||
|
||||
plate.debuffs[index].cd = CreateFrame("Cooldown", plate.platename.."Debuff"..index.."Cooldown", plate.debuffs[index], "CooldownFrameTemplate")
|
||||
plate.debuffs[index].cd = CreateCooldown(plate.debuffs[index], "nameplate", plate.platename.."Debuff"..index.."Cooldown")
|
||||
plate.debuffs[index].cd:SetFrameLevel(6)
|
||||
|
||||
-- Set initial config flags (will be cached per-cooldown later)
|
||||
plate.debuffs[index].cd.pfCooldownStyleAnimation = cfg.debuffanim
|
||||
plate.debuffs[index].cd.pfCooldownStyleText = cfg.debufftext
|
||||
plate.debuffs[index].cd.pfCooldownType = "ALL"
|
||||
end
|
||||
|
||||
local function UpdateDebuffConfig(nameplate, i)
|
||||
@@ -479,15 +470,6 @@ pfUI:RegisterModule("nameplates", function ()
|
||||
end
|
||||
|
||||
nameplate.debuffs[i]:SetSize(debuffsize, debuffsize)
|
||||
|
||||
-- Update cooldown display settings
|
||||
if nameplate.debuffs[i].cd then
|
||||
local cooldown_text = tonumber(C.nameplates.debufftext) or 1
|
||||
local cooldown_anim = tonumber(C.nameplates.debuffanim) or 0
|
||||
nameplate.debuffs[i].cd.pfCooldownStyleText = cooldown_text
|
||||
nameplate.debuffs[i].cd.pfCooldownStyleAnimation = cooldown_anim
|
||||
|
||||
end
|
||||
end
|
||||
|
||||
-- create nameplate core
|
||||
@@ -504,7 +486,7 @@ nameplates:RegisterEvent("NAME_PLATE_CREATED")
|
||||
nameplates:RegisterEvent("NAME_PLATE_UNIT_ADDED")
|
||||
nameplates:RegisterEvent("NAME_PLATE_UNIT_REMOVED")
|
||||
nameplates:RegisterEvent("UPDATE_MOUSEOVER_UNIT")
|
||||
-- UNIT_AURA / UNIT_FLAGS / UNIT_SPELLCAST_* are registered per plate, on the
|
||||
-- UNIT_AURA_DELTA / UNIT_FLAGS / UNIT_SPELLCAST_* are registered per plate, on the
|
||||
-- plate's own frame, against its own token -- see OnCreate and
|
||||
-- NAME_PLATE_UNIT_ADDED.
|
||||
nameplates:RegisterEvent("PLAYER_GUILD_UPDATE")
|
||||
@@ -519,14 +501,13 @@ nameplates:RegisterUnitEvent("UNIT_SPELLCAST_NOT_INTERRUPTIBLE", "target", "focu
|
||||
this:UnregisterAllEvents()
|
||||
this:SetScript("OnEvent", nil)
|
||||
this:SetScript("OnUpdate", nil)
|
||||
if nameplates.mouselook then
|
||||
nameplates.mouselook:SetScript("OnUpdate", nil)
|
||||
end
|
||||
-- The plates hold their own unit subscriptions now, so silencing this
|
||||
-- frame alone would leave them dispatching through logout -- exactly what
|
||||
-- this branch exists to prevent.
|
||||
-- this branch exists to prevent. Leaving the world destroys the units
|
||||
-- before PLAYER_LOGOUT fires, and a destroyed plate already dropped its
|
||||
-- events and lost its methods, so only the live ones need silencing.
|
||||
for plate in pairs(registry) do
|
||||
if plate.nameplate then
|
||||
if plate.nameplate and plate.nameplate.UnregisterAllEvents then
|
||||
plate.nameplate:UnregisterAllEvents()
|
||||
plate.nameplate:SetScript("OnEvent", nil)
|
||||
end
|
||||
@@ -610,8 +591,9 @@ nameplates:RegisterUnitEvent("UNIT_SPELLCAST_NOT_INTERRUPTIBLE", "target", "focu
|
||||
-- Point this plate's own subscriptions at the token it just took. On a
|
||||
-- recycled frame these replace the previous unit rather than stacking:
|
||||
-- RegisterUnitEvent on an already-filtered registration swaps the units.
|
||||
plate.nameplate:RegisterUnitEvent("UNIT_AURA", arg1)
|
||||
plate.nameplate:RegisterUnitEvent("UNIT_AURA_DELTA", arg1)
|
||||
plate.nameplate:RegisterUnitEvent("UNIT_FLAGS", arg1)
|
||||
plate.nameplate:RegisterUnitEvent("UNIT_TARGET", arg1)
|
||||
plate.nameplate:RegisterUnitEvent("UNIT_SPELLCAST_START", arg1)
|
||||
plate.nameplate:RegisterUnitEvent("UNIT_SPELLCAST_CHANNEL_START", arg1)
|
||||
plate.nameplate:RegisterUnitEvent("UNIT_SPELLCAST_STOP", arg1)
|
||||
@@ -763,12 +745,20 @@ nameplates:RegisterUnitEvent("UNIT_SPELLCAST_NOT_INTERRUPTIBLE", "target", "focu
|
||||
-- new token; _REMOVED drops it, which matters because freed slots are
|
||||
-- reused and a stale token would feed this frame another unit's events.
|
||||
nameplate:SetScript("OnEvent", function()
|
||||
if event == "UNIT_AURA" then
|
||||
if event == "UNIT_AURA_DELTA" then
|
||||
-- a fresh C_UnitAuras read next tick rather than waiting out the 0.5s
|
||||
-- throttle -- covers expiry, dispels, refreshes and stack changes
|
||||
this.auraUpdate = true
|
||||
elseif event == "UNIT_FLAGS" then
|
||||
this.eventcache = true
|
||||
elseif event == "UNIT_TARGET" then
|
||||
-- the unit turned to someone else: recolour its combat state now
|
||||
-- rather than once the colour cache and the data tick run out
|
||||
if cfg.outcombatstate or cfg.barcombatstate then
|
||||
local cached = this.cachedGuid and combatColorCache[this.cachedGuid]
|
||||
if cached then cached.expires = 0 end
|
||||
this.eventcache = true
|
||||
end
|
||||
elseif event == "UNIT_SPELLCAST_START" or event == "UNIT_SPELLCAST_CHANNEL_START" then
|
||||
-- the payload carries no timing, so poll it (PollCastInfo picks cast
|
||||
-- vs channel)
|
||||
@@ -863,15 +853,15 @@ nameplates:RegisterUnitEvent("UNIT_SPELLCAST_NOT_INTERRUPTIBLE", "target", "focu
|
||||
combopoints[i] = CreateFrame("Frame", nil, nameplate)
|
||||
combopoints[i]:Hide()
|
||||
combopoints[i]:SetFrameLevel(8)
|
||||
combopoints[i].tex = combopoints[i]:CreateTexture("OVERLAY")
|
||||
combopoints[i].tex = combopoints[i]:CreateTexture(nil, "OVERLAY")
|
||||
combopoints[i].tex:SetAllPoints()
|
||||
|
||||
if i < 3 then
|
||||
combopoints[i].tex:SetTexture(1, .3, .3, .75)
|
||||
combopoints[i].tex:SetColorTexture(1, .3, .3, .75)
|
||||
elseif i < 4 then
|
||||
combopoints[i].tex:SetTexture(1, 1, .3, .75)
|
||||
combopoints[i].tex:SetColorTexture(1, 1, .3, .75)
|
||||
else
|
||||
combopoints[i].tex:SetTexture(.3, 1, .3, .75)
|
||||
combopoints[i].tex:SetColorTexture(.3, 1, .3, .75)
|
||||
end
|
||||
end
|
||||
nameplate.combopoints = combopoints
|
||||
@@ -1035,9 +1025,7 @@ nameplates:RegisterUnitEvent("UNIT_SPELLCAST_NOT_INTERRUPTIBLE", "target", "focu
|
||||
local level = plate.original.level:IsShown() and plate.original.level:GetObjectType() == "FontString" and tonumber(plate.original.level:GetText()) or "??"
|
||||
|
||||
-- reset per-unit cache when the plate is reassigned. Gate on GUID *and*
|
||||
-- name — name alone misses pool reuse between same-named units (e.g. plate
|
||||
-- held a player "Ironforge Guard" and is now reassigned to the NPC by the
|
||||
-- same name), which would leak a stale "PLAYER" hint into GetUnitInfo.
|
||||
-- name — name alone misses pool reuse between same-named units.
|
||||
-- Wipe the whole cache table: the PERF gates below ("only update X when
|
||||
-- X changed") would otherwise skip bar/color/text updates when the new
|
||||
-- unit happens to share a cached value with the previous occupant
|
||||
@@ -1060,27 +1048,26 @@ nameplates:RegisterUnitEvent("UNIT_SPELLCAST_NOT_INTERRUPTIBLE", "target", "focu
|
||||
if event == "PLAYER_TARGET_CHANGED" then unitstr = nil end
|
||||
|
||||
-- remove unitstr when it doesn't resolve to this plate's unit (stale istarget,
|
||||
-- stale mouseover guid or a despawned unit). Must run before the cache fills
|
||||
-- below -- an unrelated unitstr would poison cache.player/minion with the
|
||||
-- *other* unit's answer, and the nil-gate would then never recompute it.
|
||||
-- stale mouseover guid or a despawned unit)
|
||||
if unitstr and UnitName(unitstr) ~= name then unitstr = nil end
|
||||
|
||||
-- resolve player vs npc from plate's own unit so libunitscan can't return
|
||||
-- a player record for an NPC sharing the same name (e.g. Chromie). Stored
|
||||
-- as true/false/nil so it doubles as the GetUnitInfo hint.
|
||||
if plate.cache.player == nil and unitstr then
|
||||
plate.cache.player = UnitIsPlayer(unitstr) and true or false
|
||||
-- the plate's own unit token says who it is; a player too high to show a
|
||||
-- level keeps the one the player database last saw
|
||||
local unit = plate.unit
|
||||
local player, class, elite, guild, ulevel
|
||||
if unit then
|
||||
player = UnitIsPlayer(unit)
|
||||
class = player and UnitClassBase(unit)
|
||||
elite = UnitClassification(unit)
|
||||
guild = player and GetGuildInfo(unit) or UnitSubName(unit)
|
||||
ulevel = UnitLevel(unit)
|
||||
if player and ulevel <= 0 then
|
||||
local _
|
||||
_, ulevel = GetUnitInfo(name)
|
||||
end
|
||||
end
|
||||
if plate.cache.minion == nil and unitstr then
|
||||
plate.cache.minion = UnitIsMinion(unitstr) and true or false
|
||||
end
|
||||
local class, ulevel, elite, player, guild
|
||||
if not plate.cache.minion then
|
||||
class, ulevel, elite, player, guild = GetUnitInfo(name, true, plate.cache.player)
|
||||
end
|
||||
if plate.cache.player ~= nil then player = plate.cache.player or nil end
|
||||
|
||||
-- Use database level ONLY if current level is ?? (fixes ?? after reload, but doesn't override visible levels)
|
||||
-- Use the unit's level ONLY if current level is ?? (fixes ?? after reload, but doesn't override visible levels)
|
||||
local levelFromDB = false
|
||||
if level == "??" and ulevel and ulevel > 0 then
|
||||
level = ulevel
|
||||
@@ -1090,13 +1077,9 @@ nameplates:RegisterUnitEvent("UNIT_SPELLCAST_NOT_INTERRUPTIBLE", "target", "focu
|
||||
local unittype = GetUnitType(plate)
|
||||
local font_size = C.nameplates.use_unitfonts == "1" and C.global.font_unit_size or C.global.font_size
|
||||
|
||||
-- ignore players with npc names if plate level is lower than player level
|
||||
if ulevel and ulevel > (level == "??" and -1 or level) then player = nil end
|
||||
|
||||
if player and unittype == "ENEMY_NPC" then unittype = "ENEMY_PLAYER" end
|
||||
if player and unittype == "FRIENDLY_NPC" then unittype = "FRIENDLY_PLAYER" end
|
||||
elite = plate.original.levelicon:IsShown() and not player and "boss" or elite
|
||||
if not class and not plate.cache.minion then plate.wait_for_scan = true end
|
||||
|
||||
-- skip data updates on invisible frames
|
||||
if not visible then return end
|
||||
@@ -1214,7 +1197,6 @@ nameplates:RegisterUnitEvent("UNIT_SPELLCAST_NOT_INTERRUPTIBLE", "target", "focu
|
||||
|
||||
if cfg.showhp then
|
||||
local rhp, rhpmax, estimated
|
||||
local unit = plate.unit
|
||||
if unit then
|
||||
local npHp = UnitHealth(unit)
|
||||
local npMaxHp = UnitHealthMax(unit)
|
||||
@@ -1379,7 +1361,7 @@ nameplates:RegisterUnitEvent("UNIT_SPELLCAST_NOT_INTERRUPTIBLE", "target", "focu
|
||||
plate.debuffs[index].stacks:Hide()
|
||||
end
|
||||
|
||||
if duration and timeleft and cfg.debufftimers then
|
||||
if duration and timeleft then
|
||||
-- C_UnitAuras returns the Spell.dbc base duration, which talents
|
||||
-- can extend past — Shadow Affinity bumps SW:P from 18s to 24s,
|
||||
-- so a fresh cast has timeleft > duration and `now + timeleft -
|
||||
@@ -1394,14 +1376,6 @@ nameplates:RegisterUnitEvent("UNIT_SPELLCAST_NOT_INTERRUPTIBLE", "target", "focu
|
||||
local cd = plate.debuffs[index].cd
|
||||
cd:Show()
|
||||
if not cachedStart or abs(cachedStart - newStart) > 0.5 then
|
||||
if not cd.configCached or cd.cachedAnim ~= cfg.debuffanim or cd.cachedText ~= cfg.debufftext then
|
||||
cd.pfCooldownStyleAnimation = cfg.debuffanim
|
||||
cd.pfCooldownStyleText = cfg.debufftext
|
||||
cd:SetAlpha(cfg.debuffanim == 1 and 1 or 0)
|
||||
cd.cachedAnim = cfg.debuffanim
|
||||
cd.cachedText = cfg.debufftext
|
||||
cd.configCached = true
|
||||
end
|
||||
CooldownFrame_SetTimer(cd, newStart, effDuration, 1)
|
||||
plate.cdCache[index] = plate.cdCache[index] or {}
|
||||
plate.cdCache[index].effect = effect
|
||||
@@ -1443,11 +1417,10 @@ nameplates:RegisterUnitEvent("UNIT_SPELLCAST_NOT_INTERRUPTIBLE", "target", "focu
|
||||
if not hasEventUpdate and (nameplate.lasttick or 0) + cfg.throttle_min > now then return end
|
||||
|
||||
-- PERF: Intelligent throttling based on target/castbar status and plate count
|
||||
-- Use GUID comparison as primary target detection: instant, immune to alpha transitions,
|
||||
-- Use GUID comparison for target detection: instant, immune to alpha transitions,
|
||||
-- and immediately correct on de-target (unlike istarget which updates one tick later)
|
||||
local targetGuid = state and state.targetGuid
|
||||
local target = (targetGuid and nameplate.cachedGuid and targetGuid == nameplate.cachedGuid) or
|
||||
(state and state.targetGuid and frame:GetAlpha() >= 0.99) or nil
|
||||
local target = (targetGuid and nameplate.cachedGuid and targetGuid == nameplate.cachedGuid) or nil
|
||||
-- Target plate castbar runs on its own dedicated frame (nameplates.castbarFrame).
|
||||
-- For non-target plates with castbar active, use castbar throttle to ensure
|
||||
-- smooth animation without overloading the central loop.
|
||||
@@ -1495,7 +1468,6 @@ nameplates:RegisterUnitEvent("UNIT_SPELLCAST_NOT_INTERRUPTIBLE", "target", "focu
|
||||
|
||||
local update
|
||||
local original = nameplate.original
|
||||
local name = original.name:GetText()
|
||||
local mouseover = nameplate.cachedGuid and nameplate.cachedGuid == frameState.mouseoverGuid or nil
|
||||
|
||||
-- trigger queued event update
|
||||
@@ -1579,16 +1551,6 @@ nameplates:RegisterUnitEvent("UNIT_SPELLCAST_NOT_INTERRUPTIBLE", "target", "focu
|
||||
update = true
|
||||
end
|
||||
|
||||
-- trigger update when unit was found. Pass the cached player hint so the
|
||||
-- retry probes the same table OnDataChanged will read on the next pass —
|
||||
-- otherwise an NPC sharing a name with a known player flips wait_for_scan
|
||||
-- off here, then OnDataChanged re-sets it, every frame until the mob scan
|
||||
-- lands.
|
||||
if nameplate.wait_for_scan and not nameplate.cache.minion and GetUnitInfo(name, true, nameplate.cache.player) then
|
||||
nameplate.wait_for_scan = nil
|
||||
update = true
|
||||
end
|
||||
|
||||
-- trigger update when name color changed (includes combat state check).
|
||||
-- Skipped once OnDataChanged owns the name colour (class-coloured friendly
|
||||
-- players), so the two writers cannot overwrite each other.
|
||||
@@ -1928,9 +1890,7 @@ nameplates:RegisterUnitEvent("UNIT_SPELLCAST_NOT_INTERRUPTIBLE", "target", "focu
|
||||
end
|
||||
|
||||
-- enable mouselook on rightbutton down
|
||||
nameplates.mouselook = CreateFrame("Frame", nil, UIParent)
|
||||
nameplates.mouselook.time = nil
|
||||
nameplates.mouselook.frame = nil
|
||||
nameplates.mouselook = {}
|
||||
nameplates.mouselook.OnMouseDown = function()
|
||||
if arg1 and arg1 == "RightButton" then
|
||||
MouselookStart()
|
||||
@@ -1938,31 +1898,24 @@ nameplates:RegisterUnitEvent("UNIT_SPELLCAST_NOT_INTERRUPTIBLE", "target", "focu
|
||||
-- start detection of the rightclick emulation
|
||||
nameplates.mouselook.time = GetTime()
|
||||
nameplates.mouselook.frame = this
|
||||
nameplates.mouselook:Show()
|
||||
end
|
||||
end
|
||||
|
||||
nameplates.mouselook:SetScript("OnUpdate", function()
|
||||
-- break here if nothing to do
|
||||
if not this.time or not this.frame then
|
||||
this:Hide()
|
||||
return
|
||||
end
|
||||
-- releasing the button ends the mouselook. GLOBAL_MOUSE_UP fires for every
|
||||
-- release, while PLAYER_STOPPED_LOOKING needs the camera to have moved, and
|
||||
-- a click doesn't move it.
|
||||
pfUI.events:RegisterFrameEventAndCallback("GLOBAL_MOUSE_UP", function(_, button)
|
||||
local mouselook = nameplates.mouselook
|
||||
if button ~= "RightButton" or not mouselook.frame then return end
|
||||
|
||||
-- if threshold is reached (0.5 second) no click action will follow
|
||||
if not IsMouselooking() and this.time + tonumber(C.nameplates["clickthreshold"]) < GetTime() then
|
||||
this:Hide()
|
||||
return
|
||||
end
|
||||
|
||||
-- run a usual nameplate rightclick action
|
||||
if not IsMouselooking() then
|
||||
this.frame:Click("LeftButton")
|
||||
-- past the threshold (0.5 second) it was a drag, so no click action follows
|
||||
if mouselook.time + tonumber(C.nameplates["clickthreshold"]) >= GetTime() then
|
||||
-- run a usual nameplate rightclick action
|
||||
mouselook.frame:Click("LeftButton")
|
||||
if UnitCanAttack("player", "target") and not nameplates.combat.inCombat then AttackTarget() end
|
||||
this:Hide()
|
||||
return
|
||||
end
|
||||
mouselook.frame = nil
|
||||
end)
|
||||
|
||||
pfUI.nameplates = nameplates
|
||||
end)
|
||||
end)
|
||||
|
||||
+2
-14
@@ -25,7 +25,7 @@ pfUI:RegisterModule("nampower", function ()
|
||||
pfUI.spellqueue:SetPoint("CENTER", UIParent, "CENTER", 100, -100)
|
||||
end
|
||||
|
||||
pfUI.spellqueue.icon = pfUI.spellqueue:CreateTexture("OVERLAY")
|
||||
pfUI.spellqueue.icon = pfUI.spellqueue:CreateTexture(nil, "OVERLAY")
|
||||
pfUI.spellqueue.icon:SetAllPoints(pfUI.spellqueue)
|
||||
pfUI.spellqueue.icon:SetTexCoord(.08, .92, .08, .92)
|
||||
|
||||
@@ -41,19 +41,7 @@ pfUI:RegisterModule("nampower", function ()
|
||||
local NON_GCD_QUEUED = 4
|
||||
local NON_GCD_QUEUE_POPPED = 5
|
||||
|
||||
local queue = CreateFrame("Frame")
|
||||
queue:RegisterEvent("SPELL_QUEUE_EVENT")
|
||||
queue:RegisterEvent("PLAYER_LOGOUT")
|
||||
queue:SetScript("OnEvent", function()
|
||||
-- Handle shutdown to prevent crash 132
|
||||
if event == "PLAYER_LOGOUT" then
|
||||
this:UnregisterAllEvents()
|
||||
this:SetScript("OnEvent", nil)
|
||||
return
|
||||
end
|
||||
|
||||
local eventCode, spellId = arg1, arg2
|
||||
|
||||
pfUI.events:RegisterFrameEventAndCallback("SPELL_QUEUE_EVENT", function(_, eventCode, spellId)
|
||||
if eventCode == NORMAL_QUEUED or eventCode == NON_GCD_QUEUED or eventCode == ON_SWING_QUEUED then
|
||||
local texture = C_Spell.GetSpellTexture(spellId)
|
||||
if texture then
|
||||
|
||||
+1
-1
@@ -57,7 +57,7 @@ pfUI:RegisterModule("newitem", function ()
|
||||
pfUI.newitem:UpdateSlot(bag, slot)
|
||||
end)
|
||||
|
||||
EventRegistry:RegisterFrameEventAndCallback("BAG_NEW_ITEMS_UPDATED", function()
|
||||
pfUI.events:RegisterFrameEventAndCallback("BAG_NEW_ITEMS_UPDATED", function()
|
||||
pfUI.newitem:RefreshAll()
|
||||
end)
|
||||
|
||||
|
||||
+58
-14
@@ -105,11 +105,12 @@ pfUI:RegisterModule("panel", function()
|
||||
|
||||
do -- FPS & Lag
|
||||
local widget = CreateFrame("Frame", "pfPanelWidgetLag", UIParent)
|
||||
local lag, fps, laghex, fpshex, _
|
||||
widget.Tooltip = function()
|
||||
local lag, fps, laghex, fpshex, owner, _
|
||||
widget.Tooltip = function(self)
|
||||
owner = self
|
||||
local active = 0
|
||||
GameTooltip:ClearLines()
|
||||
GameTooltip_SetDefaultAnchor(GameTooltip, this)
|
||||
GameTooltip_SetDefaultAnchor(GameTooltip, self)
|
||||
GameTooltip:AddLine("|cff555555" .. T["Systeminfo"])
|
||||
for i=1, GetNumAddOns() do
|
||||
if IsAddOnLoaded(i) then
|
||||
@@ -128,6 +129,51 @@ pfUI:RegisterModule("panel", function()
|
||||
GameTooltip:AddLine(" ")
|
||||
GameTooltip:AddDoubleLine(T["Memory Usage"], "|cffffffff" .. memmb)
|
||||
GameTooltip:AddDoubleLine(T["Next Memory Cleanup"], "|cffffffff" .. gcmb)
|
||||
-- AddOn memory usage (see MainMenuBarPerformanceBarFrame_OnEnter in MainMenuBar.lua)
|
||||
|
||||
local ADDON_MEM_KB_ABBR = _G.ADDON_MEM_KB_ABBR or "(%.0f KB) %s";
|
||||
local ADDON_MEM_MB_ABBR = _G.ADDON_MEM_MB_ABBR or "(%.2f MB) %s";
|
||||
local TOTAL_MEM_KB_ABBR = _G.TOTAL_MEM_KB_ABBR or "AddOn Memory: %.0f KB";
|
||||
local TOTAL_MEM_MB_ABBR = _G.TOTAL_MEM_MB_ABBR or "AddOn Memory: %.2f MB";
|
||||
|
||||
|
||||
UpdateAddOnMemoryUsage()
|
||||
local totalMem = 0
|
||||
local topAddOns = {}
|
||||
for i = 1, GetNumAddOns() do
|
||||
local mem = GetAddOnMemoryUsage(i)
|
||||
if mem and mem > 0 then
|
||||
totalMem = totalMem + mem
|
||||
for j = 1, 3 do
|
||||
if not topAddOns[j] or mem > topAddOns[j].value then
|
||||
for k = 3, j + 1, -1 do
|
||||
topAddOns[k] = topAddOns[k - 1]
|
||||
end
|
||||
topAddOns[j] = { value = mem, name = C_AddOns.GetAddOnName(i) }
|
||||
break
|
||||
end
|
||||
end
|
||||
end
|
||||
end
|
||||
if totalMem > 0 then
|
||||
local str
|
||||
if totalMem > 1000 then
|
||||
str = format(TOTAL_MEM_MB_ABBR, totalMem / 1000)
|
||||
else
|
||||
str = format(TOTAL_MEM_KB_ABBR, totalMem)
|
||||
end
|
||||
GameTooltip:AddLine(" ")
|
||||
GameTooltip:AddLine(str, 1, 1, 1)
|
||||
for i = 1, 3 do
|
||||
if not topAddOns[i] then break end
|
||||
if topAddOns[i].value > 1000 then
|
||||
str = format(ADDON_MEM_MB_ABBR, topAddOns[i].value / 1000, topAddOns[i].name)
|
||||
else
|
||||
str = format(ADDON_MEM_KB_ABBR, topAddOns[i].value, topAddOns[i].name)
|
||||
end
|
||||
GameTooltip:AddLine(str, 1, 1, 1)
|
||||
end
|
||||
end
|
||||
GameTooltip:AddLine(" ")
|
||||
GameTooltip:AddDoubleLine(T["Network Down"], "|cffffffff" .. round(nin,1) .. "KB/s")
|
||||
GameTooltip:AddDoubleLine(T["Network Up"], "|cffffffff" .. round(nout,1) .. "KB/s")
|
||||
@@ -157,6 +203,10 @@ pfUI:RegisterModule("panel", function()
|
||||
end
|
||||
|
||||
pfUI.panel:OutputPanel("fps", fps .. " " .. T["fps"] .. " & " .. lag .. " " .. T["ms"], widget.Tooltip, widget.Click)
|
||||
|
||||
if owner and GameTooltip:IsOwned(owner) then
|
||||
widget.Tooltip(owner)
|
||||
end
|
||||
end)
|
||||
end
|
||||
|
||||
@@ -525,18 +575,12 @@ pfUI:RegisterModule("panel", function()
|
||||
blindpowder = 5530
|
||||
}
|
||||
|
||||
-- runs at once when the item is cached
|
||||
local function AddItemToPanel(panelType)
|
||||
local itemID = itemIDs[panelType]
|
||||
if C_Item.IsItemDataCachedByID(itemID) then
|
||||
local itemName, count = C_Item.GetItemNameByID(itemID), C_Item.GetItemCount(itemID)
|
||||
pfUI.panel:OutputPanel(panelType, itemName .. ": " .. count)
|
||||
else
|
||||
local item = Item:CreateFromItemID(itemID)
|
||||
item:ContinueOnItemLoad(function()
|
||||
local itemName, count = item:GetItemName(), C_Item.GetItemCount(item:GetItemID())
|
||||
pfUI.panel:OutputPanel(panelType, itemName .. ": " .. count)
|
||||
end)
|
||||
end
|
||||
local item = Item:CreateFromItemID(itemIDs[panelType])
|
||||
item:ContinueOnItemLoad(function()
|
||||
pfUI.panel:OutputPanel(panelType, item:GetItemName() .. ": " .. C_Item.GetItemCount(item:GetItemID()))
|
||||
end)
|
||||
end
|
||||
|
||||
local class = UnitClassBase('player')
|
||||
|
||||
@@ -3,7 +3,7 @@ pfUI:RegisterModule("pettarget", function ()
|
||||
if C.unitframes.disable == "1" then return end
|
||||
local rawborder, default_border = GetBorderSize("unitframes")
|
||||
|
||||
pfUI.uf.pettarget = pfUI.uf:CreateUnitFrame("PetTarget", nil, C.unitframes.ptarget, .2)
|
||||
pfUI.uf.pettarget = pfUI.uf:CreateUnitFrame("PetTarget", nil, C.unitframes.ptarget)
|
||||
pfUI.uf.pettarget:UpdateFrameSize()
|
||||
pfUI.uf.pettarget:SetPoint("TOP", pfUI.uf.pet or pfUI.uf.target or UIParent, "BOTTOM", 0, -default_border)
|
||||
UpdateMovable(pfUI.uf.pettarget)
|
||||
|
||||
@@ -33,9 +33,7 @@ pfUI:RegisterModule("pixelperfect", function ()
|
||||
|
||||
-- pixelperfect: native UIScale listener
|
||||
if tonumber(C.global.pixelperfect) > 0 then
|
||||
local f = CreateFrame("Frame")
|
||||
f:RegisterEvent("PLAYER_ENTERING_WORLD")
|
||||
f:SetScript("OnEvent", pixelperfect)
|
||||
pfUI.events:RegisterFrameEventAndCallback("PLAYER_ENTERING_WORLD", pixelperfect)
|
||||
pixelperfect()
|
||||
end
|
||||
|
||||
|
||||
+8
-4
@@ -61,7 +61,7 @@ pfUI:RegisterModule("player", function ()
|
||||
MAGE = 7, WARLOCK = 6,
|
||||
}
|
||||
|
||||
-- Compute and cache the haste/SP text; called from OnUpdate, throttled to 0.25s
|
||||
-- Compute the haste/SP text; called on haste, spell power and config changes
|
||||
local function UpdateInfoText()
|
||||
local cfg = playerFrame.config
|
||||
if not cfg then
|
||||
@@ -124,9 +124,13 @@ pfUI:RegisterModule("player", function ()
|
||||
end)
|
||||
end
|
||||
|
||||
-- Haste / spell-power overlay text — refreshes 4×/sec on its own ticker,
|
||||
-- independent of the unit frame's OnUpdate cadence.
|
||||
C_Timer.NewTicker(0.25, UpdateInfoText)
|
||||
-- PLAYER_DAMAGE_DONE_MODS fires on the MOD_DAMAGE_DONE fields that
|
||||
-- GetSpellBonusDamage reads, so gear, buffs and talents all reach it.
|
||||
pfUI.events:RegisterFrameEventAndCallback("PLAYER_ENTERING_WORLD", UpdateInfoText)
|
||||
pfUI.events:RegisterFrameEventAndCallback("PLAYER_DAMAGE_DONE_MODS", UpdateInfoText)
|
||||
pfUI.events:RegisterFrameEventAndCallback("UNIT_SPELL_HASTE", function(_, unit)
|
||||
if unit == "player" then UpdateInfoText() end
|
||||
end)
|
||||
|
||||
-- Replace default's RESET_INSTANCES button with an always working one
|
||||
UnitPopupButtons["RESET_INSTANCES_FIX"] = { text = RESET_INSTANCES, dist = 0 }
|
||||
|
||||
+27
-31
@@ -74,40 +74,36 @@ pfUI:RegisterModule("questitem", function ()
|
||||
frame:Show()
|
||||
end
|
||||
|
||||
pfUI.questitem = CreateFrame("Frame", "pfQuestItemScanner", UIParent)
|
||||
pfUI.questitem:RegisterEvent("PLAYER_ENTERING_WORLD")
|
||||
pfUI.questitem:RegisterEvent("QUEST_LOG_UPDATE")
|
||||
pfUI.questitem:RegisterEvent("QUEST_ACCEPTED")
|
||||
pfUI.questitem:RegisterEvent("QUEST_REMOVED")
|
||||
pfUI.questitem:SetScript("OnEvent", function()
|
||||
-- Seed half a second after the last trigger; each trigger pushes it back.
|
||||
local seeding, timer
|
||||
local function QueueSeed()
|
||||
if C.tooltip.questitem.showquest ~= "1" then return end
|
||||
if event == "QUEST_ACCEPTED" then -- arg1 = logIndex, arg2 = questID
|
||||
if not AddQuest(arg2) then -- cache cold (rare) -> reseed
|
||||
this.seeding = true
|
||||
this.run = GetTime() + .5
|
||||
end
|
||||
elseif event == "QUEST_REMOVED" then -- arg1 = questID
|
||||
RemoveQuest(arg1)
|
||||
elseif event == "PLAYER_ENTERING_WORLD" then
|
||||
this.seeding = true -- seed pre-existing quests
|
||||
this.run = GetTime() + .5
|
||||
elseif event == "QUEST_LOG_UPDATE" and this.seeding then
|
||||
this.run = GetTime() + .5 -- keep retrying while cache warms
|
||||
end
|
||||
end)
|
||||
|
||||
pfUI.questitem:SetScript("OnUpdate", function()
|
||||
if not this.run or GetTime() < this.run then return end
|
||||
this.run = nil
|
||||
if Seed() then this.seeding = nil end
|
||||
end)
|
||||
|
||||
pfUI.questitem.UpdateConfig = function()
|
||||
if C.tooltip.questitem.showquest ~= "1" then return end
|
||||
pfUI.questitem.seeding = true
|
||||
pfUI.questitem.run = GetTime() + .5
|
||||
seeding = true
|
||||
if timer then timer:Cancel() end
|
||||
timer = C_Timer.NewTimer(.5, function()
|
||||
if Seed() then seeding = nil end
|
||||
end)
|
||||
end
|
||||
|
||||
-- seed pre-existing quests
|
||||
pfUI.events:RegisterFrameEventAndCallback("PLAYER_ENTERING_WORLD", QueueSeed)
|
||||
|
||||
-- keep retrying while the quest cache warms
|
||||
pfUI.events:RegisterFrameEventAndCallback("QUEST_LOG_UPDATE", function()
|
||||
if seeding then QueueSeed() end
|
||||
end)
|
||||
|
||||
-- a cold cache (rare) needs a full reseed
|
||||
pfUI.events:RegisterFrameEventAndCallback("QUEST_ACCEPTED", function(_, _, questID)
|
||||
if not AddQuest(questID) then QueueSeed() end
|
||||
end)
|
||||
|
||||
pfUI.events:RegisterFrameEventAndCallback("QUEST_REMOVED", function(_, questID)
|
||||
RemoveQuest(questID)
|
||||
end)
|
||||
|
||||
pfUI.questitem = { UpdateConfig = QueueSeed }
|
||||
|
||||
pfUI.questitem.tooltip = CreateFrame("Frame", "pfQuestItems", GameTooltip)
|
||||
pfUI.questitem.tooltip:SetScript("OnShow", function()
|
||||
if GameTooltip:HasItem() then
|
||||
|
||||
@@ -0,0 +1,373 @@
|
||||
pfUI:RegisterModule("radar", function ()
|
||||
-- DBM-style range radar: the group around you, turned so that your facing
|
||||
-- points up. ClassicAPI's UnitPosition reads every visible unit.
|
||||
local SIZE = 150
|
||||
local RADIUS = SIZE / 2
|
||||
-- the range ring sits at two thirds of the radius, so the radar shows half
|
||||
-- a range past it
|
||||
local RING = RADIUS / 1.5
|
||||
local RANGES = { 5, 8, 10, 15, 20, 25, 30, 40 }
|
||||
-- about one storey; see Locate for what counts as another floor
|
||||
local FLOOR = 5
|
||||
-- alpha of units out of sight
|
||||
local DIM = .3
|
||||
-- the nearest members inside the range, listed under the radar
|
||||
local LINES = 5
|
||||
local LINE_HEIGHT = C.global.font_size + 4
|
||||
|
||||
local _, border = GetBorderSize()
|
||||
local abs, sqrt = math.abs, math.sqrt
|
||||
local UnitPosition = ClassicAPI.UnitPosition
|
||||
|
||||
local radar = CreateFrame("Frame", "pfRadar", UIParent)
|
||||
radar:SetSize(SIZE, SIZE)
|
||||
radar:SetPoint("CENTER", 350, 100)
|
||||
radar:SetFrameStrata("MEDIUM")
|
||||
radar:EnableMouse(true)
|
||||
radar:EnableMouseWheel(true)
|
||||
radar:Hide()
|
||||
CreateBackdrop(radar)
|
||||
CreateBackdropShadow(radar)
|
||||
UpdateMovable(radar)
|
||||
|
||||
-- the range ring: a disc in the ring color under a 2px smaller disc in the
|
||||
-- background color, which lets a little of the tint through
|
||||
local DISC = "Interface\\CharacterFrame\\TempPortraitAlphaMask"
|
||||
radar.ring = radar:CreateTexture(nil, "BACKGROUND")
|
||||
radar.ring:SetTexture(DISC)
|
||||
radar.ring:SetSize(RING * 2 + 2, RING * 2 + 2)
|
||||
radar.ring:SetPoint("CENTER", 0, 0)
|
||||
|
||||
radar.zone = radar:CreateTexture(nil, "BORDER")
|
||||
radar.zone:SetTexture(DISC)
|
||||
radar.zone:SetSize(RING * 2 - 2, RING * 2 - 2)
|
||||
radar.zone:SetPoint("CENTER", 0, 0)
|
||||
local r, g, b = GetStringColor(C.appearance.border.background)
|
||||
radar.zone:SetVertexColor(r, g, b, .85)
|
||||
|
||||
radar.player = radar:CreateTexture(nil, "OVERLAY")
|
||||
radar.player:SetAtlas("MinimapArrow")
|
||||
radar.player:SetSize(24, 24)
|
||||
radar.player:SetPoint("CENTER", 0, 0)
|
||||
|
||||
radar.title = radar:CreateFontString(nil, "OVERLAY")
|
||||
radar.title:SetFont(pfUI.font_default, C.global.font_size, "OUTLINE")
|
||||
radar.title:SetPoint("TOPLEFT", 4, -4)
|
||||
|
||||
radar.count = radar:CreateFontString(nil, "OVERLAY")
|
||||
radar.count:SetFont(pfUI.font_default, C.global.font_size, "OUTLINE")
|
||||
radar.count:SetPoint("TOPRIGHT", -4, -4)
|
||||
radar.count:SetTextColor(1, .2, .2)
|
||||
|
||||
radar.names = CreateFrame("Frame", nil, radar)
|
||||
radar.names:SetPoint("TOPLEFT", radar, "BOTTOMLEFT", 0, -border * 3)
|
||||
radar.names:SetPoint("TOPRIGHT", radar, "BOTTOMRIGHT", 0, -border * 3)
|
||||
radar.names:Hide()
|
||||
CreateBackdrop(radar.names)
|
||||
CreateBackdropShadow(radar.names)
|
||||
|
||||
local range, scale
|
||||
|
||||
local function SetRange(yards)
|
||||
range = yards
|
||||
scale = RING / yards
|
||||
C.radar.range = tostring(yards)
|
||||
radar.title:SetText(T["Radar"] .. " (" .. yards .. " yd)")
|
||||
end
|
||||
SetRange(tonumber(C.radar.range))
|
||||
|
||||
local function IsRange(yards)
|
||||
return yards == range
|
||||
end
|
||||
|
||||
local function GenerateMenu(owner, rootDescription)
|
||||
rootDescription:CreateTitle(T["Radar"])
|
||||
for _, yards in ipairs(RANGES) do
|
||||
rootDescription:CreateRadio(yards .. " yd", IsRange, SetRange, yards)
|
||||
end
|
||||
rootDescription:CreateDivider()
|
||||
rootDescription:CreateButton(HIDE, function() radar:Hide() end)
|
||||
end
|
||||
|
||||
radar.menuMixin = pfUIMenuStyleMixin
|
||||
local function OpenMenu()
|
||||
MenuUtil.CreateContextMenu(radar, GenerateMenu)
|
||||
end
|
||||
|
||||
-- blips and list rows: left click targets, right click opens the menu
|
||||
local function TargetOrMenu()
|
||||
if arg1 == "RightButton" then
|
||||
OpenMenu()
|
||||
else
|
||||
TargetUnit(this.unit)
|
||||
end
|
||||
end
|
||||
|
||||
-- unit -> true while terrain blocks the line of sight
|
||||
local blocked = {}
|
||||
local hovered
|
||||
|
||||
local function ShowTooltip(blip)
|
||||
local unit = blip.unit
|
||||
GameTooltip:SetOwner(blip, "ANCHOR_RIGHT")
|
||||
if UnitIsPlayer(unit) then
|
||||
GameTooltip:SetText(UnitName(unit), PFUI_CLASS_COLORS[UnitClassBase(unit)]:GetRGB())
|
||||
else
|
||||
GameTooltip:SetText(UnitName(unit), UnitSelectionColor(unit))
|
||||
end
|
||||
GameTooltip:AddLine(format("%.1f yd", sqrt(blip.distSq)), 1, 1, 1)
|
||||
if blocked[unit] then
|
||||
GameTooltip:AddLine(T["Out of line of sight"], 1, .3, .3)
|
||||
end
|
||||
if blip.level then
|
||||
GameTooltip:AddLine(blip.level > 0 and T["Above you"] or T["Below you"], .6, .6, .6)
|
||||
end
|
||||
GameTooltip:Show()
|
||||
end
|
||||
|
||||
-- a unit on the radar: hover for its tooltip, click to target it
|
||||
local function CreateBlip(size, layer)
|
||||
local blip = CreateFrame("Button", nil, radar)
|
||||
blip:SetSize(size, size)
|
||||
blip:SetFrameLevel(radar:GetFrameLevel() + layer)
|
||||
blip:SetHitRectInsets(-2, -2, -2, -2)
|
||||
blip:RegisterForClicks("LeftButtonUp", "RightButtonUp")
|
||||
blip:Hide()
|
||||
|
||||
blip.icon = blip:CreateTexture(nil, "ARTWORK")
|
||||
blip.icon:SetAllPoints(blip)
|
||||
|
||||
-- sits above or below a unit on another floor; the triangle fills the
|
||||
-- middle half of img\up and img\down
|
||||
blip.arrow = blip:CreateTexture(nil, "OVERLAY")
|
||||
blip.arrow:SetSize(10, 5)
|
||||
|
||||
blip:SetScript("OnClick", TargetOrMenu)
|
||||
blip:SetScript("OnEnter", function()
|
||||
hovered = this
|
||||
ShowTooltip(this)
|
||||
end)
|
||||
blip:SetScript("OnLeave", function()
|
||||
hovered = nil
|
||||
GameTooltip:Hide()
|
||||
end)
|
||||
return blip
|
||||
end
|
||||
|
||||
local dots = {}
|
||||
local function GetDot(i)
|
||||
if not dots[i] then
|
||||
dots[i] = CreateBlip(8, 1)
|
||||
dots[i].icon:SetTexture(pfUI.media["img:circleraid"])
|
||||
end
|
||||
return dots[i]
|
||||
end
|
||||
|
||||
-- above the dots
|
||||
local markers = {}
|
||||
for i = 1, 8 do
|
||||
markers[i] = CreateBlip(14, 2)
|
||||
markers[i].icon:SetAtlas("UI-RaidTargetingIcon_" .. i)
|
||||
end
|
||||
|
||||
local rows = {}
|
||||
for i = 1, LINES do
|
||||
local row = CreateFrame("Button", nil, radar.names)
|
||||
row:SetPoint("TOPLEFT", 4, -2 - (i - 1) * LINE_HEIGHT)
|
||||
row:SetPoint("TOPRIGHT", -4, -2 - (i - 1) * LINE_HEIGHT)
|
||||
row:SetHeight(LINE_HEIGHT)
|
||||
row:RegisterForClicks("LeftButtonUp", "RightButtonUp")
|
||||
row:SetScript("OnClick", TargetOrMenu)
|
||||
|
||||
row.name = row:CreateFontString(nil, "OVERLAY")
|
||||
row.name:SetFont(pfUI.font_default, C.global.font_size, "OUTLINE")
|
||||
row.name:SetPoint("LEFT", 0, 0)
|
||||
row.dist = row:CreateFontString(nil, "OVERLAY")
|
||||
row.dist:SetFont(pfUI.font_default, C.global.font_size, "OUTLINE")
|
||||
row.dist:SetPoint("RIGHT", 0, 0)
|
||||
rows[i] = row
|
||||
end
|
||||
|
||||
-- the LINES nearest members inside the range, nearest first
|
||||
local nearUnit, nearDistSq = {}, {}
|
||||
local function AddNear(listed, unit, distSq)
|
||||
if listed == LINES and distSq >= nearDistSq[LINES] then return listed end
|
||||
local i = listed < LINES and listed + 1 or LINES
|
||||
while i > 1 and nearDistSq[i - 1] > distSq do
|
||||
nearUnit[i], nearDistSq[i] = nearUnit[i - 1], nearDistSq[i - 1]
|
||||
i = i - 1
|
||||
end
|
||||
nearUnit[i], nearDistSq[i] = unit, distSq
|
||||
return listed < LINES and listed + 1 or LINES
|
||||
end
|
||||
|
||||
-- the player's position and facing, read once per refresh
|
||||
local py, px, pz, facing
|
||||
|
||||
-- where a unit shows on the radar in pixels, its squared distance, and 1
|
||||
-- or -1 on a floor above or below you. nil past the edge. The world turns
|
||||
-- clockwise by the facing, so ahead is up.
|
||||
local function Locate(unit)
|
||||
if not py or not facing then return end
|
||||
if UnitIsUnit(unit, "player") or UnitIsDeadOrGhost(unit) then return end
|
||||
|
||||
local uy, ux, uz = UnitPosition(unit)
|
||||
if not uy then return end
|
||||
|
||||
local west, north, up = uy - py, ux - px, uz - pz
|
||||
local x, y = Vector2D_RotateDirection(-facing, -west, north)
|
||||
x, y = x * scale, y * scale
|
||||
if abs(x) >= RADIUS or abs(y) >= RADIUS then return end
|
||||
|
||||
-- another floor is a storey up or down and steeper than 45 degrees, which
|
||||
-- no walkable slope is, so units up a hill don't count
|
||||
local level
|
||||
if abs(up) > FLOOR and up * up > west * west + north * north then
|
||||
level = up > 0 and 1 or -1
|
||||
end
|
||||
return x, y, Vector3D_GetLengthSquared(west, north, up), level
|
||||
end
|
||||
|
||||
local function Place(blip, unit, x, y, distSq, level, checkLoS)
|
||||
if checkLoS then blocked[unit] = UnitInLineOfSight(unit) == false end
|
||||
blip.unit, blip.distSq, blip.level = unit, distSq, level
|
||||
blip:SetPoint("CENTER", x, y)
|
||||
blip:SetAlpha(blocked[unit] and DIM or 1)
|
||||
if level then
|
||||
blip.arrow:SetTexture(pfUI.media[level > 0 and "img:up" or "img:down"])
|
||||
blip.arrow:SetTexCoord(0, 1, .25, .75)
|
||||
blip.arrow:ClearAllPoints()
|
||||
if level > 0 then
|
||||
blip.arrow:SetPoint("BOTTOM", blip, "TOP", 0, 1)
|
||||
else
|
||||
blip.arrow:SetPoint("TOP", blip, "BOTTOM", 0, -1)
|
||||
end
|
||||
end
|
||||
blip.arrow:SetShown(level ~= nil)
|
||||
blip:Show()
|
||||
end
|
||||
|
||||
function radar:Refresh(checkLoS)
|
||||
py, px, pz = UnitPosition("player")
|
||||
facing = GetPlayerFacing()
|
||||
local shown, inRange, listed = 0, 0, 0
|
||||
|
||||
local raid = IsInRaid()
|
||||
local prefix = raid and "raid" or "party"
|
||||
for i = 1, raid and GetNumRaidMembers() or GetNumPartyMembers() do
|
||||
local unit = prefix .. i
|
||||
local x, y, distSq, level = Locate(unit)
|
||||
if x then
|
||||
-- inside the range always means inside the radar
|
||||
if distSq <= range * range then
|
||||
inRange = inRange + 1
|
||||
listed = AddNear(listed, unit, distSq)
|
||||
end
|
||||
|
||||
-- a marked member shows the marker instead of a dot
|
||||
if not GetRaidTargetIndex(unit) then
|
||||
shown = shown + 1
|
||||
local dot = GetDot(shown)
|
||||
dot.icon:SetVertexColor(PFUI_CLASS_COLORS[UnitClassBase(unit)]:GetRGB())
|
||||
Place(dot, unit, x, y, distSq, level, checkLoS)
|
||||
end
|
||||
end
|
||||
end
|
||||
|
||||
for i = shown + 1, #dots do dots[i]:Hide() end
|
||||
|
||||
-- markN resolves to whatever unit wears marker N, mobs included
|
||||
for i = 1, 8 do
|
||||
local unit = "mark" .. i
|
||||
local x, y, distSq, level = Locate(unit)
|
||||
if x then
|
||||
Place(markers[i], unit, x, y, distSq, level, checkLoS)
|
||||
else
|
||||
markers[i]:Hide()
|
||||
end
|
||||
end
|
||||
|
||||
for i = 1, LINES do
|
||||
local row = rows[i]
|
||||
if i <= listed then
|
||||
local unit = nearUnit[i]
|
||||
local marker = GetRaidTargetIndex(unit)
|
||||
local name = UnitName(unit)
|
||||
if marker then
|
||||
-- the markup's own tint is white, so the text color leaves it alone
|
||||
name = name .. " " .. CreateAtlasMarkup("UI-RaidTargetingIcon_" .. marker, 14, 14)
|
||||
end
|
||||
row.name:SetText(name)
|
||||
row.name:SetTextColor(PFUI_CLASS_COLORS[UnitClassBase(unit)]:GetRGB())
|
||||
row.dist:SetFormattedText("%.1f", sqrt(nearDistSq[i]))
|
||||
row.unit = unit
|
||||
end
|
||||
row:SetShown(i <= listed)
|
||||
end
|
||||
self.names:SetHeight(listed * LINE_HEIGHT + 4)
|
||||
self.names:SetShown(listed > 0)
|
||||
|
||||
if inRange > 0 then
|
||||
self.ring:SetVertexColor(1, .2, .2)
|
||||
self.count:SetText(inRange)
|
||||
else
|
||||
self.ring:SetVertexColor(.2, 1, .2)
|
||||
self.count:SetText("")
|
||||
end
|
||||
|
||||
-- keep the hovered tooltip's distance current
|
||||
if hovered then
|
||||
if hovered:IsShown() then
|
||||
ShowTooltip(hovered)
|
||||
else
|
||||
hovered = nil
|
||||
GameTooltip:Hide()
|
||||
end
|
||||
end
|
||||
end
|
||||
|
||||
-- line of sight traces run at a slower rate than the positions
|
||||
local throttle, losThrottle = 0, 1
|
||||
radar:SetScript("OnUpdate", function()
|
||||
throttle = throttle + arg1
|
||||
losThrottle = losThrottle + arg1
|
||||
if throttle < .05 then return end
|
||||
throttle = 0
|
||||
|
||||
local checkLoS = losThrottle >= .25
|
||||
if checkLoS then losThrottle = 0 end
|
||||
this:Refresh(checkLoS)
|
||||
end)
|
||||
|
||||
radar:SetScript("OnMouseUp", function()
|
||||
if arg1 == "RightButton" then OpenMenu() end
|
||||
end)
|
||||
|
||||
-- the wheel steps through the ranges, up zooms in
|
||||
radar:SetScript("OnMouseWheel", function()
|
||||
local yards = range
|
||||
if arg1 > 0 then
|
||||
for i = #RANGES, 1, -1 do
|
||||
if RANGES[i] < range then yards = RANGES[i] break end
|
||||
end
|
||||
else
|
||||
for i = 1, #RANGES do
|
||||
if RANGES[i] > range then yards = RANGES[i] break end
|
||||
end
|
||||
end
|
||||
SetRange(yards)
|
||||
end)
|
||||
|
||||
-- /radar toggles, /radar <yards> sets the range and shows
|
||||
pfUI.api.RegisterSlashCommand("PFRADAR", { "/radar", "/pfradar" }, function(msg)
|
||||
local yards = tonumber(msg)
|
||||
if yards and yards > 0 then
|
||||
SetRange(yards)
|
||||
radar:Show()
|
||||
else
|
||||
radar:SetShown(not radar:IsShown())
|
||||
end
|
||||
end)
|
||||
|
||||
pfUI.radar = radar
|
||||
end)
|
||||
+14
-19
@@ -3,7 +3,7 @@ pfUI:RegisterModule("raid", function ()
|
||||
if C.unitframes.disable == "1" then return end
|
||||
|
||||
-- tell RaidFrame.lua pfUI replaces party frames
|
||||
HookAddonOrVariable("Blizzard_RaidUI", function()
|
||||
HookAddon("Blizzard_RaidUI", function()
|
||||
-- must reach _G: RaidFrame.lua reads this global, and pfUI.env has
|
||||
-- __index but no __newindex, so a bare assignment stays in the sandbox
|
||||
_G.GROUP_REPLACE_PARTY = "1"
|
||||
@@ -117,7 +117,7 @@ pfUI:RegisterModule("raid", function ()
|
||||
|
||||
self:LayoutPets()
|
||||
|
||||
self:Show()
|
||||
self:QueueUpdate(0)
|
||||
end
|
||||
|
||||
function pfUI.uf.raid:LayoutPets()
|
||||
@@ -177,6 +177,12 @@ pfUI:RegisterModule("raid", function ()
|
||||
end
|
||||
end
|
||||
|
||||
-- run UpdateRoster after delay; a newer request replaces a pending one
|
||||
function pfUI.uf.raid:QueueUpdate(delay)
|
||||
if self.timer then self.timer:Cancel() end
|
||||
self.timer = C_Timer.NewTimer(delay, function() self:UpdateRoster() end)
|
||||
end
|
||||
|
||||
pfUI.uf.raid:UpdateConfig()
|
||||
|
||||
local function SetRaidIndex(frame, id)
|
||||
@@ -205,7 +211,6 @@ pfUI:RegisterModule("raid", function ()
|
||||
end
|
||||
end
|
||||
|
||||
pfUI.uf.raid:Hide()
|
||||
pfUI.uf.raid:RegisterEvent("RAID_ROSTER_UPDATE")
|
||||
pfUI.uf.raid:RegisterEvent("PARTY_MEMBERS_CHANGED")
|
||||
pfUI.uf.raid:RegisterEvent("PARTY_LEADER_CHANGED")
|
||||
@@ -218,23 +223,15 @@ pfUI:RegisterModule("raid", function ()
|
||||
end
|
||||
return
|
||||
end
|
||||
this:Show()
|
||||
-- Debounce: delay update by 0.5s to batch rapid roster changes (mass swaps)
|
||||
this.pendingUpdate = GetTime() + 0.5
|
||||
this:QueueUpdate(.5)
|
||||
end)
|
||||
pfUI.uf.raid:SetScript("OnUpdate", function()
|
||||
-- Wait for debounce: don't update until 0.5s after last event
|
||||
if this.pendingUpdate and GetTime() < this.pendingUpdate then return end
|
||||
-- Throttle raid roster updates to 1 FPS max
|
||||
if (this.tick or 0) > GetTime() then return end
|
||||
this.tick = GetTime() + 1.0
|
||||
this.pendingUpdate = nil
|
||||
|
||||
function pfUI.uf.raid:UpdateRoster()
|
||||
-- Without a raid there is nothing to sort, but a party shown as a raid
|
||||
-- grid still needs its pet frames placed and mapped to the party pets.
|
||||
if not IsInRaid() then
|
||||
this:LayoutPets()
|
||||
this:Hide()
|
||||
self:LayoutPets()
|
||||
return
|
||||
end
|
||||
|
||||
@@ -257,7 +254,7 @@ pfUI:RegisterModule("raid", function ()
|
||||
end
|
||||
end
|
||||
|
||||
this:LayoutPets()
|
||||
self:LayoutPets()
|
||||
|
||||
-- Smart GUID-based updates: only refresh frames where unit changed
|
||||
if pfUI.uf.guidTracker then
|
||||
@@ -284,9 +281,7 @@ pfUI:RegisterModule("raid", function ()
|
||||
if pfUI.uf.RebuildUnitmap then
|
||||
pfUI.uf.RebuildUnitmap()
|
||||
end
|
||||
|
||||
this:Hide()
|
||||
end)
|
||||
end
|
||||
|
||||
-- raid popup option to toggle tank role
|
||||
for _, menu in pairs({"RAID", "PARTY"}) do
|
||||
@@ -305,7 +300,7 @@ pfUI:RegisterModule("raid", function ()
|
||||
|
||||
if button and pfUI.uf.raid.tanksfirst[button] and name then
|
||||
pfUI.uf.raid.tankrole[name] = not pfUI.uf.raid.tankrole[name]
|
||||
pfUI.uf.raid:Show()
|
||||
pfUI.uf.raid:QueueUpdate(0)
|
||||
end
|
||||
end)
|
||||
end)
|
||||
+1
-1
@@ -100,7 +100,7 @@ pfUI:RegisterModule("roll", function ()
|
||||
f.icon:SetWidth(esize)
|
||||
f.icon:SetHeight(esize)
|
||||
|
||||
f.icon.tex = f.icon:CreateTexture("OVERLAY")
|
||||
f.icon.tex = f.icon:CreateTexture(nil, "OVERLAY")
|
||||
f.icon.tex:SetTexCoord(.08, .92, .08, .92)
|
||||
f.icon.tex:SetAllPoints(f.icon)
|
||||
|
||||
|
||||
+18
-33
@@ -205,36 +205,23 @@ pfUI:RegisterModule("share", function ()
|
||||
table.insert(UISpecialFrames, "pfShare")
|
||||
|
||||
do -- Edit Box
|
||||
f.scroll = pfUI.api.CreateScrollFrame("pfShareScroll", f)
|
||||
f.scroll = CreateFrame("Frame", "pfShareScroll", f, "pfUIScrollingEditBoxTemplate")
|
||||
f.scroll:SetPoint("TOPLEFT", f, "TOPLEFT", 10, -30)
|
||||
f.scroll:SetPoint("BOTTOMRIGHT", f, "BOTTOMRIGHT", -10, 50)
|
||||
f.scroll:SetWidth(560)
|
||||
f.scroll:SetHeight(400)
|
||||
f.scroll:SetFont(pfUI.media["font:RobotoMono.ttf"], 9)
|
||||
f.scroll:SetTextInsets(15,15,15,15)
|
||||
|
||||
f.scroll.backdrop = CreateFrame("Frame", "pfShareScrollBackdrop", f.scroll)
|
||||
f.scroll.backdrop:SetFrameLevel(1)
|
||||
-- the ScrollBox clips its children, so the backdrop is a sibling
|
||||
f.scroll.backdrop = CreateFrame("Frame", "pfShareScrollBackdrop", f)
|
||||
f.scroll.backdrop:SetPoint("TOPLEFT", f.scroll, "TOPLEFT", -5, 5)
|
||||
f.scroll.backdrop:SetPoint("BOTTOMRIGHT", f.scroll, "BOTTOMRIGHT", 5, -5)
|
||||
pfUI.api.CreateBackdrop(f.scroll.backdrop, nil, true)
|
||||
f.scroll.backdrop.tint = f.scroll.backdrop:CreateTexture(nil, "ARTWORK")
|
||||
f.scroll.backdrop.tint:SetAllPoints(f.scroll)
|
||||
f.scroll.backdrop.tint:SetColorTexture(1,1,1,.05)
|
||||
|
||||
f.scroll.text = CreateFrame("EditBox", "pfShareEditBox", f.scroll)
|
||||
f.scroll.text.bg = f.scroll.text:CreateTexture(nil, "OVERLAY")
|
||||
f.scroll.text.bg:SetAllPoints(f.scroll.text)
|
||||
f.scroll.text.bg:SetTexture(1,1,1,.05)
|
||||
f.scroll.text:SetMultiLine(true)
|
||||
f.scroll.text:SetWidth(560)
|
||||
f.scroll.text:SetHeight(400)
|
||||
f.scroll.text:SetAllPoints(f.scroll)
|
||||
f.scroll.text:SetTextInsets(15,15,15,15)
|
||||
f.scroll.text:SetFont(pfUI.media["font:RobotoMono.ttf"], 9)
|
||||
f.scroll.text:SetAutoFocus(false)
|
||||
f.scroll.text:SetJustifyH("LEFT")
|
||||
f.scroll.text:SetScript("OnEscapePressed", function() this:ClearFocus() end)
|
||||
f.scroll.text:SetScript("OnTextChanged", function()
|
||||
this:GetParent():UpdateScrollChildRect()
|
||||
this:GetParent():UpdateScrollState()
|
||||
|
||||
local text = this:GetText()
|
||||
f.scroll:RegisterCallback("OnTextChanged", function()
|
||||
local text = f.scroll:GetText()
|
||||
local blob = Decode(text)
|
||||
local json = not blob and DecodeJSON(text) or nil
|
||||
local legacy = not blob and not json and DecodeLegacy(text) or nil
|
||||
@@ -253,27 +240,26 @@ pfUI:RegisterModule("share", function ()
|
||||
f.readButton:Enable()
|
||||
f.readButton.text:SetText(T["Decode"])
|
||||
f.readButton.func = function()
|
||||
local current = f.scroll.text:GetText()
|
||||
local current = f.scroll:GetText()
|
||||
local config = Decode(current) or DecodeLegacy(current)
|
||||
if config then
|
||||
f.scroll.text:SetText(C_EncodingUtil.SerializeJSON(config))
|
||||
f.scroll:SetText(C_EncodingUtil.SerializeJSON(config))
|
||||
end
|
||||
end
|
||||
elseif json then
|
||||
f.readButton:Enable()
|
||||
f.readButton.text:SetText(T["Encode"])
|
||||
f.readButton.func = function()
|
||||
local config = DecodeJSON(f.scroll.text:GetText())
|
||||
local config = DecodeJSON(f.scroll:GetText())
|
||||
if config then
|
||||
f.scroll.text:SetText(Encode(config))
|
||||
f.scroll:SetText(Encode(config))
|
||||
end
|
||||
end
|
||||
else
|
||||
f.readButton:Disable()
|
||||
f.readButton.text:SetText(T["N/A"])
|
||||
end
|
||||
end)
|
||||
f.scroll:SetScrollChild(f.scroll.text)
|
||||
end, f)
|
||||
end
|
||||
|
||||
do -- button: close
|
||||
@@ -322,7 +308,7 @@ pfUI:RegisterModule("share", function ()
|
||||
f.loadButton.text:SetFont(pfUI.font_default, pfUI_config.global.font_size, "OUTLINE")
|
||||
f.loadButton.text:SetText(T["Import"])
|
||||
f.loadButton:SetScript("OnClick", function()
|
||||
local text = f.scroll.text:GetText()
|
||||
local text = f.scroll:GetText()
|
||||
local config = Decode(text) or DecodeJSON(text) or DecodeLegacy(text)
|
||||
if not config then return end
|
||||
|
||||
@@ -383,9 +369,8 @@ pfUI:RegisterModule("share", function ()
|
||||
ignored["disabled"] = f.ignorePosition:GetChecked()
|
||||
|
||||
local encoded = Encode(DiffConfig(myconfig, defconfig, ignored) or {})
|
||||
f.scroll.text:SetText(encoded)
|
||||
f.scroll.text.value = encoded
|
||||
f.scroll:SetVerticalScroll(0)
|
||||
f.scroll:SetText(encoded)
|
||||
CopyText(encoded)
|
||||
end)
|
||||
end
|
||||
|
||||
|
||||
+56
-12
@@ -15,18 +15,6 @@ pfUI:RegisterModule("skin", function ()
|
||||
DurabilityFrame:SetFrameLevel(1)
|
||||
DurabilityFrame.SetPoint = function() return end
|
||||
|
||||
if C.appearance.cd.blizzard == "1" then
|
||||
hooksecurefunc("PaperDollItemSlotButton_Update", function()
|
||||
local cooldown = _G[this:GetName().."Cooldown"]
|
||||
if cooldown then cooldown.pfCooldownType = "BLIZZARD" end
|
||||
end)
|
||||
|
||||
hooksecurefunc("SpellButton_UpdateButton", function()
|
||||
local cooldown = _G[this:GetName().."Cooldown"]
|
||||
if cooldown then cooldown.pfCooldownType = "BLIZZARD" end
|
||||
end)
|
||||
end
|
||||
|
||||
for i = 1, UIDROPDOWNMENU_MAXLEVELS do
|
||||
CreateBackdrop(_G["DropDownList"..i.."MenuBackdrop"], nil, true, .8)
|
||||
CreateBackdropShadow(_G["DropDownList"..i.."MenuBackdrop"])
|
||||
@@ -35,6 +23,62 @@ pfUI:RegisterModule("skin", function ()
|
||||
CreateBackdropShadow(_G["DropDownList"..i.."Backdrop"])
|
||||
end
|
||||
|
||||
-- ClassicAPI menus that don't name a style of their own take pfUI's
|
||||
function MenuVariants.GetDefaultMenuMixin() return pfUIMenuStyleMixin end
|
||||
function MenuVariants.GetDefaultContextMenuMixin() return pfUIMenuStyleMixin end
|
||||
|
||||
-- ClassicAPI menus draw their checkboxes and radios with these. Both get a
|
||||
-- pfUI box: a checked box holds a check, a selected radio a filled square.
|
||||
local function CreateSelectionBox(frame, text)
|
||||
local _, border = GetBorderSize()
|
||||
|
||||
local box = frame:AttachTexture()
|
||||
frame.leftTexture1 = box
|
||||
box:SetDrawLayer("BORDER")
|
||||
box:SetPoint("LEFT")
|
||||
box:SetSize(12, 12)
|
||||
box:SetColorTexture(GetStringColorObject(C.appearance.border.color):GetRGBA())
|
||||
|
||||
local inside = frame:AttachTexture()
|
||||
inside:SetDrawLayer("ARTWORK")
|
||||
inside:SetPoint("TOPLEFT", box, "TOPLEFT", border, -border)
|
||||
inside:SetPoint("BOTTOMRIGHT", box, "BOTTOMRIGHT", -border, border)
|
||||
local r, g, b = GetStringColorObject(C.appearance.border.background):GetRGB()
|
||||
inside:SetColorTexture(r, g, b, 1)
|
||||
|
||||
local fontString = frame:AttachFontString()
|
||||
frame.fontString = fontString
|
||||
fontString:SetPoint("LEFT", box, "RIGHT", 6, 0)
|
||||
fontString:SetHeight(20)
|
||||
fontString:SetTextToFit(text)
|
||||
|
||||
return box
|
||||
end
|
||||
|
||||
function MenuVariants.CreateCheckbox(text, frame, isSelected, data)
|
||||
local box = CreateSelectionBox(frame, text)
|
||||
if isSelected(data) then
|
||||
local check = frame:AttachTexture()
|
||||
check:SetDrawLayer("OVERLAY")
|
||||
check:SetPoint("CENTER", box)
|
||||
check:SetSize(16, 16)
|
||||
check:SetTexture("Interface\\Buttons\\UI-CheckBox-Check")
|
||||
end
|
||||
return box
|
||||
end
|
||||
|
||||
function MenuVariants.CreateRadio(text, frame, isSelected, data)
|
||||
local box = CreateSelectionBox(frame, text)
|
||||
if isSelected(data) then
|
||||
local dot = frame:AttachTexture()
|
||||
dot:SetDrawLayer("OVERLAY")
|
||||
dot:SetPoint("TOPLEFT", box, "TOPLEFT", 3, -3)
|
||||
dot:SetPoint("BOTTOMRIGHT", box, "BOTTOMRIGHT", -3, 3)
|
||||
dot:SetColorTexture(.2, 1, .8, 1)
|
||||
end
|
||||
return box
|
||||
end
|
||||
|
||||
if C.global.errors_limit == "1" then
|
||||
UIErrorsFrame:SetHeight(25)
|
||||
end
|
||||
|
||||
+7
-16
@@ -79,7 +79,7 @@ pfUI:RegisterModule("superwow", function ()
|
||||
-- SuperWoW release past 1.5
|
||||
local swVersion = tonumber(SUPERWOW_VERSION)
|
||||
if swVersion and swVersion >= 1.5 then
|
||||
QueueFunction(function()
|
||||
RunNextFrame(function()
|
||||
local pfCombatText_AddMessage = _G.CombatText_AddMessage
|
||||
_G.CombatText_AddMessage = function(message, a, b, c, d, e, f)
|
||||
local match, _, hex = string.find(message, ".+ %[(0x.+)%]")
|
||||
@@ -95,20 +95,7 @@ pfUI:RegisterModule("superwow", function ()
|
||||
-- TrackUnit API for adding group members to minimap
|
||||
-- Tracks friendly units on the minimap for easier group coordination
|
||||
if TrackUnit and C.unitframes.track_group == "1" then
|
||||
local trackFrame = CreateFrame("Frame")
|
||||
trackFrame:RegisterEvent("PARTY_MEMBERS_CHANGED")
|
||||
trackFrame:RegisterEvent("RAID_ROSTER_UPDATE")
|
||||
trackFrame:RegisterEvent("PLAYER_ENTERING_WORLD")
|
||||
trackFrame:RegisterEvent("PLAYER_LOGOUT")
|
||||
|
||||
trackFrame:SetScript("OnEvent", function()
|
||||
-- Handle shutdown to prevent crash 132
|
||||
if event == "PLAYER_LOGOUT" then
|
||||
this:UnregisterAllEvents()
|
||||
this:SetScript("OnEvent", nil)
|
||||
return
|
||||
end
|
||||
|
||||
local function TrackGroup()
|
||||
-- Track party members
|
||||
for i = 1, 4 do
|
||||
local unit = "party" .. i
|
||||
@@ -124,7 +111,11 @@ pfUI:RegisterModule("superwow", function ()
|
||||
pcall(TrackUnit, unit)
|
||||
end
|
||||
end
|
||||
end)
|
||||
end
|
||||
|
||||
pfUI.events:RegisterFrameEventAndCallback("PARTY_MEMBERS_CHANGED", TrackGroup)
|
||||
pfUI.events:RegisterFrameEventAndCallback("RAID_ROSTER_UPDATE", TrackGroup)
|
||||
pfUI.events:RegisterFrameEventAndCallback("PLAYER_ENTERING_WORLD", TrackGroup)
|
||||
end
|
||||
|
||||
-- Raid Marker Targeting API
|
||||
|
||||
+50
-20
@@ -23,8 +23,13 @@ pfUI:RegisterModule("swingtimer", function ()
|
||||
useSpellQueueEvent = false,
|
||||
swingThrottle = 0,
|
||||
onSwingCache = {},
|
||||
outOfRange = {}, -- by Enum.PlayerSwingType
|
||||
}
|
||||
|
||||
local MAINHAND = Enum.PlayerSwingType.MainHand
|
||||
local OFFHAND = Enum.PlayerSwingType.OffHand
|
||||
local RANGED = Enum.PlayerSwingType.Ranged
|
||||
|
||||
-- On-next-swing spells replace the next auto-attack swing.
|
||||
-- Covers Raptor Strike, Maul, Mongoose Bite, Holy Strike, etc. automatically.
|
||||
local function IsOnSwingSpell(spellId)
|
||||
@@ -63,6 +68,7 @@ pfUI:RegisterModule("swingtimer", function ()
|
||||
local ohR, ohG, ohB, ohA = ParseColor(C.unitframes.swingtimerohcolor, 0.3, 0.8, 0.3, 1)
|
||||
local raR, raG, raB, raA = ParseColor(C.unitframes.swingtimerrangedcolor, 0.3, 0.6, 1.0, 1)
|
||||
local rwR, rwG, rwB, rwA = ParseColor(C.unitframes.swingtimerrangedwarncolor, 0.9, 0.0, 0.0, 1)
|
||||
local orR, orG, orB = ParseColor(C.unitframes.swingtimeroutrangecolor, 0.5, 0.5, 0.5, 1)
|
||||
local isHunter = UnitClassBase("player") == "HUNTER"
|
||||
local mhDefaultR, mhDefaultG, mhDefaultB = mhR, mhG, mhB
|
||||
|
||||
@@ -108,14 +114,14 @@ pfUI:RegisterModule("swingtimer", function ()
|
||||
|
||||
|
||||
pfUI.swingtimer.mainhand.marker = pfUI.swingtimer.mainhand:CreateTexture(nil, "OVERLAY")
|
||||
pfUI.swingtimer.mainhand.marker:SetTexture(1, 1, 1, 1.0)
|
||||
pfUI.swingtimer.mainhand.marker:SetColorTexture(1, 1, 1, 1.0)
|
||||
pfUI.swingtimer.mainhand.marker:SetWidth(2)
|
||||
pfUI.swingtimer.mainhand.marker:SetHeight(sw_height)
|
||||
pfUI.swingtimer.mainhand.marker:Hide()
|
||||
|
||||
-- Left glow: fades from transparent to white (right edge = marker)
|
||||
pfUI.swingtimer.mainhand.markerGlowL = pfUI.swingtimer.mainhand:CreateTexture(nil, "OVERLAY")
|
||||
pfUI.swingtimer.mainhand.markerGlowL:SetTexture(1, 1, 1, 1)
|
||||
pfUI.swingtimer.mainhand.markerGlowL:SetColorTexture(1, 1, 1, 1)
|
||||
pfUI.swingtimer.mainhand.markerGlowL:SetGradientAlpha("HORIZONTAL", 1, 1, 1, 0, 1, 1, 1, 0.35)
|
||||
pfUI.swingtimer.mainhand.markerGlowL:SetWidth(10)
|
||||
pfUI.swingtimer.mainhand.markerGlowL:SetHeight(sw_height)
|
||||
@@ -123,7 +129,7 @@ pfUI:RegisterModule("swingtimer", function ()
|
||||
|
||||
-- Right glow: fades from white to transparent (left edge = marker)
|
||||
pfUI.swingtimer.mainhand.markerGlowR = pfUI.swingtimer.mainhand:CreateTexture(nil, "OVERLAY")
|
||||
pfUI.swingtimer.mainhand.markerGlowR:SetTexture(1, 1, 1, 1)
|
||||
pfUI.swingtimer.mainhand.markerGlowR:SetColorTexture(1, 1, 1, 1)
|
||||
pfUI.swingtimer.mainhand.markerGlowR:SetGradientAlpha("HORIZONTAL", 1, 1, 1, 0.35, 1, 1, 1, 0)
|
||||
pfUI.swingtimer.mainhand.markerGlowR:SetWidth(10)
|
||||
pfUI.swingtimer.mainhand.markerGlowR:SetHeight(sw_height)
|
||||
@@ -166,14 +172,14 @@ pfUI:RegisterModule("swingtimer", function ()
|
||||
|
||||
|
||||
pfUI.swingtimer.offhand.marker = pfUI.swingtimer.offhand:CreateTexture(nil, "OVERLAY")
|
||||
pfUI.swingtimer.offhand.marker:SetTexture(1, 1, 1, 1.0)
|
||||
pfUI.swingtimer.offhand.marker:SetColorTexture(1, 1, 1, 1.0)
|
||||
pfUI.swingtimer.offhand.marker:SetWidth(2)
|
||||
pfUI.swingtimer.offhand.marker:SetHeight(sw_height)
|
||||
pfUI.swingtimer.offhand.marker:Hide()
|
||||
|
||||
-- Left glow: fades from transparent to white (right edge = marker)
|
||||
pfUI.swingtimer.offhand.markerGlowL = pfUI.swingtimer.offhand:CreateTexture(nil, "OVERLAY")
|
||||
pfUI.swingtimer.offhand.markerGlowL:SetTexture(1, 1, 1, 1)
|
||||
pfUI.swingtimer.offhand.markerGlowL:SetColorTexture(1, 1, 1, 1)
|
||||
pfUI.swingtimer.offhand.markerGlowL:SetGradientAlpha("HORIZONTAL", 1, 1, 1, 0, 1, 1, 1, 0.35)
|
||||
pfUI.swingtimer.offhand.markerGlowL:SetWidth(10)
|
||||
pfUI.swingtimer.offhand.markerGlowL:SetHeight(sw_height)
|
||||
@@ -181,7 +187,7 @@ pfUI:RegisterModule("swingtimer", function ()
|
||||
|
||||
-- Right glow: fades from white to transparent (left edge = marker)
|
||||
pfUI.swingtimer.offhand.markerGlowR = pfUI.swingtimer.offhand:CreateTexture(nil, "OVERLAY")
|
||||
pfUI.swingtimer.offhand.markerGlowR:SetTexture(1, 1, 1, 1)
|
||||
pfUI.swingtimer.offhand.markerGlowR:SetColorTexture(1, 1, 1, 1)
|
||||
pfUI.swingtimer.offhand.markerGlowR:SetGradientAlpha("HORIZONTAL", 1, 1, 1, 0.35, 1, 1, 1, 0)
|
||||
pfUI.swingtimer.offhand.markerGlowR:SetWidth(10)
|
||||
pfUI.swingtimer.offhand.markerGlowR:SetHeight(sw_height)
|
||||
@@ -227,14 +233,14 @@ pfUI:RegisterModule("swingtimer", function ()
|
||||
|
||||
|
||||
pfUI.swingtimer.ranged.marker = pfUI.swingtimer.ranged:CreateTexture(nil, "OVERLAY")
|
||||
pfUI.swingtimer.ranged.marker:SetTexture(1, 1, 1, 1.0)
|
||||
pfUI.swingtimer.ranged.marker:SetColorTexture(1, 1, 1, 1.0)
|
||||
pfUI.swingtimer.ranged.marker:SetWidth(2)
|
||||
pfUI.swingtimer.ranged.marker:SetHeight(sw_height)
|
||||
pfUI.swingtimer.ranged.marker:Hide()
|
||||
|
||||
-- Left glow: fades from transparent to white (right edge = marker)
|
||||
pfUI.swingtimer.ranged.markerGlowL = pfUI.swingtimer.ranged:CreateTexture(nil, "OVERLAY")
|
||||
pfUI.swingtimer.ranged.markerGlowL:SetTexture(1, 1, 1, 1)
|
||||
pfUI.swingtimer.ranged.markerGlowL:SetColorTexture(1, 1, 1, 1)
|
||||
pfUI.swingtimer.ranged.markerGlowL:SetGradientAlpha("HORIZONTAL", 1, 1, 1, 0, 1, 1, 1, 0.35)
|
||||
pfUI.swingtimer.ranged.markerGlowL:SetWidth(10)
|
||||
pfUI.swingtimer.ranged.markerGlowL:SetHeight(sw_height)
|
||||
@@ -242,7 +248,7 @@ pfUI:RegisterModule("swingtimer", function ()
|
||||
|
||||
-- Right glow: fades from white to transparent (left edge = marker)
|
||||
pfUI.swingtimer.ranged.markerGlowR = pfUI.swingtimer.ranged:CreateTexture(nil, "OVERLAY")
|
||||
pfUI.swingtimer.ranged.markerGlowR:SetTexture(1, 1, 1, 1)
|
||||
pfUI.swingtimer.ranged.markerGlowR:SetColorTexture(1, 1, 1, 1)
|
||||
pfUI.swingtimer.ranged.markerGlowR:SetGradientAlpha("HORIZONTAL", 1, 1, 1, 0.35, 1, 1, 1, 0)
|
||||
pfUI.swingtimer.ranged.markerGlowR:SetWidth(10)
|
||||
pfUI.swingtimer.ranged.markerGlowR:SetHeight(sw_height)
|
||||
@@ -258,12 +264,8 @@ pfUI:RegisterModule("swingtimer", function ()
|
||||
-- weapons (22); main-hand-only (21) can never sit there.
|
||||
local OH_WEAPON_TYPES = { [13]=true, [22]=true }
|
||||
local function HasOffhandWeapon()
|
||||
local l = GetInventoryItemLink("player", 17)
|
||||
if not l then return false end
|
||||
local _, _, id = string.find(l, "item:(%d+)")
|
||||
id = tonumber(id)
|
||||
if not id then return false end
|
||||
return OH_WEAPON_TYPES[C_Item.GetItemInventoryTypeByID(id)] == true
|
||||
local invType = C_Item.GetItemInventoryType({ equipmentSlotIndex = INVSLOT_OFFHAND })
|
||||
return OH_WEAPON_TYPES[invType] == true
|
||||
end
|
||||
|
||||
local function UpdateWeaponSpeeds()
|
||||
@@ -503,6 +505,10 @@ pfUI:RegisterModule("swingtimer", function ()
|
||||
end
|
||||
|
||||
-- Render MH
|
||||
if S.outOfRange[MAINHAND] then
|
||||
curR, curG, curB = orR, orG, orB
|
||||
end
|
||||
|
||||
if S.mhActive then
|
||||
local progress = 1 - (S.mhTimer / S.mhTimerMax)
|
||||
pfUI.swingtimer.mainhand:SetValue(progress)
|
||||
@@ -542,6 +548,11 @@ pfUI:RegisterModule("swingtimer", function ()
|
||||
if sw_showoh and S.ohActive then
|
||||
local progress = 1 - (S.ohTimer / S.ohTimerMax)
|
||||
pfUI.swingtimer.offhand:SetValue(progress)
|
||||
if S.outOfRange[OFFHAND] then
|
||||
pfUI.swingtimer.offhand:SetStatusBarColor(orR, orG, orB, ohA)
|
||||
else
|
||||
pfUI.swingtimer.offhand:SetStatusBarColor(ohR, ohG, ohB, ohA)
|
||||
end
|
||||
if S.ohTimer <= 0 then
|
||||
if S.lastOhMarkerX ~= -1 then
|
||||
S.lastOhMarkerX = -1
|
||||
@@ -577,13 +588,13 @@ pfUI:RegisterModule("swingtimer", function ()
|
||||
-- Render Ranged
|
||||
if sw_showranged and S.raActive then
|
||||
local remaining = S.raTimer
|
||||
local r, g, b, a = raR, raG, raB, raA
|
||||
if isHunter then
|
||||
local DEADZONE = 0.5
|
||||
if remaining > DEADZONE then
|
||||
pfUI.swingtimer.ranged:SetStatusBarColor(raR, raG, raB, raA)
|
||||
pfUI.swingtimer.ranged:SetValue((remaining - DEADZONE) / (S.raTimerMax - DEADZONE))
|
||||
else
|
||||
pfUI.swingtimer.ranged:SetStatusBarColor(rwR, rwG, rwB, rwA)
|
||||
r, g, b, a = rwR, rwG, rwB, rwA
|
||||
pfUI.swingtimer.ranged:SetValue(1 - (remaining / DEADZONE))
|
||||
end
|
||||
if sw_showtext then
|
||||
@@ -599,6 +610,10 @@ pfUI:RegisterModule("swingtimer", function ()
|
||||
pfUI.swingtimer.ranged.text:SetFormattedText("%.1f", math.floor(remaining * 10) / 10)
|
||||
end
|
||||
end
|
||||
if S.outOfRange[RANGED] then
|
||||
r, g, b = orR, orG, orB
|
||||
end
|
||||
pfUI.swingtimer.ranged:SetStatusBarColor(r, g, b, a)
|
||||
if sw_showspeed and S.raSpeed > 0 then
|
||||
pfUI.swingtimer.ranged.speed:SetFormattedText("%.2f", S.raSpeed)
|
||||
end
|
||||
@@ -637,6 +652,7 @@ pfUI:RegisterModule("swingtimer", function ()
|
||||
|
||||
local events = CreateFrame("Frame")
|
||||
events:RegisterEvent("PLAYER_SWING")
|
||||
events:RegisterEvent("PLAYER_SWING_RANGE_UPDATE")
|
||||
events:RegisterEvent("PLAYER_ENTERING_WORLD")
|
||||
events:RegisterEvent("PLAYER_EQUIPMENT_CHANGED") -- ClassicAPI: per-slot, equipment-only
|
||||
events:RegisterEvent("PLAYER_REGEN_DISABLED")
|
||||
@@ -654,14 +670,19 @@ pfUI:RegisterModule("swingtimer", function ()
|
||||
-- ClassicAPI tracks the server's swing clock (white hits, on-next-swing
|
||||
-- abilities, swing-reset casts, parry haste, extra attacks, weapon
|
||||
-- swaps) and hands over the seconds left until the next swing.
|
||||
if arg2 == Enum.PlayerSwingType.MainHand then
|
||||
if arg2 == MAINHAND then
|
||||
StartMH(arg1)
|
||||
elseif arg2 == Enum.PlayerSwingType.OffHand then
|
||||
elseif arg2 == OFFHAND then
|
||||
StartOH(arg1)
|
||||
elseif arg2 == Enum.PlayerSwingType.Ranged then
|
||||
elseif arg2 == RANGED then
|
||||
StartRanged(arg1)
|
||||
end
|
||||
|
||||
elseif event == "PLAYER_SWING_RANGE_UPDATE" then
|
||||
-- arg1 = swingType, arg2 = isInRange, arg3 = checksRange; no check
|
||||
-- (no target, nothing to attack, no weapon) is not out of range
|
||||
S.outOfRange[arg1] = arg3 and not arg2
|
||||
|
||||
elseif event == "UNIT_SPELLCAST_SENT" then
|
||||
-- arg4 = spellID: an on-next-swing ability (HS / Cleave / Maul) queued
|
||||
local kind = ClassifyOnSwingSpell(arg4)
|
||||
@@ -773,5 +794,14 @@ pfUI:RegisterModule("swingtimer", function ()
|
||||
IsMaulQueued = function() return S.maulQueued end,
|
||||
}
|
||||
|
||||
-- the range event fires only on a change, so read the state once
|
||||
local function EnableRangeCheck(swingType)
|
||||
C_SwingTimer.EnableRangeCheck(swingType, true)
|
||||
S.outOfRange[swingType] = C_SwingTimer.IsTargetWithinSwingRange(swingType) == false
|
||||
end
|
||||
EnableRangeCheck(MAINHAND)
|
||||
if sw_showoh then EnableRangeCheck(OFFHAND) end
|
||||
if sw_showranged then EnableRangeCheck(RANGED) end
|
||||
|
||||
UpdateWeaponSpeeds()
|
||||
end)
|
||||
@@ -10,4 +10,27 @@ pfUI:RegisterModule("target", function ()
|
||||
pfUI.uf.target:UpdateFrameSize()
|
||||
pfUI.uf.target:SetPoint("BOTTOMLEFT", UIParent, "BOTTOM", 75, 125)
|
||||
UpdateMovable(pfUI.uf.target)
|
||||
|
||||
-- "NO LOS" in the bottom third of the frame, below unitxp's behind indicator
|
||||
if C.unitframes.los_indicator == "1" then
|
||||
local los = CreateFrame("Frame", "pfLoSIndicator", pfUI.uf.target)
|
||||
los:SetAllPoints(pfUI.uf.target)
|
||||
los:SetFrameLevel(pfUI.uf.target:GetFrameLevel() + 10)
|
||||
|
||||
los.text = los:CreateFontString(nil, "OVERLAY")
|
||||
los.text:SetFont(pfUI.font_default, tonumber(C.unitframes.indicator_font_size) or (C.global.font_size + 2), "OUTLINE")
|
||||
los.text:SetPoint("RIGHT", los, "RIGHT", -1, -pfUI.uf.target:GetHeight() / 3)
|
||||
los.text:SetTextColor(1, 0.3, 0.3, 1)
|
||||
los.text:SetText(T["NO LOS"])
|
||||
los.text:Hide()
|
||||
|
||||
local lastCheck = 0
|
||||
los:SetScript("OnUpdate", function()
|
||||
if GetTime() - lastCheck < 0.2 then return end
|
||||
lastCheck = GetTime()
|
||||
|
||||
-- nil without a target
|
||||
this.text:SetShown(UnitInLineOfSight("target") == false)
|
||||
end)
|
||||
end
|
||||
end)
|
||||
|
||||
@@ -2,7 +2,7 @@ pfUI:RegisterModule("targettarget", function ()
|
||||
-- do not go further on disabled UFs
|
||||
if C.unitframes.disable == "1" then return end
|
||||
|
||||
pfUI.uf.targettarget = pfUI.uf:CreateUnitFrame("TargetTarget", nil, C.unitframes.ttarget, .2)
|
||||
pfUI.uf.targettarget = pfUI.uf:CreateUnitFrame("TargetTarget", nil, C.unitframes.ttarget)
|
||||
pfUI.uf.targettarget:UpdateFrameSize()
|
||||
pfUI.uf.targettarget:SetPoint("BOTTOM", UIParent , "BOTTOM", 0, 125)
|
||||
UpdateMovable(pfUI.uf.targettarget)
|
||||
|
||||
@@ -2,7 +2,7 @@ pfUI:RegisterModule("targettargettarget", function ()
|
||||
-- do not go further on disabled UFs
|
||||
if C.unitframes.disable == "1" then return end
|
||||
|
||||
pfUI.uf.targettargettarget = pfUI.uf:CreateUnitFrame("TargetTargetTarget", nil, C.unitframes.tttarget, .2)
|
||||
pfUI.uf.targettargettarget = pfUI.uf:CreateUnitFrame("TargetTargetTarget", nil, C.unitframes.tttarget)
|
||||
pfUI.uf.targettargettarget:UpdateFrameSize()
|
||||
pfUI.uf.targettargettarget:SetPoint("BOTTOM", UIParent , "BOTTOM", 0, 200)
|
||||
UpdateMovable(pfUI.uf.targettargettarget)
|
||||
|
||||
@@ -3,7 +3,7 @@ pfUI:RegisterModule("thirdparty-vanilla", function()
|
||||
if not pfUI.thirdparty then return end
|
||||
local rawborder, default_border = GetBorderSize()
|
||||
|
||||
HookAddonOrVariable("KLHThreatMeter", function()
|
||||
HookAddon("KLHThreatMeter", function()
|
||||
local ktm_scale = 1
|
||||
local function GetKtmWidthDiff(view, match_size)
|
||||
local default_width = 0
|
||||
@@ -122,7 +122,7 @@ pfUI:RegisterModule("thirdparty-vanilla", function()
|
||||
-- remove red background on some buttons
|
||||
for i,v in ipairs({b:GetRegions()}) do
|
||||
if v.SetTexture and i == 1 then
|
||||
v:SetTexture(0,0,0,0)
|
||||
v:SetColorTexture(0,0,0,0)
|
||||
end
|
||||
end
|
||||
|
||||
@@ -159,7 +159,7 @@ pfUI:RegisterModule("thirdparty-vanilla", function()
|
||||
end
|
||||
end)
|
||||
|
||||
HookAddonOrVariable("TWThreat", function()
|
||||
HookAddon("TWThreat", function()
|
||||
local docktable = { "twt", "TODO", "TWTMain",
|
||||
function() -- single
|
||||
TWTMain:ClearAllPoints()
|
||||
@@ -232,7 +232,7 @@ pfUI:RegisterModule("thirdparty-vanilla", function()
|
||||
end
|
||||
end)
|
||||
|
||||
HookAddonOrVariable("SW_Stats", function()
|
||||
HookAddon("SW_Stats", function()
|
||||
local docktable = { "swstats", "TODO", "SW_BarFrame1",
|
||||
function() -- single
|
||||
SW_BarFrame1:SetWidth(pfUI.chat.right:GetWidth())
|
||||
@@ -518,7 +518,7 @@ pfUI:RegisterModule("thirdparty-vanilla", function()
|
||||
end
|
||||
end)
|
||||
|
||||
HookAddonOrVariable("WIM", function()
|
||||
HookAddon("WIM", function()
|
||||
if C.thirdparty.wim.enable == "0" then return end
|
||||
|
||||
-- use pfUI link handler if available
|
||||
@@ -798,7 +798,7 @@ pfUI:RegisterModule("thirdparty-vanilla", function()
|
||||
|
||||
-- SortBags
|
||||
-- Vanilla: https://github.com/shirsig/SortBags-vanilla
|
||||
HookAddonOrVariable("SortBags", function()
|
||||
HookAddon("SortBags", function()
|
||||
if C.thirdparty.sortbags.enable == "0" then return end
|
||||
|
||||
local sort = CreateFrame("Frame", nil)
|
||||
@@ -828,7 +828,7 @@ pfUI:RegisterModule("thirdparty-vanilla", function()
|
||||
end)
|
||||
end)
|
||||
|
||||
HookAddonOrVariable("FlightMap", function()
|
||||
HookAddon("FlightMap", function()
|
||||
if C.thirdparty.flightmap.enable == "0" then return end
|
||||
|
||||
FlightMapTimesBorder:Hide()
|
||||
@@ -844,7 +844,7 @@ pfUI:RegisterModule("thirdparty-vanilla", function()
|
||||
FlightMapTimesText:SetFont(pfUI.font_default, 12, "OUTLINE")
|
||||
end)
|
||||
|
||||
HookAddonOrVariable("TheoryCraft_SetUpButton", function()
|
||||
HookAddon("TheoryCraft", function()
|
||||
if C.thirdparty.theorycraft.enable == "0" then return end
|
||||
|
||||
-- set pfUI bar font
|
||||
@@ -862,7 +862,7 @@ pfUI:RegisterModule("thirdparty-vanilla", function()
|
||||
end
|
||||
end)
|
||||
|
||||
HookAddonOrVariable("SM_GetActionSpell", function()
|
||||
HookAddon("SuperMacro", function()
|
||||
if C.thirdparty.supermacro.enable == "0" then return end
|
||||
if not pfUI.bars then return end
|
||||
|
||||
@@ -885,18 +885,15 @@ pfUI:RegisterModule("thirdparty-vanilla", function()
|
||||
end
|
||||
|
||||
-- hook events to include SuperMacro refreshs
|
||||
local ButtonEnter = pfUI.bars[1][1]:GetScript("OnEnter")
|
||||
local function NewButtonEnter()
|
||||
ButtonEnter()
|
||||
local actionid = ActionButton_GetPagedID(this)
|
||||
SM_ActionButton_SetTooltip(actionid)
|
||||
SM_ActionButton_SetTooltip(ActionButton_GetPagedID(this))
|
||||
end
|
||||
|
||||
-- reassign the new event handler
|
||||
for i=1,10 do
|
||||
for j=1,12 do
|
||||
pfUI.bars[i][j]:SetScript("OnEvent", NewButtonEvent)
|
||||
pfUI.bars[i][j]:SetScript("OnEnter", NewButtonEnter)
|
||||
pfUI.bars[i][j]:HookScript("OnEnter", NewButtonEnter)
|
||||
end
|
||||
end
|
||||
|
||||
@@ -908,7 +905,7 @@ pfUI:RegisterModule("thirdparty-vanilla", function()
|
||||
|
||||
-- CleverMacro
|
||||
-- https://github.com/DanielAdolfsson/CleverMacro
|
||||
HookAddonOrVariable("CleverMacro", function()
|
||||
HookAddon("CleverMacro", function()
|
||||
if C.thirdparty.clevermacro.enable == "0" then return end
|
||||
|
||||
-- get pfUI actionbar event handler
|
||||
@@ -925,7 +922,7 @@ pfUI:RegisterModule("thirdparty-vanilla", function()
|
||||
end)
|
||||
|
||||
-- SuperCleveRoidMacros
|
||||
HookAddonOrVariable("SuperCleveRoidMacros", function()
|
||||
HookAddon("SuperCleveRoidMacros", function()
|
||||
if C.thirdparty.supercleveroidmacros.enable == "0" then return end
|
||||
if not pfUI.bars then return end
|
||||
|
||||
@@ -933,7 +930,7 @@ pfUI:RegisterModule("thirdparty-vanilla", function()
|
||||
pfUI.bars.skip_macro = true
|
||||
end)
|
||||
|
||||
HookAddonOrVariable("AtlasLoot", function()
|
||||
HookAddon("AtlasLoot", function()
|
||||
if C.thirdparty.atlasloot.enable == "0" then return end
|
||||
|
||||
CreateBackdrop(AtlasLootTooltip)
|
||||
@@ -948,7 +945,7 @@ pfUI:RegisterModule("thirdparty-vanilla", function()
|
||||
end
|
||||
end)
|
||||
|
||||
HookAddonOrVariable("crafty", function()
|
||||
HookAddon("crafty", function()
|
||||
if C.thirdparty.crafty.enable == "0" then return end
|
||||
|
||||
local craftyskin = CreateFrame("Frame", nil, UIParent)
|
||||
@@ -1011,7 +1008,7 @@ pfUI:RegisterModule("thirdparty-vanilla", function()
|
||||
end)
|
||||
end)
|
||||
|
||||
HookAddonOrVariable("BetterCharacterStats", function()
|
||||
HookAddon("BetterCharacterStats", function()
|
||||
if C.thirdparty.bcs.enable == "0" then return end
|
||||
StripTextures(BetterCharacterAttributesFrame)
|
||||
|
||||
@@ -1028,7 +1025,7 @@ pfUI:RegisterModule("thirdparty-vanilla", function()
|
||||
end
|
||||
end)
|
||||
|
||||
HookAddonOrVariable("MyRolePlay", function()
|
||||
HookAddon("MyRolePlay", function()
|
||||
if C.thirdparty.myroleplay.enable == "0" then return end
|
||||
|
||||
if pfUI.uf.target then
|
||||
@@ -1045,15 +1042,13 @@ pfUI:RegisterModule("thirdparty-vanilla", function()
|
||||
|
||||
if pfUI.uf.player then
|
||||
-- set tooltip function for player frame
|
||||
local oldfunc = pfUI.uf.player:GetScript("OnEnter")
|
||||
pfUI.uf.player:SetScript("OnEnter", function()
|
||||
oldfunc()
|
||||
pfUI.uf.player:HookScript("OnEnter", function()
|
||||
mrpDisplayTooltip("player", "PLAYER")
|
||||
end)
|
||||
end
|
||||
end)
|
||||
|
||||
HookAddonOrVariable("DruidManaBarBackground", function()
|
||||
HookAddon("DruidManaBarBackground", function()
|
||||
if C.thirdparty.druidmana.enable == "0" then return end
|
||||
DruidManaBar:SetParent(UIParent)
|
||||
DruidManaBar.bd:Hide()
|
||||
@@ -1082,7 +1077,7 @@ pfUI:RegisterModule("thirdparty-vanilla", function()
|
||||
UpdateMovable(DruidManaBar)
|
||||
end)
|
||||
|
||||
HookAddonOrVariable("NoteIt", function()
|
||||
HookAddon("NoteIt", function()
|
||||
if C.thirdparty.noteit.enable == "0" then return end
|
||||
|
||||
-- Main window
|
||||
@@ -1172,33 +1167,21 @@ pfUI:RegisterModule("thirdparty-vanilla", function()
|
||||
end)
|
||||
|
||||
local EnableHealComm = function()
|
||||
-- hook healcomm's addon message to parse single-player events
|
||||
-- HealComm-1.0 already broadcasts this player's casts: keep libpredict
|
||||
-- tracking them, but stop it sending a second copy
|
||||
if AceLibrary and AceLibrary:HasInstance("HealComm-1.0") and pfUI.api.libpredict then
|
||||
local HealComm = AceLibrary("HealComm-1.0")
|
||||
|
||||
-- use pfUI frames to draw healComm predictions
|
||||
local pfHookHealCommSendAddonMessage = HealComm.SendAddonMessage
|
||||
function HealComm.SendAddonMessage(this, msg)
|
||||
if not IsInGroup() then
|
||||
libpredict:ParseChatMessage(UnitName("player"), msg, "HealComm")
|
||||
end
|
||||
pfHookHealCommSendAddonMessage(this, msg)
|
||||
end
|
||||
|
||||
-- disable pfUI predictions
|
||||
pfUI.api.libpredict.sender:UnregisterAllEvents()
|
||||
pfUI.api.libpredict.sender.enabled = nil
|
||||
end
|
||||
end
|
||||
HookAddonOrVariable("HealComm", EnableHealComm)
|
||||
HookAddonOrVariable("LunaUnitFrames", EnableHealComm)
|
||||
HookAddonOrVariable("NotGrid", EnableHealComm)
|
||||
HookAddon("HealComm", EnableHealComm)
|
||||
HookAddon("LunaUnitFrames", EnableHealComm)
|
||||
HookAddon("NotGrid", EnableHealComm)
|
||||
|
||||
HookAddonOrVariable("HardcoreDeath", function()
|
||||
HookAddon("HardcoreDeath", function()
|
||||
GameMenuFrame:SetHeight(GameMenuFrame:GetHeight() + 20)
|
||||
end)
|
||||
|
||||
HookAddonOrVariable("MacroExtender", function()
|
||||
HookAddon("MacroExtender", function()
|
||||
-- Macro Extender moves the character dialog from frame-stata "dialog"
|
||||
-- to "low" and by that moves the frame below backgrounds, quest-trackers,
|
||||
-- and what not... it does this because the buttons it attempts to add, are
|
||||
@@ -1220,7 +1203,7 @@ pfUI:RegisterModule("thirdparty-vanilla", function()
|
||||
|
||||
-- UnitXP SP3 compatibility
|
||||
-- https://github.com/allfoxwy/UnitXP_SP3
|
||||
HookAddonOrVariable("UnitXP_SP3_Addon", function()
|
||||
HookAddon("UnitXP_SP3_Addon", function()
|
||||
-- skin UnitXP SP3 window and elements
|
||||
StripTextures(xpsp3Frame)
|
||||
CreateBackdrop(xpsp3Frame)
|
||||
|
||||
+10
-9
@@ -74,11 +74,7 @@ pfUI:RegisterModule("thirdparty", function()
|
||||
-- show/hide right chatframe
|
||||
if pfUI.chat and C.chat.right.enable == "1" then
|
||||
-- make sure the panel header stays hidden
|
||||
if self.state then
|
||||
pfUI.chat.right.panelTop:Show()
|
||||
else
|
||||
pfUI.chat.right.panelTop:Hide()
|
||||
end
|
||||
pfUI.chat.right.panelTop:SetShown(self.state)
|
||||
|
||||
-- set chat visibility
|
||||
pfUI.chat.right:SetAlpha(self.state and 1 or 0)
|
||||
@@ -143,7 +139,7 @@ pfUI:RegisterModule("thirdparty", function()
|
||||
-- MrPlow Bag Sorting Addon.
|
||||
-- Vanilla: https://www.wowace.com/projects/mr-plow/files/288059
|
||||
-- TBC: https://www.wowace.com/projects/mr-plow/files/136162
|
||||
HookAddonOrVariable("MrPlow", function()
|
||||
HookAddon("MrPlow", function()
|
||||
if C.thirdparty.mrplow.enable == "0" then return end
|
||||
|
||||
local sort = CreateFrame("Frame", nil)
|
||||
@@ -179,7 +175,7 @@ pfUI:RegisterModule("thirdparty", function()
|
||||
-- ShaguDPS Damage Meter
|
||||
-- Vanilla: https://github.com/shagu/ShaguDPS
|
||||
-- TBC: https://github.com/shagu/ShaguDPS
|
||||
HookAddonOrVariable("ShaguDPS", function()
|
||||
HookAddon("ShaguDPS", function()
|
||||
local docktable = { "shagudps", "ShaguDPS", "ShaguDPSWindow",
|
||||
function() -- single
|
||||
ShaguDPSWindow:ClearAllPoints()
|
||||
@@ -284,7 +280,7 @@ pfUI:RegisterModule("thirdparty", function()
|
||||
-- dock slot; a second window (GreedMeter.UI.frames[2]) takes the "threat"
|
||||
-- slot so the two tile the panel side-by-side. Docking triggers a
|
||||
-- LayoutBars/RefreshFrame so the bars refit the new width.
|
||||
HookAddonOrVariable("GreedMeter", function()
|
||||
HookAddon("GreedMeter", function()
|
||||
local UI = GreedMeter.UI
|
||||
|
||||
local function frameAt(i)
|
||||
@@ -377,7 +373,12 @@ pfUI:RegisterModule("thirdparty", function()
|
||||
-- DPSMate Damage Meter
|
||||
-- Vanilla: https://github.com/Geigerkind/DPSMate
|
||||
-- TBC: https://github.com/Geigerkind/DPSMateTBC
|
||||
HookAddonOrVariable("DPSMate_DPSMate", function()
|
||||
HookAddon("DPSMate", function()
|
||||
-- DPSMate builds its windows on VARIABLES_LOADED, each named after its
|
||||
-- settings entry, so DPSMate_DPSMate exists only while the first window
|
||||
-- keeps the default name "DPSMate"
|
||||
if not DPSMate_DPSMate then return end
|
||||
|
||||
local docktable = { "dpsmate", "DPSMate", "DPSMate_DPSMate",
|
||||
function() -- single
|
||||
DPSMate_DPSMate:ClearAllPoints()
|
||||
|
||||
Some files were not shown because too many files have changed in this diff Show More
Reference in New Issue
Block a user