mirror of
https://github.com/brues-code/pfUI.git
synced 2026-11-01 08:26:57 +00:00
Compare commits
| Author | SHA1 | Date | |
|---|---|---|---|
|
|
3e50a0b34f | ||
|
|
3faeafdfc5 | ||
|
|
b2cffcb3c2 | ||
|
|
5476a28982 | ||
|
|
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 |
+1
-1
@@ -13,7 +13,7 @@ do
|
|||||||
-- on. There pfUI does load, and will throw wherever it reaches for something
|
-- 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
|
-- the installed DLL doesn't have yet -- the popup names the cause so those
|
||||||
-- errors aren't a mystery.
|
-- 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_LATEST = PFUI_CLASSIC_API_MIN
|
||||||
local PFUI_CLASSIC_API_WEBSITE = "https://github.com/brues-code/ClassicAPI"
|
local PFUI_CLASSIC_API_WEBSITE = "https://github.com/brues-code/ClassicAPI"
|
||||||
local PFUI_CLASSIC_API_LATEST_URL = PFUI_CLASSIC_API_WEBSITE .. "/releases/latest"
|
local PFUI_CLASSIC_API_LATEST_URL = PFUI_CLASSIC_API_WEBSITE .. "/releases/latest"
|
||||||
|
|||||||
@@ -37,6 +37,8 @@ Provides:
|
|||||||
- Click-casting
|
- Click-casting
|
||||||
- Loot Roll History (/loothistory)
|
- Loot Roll History (/loothistory)
|
||||||
- New item highlighting
|
- 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
|
- Plenty other functions
|
||||||
|
|
||||||
### [Nampower](https://github.com/brues-code/nampower)
|
### [Nampower](https://github.com/brues-code/nampower)
|
||||||
|
|||||||
+67
-330
@@ -1,5 +1,3 @@
|
|||||||
pfUI.api = { }
|
|
||||||
|
|
||||||
-- load pfUI environment
|
-- load pfUI environment
|
||||||
setfenv(1, pfUI:GetEnvironment())
|
setfenv(1, pfUI:GetEnvironment())
|
||||||
|
|
||||||
@@ -59,20 +57,6 @@ function pfUI.api.GetUnitDistance(unit1, unit2)
|
|||||||
return nil
|
return nil
|
||||||
end
|
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 ]
|
-- [ UnitIsBehind ]
|
||||||
-- Returns true if unit1 is behind unit2
|
-- Returns true if unit1 is behind unit2
|
||||||
-- Requires UnitXP_SP3
|
-- Requires UnitXP_SP3
|
||||||
@@ -92,34 +76,11 @@ gfind = string.gmatch or string.gfind
|
|||||||
mod = math.mod or mod
|
mod = math.mod or mod
|
||||||
|
|
||||||
-- [ strsplit ]
|
-- [ strsplit ]
|
||||||
-- Splits a string using a delimiter. Self-contained on purpose: it does NOT
|
-- ClassicAPI's strsplit, taken from the ClassicAPI table, which no addon can
|
||||||
-- delegate to the global strsplit / string.split, because third-party addons
|
-- overwrite. Third-party addons replace the global strsplit / string.split
|
||||||
-- clobber those (e.g. BigWigs' SpellRequests redefines string:split to return
|
-- (e.g. BigWigs' SpellRequests makes string:split return a table), and bare
|
||||||
-- a table, which would make this return a single table instead of r,g,b,a and
|
-- strsplit calls inside the pfUI environment resolve to this copy.
|
||||||
-- break color/version parsing depending on load order). Delimiter chars are
|
pfUI.api.strsplit = ClassicAPI.strsplit
|
||||||
-- 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
|
|
||||||
|
|
||||||
-- [ checkversion ]
|
-- [ checkversion ]
|
||||||
-- Compares a given version (major,minor,fix) and compares it to the current
|
-- 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
|
end
|
||||||
|
|
||||||
-- [ UnitInRange ]
|
-- [ UnitInRange ]
|
||||||
-- Returns whether a party/raid member is nearby.
|
-- Returns whether a party/raid member is nearby, by the configured range check.
|
||||||
-- It takes care of the rangecheck module if existing.
|
|
||||||
-- unit [string] A unit to query (string, unitID)
|
-- unit [string] A unit to query (string, unitID)
|
||||||
-- return: [bool] "1" if in range otherwise "nil"
|
-- return: [bool] "1" if in range otherwise "nil"
|
||||||
function pfUI.api.UnitInRange(unit)
|
function pfUI.api.UnitInRange(unit)
|
||||||
@@ -159,40 +119,21 @@ function pfUI.api.UnitInRange(unit)
|
|||||||
-- returned nil above, matching the pre-collapse behavior.
|
-- returned nil above, matching the pre-collapse behavior.
|
||||||
if C.unitframes.rangecheck == "0" then return 1 end
|
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
|
if C.unitframes.rangecheck_mode == "unitxp" and _G.UnitXP then
|
||||||
local threshold = tonumber(C.unitframes.rangecheck_distance) or 40
|
local threshold = tonumber(C.unitframes.rangecheck_distance) or 40
|
||||||
local success, distance = pcall(_G.UnitXP, "distanceBetween", "player", unit)
|
local success, distance = pcall(_G.UnitXP, "distanceBetween", "player", unit)
|
||||||
if success and distance then
|
if success and distance then
|
||||||
return distance <= threshold and 1 or nil
|
return distance <= threshold and 1 or nil
|
||||||
end
|
end
|
||||||
-- fallthrough to librange if UnitXP fails
|
-- fallthrough to the 40y check if UnitXP fails
|
||||||
end
|
end
|
||||||
|
|
||||||
if pfUI.api.librange then
|
-- ClassicAPI's 40y check, _G-qualified since the bare name is this function
|
||||||
return pfUI.api.librange:UnitInSpellRange(unit)
|
-- inside the pfUI environment. A unit it can't place (outside the client's
|
||||||
end
|
-- sync range) counts as in range.
|
||||||
return nil
|
local inRange, checked = _G.UnitInRange(unit)
|
||||||
end
|
return (inRange or not checked) and 1 or nil
|
||||||
|
|
||||||
-- [ 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
|
|
||||||
end
|
end
|
||||||
|
|
||||||
-- [ UnitHasBuff ]
|
-- [ UnitHasBuff ]
|
||||||
@@ -320,28 +261,6 @@ function pfUI.api.round(input, places)
|
|||||||
end
|
end
|
||||||
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 ]
|
-- [ GetServerEpoch ]
|
||||||
-- Returns a Unix epoch (seconds) representing the current server wall
|
-- Returns a Unix epoch (seconds) representing the current server wall
|
||||||
-- clock, packed in the player's local timezone so that date(fmt, epoch)
|
-- clock, packed in the player's local timezone so that date(fmt, epoch)
|
||||||
@@ -529,37 +448,32 @@ function pfUI.api.GetBagFamily(bag)
|
|||||||
end
|
end
|
||||||
|
|
||||||
-- [ Abbreviate ]
|
-- [ 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
|
-- 'number' [number] the number that should be abbreviated
|
||||||
-- 'returns: [string] the abbreviated value
|
-- '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)
|
function pfUI.api.Abbreviate(number)
|
||||||
local mode = pfUI_config.unitframes.abbrevnum
|
local formatter = abbreviateFormatters[pfUI_config.unitframes.abbrevnum]
|
||||||
-- mode "0" = disabled (full numbers)
|
if not formatter then return math.floor(number) end
|
||||||
-- mode "1" = 2 decimals (4250 -> 4.25k) [legacy/default]
|
if number < 0 then return "-" .. formatter:FormatNumber(-number) end
|
||||||
-- mode "2" = 1 decimal (4250 -> 4.2k) - always rounds DOWN
|
return formatter:FormatNumber(number)
|
||||||
|
|
||||||
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)
|
|
||||||
end
|
end
|
||||||
|
|
||||||
-- [ SendChatMessageWide ]
|
-- [ SendChatMessageWide ]
|
||||||
@@ -579,6 +493,14 @@ function pfUI.api.SendChatMessageWide(msg)
|
|||||||
SendChatMessage(msg,channel)
|
SendChatMessage(msg,channel)
|
||||||
end
|
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 ]
|
-- [ GroupInfoByName ]
|
||||||
-- Gets the unit id by name
|
-- Gets the unit id by name
|
||||||
-- 'name' [string] party or raid member
|
-- 'name' [string] party or raid member
|
||||||
@@ -643,75 +565,21 @@ function hooksecurefunc(tbl, name, func)
|
|||||||
return _G.hooksecurefunc(tbl, name, func)
|
return _G.hooksecurefunc(tbl, name, func)
|
||||||
end
|
end
|
||||||
|
|
||||||
-- [ HookAddonOrVariable ]
|
-- [ HookAddon ]
|
||||||
-- Sets a function to be called automatically once an addon gets loaded
|
-- Runs a function once an addon has loaded, but never before PLAYER_LOGIN.
|
||||||
-- 'addon' [string] addon or variable name
|
-- 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
|
-- 'func' [function] function that should run
|
||||||
do
|
function pfUI.api.HookAddon(addon, func)
|
||||||
local lurker
|
if not C_AddOns.DoesAddOnExist(addon) then return end
|
||||||
local pending = {}
|
EventUtil.ContinueOnPlayerLogin(function()
|
||||||
|
EventUtil.ContinueOnAddOnLoaded(addon, func)
|
||||||
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)
|
||||||
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
|
|
||||||
end
|
end
|
||||||
|
|
||||||
-- [ Create Gold String ]
|
-- [ Create Gold String ]
|
||||||
@@ -722,53 +590,16 @@ end
|
|||||||
function pfUI.api.CreateGoldString(money)
|
function pfUI.api.CreateGoldString(money)
|
||||||
if type(money) ~= "number" then return "-" end
|
if type(money) ~= "number" then return "-" end
|
||||||
|
|
||||||
if _G.GetCoinTextureString then
|
|
||||||
return "|cffffffff" .. _G.GetCoinTextureString(money) .. "|r"
|
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
|
|
||||||
end
|
end
|
||||||
|
|
||||||
-- [ Enable Movable ]
|
-- [ Enable Movable ]
|
||||||
-- Set all necessary functions to make a already existing frame movable.
|
-- Set all necessary functions to make a already existing frame movable.
|
||||||
-- 'name' [frame/string] Name of the Frame that should be 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
|
-- 'blacklist' [table] A list of frames that should be deactivated for mouse usage
|
||||||
local function OnDragStart() this:StartMoving() end
|
local function OnDragStart() this:StartMoving() end
|
||||||
local function OnDragStop() this:StopMovingOrSizing() end
|
local function OnDragStop() this:StopMovingOrSizing() end
|
||||||
function pfUI.api.EnableMovable(name, addon, blacklist)
|
function pfUI.api.EnableMovable(name, 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
|
if blacklist then
|
||||||
for _, disable in pairs(blacklist) do
|
for _, disable in pairs(blacklist) do
|
||||||
_G[disable]:EnableMouse(false)
|
_G[disable]:EnableMouse(false)
|
||||||
@@ -782,7 +613,6 @@ function pfUI.api.EnableMovable(name, addon, blacklist)
|
|||||||
frame:RegisterForDrag("LeftButton")
|
frame:RegisterForDrag("LeftButton")
|
||||||
frame:SetScript("OnDragStart", OnDragStart)
|
frame:SetScript("OnDragStart", OnDragStart)
|
||||||
frame:SetScript("OnDragStop", OnDragStop)
|
frame:SetScript("OnDragStop", OnDragStop)
|
||||||
end
|
|
||||||
end
|
end
|
||||||
|
|
||||||
-- [ Copy Table ]
|
-- [ Copy Table ]
|
||||||
@@ -1353,15 +1183,18 @@ end
|
|||||||
|
|
||||||
-- [ Bar Layout Options ] --
|
-- [ Bar Layout Options ] --
|
||||||
-- 'barsize' size of bar in number of buttons
|
-- '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)
|
function pfUI.api.BarLayoutOptions(barsize)
|
||||||
assert(barsize > 0 and barsize <= NUM_ACTIONBAR_BUTTONS,"BarLayoutOptions: barsize "..tostring(barsize).." is invalid")
|
assert(barsize > 0 and barsize <= NUM_ACTIONBAR_BUTTONS,"BarLayoutOptions: barsize "..tostring(barsize).." is invalid")
|
||||||
local options, seen = {}, {}
|
local options, seen = {}, {}
|
||||||
local function add(option)
|
local function add(option)
|
||||||
if not seen[option] then table.insert(options, option); seen[option] = true end
|
if not seen[option] then table.insert(options, option); seen[option] = true end
|
||||||
end
|
end
|
||||||
for i,layout in ipairs(pfGridmath[barsize]) do
|
for cols = 1, barsize do
|
||||||
add(string.format("%d x %d",layout[1],layout[2]))
|
if barsize % cols == 0 then
|
||||||
|
add(string.format("%d x %d", cols, barsize / cols))
|
||||||
|
end
|
||||||
end
|
end
|
||||||
for _, option in ipairs({
|
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",
|
"1 x 12", "1 x 10", "2 x 10", "2 x 5", "3 x 10", "3 x 5", "3 x 3",
|
||||||
@@ -1381,31 +1214,10 @@ function pfUI.api.BarLayoutOptions(barsize)
|
|||||||
return options
|
return options
|
||||||
end
|
end
|
||||||
|
|
||||||
-- [ Bar Layout Formfactor ] --
|
-- 'formfactor' has to be a "cols x rows" string; the actionbar module resets
|
||||||
-- 'option' string option as used in pfUI_config.bars[bar].option
|
-- a stored layout that isn't one before it lays out a bar
|
||||||
-- 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
|
|
||||||
|
|
||||||
local function ResolveBarLayout(barsize, formfactor, uneven)
|
local function ResolveBarLayout(barsize, formfactor, uneven)
|
||||||
local layout = tostring(formfactor or "")
|
local _, _, a, b = string.find(formfactor, "(%d+)%s*x%s*(%d+)")
|
||||||
local _, _, a, b = string.find(layout, "(%d+)%s*x%s*(%d+)")
|
|
||||||
if a and b then
|
|
||||||
local cols, rows = tonumber(a), tonumber(b)
|
local cols, rows = tonumber(a), tonumber(b)
|
||||||
cols = math.min(NUM_ACTIONBAR_BUTTONS, math.max(1, cols))
|
cols = math.min(NUM_ACTIONBAR_BUTTONS, math.max(1, cols))
|
||||||
rows = math.min(NUM_ACTIONBAR_BUTTONS, math.max(1, rows))
|
rows = math.min(NUM_ACTIONBAR_BUTTONS, math.max(1, rows))
|
||||||
@@ -1419,11 +1231,6 @@ local function ResolveBarLayout(barsize, formfactor, uneven)
|
|||||||
cols = math.max(1, math.ceil(barsize / rows))
|
cols = math.max(1, math.ceil(barsize / rows))
|
||||||
end
|
end
|
||||||
return cols, rows, mode, orientation
|
return cols, rows, mode, orientation
|
||||||
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"
|
|
||||||
end
|
end
|
||||||
|
|
||||||
-- [ Bar Layout Size ] --
|
-- [ Bar Layout Size ] --
|
||||||
@@ -1434,7 +1241,6 @@ end
|
|||||||
function pfUI.api.BarLayoutSize(bar,barsize,formfactor,iconsize,bordersize,padding,uneven,fillmode)
|
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")
|
assert(barsize > 0 and barsize <= NUM_ACTIONBAR_BUTTONS,"BarLayoutSize: barsize "..tostring(barsize).." is invalid")
|
||||||
local cols, rows = ResolveBarLayout(barsize, formfactor, uneven)
|
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 width = (iconsize + bordersize*2+padding) * cols + padding
|
||||||
local height = (iconsize + bordersize*2+padding) * rows + padding
|
local height = (iconsize + bordersize*2+padding) * rows + padding
|
||||||
bar._size = {width,height}
|
bar._size = {width,height}
|
||||||
@@ -1452,9 +1258,6 @@ end
|
|||||||
function pfUI.api.BarButtonAnchor(button,basename,buttonindex,barsize,formfactor,iconsize,bordersize,padding,uneven,fillmode)
|
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")
|
assert(barsize > 0 and barsize <= NUM_ACTIONBAR_BUTTONS,"BarButtonAnchor: barsize "..tostring(barsize).." is invalid")
|
||||||
local cols, rows, mode, orientation = ResolveBarLayout(barsize, formfactor, uneven)
|
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)
|
-- fillmode: remap buttonindex to slotindex (grid position in native fill order)
|
||||||
-- only needed when fill direction differs from layout mode
|
-- only needed when fill direction differs from layout mode
|
||||||
@@ -1615,72 +1418,6 @@ function pfUI.api.DisableAutohide(frame)
|
|||||||
frame:SetAlpha(1)
|
frame:SetAlpha(1)
|
||||||
end
|
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 ] --
|
-- [ GetColorGradient ] --
|
||||||
-- 'perc' percentage (0-1)
|
-- 'perc' percentage (0-1)
|
||||||
-- return r,g,b and hexcolor
|
-- return r,g,b and hexcolor
|
||||||
|
|||||||
+132
-52
@@ -138,21 +138,50 @@ function pfUI:LoadConfig()
|
|||||||
pfUI:UpdateConfig("appearance", "border", "panels", "-1")
|
pfUI:UpdateConfig("appearance", "border", "panels", "-1")
|
||||||
pfUI:UpdateConfig("appearance", "border", "chat", "-1")
|
pfUI:UpdateConfig("appearance", "border", "chat", "-1")
|
||||||
pfUI:UpdateConfig("appearance", "border", "bags", "-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("cooldown", nil, "font", "Interface\\AddOns\\pfUI\\fonts\\BigNoodleTitling.ttf")
|
||||||
pfUI:UpdateConfig("appearance", "cd", "minutecolor", ".2,1,1,1")
|
pfUI:UpdateConfig("cooldown", nil, "font_size", "12")
|
||||||
pfUI:UpdateConfig("appearance", "cd", "hourcolor", ".2,.5,1,1")
|
pfUI:UpdateConfig("cooldown", nil, "dynamicsize", "1")
|
||||||
pfUI:UpdateConfig("appearance", "cd", "daycolor", ".2,.2,1,1")
|
pfUI:UpdateConfig("cooldown", nil, "threshold", "2")
|
||||||
pfUI:UpdateConfig("appearance", "cd", "threshold", "2")
|
pfUI:UpdateConfig("cooldown", nil, "milliseconds", "1")
|
||||||
pfUI:UpdateConfig("appearance", "cd", "font_size", "12")
|
pfUI:UpdateConfig("cooldown", nil, "lowcolor", "1,.2,.2,1")
|
||||||
pfUI:UpdateConfig("appearance", "cd", "font_size_blizz", "12")
|
pfUI:UpdateConfig("cooldown", nil, "normalcolor", "1,1,1,1")
|
||||||
pfUI:UpdateConfig("appearance", "cd", "font_size_foreign","12")
|
pfUI:UpdateConfig("cooldown", nil, "minutecolor", ".2,1,1,1")
|
||||||
pfUI:UpdateConfig("appearance", "cd", "blizzard", "1")
|
pfUI:UpdateConfig("cooldown", nil, "hourcolor", ".2,.5,1,1")
|
||||||
pfUI:UpdateConfig("appearance", "cd", "foreign", "0")
|
pfUI:UpdateConfig("cooldown", nil, "daycolor", ".2,.2,1,1")
|
||||||
pfUI:UpdateConfig("appearance", "cd", "milliseconds", "1")
|
pfUI:UpdateConfig("cooldown", "actionbar", "text", "1")
|
||||||
pfUI:UpdateConfig("appearance", "cd", "hideanim", "0")
|
pfUI:UpdateConfig("cooldown", "actionbar", "animation", "1")
|
||||||
pfUI:UpdateConfig("appearance", "cd", "font", "Interface\\AddOns\\pfUI\\fonts\\BigNoodleTitling.ttf")
|
pfUI:UpdateConfig("cooldown", "actionbar", "reverse", "0")
|
||||||
pfUI:UpdateConfig("appearance", "cd", "dynamicsize", "1")
|
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", "castbarcolor", ".7,.7,.9,.8")
|
||||||
pfUI:UpdateConfig("appearance", "castbar", "channelcolor", ".9,.9,.7,.8")
|
pfUI:UpdateConfig("appearance", "castbar", "channelcolor", ".9,.9,.7,.8")
|
||||||
pfUI:UpdateConfig("appearance", "castbar", "failcolor", "1,.2,.2,.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", "newitem_color", "1,1,1,1")
|
||||||
pfUI:UpdateConfig("appearance", "bags", "borderlimit", "1")
|
pfUI:UpdateConfig("appearance", "bags", "borderlimit", "1")
|
||||||
pfUI:UpdateConfig("appearance", "bags", "borderonlygear", "0")
|
pfUI:UpdateConfig("appearance", "bags", "borderonlygear", "0")
|
||||||
pfUI:UpdateConfig("appearance", "bags", "fulltext", "1")
|
|
||||||
pfUI:UpdateConfig("appearance", "bags", "movable", "0")
|
pfUI:UpdateConfig("appearance", "bags", "movable", "0")
|
||||||
pfUI:UpdateConfig("appearance", "bags", "abovechat", "0")
|
pfUI:UpdateConfig("appearance", "bags", "abovechat", "0")
|
||||||
pfUI:UpdateConfig("appearance", "bags", "hidechat", "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, "ragecolor", "1,.5,.5,1")
|
||||||
pfUI:UpdateConfig("unitframes", nil, "focuscolor", "1,1,.75,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, "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, "portraittexture", "1")
|
||||||
pfUI:UpdateConfig("unitframes", nil, "layout", "default")
|
pfUI:UpdateConfig("unitframes", nil, "layout", "default")
|
||||||
pfUI:UpdateConfig("unitframes", nil, "rangecheck", "0")
|
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, "swingtimerohcolor",".3,.8,.3,1")
|
||||||
pfUI:UpdateConfig("unitframes", nil, "swingtimerrangedcolor",".3,.6,1,1")
|
pfUI:UpdateConfig("unitframes", nil, "swingtimerrangedcolor",".3,.6,1,1")
|
||||||
pfUI:UpdateConfig("unitframes", nil, "swingtimerrangedwarncolor",".9,0,0,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, "swingtimerhsqueue","1")
|
||||||
pfUI:UpdateConfig("unitframes", nil, "swingtimerattackspeed","0")
|
pfUI:UpdateConfig("unitframes", nil, "swingtimerattackspeed","0")
|
||||||
pfUI:UpdateConfig("unitframes", nil, "raidmarkerwidth", "80")
|
pfUI:UpdateConfig("unitframes", nil, "raidmarkerwidth", "80")
|
||||||
@@ -283,9 +312,11 @@ function pfUI:LoadConfig()
|
|||||||
pfUI:UpdateConfig("unitframes", nil, "reactive_size", "28")
|
pfUI:UpdateConfig("unitframes", nil, "reactive_size", "28")
|
||||||
pfUI:UpdateConfig("unitframes", nil, "damage_tracking", "0")
|
pfUI:UpdateConfig("unitframes", nil, "damage_tracking", "0")
|
||||||
|
|
||||||
-- UnitXP Settings
|
-- Target Indicators
|
||||||
pfUI:UpdateConfig("unitframes", nil, "unitxp_font_size", "13")
|
pfUI:UpdateConfig("unitframes", nil, "indicator_font_size", "13")
|
||||||
pfUI:UpdateConfig("unitframes", nil, "los_indicator", "0")
|
pfUI:UpdateConfig("unitframes", nil, "los_indicator", "0")
|
||||||
|
|
||||||
|
-- UnitXP Settings
|
||||||
pfUI:UpdateConfig("unitframes", nil, "behind_indicator", "0")
|
pfUI:UpdateConfig("unitframes", nil, "behind_indicator", "0")
|
||||||
pfUI:UpdateConfig("unitframes", nil, "hide_distance_yd", "0")
|
pfUI:UpdateConfig("unitframes", nil, "hide_distance_yd", "0")
|
||||||
pfUI:UpdateConfig("unitframes", nil, "unitxp_notify", "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, "portraitwidth", "-1")
|
||||||
pfUI:UpdateConfig("unitframes", unit, "panchor", "TOP")
|
pfUI:UpdateConfig("unitframes", unit, "panchor", "TOP")
|
||||||
pfUI:UpdateConfig("unitframes", unit, "pspace", "-3")
|
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, "buffs", "TOPLEFT")
|
||||||
pfUI:UpdateConfig("unitframes", unit, "buffsize", "20")
|
pfUI:UpdateConfig("unitframes", unit, "buffsize", "20")
|
||||||
pfUI:UpdateConfig("unitframes", unit, "bufflimit", "32")
|
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_procs", "0")
|
||||||
pfUI:UpdateConfig("unitframes", unit, "show_totems", "0")
|
pfUI:UpdateConfig("unitframes", unit, "show_totems", "0")
|
||||||
pfUI:UpdateConfig("unitframes", unit, "all_procs", "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_stacks", "1")
|
||||||
pfUI:UpdateConfig("unitframes", unit, "indicator_size", "10")
|
pfUI:UpdateConfig("unitframes", unit, "indicator_size", "10")
|
||||||
pfUI:UpdateConfig("unitframes", unit, "indicator_spacing","1")
|
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, "count_color", ".2,1,.8,1")
|
||||||
pfUI:UpdateConfig("bars", nil, "bind_size", "8")
|
pfUI:UpdateConfig("bars", nil, "bind_size", "8")
|
||||||
pfUI:UpdateConfig("bars", nil, "bind_color", "1,1,0,1")
|
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", "texture", "None")
|
||||||
pfUI:UpdateConfig("bars", "gryphons", "color", ".6,.6,.6,1")
|
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", "timeformat", "%H:%M:%S")
|
||||||
pfUI:UpdateConfig("chat", "text", "timebracket", "[]")
|
pfUI:UpdateConfig("chat", "text", "timebracket", "[]")
|
||||||
pfUI:UpdateConfig("chat", "text", "timecolor", ".8,.8,.8,1")
|
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", "tintunknown", "1")
|
||||||
pfUI:UpdateConfig("chat", "text", "unknowncolor", ".7,.7,.7,1")
|
pfUI:UpdateConfig("chat", "text", "unknowncolor", ".7,.7,.7,1")
|
||||||
pfUI:UpdateConfig("chat", "text", "channelnumonly", "1")
|
pfUI:UpdateConfig("chat", "text", "channelnumonly", "1")
|
||||||
@@ -939,9 +967,6 @@ function pfUI:LoadConfig()
|
|||||||
pfUI:UpdateConfig("nameplates", "debuffs", "blacklist", "")
|
pfUI:UpdateConfig("nameplates", "debuffs", "blacklist", "")
|
||||||
pfUI:UpdateConfig("nameplates", "debuffs", "showstacks", "0")
|
pfUI:UpdateConfig("nameplates", "debuffs", "showstacks", "0")
|
||||||
pfUI:UpdateConfig("nameplates", "debuffs", "position", "BOTTOM")
|
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, "enable", "1")
|
||||||
pfUI:UpdateConfig("abuttons", nil, "position", "bottom")
|
pfUI:UpdateConfig("abuttons", nil, "position", "bottom")
|
||||||
@@ -969,7 +994,12 @@ function pfUI:LoadConfig()
|
|||||||
|
|
||||||
pfUI:UpdateConfig("character", "inventory", "durability", "1")
|
pfUI:UpdateConfig("character", "inventory", "durability", "1")
|
||||||
pfUI:UpdateConfig("character", "inventory", "equipflyout", "0")
|
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("character", "reputation", "repRequired", "1")
|
||||||
|
pfUI:UpdateConfig("radar", nil, "range", "10")
|
||||||
pfUI:UpdateConfig("thirdparty", nil, "chatbg", "1")
|
pfUI:UpdateConfig("thirdparty", nil, "chatbg", "1")
|
||||||
pfUI:UpdateConfig("thirdparty", nil, "showmeter", "0")
|
pfUI:UpdateConfig("thirdparty", nil, "showmeter", "0")
|
||||||
pfUI:UpdateConfig("thirdparty", "dpsmate", "skin", "0")
|
pfUI:UpdateConfig("thirdparty", "dpsmate", "skin", "0")
|
||||||
@@ -1131,25 +1161,6 @@ function pfUI:MigrateConfig()
|
|||||||
end
|
end
|
||||||
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)
|
-- migrating legacy buff/debuff naming (> 3.5.0)
|
||||||
if checkversion(3, 5, 0) then
|
if checkversion(3, 5, 0) then
|
||||||
local unitframes = { "player", "target", "focus", "group", "grouptarget", "grouppet", "raid", "ttarget", "pet", "ptarget", "fallback" }
|
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)
|
-- migrate buff indicators into seperate options (> 4.6.2)
|
||||||
if checkversion(4, 6, 2) and pfUI_config.unitframes.show_hots then
|
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 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 _, unitframe in pairs(unitframes) do
|
||||||
for _, option in pairs(options) do
|
for _, option in pairs(options) do
|
||||||
@@ -1402,11 +1413,6 @@ function pfUI:MigrateConfig()
|
|||||||
end
|
end
|
||||||
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
|
-- migrate combopoint size to separate settings
|
||||||
if checkversion(5, 4, 18) then
|
if checkversion(5, 4, 18) then
|
||||||
if pfUI_config.unitframes.combosize then
|
if pfUI_config.unitframes.combosize then
|
||||||
@@ -1416,6 +1422,80 @@ function pfUI:MigrateConfig()
|
|||||||
end
|
end
|
||||||
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
|
||||||
|
|
||||||
|
-- migrate the scattered cooldown settings into the cooldown table; keyed
|
||||||
|
-- on the old settings rather than the version, like the portrait style
|
||||||
|
local cooldown = pfUI_config.cooldown
|
||||||
|
local cd = pfUI_config.appearance.cd
|
||||||
|
if cd then
|
||||||
|
for _, entry in pairs({ "font", "font_size", "dynamicsize", "threshold", "milliseconds",
|
||||||
|
"lowcolor", "normalcolor", "minutecolor", "hourcolor", "daycolor" }) do
|
||||||
|
cooldown[entry] = cd[entry] or cooldown[entry]
|
||||||
|
end
|
||||||
|
|
||||||
|
cooldown.foreign.text = cd.foreign or cooldown.foreign.text
|
||||||
|
if cd.hideanim then
|
||||||
|
cooldown.foreign.animation = cd.hideanim == "1" and "0" or "1"
|
||||||
|
end
|
||||||
|
|
||||||
|
-- spellbook and character slots took the foreign sweep, and with the
|
||||||
|
-- Blizzard toggle off the foreign numbers too
|
||||||
|
cooldown.blizzard.animation = cooldown.foreign.animation
|
||||||
|
if cd.blizzard == "0" then
|
||||||
|
cooldown.blizzard.text = cooldown.foreign.text
|
||||||
|
end
|
||||||
|
|
||||||
|
-- pfUI drew its own numbers before; the native countdown shows them
|
||||||
|
-- only with this cvar on, which only the first-run setup sets
|
||||||
|
SetCVar("countdownForCooldowns", "1")
|
||||||
|
|
||||||
|
pfUI_config.appearance.cd = nil
|
||||||
|
end
|
||||||
|
|
||||||
|
local function move(config, old, kind, entry)
|
||||||
|
if config[old] then
|
||||||
|
cooldown[kind][entry] = config[old]
|
||||||
|
config[old] = nil
|
||||||
|
end
|
||||||
|
end
|
||||||
|
|
||||||
|
move(pfUI_config.bars, "cooldown_reverse", "actionbar", "reverse")
|
||||||
|
move(pfUI_config.appearance.bags, "cooldown_reverse", "bags", "reverse")
|
||||||
|
move(pfUI_config.buffs, "cooldown_anim", "buff", "animation")
|
||||||
|
move(pfUI_config.buffs, "cooldown_reverse", "buff", "reverse")
|
||||||
|
move(pfUI_config.totems, "cooldown_reverse", "totem", "reverse")
|
||||||
|
move(pfUI_config.nameplates, "debufftext", "nameplate", "text")
|
||||||
|
move(pfUI_config.nameplates, "debuffanim", "nameplate", "animation")
|
||||||
|
move(pfUI_config.nameplates, "debreverse", "nameplate", "reverse")
|
||||||
|
|
||||||
|
if pfUI_config.nameplates.debufftimers == "0" then
|
||||||
|
cooldown.nameplate.text, cooldown.nameplate.animation = "0", "0"
|
||||||
|
end
|
||||||
|
|
||||||
|
-- one setting now covers every unit frame: the target frame's auras and
|
||||||
|
-- the raid frames' indicators stand for the rest
|
||||||
|
move(pfUI_config.unitframes.target, "cooldown_text", "unitframe", "text")
|
||||||
|
move(pfUI_config.unitframes.target, "cooldown_anim", "unitframe", "animation")
|
||||||
|
move(pfUI_config.unitframes.target, "cooldown_reverse", "unitframe", "reverse")
|
||||||
|
move(pfUI_config.unitframes.raid, "indicator_time", "indicator", "text")
|
||||||
|
|
||||||
|
for _, unit in pairs(pfUI_config.unitframes) do
|
||||||
|
if type(unit) == "table" then
|
||||||
|
unit.cooldown_text, unit.cooldown_anim, unit.cooldown_reverse, unit.indicator_time = nil, nil, nil, nil
|
||||||
|
end
|
||||||
|
end
|
||||||
|
|
||||||
|
pfUI_config.nameplates.debufftimers = nil
|
||||||
|
pfUI_config.bars.cd_size = nil
|
||||||
|
|
||||||
-- Remove "Show only own debuffs" from unitframes and nameplates
|
-- Remove "Show only own debuffs" from unitframes and nameplates
|
||||||
-- (feature was removed; only Target Debuff Bar in buffwatch keeps it)
|
-- (feature was removed; only Target Debuff Bar in buffwatch keeps it)
|
||||||
if pfUI_config.nameplates then
|
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
|
||||||
+398
-754
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>
|
||||||
+443
-280
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"] = {}
|
||||||
|
|
||||||
|
|
||||||
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"] = {
|
pfUI_locale["deDE"]["customcast"] = {
|
||||||
["AIMEDSHOT"] = "Gezielter Schuss",
|
["AIMEDSHOT"] = "Gezielter Schuss",
|
||||||
["MULTISHOT"] = "Mehrfach-Schuss",
|
["MULTISHOT"] = "Mehrfach-Schuss",
|
||||||
@@ -30,4 +25,19 @@ pfUI_locale["deDE"]["resurrections"] = {
|
|||||||
|
|
||||||
-- custom entries not detected by DBC extractor
|
-- 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"] = {}
|
||||||
|
|
||||||
|
|
||||||
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"] = {
|
pfUI_locale["enUS"]["customcast"] = {
|
||||||
["AIMEDSHOT"] = "Aimed Shot",
|
["AIMEDSHOT"] = "Aimed Shot",
|
||||||
["MULTISHOT"] = "Multi-Shot",
|
["MULTISHOT"] = "Multi-Shot",
|
||||||
@@ -30,4 +25,19 @@ pfUI_locale["enUS"]["resurrections"] = {
|
|||||||
|
|
||||||
-- custom entries not detected by DBC extractor
|
-- 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"] = {}
|
||||||
|
|
||||||
|
|
||||||
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"] = {
|
pfUI_locale["esES"]["customcast"] = {
|
||||||
["AIMEDSHOT"] = "Disparo de puntería",
|
["AIMEDSHOT"] = "Disparo de puntería",
|
||||||
["MULTISHOT"] = "Multidisparo",
|
["MULTISHOT"] = "Multidisparo",
|
||||||
@@ -30,4 +25,19 @@ pfUI_locale["esES"]["resurrections"] = {
|
|||||||
|
|
||||||
-- custom entries not detected by DBC extractor
|
-- 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"] = {}
|
||||||
|
|
||||||
|
|
||||||
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"] = {
|
pfUI_locale["frFR"]["customcast"] = {
|
||||||
["AIMEDSHOT"] = "Visée",
|
["AIMEDSHOT"] = "Visée",
|
||||||
["MULTISHOT"] = "Flèches multiples",
|
["MULTISHOT"] = "Flèches multiples",
|
||||||
@@ -30,4 +25,19 @@ pfUI_locale["frFR"]["resurrections"] = {
|
|||||||
|
|
||||||
-- custom entries not detected by DBC extractor
|
-- 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"] = {}
|
||||||
|
|
||||||
|
|
||||||
pfUI_locale["koKR"]["healduration"] = {
|
|
||||||
["Rejuvenation"] = "회복의 지속시간이 3초만큼 증가합니다.",
|
|
||||||
["Renew"] = "소생의 지속시간이 3초만큼 증가합니다.",
|
|
||||||
}
|
|
||||||
|
|
||||||
pfUI_locale["koKR"]["customcast"] = {
|
pfUI_locale["koKR"]["customcast"] = {
|
||||||
["AIMEDSHOT"] = "조준 사격",
|
["AIMEDSHOT"] = "조준 사격",
|
||||||
["MULTISHOT"] = "일제 사격",
|
["MULTISHOT"] = "일제 사격",
|
||||||
@@ -30,4 +25,19 @@ pfUI_locale["koKR"]["resurrections"] = {
|
|||||||
|
|
||||||
-- custom entries not detected by DBC extractor
|
-- 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"] = {}
|
||||||
|
|
||||||
|
|
||||||
pfUI_locale["ruRU"]["healduration"] = {
|
|
||||||
["Rejuvenation"] = "Увеличивает время действия \"Омоложения\" на 3 сек.",
|
|
||||||
["Renew"] = "Продлевает действие \"Обновления\" на 3 сек.",
|
|
||||||
}
|
|
||||||
|
|
||||||
pfUI_locale["ruRU"]["customcast"] = {
|
pfUI_locale["ruRU"]["customcast"] = {
|
||||||
["AIMEDSHOT"] = "Прицельный выстрел",
|
["AIMEDSHOT"] = "Прицельный выстрел",
|
||||||
["MULTISHOT"] = "Залп",
|
["MULTISHOT"] = "Залп",
|
||||||
@@ -30,4 +25,19 @@ pfUI_locale["ruRU"]["resurrections"] = {
|
|||||||
|
|
||||||
-- custom entries not detected by DBC extractor
|
-- 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"] = {}
|
||||||
|
|
||||||
|
|
||||||
pfUI_locale["zhCN"]["healduration"] = {
|
|
||||||
["Rejuvenation"] = "使你的回春术的持续时间延长3秒。",
|
|
||||||
["Renew"] = "使你的恢复术的持续时间延长3秒。",
|
|
||||||
}
|
|
||||||
|
|
||||||
pfUI_locale["zhCN"]["customcast"] = {
|
pfUI_locale["zhCN"]["customcast"] = {
|
||||||
["AIMEDSHOT"] = "瞄准射击",
|
["AIMEDSHOT"] = "瞄准射击",
|
||||||
["MULTISHOT"] = "多重射击",
|
["MULTISHOT"] = "多重射击",
|
||||||
@@ -30,4 +25,19 @@ pfUI_locale["zhCN"]["resurrections"] = {
|
|||||||
|
|
||||||
-- custom entries not detected by DBC extractor
|
-- 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
+2
-2
@@ -724,10 +724,10 @@ local light = {
|
|||||||
["showicon"] = "1",
|
["showicon"] = "1",
|
||||||
},
|
},
|
||||||
},
|
},
|
||||||
["appearance"] = {
|
["cooldown"] = {
|
||||||
["cd"] = {
|
|
||||||
["font"] = "Interface\\AddOns\\pfUI\\fonts\\Myriad-Pro.ttf",
|
["font"] = "Interface\\AddOns\\pfUI\\fonts\\Myriad-Pro.ttf",
|
||||||
},
|
},
|
||||||
|
["appearance"] = {
|
||||||
["castbar"] = {
|
["castbar"] = {
|
||||||
["texture"] = "Interface\\AddOns\\pfUI\\img\\bar_gradient",
|
["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"] = {
|
pfUI_translation["deDE"] = {
|
||||||
|
["2D"] = nil,
|
||||||
|
["3D"] = nil,
|
||||||
["3D World Unit Font"] = nil,
|
["3D World Unit Font"] = nil,
|
||||||
["Abbreviate Numbers (4200 -> 4.2k)"] = nil,
|
["Abbreviate Numbers (4200 -> 4.2k)"] = nil,
|
||||||
["Abbreviate Unit Names"] = nil,
|
["Abbreviate Unit Names"] = nil,
|
||||||
@@ -6,6 +8,7 @@ pfUI_translation["deDE"] = {
|
|||||||
["Actionbar"] = nil,
|
["Actionbar"] = nil,
|
||||||
["Action Bar"] = nil,
|
["Action Bar"] = nil,
|
||||||
["Action Bar Border Size"] = nil,
|
["Action Bar Border Size"] = nil,
|
||||||
|
["Action Bars"] = nil,
|
||||||
["Active Addons"] = nil,
|
["Active Addons"] = nil,
|
||||||
["Add button to the frame"] = nil,
|
["Add button to the frame"] = nil,
|
||||||
["Added button"] = nil,
|
["Added button"] = nil,
|
||||||
@@ -27,11 +30,11 @@ pfUI_translation["deDE"] = {
|
|||||||
["Always Show Item Comparison"] = nil,
|
["Always Show Item Comparison"] = nil,
|
||||||
["Always Show On Target Units"] = nil,
|
["Always Show On Target Units"] = nil,
|
||||||
["Always Show On Units With Missing HP"] = nil,
|
["Always Show On Units With Missing HP"] = nil,
|
||||||
["Always Use 2D Portraits"] = nil,
|
|
||||||
["Ammo Counter"] = nil,
|
["Ammo Counter"] = nil,
|
||||||
["Anchor Bags Above Chat"] = 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 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,
|
["A new version is available"] = nil,
|
||||||
|
["Animate Health And Power Bars"] = nil,
|
||||||
["Appearance"] = nil,
|
["Appearance"] = nil,
|
||||||
["Ascending"] = nil,
|
["Ascending"] = nil,
|
||||||
["Author"] = nil,
|
["Author"] = nil,
|
||||||
@@ -78,7 +81,7 @@ pfUI_translation["deDE"] = {
|
|||||||
["Buffbar Width"] = nil,
|
["Buffbar Width"] = nil,
|
||||||
["Buff/Debuff Icons"] = nil,
|
["Buff/Debuff Icons"] = nil,
|
||||||
["Buff/Debuff Indicators"] = nil,
|
["Buff/Debuff Indicators"] = nil,
|
||||||
["Buff Font Size"] = nil,
|
["Buff Indicators"] = nil,
|
||||||
["Buff Limit"] = nil,
|
["Buff Limit"] = nil,
|
||||||
["Buff Position"] = nil,
|
["Buff Position"] = nil,
|
||||||
["Buffs"] = nil,
|
["Buffs"] = nil,
|
||||||
@@ -120,9 +123,13 @@ pfUI_translation["deDE"] = {
|
|||||||
["Chat Bubble Transparency"] = nil,
|
["Chat Bubble Transparency"] = nil,
|
||||||
["Chat Default Brackets"] = nil,
|
["Chat Default Brackets"] = nil,
|
||||||
["Class"] = nil,
|
["Class"] = nil,
|
||||||
|
["Class Icon (Round)"] = nil,
|
||||||
|
["Class Icon (Square)"] = nil,
|
||||||
["Clear Rolls"] = nil,
|
["Clear Rolls"] = nil,
|
||||||
["Click Action"] = nil,
|
["Click Action"] = nil,
|
||||||
["Click Casting"] = nil,
|
["Click Casting"] = nil,
|
||||||
|
["Click to undress"] = nil,
|
||||||
|
["Undress"] = nil,
|
||||||
["Clock"] = nil,
|
["Clock"] = nil,
|
||||||
["Close"] = nil,
|
["Close"] = nil,
|
||||||
["Collapse Empty Slots"] = nil,
|
["Collapse Empty Slots"] = nil,
|
||||||
@@ -145,21 +152,16 @@ pfUI_translation["deDE"] = {
|
|||||||
["Configuration"] = nil,
|
["Configuration"] = nil,
|
||||||
["Configure"] = nil,
|
["Configure"] = nil,
|
||||||
["Cooldown"] = nil,
|
["Cooldown"] = nil,
|
||||||
|
["Cooldown Color (5 Seconds Or Less)"] = nil,
|
||||||
["Cooldown Color (Days)"] = nil,
|
["Cooldown Color (Days)"] = nil,
|
||||||
["Cooldown Color (Hours)"] = nil,
|
["Cooldown Color (Hours)"] = nil,
|
||||||
["Cooldown Color (Less than 3 Sec)"] = nil,
|
|
||||||
["Cooldown Color (Minutes)"] = nil,
|
["Cooldown Color (Minutes)"] = nil,
|
||||||
["Cooldown Color (Seconds)"] = nil,
|
["Cooldown Color (Seconds)"] = nil,
|
||||||
["Cooldown / Durations"] = 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 Threshold"] = nil,
|
||||||
["Cooldown Text Time Threshold"] = nil,
|
|
||||||
["Coordinates Location"] = nil,
|
["Coordinates Location"] = nil,
|
||||||
["Coordinates On Minimap"] = nil,
|
["Coordinates On Minimap"] = nil,
|
||||||
|
["Copied to clipboard"] = nil,
|
||||||
["Count"] = nil,
|
["Count"] = nil,
|
||||||
["Create Profile"] = nil,
|
["Create Profile"] = nil,
|
||||||
["Ctrl-Click"] = nil,
|
["Ctrl-Click"] = nil,
|
||||||
@@ -276,12 +278,9 @@ pfUI_translation["deDE"] = {
|
|||||||
["Enable Custom Incoming Whispers Layout"] = nil,
|
["Enable Custom Incoming Whispers Layout"] = nil,
|
||||||
["Enable Debuff Display"] = nil,
|
["Enable Debuff Display"] = nil,
|
||||||
["Enable Debuffs"] = nil,
|
["Enable Debuffs"] = nil,
|
||||||
["Enable Durations On Blizzard Frames"] = nil,
|
|
||||||
["Enable Durations On Foreign Frames"] = nil,
|
|
||||||
["Enable Energy Ticks"] = nil,
|
["Enable Energy Ticks"] = nil,
|
||||||
["Enable Extended Guild Information"] = nil,
|
["Enable Extended Guild Information"] = nil,
|
||||||
["Enable Frame Shadow"] = nil,
|
["Enable Frame Shadow"] = nil,
|
||||||
["Enable Full-Text Search"] = nil,
|
|
||||||
["Enable Indicators"] = nil,
|
["Enable Indicators"] = nil,
|
||||||
["Enable Item Quality Color For Equipment Only"] = nil,
|
["Enable Item Quality Color For Equipment Only"] = nil,
|
||||||
["Enable \"Loot & Spam\" Chat Window"] = nil,
|
["Enable \"Loot & Spam\" Chat Window"] = nil,
|
||||||
@@ -336,6 +335,7 @@ pfUI_translation["deDE"] = {
|
|||||||
["Font"] = nil,
|
["Font"] = nil,
|
||||||
["Font Options"] = nil,
|
["Font Options"] = nil,
|
||||||
["Font Padding"] = nil,
|
["Font Padding"] = nil,
|
||||||
|
["Font Size"] = nil,
|
||||||
["Font Style"] = nil,
|
["Font Style"] = nil,
|
||||||
["Force Blizzard Borders (|cffffaaaaExperimental|r)"] = nil,
|
["Force Blizzard Borders (|cffffaaaaExperimental|r)"] = nil,
|
||||||
["fps"] = nil,
|
["fps"] = nil,
|
||||||
@@ -370,7 +370,6 @@ pfUI_translation["deDE"] = {
|
|||||||
["Health"] = nil,
|
["Health"] = nil,
|
||||||
["Health - Auto"] = nil,
|
["Health - Auto"] = nil,
|
||||||
["Healthbar"] = nil,
|
["Healthbar"] = nil,
|
||||||
["Healthbar Animation Speed"] = nil,
|
|
||||||
["Health Bar Color"] = nil,
|
["Health Bar Color"] = nil,
|
||||||
["Healthbar Embedded"] = nil,
|
["Healthbar Embedded"] = nil,
|
||||||
["Healthbar Height"] = nil,
|
["Healthbar Height"] = nil,
|
||||||
@@ -395,7 +394,6 @@ pfUI_translation["deDE"] = {
|
|||||||
["Hide Channel Names"] = nil,
|
["Hide Channel Names"] = nil,
|
||||||
["Hide Chat When Bags Are Opened"] = nil,
|
["Hide Chat When Bags Are Opened"] = nil,
|
||||||
["Hide Combat Log"] = nil,
|
["Hide Combat Log"] = nil,
|
||||||
["Hide Foreign Cooldown Animations"] = nil,
|
|
||||||
["Hide Group Frames While In Raid"] = nil,
|
["Hide Group Frames While In Raid"] = nil,
|
||||||
["Hide Healthbar On Critters"] = nil,
|
["Hide Healthbar On Critters"] = nil,
|
||||||
["Hide Healthbar On Enemy NPCs"] = nil,
|
["Hide Healthbar On Enemy NPCs"] = nil,
|
||||||
@@ -404,6 +402,7 @@ pfUI_translation["deDE"] = {
|
|||||||
["Hide Healthbar On Friendly Players"] = nil,
|
["Hide Healthbar On Friendly Players"] = nil,
|
||||||
["Hide Healthbar On Neutral NPCs"] = nil,
|
["Hide Healthbar On Neutral NPCs"] = nil,
|
||||||
["Hide Healthbar On Totems"] = nil,
|
["Hide Healthbar On Totems"] = nil,
|
||||||
|
["Hide Numbers On Spell Cooldowns Up To (Seconds)"] = nil,
|
||||||
["Hide Timeout"] = nil,
|
["Hide Timeout"] = nil,
|
||||||
["Hide When Entering Combat"] = nil,
|
["Hide When Entering Combat"] = nil,
|
||||||
["Highlight Equipped Items"] = nil,
|
["Highlight Equipped Items"] = nil,
|
||||||
@@ -432,7 +431,6 @@ pfUI_translation["deDE"] = {
|
|||||||
["Inherit Default Colors"] = nil,
|
["Inherit Default Colors"] = nil,
|
||||||
["Inputbox Height"] = nil,
|
["Inputbox Height"] = nil,
|
||||||
["Inputbox Width"] = nil,
|
["Inputbox Width"] = nil,
|
||||||
["Instant"] = nil,
|
|
||||||
["Integrations"] = nil,
|
["Integrations"] = nil,
|
||||||
["Invert Health Bar"] = nil,
|
["Invert Health Bar"] = nil,
|
||||||
["is not allowed in profile name"] = nil,
|
["is not allowed in profile name"] = nil,
|
||||||
@@ -477,6 +475,7 @@ pfUI_translation["deDE"] = {
|
|||||||
["Look & Feel"] = nil,
|
["Look & Feel"] = nil,
|
||||||
["Loot"] = nil,
|
["Loot"] = nil,
|
||||||
["Loot & Spam"] = nil,
|
["Loot & Spam"] = nil,
|
||||||
|
["Loss Of Control"] = nil,
|
||||||
["Macro Text Color"] = nil,
|
["Macro Text Color"] = nil,
|
||||||
["Macro Text Size"] = nil,
|
["Macro Text Size"] = nil,
|
||||||
["Main Actionbar"] = nil,
|
["Main Actionbar"] = nil,
|
||||||
@@ -516,6 +515,7 @@ pfUI_translation["deDE"] = {
|
|||||||
["Name | Health Missing"] = nil,
|
["Name | Health Missing"] = nil,
|
||||||
["Name (Linebreak) -Health Missing"] = nil,
|
["Name (Linebreak) -Health Missing"] = nil,
|
||||||
["Nameplate Border Size"] = nil,
|
["Nameplate Border Size"] = nil,
|
||||||
|
["Nameplate Debuffs"] = nil,
|
||||||
["Nameplates"] = nil,
|
["Nameplates"] = nil,
|
||||||
["Nameplate Width"] = nil,
|
["Nameplate Width"] = nil,
|
||||||
["Name (Short)"] = nil,
|
["Name (Short)"] = nil,
|
||||||
@@ -554,6 +554,7 @@ pfUI_translation["deDE"] = {
|
|||||||
["On State Change"] = nil,
|
["On State Change"] = nil,
|
||||||
["Options"] = nil,
|
["Options"] = nil,
|
||||||
["Orientation"] = nil,
|
["Orientation"] = nil,
|
||||||
|
["Other Addons"] = nil,
|
||||||
["Other Panel: Minimap"] = nil,
|
["Other Panel: Minimap"] = nil,
|
||||||
["Outline"] = nil,
|
["Outline"] = nil,
|
||||||
["Outlines"] = nil,
|
["Outlines"] = nil,
|
||||||
@@ -582,6 +583,7 @@ pfUI_translation["deDE"] = {
|
|||||||
["Pixel"] = nil,
|
["Pixel"] = nil,
|
||||||
["Player"] = nil,
|
["Player"] = nil,
|
||||||
["Player Buff Bar"] = nil,
|
["Player Buff Bar"] = nil,
|
||||||
|
["Player Buffs"] = nil,
|
||||||
["Player Castbar"] = nil,
|
["Player Castbar"] = nil,
|
||||||
["Player Debuff Bar"] = nil,
|
["Player Debuff Bar"] = nil,
|
||||||
["Player SP/Haste Display"] = nil,
|
["Player SP/Haste Display"] = nil,
|
||||||
@@ -592,6 +594,7 @@ pfUI_translation["deDE"] = {
|
|||||||
["Portrait Alpha"] = nil,
|
["Portrait Alpha"] = nil,
|
||||||
["Portrait Height"] = nil,
|
["Portrait Height"] = nil,
|
||||||
["Portrait Position"] = nil,
|
["Portrait Position"] = nil,
|
||||||
|
["Portrait Style"] = nil,
|
||||||
["Portrait Width"] = nil,
|
["Portrait Width"] = nil,
|
||||||
["Powerbar"] = nil,
|
["Powerbar"] = nil,
|
||||||
["Power Bar Anchor"] = nil,
|
["Power Bar Anchor"] = nil,
|
||||||
@@ -647,6 +650,7 @@ pfUI_translation["deDE"] = {
|
|||||||
["Resting"] = nil,
|
["Resting"] = nil,
|
||||||
["Reveal Unexplored Areas"] = nil,
|
["Reveal Unexplored Areas"] = nil,
|
||||||
["Switch to current zone"] = "Zur aktuellen Zone wechseln",
|
["Switch to current zone"] = "Zur aktuellen Zone wechseln",
|
||||||
|
["Reverse Sweep On"] = nil,
|
||||||
["Right"] = nil,
|
["Right"] = nil,
|
||||||
["Right Actionbar"] = nil,
|
["Right Actionbar"] = nil,
|
||||||
["Right Anchor"] = nil,
|
["Right Anchor"] = nil,
|
||||||
@@ -668,6 +672,7 @@ pfUI_translation["deDE"] = {
|
|||||||
["Save & Reload"] = nil,
|
["Save & Reload"] = nil,
|
||||||
["Scale"] = nil,
|
["Scale"] = nil,
|
||||||
["Scale Border On HiDPI Displays"] = nil,
|
["Scale Border On HiDPI Displays"] = nil,
|
||||||
|
["Scale Font Size With Icon"] = nil,
|
||||||
["Scaling"] = nil,
|
["Scaling"] = nil,
|
||||||
["Screen Edge Glow Intensity"] = nil,
|
["Screen Edge Glow Intensity"] = nil,
|
||||||
["Screen Resolution"] = nil,
|
["Screen Resolution"] = nil,
|
||||||
@@ -727,7 +732,7 @@ pfUI_translation["deDE"] = {
|
|||||||
["Show Loot Icon"] = nil,
|
["Show Loot Icon"] = nil,
|
||||||
["Show Macro Text"] = nil,
|
["Show Macro Text"] = nil,
|
||||||
["Show Meters By Default"] = nil,
|
["Show Meters By Default"] = nil,
|
||||||
["Show Milliseconds When Timer Runs Out"] = nil,
|
["Show Numbers On"] = nil,
|
||||||
["Show On Friendly Units"] = nil,
|
["Show On Friendly Units"] = nil,
|
||||||
["Show On Hostile Units"] = nil,
|
["Show On Hostile Units"] = nil,
|
||||||
["Show Procs Indicators"] = nil,
|
["Show Procs Indicators"] = nil,
|
||||||
@@ -745,10 +750,10 @@ pfUI_translation["deDE"] = {
|
|||||||
["Show Spell Icon"] = nil,
|
["Show Spell Icon"] = nil,
|
||||||
["Show Spell Name"] = nil,
|
["Show Spell Name"] = nil,
|
||||||
["Show Stacks"] = nil,
|
["Show Stacks"] = nil,
|
||||||
|
["Show Sweep On"] = nil,
|
||||||
|
["Show Tenths Below 5 Seconds"] = nil,
|
||||||
["Show Text"] = nil,
|
["Show Text"] = nil,
|
||||||
["Show Time Left"] = nil,
|
|
||||||
["Show Timer"] = nil,
|
["Show Timer"] = nil,
|
||||||
["Show Timer Animation"] = nil,
|
|
||||||
["Show Timer Text"] = nil,
|
["Show Timer Text"] = nil,
|
||||||
["Show Totems Indicators"] = nil,
|
["Show Totems Indicators"] = nil,
|
||||||
["Shrink & Return"] = nil,
|
["Shrink & Return"] = nil,
|
||||||
@@ -765,8 +770,10 @@ pfUI_translation["deDE"] = {
|
|||||||
["Soulshards"] = nil,
|
["Soulshards"] = nil,
|
||||||
["Spacing"] = nil,
|
["Spacing"] = nil,
|
||||||
["Special Recipient"] = nil,
|
["Special Recipient"] = nil,
|
||||||
|
["Spellbook And Character"] = nil,
|
||||||
["Spell Power Color"] = nil,
|
["Spell Power Color"] = nil,
|
||||||
["Square"] = nil,
|
["Square"] = nil,
|
||||||
|
["Stack Count Font Size"] = nil,
|
||||||
["Stance Bar 1"] = nil,
|
["Stance Bar 1"] = nil,
|
||||||
["Stance Bar 2"] = nil,
|
["Stance Bar 2"] = nil,
|
||||||
["Stance Bar 3"] = nil,
|
["Stance Bar 3"] = nil,
|
||||||
@@ -801,7 +808,6 @@ pfUI_translation["deDE"] = {
|
|||||||
["Thistle Tea"] = nil,
|
["Thistle Tea"] = nil,
|
||||||
["Threshold To Trust Health Estimation"] = nil,
|
["Threshold To Trust Health Estimation"] = nil,
|
||||||
["Time"] = nil,
|
["Time"] = nil,
|
||||||
["Timer"] = nil,
|
|
||||||
["Time Remaining"] = nil,
|
["Time Remaining"] = nil,
|
||||||
["Timer In Minutes"] = nil,
|
["Timer In Minutes"] = nil,
|
||||||
["Timestamp Brackets"] = nil,
|
["Timestamp Brackets"] = nil,
|
||||||
@@ -812,6 +818,7 @@ pfUI_translation["deDE"] = {
|
|||||||
["Tiny (PixelPerfect)"] = nil,
|
["Tiny (PixelPerfect)"] = nil,
|
||||||
["Toggle as Tank"] = nil,
|
["Toggle as Tank"] = nil,
|
||||||
["Tooltip"] = nil,
|
["Tooltip"] = nil,
|
||||||
|
["Tooltip Auras"] = nil,
|
||||||
["Tooltip Position"] = nil,
|
["Tooltip Position"] = nil,
|
||||||
["Tooltip Text Font"] = nil,
|
["Tooltip Text Font"] = nil,
|
||||||
["Tooltip Text Font Size"] = nil,
|
["Tooltip Text Font Size"] = nil,
|
||||||
@@ -823,11 +830,13 @@ pfUI_translation["deDE"] = {
|
|||||||
["Total Gold"] = nil,
|
["Total Gold"] = nil,
|
||||||
["Totem Direction"] = nil,
|
["Totem Direction"] = nil,
|
||||||
["Totem Icons"] = nil,
|
["Totem Icons"] = nil,
|
||||||
|
["Totems"] = nil,
|
||||||
["Tracked Reputation"] = nil,
|
["Tracked Reputation"] = nil,
|
||||||
["Tracking Icon Size"] = nil,
|
["Tracking Icon Size"] = nil,
|
||||||
["Trigger Actions On Key Down"] = nil,
|
["Trigger Actions On Key Down"] = nil,
|
||||||
["UI-Scale"] = nil,
|
["UI-Scale"] = nil,
|
||||||
["Unbuffed"] = nil,
|
["Unbuffed"] = nil,
|
||||||
|
["Unit Frame Auras"] = nil,
|
||||||
["Unit Frame Border Size"] = nil,
|
["Unit Frame Border Size"] = nil,
|
||||||
["Unit Frame Layout"] = nil,
|
["Unit Frame Layout"] = nil,
|
||||||
["Unit Frames"] = nil,
|
["Unit Frames"] = nil,
|
||||||
@@ -854,7 +863,6 @@ pfUI_translation["deDE"] = {
|
|||||||
["Use Custom Color Power Bar Background"] = nil,
|
["Use Custom Color Power Bar Background"] = nil,
|
||||||
["Use Custom Font Settings"] = nil,
|
["Use Custom Font Settings"] = nil,
|
||||||
["Use Custom Spell Power Color (unchecked = biggest school color)"] = 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 Item Rarity Color For Loot-Roll Timer"] = nil,
|
||||||
["Use Original Game Fonts"] = nil,
|
["Use Original Game Fonts"] = nil,
|
||||||
["Use Raid Frames To Display Group Members"] = nil,
|
["Use Raid Frames To Display Group Members"] = nil,
|
||||||
|
|||||||
Vendored
+28
-20
@@ -1,4 +1,6 @@
|
|||||||
pfUI_translation["enUS"] = {
|
pfUI_translation["enUS"] = {
|
||||||
|
["2D"] = nil,
|
||||||
|
["3D"] = nil,
|
||||||
["3D World Unit Font"] = nil,
|
["3D World Unit Font"] = nil,
|
||||||
["Abbreviate Numbers (4200 -> 4.2k)"] = nil,
|
["Abbreviate Numbers (4200 -> 4.2k)"] = nil,
|
||||||
["Abbreviate Unit Names"] = nil,
|
["Abbreviate Unit Names"] = nil,
|
||||||
@@ -6,6 +8,7 @@ pfUI_translation["enUS"] = {
|
|||||||
["Actionbar"] = nil,
|
["Actionbar"] = nil,
|
||||||
["Action Bar"] = nil,
|
["Action Bar"] = nil,
|
||||||
["Action Bar Border Size"] = nil,
|
["Action Bar Border Size"] = nil,
|
||||||
|
["Action Bars"] = nil,
|
||||||
["Active Addons"] = nil,
|
["Active Addons"] = nil,
|
||||||
["Add button to the frame"] = nil,
|
["Add button to the frame"] = nil,
|
||||||
["Added button"] = nil,
|
["Added button"] = nil,
|
||||||
@@ -28,11 +31,11 @@ pfUI_translation["enUS"] = {
|
|||||||
["Always Show Item Comparison"] = nil,
|
["Always Show Item Comparison"] = nil,
|
||||||
["Always Show On Target Units"] = nil,
|
["Always Show On Target Units"] = nil,
|
||||||
["Always Show On Units With Missing HP"] = nil,
|
["Always Show On Units With Missing HP"] = nil,
|
||||||
["Always Use 2D Portraits"] = nil,
|
|
||||||
["Ammo Counter"] = nil,
|
["Ammo Counter"] = nil,
|
||||||
["Anchor Bags Above Chat"] = 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 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,
|
["A new version is available"] = nil,
|
||||||
|
["Animate Health And Power Bars"] = nil,
|
||||||
["Appearance"] = nil,
|
["Appearance"] = nil,
|
||||||
["Ascending"] = nil,
|
["Ascending"] = nil,
|
||||||
["Author"] = nil,
|
["Author"] = nil,
|
||||||
@@ -81,7 +84,7 @@ pfUI_translation["enUS"] = {
|
|||||||
["Buffbar Width"] = nil,
|
["Buffbar Width"] = nil,
|
||||||
["Buff/Debuff Icons"] = nil,
|
["Buff/Debuff Icons"] = nil,
|
||||||
["Buff/Debuff Indicators"] = nil,
|
["Buff/Debuff Indicators"] = nil,
|
||||||
["Buff Font Size"] = nil,
|
["Buff Indicators"] = nil,
|
||||||
["Buff Limit"] = nil,
|
["Buff Limit"] = nil,
|
||||||
["Buff Position"] = nil,
|
["Buff Position"] = nil,
|
||||||
["Buffs"] = nil,
|
["Buffs"] = nil,
|
||||||
@@ -125,10 +128,14 @@ pfUI_translation["enUS"] = {
|
|||||||
["Chat Bubble Transparency"] = nil,
|
["Chat Bubble Transparency"] = nil,
|
||||||
["Chat Default Brackets"] = nil,
|
["Chat Default Brackets"] = nil,
|
||||||
["Class"] = nil,
|
["Class"] = nil,
|
||||||
|
["Class Icon (Round)"] = nil,
|
||||||
|
["Class Icon (Square)"] = nil,
|
||||||
["Clear"] = nil,
|
["Clear"] = nil,
|
||||||
["Clear Rolls"] = nil,
|
["Clear Rolls"] = nil,
|
||||||
["Click Action"] = nil,
|
["Click Action"] = nil,
|
||||||
["Click Casting"] = nil,
|
["Click Casting"] = nil,
|
||||||
|
["Click to undress"] = nil,
|
||||||
|
["Undress"] = nil,
|
||||||
["Clock"] = nil,
|
["Clock"] = nil,
|
||||||
["Close"] = nil,
|
["Close"] = nil,
|
||||||
["Collapse Empty Slots"] = nil,
|
["Collapse Empty Slots"] = nil,
|
||||||
@@ -151,21 +158,16 @@ pfUI_translation["enUS"] = {
|
|||||||
["Configuration"] = nil,
|
["Configuration"] = nil,
|
||||||
["Configure"] = nil,
|
["Configure"] = nil,
|
||||||
["Cooldown"] = nil,
|
["Cooldown"] = nil,
|
||||||
|
["Cooldown Color (5 Seconds Or Less)"] = nil,
|
||||||
["Cooldown Color (Days)"] = nil,
|
["Cooldown Color (Days)"] = nil,
|
||||||
["Cooldown Color (Hours)"] = nil,
|
["Cooldown Color (Hours)"] = nil,
|
||||||
["Cooldown Color (Less than 3 Sec)"] = nil,
|
|
||||||
["Cooldown Color (Minutes)"] = nil,
|
["Cooldown Color (Minutes)"] = nil,
|
||||||
["Cooldown Color (Seconds)"] = nil,
|
["Cooldown Color (Seconds)"] = nil,
|
||||||
["Cooldown / Durations"] = 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 Threshold"] = nil,
|
||||||
["Cooldown Text Time Threshold"] = nil,
|
|
||||||
["Coordinates Location"] = nil,
|
["Coordinates Location"] = nil,
|
||||||
["Coordinates On Minimap"] = nil,
|
["Coordinates On Minimap"] = nil,
|
||||||
|
["Copied to clipboard"] = nil,
|
||||||
["Count"] = nil,
|
["Count"] = nil,
|
||||||
["Create Profile"] = nil,
|
["Create Profile"] = nil,
|
||||||
["Ctrl-Click"] = nil,
|
["Ctrl-Click"] = nil,
|
||||||
@@ -285,12 +287,9 @@ pfUI_translation["enUS"] = {
|
|||||||
["Enable Custom Incoming Whispers Layout"] = nil,
|
["Enable Custom Incoming Whispers Layout"] = nil,
|
||||||
["Enable Debuff Display"] = nil,
|
["Enable Debuff Display"] = nil,
|
||||||
["Enable Debuffs"] = nil,
|
["Enable Debuffs"] = nil,
|
||||||
["Enable Durations On Blizzard Frames"] = nil,
|
|
||||||
["Enable Durations On Foreign Frames"] = nil,
|
|
||||||
["Enable Energy Ticks"] = nil,
|
["Enable Energy Ticks"] = nil,
|
||||||
["Enable Extended Guild Information"] = nil,
|
["Enable Extended Guild Information"] = nil,
|
||||||
["Enable Frame Shadow"] = nil,
|
["Enable Frame Shadow"] = nil,
|
||||||
["Enable Full-Text Search"] = nil,
|
|
||||||
["Enable Indicators"] = nil,
|
["Enable Indicators"] = nil,
|
||||||
["Enable Item Quality Color For Equipment Only"] = nil,
|
["Enable Item Quality Color For Equipment Only"] = nil,
|
||||||
["Enable \"Loot & Spam\" Chat Window"] = nil,
|
["Enable \"Loot & Spam\" Chat Window"] = nil,
|
||||||
@@ -346,6 +345,7 @@ pfUI_translation["enUS"] = {
|
|||||||
["Font"] = nil,
|
["Font"] = nil,
|
||||||
["Font Options"] = nil,
|
["Font Options"] = nil,
|
||||||
["Font Padding"] = nil,
|
["Font Padding"] = nil,
|
||||||
|
["Font Size"] = nil,
|
||||||
["Font Style"] = nil,
|
["Font Style"] = nil,
|
||||||
["Force Blizzard Borders (|cffffaaaaExperimental|r)"] = nil,
|
["Force Blizzard Borders (|cffffaaaaExperimental|r)"] = nil,
|
||||||
["fps"] = nil,
|
["fps"] = nil,
|
||||||
@@ -380,7 +380,6 @@ pfUI_translation["enUS"] = {
|
|||||||
["Health"] = nil,
|
["Health"] = nil,
|
||||||
["Health - Auto"] = nil,
|
["Health - Auto"] = nil,
|
||||||
["Healthbar"] = nil,
|
["Healthbar"] = nil,
|
||||||
["Healthbar Animation Speed"] = nil,
|
|
||||||
["Health Bar Color"] = nil,
|
["Health Bar Color"] = nil,
|
||||||
["Healthbar Embedded"] = nil,
|
["Healthbar Embedded"] = nil,
|
||||||
["Healthbar Height"] = nil,
|
["Healthbar Height"] = nil,
|
||||||
@@ -405,7 +404,6 @@ pfUI_translation["enUS"] = {
|
|||||||
["Hide Channel Names"] = nil,
|
["Hide Channel Names"] = nil,
|
||||||
["Hide Chat When Bags Are Opened"] = nil,
|
["Hide Chat When Bags Are Opened"] = nil,
|
||||||
["Hide Combat Log"] = nil,
|
["Hide Combat Log"] = nil,
|
||||||
["Hide Foreign Cooldown Animations"] = nil,
|
|
||||||
["Hide Group Frames While In Raid"] = nil,
|
["Hide Group Frames While In Raid"] = nil,
|
||||||
["Hide Healthbar On Critters"] = nil,
|
["Hide Healthbar On Critters"] = nil,
|
||||||
["Hide Healthbar On Enemy NPCs"] = nil,
|
["Hide Healthbar On Enemy NPCs"] = nil,
|
||||||
@@ -414,6 +412,7 @@ pfUI_translation["enUS"] = {
|
|||||||
["Hide Healthbar On Friendly Players"] = nil,
|
["Hide Healthbar On Friendly Players"] = nil,
|
||||||
["Hide Healthbar On Neutral NPCs"] = nil,
|
["Hide Healthbar On Neutral NPCs"] = nil,
|
||||||
["Hide Healthbar On Totems"] = nil,
|
["Hide Healthbar On Totems"] = nil,
|
||||||
|
["Hide Numbers On Spell Cooldowns Up To (Seconds)"] = nil,
|
||||||
["Hide Timeout"] = nil,
|
["Hide Timeout"] = nil,
|
||||||
["Hide When Entering Combat"] = nil,
|
["Hide When Entering Combat"] = nil,
|
||||||
["Highlight Equipped Items"] = nil,
|
["Highlight Equipped Items"] = nil,
|
||||||
@@ -443,7 +442,6 @@ pfUI_translation["enUS"] = {
|
|||||||
["Inherit Default Colors"] = nil,
|
["Inherit Default Colors"] = nil,
|
||||||
["Inputbox Height"] = nil,
|
["Inputbox Height"] = nil,
|
||||||
["Inputbox Width"] = nil,
|
["Inputbox Width"] = nil,
|
||||||
["Instant"] = nil,
|
|
||||||
["Integrations"] = nil,
|
["Integrations"] = nil,
|
||||||
["Invert Health Bar"] = nil,
|
["Invert Health Bar"] = nil,
|
||||||
["is not allowed in profile name"] = nil,
|
["is not allowed in profile name"] = nil,
|
||||||
@@ -489,6 +487,7 @@ pfUI_translation["enUS"] = {
|
|||||||
["Loot"] = nil,
|
["Loot"] = nil,
|
||||||
["Loot & Spam"] = nil,
|
["Loot & Spam"] = nil,
|
||||||
["Loot History"] = nil,
|
["Loot History"] = nil,
|
||||||
|
["Loss Of Control"] = nil,
|
||||||
["Macro Text Color"] = nil,
|
["Macro Text Color"] = nil,
|
||||||
["Macro Text Size"] = nil,
|
["Macro Text Size"] = nil,
|
||||||
["Main Actionbar"] = nil,
|
["Main Actionbar"] = nil,
|
||||||
@@ -529,6 +528,7 @@ pfUI_translation["enUS"] = {
|
|||||||
["Name | Health Missing"] = nil,
|
["Name | Health Missing"] = nil,
|
||||||
["Name (Linebreak) -Health Missing"] = nil,
|
["Name (Linebreak) -Health Missing"] = nil,
|
||||||
["Nameplate Border Size"] = nil,
|
["Nameplate Border Size"] = nil,
|
||||||
|
["Nameplate Debuffs"] = nil,
|
||||||
["Nameplates"] = nil,
|
["Nameplates"] = nil,
|
||||||
["Nameplate Width"] = nil,
|
["Nameplate Width"] = nil,
|
||||||
["Name (Short)"] = nil,
|
["Name (Short)"] = nil,
|
||||||
@@ -570,6 +570,7 @@ pfUI_translation["enUS"] = {
|
|||||||
["Optional Dependencies"] = nil,
|
["Optional Dependencies"] = nil,
|
||||||
["Options"] = nil,
|
["Options"] = nil,
|
||||||
["Orientation"] = nil,
|
["Orientation"] = nil,
|
||||||
|
["Other Addons"] = nil,
|
||||||
["Other Panel: Minimap"] = nil,
|
["Other Panel: Minimap"] = nil,
|
||||||
["Outline"] = nil,
|
["Outline"] = nil,
|
||||||
["Outlines"] = nil,
|
["Outlines"] = nil,
|
||||||
@@ -600,6 +601,7 @@ pfUI_translation["enUS"] = {
|
|||||||
["Pixel"] = nil,
|
["Pixel"] = nil,
|
||||||
["Player"] = nil,
|
["Player"] = nil,
|
||||||
["Player Buff Bar"] = nil,
|
["Player Buff Bar"] = nil,
|
||||||
|
["Player Buffs"] = nil,
|
||||||
["Player Castbar"] = nil,
|
["Player Castbar"] = nil,
|
||||||
["Player Debuff Bar"] = nil,
|
["Player Debuff Bar"] = nil,
|
||||||
["Player SP/Haste Display"] = nil,
|
["Player SP/Haste Display"] = nil,
|
||||||
@@ -610,6 +612,7 @@ pfUI_translation["enUS"] = {
|
|||||||
["Portrait Alpha"] = nil,
|
["Portrait Alpha"] = nil,
|
||||||
["Portrait Height"] = nil,
|
["Portrait Height"] = nil,
|
||||||
["Portrait Position"] = nil,
|
["Portrait Position"] = nil,
|
||||||
|
["Portrait Style"] = nil,
|
||||||
["Portrait Width"] = nil,
|
["Portrait Width"] = nil,
|
||||||
["Powerbar"] = nil,
|
["Powerbar"] = nil,
|
||||||
["Power Bar Anchor"] = nil,
|
["Power Bar Anchor"] = nil,
|
||||||
@@ -666,6 +669,7 @@ pfUI_translation["enUS"] = {
|
|||||||
["Reveal Unexplored Areas"] = nil,
|
["Reveal Unexplored Areas"] = nil,
|
||||||
["Switch to current zone"] = nil,
|
["Switch to current zone"] = nil,
|
||||||
["Retrieving item information..."] = nil,
|
["Retrieving item information..."] = nil,
|
||||||
|
["Reverse Sweep On"] = nil,
|
||||||
["Right"] = nil,
|
["Right"] = nil,
|
||||||
["Right Actionbar"] = nil,
|
["Right Actionbar"] = nil,
|
||||||
["Right Anchor"] = nil,
|
["Right Anchor"] = nil,
|
||||||
@@ -687,6 +691,7 @@ pfUI_translation["enUS"] = {
|
|||||||
["Save & Reload"] = nil,
|
["Save & Reload"] = nil,
|
||||||
["Scale"] = nil,
|
["Scale"] = nil,
|
||||||
["Scale Border On HiDPI Displays"] = nil,
|
["Scale Border On HiDPI Displays"] = nil,
|
||||||
|
["Scale Font Size With Icon"] = nil,
|
||||||
["Scaling"] = nil,
|
["Scaling"] = nil,
|
||||||
["Screen Edge Glow Intensity"] = nil,
|
["Screen Edge Glow Intensity"] = nil,
|
||||||
["Screen Resolution"] = nil,
|
["Screen Resolution"] = nil,
|
||||||
@@ -746,7 +751,7 @@ pfUI_translation["enUS"] = {
|
|||||||
["Show Loot Icon"] = nil,
|
["Show Loot Icon"] = nil,
|
||||||
["Show Macro Text"] = nil,
|
["Show Macro Text"] = nil,
|
||||||
["Show Meters By Default"] = nil,
|
["Show Meters By Default"] = nil,
|
||||||
["Show Milliseconds When Timer Runs Out"] = nil,
|
["Show Numbers On"] = nil,
|
||||||
["Show On Friendly Units"] = nil,
|
["Show On Friendly Units"] = nil,
|
||||||
["Show On Hostile Units"] = nil,
|
["Show On Hostile Units"] = nil,
|
||||||
["Show Procs Indicators"] = nil,
|
["Show Procs Indicators"] = nil,
|
||||||
@@ -764,10 +769,10 @@ pfUI_translation["enUS"] = {
|
|||||||
["Show Spell Icon"] = nil,
|
["Show Spell Icon"] = nil,
|
||||||
["Show Spell Name"] = nil,
|
["Show Spell Name"] = nil,
|
||||||
["Show Stacks"] = nil,
|
["Show Stacks"] = nil,
|
||||||
|
["Show Sweep On"] = nil,
|
||||||
|
["Show Tenths Below 5 Seconds"] = nil,
|
||||||
["Show Text"] = nil,
|
["Show Text"] = nil,
|
||||||
["Show Time Left"] = nil,
|
|
||||||
["Show Timer"] = nil,
|
["Show Timer"] = nil,
|
||||||
["Show Timer Animation"] = nil,
|
|
||||||
["Show Timer Text"] = nil,
|
["Show Timer Text"] = nil,
|
||||||
["Show Totems Indicators"] = nil,
|
["Show Totems Indicators"] = nil,
|
||||||
["Shrink & Return"] = nil,
|
["Shrink & Return"] = nil,
|
||||||
@@ -789,8 +794,10 @@ pfUI_translation["enUS"] = {
|
|||||||
["Soulshards"] = nil,
|
["Soulshards"] = nil,
|
||||||
["Spacing"] = nil,
|
["Spacing"] = nil,
|
||||||
["Special Recipient"] = nil,
|
["Special Recipient"] = nil,
|
||||||
|
["Spellbook And Character"] = nil,
|
||||||
["Spell Power Color"] = nil,
|
["Spell Power Color"] = nil,
|
||||||
["Square"] = nil,
|
["Square"] = nil,
|
||||||
|
["Stack Count Font Size"] = nil,
|
||||||
["Stance Bar 1"] = nil,
|
["Stance Bar 1"] = nil,
|
||||||
["Stance Bar 2"] = nil,
|
["Stance Bar 2"] = nil,
|
||||||
["Stance Bar 3"] = nil,
|
["Stance Bar 3"] = nil,
|
||||||
@@ -826,7 +833,6 @@ pfUI_translation["enUS"] = {
|
|||||||
["Thistle Tea"] = nil,
|
["Thistle Tea"] = nil,
|
||||||
["Threshold To Trust Health Estimation"] = nil,
|
["Threshold To Trust Health Estimation"] = nil,
|
||||||
["Time"] = nil,
|
["Time"] = nil,
|
||||||
["Timer"] = nil,
|
|
||||||
["Timer Alignment"] = nil,
|
["Timer Alignment"] = nil,
|
||||||
["Timer X Offset"] = nil,
|
["Timer X Offset"] = nil,
|
||||||
["Timer Y Offset"] = nil,
|
["Timer Y Offset"] = nil,
|
||||||
@@ -840,6 +846,7 @@ pfUI_translation["enUS"] = {
|
|||||||
["Tiny (PixelPerfect)"] = nil,
|
["Tiny (PixelPerfect)"] = nil,
|
||||||
["Toggle as Tank"] = nil,
|
["Toggle as Tank"] = nil,
|
||||||
["Tooltip"] = nil,
|
["Tooltip"] = nil,
|
||||||
|
["Tooltip Auras"] = nil,
|
||||||
["Tooltip Position"] = nil,
|
["Tooltip Position"] = nil,
|
||||||
["Tooltip Text Font"] = nil,
|
["Tooltip Text Font"] = nil,
|
||||||
["Tooltip Text Font Size"] = nil,
|
["Tooltip Text Font Size"] = nil,
|
||||||
@@ -851,11 +858,13 @@ pfUI_translation["enUS"] = {
|
|||||||
["Total Gold"] = nil,
|
["Total Gold"] = nil,
|
||||||
["Totem Direction"] = nil,
|
["Totem Direction"] = nil,
|
||||||
["Totem Icons"] = nil,
|
["Totem Icons"] = nil,
|
||||||
|
["Totems"] = nil,
|
||||||
["Tracked Reputation"] = nil,
|
["Tracked Reputation"] = nil,
|
||||||
["Tracking Icon Size"] = nil,
|
["Tracking Icon Size"] = nil,
|
||||||
["Trigger Actions On Key Down"] = nil,
|
["Trigger Actions On Key Down"] = nil,
|
||||||
["UI-Scale"] = nil,
|
["UI-Scale"] = nil,
|
||||||
["Unbuffed"] = nil,
|
["Unbuffed"] = nil,
|
||||||
|
["Unit Frame Auras"] = nil,
|
||||||
["Unit Frame Border Size"] = nil,
|
["Unit Frame Border Size"] = nil,
|
||||||
["Unit Frame Layout"] = nil,
|
["Unit Frame Layout"] = nil,
|
||||||
["Unit Frames"] = nil,
|
["Unit Frames"] = nil,
|
||||||
@@ -882,7 +891,6 @@ pfUI_translation["enUS"] = {
|
|||||||
["Use Custom Color Power Bar Background"] = nil,
|
["Use Custom Color Power Bar Background"] = nil,
|
||||||
["Use Custom Font Settings"] = nil,
|
["Use Custom Font Settings"] = nil,
|
||||||
["Use Custom Spell Power Color (unchecked = biggest school color)"] = 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 Item Rarity Color For Loot-Roll Timer"] = nil,
|
||||||
["Use Original Game Fonts"] = nil,
|
["Use Original Game Fonts"] = nil,
|
||||||
["Use Raid Frames To Display Group Members"] = nil,
|
["Use Raid Frames To Display Group Members"] = nil,
|
||||||
|
|||||||
Vendored
+28
-20
@@ -1,4 +1,6 @@
|
|||||||
pfUI_translation["esES"] = {
|
pfUI_translation["esES"] = {
|
||||||
|
["2D"] = nil,
|
||||||
|
["3D"] = nil,
|
||||||
["3D World Unit Font"] = nil,
|
["3D World Unit Font"] = nil,
|
||||||
["Abbreviate Numbers (4200 -> 4.2k)"] = "Abreviar números (4200 -> 4.2k)",
|
["Abbreviate Numbers (4200 -> 4.2k)"] = "Abreviar números (4200 -> 4.2k)",
|
||||||
["Abbreviate Unit Names"] = nil,
|
["Abbreviate Unit Names"] = nil,
|
||||||
@@ -6,6 +8,7 @@ pfUI_translation["esES"] = {
|
|||||||
["Actionbar"] = "Barra de acción",
|
["Actionbar"] = "Barra de acción",
|
||||||
["Action Bar"] = "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 Bar Border Size"] = "Tamaño del borde de la barra de acción",
|
||||||
|
["Action Bars"] = nil,
|
||||||
["Active Addons"] = "Accesorios activos",
|
["Active Addons"] = "Accesorios activos",
|
||||||
["Add button to the frame"] = "Añadir botón al marco",
|
["Add button to the frame"] = "Añadir botón al marco",
|
||||||
["Added button"] = "Botón añadido",
|
["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 Item Comparison"] = "Mostrar siempre la comparativa entre objetos",
|
||||||
["Always Show On Target Units"] = "Mostrar siempre en el objectivo",
|
["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 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",
|
["Ammo Counter"] = "Contador de munición",
|
||||||
["Anchor Bags Above Chat"] = 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."] = "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 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",
|
["A new version is available"] = "Una nueva versión está disponible",
|
||||||
|
["Animate Health And Power Bars"] = nil,
|
||||||
["Appearance"] = "Apariencia",
|
["Appearance"] = "Apariencia",
|
||||||
["Ascending"] = "Ascendiendo",
|
["Ascending"] = "Ascendiendo",
|
||||||
["Author"] = "Autor",
|
["Author"] = "Autor",
|
||||||
@@ -78,7 +81,7 @@ pfUI_translation["esES"] = {
|
|||||||
["Buffbar Width"] = "Ancho de la barra de beneficios",
|
["Buffbar Width"] = "Ancho de la barra de beneficios",
|
||||||
["Buff/Debuff Icons"] = "Iconos de los beneficios/perjuicios",
|
["Buff/Debuff Icons"] = "Iconos de los beneficios/perjuicios",
|
||||||
["Buff/Debuff Indicators"] = "Indicadores de 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 Limit"] = "Límite de beneficios",
|
||||||
["Buff Position"] = "Posición de los beneficios",
|
["Buff Position"] = "Posición de los beneficios",
|
||||||
["Buffs"] = "Beneficios",
|
["Buffs"] = "Beneficios",
|
||||||
@@ -120,9 +123,13 @@ pfUI_translation["esES"] = {
|
|||||||
["Chat Bubble Transparency"] = "Transparencia de los bocadillos de chat",
|
["Chat Bubble Transparency"] = "Transparencia de los bocadillos de chat",
|
||||||
["Chat Default Brackets"] = "Corchetes de chat predeterminados",
|
["Chat Default Brackets"] = "Corchetes de chat predeterminados",
|
||||||
["Class"] = "Clase",
|
["Class"] = "Clase",
|
||||||
|
["Class Icon (Round)"] = nil,
|
||||||
|
["Class Icon (Square)"] = nil,
|
||||||
["Clear Rolls"] = "Borrar los dados",
|
["Clear Rolls"] = "Borrar los dados",
|
||||||
["Click Action"] = "Acción al hacer clic",
|
["Click Action"] = "Acción al hacer clic",
|
||||||
["Click Casting"] = "Lanzamiento al hacer click",
|
["Click Casting"] = "Lanzamiento al hacer click",
|
||||||
|
["Click to undress"] = nil,
|
||||||
|
["Undress"] = nil,
|
||||||
["Clock"] = "Reloj",
|
["Clock"] = "Reloj",
|
||||||
["Close"] = "Cerrar",
|
["Close"] = "Cerrar",
|
||||||
["Collapse Empty Slots"] = nil,
|
["Collapse Empty Slots"] = nil,
|
||||||
@@ -145,21 +152,16 @@ pfUI_translation["esES"] = {
|
|||||||
["Configuration"] = "Configuración",
|
["Configuration"] = "Configuración",
|
||||||
["Configure"] = "Configurar",
|
["Configure"] = "Configurar",
|
||||||
["Cooldown"] = "Reutilización",
|
["Cooldown"] = "Reutilización",
|
||||||
|
["Cooldown Color (5 Seconds Or Less)"] = nil,
|
||||||
["Cooldown Color (Days)"] = "Color de reutilización (días)",
|
["Cooldown Color (Days)"] = "Color de reutilización (días)",
|
||||||
["Cooldown Color (Hours)"] = "Color de reutilización (horas)",
|
["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 (Minutes)"] = "Color de reutilización (minutos)",
|
||||||
["Cooldown Color (Seconds)"] = "Color de reutilización (segundos)",
|
["Cooldown Color (Seconds)"] = "Color de reutilización (segundos)",
|
||||||
["Cooldown / Durations"] = nil,
|
["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 Threshold"] = nil,
|
||||||
["Cooldown Text Time Threshold"] = "Umbral del texto del tiempo de reutilización",
|
|
||||||
["Coordinates Location"] = "Coordenadas de localización",
|
["Coordinates Location"] = "Coordenadas de localización",
|
||||||
["Coordinates On Minimap"] = "Coordenadas en el minimapa",
|
["Coordinates On Minimap"] = "Coordenadas en el minimapa",
|
||||||
|
["Copied to clipboard"] = nil,
|
||||||
["Count"] = "Recuento",
|
["Count"] = "Recuento",
|
||||||
["Create Profile"] = "Crear perfil",
|
["Create Profile"] = "Crear perfil",
|
||||||
["Ctrl-Click"] = "Ctrl-Clic",
|
["Ctrl-Click"] = "Ctrl-Clic",
|
||||||
@@ -276,12 +278,9 @@ pfUI_translation["esES"] = {
|
|||||||
["Enable Custom Incoming Whispers Layout"] = "Activar disposición de susurros entrantes personalizado",
|
["Enable Custom Incoming Whispers Layout"] = "Activar disposición de susurros entrantes personalizado",
|
||||||
["Enable Debuff Display"] = "Mostrar los perjuicios",
|
["Enable Debuff Display"] = "Mostrar los perjuicios",
|
||||||
["Enable Debuffs"] = "Activar 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 Energy Ticks"] = "Activar tics de energía",
|
||||||
["Enable Extended Guild Information"] = "Activar información de hermandad extendida",
|
["Enable Extended Guild Information"] = "Activar información de hermandad extendida",
|
||||||
["Enable Frame Shadow"] = "Activar sombra del marco",
|
["Enable Frame Shadow"] = "Activar sombra del marco",
|
||||||
["Enable Full-Text Search"] = nil,
|
|
||||||
["Enable Indicators"] = "Activar indicadores",
|
["Enable Indicators"] = "Activar indicadores",
|
||||||
["Enable Item Quality Color For Equipment Only"] = "Mostrar el color de calidad de objetos solo para equipo",
|
["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\"",
|
["Enable \"Loot & Spam\" Chat Window"] = "Activar ventana de chat \"Botín y spam\"",
|
||||||
@@ -336,6 +335,7 @@ pfUI_translation["esES"] = {
|
|||||||
["Font"] = "Fuente",
|
["Font"] = "Fuente",
|
||||||
["Font Options"] = "Opciones de fuente",
|
["Font Options"] = "Opciones de fuente",
|
||||||
["Font Padding"] = "Relleno de fuente",
|
["Font Padding"] = "Relleno de fuente",
|
||||||
|
["Font Size"] = nil,
|
||||||
["Font Style"] = "Estilo de la fuente",
|
["Font Style"] = "Estilo de la fuente",
|
||||||
["Force Blizzard Borders (|cffffaaaaExperimental|r)"] = nil,
|
["Force Blizzard Borders (|cffffaaaaExperimental|r)"] = nil,
|
||||||
["fps"] = "ips",
|
["fps"] = "ips",
|
||||||
@@ -370,7 +370,6 @@ pfUI_translation["esES"] = {
|
|||||||
["Health"] = "Salud",
|
["Health"] = "Salud",
|
||||||
["Health - Auto"] = "Salud - Auto",
|
["Health - Auto"] = "Salud - Auto",
|
||||||
["Healthbar"] = "Barra de salud",
|
["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",
|
["Health Bar Color"] = "Color de la barra de salud",
|
||||||
["Healthbar Embedded"] = "Barra de salud embebida",
|
["Healthbar Embedded"] = "Barra de salud embebida",
|
||||||
["Healthbar Height"] = "Altura de la barra de salud",
|
["Healthbar Height"] = "Altura de la barra de salud",
|
||||||
@@ -395,7 +394,6 @@ pfUI_translation["esES"] = {
|
|||||||
["Hide Channel Names"] = "Ocultar nombres de canales",
|
["Hide Channel Names"] = "Ocultar nombres de canales",
|
||||||
["Hide Chat When Bags Are Opened"] = "Ocultar el chat al abrir las bolsas",
|
["Hide Chat When Bags Are Opened"] = "Ocultar el chat al abrir las bolsas",
|
||||||
["Hide Combat Log"] = "Ocultar el registro del combate",
|
["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 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 Critters"] = "Esconder la barra de salud con las alimañas",
|
||||||
["Hide Healthbar On Enemy NPCs"] = "Esconder la barra de salud con los PNJs enemigos",
|
["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 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 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 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 Timeout"] = "Ocultar temporizador",
|
||||||
["Hide When Entering Combat"] = "Ocultar si entras combate",
|
["Hide When Entering Combat"] = "Ocultar si entras combate",
|
||||||
["Highlight Equipped Items"] = "Resaltar objetos equipados",
|
["Highlight Equipped Items"] = "Resaltar objetos equipados",
|
||||||
@@ -432,7 +431,6 @@ pfUI_translation["esES"] = {
|
|||||||
["Inherit Default Colors"] = "Color predeterminado",
|
["Inherit Default Colors"] = "Color predeterminado",
|
||||||
["Inputbox Height"] = "Altura de la barra de entrada",
|
["Inputbox Height"] = "Altura de la barra de entrada",
|
||||||
["Inputbox Width"] = "Ancho de la barra de entrada",
|
["Inputbox Width"] = "Ancho de la barra de entrada",
|
||||||
["Instant"] = "Instantáneo",
|
|
||||||
["Integrations"] = "Integraciones",
|
["Integrations"] = "Integraciones",
|
||||||
["Invert Health Bar"] = "Invertir la barra de salud",
|
["Invert Health Bar"] = "Invertir la barra de salud",
|
||||||
["is not allowed in profile name"] = "no se permite en el nombre de perfil",
|
["is not allowed in profile name"] = "no se permite en el nombre de perfil",
|
||||||
@@ -477,6 +475,7 @@ pfUI_translation["esES"] = {
|
|||||||
["Look & Feel"] = nil,
|
["Look & Feel"] = nil,
|
||||||
["Loot"] = "Botín",
|
["Loot"] = "Botín",
|
||||||
["Loot & Spam"] = "Botín y spam",
|
["Loot & Spam"] = "Botín y spam",
|
||||||
|
["Loss Of Control"] = nil,
|
||||||
["Macro Text Color"] = "Color de texto de macros",
|
["Macro Text Color"] = "Color de texto de macros",
|
||||||
["Macro Text Size"] = "Tamaño de texto de macros",
|
["Macro Text Size"] = "Tamaño de texto de macros",
|
||||||
["Main Actionbar"] = "Barra de acción principal",
|
["Main Actionbar"] = "Barra de acción principal",
|
||||||
@@ -516,6 +515,7 @@ pfUI_translation["esES"] = {
|
|||||||
["Name | Health Missing"] = "Nombre | Falta de salud",
|
["Name | Health Missing"] = "Nombre | Falta de salud",
|
||||||
["Name (Linebreak) -Health Missing"] = nil,
|
["Name (Linebreak) -Health Missing"] = nil,
|
||||||
["Nameplate Border Size"] = "Tamaño del borde de las placas de nombre",
|
["Nameplate Border Size"] = "Tamaño del borde de las placas de nombre",
|
||||||
|
["Nameplate Debuffs"] = nil,
|
||||||
["Nameplates"] = "Placas identificativas",
|
["Nameplates"] = "Placas identificativas",
|
||||||
["Nameplate Width"] = "Ancho de las placas identificativas",
|
["Nameplate Width"] = "Ancho de las placas identificativas",
|
||||||
["Name (Short)"] = "Nombre (corto)",
|
["Name (Short)"] = "Nombre (corto)",
|
||||||
@@ -554,6 +554,7 @@ pfUI_translation["esES"] = {
|
|||||||
["On State Change"] = "En un cambio de estado",
|
["On State Change"] = "En un cambio de estado",
|
||||||
["Options"] = "Opciones",
|
["Options"] = "Opciones",
|
||||||
["Orientation"] = "Orientación",
|
["Orientation"] = "Orientación",
|
||||||
|
["Other Addons"] = nil,
|
||||||
["Other Panel: Minimap"] = "Otro panel: minimapa",
|
["Other Panel: Minimap"] = "Otro panel: minimapa",
|
||||||
["Outline"] = "Contorno",
|
["Outline"] = "Contorno",
|
||||||
["Outlines"] = "Contornos",
|
["Outlines"] = "Contornos",
|
||||||
@@ -582,6 +583,7 @@ pfUI_translation["esES"] = {
|
|||||||
["Pixel"] = "Píxel",
|
["Pixel"] = "Píxel",
|
||||||
["Player"] = "Jugador",
|
["Player"] = "Jugador",
|
||||||
["Player Buff Bar"] = "Barra de beneficios del jugador",
|
["Player Buff Bar"] = "Barra de beneficios del jugador",
|
||||||
|
["Player Buffs"] = nil,
|
||||||
["Player Castbar"] = "Barra de lanzamiento del jugador",
|
["Player Castbar"] = "Barra de lanzamiento del jugador",
|
||||||
["Player Debuff Bar"] = "Barra de perjuicios del jugador",
|
["Player Debuff Bar"] = "Barra de perjuicios del jugador",
|
||||||
["Player SP/Haste Display"] = nil,
|
["Player SP/Haste Display"] = nil,
|
||||||
@@ -592,6 +594,7 @@ pfUI_translation["esES"] = {
|
|||||||
["Portrait Alpha"] = "Transparencia del retrato",
|
["Portrait Alpha"] = "Transparencia del retrato",
|
||||||
["Portrait Height"] = "Altura Retrato",
|
["Portrait Height"] = "Altura Retrato",
|
||||||
["Portrait Position"] = "Posición del retrato",
|
["Portrait Position"] = "Posición del retrato",
|
||||||
|
["Portrait Style"] = nil,
|
||||||
["Portrait Width"] = "Ancho Retrato",
|
["Portrait Width"] = "Ancho Retrato",
|
||||||
["Powerbar"] = "Barra de poder",
|
["Powerbar"] = "Barra de poder",
|
||||||
["Power Bar Anchor"] = "Ancla de la barra de poder",
|
["Power Bar Anchor"] = "Ancla de la barra de poder",
|
||||||
@@ -647,6 +650,7 @@ pfUI_translation["esES"] = {
|
|||||||
["Resting"] = "Descansando",
|
["Resting"] = "Descansando",
|
||||||
["Reveal Unexplored Areas"] = "Mostrar áreas no exploradas",
|
["Reveal Unexplored Areas"] = "Mostrar áreas no exploradas",
|
||||||
["Switch to current zone"] = "Ir a la zona actual",
|
["Switch to current zone"] = "Ir a la zona actual",
|
||||||
|
["Reverse Sweep On"] = nil,
|
||||||
["Right"] = "Derecho",
|
["Right"] = "Derecho",
|
||||||
["Right Actionbar"] = "Barra de acción derecha",
|
["Right Actionbar"] = "Barra de acción derecha",
|
||||||
["Right Anchor"] = nil,
|
["Right Anchor"] = nil,
|
||||||
@@ -668,6 +672,7 @@ pfUI_translation["esES"] = {
|
|||||||
["Save & Reload"] = nil,
|
["Save & Reload"] = nil,
|
||||||
["Scale"] = "Escala",
|
["Scale"] = "Escala",
|
||||||
["Scale Border On HiDPI Displays"] = "Escalar los bordes en las pantallas con DPI alto",
|
["Scale Border On HiDPI Displays"] = "Escalar los bordes en las pantallas con DPI alto",
|
||||||
|
["Scale Font Size With Icon"] = nil,
|
||||||
["Scaling"] = "Escalada",
|
["Scaling"] = "Escalada",
|
||||||
["Screen Edge Glow Intensity"] = "Intensidad de brillo en los bordes de la pantalla",
|
["Screen Edge Glow Intensity"] = "Intensidad de brillo en los bordes de la pantalla",
|
||||||
["Screen Resolution"] = "Resolución de pantalla",
|
["Screen Resolution"] = "Resolución de pantalla",
|
||||||
@@ -727,7 +732,7 @@ pfUI_translation["esES"] = {
|
|||||||
["Show Loot Icon"] = "Mostrar icono de botín",
|
["Show Loot Icon"] = "Mostrar icono de botín",
|
||||||
["Show Macro Text"] = "Mostrar texto de macro",
|
["Show Macro Text"] = "Mostrar texto de macro",
|
||||||
["Show Meters By Default"] = "Mostrar medidores por defecto",
|
["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 Friendly Units"] = "Mostrar en unidades amistosas",
|
||||||
["Show On Hostile Units"] = "Mostrar en unidades enemigas",
|
["Show On Hostile Units"] = "Mostrar en unidades enemigas",
|
||||||
["Show Procs Indicators"] = "Mostrar indicadores de beneficios temporales activados",
|
["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 Icon"] = "Mostrar icono de hechizo",
|
||||||
["Show Spell Name"] = nil,
|
["Show Spell Name"] = nil,
|
||||||
["Show Stacks"] = "Mostrar pilas",
|
["Show Stacks"] = "Mostrar pilas",
|
||||||
|
["Show Sweep On"] = nil,
|
||||||
|
["Show Tenths Below 5 Seconds"] = nil,
|
||||||
["Show Text"] = nil,
|
["Show Text"] = nil,
|
||||||
["Show Time Left"] = "Mostrar el tiempo restante",
|
|
||||||
["Show Timer"] = nil,
|
["Show Timer"] = nil,
|
||||||
["Show Timer Animation"] = "Mostrar la animación del temporizador",
|
|
||||||
["Show Timer Text"] = "Mostrar el texto del temporizador",
|
["Show Timer Text"] = "Mostrar el texto del temporizador",
|
||||||
["Show Totems Indicators"] = "Mostrar los indicadores de tótems",
|
["Show Totems Indicators"] = "Mostrar los indicadores de tótems",
|
||||||
["Shrink & Return"] = "Encogerse y volver",
|
["Shrink & Return"] = "Encogerse y volver",
|
||||||
@@ -765,8 +770,10 @@ pfUI_translation["esES"] = {
|
|||||||
["Soulshards"] = "Fragmentos de alma",
|
["Soulshards"] = "Fragmentos de alma",
|
||||||
["Spacing"] = "Espaciado",
|
["Spacing"] = "Espaciado",
|
||||||
["Special Recipient"] = "Destinatario especial",
|
["Special Recipient"] = "Destinatario especial",
|
||||||
|
["Spellbook And Character"] = nil,
|
||||||
["Spell Power Color"] = nil,
|
["Spell Power Color"] = nil,
|
||||||
["Square"] = "Cuadrado",
|
["Square"] = "Cuadrado",
|
||||||
|
["Stack Count Font Size"] = nil,
|
||||||
["Stance Bar 1"] = "Barra de actitud 1",
|
["Stance Bar 1"] = "Barra de actitud 1",
|
||||||
["Stance Bar 2"] = "Barra de actitud 2",
|
["Stance Bar 2"] = "Barra de actitud 2",
|
||||||
["Stance Bar 3"] = "Barra de actitud 3",
|
["Stance Bar 3"] = "Barra de actitud 3",
|
||||||
@@ -801,7 +808,6 @@ pfUI_translation["esES"] = {
|
|||||||
["Thistle Tea"] = nil,
|
["Thistle Tea"] = nil,
|
||||||
["Threshold To Trust Health Estimation"] = "Umbral para confiar en la estimación de salud",
|
["Threshold To Trust Health Estimation"] = "Umbral para confiar en la estimación de salud",
|
||||||
["Time"] = "Tiempo",
|
["Time"] = "Tiempo",
|
||||||
["Timer"] = "Temporizador",
|
|
||||||
["Time Remaining"] = "Tiempo restante",
|
["Time Remaining"] = "Tiempo restante",
|
||||||
["Timer In Minutes"] = "Temporizador en minutos",
|
["Timer In Minutes"] = "Temporizador en minutos",
|
||||||
["Timestamp Brackets"] = "Corchetes de marca de tiempo",
|
["Timestamp Brackets"] = "Corchetes de marca de tiempo",
|
||||||
@@ -812,6 +818,7 @@ pfUI_translation["esES"] = {
|
|||||||
["Tiny (PixelPerfect)"] = "Minúsculo (píxel perfecta)",
|
["Tiny (PixelPerfect)"] = "Minúsculo (píxel perfecta)",
|
||||||
["Toggle as Tank"] = "Alternar si eres el tanque",
|
["Toggle as Tank"] = "Alternar si eres el tanque",
|
||||||
["Tooltip"] = "Descripción emergente",
|
["Tooltip"] = "Descripción emergente",
|
||||||
|
["Tooltip Auras"] = nil,
|
||||||
["Tooltip Position"] = "Posición de la descripción emergente",
|
["Tooltip Position"] = "Posición de la descripción emergente",
|
||||||
["Tooltip Text Font"] = nil,
|
["Tooltip Text Font"] = nil,
|
||||||
["Tooltip Text Font Size"] = nil,
|
["Tooltip Text Font Size"] = nil,
|
||||||
@@ -823,11 +830,13 @@ pfUI_translation["esES"] = {
|
|||||||
["Total Gold"] = "Oro Total",
|
["Total Gold"] = "Oro Total",
|
||||||
["Totem Direction"] = "Dirección del tótem",
|
["Totem Direction"] = "Dirección del tótem",
|
||||||
["Totem Icons"] = "Iconos de los tótems",
|
["Totem Icons"] = "Iconos de los tótems",
|
||||||
|
["Totems"] = nil,
|
||||||
["Tracked Reputation"] = "Reputación rastreada",
|
["Tracked Reputation"] = "Reputación rastreada",
|
||||||
["Tracking Icon Size"] = "Tamaño del icono de rastreo",
|
["Tracking Icon Size"] = "Tamaño del icono de rastreo",
|
||||||
["Trigger Actions On Key Down"] = "Disparar acciones por presionar la tecla abajo",
|
["Trigger Actions On Key Down"] = "Disparar acciones por presionar la tecla abajo",
|
||||||
["UI-Scale"] = "Escala de IU",
|
["UI-Scale"] = "Escala de IU",
|
||||||
["Unbuffed"] = "Sin beneficios",
|
["Unbuffed"] = "Sin beneficios",
|
||||||
|
["Unit Frame Auras"] = nil,
|
||||||
["Unit Frame Border Size"] = "Tamaño del borde del marco de unidad",
|
["Unit Frame Border Size"] = "Tamaño del borde del marco de unidad",
|
||||||
["Unit Frame Layout"] = "Disposición del Marco de unidad",
|
["Unit Frame Layout"] = "Disposición del Marco de unidad",
|
||||||
["Unit Frames"] = "Marcos 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 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 Font Settings"] = "Usar las opciones de fuente personalizada",
|
||||||
["Use Custom Spell Power Color (unchecked = biggest school color)"] = nil,
|
["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 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 Original Game Fonts"] = nil,
|
||||||
["Use Raid Frames To Display Group Members"] = "Usar marcos de la banda para mostrar miembros del grupo",
|
["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"] = {
|
pfUI_translation["frFR"] = {
|
||||||
|
["2D"] = nil,
|
||||||
|
["3D"] = nil,
|
||||||
["3D World Unit Font"] = nil,
|
["3D World Unit Font"] = nil,
|
||||||
["Abbreviate Numbers (4200 -> 4.2k)"] = "Nombre abrégés (4200 -> 4.2k)",
|
["Abbreviate Numbers (4200 -> 4.2k)"] = "Nombre abrégés (4200 -> 4.2k)",
|
||||||
["Abbreviate Unit Names"] = nil,
|
["Abbreviate Unit Names"] = nil,
|
||||||
@@ -6,6 +8,7 @@ pfUI_translation["frFR"] = {
|
|||||||
["Actionbar"] = "Barre d'action",
|
["Actionbar"] = "Barre d'action",
|
||||||
["Action Bar"] = "Barre d'action",
|
["Action Bar"] = "Barre d'action",
|
||||||
["Action Bar Border Size"] = "Taille de la bordure de la barre d'action",
|
["Action Bar Border Size"] = "Taille de la bordure de la barre d'action",
|
||||||
|
["Action Bars"] = nil,
|
||||||
["Active Addons"] = "Addons Actif",
|
["Active Addons"] = "Addons Actif",
|
||||||
["Add button to the frame"] = "Ajoute un bouton au cadre",
|
["Add button to the frame"] = "Ajoute un bouton au cadre",
|
||||||
["Added button"] = "Bouton ajouté",
|
["Added button"] = "Bouton ajouté",
|
||||||
@@ -27,11 +30,11 @@ pfUI_translation["frFR"] = {
|
|||||||
["Always Show Item Comparison"] = "Toujours afficher la comparaison d'objet",
|
["Always Show Item Comparison"] = "Toujours afficher la comparaison d'objet",
|
||||||
["Always Show On Target Units"] = "Toujours montrer sur la cible",
|
["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 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",
|
["Ammo Counter"] = "Compteur de munitions",
|
||||||
["Anchor Bags Above Chat"] = 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."] = "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 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",
|
["A new version is available"] = "Une nouvelle version est disponible",
|
||||||
|
["Animate Health And Power Bars"] = nil,
|
||||||
["Appearance"] = "Apparence",
|
["Appearance"] = "Apparence",
|
||||||
["Ascending"] = "Ascendante",
|
["Ascending"] = "Ascendante",
|
||||||
["Author"] = "Auteur",
|
["Author"] = "Auteur",
|
||||||
@@ -78,7 +81,7 @@ pfUI_translation["frFR"] = {
|
|||||||
["Buffbar Width"] = "Largeur de la barre des Améliorations",
|
["Buffbar Width"] = "Largeur de la barre des Améliorations",
|
||||||
["Buff/Debuff Icons"] = "Icones de Améliorations/Affaiblissements",
|
["Buff/Debuff Icons"] = "Icones de Améliorations/Affaiblissements",
|
||||||
["Buff/Debuff Indicators"] = nil,
|
["Buff/Debuff Indicators"] = nil,
|
||||||
["Buff Font Size"] = "Taille de la police des Améliorations",
|
["Buff Indicators"] = nil,
|
||||||
["Buff Limit"] = "Limite des améliorations",
|
["Buff Limit"] = "Limite des améliorations",
|
||||||
["Buff Position"] = "Position des améliorations",
|
["Buff Position"] = "Position des améliorations",
|
||||||
["Buffs"] = "Buffs",
|
["Buffs"] = "Buffs",
|
||||||
@@ -120,9 +123,13 @@ pfUI_translation["frFR"] = {
|
|||||||
["Chat Bubble Transparency"] = "Transparence de la bulle de chat",
|
["Chat Bubble Transparency"] = "Transparence de la bulle de chat",
|
||||||
["Chat Default Brackets"] = "Supports par défaut du chat",
|
["Chat Default Brackets"] = "Supports par défaut du chat",
|
||||||
["Class"] = "Classe",
|
["Class"] = "Classe",
|
||||||
|
["Class Icon (Round)"] = nil,
|
||||||
|
["Class Icon (Square)"] = nil,
|
||||||
["Clear Rolls"] = "Clear les roulements",
|
["Clear Rolls"] = "Clear les roulements",
|
||||||
["Click Action"] = "Action au clic",
|
["Click Action"] = "Action au clic",
|
||||||
["Click Casting"] = "Clique sur le lancement de sort",
|
["Click Casting"] = "Clique sur le lancement de sort",
|
||||||
|
["Click to undress"] = nil,
|
||||||
|
["Undress"] = nil,
|
||||||
["Clock"] = "Horloge",
|
["Clock"] = "Horloge",
|
||||||
["Close"] = "Fermer",
|
["Close"] = "Fermer",
|
||||||
["Collapse Empty Slots"] = nil,
|
["Collapse Empty Slots"] = nil,
|
||||||
@@ -145,21 +152,16 @@ pfUI_translation["frFR"] = {
|
|||||||
["Configuration"] = "Configuration",
|
["Configuration"] = "Configuration",
|
||||||
["Configure"] = "Configurer",
|
["Configure"] = "Configurer",
|
||||||
["Cooldown"] = "Temps de recharge",
|
["Cooldown"] = "Temps de recharge",
|
||||||
|
["Cooldown Color (5 Seconds Or Less)"] = nil,
|
||||||
["Cooldown Color (Days)"] = "Couleur des temps de recharge (Jours)",
|
["Cooldown Color (Days)"] = "Couleur des temps de recharge (Jours)",
|
||||||
["Cooldown Color (Hours)"] = "Couleur des temps de recharge (Heures)",
|
["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 (Minutes)"] = "Couleur des temps de recharge (Minutes)",
|
||||||
["Cooldown Color (Seconds)"] = "Couleur des temps de recharge (Secondes)",
|
["Cooldown Color (Seconds)"] = "Couleur des temps de recharge (Secondes)",
|
||||||
["Cooldown / Durations"] = nil,
|
["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 Threshold"] = nil,
|
||||||
["Cooldown Text Time Threshold"] = "Seuil du texte des temps de recharge",
|
|
||||||
["Coordinates Location"] = "Coordonnées Emplacement",
|
["Coordinates Location"] = "Coordonnées Emplacement",
|
||||||
["Coordinates On Minimap"] = "Coordonnées sur la mini-carte",
|
["Coordinates On Minimap"] = "Coordonnées sur la mini-carte",
|
||||||
|
["Copied to clipboard"] = nil,
|
||||||
["Count"] = "Compter",
|
["Count"] = "Compter",
|
||||||
["Create Profile"] = "Créer un profil",
|
["Create Profile"] = "Créer un profil",
|
||||||
["Ctrl-Click"] = "Ctrl-Clique",
|
["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 Custom Incoming Whispers Layout"] = "Activer la personnalisation de la fenêtre des Chuchotements entrants",
|
||||||
["Enable Debuff Display"] = "Activer l'affichage des Affaiblissements",
|
["Enable Debuff Display"] = "Activer l'affichage des Affaiblissements",
|
||||||
["Enable Debuffs"] = "Activer les 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 Energy Ticks"] = "Activer la barre de rechargement d'énergie",
|
||||||
["Enable Extended Guild Information"] = "Activer les informations de guilde étendues",
|
["Enable Extended Guild Information"] = "Activer les informations de guilde étendues",
|
||||||
["Enable Frame Shadow"] = "Activer l'ombre des cadres",
|
["Enable Frame Shadow"] = "Activer l'ombre des cadres",
|
||||||
["Enable Full-Text Search"] = nil,
|
|
||||||
["Enable Indicators"] = "Activer les indicateurs",
|
["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 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\"",
|
["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"] = "Police de caractère",
|
||||||
["Font Options"] = "Options de la Police",
|
["Font Options"] = "Options de la Police",
|
||||||
["Font Padding"] = "Remplissage de la police",
|
["Font Padding"] = "Remplissage de la police",
|
||||||
|
["Font Size"] = nil,
|
||||||
["Font Style"] = "Style de la police",
|
["Font Style"] = "Style de la police",
|
||||||
["Force Blizzard Borders (|cffffaaaaExperimental|r)"] = nil,
|
["Force Blizzard Borders (|cffffaaaaExperimental|r)"] = nil,
|
||||||
["fps"] = "fps",
|
["fps"] = "fps",
|
||||||
@@ -370,7 +370,6 @@ pfUI_translation["frFR"] = {
|
|||||||
["Health"] = "Point de vie",
|
["Health"] = "Point de vie",
|
||||||
["Health - Auto"] = "Points de vie - Automatique",
|
["Health - Auto"] = "Points de vie - Automatique",
|
||||||
["Healthbar"] = "Barre des points de vie",
|
["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",
|
["Health Bar Color"] = "Couleur de la barre des points de vie",
|
||||||
["Healthbar Embedded"] = "Barres de vies intégrées",
|
["Healthbar Embedded"] = "Barres de vies intégrées",
|
||||||
["Healthbar Height"] = "Hauteur des barres de vies",
|
["Healthbar Height"] = "Hauteur des barres de vies",
|
||||||
@@ -395,7 +394,6 @@ pfUI_translation["frFR"] = {
|
|||||||
["Hide Channel Names"] = "Masquer le nom des canaux",
|
["Hide Channel Names"] = "Masquer le nom des canaux",
|
||||||
["Hide Chat When Bags Are Opened"] = "Masquer le chat quand les sacs sont ouverts",
|
["Hide Chat When Bags Are Opened"] = "Masquer le chat quand les sacs sont ouverts",
|
||||||
["Hide Combat Log"] = "Masquer le journal de combat",
|
["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 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 Critters"] = "Masquer la barre de vie des bêtes",
|
||||||
["Hide Healthbar On Enemy NPCs"] = "Masquer la barre de vie des PNJs ennemis",
|
["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 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 Neutral NPCs"] = "Masquer la barre de vie des PNJs neutre",
|
||||||
["Hide Healthbar On Totems"] = "Masquer la barre de vie des totems",
|
["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 Timeout"] = "Masquer le délai d'expiration",
|
||||||
["Hide When Entering Combat"] = "Masquer lors de l'entrée en combat",
|
["Hide When Entering Combat"] = "Masquer lors de l'entrée en combat",
|
||||||
["Highlight Equipped Items"] = "Mettre en surbrillance les objets équipés",
|
["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",
|
["Inherit Default Colors"] = "Hériter des couleurs par défaut",
|
||||||
["Inputbox Height"] = "Hauteur du champ de saisie du texte",
|
["Inputbox Height"] = "Hauteur du champ de saisie du texte",
|
||||||
["Inputbox Width"] = "Largeur du champ de saisie du texte",
|
["Inputbox Width"] = "Largeur du champ de saisie du texte",
|
||||||
["Instant"] = "Instantané",
|
|
||||||
["Integrations"] = nil,
|
["Integrations"] = nil,
|
||||||
["Invert Health Bar"] = "Inverser les barres de vie",
|
["Invert Health Bar"] = "Inverser les barres de vie",
|
||||||
["is not allowed in profile name"] = "n'est pas autorisé comme nom de profil",
|
["is not allowed in profile name"] = "n'est pas autorisé comme nom de profil",
|
||||||
@@ -477,6 +475,7 @@ pfUI_translation["frFR"] = {
|
|||||||
["Look & Feel"] = nil,
|
["Look & Feel"] = nil,
|
||||||
["Loot"] = "Butin",
|
["Loot"] = "Butin",
|
||||||
["Loot & Spam"] = "Butin & Spam",
|
["Loot & Spam"] = "Butin & Spam",
|
||||||
|
["Loss Of Control"] = nil,
|
||||||
["Macro Text Color"] = "Couleur du texte de la macro",
|
["Macro Text Color"] = "Couleur du texte de la macro",
|
||||||
["Macro Text Size"] = "Taille du texte de la macro",
|
["Macro Text Size"] = "Taille du texte de la macro",
|
||||||
["Main Actionbar"] = "Barre d'action principale",
|
["Main Actionbar"] = "Barre d'action principale",
|
||||||
@@ -516,6 +515,7 @@ pfUI_translation["frFR"] = {
|
|||||||
["Name | Health Missing"] = "Nom | santé manquante",
|
["Name | Health Missing"] = "Nom | santé manquante",
|
||||||
["Name (Linebreak) -Health Missing"] = nil,
|
["Name (Linebreak) -Health Missing"] = nil,
|
||||||
["Nameplate Border Size"] = "Taille de la bordure des barres de vie flottantes",
|
["Nameplate Border Size"] = "Taille de la bordure des barres de vie flottantes",
|
||||||
|
["Nameplate Debuffs"] = nil,
|
||||||
["Nameplates"] = "Barres de vie flottantes",
|
["Nameplates"] = "Barres de vie flottantes",
|
||||||
["Nameplate Width"] = "Largeur des barres de vie flottantes",
|
["Nameplate Width"] = "Largeur des barres de vie flottantes",
|
||||||
["Name (Short)"] = "Nom (Court)",
|
["Name (Short)"] = "Nom (Court)",
|
||||||
@@ -554,6 +554,7 @@ pfUI_translation["frFR"] = {
|
|||||||
["On State Change"] = "Sur changement d'état",
|
["On State Change"] = "Sur changement d'état",
|
||||||
["Options"] = "Options",
|
["Options"] = "Options",
|
||||||
["Orientation"] = "Orientation",
|
["Orientation"] = "Orientation",
|
||||||
|
["Other Addons"] = nil,
|
||||||
["Other Panel: Minimap"] = "Autre panneau : Minicarte",
|
["Other Panel: Minimap"] = "Autre panneau : Minicarte",
|
||||||
["Outline"] = "Contour",
|
["Outline"] = "Contour",
|
||||||
["Outlines"] = "Grandes lignes",
|
["Outlines"] = "Grandes lignes",
|
||||||
@@ -582,6 +583,7 @@ pfUI_translation["frFR"] = {
|
|||||||
["Pixel"] = "Pixel",
|
["Pixel"] = "Pixel",
|
||||||
["Player"] = "Joueur",
|
["Player"] = "Joueur",
|
||||||
["Player Buff Bar"] = "Barre des Améliorations du Joueur",
|
["Player Buff Bar"] = "Barre des Améliorations du Joueur",
|
||||||
|
["Player Buffs"] = nil,
|
||||||
["Player Castbar"] = "Barre d'incantation du Joueur",
|
["Player Castbar"] = "Barre d'incantation du Joueur",
|
||||||
["Player Debuff Bar"] = "Barre des Affaiblissements du Joueur",
|
["Player Debuff Bar"] = "Barre des Affaiblissements du Joueur",
|
||||||
["Player SP/Haste Display"] = nil,
|
["Player SP/Haste Display"] = nil,
|
||||||
@@ -592,6 +594,7 @@ pfUI_translation["frFR"] = {
|
|||||||
["Portrait Alpha"] = "Transparence du portrait",
|
["Portrait Alpha"] = "Transparence du portrait",
|
||||||
["Portrait Height"] = "Hauteur du portrait",
|
["Portrait Height"] = "Hauteur du portrait",
|
||||||
["Portrait Position"] = "Position du portrait",
|
["Portrait Position"] = "Position du portrait",
|
||||||
|
["Portrait Style"] = nil,
|
||||||
["Portrait Width"] = "Largeur du portrait",
|
["Portrait Width"] = "Largeur du portrait",
|
||||||
["Powerbar"] = "Barre des ressources",
|
["Powerbar"] = "Barre des ressources",
|
||||||
["Power Bar Anchor"] = "Ancrage de la Barre des ressources",
|
["Power Bar Anchor"] = "Ancrage de la Barre des ressources",
|
||||||
@@ -647,6 +650,7 @@ pfUI_translation["frFR"] = {
|
|||||||
["Resting"] = "Au Repos",
|
["Resting"] = "Au Repos",
|
||||||
["Reveal Unexplored Areas"] = "Révèle les zones non explorées",
|
["Reveal Unexplored Areas"] = "Révèle les zones non explorées",
|
||||||
["Switch to current zone"] = "Aller à la zone actuelle",
|
["Switch to current zone"] = "Aller à la zone actuelle",
|
||||||
|
["Reverse Sweep On"] = nil,
|
||||||
["Right"] = "Droit",
|
["Right"] = "Droit",
|
||||||
["Right Actionbar"] = "Barre d'action droite",
|
["Right Actionbar"] = "Barre d'action droite",
|
||||||
["Right Anchor"] = nil,
|
["Right Anchor"] = nil,
|
||||||
@@ -668,6 +672,7 @@ pfUI_translation["frFR"] = {
|
|||||||
["Save & Reload"] = nil,
|
["Save & Reload"] = nil,
|
||||||
["Scale"] = "Échelle",
|
["Scale"] = "Échelle",
|
||||||
["Scale Border On HiDPI Displays"] = "Échelle de bordure sur les écrans HiDPI",
|
["Scale Border On HiDPI Displays"] = "Échelle de bordure sur les écrans HiDPI",
|
||||||
|
["Scale Font Size With Icon"] = nil,
|
||||||
["Scaling"] = "Mise à l'échelle",
|
["Scaling"] = "Mise à l'échelle",
|
||||||
["Screen Edge Glow Intensity"] = nil,
|
["Screen Edge Glow Intensity"] = nil,
|
||||||
["Screen Resolution"] = "Résolution d'écran",
|
["Screen Resolution"] = "Résolution d'écran",
|
||||||
@@ -727,7 +732,7 @@ pfUI_translation["frFR"] = {
|
|||||||
["Show Loot Icon"] = "Afficher l'icône du butin",
|
["Show Loot Icon"] = "Afficher l'icône du butin",
|
||||||
["Show Macro Text"] = "Afficher le texte des macros",
|
["Show Macro Text"] = "Afficher le texte des macros",
|
||||||
["Show Meters By Default"] = "Afficher les compteurs par défaut",
|
["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 Friendly Units"] = "Afficher sur les unités amicales",
|
||||||
["Show On Hostile Units"] = "Afficher sur les unités hostiles",
|
["Show On Hostile Units"] = "Afficher sur les unités hostiles",
|
||||||
["Show Procs Indicators"] = "Afficher les indicateurs de Procs",
|
["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 Icon"] = "Afficher l'icone des sorts",
|
||||||
["Show Spell Name"] = nil,
|
["Show Spell Name"] = nil,
|
||||||
["Show Stacks"] = "Afficher les empilements",
|
["Show Stacks"] = "Afficher les empilements",
|
||||||
|
["Show Sweep On"] = nil,
|
||||||
|
["Show Tenths Below 5 Seconds"] = nil,
|
||||||
["Show Text"] = nil,
|
["Show Text"] = nil,
|
||||||
["Show Time Left"] = "Afficher le temps restant",
|
|
||||||
["Show Timer"] = nil,
|
["Show Timer"] = nil,
|
||||||
["Show Timer Animation"] = nil,
|
|
||||||
["Show Timer Text"] = nil,
|
["Show Timer Text"] = nil,
|
||||||
["Show Totems Indicators"] = "Afficher les indicateurs des totems",
|
["Show Totems Indicators"] = "Afficher les indicateurs des totems",
|
||||||
["Shrink & Return"] = "Rétrécir et retourner",
|
["Shrink & Return"] = "Rétrécir et retourner",
|
||||||
@@ -765,8 +770,10 @@ pfUI_translation["frFR"] = {
|
|||||||
["Soulshards"] = "Pierre d'âme",
|
["Soulshards"] = "Pierre d'âme",
|
||||||
["Spacing"] = "Espacement",
|
["Spacing"] = "Espacement",
|
||||||
["Special Recipient"] = "Recipient spécial",
|
["Special Recipient"] = "Recipient spécial",
|
||||||
|
["Spellbook And Character"] = nil,
|
||||||
["Spell Power Color"] = nil,
|
["Spell Power Color"] = nil,
|
||||||
["Square"] = "Carré",
|
["Square"] = "Carré",
|
||||||
|
["Stack Count Font Size"] = nil,
|
||||||
["Stance Bar 1"] = "Barre de posture 1",
|
["Stance Bar 1"] = "Barre de posture 1",
|
||||||
["Stance Bar 2"] = "Barre de posture 2",
|
["Stance Bar 2"] = "Barre de posture 2",
|
||||||
["Stance Bar 3"] = "Barre de posture 3",
|
["Stance Bar 3"] = "Barre de posture 3",
|
||||||
@@ -801,7 +808,6 @@ pfUI_translation["frFR"] = {
|
|||||||
["Thistle Tea"] = nil,
|
["Thistle Tea"] = nil,
|
||||||
["Threshold To Trust Health Estimation"] = "Seuil de confiance pour l'estimation de la santé",
|
["Threshold To Trust Health Estimation"] = "Seuil de confiance pour l'estimation de la santé",
|
||||||
["Time"] = "Heure",
|
["Time"] = "Heure",
|
||||||
["Timer"] = nil,
|
|
||||||
["Time Remaining"] = "Temps restant",
|
["Time Remaining"] = "Temps restant",
|
||||||
["Timer In Minutes"] = "Temps en minutes",
|
["Timer In Minutes"] = "Temps en minutes",
|
||||||
["Timestamp Brackets"] = "Supports des horaires des messages",
|
["Timestamp Brackets"] = "Supports des horaires des messages",
|
||||||
@@ -812,6 +818,7 @@ pfUI_translation["frFR"] = {
|
|||||||
["Tiny (PixelPerfect)"] = "Minuscule (PixelParfait)",
|
["Tiny (PixelPerfect)"] = "Minuscule (PixelParfait)",
|
||||||
["Toggle as Tank"] = "Basculer en tant que tank",
|
["Toggle as Tank"] = "Basculer en tant que tank",
|
||||||
["Tooltip"] = "Infobulle",
|
["Tooltip"] = "Infobulle",
|
||||||
|
["Tooltip Auras"] = nil,
|
||||||
["Tooltip Position"] = "Position de l'infobulle",
|
["Tooltip Position"] = "Position de l'infobulle",
|
||||||
["Tooltip Text Font"] = nil,
|
["Tooltip Text Font"] = nil,
|
||||||
["Tooltip Text Font Size"] = nil,
|
["Tooltip Text Font Size"] = nil,
|
||||||
@@ -823,11 +830,13 @@ pfUI_translation["frFR"] = {
|
|||||||
["Total Gold"] = "Or Total",
|
["Total Gold"] = "Or Total",
|
||||||
["Totem Direction"] = "Direction des totems",
|
["Totem Direction"] = "Direction des totems",
|
||||||
["Totem Icons"] = "Icones des totems",
|
["Totem Icons"] = "Icones des totems",
|
||||||
|
["Totems"] = nil,
|
||||||
["Tracked Reputation"] = nil,
|
["Tracked Reputation"] = nil,
|
||||||
["Tracking Icon Size"] = "Taille de l'icône de suivi",
|
["Tracking Icon Size"] = "Taille de l'icône de suivi",
|
||||||
["Trigger Actions On Key Down"] = "Déclencher des actions sur la touche enfoncée",
|
["Trigger Actions On Key Down"] = "Déclencher des actions sur la touche enfoncée",
|
||||||
["UI-Scale"] = "Echelle de l'interface",
|
["UI-Scale"] = "Echelle de l'interface",
|
||||||
["Unbuffed"] = "Sans Améliorations",
|
["Unbuffed"] = "Sans Améliorations",
|
||||||
|
["Unit Frame Auras"] = nil,
|
||||||
["Unit Frame Border Size"] = "Taille de la bordure des cadres d'unité",
|
["Unit Frame Border Size"] = "Taille de la bordure des cadres d'unité",
|
||||||
["Unit Frame Layout"] = "Position des cadres d'unité",
|
["Unit Frame Layout"] = "Position des cadres d'unité",
|
||||||
["Unit Frames"] = "Cadres d'unités",
|
["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 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 Font Settings"] = nil,
|
||||||
["Use Custom Spell Power Color (unchecked = biggest school color)"] = 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 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 Original Game Fonts"] = nil,
|
||||||
["Use Raid Frames To Display Group Members"] = "Utiliser l'UI Raid pour afficher les Membres du Groupe",
|
["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,
|
["Zonetime"] = nil,
|
||||||
["Zoom & Fade"] = "Zoom et fondu",
|
["Zoom & Fade"] = "Zoom et fondu",
|
||||||
["Zoom Target Nameplate"] = "Zoom la cible des barres de vie flottantes",
|
["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"] = {
|
pfUI_translation["koKR"] = {
|
||||||
|
["2D"] = nil,
|
||||||
|
["3D"] = nil,
|
||||||
["3D World Unit Font"] = nil,
|
["3D World Unit Font"] = nil,
|
||||||
["Abbreviate Numbers (4200 -> 4.2k)"] = "체력수치 약어 (4200 -> 4.2k)",
|
["Abbreviate Numbers (4200 -> 4.2k)"] = "체력수치 약어 (4200 -> 4.2k)",
|
||||||
["Abbreviate Unit Names"] = nil,
|
["Abbreviate Unit Names"] = nil,
|
||||||
@@ -6,6 +8,7 @@ pfUI_translation["koKR"] = {
|
|||||||
["Actionbar"] = "액션바",
|
["Actionbar"] = "액션바",
|
||||||
["Action Bar"] = nil,
|
["Action Bar"] = nil,
|
||||||
["Action Bar Border Size"] = "액션바 테두리 크기",
|
["Action Bar Border Size"] = "액션바 테두리 크기",
|
||||||
|
["Action Bars"] = nil,
|
||||||
["Active Addons"] = "애드온 활성화",
|
["Active Addons"] = "애드온 활성화",
|
||||||
["Add button to the frame"] = nil,
|
["Add button to the frame"] = nil,
|
||||||
["Added button"] = nil,
|
["Added button"] = nil,
|
||||||
@@ -27,11 +30,11 @@ pfUI_translation["koKR"] = {
|
|||||||
["Always Show Item Comparison"] = "항상 착용 장비와 비교 표시",
|
["Always Show Item Comparison"] = "항상 착용 장비와 비교 표시",
|
||||||
["Always Show On Target Units"] = nil,
|
["Always Show On Target Units"] = nil,
|
||||||
["Always Show On Units With Missing HP"] = nil,
|
["Always Show On Units With Missing HP"] = nil,
|
||||||
["Always Use 2D Portraits"] = "항상 2D초상화 사용",
|
|
||||||
["Ammo Counter"] = "탄약 갯수",
|
["Ammo Counter"] = "탄약 갯수",
|
||||||
["Anchor Bags Above Chat"] = 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 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,
|
["A new version is available"] = nil,
|
||||||
|
["Animate Health And Power Bars"] = nil,
|
||||||
["Appearance"] = "외관 설정",
|
["Appearance"] = "외관 설정",
|
||||||
["Ascending"] = nil,
|
["Ascending"] = nil,
|
||||||
["Author"] = nil,
|
["Author"] = nil,
|
||||||
@@ -78,7 +81,7 @@ pfUI_translation["koKR"] = {
|
|||||||
["Buffbar Width"] = nil,
|
["Buffbar Width"] = nil,
|
||||||
["Buff/Debuff Icons"] = nil,
|
["Buff/Debuff Icons"] = nil,
|
||||||
["Buff/Debuff Indicators"] = nil,
|
["Buff/Debuff Indicators"] = nil,
|
||||||
["Buff Font Size"] = nil,
|
["Buff Indicators"] = nil,
|
||||||
["Buff Limit"] = "버프 한도",
|
["Buff Limit"] = "버프 한도",
|
||||||
["Buff Position"] = "버프 위치",
|
["Buff Position"] = "버프 위치",
|
||||||
["Buffs"] = nil,
|
["Buffs"] = nil,
|
||||||
@@ -120,9 +123,13 @@ pfUI_translation["koKR"] = {
|
|||||||
["Chat Bubble Transparency"] = nil,
|
["Chat Bubble Transparency"] = nil,
|
||||||
["Chat Default Brackets"] = nil,
|
["Chat Default Brackets"] = nil,
|
||||||
["Class"] = "클래스(직업)",
|
["Class"] = "클래스(직업)",
|
||||||
|
["Class Icon (Round)"] = nil,
|
||||||
|
["Class Icon (Square)"] = nil,
|
||||||
["Clear Rolls"] = nil,
|
["Clear Rolls"] = nil,
|
||||||
["Click Action"] = "클릭 액션",
|
["Click Action"] = "클릭 액션",
|
||||||
["Click Casting"] = nil,
|
["Click Casting"] = nil,
|
||||||
|
["Click to undress"] = nil,
|
||||||
|
["Undress"] = nil,
|
||||||
["Clock"] = "시계",
|
["Clock"] = "시계",
|
||||||
["Close"] = "닫기",
|
["Close"] = "닫기",
|
||||||
["Collapse Empty Slots"] = nil,
|
["Collapse Empty Slots"] = nil,
|
||||||
@@ -145,21 +152,16 @@ pfUI_translation["koKR"] = {
|
|||||||
["Configuration"] = "구성",
|
["Configuration"] = "구성",
|
||||||
["Configure"] = nil,
|
["Configure"] = nil,
|
||||||
["Cooldown"] = "쿨다운",
|
["Cooldown"] = "쿨다운",
|
||||||
|
["Cooldown Color (5 Seconds Or Less)"] = nil,
|
||||||
["Cooldown Color (Days)"] = "재사용 대기시간 컬러(일)",
|
["Cooldown Color (Days)"] = "재사용 대기시간 컬러(일)",
|
||||||
["Cooldown Color (Hours)"] = "재사용 대기시간 컬러(시간)",
|
["Cooldown Color (Hours)"] = "재사용 대기시간 컬러(시간)",
|
||||||
["Cooldown Color (Less than 3 Sec)"] = "재사용 대기시간 컬러(3초전)",
|
|
||||||
["Cooldown Color (Minutes)"] = "재사용 대기시간 컬러(분)",
|
["Cooldown Color (Minutes)"] = "재사용 대기시간 컬러(분)",
|
||||||
["Cooldown Color (Seconds)"] = "재사용 대기시간 컬러(초)",
|
["Cooldown Color (Seconds)"] = "재사용 대기시간 컬러(초)",
|
||||||
["Cooldown / Durations"] = nil,
|
["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 Threshold"] = nil,
|
||||||
["Cooldown Text Time Threshold"] = "재사용 대기시간 텍스트 임계 값",
|
|
||||||
["Coordinates Location"] = nil,
|
["Coordinates Location"] = nil,
|
||||||
["Coordinates On Minimap"] = "미니맵의 좌표",
|
["Coordinates On Minimap"] = "미니맵의 좌표",
|
||||||
|
["Copied to clipboard"] = nil,
|
||||||
["Count"] = "카운트",
|
["Count"] = "카운트",
|
||||||
["Create Profile"] = "프로파일 생성",
|
["Create Profile"] = "프로파일 생성",
|
||||||
["Ctrl-Click"] = nil,
|
["Ctrl-Click"] = nil,
|
||||||
@@ -276,12 +278,9 @@ pfUI_translation["koKR"] = {
|
|||||||
["Enable Custom Incoming Whispers Layout"] = "사용자 지정 귓속말 레이아웃 활성화",
|
["Enable Custom Incoming Whispers Layout"] = "사용자 지정 귓속말 레이아웃 활성화",
|
||||||
["Enable Debuff Display"] = nil,
|
["Enable Debuff Display"] = nil,
|
||||||
["Enable Debuffs"] = "디버프 활성화",
|
["Enable Debuffs"] = "디버프 활성화",
|
||||||
["Enable Durations On Blizzard Frames"] = nil,
|
|
||||||
["Enable Durations On Foreign Frames"] = nil,
|
|
||||||
["Enable Energy Ticks"] = "Energy Ticks 활성화",
|
["Enable Energy Ticks"] = "Energy Ticks 활성화",
|
||||||
["Enable Extended Guild Information"] = "길드 정보 확장 사용",
|
["Enable Extended Guild Information"] = "길드 정보 확장 사용",
|
||||||
["Enable Frame Shadow"] = nil,
|
["Enable Frame Shadow"] = nil,
|
||||||
["Enable Full-Text Search"] = nil,
|
|
||||||
["Enable Indicators"] = nil,
|
["Enable Indicators"] = nil,
|
||||||
["Enable Item Quality Color For Equipment Only"] = "착용장비 전용 아이템품질 색상 활성화",
|
["Enable Item Quality Color For Equipment Only"] = "착용장비 전용 아이템품질 색상 활성화",
|
||||||
["Enable \"Loot & Spam\" Chat Window"] = "\"루팅 & 스팜\"채팅 창 사용",
|
["Enable \"Loot & Spam\" Chat Window"] = "\"루팅 & 스팜\"채팅 창 사용",
|
||||||
@@ -336,6 +335,7 @@ pfUI_translation["koKR"] = {
|
|||||||
["Font"] = nil,
|
["Font"] = nil,
|
||||||
["Font Options"] = nil,
|
["Font Options"] = nil,
|
||||||
["Font Padding"] = nil,
|
["Font Padding"] = nil,
|
||||||
|
["Font Size"] = nil,
|
||||||
["Font Style"] = nil,
|
["Font Style"] = nil,
|
||||||
["Force Blizzard Borders (|cffffaaaaExperimental|r)"] = nil,
|
["Force Blizzard Borders (|cffffaaaaExperimental|r)"] = nil,
|
||||||
["fps"] = "프레임",
|
["fps"] = "프레임",
|
||||||
@@ -370,7 +370,6 @@ pfUI_translation["koKR"] = {
|
|||||||
["Health"] = nil,
|
["Health"] = nil,
|
||||||
["Health - Auto"] = "체력-자동",
|
["Health - Auto"] = "체력-자동",
|
||||||
["Healthbar"] = nil,
|
["Healthbar"] = nil,
|
||||||
["Healthbar Animation Speed"] = "체력바 애니메이션 속도",
|
|
||||||
["Health Bar Color"] = nil,
|
["Health Bar Color"] = nil,
|
||||||
["Healthbar Embedded"] = "체력바에 겹쳐보기",
|
["Healthbar Embedded"] = "체력바에 겹쳐보기",
|
||||||
["Healthbar Height"] = "체력바 높이",
|
["Healthbar Height"] = "체력바 높이",
|
||||||
@@ -395,7 +394,6 @@ pfUI_translation["koKR"] = {
|
|||||||
["Hide Channel Names"] = "채널 이름 숨기기",
|
["Hide Channel Names"] = "채널 이름 숨기기",
|
||||||
["Hide Chat When Bags Are Opened"] = nil,
|
["Hide Chat When Bags Are Opened"] = nil,
|
||||||
["Hide Combat Log"] = "전투 기록 숨기기",
|
["Hide Combat Log"] = "전투 기록 숨기기",
|
||||||
["Hide Foreign Cooldown Animations"] = nil,
|
|
||||||
["Hide Group Frames While In Raid"] = nil,
|
["Hide Group Frames While In Raid"] = nil,
|
||||||
["Hide Healthbar On Critters"] = nil,
|
["Hide Healthbar On Critters"] = nil,
|
||||||
["Hide Healthbar On Enemy NPCs"] = nil,
|
["Hide Healthbar On Enemy NPCs"] = nil,
|
||||||
@@ -404,6 +402,7 @@ pfUI_translation["koKR"] = {
|
|||||||
["Hide Healthbar On Friendly Players"] = nil,
|
["Hide Healthbar On Friendly Players"] = nil,
|
||||||
["Hide Healthbar On Neutral NPCs"] = nil,
|
["Hide Healthbar On Neutral NPCs"] = nil,
|
||||||
["Hide Healthbar On Totems"] = nil,
|
["Hide Healthbar On Totems"] = nil,
|
||||||
|
["Hide Numbers On Spell Cooldowns Up To (Seconds)"] = nil,
|
||||||
["Hide Timeout"] = nil,
|
["Hide Timeout"] = nil,
|
||||||
["Hide When Entering Combat"] = nil,
|
["Hide When Entering Combat"] = nil,
|
||||||
["Highlight Equipped Items"] = nil,
|
["Highlight Equipped Items"] = nil,
|
||||||
@@ -432,7 +431,6 @@ pfUI_translation["koKR"] = {
|
|||||||
["Inherit Default Colors"] = nil,
|
["Inherit Default Colors"] = nil,
|
||||||
["Inputbox Height"] = "챗팅 입력창 높이",
|
["Inputbox Height"] = "챗팅 입력창 높이",
|
||||||
["Inputbox Width"] = "챗팅 입력창 넓이",
|
["Inputbox Width"] = "챗팅 입력창 넓이",
|
||||||
["Instant"] = "즉시",
|
|
||||||
["Integrations"] = nil,
|
["Integrations"] = nil,
|
||||||
["Invert Health Bar"] = "체력바 반전",
|
["Invert Health Bar"] = "체력바 반전",
|
||||||
["is not allowed in profile name"] = "프로필 이름에 허용되지 않습니다.",
|
["is not allowed in profile name"] = "프로필 이름에 허용되지 않습니다.",
|
||||||
@@ -477,6 +475,7 @@ pfUI_translation["koKR"] = {
|
|||||||
["Look & Feel"] = nil,
|
["Look & Feel"] = nil,
|
||||||
["Loot"] = "룻팅",
|
["Loot"] = "룻팅",
|
||||||
["Loot & Spam"] = "룻팅 & 기타",
|
["Loot & Spam"] = "룻팅 & 기타",
|
||||||
|
["Loss Of Control"] = nil,
|
||||||
["Macro Text Color"] = nil,
|
["Macro Text Color"] = nil,
|
||||||
["Macro Text Size"] = nil,
|
["Macro Text Size"] = nil,
|
||||||
["Main Actionbar"] = nil,
|
["Main Actionbar"] = nil,
|
||||||
@@ -516,6 +515,7 @@ pfUI_translation["koKR"] = {
|
|||||||
["Name | Health Missing"] = nil,
|
["Name | Health Missing"] = nil,
|
||||||
["Name (Linebreak) -Health Missing"] = nil,
|
["Name (Linebreak) -Health Missing"] = nil,
|
||||||
["Nameplate Border Size"] = nil,
|
["Nameplate Border Size"] = nil,
|
||||||
|
["Nameplate Debuffs"] = nil,
|
||||||
["Nameplates"] = "상바",
|
["Nameplates"] = "상바",
|
||||||
["Nameplate Width"] = "상바 넓이",
|
["Nameplate Width"] = "상바 넓이",
|
||||||
["Name (Short)"] = nil,
|
["Name (Short)"] = nil,
|
||||||
@@ -554,6 +554,7 @@ pfUI_translation["koKR"] = {
|
|||||||
["On State Change"] = nil,
|
["On State Change"] = nil,
|
||||||
["Options"] = nil,
|
["Options"] = nil,
|
||||||
["Orientation"] = nil,
|
["Orientation"] = nil,
|
||||||
|
["Other Addons"] = nil,
|
||||||
["Other Panel: Minimap"] = "나머지 패널:미니맵",
|
["Other Panel: Minimap"] = "나머지 패널:미니맵",
|
||||||
["Outline"] = nil,
|
["Outline"] = nil,
|
||||||
["Outlines"] = nil,
|
["Outlines"] = nil,
|
||||||
@@ -582,6 +583,7 @@ pfUI_translation["koKR"] = {
|
|||||||
["Pixel"] = nil,
|
["Pixel"] = nil,
|
||||||
["Player"] = "플레이어",
|
["Player"] = "플레이어",
|
||||||
["Player Buff Bar"] = nil,
|
["Player Buff Bar"] = nil,
|
||||||
|
["Player Buffs"] = nil,
|
||||||
["Player Castbar"] = nil,
|
["Player Castbar"] = nil,
|
||||||
["Player Debuff Bar"] = nil,
|
["Player Debuff Bar"] = nil,
|
||||||
["Player SP/Haste Display"] = nil,
|
["Player SP/Haste Display"] = nil,
|
||||||
@@ -592,6 +594,7 @@ pfUI_translation["koKR"] = {
|
|||||||
["Portrait Alpha"] = "초상화 투명도",
|
["Portrait Alpha"] = "초상화 투명도",
|
||||||
["Portrait Height"] = "세로 높이",
|
["Portrait Height"] = "세로 높이",
|
||||||
["Portrait Position"] = "초상화 위치",
|
["Portrait Position"] = "초상화 위치",
|
||||||
|
["Portrait Style"] = nil,
|
||||||
["Portrait Width"] = "세로 너비",
|
["Portrait Width"] = "세로 너비",
|
||||||
["Powerbar"] = nil,
|
["Powerbar"] = nil,
|
||||||
["Power Bar Anchor"] = nil,
|
["Power Bar Anchor"] = nil,
|
||||||
@@ -647,6 +650,7 @@ pfUI_translation["koKR"] = {
|
|||||||
["Resting"] = "휴식",
|
["Resting"] = "휴식",
|
||||||
["Reveal Unexplored Areas"] = nil,
|
["Reveal Unexplored Areas"] = nil,
|
||||||
["Switch to current zone"] = nil,
|
["Switch to current zone"] = nil,
|
||||||
|
["Reverse Sweep On"] = nil,
|
||||||
["Right"] = "오른쪽",
|
["Right"] = "오른쪽",
|
||||||
["Right Actionbar"] = nil,
|
["Right Actionbar"] = nil,
|
||||||
["Right Anchor"] = nil,
|
["Right Anchor"] = nil,
|
||||||
@@ -668,6 +672,7 @@ pfUI_translation["koKR"] = {
|
|||||||
["Save & Reload"] = nil,
|
["Save & Reload"] = nil,
|
||||||
["Scale"] = nil,
|
["Scale"] = nil,
|
||||||
["Scale Border On HiDPI Displays"] = nil,
|
["Scale Border On HiDPI Displays"] = nil,
|
||||||
|
["Scale Font Size With Icon"] = nil,
|
||||||
["Scaling"] = nil,
|
["Scaling"] = nil,
|
||||||
["Screen Edge Glow Intensity"] = nil,
|
["Screen Edge Glow Intensity"] = nil,
|
||||||
["Screen Resolution"] = "화면 해상도",
|
["Screen Resolution"] = "화면 해상도",
|
||||||
@@ -727,7 +732,7 @@ pfUI_translation["koKR"] = {
|
|||||||
["Show Loot Icon"] = nil,
|
["Show Loot Icon"] = nil,
|
||||||
["Show Macro Text"] = "매크로 텍스트 표시",
|
["Show Macro Text"] = "매크로 텍스트 표시",
|
||||||
["Show Meters By Default"] = nil,
|
["Show Meters By Default"] = nil,
|
||||||
["Show Milliseconds When Timer Runs Out"] = nil,
|
["Show Numbers On"] = nil,
|
||||||
["Show On Friendly Units"] = nil,
|
["Show On Friendly Units"] = nil,
|
||||||
["Show On Hostile Units"] = nil,
|
["Show On Hostile Units"] = nil,
|
||||||
["Show Procs Indicators"] = nil,
|
["Show Procs Indicators"] = nil,
|
||||||
@@ -745,10 +750,10 @@ pfUI_translation["koKR"] = {
|
|||||||
["Show Spell Icon"] = nil,
|
["Show Spell Icon"] = nil,
|
||||||
["Show Spell Name"] = nil,
|
["Show Spell Name"] = nil,
|
||||||
["Show Stacks"] = nil,
|
["Show Stacks"] = nil,
|
||||||
|
["Show Sweep On"] = nil,
|
||||||
|
["Show Tenths Below 5 Seconds"] = nil,
|
||||||
["Show Text"] = nil,
|
["Show Text"] = nil,
|
||||||
["Show Time Left"] = nil,
|
|
||||||
["Show Timer"] = nil,
|
["Show Timer"] = nil,
|
||||||
["Show Timer Animation"] = nil,
|
|
||||||
["Show Timer Text"] = nil,
|
["Show Timer Text"] = nil,
|
||||||
["Show Totems Indicators"] = nil,
|
["Show Totems Indicators"] = nil,
|
||||||
["Shrink & Return"] = nil,
|
["Shrink & Return"] = nil,
|
||||||
@@ -765,8 +770,10 @@ pfUI_translation["koKR"] = {
|
|||||||
["Soulshards"] = "영혼의 조각",
|
["Soulshards"] = "영혼의 조각",
|
||||||
["Spacing"] = nil,
|
["Spacing"] = nil,
|
||||||
["Special Recipient"] = nil,
|
["Special Recipient"] = nil,
|
||||||
|
["Spellbook And Character"] = nil,
|
||||||
["Spell Power Color"] = nil,
|
["Spell Power Color"] = nil,
|
||||||
["Square"] = nil,
|
["Square"] = nil,
|
||||||
|
["Stack Count Font Size"] = nil,
|
||||||
["Stance Bar 1"] = nil,
|
["Stance Bar 1"] = nil,
|
||||||
["Stance Bar 2"] = nil,
|
["Stance Bar 2"] = nil,
|
||||||
["Stance Bar 3"] = nil,
|
["Stance Bar 3"] = nil,
|
||||||
@@ -801,7 +808,6 @@ pfUI_translation["koKR"] = {
|
|||||||
["Thistle Tea"] = nil,
|
["Thistle Tea"] = nil,
|
||||||
["Threshold To Trust Health Estimation"] = nil,
|
["Threshold To Trust Health Estimation"] = nil,
|
||||||
["Time"] = "시간",
|
["Time"] = "시간",
|
||||||
["Timer"] = nil,
|
|
||||||
["Time Remaining"] = nil,
|
["Time Remaining"] = nil,
|
||||||
["Timer In Minutes"] = nil,
|
["Timer In Minutes"] = nil,
|
||||||
["Timestamp Brackets"] = nil,
|
["Timestamp Brackets"] = nil,
|
||||||
@@ -812,6 +818,7 @@ pfUI_translation["koKR"] = {
|
|||||||
["Tiny (PixelPerfect)"] = nil,
|
["Tiny (PixelPerfect)"] = nil,
|
||||||
["Toggle as Tank"] = nil,
|
["Toggle as Tank"] = nil,
|
||||||
["Tooltip"] = "툴팁",
|
["Tooltip"] = "툴팁",
|
||||||
|
["Tooltip Auras"] = nil,
|
||||||
["Tooltip Position"] = "툴팁위치",
|
["Tooltip Position"] = "툴팁위치",
|
||||||
["Tooltip Text Font"] = nil,
|
["Tooltip Text Font"] = nil,
|
||||||
["Tooltip Text Font Size"] = nil,
|
["Tooltip Text Font Size"] = nil,
|
||||||
@@ -823,11 +830,13 @@ pfUI_translation["koKR"] = {
|
|||||||
["Total Gold"] = "총 금",
|
["Total Gold"] = "총 금",
|
||||||
["Totem Direction"] = nil,
|
["Totem Direction"] = nil,
|
||||||
["Totem Icons"] = nil,
|
["Totem Icons"] = nil,
|
||||||
|
["Totems"] = nil,
|
||||||
["Tracked Reputation"] = nil,
|
["Tracked Reputation"] = nil,
|
||||||
["Tracking Icon Size"] = nil,
|
["Tracking Icon Size"] = nil,
|
||||||
["Trigger Actions On Key Down"] = nil,
|
["Trigger Actions On Key Down"] = nil,
|
||||||
["UI-Scale"] = "UI-크기",
|
["UI-Scale"] = "UI-크기",
|
||||||
["Unbuffed"] = nil,
|
["Unbuffed"] = nil,
|
||||||
|
["Unit Frame Auras"] = nil,
|
||||||
["Unit Frame Border Size"] = "유닛프레임 테두리 크기",
|
["Unit Frame Border Size"] = "유닛프레임 테두리 크기",
|
||||||
["Unit Frame Layout"] = "유닛프레임 레이아웃",
|
["Unit Frame Layout"] = "유닛프레임 레이아웃",
|
||||||
["Unit Frames"] = "유닛프레임",
|
["Unit Frames"] = "유닛프레임",
|
||||||
@@ -854,7 +863,6 @@ pfUI_translation["koKR"] = {
|
|||||||
["Use Custom Color Power Bar Background"] = nil,
|
["Use Custom Color Power Bar Background"] = nil,
|
||||||
["Use Custom Font Settings"] = nil,
|
["Use Custom Font Settings"] = nil,
|
||||||
["Use Custom Spell Power Color (unchecked = biggest school color)"] = 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 Item Rarity Color For Loot-Roll Timer"] = nil,
|
||||||
["Use Original Game Fonts"] = nil,
|
["Use Original Game Fonts"] = nil,
|
||||||
["Use Raid Frames To Display Group Members"] = nil,
|
["Use Raid Frames To Display Group Members"] = nil,
|
||||||
|
|||||||
Vendored
+28
-20
@@ -1,4 +1,6 @@
|
|||||||
pfUI_translation["ruRU"] = {
|
pfUI_translation["ruRU"] = {
|
||||||
|
["2D"] = nil,
|
||||||
|
["3D"] = nil,
|
||||||
["3D World Unit Font"] = nil,
|
["3D World Unit Font"] = nil,
|
||||||
["Abbreviate Numbers (4200 -> 4.2k)"] = "Сокращать числа (4200 -> 4.2k)",
|
["Abbreviate Numbers (4200 -> 4.2k)"] = "Сокращать числа (4200 -> 4.2k)",
|
||||||
["Abbreviate Unit Names"] = "Сокращать имена юнитов",
|
["Abbreviate Unit Names"] = "Сокращать имена юнитов",
|
||||||
@@ -6,6 +8,7 @@ pfUI_translation["ruRU"] = {
|
|||||||
["Actionbar"] = "Панель действий",
|
["Actionbar"] = "Панель действий",
|
||||||
["Action Bar"] = "Панель действий",
|
["Action Bar"] = "Панель действий",
|
||||||
["Action Bar Border Size"] = "Размер границы панели действий",
|
["Action Bar Border Size"] = "Размер границы панели действий",
|
||||||
|
["Action Bars"] = nil,
|
||||||
["Active Addons"] = "Активные аддоны",
|
["Active Addons"] = "Активные аддоны",
|
||||||
["Add button to the frame"] = "Добавить кнопку в окно",
|
["Add button to the frame"] = "Добавить кнопку в окно",
|
||||||
["Added button"] = "Добавлена кнопка",
|
["Added button"] = "Добавлена кнопка",
|
||||||
@@ -27,11 +30,11 @@ pfUI_translation["ruRU"] = {
|
|||||||
["Always Show Item Comparison"] = "Всегда показывать сравнение предметов",
|
["Always Show Item Comparison"] = "Всегда показывать сравнение предметов",
|
||||||
["Always Show On Target Units"] = "Всегда показывать над выбранной целью",
|
["Always Show On Target Units"] = "Всегда показывать над выбранной целью",
|
||||||
["Always Show On Units With Missing HP"] = "Всегда показывать над целями с неполным здоровьем",
|
["Always Show On Units With Missing HP"] = "Всегда показывать над целями с неполным здоровьем",
|
||||||
["Always Use 2D Portraits"] = "Всегда использовать 2D-портреты",
|
|
||||||
["Ammo Counter"] = "Счетчик боеприпасов",
|
["Ammo Counter"] = "Счетчик боеприпасов",
|
||||||
["Anchor Bags Above Chat"] = 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."] = "Новая установка |cff33ffccpf|rUI предлагает 4 предварительно созданных профиля дизайна. Нажмите ниже, если вы хотите загрузить один из этих профилей.",
|
["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"] = "Доступна новая версия",
|
["A new version is available"] = "Доступна новая версия",
|
||||||
|
["Animate Health And Power Bars"] = nil,
|
||||||
["Appearance"] = "Внешний вид",
|
["Appearance"] = "Внешний вид",
|
||||||
["Ascending"] = "По возрастанию",
|
["Ascending"] = "По возрастанию",
|
||||||
["Author"] = "Автор",
|
["Author"] = "Автор",
|
||||||
@@ -78,7 +81,7 @@ pfUI_translation["ruRU"] = {
|
|||||||
["Buffbar Width"] = "Ширина панели баффов",
|
["Buffbar Width"] = "Ширина панели баффов",
|
||||||
["Buff/Debuff Icons"] = "Иконки баффов/дебаффов",
|
["Buff/Debuff Icons"] = "Иконки баффов/дебаффов",
|
||||||
["Buff/Debuff Indicators"] = "Индикаторы баффов/дебаффов",
|
["Buff/Debuff Indicators"] = "Индикаторы баффов/дебаффов",
|
||||||
["Buff Font Size"] = "Размер шрифта баффов",
|
["Buff Indicators"] = nil,
|
||||||
["Buff Limit"] = "Предел баффов",
|
["Buff Limit"] = "Предел баффов",
|
||||||
["Buff Position"] = "Расположение баффов",
|
["Buff Position"] = "Расположение баффов",
|
||||||
["Buffs"] = "Баффы",
|
["Buffs"] = "Баффы",
|
||||||
@@ -120,9 +123,13 @@ pfUI_translation["ruRU"] = {
|
|||||||
["Chat Bubble Transparency"] = "Прозрачность пузыря чата",
|
["Chat Bubble Transparency"] = "Прозрачность пузыря чата",
|
||||||
["Chat Default Brackets"] = "Скобки чата",
|
["Chat Default Brackets"] = "Скобки чата",
|
||||||
["Class"] = "Класс",
|
["Class"] = "Класс",
|
||||||
|
["Class Icon (Round)"] = nil,
|
||||||
|
["Class Icon (Square)"] = nil,
|
||||||
["Clear Rolls"] = "Очистить броски",
|
["Clear Rolls"] = "Очистить броски",
|
||||||
["Click Action"] = "Действие при нажатии",
|
["Click Action"] = "Действие при нажатии",
|
||||||
["Click Casting"] = "Каст по нажатию",
|
["Click Casting"] = "Каст по нажатию",
|
||||||
|
["Click to undress"] = nil,
|
||||||
|
["Undress"] = nil,
|
||||||
["Clock"] = "Часы",
|
["Clock"] = "Часы",
|
||||||
["Close"] = "Закрыть",
|
["Close"] = "Закрыть",
|
||||||
["Collapse Empty Slots"] = nil,
|
["Collapse Empty Slots"] = nil,
|
||||||
@@ -145,21 +152,16 @@ pfUI_translation["ruRU"] = {
|
|||||||
["Configuration"] = "Конфигурация",
|
["Configuration"] = "Конфигурация",
|
||||||
["Configure"] = "Применить",
|
["Configure"] = "Применить",
|
||||||
["Cooldown"] = "Восстановление",
|
["Cooldown"] = "Восстановление",
|
||||||
|
["Cooldown Color (5 Seconds Or Less)"] = nil,
|
||||||
["Cooldown Color (Days)"] = "Цвет восстановления (дни)",
|
["Cooldown Color (Days)"] = "Цвет восстановления (дни)",
|
||||||
["Cooldown Color (Hours)"] = "Цвет восстановления (часы)",
|
["Cooldown Color (Hours)"] = "Цвет восстановления (часы)",
|
||||||
["Cooldown Color (Less than 3 Sec)"] = "Цвет восстановления (менее 3 секунд)",
|
|
||||||
["Cooldown Color (Minutes)"] = "Цвет восстановления (минуты)",
|
["Cooldown Color (Minutes)"] = "Цвет восстановления (минуты)",
|
||||||
["Cooldown Color (Seconds)"] = "Цвет восстановления (секунды)",
|
["Cooldown Color (Seconds)"] = "Цвет восстановления (секунды)",
|
||||||
["Cooldown / Durations"] = "Восстановление / Длительность",
|
["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 Threshold"] = "Текст порога восстановления",
|
||||||
["Cooldown Text Time Threshold"] = "Порог текста восстановления",
|
|
||||||
["Coordinates Location"] = "Расположение координат",
|
["Coordinates Location"] = "Расположение координат",
|
||||||
["Coordinates On Minimap"] = "Координаты на миникарте",
|
["Coordinates On Minimap"] = "Координаты на миникарте",
|
||||||
|
["Copied to clipboard"] = nil,
|
||||||
["Count"] = "Счет",
|
["Count"] = "Счет",
|
||||||
["Create Profile"] = "Создать профиль",
|
["Create Profile"] = "Создать профиль",
|
||||||
["Ctrl-Click"] = "Ctrl+нажатие",
|
["Ctrl-Click"] = "Ctrl+нажатие",
|
||||||
@@ -276,12 +278,9 @@ pfUI_translation["ruRU"] = {
|
|||||||
["Enable Custom Incoming Whispers Layout"] = "Включить пользовательский макет входящего шепота",
|
["Enable Custom Incoming Whispers Layout"] = "Включить пользовательский макет входящего шепота",
|
||||||
["Enable Debuff Display"] = "Включить отображение дебаффов",
|
["Enable Debuff Display"] = "Включить отображение дебаффов",
|
||||||
["Enable Debuffs"] = "Включить дебаффы",
|
["Enable Debuffs"] = "Включить дебаффы",
|
||||||
["Enable Durations On Blizzard Frames"] = "Включить длительность на окнах Blizzard",
|
|
||||||
["Enable Durations On Foreign Frames"] = "Включить длительность на сторонних окнах",
|
|
||||||
["Enable Energy Ticks"] = "Включить восполнение энергии",
|
["Enable Energy Ticks"] = "Включить восполнение энергии",
|
||||||
["Enable Extended Guild Information"] = "Включить расширенную информацию о гильдии",
|
["Enable Extended Guild Information"] = "Включить расширенную информацию о гильдии",
|
||||||
["Enable Frame Shadow"] = "Включить тень окон",
|
["Enable Frame Shadow"] = "Включить тень окон",
|
||||||
["Enable Full-Text Search"] = nil,
|
|
||||||
["Enable Indicators"] = "Включить индикаторы",
|
["Enable Indicators"] = "Включить индикаторы",
|
||||||
["Enable Item Quality Color For Equipment Only"] = "Включить цвет качества предметов только для экипировки",
|
["Enable Item Quality Color For Equipment Only"] = "Включить цвет качества предметов только для экипировки",
|
||||||
["Enable \"Loot & Spam\" Chat Window"] = "Включить окно чата \"Добыча & Спам\"",
|
["Enable \"Loot & Spam\" Chat Window"] = "Включить окно чата \"Добыча & Спам\"",
|
||||||
@@ -336,6 +335,7 @@ pfUI_translation["ruRU"] = {
|
|||||||
["Font"] = "Шрифт",
|
["Font"] = "Шрифт",
|
||||||
["Font Options"] = "Шрифт",
|
["Font Options"] = "Шрифт",
|
||||||
["Font Padding"] = "Отступ шрифта",
|
["Font Padding"] = "Отступ шрифта",
|
||||||
|
["Font Size"] = nil,
|
||||||
["Font Style"] = "Стиль шрифта",
|
["Font Style"] = "Стиль шрифта",
|
||||||
["Force Blizzard Borders (|cffffaaaaExperimental|r)"] = "Границы Blizzard принудительно (|cffffaaaaЭкспериментально|r)",
|
["Force Blizzard Borders (|cffffaaaaExperimental|r)"] = "Границы Blizzard принудительно (|cffffaaaaЭкспериментально|r)",
|
||||||
["fps"] = "кад./сек.",
|
["fps"] = "кад./сек.",
|
||||||
@@ -370,7 +370,6 @@ pfUI_translation["ruRU"] = {
|
|||||||
["Health"] = "Здоровье",
|
["Health"] = "Здоровье",
|
||||||
["Health - Auto"] = "Здоровье - автоматически",
|
["Health - Auto"] = "Здоровье - автоматически",
|
||||||
["Healthbar"] = "Панель здоровья",
|
["Healthbar"] = "Панель здоровья",
|
||||||
["Healthbar Animation Speed"] = "Скорость анимации панели здоровья",
|
|
||||||
["Health Bar Color"] = "Цвет панели здоровья",
|
["Health Bar Color"] = "Цвет панели здоровья",
|
||||||
["Healthbar Embedded"] = "На панели здоровья",
|
["Healthbar Embedded"] = "На панели здоровья",
|
||||||
["Healthbar Height"] = "Высота панели здоровья",
|
["Healthbar Height"] = "Высота панели здоровья",
|
||||||
@@ -395,7 +394,6 @@ pfUI_translation["ruRU"] = {
|
|||||||
["Hide Channel Names"] = "Скрыть названия каналов",
|
["Hide Channel Names"] = "Скрыть названия каналов",
|
||||||
["Hide Chat When Bags Are Opened"] = "Скрыть чат, когда сумки открыты",
|
["Hide Chat When Bags Are Opened"] = "Скрыть чат, когда сумки открыты",
|
||||||
["Hide Combat Log"] = "Скрыть журнал боя",
|
["Hide Combat Log"] = "Скрыть журнал боя",
|
||||||
["Hide Foreign Cooldown Animations"] = "Скрыть сторонние анимации перезарядки",
|
|
||||||
["Hide Group Frames While In Raid"] = "Скрыть окно группы, когда в рейде",
|
["Hide Group Frames While In Raid"] = "Скрыть окно группы, когда в рейде",
|
||||||
["Hide Healthbar On Critters"] = "Скрыть панель здоровья существ",
|
["Hide Healthbar On Critters"] = "Скрыть панель здоровья существ",
|
||||||
["Hide Healthbar On Enemy NPCs"] = "Скрыть панель здоровья вражеских NPC",
|
["Hide Healthbar On Enemy NPCs"] = "Скрыть панель здоровья вражеских NPC",
|
||||||
@@ -404,6 +402,7 @@ pfUI_translation["ruRU"] = {
|
|||||||
["Hide Healthbar On Friendly Players"] = "Скрыть панель здоровья дружеских игроков",
|
["Hide Healthbar On Friendly Players"] = "Скрыть панель здоровья дружеских игроков",
|
||||||
["Hide Healthbar On Neutral NPCs"] = "Скрыть панель здоровья нейтральных NPC",
|
["Hide Healthbar On Neutral NPCs"] = "Скрыть панель здоровья нейтральных NPC",
|
||||||
["Hide Healthbar On Totems"] = "Скрыть панель здоровья тотемов",
|
["Hide Healthbar On Totems"] = "Скрыть панель здоровья тотемов",
|
||||||
|
["Hide Numbers On Spell Cooldowns Up To (Seconds)"] = nil,
|
||||||
["Hide Timeout"] = "Время до скрытия",
|
["Hide Timeout"] = "Время до скрытия",
|
||||||
["Hide When Entering Combat"] = "Скрыть при вхождении в режим боя",
|
["Hide When Entering Combat"] = "Скрыть при вхождении в режим боя",
|
||||||
["Highlight Equipped Items"] = "Выделять экипированные предметы",
|
["Highlight Equipped Items"] = "Выделять экипированные предметы",
|
||||||
@@ -432,7 +431,6 @@ pfUI_translation["ruRU"] = {
|
|||||||
["Inherit Default Colors"] = "Наследовать цвета по умолчанию",
|
["Inherit Default Colors"] = "Наследовать цвета по умолчанию",
|
||||||
["Inputbox Height"] = "Высота поля ввода",
|
["Inputbox Height"] = "Высота поля ввода",
|
||||||
["Inputbox Width"] = "Ширина поля ввода",
|
["Inputbox Width"] = "Ширина поля ввода",
|
||||||
["Instant"] = "Мгновенно",
|
|
||||||
["Integrations"] = "Встраиваемые",
|
["Integrations"] = "Встраиваемые",
|
||||||
["Invert Health Bar"] = "Инвертировать панель здоровья",
|
["Invert Health Bar"] = "Инвертировать панель здоровья",
|
||||||
["is not allowed in profile name"] = "не разрешено в имени профиля",
|
["is not allowed in profile name"] = "не разрешено в имени профиля",
|
||||||
@@ -477,6 +475,7 @@ pfUI_translation["ruRU"] = {
|
|||||||
["Look & Feel"] = "Смотреть и чувствовать",
|
["Look & Feel"] = "Смотреть и чувствовать",
|
||||||
["Loot"] = "Добыча",
|
["Loot"] = "Добыча",
|
||||||
["Loot & Spam"] = "Добыча & Спам",
|
["Loot & Spam"] = "Добыча & Спам",
|
||||||
|
["Loss Of Control"] = nil,
|
||||||
["Macro Text Color"] = "Цвет текста макросов",
|
["Macro Text Color"] = "Цвет текста макросов",
|
||||||
["Macro Text Size"] = "Размер текста макросов",
|
["Macro Text Size"] = "Размер текста макросов",
|
||||||
["Main Actionbar"] = "Основная",
|
["Main Actionbar"] = "Основная",
|
||||||
@@ -516,6 +515,7 @@ pfUI_translation["ruRU"] = {
|
|||||||
["Name | Health Missing"] = "Имя | Отсутствующее здоровье",
|
["Name | Health Missing"] = "Имя | Отсутствующее здоровье",
|
||||||
["Name (Linebreak) -Health Missing"] = "Имя (разрыв линии) -Отсутствует здоровье",
|
["Name (Linebreak) -Health Missing"] = "Имя (разрыв линии) -Отсутствует здоровье",
|
||||||
["Nameplate Border Size"] = "Размер границы индикатора здоровья",
|
["Nameplate Border Size"] = "Размер границы индикатора здоровья",
|
||||||
|
["Nameplate Debuffs"] = nil,
|
||||||
["Nameplates"] = "Индикаторы здоровья",
|
["Nameplates"] = "Индикаторы здоровья",
|
||||||
["Nameplate Width"] = "Ширина индикатора здоровья",
|
["Nameplate Width"] = "Ширина индикатора здоровья",
|
||||||
["Name (Short)"] = "Короткое имя",
|
["Name (Short)"] = "Короткое имя",
|
||||||
@@ -554,6 +554,7 @@ pfUI_translation["ruRU"] = {
|
|||||||
["On State Change"] = "Изменение статуса",
|
["On State Change"] = "Изменение статуса",
|
||||||
["Options"] = "Опции",
|
["Options"] = "Опции",
|
||||||
["Orientation"] = "Ориентация",
|
["Orientation"] = "Ориентация",
|
||||||
|
["Other Addons"] = nil,
|
||||||
["Other Panel: Minimap"] = "Другая панель: миникарта",
|
["Other Panel: Minimap"] = "Другая панель: миникарта",
|
||||||
["Outline"] = "Контурный", -- font style
|
["Outline"] = "Контурный", -- font style
|
||||||
["Outlines"] = "Контуры",
|
["Outlines"] = "Контуры",
|
||||||
@@ -582,6 +583,7 @@ pfUI_translation["ruRU"] = {
|
|||||||
["Pixel"] = "пиксель",
|
["Pixel"] = "пиксель",
|
||||||
["Player"] = "Игрок",
|
["Player"] = "Игрок",
|
||||||
["Player Buff Bar"] = "Панель баффов игрока",
|
["Player Buff Bar"] = "Панель баффов игрока",
|
||||||
|
["Player Buffs"] = nil,
|
||||||
["Player Castbar"] = "Панель применения игрока",
|
["Player Castbar"] = "Панель применения игрока",
|
||||||
["Player Debuff Bar"] = "Панель дебаффов игрока",
|
["Player Debuff Bar"] = "Панель дебаффов игрока",
|
||||||
["Player SP/Haste Display"] = nil,
|
["Player SP/Haste Display"] = nil,
|
||||||
@@ -592,6 +594,7 @@ pfUI_translation["ruRU"] = {
|
|||||||
["Portrait Alpha"] = "Прозрачность портрета",
|
["Portrait Alpha"] = "Прозрачность портрета",
|
||||||
["Portrait Height"] = "Рост портрета",
|
["Portrait Height"] = "Рост портрета",
|
||||||
["Portrait Position"] = "Расположение портрета",
|
["Portrait Position"] = "Расположение портрета",
|
||||||
|
["Portrait Style"] = nil,
|
||||||
["Portrait Width"] = "Ширина портрета",
|
["Portrait Width"] = "Ширина портрета",
|
||||||
["Powerbar"] = "Панель силы (мана, ярость, энергия, фокус)",
|
["Powerbar"] = "Панель силы (мана, ярость, энергия, фокус)",
|
||||||
["Power Bar Anchor"] = "Привязка панели силы",
|
["Power Bar Anchor"] = "Привязка панели силы",
|
||||||
@@ -647,6 +650,7 @@ pfUI_translation["ruRU"] = {
|
|||||||
["Resting"] = "Отдыхающий",
|
["Resting"] = "Отдыхающий",
|
||||||
["Reveal Unexplored Areas"] = "Показывать неисследованные области",
|
["Reveal Unexplored Areas"] = "Показывать неисследованные области",
|
||||||
["Switch to current zone"] = "Перейти к текущей зоне",
|
["Switch to current zone"] = "Перейти к текущей зоне",
|
||||||
|
["Reverse Sweep On"] = nil,
|
||||||
["Right"] = "Справа",
|
["Right"] = "Справа",
|
||||||
["Right Actionbar"] = "Правая",
|
["Right Actionbar"] = "Правая",
|
||||||
["Right Anchor"] = nil,
|
["Right Anchor"] = nil,
|
||||||
@@ -668,6 +672,7 @@ pfUI_translation["ruRU"] = {
|
|||||||
["Save & Reload"] = "Сохранить и перезагрузить",
|
["Save & Reload"] = "Сохранить и перезагрузить",
|
||||||
["Scale"] = "Масштаб",
|
["Scale"] = "Масштаб",
|
||||||
["Scale Border On HiDPI Displays"] = "Масштабировать границы на HiDPI мониторах",
|
["Scale Border On HiDPI Displays"] = "Масштабировать границы на HiDPI мониторах",
|
||||||
|
["Scale Font Size With Icon"] = nil,
|
||||||
["Scaling"] = "Масштаб интерфейса",
|
["Scaling"] = "Масштаб интерфейса",
|
||||||
["Screen Edge Glow Intensity"] = "Интенсивность свечения на краях экрана",
|
["Screen Edge Glow Intensity"] = "Интенсивность свечения на краях экрана",
|
||||||
["Screen Resolution"] = "Разрешение экрана",
|
["Screen Resolution"] = "Разрешение экрана",
|
||||||
@@ -727,7 +732,7 @@ pfUI_translation["ruRU"] = {
|
|||||||
["Show Loot Icon"] = "Показать иконку добычи",
|
["Show Loot Icon"] = "Показать иконку добычи",
|
||||||
["Show Macro Text"] = "Показать текст макросов",
|
["Show Macro Text"] = "Показать текст макросов",
|
||||||
["Show Meters By Default"] = "Показать счетчики по умолчанию",
|
["Show Meters By Default"] = "Показать счетчики по умолчанию",
|
||||||
["Show Milliseconds When Timer Runs Out"] = "Показать миллисекунды, когда таймер заканчивается",
|
["Show Numbers On"] = nil,
|
||||||
["Show On Friendly Units"] = "Показать на дружественных юнитах",
|
["Show On Friendly Units"] = "Показать на дружественных юнитах",
|
||||||
["Show On Hostile Units"] = "Показать на вражеских юнитах",
|
["Show On Hostile Units"] = "Показать на вражеских юнитах",
|
||||||
["Show Procs Indicators"] = "Показать проки (Procs)",
|
["Show Procs Indicators"] = "Показать проки (Procs)",
|
||||||
@@ -745,10 +750,10 @@ pfUI_translation["ruRU"] = {
|
|||||||
["Show Spell Icon"] = "Показать иконку заклинания",
|
["Show Spell Icon"] = "Показать иконку заклинания",
|
||||||
["Show Spell Name"] = "Показать название заклинания",
|
["Show Spell Name"] = "Показать название заклинания",
|
||||||
["Show Stacks"] = "Показать стаки",
|
["Show Stacks"] = "Показать стаки",
|
||||||
|
["Show Sweep On"] = nil,
|
||||||
|
["Show Tenths Below 5 Seconds"] = nil,
|
||||||
["Show Text"] = nil,
|
["Show Text"] = nil,
|
||||||
["Show Time Left"] = "Показать оставшееся время",
|
|
||||||
["Show Timer"] = "Показать таймер",
|
["Show Timer"] = "Показать таймер",
|
||||||
["Show Timer Animation"] = "Показать анимацию таймера",
|
|
||||||
["Show Timer Text"] = "Показать текст таймера",
|
["Show Timer Text"] = "Показать текст таймера",
|
||||||
["Show Totems Indicators"] = "Показать индикаторы тотемов",
|
["Show Totems Indicators"] = "Показать индикаторы тотемов",
|
||||||
["Shrink & Return"] = "Сжатие и возврат",
|
["Shrink & Return"] = "Сжатие и возврат",
|
||||||
@@ -765,8 +770,10 @@ pfUI_translation["ruRU"] = {
|
|||||||
["Soulshards"] = "Камни душ",
|
["Soulshards"] = "Камни душ",
|
||||||
["Spacing"] = "Расстояние",
|
["Spacing"] = "Расстояние",
|
||||||
["Special Recipient"] = "Конкретный получатель",
|
["Special Recipient"] = "Конкретный получатель",
|
||||||
|
["Spellbook And Character"] = nil,
|
||||||
["Spell Power Color"] = nil,
|
["Spell Power Color"] = nil,
|
||||||
["Square"] = "Квадрат",
|
["Square"] = "Квадрат",
|
||||||
|
["Stack Count Font Size"] = nil,
|
||||||
["Stance Bar 1"] = "Панель 1-ой стойки",
|
["Stance Bar 1"] = "Панель 1-ой стойки",
|
||||||
["Stance Bar 2"] = "Панель 2-ой стойки",
|
["Stance Bar 2"] = "Панель 2-ой стойки",
|
||||||
["Stance Bar 3"] = "Панель 3-ей стойки",
|
["Stance Bar 3"] = "Панель 3-ей стойки",
|
||||||
@@ -801,7 +808,6 @@ pfUI_translation["ruRU"] = {
|
|||||||
["Thistle Tea"] = nil,
|
["Thistle Tea"] = nil,
|
||||||
["Threshold To Trust Health Estimation"] = "Точность подсчетов здоровья",
|
["Threshold To Trust Health Estimation"] = "Точность подсчетов здоровья",
|
||||||
["Time"] = "Время",
|
["Time"] = "Время",
|
||||||
["Timer"] = "Таймер",
|
|
||||||
["Time Remaining"] = "Время до нового уровня",
|
["Time Remaining"] = "Время до нового уровня",
|
||||||
["Timer In Minutes"] = "Таймер в минутах",
|
["Timer In Minutes"] = "Таймер в минутах",
|
||||||
["Timestamp Brackets"] = "Скобки отметок времени",
|
["Timestamp Brackets"] = "Скобки отметок времени",
|
||||||
@@ -812,6 +818,7 @@ pfUI_translation["ruRU"] = {
|
|||||||
["Tiny (PixelPerfect)"] = "Крошечный (идеальный пиксель)",
|
["Tiny (PixelPerfect)"] = "Крошечный (идеальный пиксель)",
|
||||||
["Toggle as Tank"] = "Переключить как танк",
|
["Toggle as Tank"] = "Переключить как танк",
|
||||||
["Tooltip"] = "Подсказка",
|
["Tooltip"] = "Подсказка",
|
||||||
|
["Tooltip Auras"] = nil,
|
||||||
["Tooltip Position"] = "Расположение подсказки",
|
["Tooltip Position"] = "Расположение подсказки",
|
||||||
["Tooltip Text Font"] = nil,
|
["Tooltip Text Font"] = nil,
|
||||||
["Tooltip Text Font Size"] = nil,
|
["Tooltip Text Font Size"] = nil,
|
||||||
@@ -823,11 +830,13 @@ pfUI_translation["ruRU"] = {
|
|||||||
["Total Gold"] = "Всего золота",
|
["Total Gold"] = "Всего золота",
|
||||||
["Totem Direction"] = "Направление тотемов",
|
["Totem Direction"] = "Направление тотемов",
|
||||||
["Totem Icons"] = "Иконки тотемов",
|
["Totem Icons"] = "Иконки тотемов",
|
||||||
|
["Totems"] = nil,
|
||||||
["Tracked Reputation"] = "Отслеживаемая репутация",
|
["Tracked Reputation"] = "Отслеживаемая репутация",
|
||||||
["Tracking Icon Size"] = "Размер иконки отслеживания",
|
["Tracking Icon Size"] = "Размер иконки отслеживания",
|
||||||
["Trigger Actions On Key Down"] = "Активация действий при нажатии клавиши (а не ее отпускании)",
|
["Trigger Actions On Key Down"] = "Активация действий при нажатии клавиши (а не ее отпускании)",
|
||||||
["UI-Scale"] = "Масштаб пользовательского интерфейса",
|
["UI-Scale"] = "Масштаб пользовательского интерфейса",
|
||||||
["Unbuffed"] = "Без баффа",
|
["Unbuffed"] = "Без баффа",
|
||||||
|
["Unit Frame Auras"] = nil,
|
||||||
["Unit Frame Border Size"] = "Размер границы окна юнита",
|
["Unit Frame Border Size"] = "Размер границы окна юнита",
|
||||||
["Unit Frame Layout"] = "Макет окна юнита",
|
["Unit Frame Layout"] = "Макет окна юнита",
|
||||||
["Unit Frames"] = "Окна юнита",
|
["Unit Frames"] = "Окна юнита",
|
||||||
@@ -854,7 +863,6 @@ pfUI_translation["ruRU"] = {
|
|||||||
["Use Custom Color Power Bar Background"] = "Использовать пользовательский цвет фона панели силы",
|
["Use Custom Color Power Bar Background"] = "Использовать пользовательский цвет фона панели силы",
|
||||||
["Use Custom Font Settings"] = "Использовать пользовательские настройки шрифта",
|
["Use Custom Font Settings"] = "Использовать пользовательские настройки шрифта",
|
||||||
["Use Custom Spell Power Color (unchecked = biggest school color)"] = nil,
|
["Use Custom Spell Power Color (unchecked = biggest school color)"] = nil,
|
||||||
["Use Dynamic Font Size"] = "Использовать динамический размер шрифта",
|
|
||||||
["Use Item Rarity Color For Loot-Roll Timer"] = "Использовать цвет качества предмета для таймера распределения добычи",
|
["Use Item Rarity Color For Loot-Roll Timer"] = "Использовать цвет качества предмета для таймера распределения добычи",
|
||||||
["Use Original Game Fonts"] = "Использовать оригинальные игровые шрифты",
|
["Use Original Game Fonts"] = "Использовать оригинальные игровые шрифты",
|
||||||
["Use Raid Frames To Display Group Members"] = "Использовать окна рейда для отображения членов группы",
|
["Use Raid Frames To Display Group Members"] = "Использовать окна рейда для отображения членов группы",
|
||||||
|
|||||||
Vendored
+28
-20
@@ -1,4 +1,6 @@
|
|||||||
pfUI_translation["zhCN"] = {
|
pfUI_translation["zhCN"] = {
|
||||||
|
["2D"] = nil,
|
||||||
|
["3D"] = nil,
|
||||||
["3D World Unit Font"] = "3D世界单位字体",
|
["3D World Unit Font"] = "3D世界单位字体",
|
||||||
["Abbreviate Numbers (4200 -> 4.2k)"] = "缩写数字格式[4200为4.2K]",
|
["Abbreviate Numbers (4200 -> 4.2k)"] = "缩写数字格式[4200为4.2K]",
|
||||||
["Abbreviate Unit Names"] = "缩写单位名称",
|
["Abbreviate Unit Names"] = "缩写单位名称",
|
||||||
@@ -6,6 +8,7 @@ pfUI_translation["zhCN"] = {
|
|||||||
["Actionbar"] = "动作条",
|
["Actionbar"] = "动作条",
|
||||||
["Action Bar"] = "动作条",
|
["Action Bar"] = "动作条",
|
||||||
["Action Bar Border Size"] = "动作条边框大小",
|
["Action Bar Border Size"] = "动作条边框大小",
|
||||||
|
["Action Bars"] = nil,
|
||||||
["Active Addons"] = "激活的插件",
|
["Active Addons"] = "激活的插件",
|
||||||
["Add button to the frame"] = "添加按钮到框架",
|
["Add button to the frame"] = "添加按钮到框架",
|
||||||
["Added button"] = "已添加按钮",
|
["Added button"] = "已添加按钮",
|
||||||
@@ -27,11 +30,11 @@ pfUI_translation["zhCN"] = {
|
|||||||
["Always Show Item Comparison"] = "始终显示装备比较(或按SHIFT键)",
|
["Always Show Item Comparison"] = "始终显示装备比较(或按SHIFT键)",
|
||||||
["Always Show On Target Units"] = "始终在目标单位上显示",
|
["Always Show On Target Units"] = "始终在目标单位上显示",
|
||||||
["Always Show On Units With Missing HP"] = "始终在未满血单位上显示",
|
["Always Show On Units With Missing HP"] = "始终在未满血单位上显示",
|
||||||
["Always Use 2D Portraits"] = "始终使用2D头像",
|
|
||||||
["Ammo Counter"] = "弹药数量",
|
["Ammo Counter"] = "弹药数量",
|
||||||
["Anchor Bags Above Chat"] = "将背包锚定在聊天框上方",
|
["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 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"] = "发现新版本!",
|
["A new version is available"] = "发现新版本!",
|
||||||
|
["Animate Health And Power Bars"] = nil,
|
||||||
["Appearance"] = "外观设置",
|
["Appearance"] = "外观设置",
|
||||||
["Ascending"] = "上移",
|
["Ascending"] = "上移",
|
||||||
["Author"] = "作者",
|
["Author"] = "作者",
|
||||||
@@ -78,7 +81,7 @@ pfUI_translation["zhCN"] = {
|
|||||||
["Buffbar Width"] = "Buff条宽度",
|
["Buffbar Width"] = "Buff条宽度",
|
||||||
["Buff/Debuff Icons"] = "Buff/Debuff图标",
|
["Buff/Debuff Icons"] = "Buff/Debuff图标",
|
||||||
["Buff/Debuff Indicators"] = "Buff/Debuff指示器",
|
["Buff/Debuff Indicators"] = "Buff/Debuff指示器",
|
||||||
["Buff Font Size"] = "Buff字体大小",
|
["Buff Indicators"] = nil,
|
||||||
["Buff Limit"] = "Buff总数量",
|
["Buff Limit"] = "Buff总数量",
|
||||||
["Buff Position"] = "Buff显示的位置",
|
["Buff Position"] = "Buff显示的位置",
|
||||||
["Buffs"] = "Buff(增益)",
|
["Buffs"] = "Buff(增益)",
|
||||||
@@ -120,9 +123,13 @@ pfUI_translation["zhCN"] = {
|
|||||||
["Chat Bubble Transparency"] = "聊天框气泡效果透明度",
|
["Chat Bubble Transparency"] = "聊天框气泡效果透明度",
|
||||||
["Chat Default Brackets"] = "聊天框默认括号",
|
["Chat Default Brackets"] = "聊天框默认括号",
|
||||||
["Class"] = "职业",
|
["Class"] = "职业",
|
||||||
|
["Class Icon (Round)"] = nil,
|
||||||
|
["Class Icon (Square)"] = nil,
|
||||||
["Clear Rolls"] = "清除Roll点",
|
["Clear Rolls"] = "清除Roll点",
|
||||||
["Click Action"] = "点击操作",
|
["Click Action"] = "点击操作",
|
||||||
["Click Casting"] = "点击施法",
|
["Click Casting"] = "点击施法",
|
||||||
|
["Click to undress"] = nil,
|
||||||
|
["Undress"] = nil,
|
||||||
["Clock"] = "时间",
|
["Clock"] = "时间",
|
||||||
["Close"] = "关闭",
|
["Close"] = "关闭",
|
||||||
["Collapse Empty Slots"] = nil,
|
["Collapse Empty Slots"] = nil,
|
||||||
@@ -145,21 +152,16 @@ pfUI_translation["zhCN"] = {
|
|||||||
["Configuration"] = "配置",
|
["Configuration"] = "配置",
|
||||||
["Configure"] = "配置",
|
["Configure"] = "配置",
|
||||||
["Cooldown"] = "冷却时间",
|
["Cooldown"] = "冷却时间",
|
||||||
|
["Cooldown Color (5 Seconds Or Less)"] = nil,
|
||||||
["Cooldown Color (Days)"] = "技能冷却时间颜色[天]",
|
["Cooldown Color (Days)"] = "技能冷却时间颜色[天]",
|
||||||
["Cooldown Color (Hours)"] = "技能冷却时间颜色[时]",
|
["Cooldown Color (Hours)"] = "技能冷却时间颜色[时]",
|
||||||
["Cooldown Color (Less than 3 Sec)"] = "技能冷却时间颜色[少于3秒]",
|
|
||||||
["Cooldown Color (Minutes)"] = "技能冷却时间颜色[分]",
|
["Cooldown Color (Minutes)"] = "技能冷却时间颜色[分]",
|
||||||
["Cooldown Color (Seconds)"] = "技能冷却时间颜色[秒]",
|
["Cooldown Color (Seconds)"] = "技能冷却时间颜色[秒]",
|
||||||
["Cooldown / Durations"] = "冷却 / 时长",
|
["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 Threshold"] = "冷却监控阈值(只监控大于该数值的技能)",
|
||||||
["Cooldown Text Time Threshold"] = "技能冷却时间文字临界值",
|
|
||||||
["Coordinates Location"] = "坐标位置",
|
["Coordinates Location"] = "坐标位置",
|
||||||
["Coordinates On Minimap"] = "小地图上的坐标",
|
["Coordinates On Minimap"] = "小地图上的坐标",
|
||||||
|
["Copied to clipboard"] = nil,
|
||||||
["Count"] = "计数器",
|
["Count"] = "计数器",
|
||||||
["Create Profile"] = "新建配置",
|
["Create Profile"] = "新建配置",
|
||||||
["Ctrl-Click"] = "CTRL点击",
|
["Ctrl-Click"] = "CTRL点击",
|
||||||
@@ -276,12 +278,9 @@ pfUI_translation["zhCN"] = {
|
|||||||
["Enable Custom Incoming Whispers Layout"] = "启用私聊样式",
|
["Enable Custom Incoming Whispers Layout"] = "启用私聊样式",
|
||||||
["Enable Debuff Display"] = "启用Debuff显示",
|
["Enable Debuff Display"] = "启用Debuff显示",
|
||||||
["Enable Debuffs"] = "显示Debuff",
|
["Enable Debuffs"] = "显示Debuff",
|
||||||
["Enable Durations On Blizzard Frames"] = "在暴雪栏显示冷却倒计时",
|
|
||||||
["Enable Durations On Foreign Frames"] = "在技能栏显示冷却倒计时",
|
|
||||||
["Enable Energy Ticks"] = "显示能量刻度",
|
["Enable Energy Ticks"] = "显示能量刻度",
|
||||||
["Enable Extended Guild Information"] = "公会信息扩展显示",
|
["Enable Extended Guild Information"] = "公会信息扩展显示",
|
||||||
["Enable Frame Shadow"] = "启用框架阴影",
|
["Enable Frame Shadow"] = "启用框架阴影",
|
||||||
["Enable Full-Text Search"] = "启用全文搜索",
|
|
||||||
["Enable Indicators"] = "启用指示器",
|
["Enable Indicators"] = "启用指示器",
|
||||||
["Enable Item Quality Color For Equipment Only"] = "仅在装备上显示品质颜色",
|
["Enable Item Quality Color For Equipment Only"] = "仅在装备上显示品质颜色",
|
||||||
["Enable \"Loot & Spam\" Chat Window"] = "启用[拾取、综合]聊天窗口",
|
["Enable \"Loot & Spam\" Chat Window"] = "启用[拾取、综合]聊天窗口",
|
||||||
@@ -336,6 +335,7 @@ pfUI_translation["zhCN"] = {
|
|||||||
["Font"] = "字体",
|
["Font"] = "字体",
|
||||||
["Font Options"] = "字体设置",
|
["Font Options"] = "字体设置",
|
||||||
["Font Padding"] = "字体偏移",
|
["Font Padding"] = "字体偏移",
|
||||||
|
["Font Size"] = nil,
|
||||||
["Font Style"] = "字体风格",
|
["Font Style"] = "字体风格",
|
||||||
["Force Blizzard Borders (|cffffaaaaExperimental|r)"] = "强制显示暴雪边框(|cffffaaaa测试功能|r)",
|
["Force Blizzard Borders (|cffffaaaaExperimental|r)"] = "强制显示暴雪边框(|cffffaaaa测试功能|r)",
|
||||||
["fps"] = "帧",
|
["fps"] = "帧",
|
||||||
@@ -370,7 +370,6 @@ pfUI_translation["zhCN"] = {
|
|||||||
["Health"] = "生命值",
|
["Health"] = "生命值",
|
||||||
["Health - Auto"] = "动态生命值和百分比",
|
["Health - Auto"] = "动态生命值和百分比",
|
||||||
["Healthbar"] = "血条",
|
["Healthbar"] = "血条",
|
||||||
["Healthbar Animation Speed"] = "掉血动画速度",
|
|
||||||
["Health Bar Color"] = "血条颜色",
|
["Health Bar Color"] = "血条颜色",
|
||||||
["Healthbar Embedded"] = "血条上显示动态头像",
|
["Healthbar Embedded"] = "血条上显示动态头像",
|
||||||
["Healthbar Height"] = "血条高度",
|
["Healthbar Height"] = "血条高度",
|
||||||
@@ -395,7 +394,6 @@ pfUI_translation["zhCN"] = {
|
|||||||
["Hide Channel Names"] = "隐藏频道名称",
|
["Hide Channel Names"] = "隐藏频道名称",
|
||||||
["Hide Chat When Bags Are Opened"] = "打开背包后隐藏聊天框",
|
["Hide Chat When Bags Are Opened"] = "打开背包后隐藏聊天框",
|
||||||
["Hide Combat Log"] = "隐藏战斗日志",
|
["Hide Combat Log"] = "隐藏战斗日志",
|
||||||
["Hide Foreign Cooldown Animations"] = "隐藏技能冷却动画",
|
|
||||||
["Hide Group Frames While In Raid"] = "在团队框架下隐藏小队框架",
|
["Hide Group Frames While In Raid"] = "在团队框架下隐藏小队框架",
|
||||||
["Hide Healthbar On Critters"] = "隐藏小动物血条",
|
["Hide Healthbar On Critters"] = "隐藏小动物血条",
|
||||||
["Hide Healthbar On Enemy NPCs"] = "隐藏敌方NPCs血条",
|
["Hide Healthbar On Enemy NPCs"] = "隐藏敌方NPCs血条",
|
||||||
@@ -404,6 +402,7 @@ pfUI_translation["zhCN"] = {
|
|||||||
["Hide Healthbar On Friendly Players"] = "隐藏友好玩家血条",
|
["Hide Healthbar On Friendly Players"] = "隐藏友好玩家血条",
|
||||||
["Hide Healthbar On Neutral NPCs"] = "隐藏中立单位血条",
|
["Hide Healthbar On Neutral NPCs"] = "隐藏中立单位血条",
|
||||||
["Hide Healthbar On Totems"] = "隐藏图腾血条",
|
["Hide Healthbar On Totems"] = "隐藏图腾血条",
|
||||||
|
["Hide Numbers On Spell Cooldowns Up To (Seconds)"] = nil,
|
||||||
["Hide Timeout"] = "超时隐藏",
|
["Hide Timeout"] = "超时隐藏",
|
||||||
["Hide When Entering Combat"] = "进入战斗时隐藏",
|
["Hide When Entering Combat"] = "进入战斗时隐藏",
|
||||||
["Highlight Equipped Items"] = "高亮已装备的物品",
|
["Highlight Equipped Items"] = "高亮已装备的物品",
|
||||||
@@ -432,7 +431,6 @@ pfUI_translation["zhCN"] = {
|
|||||||
["Inherit Default Colors"] = "继承默认颜色",
|
["Inherit Default Colors"] = "继承默认颜色",
|
||||||
["Inputbox Height"] = "输入框高度",
|
["Inputbox Height"] = "输入框高度",
|
||||||
["Inputbox Width"] = "输入框宽度",
|
["Inputbox Width"] = "输入框宽度",
|
||||||
["Instant"] = "极快",
|
|
||||||
["Integrations"] = "整合",
|
["Integrations"] = "整合",
|
||||||
["Invert Health Bar"] = "血量反色显示",
|
["Invert Health Bar"] = "血量反色显示",
|
||||||
["is not allowed in profile name"] = "在配置文件名中不允许",
|
["is not allowed in profile name"] = "在配置文件名中不允许",
|
||||||
@@ -477,6 +475,7 @@ pfUI_translation["zhCN"] = {
|
|||||||
["Look & Feel"] = "外观和风格",
|
["Look & Feel"] = "外观和风格",
|
||||||
["Loot"] = "拾取",
|
["Loot"] = "拾取",
|
||||||
["Loot & Spam"] = "拾取 & 聊天",
|
["Loot & Spam"] = "拾取 & 聊天",
|
||||||
|
["Loss Of Control"] = nil,
|
||||||
["Macro Text Color"] = "宏文本颜色",
|
["Macro Text Color"] = "宏文本颜色",
|
||||||
["Macro Text Size"] = "宏文本大小",
|
["Macro Text Size"] = "宏文本大小",
|
||||||
["Main Actionbar"] = "主动作条",
|
["Main Actionbar"] = "主动作条",
|
||||||
@@ -516,6 +515,7 @@ pfUI_translation["zhCN"] = {
|
|||||||
["Name | Health Missing"] = "名字 | 失去的生命值",
|
["Name | Health Missing"] = "名字 | 失去的生命值",
|
||||||
["Name (Linebreak) -Health Missing"] = "名字 (换行符) -失去的生命值",
|
["Name (Linebreak) -Health Missing"] = "名字 (换行符) -失去的生命值",
|
||||||
["Nameplate Border Size"] = "姓名板边框尺寸",
|
["Nameplate Border Size"] = "姓名板边框尺寸",
|
||||||
|
["Nameplate Debuffs"] = nil,
|
||||||
["Nameplates"] = "姓名板",
|
["Nameplates"] = "姓名板",
|
||||||
["Nameplate Width"] = "姓名板宽度",
|
["Nameplate Width"] = "姓名板宽度",
|
||||||
["Name (Short)"] = "名字 (短)",
|
["Name (Short)"] = "名字 (短)",
|
||||||
@@ -554,6 +554,7 @@ pfUI_translation["zhCN"] = {
|
|||||||
["On State Change"] = "状态改变时",
|
["On State Change"] = "状态改变时",
|
||||||
["Options"] = "设置",
|
["Options"] = "设置",
|
||||||
["Orientation"] = "方向",
|
["Orientation"] = "方向",
|
||||||
|
["Other Addons"] = nil,
|
||||||
["Other Panel: Minimap"] = "小地图面板",
|
["Other Panel: Minimap"] = "小地图面板",
|
||||||
["Outline"] = "轮廓",
|
["Outline"] = "轮廓",
|
||||||
["Outlines"] = "轮廓线",
|
["Outlines"] = "轮廓线",
|
||||||
@@ -582,6 +583,7 @@ pfUI_translation["zhCN"] = {
|
|||||||
["Pixel"] = "像素",
|
["Pixel"] = "像素",
|
||||||
["Player"] = "玩家",
|
["Player"] = "玩家",
|
||||||
["Player Buff Bar"] = "玩家Buffs条",
|
["Player Buff Bar"] = "玩家Buffs条",
|
||||||
|
["Player Buffs"] = nil,
|
||||||
["Player Castbar"] = "玩家施法条",
|
["Player Castbar"] = "玩家施法条",
|
||||||
["Player Debuff Bar"] = "玩家Debuffs条",
|
["Player Debuff Bar"] = "玩家Debuffs条",
|
||||||
["Player SP/Haste Display"] = nil,
|
["Player SP/Haste Display"] = nil,
|
||||||
@@ -592,6 +594,7 @@ pfUI_translation["zhCN"] = {
|
|||||||
["Portrait Alpha"] = "人偶透明度",
|
["Portrait Alpha"] = "人偶透明度",
|
||||||
["Portrait Height"] = "纵向高度",
|
["Portrait Height"] = "纵向高度",
|
||||||
["Portrait Position"] = "人偶头像位置",
|
["Portrait Position"] = "人偶头像位置",
|
||||||
|
["Portrait Style"] = nil,
|
||||||
["Portrait Width"] = "纵向宽度",
|
["Portrait Width"] = "纵向宽度",
|
||||||
["Powerbar"] = "能量(蓝)条",
|
["Powerbar"] = "能量(蓝)条",
|
||||||
["Power Bar Anchor"] = "能量条对齐方式(以血条为锚点)",
|
["Power Bar Anchor"] = "能量条对齐方式(以血条为锚点)",
|
||||||
@@ -647,6 +650,7 @@ pfUI_translation["zhCN"] = {
|
|||||||
["Resting"] = "休息中",
|
["Resting"] = "休息中",
|
||||||
["Reveal Unexplored Areas"] = "展示未勘探的地区",
|
["Reveal Unexplored Areas"] = "展示未勘探的地区",
|
||||||
["Switch to current zone"] = nil,
|
["Switch to current zone"] = nil,
|
||||||
|
["Reverse Sweep On"] = nil,
|
||||||
["Right"] = "右边",
|
["Right"] = "右边",
|
||||||
["Right Actionbar"] = "右侧动作条",
|
["Right Actionbar"] = "右侧动作条",
|
||||||
["Right Anchor"] = "右锚点",
|
["Right Anchor"] = "右锚点",
|
||||||
@@ -668,6 +672,7 @@ pfUI_translation["zhCN"] = {
|
|||||||
["Save & Reload"] = "保存并重载",
|
["Save & Reload"] = "保存并重载",
|
||||||
["Scale"] = "比例",
|
["Scale"] = "比例",
|
||||||
["Scale Border On HiDPI Displays"] = "缩放高DPI显示器上的边框",
|
["Scale Border On HiDPI Displays"] = "缩放高DPI显示器上的边框",
|
||||||
|
["Scale Font Size With Icon"] = nil,
|
||||||
["Scaling"] = "UI缩放",
|
["Scaling"] = "UI缩放",
|
||||||
["Screen Edge Glow Intensity"] = "屏幕边缘发光强度",
|
["Screen Edge Glow Intensity"] = "屏幕边缘发光强度",
|
||||||
["Screen Resolution"] = "屏幕分辨率",
|
["Screen Resolution"] = "屏幕分辨率",
|
||||||
@@ -728,7 +733,7 @@ pfUI_translation["zhCN"] = {
|
|||||||
["Show Loot Icon"] = "显示拾取权图标",
|
["Show Loot Icon"] = "显示拾取权图标",
|
||||||
["Show Macro Text"] = "显示宏的名字",
|
["Show Macro Text"] = "显示宏的名字",
|
||||||
["Show Meters By Default"] = "由默认显示其他接口表",
|
["Show Meters By Default"] = "由默认显示其他接口表",
|
||||||
["Show Milliseconds When Timer Runs Out"] = "当冷却即将结束时显示毫秒",
|
["Show Numbers On"] = nil,
|
||||||
["Show On Friendly Units"] = "显示友好单位姓名板",
|
["Show On Friendly Units"] = "显示友好单位姓名板",
|
||||||
["Show On Hostile Units"] = "显示敌对单位姓名板",
|
["Show On Hostile Units"] = "显示敌对单位姓名板",
|
||||||
["Show Procs Indicators"] = "显示触发效果计时器",
|
["Show Procs Indicators"] = "显示触发效果计时器",
|
||||||
@@ -746,10 +751,10 @@ pfUI_translation["zhCN"] = {
|
|||||||
["Show Spell Icon"] = "显示技能图标",
|
["Show Spell Icon"] = "显示技能图标",
|
||||||
["Show Spell Name"] = "显示技能名称",
|
["Show Spell Name"] = "显示技能名称",
|
||||||
["Show Stacks"] = "显示堆叠",
|
["Show Stacks"] = "显示堆叠",
|
||||||
|
["Show Sweep On"] = nil,
|
||||||
|
["Show Tenths Below 5 Seconds"] = nil,
|
||||||
["Show Text"] = "显示文本",
|
["Show Text"] = "显示文本",
|
||||||
["Show Time Left"] = "显示剩余时间",
|
|
||||||
["Show Timer"] = "显示计时器",
|
["Show Timer"] = "显示计时器",
|
||||||
["Show Timer Animation"] = "显示计时器动画",
|
|
||||||
["Show Timer Text"] = "显示计时器文本",
|
["Show Timer Text"] = "显示计时器文本",
|
||||||
["Show Totems Indicators"] = "显示图腾指示器",
|
["Show Totems Indicators"] = "显示图腾指示器",
|
||||||
["Shrink & Return"] = "收缩 & 返回",
|
["Shrink & Return"] = "收缩 & 返回",
|
||||||
@@ -766,8 +771,10 @@ pfUI_translation["zhCN"] = {
|
|||||||
["Soulshards"] = "灵魂碎片",
|
["Soulshards"] = "灵魂碎片",
|
||||||
["Spacing"] = "间距",
|
["Spacing"] = "间距",
|
||||||
["Special Recipient"] = "特殊指定角色",
|
["Special Recipient"] = "特殊指定角色",
|
||||||
|
["Spellbook And Character"] = nil,
|
||||||
["Spell Power Color"] = nil,
|
["Spell Power Color"] = nil,
|
||||||
["Square"] = "方块",
|
["Square"] = "方块",
|
||||||
|
["Stack Count Font Size"] = nil,
|
||||||
["Stance Bar 1"] = "姿态动作条 1",
|
["Stance Bar 1"] = "姿态动作条 1",
|
||||||
["Stance Bar 2"] = "姿态动作条 2",
|
["Stance Bar 2"] = "姿态动作条 2",
|
||||||
["Stance Bar 3"] = "姿态动作条 3",
|
["Stance Bar 3"] = "姿态动作条 3",
|
||||||
@@ -802,7 +809,6 @@ pfUI_translation["zhCN"] = {
|
|||||||
["Thistle Tea"] = "菊花茶",
|
["Thistle Tea"] = "菊花茶",
|
||||||
["Threshold To Trust Health Estimation"] = "信任生命值预估的阈值",
|
["Threshold To Trust Health Estimation"] = "信任生命值预估的阈值",
|
||||||
["Time"] = "时间",
|
["Time"] = "时间",
|
||||||
["Timer"] = "计时器",
|
|
||||||
["Time Remaining"] = "剩余时间",
|
["Time Remaining"] = "剩余时间",
|
||||||
["Timer In Minutes"] = "计时器(分钟)",
|
["Timer In Minutes"] = "计时器(分钟)",
|
||||||
["Timestamp Brackets"] = "时间戳括弧",
|
["Timestamp Brackets"] = "时间戳括弧",
|
||||||
@@ -813,6 +819,7 @@ pfUI_translation["zhCN"] = {
|
|||||||
["Tiny (PixelPerfect)"] = "极小(像素完美)",
|
["Tiny (PixelPerfect)"] = "极小(像素完美)",
|
||||||
["Toggle as Tank"] = "切换成为坦克",
|
["Toggle as Tank"] = "切换成为坦克",
|
||||||
["Tooltip"] = "信息提示框",
|
["Tooltip"] = "信息提示框",
|
||||||
|
["Tooltip Auras"] = nil,
|
||||||
["Tooltip Position"] = "信息提示框位置",
|
["Tooltip Position"] = "信息提示框位置",
|
||||||
["Tooltip Text Font"] = "鼠标提示框字体",
|
["Tooltip Text Font"] = "鼠标提示框字体",
|
||||||
["Tooltip Text Font Size"] ="鼠标提示框字体大小",
|
["Tooltip Text Font Size"] ="鼠标提示框字体大小",
|
||||||
@@ -824,11 +831,13 @@ pfUI_translation["zhCN"] = {
|
|||||||
["Total Gold"] = "总黄金",
|
["Total Gold"] = "总黄金",
|
||||||
["Totem Direction"] = "图腾方向",
|
["Totem Direction"] = "图腾方向",
|
||||||
["Totem Icons"] = "图腾图标",
|
["Totem Icons"] = "图腾图标",
|
||||||
|
["Totems"] = nil,
|
||||||
["Tracked Reputation"] = "被追踪的声望",
|
["Tracked Reputation"] = "被追踪的声望",
|
||||||
["Tracking Icon Size"] = "追踪图标大小",
|
["Tracking Icon Size"] = "追踪图标大小",
|
||||||
["Trigger Actions On Key Down"] = "按下即施法",
|
["Trigger Actions On Key Down"] = "按下即施法",
|
||||||
["UI-Scale"] = "UI缩放比例",
|
["UI-Scale"] = "UI缩放比例",
|
||||||
["Unbuffed"] = "该Buff缺失者",
|
["Unbuffed"] = "该Buff缺失者",
|
||||||
|
["Unit Frame Auras"] = nil,
|
||||||
["Unit Frame Border Size"] = "头像边框大小",
|
["Unit Frame Border Size"] = "头像边框大小",
|
||||||
["Unit Frame Layout"] = "头像框架样式",
|
["Unit Frame Layout"] = "头像框架样式",
|
||||||
["Unit Frames"] = "头像框架",
|
["Unit Frames"] = "头像框架",
|
||||||
@@ -855,7 +864,6 @@ pfUI_translation["zhCN"] = {
|
|||||||
["Use Custom Color Power Bar Background"] = "使用自定义颜色显示能量值背景",
|
["Use Custom Color Power Bar Background"] = "使用自定义颜色显示能量值背景",
|
||||||
["Use Custom Font Settings"] = "使用自定义字体设置",
|
["Use Custom Font Settings"] = "使用自定义字体设置",
|
||||||
["Use Custom Spell Power Color (unchecked = biggest school color)"] = nil,
|
["Use Custom Spell Power Color (unchecked = biggest school color)"] = nil,
|
||||||
["Use Dynamic Font Size"] = "使用动态字体大小",
|
|
||||||
["Use Item Rarity Color For Loot-Roll Timer"] = "为战利品Roll点计时框启用物品稀有颜色",
|
["Use Item Rarity Color For Loot-Roll Timer"] = "为战利品Roll点计时框启用物品稀有颜色",
|
||||||
["Use Original Game Fonts"] = "使用游戏原始字体",
|
["Use Original Game Fonts"] = "使用游戏原始字体",
|
||||||
["Use Raid Frames To Display Group Members"] = '使用团队框架显示小组成员',
|
["Use Raid Frames To Display Group Members"] = '使用团队框架显示小组成员',
|
||||||
|
|||||||
Vendored
+28
-20
@@ -1,4 +1,6 @@
|
|||||||
pfUI_translation["zhTW"] = {
|
pfUI_translation["zhTW"] = {
|
||||||
|
["2D"] = nil,
|
||||||
|
["3D"] = nil,
|
||||||
["3D World Unit Font"] = nil,
|
["3D World Unit Font"] = nil,
|
||||||
["Abbreviate Numbers (4200 -> 4.2k)"] = "縮寫數位格式[4200為4.2K]",
|
["Abbreviate Numbers (4200 -> 4.2k)"] = "縮寫數位格式[4200為4.2K]",
|
||||||
["Abbreviate Unit Names"] = nil,
|
["Abbreviate Unit Names"] = nil,
|
||||||
@@ -6,6 +8,7 @@ pfUI_translation["zhTW"] = {
|
|||||||
["Actionbar"] = "動作條",
|
["Actionbar"] = "動作條",
|
||||||
["Action Bar"] = nil,
|
["Action Bar"] = nil,
|
||||||
["Action Bar Border Size"] = "動作條邊框大小",
|
["Action Bar Border Size"] = "動作條邊框大小",
|
||||||
|
["Action Bars"] = nil,
|
||||||
["Active Addons"] = "啟動的外掛程式",
|
["Active Addons"] = "啟動的外掛程式",
|
||||||
["Add button to the frame"] = nil,
|
["Add button to the frame"] = nil,
|
||||||
["Added button"] = nil,
|
["Added button"] = nil,
|
||||||
@@ -27,11 +30,11 @@ pfUI_translation["zhTW"] = {
|
|||||||
["Always Show Item Comparison"] = "始終顯示裝備比較",
|
["Always Show Item Comparison"] = "始終顯示裝備比較",
|
||||||
["Always Show On Target Units"] = nil,
|
["Always Show On Target Units"] = nil,
|
||||||
["Always Show On Units With Missing HP"] = nil,
|
["Always Show On Units With Missing HP"] = nil,
|
||||||
["Always Use 2D Portraits"] = "始終使用2D頭像",
|
|
||||||
["Ammo Counter"] = "彈藥數量",
|
["Ammo Counter"] = "彈藥數量",
|
||||||
["Anchor Bags Above Chat"] = 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."] = "pfUI的安裝內建有四種風格.點選以下讀取其一",
|
["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,
|
["A new version is available"] = nil,
|
||||||
|
["Animate Health And Power Bars"] = nil,
|
||||||
["Appearance"] = "外觀設置",
|
["Appearance"] = "外觀設置",
|
||||||
["Ascending"] = "下移",
|
["Ascending"] = "下移",
|
||||||
["Author"] = nil,
|
["Author"] = nil,
|
||||||
@@ -78,7 +81,7 @@ pfUI_translation["zhTW"] = {
|
|||||||
["Buffbar Width"] = "Buff寬度",
|
["Buffbar Width"] = "Buff寬度",
|
||||||
["Buff/Debuff Icons"] = nil,
|
["Buff/Debuff Icons"] = nil,
|
||||||
["Buff/Debuff Indicators"] = nil,
|
["Buff/Debuff Indicators"] = nil,
|
||||||
["Buff Font Size"] = "Buff字體大小",
|
["Buff Indicators"] = nil,
|
||||||
["Buff Limit"] = "Buff總數量",
|
["Buff Limit"] = "Buff總數量",
|
||||||
["Buff Position"] = "Buff顯示的位置",
|
["Buff Position"] = "Buff顯示的位置",
|
||||||
["Buffs"] = "Buff(增益)",
|
["Buffs"] = "Buff(增益)",
|
||||||
@@ -120,9 +123,13 @@ pfUI_translation["zhTW"] = {
|
|||||||
["Chat Bubble Transparency"] = "聊天框氣泡效果透明度",
|
["Chat Bubble Transparency"] = "聊天框氣泡效果透明度",
|
||||||
["Chat Default Brackets"] = "聊天框默認括弧",
|
["Chat Default Brackets"] = "聊天框默認括弧",
|
||||||
["Class"] = "職業",
|
["Class"] = "職業",
|
||||||
|
["Class Icon (Round)"] = nil,
|
||||||
|
["Class Icon (Square)"] = nil,
|
||||||
["Clear Rolls"] = "清除Roll點",
|
["Clear Rolls"] = "清除Roll點",
|
||||||
["Click Action"] = "點擊操作",
|
["Click Action"] = "點擊操作",
|
||||||
["Click Casting"] = nil,
|
["Click Casting"] = nil,
|
||||||
|
["Click to undress"] = nil,
|
||||||
|
["Undress"] = nil,
|
||||||
["Clock"] = "時間",
|
["Clock"] = "時間",
|
||||||
["Close"] = "關閉",
|
["Close"] = "關閉",
|
||||||
["Collapse Empty Slots"] = nil,
|
["Collapse Empty Slots"] = nil,
|
||||||
@@ -145,21 +152,16 @@ pfUI_translation["zhTW"] = {
|
|||||||
["Configuration"] = "配置",
|
["Configuration"] = "配置",
|
||||||
["Configure"] = "設置",
|
["Configure"] = "設置",
|
||||||
["Cooldown"] = "冷卻時間",
|
["Cooldown"] = "冷卻時間",
|
||||||
|
["Cooldown Color (5 Seconds Or Less)"] = nil,
|
||||||
["Cooldown Color (Days)"] = "技能冷卻時間顏色[天]",
|
["Cooldown Color (Days)"] = "技能冷卻時間顏色[天]",
|
||||||
["Cooldown Color (Hours)"] = "技能冷卻時間顏色[時]",
|
["Cooldown Color (Hours)"] = "技能冷卻時間顏色[時]",
|
||||||
["Cooldown Color (Less than 3 Sec)"] = "技能冷卻時間顏色[少於3秒]",
|
|
||||||
["Cooldown Color (Minutes)"] = "技能冷卻時間顏色[分]",
|
["Cooldown Color (Minutes)"] = "技能冷卻時間顏色[分]",
|
||||||
["Cooldown Color (Seconds)"] = "技能冷卻時間顏色[秒]",
|
["Cooldown Color (Seconds)"] = "技能冷卻時間顏色[秒]",
|
||||||
["Cooldown / Durations"] = nil,
|
["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 Threshold"] = nil,
|
||||||
["Cooldown Text Time Threshold"] = "技能冷卻時間文字臨界值",
|
|
||||||
["Coordinates Location"] = "座標位置",
|
["Coordinates Location"] = "座標位置",
|
||||||
["Coordinates On Minimap"] = "小地圖上的座標",
|
["Coordinates On Minimap"] = "小地圖上的座標",
|
||||||
|
["Copied to clipboard"] = nil,
|
||||||
["Count"] = "計數器",
|
["Count"] = "計數器",
|
||||||
["Create Profile"] = "新建配置",
|
["Create Profile"] = "新建配置",
|
||||||
["Ctrl-Click"] = "CTRL點擊",
|
["Ctrl-Click"] = "CTRL點擊",
|
||||||
@@ -276,12 +278,9 @@ pfUI_translation["zhTW"] = {
|
|||||||
["Enable Custom Incoming Whispers Layout"] = "啟用私聊樣式",
|
["Enable Custom Incoming Whispers Layout"] = "啟用私聊樣式",
|
||||||
["Enable Debuff Display"] = "啟用Debuff顯示",
|
["Enable Debuff Display"] = "啟用Debuff顯示",
|
||||||
["Enable Debuffs"] = "顯示Debuff",
|
["Enable Debuffs"] = "顯示Debuff",
|
||||||
["Enable Durations On Blizzard Frames"] = "啟用持續時間在暴雪框架上",
|
|
||||||
["Enable Durations On Foreign Frames"] = "啟用持續時間在外來框架上",
|
|
||||||
["Enable Energy Ticks"] = "顯示能量刻度",
|
["Enable Energy Ticks"] = "顯示能量刻度",
|
||||||
["Enable Extended Guild Information"] = "公會資訊擴展顯示",
|
["Enable Extended Guild Information"] = "公會資訊擴展顯示",
|
||||||
["Enable Frame Shadow"] = "啟用框架陰影",
|
["Enable Frame Shadow"] = "啟用框架陰影",
|
||||||
["Enable Full-Text Search"] = nil,
|
|
||||||
["Enable Indicators"] = nil,
|
["Enable Indicators"] = nil,
|
||||||
["Enable Item Quality Color For Equipment Only"] = "僅在裝備上顯示品質顏色",
|
["Enable Item Quality Color For Equipment Only"] = "僅在裝備上顯示品質顏色",
|
||||||
["Enable \"Loot & Spam\" Chat Window"] = "啟用[拾取、綜合]聊天視窗",
|
["Enable \"Loot & Spam\" Chat Window"] = "啟用[拾取、綜合]聊天視窗",
|
||||||
@@ -336,6 +335,7 @@ pfUI_translation["zhTW"] = {
|
|||||||
["Font"] = nil,
|
["Font"] = nil,
|
||||||
["Font Options"] = nil,
|
["Font Options"] = nil,
|
||||||
["Font Padding"] = nil,
|
["Font Padding"] = nil,
|
||||||
|
["Font Size"] = nil,
|
||||||
["Font Style"] = nil,
|
["Font Style"] = nil,
|
||||||
["Force Blizzard Borders (|cffffaaaaExperimental|r)"] = nil,
|
["Force Blizzard Borders (|cffffaaaaExperimental|r)"] = nil,
|
||||||
["fps"] = "幀",
|
["fps"] = "幀",
|
||||||
@@ -370,7 +370,6 @@ pfUI_translation["zhTW"] = {
|
|||||||
["Health"] = nil,
|
["Health"] = nil,
|
||||||
["Health - Auto"] = "動態生命值和百分比",
|
["Health - Auto"] = "動態生命值和百分比",
|
||||||
["Healthbar"] = "生命條",
|
["Healthbar"] = "生命條",
|
||||||
["Healthbar Animation Speed"] = "掉血動畫速度",
|
|
||||||
["Health Bar Color"] = nil,
|
["Health Bar Color"] = nil,
|
||||||
["Healthbar Embedded"] = "血條上顯示動態頭像",
|
["Healthbar Embedded"] = "血條上顯示動態頭像",
|
||||||
["Healthbar Height"] = "生命條高度",
|
["Healthbar Height"] = "生命條高度",
|
||||||
@@ -395,7 +394,6 @@ pfUI_translation["zhTW"] = {
|
|||||||
["Hide Channel Names"] = "隱藏頻道名稱",
|
["Hide Channel Names"] = "隱藏頻道名稱",
|
||||||
["Hide Chat When Bags Are Opened"] = "打開背包後隱藏聊天框",
|
["Hide Chat When Bags Are Opened"] = "打開背包後隱藏聊天框",
|
||||||
["Hide Combat Log"] = "隱藏戰鬥日誌",
|
["Hide Combat Log"] = "隱藏戰鬥日誌",
|
||||||
["Hide Foreign Cooldown Animations"] = nil,
|
|
||||||
["Hide Group Frames While In Raid"] = "在團隊框架下隱藏小隊框架",
|
["Hide Group Frames While In Raid"] = "在團隊框架下隱藏小隊框架",
|
||||||
["Hide Healthbar On Critters"] = nil,
|
["Hide Healthbar On Critters"] = nil,
|
||||||
["Hide Healthbar On Enemy NPCs"] = nil,
|
["Hide Healthbar On Enemy NPCs"] = nil,
|
||||||
@@ -404,6 +402,7 @@ pfUI_translation["zhTW"] = {
|
|||||||
["Hide Healthbar On Friendly Players"] = nil,
|
["Hide Healthbar On Friendly Players"] = nil,
|
||||||
["Hide Healthbar On Neutral NPCs"] = nil,
|
["Hide Healthbar On Neutral NPCs"] = nil,
|
||||||
["Hide Healthbar On Totems"] = nil,
|
["Hide Healthbar On Totems"] = nil,
|
||||||
|
["Hide Numbers On Spell Cooldowns Up To (Seconds)"] = nil,
|
||||||
["Hide Timeout"] = nil,
|
["Hide Timeout"] = nil,
|
||||||
["Hide When Entering Combat"] = nil,
|
["Hide When Entering Combat"] = nil,
|
||||||
["Highlight Equipped Items"] = nil,
|
["Highlight Equipped Items"] = nil,
|
||||||
@@ -432,7 +431,6 @@ pfUI_translation["zhTW"] = {
|
|||||||
["Inherit Default Colors"] = nil,
|
["Inherit Default Colors"] = nil,
|
||||||
["Inputbox Height"] = "輸入框高度",
|
["Inputbox Height"] = "輸入框高度",
|
||||||
["Inputbox Width"] = "輸入框寬度",
|
["Inputbox Width"] = "輸入框寬度",
|
||||||
["Instant"] = "極快",
|
|
||||||
["Integrations"] = nil,
|
["Integrations"] = nil,
|
||||||
["Invert Health Bar"] = "血量反色顯示",
|
["Invert Health Bar"] = "血量反色顯示",
|
||||||
["is not allowed in profile name"] = "在設定檔名中不允許",
|
["is not allowed in profile name"] = "在設定檔名中不允許",
|
||||||
@@ -477,6 +475,7 @@ pfUI_translation["zhTW"] = {
|
|||||||
["Look & Feel"] = nil,
|
["Look & Feel"] = nil,
|
||||||
["Loot"] = "拾取",
|
["Loot"] = "拾取",
|
||||||
["Loot & Spam"] = "拾取 & 聊天",
|
["Loot & Spam"] = "拾取 & 聊天",
|
||||||
|
["Loss Of Control"] = nil,
|
||||||
["Macro Text Color"] = nil,
|
["Macro Text Color"] = nil,
|
||||||
["Macro Text Size"] = nil,
|
["Macro Text Size"] = nil,
|
||||||
["Main Actionbar"] = nil,
|
["Main Actionbar"] = nil,
|
||||||
@@ -516,6 +515,7 @@ pfUI_translation["zhTW"] = {
|
|||||||
["Name | Health Missing"] = nil,
|
["Name | Health Missing"] = nil,
|
||||||
["Name (Linebreak) -Health Missing"] = nil,
|
["Name (Linebreak) -Health Missing"] = nil,
|
||||||
["Nameplate Border Size"] = nil,
|
["Nameplate Border Size"] = nil,
|
||||||
|
["Nameplate Debuffs"] = nil,
|
||||||
["Nameplates"] = "姓名板",
|
["Nameplates"] = "姓名板",
|
||||||
["Nameplate Width"] = "姓名板高度",
|
["Nameplate Width"] = "姓名板高度",
|
||||||
["Name (Short)"] = "名字 (短)",
|
["Name (Short)"] = "名字 (短)",
|
||||||
@@ -554,6 +554,7 @@ pfUI_translation["zhTW"] = {
|
|||||||
["On State Change"] = nil,
|
["On State Change"] = nil,
|
||||||
["Options"] = nil,
|
["Options"] = nil,
|
||||||
["Orientation"] = nil,
|
["Orientation"] = nil,
|
||||||
|
["Other Addons"] = nil,
|
||||||
["Other Panel: Minimap"] = "小地圖面板",
|
["Other Panel: Minimap"] = "小地圖面板",
|
||||||
["Outline"] = nil,
|
["Outline"] = nil,
|
||||||
["Outlines"] = nil,
|
["Outlines"] = nil,
|
||||||
@@ -582,6 +583,7 @@ pfUI_translation["zhTW"] = {
|
|||||||
["Pixel"] = nil,
|
["Pixel"] = nil,
|
||||||
["Player"] = "玩家",
|
["Player"] = "玩家",
|
||||||
["Player Buff Bar"] = nil,
|
["Player Buff Bar"] = nil,
|
||||||
|
["Player Buffs"] = nil,
|
||||||
["Player Castbar"] = nil,
|
["Player Castbar"] = nil,
|
||||||
["Player Debuff Bar"] = nil,
|
["Player Debuff Bar"] = nil,
|
||||||
["Player SP/Haste Display"] = nil,
|
["Player SP/Haste Display"] = nil,
|
||||||
@@ -592,6 +594,7 @@ pfUI_translation["zhTW"] = {
|
|||||||
["Portrait Alpha"] = "人偶透明度",
|
["Portrait Alpha"] = "人偶透明度",
|
||||||
["Portrait Height"] = "纵向高度",
|
["Portrait Height"] = "纵向高度",
|
||||||
["Portrait Position"] = "人偶頭像位置",
|
["Portrait Position"] = "人偶頭像位置",
|
||||||
|
["Portrait Style"] = nil,
|
||||||
["Portrait Width"] = "纵向宽度",
|
["Portrait Width"] = "纵向宽度",
|
||||||
["Powerbar"] = "能量(藍)條",
|
["Powerbar"] = "能量(藍)條",
|
||||||
["Power Bar Anchor"] = "能量條對齊方式(以血條為錨點)",
|
["Power Bar Anchor"] = "能量條對齊方式(以血條為錨點)",
|
||||||
@@ -647,6 +650,7 @@ pfUI_translation["zhTW"] = {
|
|||||||
["Resting"] = "休息中",
|
["Resting"] = "休息中",
|
||||||
["Reveal Unexplored Areas"] = "展示未勘探的地區",
|
["Reveal Unexplored Areas"] = "展示未勘探的地區",
|
||||||
["Switch to current zone"] = nil,
|
["Switch to current zone"] = nil,
|
||||||
|
["Reverse Sweep On"] = nil,
|
||||||
["Right"] = "右邊",
|
["Right"] = "右邊",
|
||||||
["Right Actionbar"] = nil,
|
["Right Actionbar"] = nil,
|
||||||
["Right Anchor"] = nil,
|
["Right Anchor"] = nil,
|
||||||
@@ -668,6 +672,7 @@ pfUI_translation["zhTW"] = {
|
|||||||
["Save & Reload"] = nil,
|
["Save & Reload"] = nil,
|
||||||
["Scale"] = "比例",
|
["Scale"] = "比例",
|
||||||
["Scale Border On HiDPI Displays"] = nil,
|
["Scale Border On HiDPI Displays"] = nil,
|
||||||
|
["Scale Font Size With Icon"] = nil,
|
||||||
["Scaling"] = nil,
|
["Scaling"] = nil,
|
||||||
["Screen Edge Glow Intensity"] = nil,
|
["Screen Edge Glow Intensity"] = nil,
|
||||||
["Screen Resolution"] = "螢幕解析度",
|
["Screen Resolution"] = "螢幕解析度",
|
||||||
@@ -727,7 +732,7 @@ pfUI_translation["zhTW"] = {
|
|||||||
["Show Loot Icon"] = nil,
|
["Show Loot Icon"] = nil,
|
||||||
["Show Macro Text"] = "顯示巨集的名字",
|
["Show Macro Text"] = "顯示巨集的名字",
|
||||||
["Show Meters By Default"] = "由默認顯示其他介面表",
|
["Show Meters By Default"] = "由默認顯示其他介面表",
|
||||||
["Show Milliseconds When Timer Runs Out"] = nil,
|
["Show Numbers On"] = nil,
|
||||||
["Show On Friendly Units"] = nil,
|
["Show On Friendly Units"] = nil,
|
||||||
["Show On Hostile Units"] = nil,
|
["Show On Hostile Units"] = nil,
|
||||||
["Show Procs Indicators"] = nil,
|
["Show Procs Indicators"] = nil,
|
||||||
@@ -745,10 +750,10 @@ pfUI_translation["zhTW"] = {
|
|||||||
["Show Spell Icon"] = nil,
|
["Show Spell Icon"] = nil,
|
||||||
["Show Spell Name"] = nil,
|
["Show Spell Name"] = nil,
|
||||||
["Show Stacks"] = nil,
|
["Show Stacks"] = nil,
|
||||||
|
["Show Sweep On"] = nil,
|
||||||
|
["Show Tenths Below 5 Seconds"] = nil,
|
||||||
["Show Text"] = nil,
|
["Show Text"] = nil,
|
||||||
["Show Time Left"] = nil,
|
|
||||||
["Show Timer"] = nil,
|
["Show Timer"] = nil,
|
||||||
["Show Timer Animation"] = nil,
|
|
||||||
["Show Timer Text"] = nil,
|
["Show Timer Text"] = nil,
|
||||||
["Show Totems Indicators"] = nil,
|
["Show Totems Indicators"] = nil,
|
||||||
["Shrink & Return"] = nil,
|
["Shrink & Return"] = nil,
|
||||||
@@ -765,8 +770,10 @@ pfUI_translation["zhTW"] = {
|
|||||||
["Soulshards"] = "靈魂碎片",
|
["Soulshards"] = "靈魂碎片",
|
||||||
["Spacing"] = nil,
|
["Spacing"] = nil,
|
||||||
["Special Recipient"] = "特殊指定角色",
|
["Special Recipient"] = "特殊指定角色",
|
||||||
|
["Spellbook And Character"] = nil,
|
||||||
["Spell Power Color"] = nil,
|
["Spell Power Color"] = nil,
|
||||||
["Square"] = "方形",
|
["Square"] = "方形",
|
||||||
|
["Stack Count Font Size"] = nil,
|
||||||
["Stance Bar 1"] = nil,
|
["Stance Bar 1"] = nil,
|
||||||
["Stance Bar 2"] = nil,
|
["Stance Bar 2"] = nil,
|
||||||
["Stance Bar 3"] = nil,
|
["Stance Bar 3"] = nil,
|
||||||
@@ -801,7 +808,6 @@ pfUI_translation["zhTW"] = {
|
|||||||
["Thistle Tea"] = nil,
|
["Thistle Tea"] = nil,
|
||||||
["Threshold To Trust Health Estimation"] = nil,
|
["Threshold To Trust Health Estimation"] = nil,
|
||||||
["Time"] = "計時器",
|
["Time"] = "計時器",
|
||||||
["Timer"] = nil,
|
|
||||||
["Time Remaining"] = "剩餘時間",
|
["Time Remaining"] = "剩餘時間",
|
||||||
["Timer In Minutes"] = nil,
|
["Timer In Minutes"] = nil,
|
||||||
["Timestamp Brackets"] = "時間戳括弧",
|
["Timestamp Brackets"] = "時間戳括弧",
|
||||||
@@ -812,6 +818,7 @@ pfUI_translation["zhTW"] = {
|
|||||||
["Tiny (PixelPerfect)"] = "極小(像素完美)",
|
["Tiny (PixelPerfect)"] = "極小(像素完美)",
|
||||||
["Toggle as Tank"] = "切換成為坦克",
|
["Toggle as Tank"] = "切換成為坦克",
|
||||||
["Tooltip"] = "滑鼠提示框",
|
["Tooltip"] = "滑鼠提示框",
|
||||||
|
["Tooltip Auras"] = nil,
|
||||||
["Tooltip Position"] = "滑鼠提示框位置",
|
["Tooltip Position"] = "滑鼠提示框位置",
|
||||||
["Tooltip Text Font"] = nil,
|
["Tooltip Text Font"] = nil,
|
||||||
["Tooltip Text Font Size"] = nil,
|
["Tooltip Text Font Size"] = nil,
|
||||||
@@ -823,11 +830,13 @@ pfUI_translation["zhTW"] = {
|
|||||||
["Total Gold"] = "總金量",
|
["Total Gold"] = "總金量",
|
||||||
["Totem Direction"] = nil,
|
["Totem Direction"] = nil,
|
||||||
["Totem Icons"] = nil,
|
["Totem Icons"] = nil,
|
||||||
|
["Totems"] = nil,
|
||||||
["Tracked Reputation"] = nil,
|
["Tracked Reputation"] = nil,
|
||||||
["Tracking Icon Size"] = "追蹤圖示大小",
|
["Tracking Icon Size"] = "追蹤圖示大小",
|
||||||
["Trigger Actions On Key Down"] = nil,
|
["Trigger Actions On Key Down"] = nil,
|
||||||
["UI-Scale"] = "UI縮放比例",
|
["UI-Scale"] = "UI縮放比例",
|
||||||
["Unbuffed"] = "該Buff缺失者",
|
["Unbuffed"] = "該Buff缺失者",
|
||||||
|
["Unit Frame Auras"] = nil,
|
||||||
["Unit Frame Border Size"] = "頭像邊框大小",
|
["Unit Frame Border Size"] = "頭像邊框大小",
|
||||||
["Unit Frame Layout"] = "頭像框架樣式",
|
["Unit Frame Layout"] = "頭像框架樣式",
|
||||||
["Unit Frames"] = "頭像框架",
|
["Unit Frames"] = "頭像框架",
|
||||||
@@ -854,7 +863,6 @@ pfUI_translation["zhTW"] = {
|
|||||||
["Use Custom Color Power Bar Background"] = nil,
|
["Use Custom Color Power Bar Background"] = nil,
|
||||||
["Use Custom Font Settings"] = nil,
|
["Use Custom Font Settings"] = nil,
|
||||||
["Use Custom Spell Power Color (unchecked = biggest school color)"] = 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 Item Rarity Color For Loot-Roll Timer"] = "為戰利品Roll點計時框啟用物品稀有顏色",
|
||||||
["Use Original Game Fonts"] = nil,
|
["Use Original Game Fonts"] = nil,
|
||||||
["Use Raid Frames To Display Group Members"] = '使用團隊框架顯示小組成員',
|
["Use Raid Frames To Display Group Members"] = '使用團隊框架顯示小組成員',
|
||||||
|
|||||||
@@ -1,6 +1,8 @@
|
|||||||
<Ui xmlns="http://www.blizzard.com/wow/ui/">
|
<Ui xmlns="http://www.blizzard.com/wow/ui/">
|
||||||
<Include file="..\api\api.lua"/>
|
<Include file="..\api\api.lua"/>
|
||||||
|
<Include file="..\api\cooldown.lua"/>
|
||||||
<Include file="..\api\config.lua"/>
|
<Include file="..\api\config.lua"/>
|
||||||
<Include file="..\api\ui-widgets.lua"/>
|
<Include file="..\api\ui-widgets.lua"/>
|
||||||
|
<Include file="..\api\ui-widgets.xml"/>
|
||||||
<Include file="..\api\unitframes.lua"/>
|
<Include file="..\api\unitframes.lua"/>
|
||||||
</Ui>
|
</Ui>
|
||||||
|
|||||||
@@ -1,13 +1,4 @@
|
|||||||
<Ui xmlns="http://www.blizzard.com/wow/ui/">
|
<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\profiles.lua"/>
|
||||||
|
|
||||||
<Include file="..\env\translations_enUS.lua"/>
|
<Include file="..\env\translations_enUS.lua"/>
|
||||||
|
|||||||
@@ -1,8 +1,6 @@
|
|||||||
<Ui xmlns="http://www.blizzard.com/wow/ui/">
|
<Ui xmlns="http://www.blizzard.com/wow/ui/">
|
||||||
<Include file="..\libs\libtipscan.lua"/>
|
|
||||||
<Include file="..\libs\libspell.lua"/>
|
<Include file="..\libs\libspell.lua"/>
|
||||||
<Include file="..\libs\libdebuff.lua"/>
|
<Include file="..\libs\libdebuff.lua"/>
|
||||||
<Include file="..\libs\librange.lua"/>
|
|
||||||
<Include file="..\libs\libunitscan.lua"/>
|
<Include file="..\libs\libunitscan.lua"/>
|
||||||
<Include file="..\libs\libhealth.lua"/>
|
<Include file="..\libs\libhealth.lua"/>
|
||||||
<Include file="..\libs\libthrottle.lua"/>
|
<Include file="..\libs\libthrottle.lua"/>
|
||||||
|
|||||||
+4
-1
@@ -7,6 +7,8 @@
|
|||||||
<Include file="..\modules\gryphons.lua"/>
|
<Include file="..\modules\gryphons.lua"/>
|
||||||
<Include file="..\modules\hunterbar.lua"/>
|
<Include file="..\modules\hunterbar.lua"/>
|
||||||
<Include file="..\modules\chat.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\whisperproxy.lua"/>
|
||||||
<Include file="..\modules\chatcopy.lua"/>
|
<Include file="..\modules\chatcopy.lua"/>
|
||||||
<Include file="..\modules\bubbles.lua"/>
|
<Include file="..\modules\bubbles.lua"/>
|
||||||
@@ -32,7 +34,6 @@
|
|||||||
<Include file="..\modules\autovendor.lua"/>
|
<Include file="..\modules\autovendor.lua"/>
|
||||||
<Include file="..\modules\bags.lua"/>
|
<Include file="..\modules\bags.lua"/>
|
||||||
<Include file="..\modules\itemclick.lua"/>
|
<Include file="..\modules\itemclick.lua"/>
|
||||||
<Include file="..\modules\cooldown.lua"/>
|
|
||||||
<Include file="..\modules\tooltip.lua"/>
|
<Include file="..\modules\tooltip.lua"/>
|
||||||
<Include file="..\modules\questitem.lua"/>
|
<Include file="..\modules\questitem.lua"/>
|
||||||
<Include file="..\modules\thirdparty.lua"/>
|
<Include file="..\modules\thirdparty.lua"/>
|
||||||
@@ -80,4 +81,6 @@
|
|||||||
<Include file="..\modules\loothistory.lua"/>
|
<Include file="..\modules\loothistory.lua"/>
|
||||||
<Include file="..\modules\newitem.lua"/>
|
<Include file="..\modules\newitem.lua"/>
|
||||||
<Include file="..\modules\friendnotes.lua"/>
|
<Include file="..\modules\friendnotes.lua"/>
|
||||||
|
<Include file="..\modules\lossofcontrol.lua"/>
|
||||||
|
<Include file="..\modules\radar.lua"/>
|
||||||
</Ui>
|
</Ui>
|
||||||
+83
-184
@@ -2,16 +2,21 @@
|
|||||||
setfenv(1, pfUI:GetEnvironment())
|
setfenv(1, pfUI:GetEnvironment())
|
||||||
|
|
||||||
--[[ libpredict ]]--
|
--[[ 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
|
-- 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.
|
-- 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:
|
-- The API provides function calls similar to later WoW expansions such as:
|
||||||
-- UnitGetIncomingHeals(unit)
|
-- UnitGetIncomingHeals(unit)
|
||||||
-- UnitHasIncomingResurrection(unit)
|
-- UnitHasResurrection(unit)
|
||||||
--
|
--
|
||||||
-- The library is able to receive and send compatible messages to HealComm
|
-- UnitHasResurrection extends ClassicAPI's UnitHasIncomingResurrection, which
|
||||||
-- including resurrections. It has an option to disable the sending of those
|
-- ends with the cast, to a resurrection that landed and waits for the target
|
||||||
-- messages in case HealComm is already active.
|
-- 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
|
-- Casts are read from ClassicAPI's UNIT_SPELLCAST_* events and heal amounts
|
||||||
-- from COMBAT_LOG_EVENT_UNFILTERED. GetHotDuration() reads live HoT timers
|
-- 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
|
-- return instantly when another libpredict is already active
|
||||||
if pfUI.api.libpredict then return end
|
if pfUI.api.libpredict then return end
|
||||||
|
|
||||||
local heals, ress, events, hots = {}, {}, {}, {}
|
local heals, events, hots = {}, {}, {}
|
||||||
local spell_queue = { "DUMMY", "DUMMYRank 9", "TARGET" }
|
local spell_queue = { "DUMMY", "DUMMYRank 9", "TARGET" }
|
||||||
local player = UnitName("player")
|
local player = UnitName("player")
|
||||||
local cache, gear_string = {}, ""
|
local cache, gear_string = {}, ""
|
||||||
local foreignCache = {} -- [casterName][spellKey] = amount, in-memory cache for other healers
|
local foreignCache = {} -- [casterName][spellKey] = amount, in-memory cache for other healers
|
||||||
local rejuvDuration, renewDuration = 12, 15 --default durations
|
local rejuvDuration, renewDuration = 12, 15 --default durations
|
||||||
local ressGuidToName = {} -- [casterGuid] = casterName, for interrupted-cast cleanup
|
|
||||||
local healGuidToName = {} -- [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 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 resOffers = {} -- [guid] = expiry of a landed resurrection the target has yet to accept
|
||||||
local ress_timers = {} -- [target][sender] = expiry_timestamp (60s rez window)
|
local RES_OFFER_TIMEOUT = 60 -- the target's resurrect popup declines itself after 60s
|
||||||
local RESS_TIMEOUT = 60 -- Vanilla: rez offer expires after 60s
|
|
||||||
|
|
||||||
-- Localized spell names resolved once from canonical rank-1 spellIDs.
|
-- Localized spell names resolved once from canonical rank-1 spellIDs.
|
||||||
-- Every rank shares the same name, so per-rank comparisons elsewhere can
|
-- 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 REGROWTH = C_Spell.GetSpellName(8936) -- Regrowth (Rank 1)
|
||||||
|
|
||||||
local libpredict = CreateFrame("Frame")
|
local libpredict = CreateFrame("Frame")
|
||||||
libpredict:RegisterEvent("UNIT_HEALTH")
|
|
||||||
libpredict:RegisterEvent("CHAT_MSG_ADDON")
|
libpredict:RegisterEvent("CHAT_MSG_ADDON")
|
||||||
libpredict:RegisterEvent("PLAYER_TARGET_CHANGED")
|
libpredict:RegisterEvent("PLAYER_TARGET_CHANGED")
|
||||||
libpredict:RegisterEvent("PLAYER_LOGOUT")
|
libpredict:RegisterEvent("PLAYER_LOGOUT")
|
||||||
@@ -55,13 +57,8 @@ libpredict:SetScript("OnEvent", function()
|
|||||||
return
|
return
|
||||||
end
|
end
|
||||||
|
|
||||||
if event == "CHAT_MSG_ADDON" and (arg1 == "HealComm" or arg1 == "CTRA") then
|
if event == "CHAT_MSG_ADDON" and arg1 == "HealComm" then
|
||||||
this:ParseChatMessage(arg4, arg2, arg1)
|
this:ParseChatMessage(arg4, arg2)
|
||||||
elseif event == "UNIT_HEALTH" then
|
|
||||||
local name = UnitName(arg1)
|
|
||||||
if name and ress[name] and not UnitIsDeadOrGhost(arg1) then
|
|
||||||
ress[name] = nil
|
|
||||||
end
|
|
||||||
end
|
end
|
||||||
end)
|
end)
|
||||||
|
|
||||||
@@ -95,22 +92,14 @@ local function cacheRaidNames()
|
|||||||
if pguid then guidNameCache[pguid] = UnitName("player") end
|
if pguid then guidNameCache[pguid] = UnitName("player") end
|
||||||
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
|
-- Build cache on world enter
|
||||||
libpredict:RegisterEvent("PLAYER_ENTERING_WORLD")
|
libpredict:RegisterEvent("PLAYER_ENTERING_WORLD")
|
||||||
libpredict:RegisterEvent("RAID_ROSTER_UPDATE")
|
libpredict:RegisterEvent("RAID_ROSTER_UPDATE")
|
||||||
libpredict:RegisterEvent("PARTY_MEMBERS_CHANGED")
|
libpredict:RegisterEvent("PARTY_MEMBERS_CHANGED")
|
||||||
local origOnEvent = libpredict:GetScript("OnEvent")
|
libpredict:HookScript("OnEvent", function()
|
||||||
libpredict:SetScript("OnEvent", function()
|
|
||||||
if event == "PLAYER_ENTERING_WORLD" or event == "RAID_ROSTER_UPDATE" or event == "PARTY_MEMBERS_CHANGED" then
|
if event == "PLAYER_ENTERING_WORLD" or event == "RAID_ROSTER_UPDATE" or event == "PARTY_MEMBERS_CHANGED" then
|
||||||
cacheRaidNames()
|
cacheRaidNames()
|
||||||
end
|
end
|
||||||
if origOnEvent then origOnEvent() end
|
|
||||||
end)
|
end)
|
||||||
|
|
||||||
-- Own cast-time spell started (heals + rez)
|
-- Own cast-time spell started (heals + rez)
|
||||||
@@ -131,7 +120,6 @@ local function OnOwnCastStart(spellId, castGUID)
|
|||||||
|
|
||||||
if L["resurrections"][spellName] then
|
if L["resurrections"][spellName] then
|
||||||
if target then
|
if target then
|
||||||
libpredict:Ress(player, target, UnitGUID("player"))
|
|
||||||
libpredict.sender:SendHealCommMsg("Resurrection/" .. target .. "/start/")
|
libpredict.sender:SendHealCommMsg("Resurrection/" .. target .. "/start/")
|
||||||
libpredict.sender:SendResCommMsg("RES " .. target)
|
libpredict.sender:SendResCommMsg("RES " .. target)
|
||||||
libpredict.sender.resurrecting = true
|
libpredict.sender.resurrecting = true
|
||||||
@@ -212,7 +200,7 @@ local function OnOwnCastStart(spellId, castGUID)
|
|||||||
end
|
end
|
||||||
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 function OnOwnCastSucceeded(spellId, castGUID)
|
||||||
local target = sentTargets[castGUID] or spell_queue[3]
|
local target = sentTargets[castGUID] or spell_queue[3]
|
||||||
sentTargets[castGUID] = nil
|
sentTargets[castGUID] = nil
|
||||||
@@ -250,14 +238,10 @@ local function OnOwnCastSucceeded(spellId, castGUID)
|
|||||||
libpredict:Hot(player, target, hotType, duration, nil, "UNIT_SPELLCAST_SUCCEEDED", rank)
|
libpredict:Hot(player, target, hotType, duration, nil, "UNIT_SPELLCAST_SUCCEEDED", rank)
|
||||||
libpredict.sender:SendHealCommMsg(hotType .. "/" .. target .. "/" .. duration .. "/" .. rank .. "/")
|
libpredict.sender:SendHealCommMsg(hotType .. "/" .. target .. "/" .. duration .. "/" .. rank .. "/")
|
||||||
end
|
end
|
||||||
|
|
||||||
if isRezSpell(spellId) then
|
|
||||||
libpredict:RessSetTimer(player, target)
|
|
||||||
end
|
|
||||||
end
|
end
|
||||||
|
|
||||||
-- Foreign cast-time spell started (heals + rez)
|
-- Foreign cast-time heal started
|
||||||
local function OnOtherCastStart(unit, spellId, castGUID)
|
local function OnOtherCastStart(unit, spellId)
|
||||||
local spellName = C_Spell.GetSpellName(spellId)
|
local spellName = C_Spell.GetSpellName(spellId)
|
||||||
if not spellName then return end
|
if not spellName then return end
|
||||||
|
|
||||||
@@ -267,13 +251,6 @@ local function OnOtherCastStart(unit, spellId, castGUID)
|
|||||||
|
|
||||||
local targetName = UnitSpellTargetName(unit)
|
local targetName = UnitSpellTargetName(unit)
|
||||||
if not targetName then return end
|
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
|
-- Heal cast: look up cached amount from a previous cast by this healer
|
||||||
local _, _, _, startMs, endMs = C_Spell.UnitCastingInfo(unit)
|
local _, _, _, startMs, endMs = C_Spell.UnitCastingInfo(unit)
|
||||||
@@ -324,35 +301,31 @@ local function OnOtherCastStart(unit, spellId, castGUID)
|
|||||||
libpredict:Heal(casterName, targetName, amount, castTime, casterGuid)
|
libpredict:Heal(casterName, targetName, amount, castTime, casterGuid)
|
||||||
end
|
end
|
||||||
|
|
||||||
-- Foreign cast landed: rez timer, or the predicted heal is fulfilled
|
-- Foreign cast landed: the predicted heal is fulfilled
|
||||||
local function OnOtherCastSucceeded(unit, spellId, castGUID)
|
local function OnOtherCastSucceeded(unit)
|
||||||
local casterGuid = UnitGUID(unit)
|
local casterName = resolveNameFromGuid(UnitGUID(unit))
|
||||||
local casterName = resolveNameFromGuid(casterGuid)
|
|
||||||
if not casterName then return end
|
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)
|
libpredict:HealStop(casterName)
|
||||||
end
|
end
|
||||||
|
|
||||||
-- Foreign cast interrupted: remove cancelled resses/heals
|
-- Foreign cast interrupted: remove cancelled heals
|
||||||
local function OnOtherCastInterrupted(unit)
|
local function OnOtherCastInterrupted(unit)
|
||||||
local casterGuid = UnitGUID(unit)
|
local casterGuid = UnitGUID(unit)
|
||||||
if not casterGuid then return end
|
if not casterGuid then return end
|
||||||
local ressName = ressGuidToName[casterGuid]
|
|
||||||
if ressName then
|
|
||||||
libpredict:RessStop(ressName)
|
|
||||||
end
|
|
||||||
local healName = healGuidToName[casterGuid]
|
local healName = healGuidToName[casterGuid]
|
||||||
if healName then libpredict:HealStop(healName) end
|
if healName then libpredict:HealStop(healName) end
|
||||||
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()
|
libpredict:SetScript("OnUpdate", function()
|
||||||
-- throttle cleanup - no need to check every frame
|
-- throttle cleanup - no need to check every frame
|
||||||
local now = pfUI.uf.now or GetTime()
|
local now = pfUI.uf.now or GetTime()
|
||||||
@@ -366,13 +339,12 @@ libpredict:SetScript("OnUpdate", function()
|
|||||||
end
|
end
|
||||||
end
|
end
|
||||||
|
|
||||||
-- Rez timeout: remove offer after 60s if player doesn't accept
|
-- drop resurrection offers the target accepted or let run out
|
||||||
for target, senders in pairs(ress_timers) do
|
for guid, expiry in pairs(resOffers) do
|
||||||
for sender, expiry in pairs(senders) do
|
local unit = UnitTokenFromGUID(guid)
|
||||||
if now >= expiry then
|
if now >= expiry or not (unit and UnitIsDeadOrGhost(unit)) then
|
||||||
senders[sender] = nil
|
resOffers[guid] = nil
|
||||||
if ress[target] then ress[target][sender] = nil end
|
RefreshResFrames(guid)
|
||||||
end
|
|
||||||
end
|
end
|
||||||
end
|
end
|
||||||
end)
|
end)
|
||||||
@@ -386,8 +358,6 @@ function libpredict:ParseComm(sender, msg)
|
|||||||
if libpredict.debug then
|
if libpredict.debug then
|
||||||
DEFAULT_CHAT_FRAME:AddMessage("|cff00ffff[libpredict RX]|r HealStop from " .. tostring(sender))
|
DEFAULT_CHAT_FRAME:AddMessage("|cff00ffff[libpredict RX]|r HealStop from " .. tostring(sender))
|
||||||
end
|
end
|
||||||
elseif msg == "Resurrection/stop/" then
|
|
||||||
msgtype = "RessStop"
|
|
||||||
elseif msg then
|
elseif msg then
|
||||||
local msgobj = {strsplit("/", msg)}
|
local msgobj = {strsplit("/", msg)}
|
||||||
|
|
||||||
@@ -397,10 +367,6 @@ function libpredict:ParseComm(sender, msg)
|
|||||||
msgtype, time = "Delay", msgobj[2]
|
msgtype, time = "Delay", msgobj[2]
|
||||||
end
|
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
|
if msgobj[1] == "Heal" and msgobj[2] then
|
||||||
msgtype, target, heal, time = "Heal", msgobj[2], msgobj[3], msgobj[4]
|
msgtype, target, heal, time = "Heal", msgobj[2], msgobj[3], msgobj[4]
|
||||||
end
|
end
|
||||||
@@ -472,25 +438,12 @@ end
|
|||||||
local recentHots = {}
|
local recentHots = {}
|
||||||
local DUPLICATE_WINDOW = 0.5 -- Ignoriere gleiche Nachricht innerhalb 0.5s
|
local DUPLICATE_WINDOW = 0.5 -- Ignoriere gleiche Nachricht innerhalb 0.5s
|
||||||
|
|
||||||
function libpredict:ParseChatMessage(sender, msg, comm)
|
function libpredict:ParseChatMessage(sender, msg)
|
||||||
local msgtype, target, heal, time, rank
|
local msgtype, target, heal, time, rank = libpredict:ParseComm(sender, msg)
|
||||||
|
|
||||||
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
|
|
||||||
|
|
||||||
if msgtype == "Stop" and sender then
|
if msgtype == "Stop" and sender then
|
||||||
libpredict:HealStop(sender)
|
libpredict:HealStop(sender)
|
||||||
return
|
return
|
||||||
elseif ( msg == "RessStop" or msg == "RESNO" ) and sender then
|
|
||||||
libpredict:RessStop(sender)
|
|
||||||
return
|
|
||||||
elseif msgtype == "Delay" and time then
|
elseif msgtype == "Delay" and time then
|
||||||
libpredict:HealDelay(sender, time)
|
libpredict:HealDelay(sender, time)
|
||||||
elseif msgtype == "Heal" and target and heal and time then
|
elseif msgtype == "Heal" and target and heal and time then
|
||||||
@@ -501,29 +454,6 @@ function libpredict:ParseChatMessage(sender, msg, comm)
|
|||||||
else
|
else
|
||||||
libpredict:Heal(sender, target, heal, time)
|
libpredict:Heal(sender, target, heal, time)
|
||||||
end
|
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
|
elseif msgtype == "Hot" then
|
||||||
-- Duplicate check: ignore same sender+target+spell within DUPLICATE_WINDOW
|
-- Duplicate check: ignore same sender+target+spell within DUPLICATE_WINDOW
|
||||||
local now = pfUI.uf.now or GetTime()
|
local now = pfUI.uf.now or GetTime()
|
||||||
@@ -672,41 +602,6 @@ function libpredict:HealDelay(sender, delay)
|
|||||||
end
|
end
|
||||||
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)
|
function libpredict:UnitGetIncomingHeals(unit)
|
||||||
if not unit then return 0 end
|
if not unit then return 0 end
|
||||||
local name = UnitName(unit)
|
local name = UnitName(unit)
|
||||||
@@ -729,26 +624,35 @@ function libpredict:UnitGetIncomingHeals(unit)
|
|||||||
return sumheal
|
return sumheal
|
||||||
end
|
end
|
||||||
|
|
||||||
function libpredict:UnitHasIncomingResurrection(unit)
|
-- Whether a resurrection is being cast at the unit, or landed and waits for
|
||||||
if not unit then return nil end
|
-- the unit to accept it
|
||||||
local name = UnitName(unit)
|
function libpredict:UnitHasResurrection(unit)
|
||||||
if not name then return nil end
|
return UnitHasIncomingResurrection(unit) or resOffers[UnitGUID(unit)] ~= nil
|
||||||
|
|
||||||
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
|
|
||||||
end
|
end
|
||||||
|
|
||||||
local realm = GetRealmName()
|
local realm = GetRealmName()
|
||||||
local resetcache = CreateFrame("Frame")
|
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("PLAYER_ENTERING_WORLD")
|
||||||
resetcache:RegisterEvent("LEARNED_SPELL_IN_TAB")
|
resetcache:RegisterEvent("LEARNED_SPELL_IN_TAB")
|
||||||
resetcache:RegisterEvent("CHARACTER_POINTS_CHANGED")
|
resetcache:RegisterEvent("CHARACTER_POINTS_CHANGED")
|
||||||
@@ -773,19 +677,9 @@ resetcache:SetScript("OnEvent", function()
|
|||||||
if gear == gear_string then return end
|
if gear == gear_string then return end
|
||||||
gear_string = gear
|
gear_string = gear
|
||||||
|
|
||||||
local setBonusCounter
|
local bonuses = GetActiveSetBonuses()
|
||||||
setBonusCounter = 0
|
rejuvDuration = bonuses[REJUVENATION_SET_BONUS] and 15 or 12
|
||||||
for i=1,10 do --there is no need to check slots above 10
|
renewDuration = bonuses[RENEW_SET_BONUS] and 18 or 15
|
||||||
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
|
|
||||||
end
|
end
|
||||||
|
|
||||||
-- flag all cached heals for renewal
|
-- flag all cached heals for renewal
|
||||||
@@ -834,7 +728,6 @@ local pendingHots = {}
|
|||||||
|
|
||||||
-- Gather Data by User Actions
|
-- Gather Data by User Actions
|
||||||
hooksecurefunc("CastSpell", function(id, bookType)
|
hooksecurefunc("CastSpell", function(id, bookType)
|
||||||
if not libpredict.sender.enabled then return end
|
|
||||||
local effect, rank = libspell.GetSpellInfo(id, bookType)
|
local effect, rank = libspell.GetSpellInfo(id, bookType)
|
||||||
if not effect then return end
|
if not effect then return end
|
||||||
spell_queue[1] = effect
|
spell_queue[1] = effect
|
||||||
@@ -887,7 +780,6 @@ hooksecurefunc("CastSpell", function(id, bookType)
|
|||||||
end)
|
end)
|
||||||
|
|
||||||
hooksecurefunc("CastSpellByName", function(effect, target)
|
hooksecurefunc("CastSpellByName", function(effect, target)
|
||||||
if not libpredict.sender.enabled then return end
|
|
||||||
local effect, rank = libspell.GetSpellInfo(effect)
|
local effect, rank = libspell.GetSpellInfo(effect)
|
||||||
if not effect then return end
|
if not effect then return end
|
||||||
|
|
||||||
@@ -951,7 +843,6 @@ hooksecurefunc("CastSpellByName", function(effect, target)
|
|||||||
end)
|
end)
|
||||||
|
|
||||||
hooksecurefunc("UseAction", function(slot, target, selfcast)
|
hooksecurefunc("UseAction", function(slot, target, selfcast)
|
||||||
if not libpredict.sender.enabled then return end
|
|
||||||
if not IsCurrentAction(slot) then return end
|
if not IsCurrentAction(slot) then return end
|
||||||
local kind, id = GetActionInfo(slot)
|
local kind, id = GetActionInfo(slot)
|
||||||
local effect, rank
|
local effect, rank
|
||||||
@@ -1012,8 +903,10 @@ hooksecurefunc("UseAction", function(slot, target, selfcast)
|
|||||||
end)
|
end)
|
||||||
|
|
||||||
libpredict.sender = CreateFrame("Frame", "pfPredictionSender", UIParent)
|
libpredict.sender = CreateFrame("Frame", "pfPredictionSender", UIParent)
|
||||||
|
-- cleared when a HealComm addon already broadcasts this player's casts
|
||||||
libpredict.sender.enabled = true
|
libpredict.sender.enabled = true
|
||||||
libpredict.sender.SendHealCommMsg = function(self, msg)
|
libpredict.sender.SendHealCommMsg = function(self, msg)
|
||||||
|
if not self.enabled then return end
|
||||||
-- Smart channel selection: Only send to relevant channel to avoid duplicates
|
-- Smart channel selection: Only send to relevant channel to avoid duplicates
|
||||||
if IsInRaid() then
|
if IsInRaid() then
|
||||||
-- In raid: Only send to RAID (includes all raid members)
|
-- 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
|
-- BG groups are handled by RAID channel
|
||||||
end
|
end
|
||||||
libpredict.sender.SendResCommMsg = function(self, msg)
|
libpredict.sender.SendResCommMsg = function(self, msg)
|
||||||
|
if not self.enabled then return end
|
||||||
-- Smart channel selection: Only send to relevant channel to avoid duplicates
|
-- Smart channel selection: Only send to relevant channel to avoid duplicates
|
||||||
if IsInRaid() then
|
if IsInRaid() then
|
||||||
-- In raid: Only send to RAID (includes all raid members)
|
-- 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_SUCCEEDED")
|
||||||
libpredict.sender:RegisterEvent("UNIT_SPELLCAST_FAILED")
|
libpredict.sender:RegisterEvent("UNIT_SPELLCAST_FAILED")
|
||||||
libpredict.sender:RegisterEvent("UNIT_SPELLCAST_INTERRUPTED")
|
libpredict.sender:RegisterEvent("UNIT_SPELLCAST_INTERRUPTED")
|
||||||
libpredict.sender:RegisterEvent("UNIT_SPELLCAST_STOP")
|
|
||||||
libpredict.sender:RegisterEvent("COMBAT_LOG_EVENT_UNFILTERED")
|
libpredict.sender:RegisterEvent("COMBAT_LOG_EVENT_UNFILTERED")
|
||||||
|
|
||||||
-- Shared cleanup helper for failed/interrupted casts
|
-- Shared cleanup helper for failed/interrupted casts
|
||||||
@@ -1083,7 +976,6 @@ local function onCastFailed()
|
|||||||
s.healing = nil
|
s.healing = nil
|
||||||
elseif s.resurrecting then
|
elseif s.resurrecting then
|
||||||
local target = s.current_cast_target or spell_queue[3]
|
local target = s.current_cast_target or spell_queue[3]
|
||||||
libpredict:RessStop(UnitName("player"))
|
|
||||||
s:SendHealCommMsg("Resurrection/stop/")
|
s:SendHealCommMsg("Resurrection/stop/")
|
||||||
s:SendResCommMsg("RESNO " .. (target or ""))
|
s:SendResCommMsg("RESNO " .. (target or ""))
|
||||||
s.resurrecting = nil
|
s.resurrecting = nil
|
||||||
@@ -1134,11 +1026,20 @@ local function OnHeal()
|
|||||||
end
|
end
|
||||||
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
|
local lastOtherCast = {} -- [event] = castGUID of the last other-unit event handled
|
||||||
|
|
||||||
libpredict.sender:SetScript("OnEvent", function()
|
libpredict.sender:SetScript("OnEvent", function()
|
||||||
if event == "COMBAT_LOG_EVENT_UNFILTERED" then
|
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
|
return
|
||||||
end
|
end
|
||||||
|
|
||||||
@@ -1174,13 +1075,11 @@ libpredict.sender:SetScript("OnEvent", function()
|
|||||||
lastOtherCast[event] = arg2
|
lastOtherCast[event] = arg2
|
||||||
|
|
||||||
if event == "UNIT_SPELLCAST_START" then
|
if event == "UNIT_SPELLCAST_START" then
|
||||||
OnOtherCastStart(unit, arg3, arg2)
|
OnOtherCastStart(unit, arg3)
|
||||||
elseif event == "UNIT_SPELLCAST_SUCCEEDED" then
|
elseif event == "UNIT_SPELLCAST_SUCCEEDED" then
|
||||||
OnOtherCastSucceeded(unit, arg3, arg2)
|
OnOtherCastSucceeded(unit)
|
||||||
elseif event == "UNIT_SPELLCAST_INTERRUPTED" then
|
elseif event == "UNIT_SPELLCAST_INTERRUPTED" then
|
||||||
OnOtherCastInterrupted(unit)
|
OnOtherCastInterrupted(unit)
|
||||||
elseif event == "UNIT_SPELLCAST_STOP" then
|
|
||||||
castTargets[arg2] = nil
|
|
||||||
end
|
end
|
||||||
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
|
end
|
||||||
|
|
||||||
-- Reset all spell caches whenever new spells are learned/unlearned
|
-- Reset all spell caches whenever new spells are learned/unlearned
|
||||||
local resetcache = CreateFrame("Frame")
|
pfUI.events:RegisterFrameEventAndCallback("LEARNED_SPELL_IN_TAB", function()
|
||||||
resetcache:RegisterEvent("LEARNED_SPELL_IN_TAB")
|
|
||||||
resetcache:SetScript("OnEvent", function()
|
|
||||||
table.wipe(spellmaxrank)
|
table.wipe(spellmaxrank)
|
||||||
table.wipe(spellindex)
|
table.wipe(spellindex)
|
||||||
table.wipe(spellinfo)
|
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
|
|
||||||
+38
-97
@@ -2,37 +2,26 @@
|
|||||||
setfenv(1, pfUI:GetEnvironment())
|
setfenv(1, pfUI:GetEnvironment())
|
||||||
|
|
||||||
--[[ libunitscan ]]--
|
--[[ libunitscan ]]--
|
||||||
-- A pfUI library that detects and saves all kind of unit related informations.
|
-- A pfUI library that remembers the class, level and guild of every player it
|
||||||
-- Such as level, class, elite-state and playertype. Each query causes the library
|
-- sees: in the friends, guild, raid and party rosters, in /who results, and as
|
||||||
-- to automatically scan for the target if not already existing. Player-data is
|
-- target, mouseover or nameplate. The data is persisted within pfUI_playerDB,
|
||||||
-- persisted within the pfUI_playerDB where the mob data is a throw-away table.
|
-- for the places that only have a player's name, such as chat links and
|
||||||
-- The automatic target scanner is only working for vanilla due to client limitations
|
-- offline friends. Anything with a unit reads the unit itself instead.
|
||||||
-- on further expansions.
|
|
||||||
--
|
--
|
||||||
-- External functions:
|
-- External functions:
|
||||||
-- GetUnitInfo(name, active, isPlayer)
|
-- GetUnitInfo(name)
|
||||||
-- Returns information of the given unitname. Returns nil if no match is found.
|
-- Returns information of the given player name. Returns nil if the player
|
||||||
-- When nothing is found and the active flag is set, the autoscanner will
|
-- was never seen.
|
||||||
-- 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).
|
|
||||||
--
|
--
|
||||||
-- class[String] - The class of the unit
|
-- class[String] - The class of the player
|
||||||
-- level[Number] - The level of the unit
|
-- level[Number] - The level of the player
|
||||||
-- elite[String] - The elite state of the unit (See UnitClassification())
|
-- guild[String] - The guild name of the player
|
||||||
-- 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"
|
|
||||||
--
|
--
|
||||||
|
|
||||||
-- return instantly when another libunitscan is already active
|
-- return instantly when another libunitscan is already active
|
||||||
if pfUI.api.libunitscan then return end
|
if pfUI.api.libunitscan then return end
|
||||||
|
|
||||||
local units = { players = {}, mobs = {} }
|
local players = {}
|
||||||
local queue = { }
|
|
||||||
|
|
||||||
-- Feed (guid, name, classToken) into ClassicAPI's persistent name
|
-- Feed (guid, name, classToken) into ClassicAPI's persistent name
|
||||||
-- cache when the unit's GUID is resolvable. Roster-style packets
|
-- 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))
|
C_PlayerCache.RememberPlayer(guid, name, class, UnitRace(unit), UnitSex(unit))
|
||||||
end
|
end
|
||||||
|
|
||||||
function GetUnitInfo(name, active, isPlayer)
|
function GetUnitInfo(name)
|
||||||
if isPlayer ~= false and units["players"][name] then
|
local ret = players[name]
|
||||||
local ret = units["players"][name]
|
if ret then
|
||||||
return ret.class, ret.level, ret.elite, true, ret.guild
|
return ret.class, ret.level, 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()
|
|
||||||
end
|
end
|
||||||
end
|
end
|
||||||
|
|
||||||
local function AddData(db, name, class, level, elite, guild)
|
local function AddData(name, class, level, guild)
|
||||||
if not name or not db then return end
|
if not name then return end
|
||||||
units[db] = units[db] or {}
|
players[name] = players[name] or {}
|
||||||
units[db][name] = units[db][name] or {}
|
players[name].class = class or players[name].class
|
||||||
units[db][name].class = class or units[db][name].class
|
players[name].level = level or players[name].level
|
||||||
units[db][name].level = level or units[db][name].level
|
players[name].guild = guild or players[name].guild
|
||||||
units[db][name].elite = elite or units[db][name].elite
|
|
||||||
units[db][name].guild = guild or units[db][name].guild
|
|
||||||
queue[name] = nil
|
|
||||||
end
|
end
|
||||||
|
|
||||||
local libunitscan = CreateFrame("Frame", "pfUnitScan", UIParent)
|
local libunitscan = CreateFrame("Frame", "pfUnitScan", UIParent)
|
||||||
@@ -85,14 +65,14 @@ libunitscan:SetScript("OnEvent", function()
|
|||||||
if event == "PLAYER_ENTERING_WORLD" then
|
if event == "PLAYER_ENTERING_WORLD" then
|
||||||
|
|
||||||
-- load pfUI_playerDB
|
-- load pfUI_playerDB
|
||||||
units.players = pfUI_playerDB
|
players = pfUI_playerDB
|
||||||
|
|
||||||
-- update own character details
|
-- update own character details
|
||||||
local name = UnitName("player")
|
local name = UnitName("player")
|
||||||
local class = UnitClassBase("player")
|
local class = UnitClassBase("player")
|
||||||
local level = UnitLevel("player")
|
local level = UnitLevel("player")
|
||||||
local guild = GetGuildInfo("player")
|
local guild = GetGuildInfo("player")
|
||||||
AddData("players", name, class, level, nil, guild)
|
AddData(name, class, level, guild)
|
||||||
RememberByUnit("player", name, class)
|
RememberByUnit("player", name, class)
|
||||||
|
|
||||||
elseif event == "FRIENDLIST_UPDATE" then
|
elseif event == "FRIENDLIST_UPDATE" then
|
||||||
@@ -100,38 +80,38 @@ libunitscan:SetScript("OnEvent", function()
|
|||||||
local info = C_FriendList.GetFriendInfoByIndex(i)
|
local info = C_FriendList.GetFriendInfoByIndex(i)
|
||||||
if info then
|
if info then
|
||||||
local level = info.level > 0 and info.level or nil
|
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
|
||||||
end
|
end
|
||||||
|
|
||||||
elseif event == "GUILD_ROSTER_UPDATE" then
|
elseif event == "GUILD_ROSTER_UPDATE" then
|
||||||
local name, class, level, _, guild
|
local guild = GetGuildInfo("player")
|
||||||
|
local name, class, level, _
|
||||||
for i = 1, GetNumGuildMembers() do
|
for i = 1, GetNumGuildMembers() do
|
||||||
name, _, _, level, class = GetGuildRosterInfo(i)
|
name, _, _, level, class = GetGuildRosterInfo(i)
|
||||||
guild = GetGuildInfo("player")
|
|
||||||
class = L["class"][class] or nil
|
class = L["class"][class] or nil
|
||||||
AddData("players", name, class, level, nil, guild)
|
AddData(name, class, level, guild)
|
||||||
end
|
end
|
||||||
|
|
||||||
elseif event == "RAID_ROSTER_UPDATE" then
|
elseif event == "RAID_ROSTER_UPDATE" then
|
||||||
local name, class, SubGroup, level, unit, _
|
local name, class, level, unit, _
|
||||||
for i = 1, GetNumRaidMembers() do
|
for i = 1, GetNumRaidMembers() do
|
||||||
unit = "raid" .. i
|
unit = "raid" .. i
|
||||||
name, _, SubGroup, level, class = GetRaidRosterInfo(i)
|
name, _, _, level, class = GetRaidRosterInfo(i)
|
||||||
class = L["class"][class] or nil
|
class = L["class"][class] or nil
|
||||||
AddData("players", name, class, level)
|
AddData(name, class, level)
|
||||||
RememberByUnit(unit, name, class)
|
RememberByUnit(unit, name, class)
|
||||||
end
|
end
|
||||||
|
|
||||||
elseif event == "PARTY_MEMBERS_CHANGED" then
|
elseif event == "PARTY_MEMBERS_CHANGED" then
|
||||||
local name, class, level, unit, _, guild
|
local name, class, level, unit, guild
|
||||||
for i = 1, GetNumPartyMembers() do
|
for i = 1, GetNumPartyMembers() do
|
||||||
unit = "party" .. i
|
unit = "party" .. i
|
||||||
class = UnitClassBase(unit)
|
class = UnitClassBase(unit)
|
||||||
name = UnitName(unit)
|
name = UnitName(unit)
|
||||||
level = UnitLevel(unit)
|
level = UnitLevel(unit)
|
||||||
guild = GetGuildInfo(unit)
|
guild = GetGuildInfo(unit)
|
||||||
AddData("players", name, class, level, nil, guild)
|
AddData(name, class, level, guild)
|
||||||
RememberByUnit(unit, name, class)
|
RememberByUnit(unit, name, class)
|
||||||
end
|
end
|
||||||
|
|
||||||
@@ -139,7 +119,7 @@ libunitscan:SetScript("OnEvent", function()
|
|||||||
for i = 1, C_FriendList.GetNumWhoResults() do
|
for i = 1, C_FriendList.GetNumWhoResults() do
|
||||||
local info = C_FriendList.GetWhoInfo(i)
|
local info = C_FriendList.GetWhoInfo(i)
|
||||||
if info then
|
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
|
||||||
end
|
end
|
||||||
|
|
||||||
@@ -147,55 +127,16 @@ libunitscan:SetScript("OnEvent", function()
|
|||||||
local scan = event == "PLAYER_TARGET_CHANGED" and "target"
|
local scan = event == "PLAYER_TARGET_CHANGED" and "target"
|
||||||
or event == "NAME_PLATE_UNIT_ADDED" and arg1
|
or event == "NAME_PLATE_UNIT_ADDED" and arg1
|
||||||
or "mouseover"
|
or "mouseover"
|
||||||
local name, class, level, elite, guild, _
|
|
||||||
if UnitExists(scan) then
|
|
||||||
if UnitIsPlayer(scan) then
|
if UnitIsPlayer(scan) then
|
||||||
class = UnitClassBase(scan)
|
local name = UnitName(scan)
|
||||||
level = UnitLevel(scan)
|
local class = UnitClassBase(scan)
|
||||||
-- UnitLevel returns -1 for unknown levels, don't overwrite known values
|
-- UnitLevel returns -1 for unknown levels, don't overwrite known values
|
||||||
|
local level = UnitLevel(scan)
|
||||||
level = level > 0 and level or nil
|
level = level > 0 and level or nil
|
||||||
name = UnitName(scan)
|
AddData(name, class, level, GetGuildInfo(scan))
|
||||||
guild = GetGuildInfo(scan)
|
|
||||||
AddData("players", name, class, level, nil, guild)
|
|
||||||
RememberByUnit(scan, name, class)
|
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
|
end
|
||||||
end
|
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)
|
end)
|
||||||
|
|
||||||
pfUI.api.libunitscan = libunitscan
|
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 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
|
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
|
-- 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
|
-- 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.
|
-- 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
|
-- skip if always shift-drag is not enabled
|
||||||
if C.bars.shiftdrag ~= "1" then return end
|
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
|
drag_active = true
|
||||||
-- set all buttons to regular on release clicks
|
-- set all buttons to regular on release clicks
|
||||||
for id, button in pairs(buttoncache) do
|
for id, button in pairs(buttoncache) do
|
||||||
button:RegisterForClicks("LeftButtonUp", "RightButtonUp")
|
button:RegisterForClicks("LeftButtonUp", "RightButtonUp")
|
||||||
end
|
end
|
||||||
elseif drag_active and not IsShiftKeyDown() then
|
elseif drag_active and not ShiftDown() then
|
||||||
drag_active = nil
|
drag_active = nil
|
||||||
-- set all buttons back to their defaults
|
-- set all buttons back to their defaults
|
||||||
for id, button in pairs(buttoncache) do
|
for id, button in pairs(buttoncache) do
|
||||||
@@ -39,6 +45,7 @@ pfUI:RegisterModule("actionbar", function ()
|
|||||||
end
|
end
|
||||||
end
|
end
|
||||||
end
|
end
|
||||||
|
pfUI.events:RegisterFrameEventAndCallback("MODIFIER_STATE_CHANGED", AssumeButtonDrag)
|
||||||
|
|
||||||
-- hide blizzard bars
|
-- hide blizzard bars
|
||||||
local function kill(f, killshow)
|
local function kill(f, killshow)
|
||||||
@@ -161,113 +168,83 @@ pfUI:RegisterModule("actionbar", function ()
|
|||||||
[12] = "Pet",
|
[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 = {
|
local button_animations = {
|
||||||
["none"] = function()
|
["zoomfade"] = {
|
||||||
this.active = nil
|
{ .67, 2, 0, "NONE" },
|
||||||
this:Hide()
|
},
|
||||||
end,
|
["shrinkreturn"] = { hideicon = true,
|
||||||
["zoomfade"] = function()
|
{ .13, .36, .36, "OUT" },
|
||||||
if this.active == 0 then
|
{ .2, 1, 1, "IN" },
|
||||||
-- init animation
|
},
|
||||||
this:SetSize(this.parent:GetSize())
|
["elasticzoom"] = { hideicon = true,
|
||||||
this:SetScale(this.parent:GetScale())
|
{ .1, .47, .47, "OUT" },
|
||||||
this.tex:SetTexture(this.parent.icon:GetTexture())
|
{ .28, 1.12, 1, "IN_OUT" },
|
||||||
this.tex:SetVertexColor(this.parent.icon:GetVertexColor())
|
{ .28, .97, .97, "IN_OUT" },
|
||||||
this:SetAlpha(1)
|
{ .46, 1, 1, "IN_OUT" },
|
||||||
this.active = 1
|
},
|
||||||
return
|
["wobblezoom"] = { hideicon = true,
|
||||||
elseif this.active == 1 then
|
{ .07, .25, .25, "OUT" },
|
||||||
-- run animation
|
{ .17, 1.41, 1, "IN_OUT" },
|
||||||
local fade = 30/GetFramerate()*0.05
|
{ .17, .77, .77, "IN_OUT" },
|
||||||
this:SetAlpha(this:GetAlpha() - fade)
|
{ .17, 1.12, 1, "IN_OUT" },
|
||||||
this:SetScale(this:GetScale() + fade)
|
{ .17, .93, .93, "IN_OUT" },
|
||||||
if this:GetAlpha() > 0 then return end
|
{ .17, 1.04, 1, "IN_OUT" },
|
||||||
end
|
{ .17, .98, .98, "IN_OUT" },
|
||||||
|
{ .59, 1, 1, "IN_OUT" },
|
||||||
-- 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,
|
|
||||||
}
|
}
|
||||||
|
|
||||||
|
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()
|
local function GetActiveBar()
|
||||||
if CURRENT_ACTIONBAR_PAGE == 1 and GetBonusBarOffset() ~= 0 then
|
if CURRENT_ACTIONBAR_PAGE == 1 and GetBonusBarOffset() ~= 0 then
|
||||||
return NUM_ACTIONBAR_PAGES + GetBonusBarOffset()
|
return NUM_ACTIONBAR_PAGES + GetBonusBarOffset()
|
||||||
@@ -310,8 +287,7 @@ pfUI:RegisterModule("actionbar", function ()
|
|||||||
-- trigger action animation
|
-- 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 ( 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
|
if C.bars.animmode == "keypress" and ( self:GetAlpha() > .1 or C.bars.animalways == "1" ) then
|
||||||
self.animation.active = 0
|
PlayButtonAnimation(self)
|
||||||
self.animation:Show()
|
|
||||||
end
|
end
|
||||||
end
|
end
|
||||||
|
|
||||||
@@ -364,8 +340,9 @@ pfUI:RegisterModule("actionbar", function ()
|
|||||||
local function ButtonEnter(self)
|
local function ButtonEnter(self)
|
||||||
self = self or this
|
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
|
drag_await = true
|
||||||
|
AssumeButtonDrag()
|
||||||
|
|
||||||
GameTooltip:ClearLines()
|
GameTooltip:ClearLines()
|
||||||
GameTooltip_SetDefaultAnchor(GameTooltip, self)
|
GameTooltip_SetDefaultAnchor(GameTooltip, self)
|
||||||
@@ -382,8 +359,6 @@ pfUI:RegisterModule("actionbar", function ()
|
|||||||
end
|
end
|
||||||
elseif self.spellID then
|
elseif self.spellID then
|
||||||
GameTooltip:SetSpellByID(self.spellID)
|
GameTooltip:SetSpellByID(self.spellID)
|
||||||
elseif self.spellslot and self.booktype then
|
|
||||||
GameTooltip:SetSpell(self.spellslot, self.booktype)
|
|
||||||
else
|
else
|
||||||
GameTooltip:SetAction(self.id)
|
GameTooltip:SetAction(self.id)
|
||||||
end
|
end
|
||||||
@@ -416,11 +391,7 @@ pfUI:RegisterModule("actionbar", function ()
|
|||||||
end
|
end
|
||||||
|
|
||||||
-- equipped item
|
-- equipped item
|
||||||
if IsEquippedAction(sid) and C.bars.showequipped == "1" then
|
self.equipped:SetShown(IsEquippedAction(sid) and C.bars.showequipped == "1")
|
||||||
self.equipped:Show()
|
|
||||||
else
|
|
||||||
self.equipped:Hide()
|
|
||||||
end
|
|
||||||
end
|
end
|
||||||
|
|
||||||
local start, duration, enable, castable, autocast, token
|
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
|
id = self.bar == 1 and self.slot or sid-((self.bar)-1)*12
|
||||||
end
|
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
|
if not self.showempty and self.backdrop and not texture and grid == 0 then
|
||||||
self.backdrop:Hide()
|
self.backdrop:Hide()
|
||||||
self.hide = true
|
self.hide = true
|
||||||
@@ -472,8 +438,7 @@ pfUI:RegisterModule("actionbar", function ()
|
|||||||
-- active border
|
-- active border
|
||||||
if active then
|
if active then
|
||||||
if C.bars.animmode == "statechange" and not self.active:IsShown() then
|
if C.bars.animmode == "statechange" and not self.active:IsShown() then
|
||||||
self.animation.active = 0
|
PlayButtonAnimation(self)
|
||||||
self.animation:Show()
|
|
||||||
end
|
end
|
||||||
|
|
||||||
self.backdrop:SetBackdropBorderColor(cr,cg,cb,1)
|
self.backdrop:SetBackdropBorderColor(cr,cg,cb,1)
|
||||||
@@ -513,11 +478,7 @@ pfUI:RegisterModule("actionbar", function ()
|
|||||||
self.autocast:Hide()
|
self.autocast:Hide()
|
||||||
end
|
end
|
||||||
|
|
||||||
if castable and C.bars.showcastable == "1" then
|
self.autocastable:SetShown(castable and C.bars.showcastable == "1")
|
||||||
self.autocastable:Show()
|
|
||||||
else
|
|
||||||
self.autocastable:Hide()
|
|
||||||
end
|
|
||||||
end
|
end
|
||||||
|
|
||||||
-- keybinds
|
-- keybinds
|
||||||
@@ -590,9 +551,6 @@ pfUI:RegisterModule("actionbar", function ()
|
|||||||
start, duration, enable = GetShapeshiftFormCooldown(button.id)
|
start, duration, enable = GetShapeshiftFormCooldown(button.id)
|
||||||
elseif button.bar == 12 then
|
elseif button.bar == 12 then
|
||||||
start, duration, enable = GetPetActionCooldown(button.id)
|
start, duration, enable = GetPetActionCooldown(button.id)
|
||||||
elseif button.spellslot and button.booktype then
|
|
||||||
start, duration = GetSpellCooldown(button.spellslot, button.booktype)
|
|
||||||
enable = 1
|
|
||||||
else
|
else
|
||||||
start, duration, enable = GetActionCooldown(button.id)
|
start, duration, enable = GetActionCooldown(button.id)
|
||||||
end
|
end
|
||||||
@@ -694,9 +652,6 @@ pfUI:RegisterModule("actionbar", function ()
|
|||||||
if (this.tick_main or 0) > GetTime() then return end
|
if (this.tick_main or 0) > GetTime() then return end
|
||||||
this.tick_main = GetTime() + 0.025
|
this.tick_main = GetTime() + 0.025
|
||||||
|
|
||||||
-- update buttons whenever a button drag is assumed
|
|
||||||
AssumeButtonDrag()
|
|
||||||
|
|
||||||
if pfUI.unlock then
|
if pfUI.unlock then
|
||||||
-- update all bars when entering unlock
|
-- update all bars when entering unlock
|
||||||
if pfUI.unlock:IsShown() ~= unlock then
|
if pfUI.unlock:IsShown() ~= unlock then
|
||||||
@@ -901,14 +856,9 @@ pfUI:RegisterModule("actionbar", function ()
|
|||||||
if class == "DRUID" then
|
if class == "DRUID" then
|
||||||
pageswitch:RegisterUnitEvent("UNIT_SPELLCAST_SUCCEEDED", "player")
|
pageswitch:RegisterUnitEvent("UNIT_SPELLCAST_SUCCEEDED", "player")
|
||||||
end
|
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 class == "PRIEST" then
|
||||||
if event == "UPDATE_SHAPESHIFT_FORM" or event == "PLAYER_ENTERING_WORLD" then
|
if event == "UPDATE_SHAPESHIFT_FORM" or event == "PLAYER_ENTERING_WORLD" then
|
||||||
formpaging = InShadowform()
|
formpaging = InShadowform()
|
||||||
@@ -956,33 +906,50 @@ pfUI:RegisterModule("actionbar", function ()
|
|||||||
formpaging = nil
|
formpaging = nil
|
||||||
end
|
end
|
||||||
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
|
-- switch actionbar page depending on meta key that is pressed
|
||||||
if C.bars.pagemastershift == "1" and IsShiftKeyDown() then
|
if C.bars.pagemastershift == "1" and ShiftDown() then
|
||||||
SwitchBar(shift)
|
page = shift
|
||||||
return
|
elseif C.bars.pagemasterctrl == "1" and CtrlDown() then
|
||||||
elseif C.bars.pagemasterctrl == "1" and IsControlKeyDown() then
|
page = ctrl
|
||||||
SwitchBar(ctrl)
|
elseif C.bars.pagemasteralt == "1" and AltDown() then
|
||||||
return
|
page = alt
|
||||||
elseif C.bars.pagemasteralt == "1" and IsAltKeyDown() then
|
|
||||||
SwitchBar(alt)
|
|
||||||
return
|
|
||||||
elseif C.bars.pagemasteralt == "1" or C.bars.pagemasterctrl == "1" or C.bars.pagemastershift == "1" then
|
elseif C.bars.pagemasteralt == "1" or C.bars.pagemasterctrl == "1" or C.bars.pagemastershift == "1" then
|
||||||
SwitchBar(default)
|
page = default
|
||||||
end
|
end
|
||||||
|
|
||||||
-- switch actionbar page while druid stealth / priest shadowform is active
|
-- switch actionbar page while druid stealth / priest shadowform is active
|
||||||
if (class == "DRUID" and C.bars.druidstealth == "1")
|
if (class == "DRUID" and C.bars.druidstealth == "1")
|
||||||
or (class == "PRIEST" and C.bars.priestshadow == "1") then
|
or (class == "PRIEST" and C.bars.priestshadow == "1") then
|
||||||
if formpaging and _G.CURRENT_ACTIONBAR_PAGE == 1 then
|
if formpaging and page == default then
|
||||||
SwitchBar(formpage)
|
page = formpage
|
||||||
elseif not formpaging and _G.CURRENT_ACTIONBAR_PAGE == 8 then
|
elseif not formpaging and page == formpage then
|
||||||
SwitchBar(default)
|
page = default
|
||||||
end
|
end
|
||||||
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)
|
end)
|
||||||
|
|
||||||
|
pfUI.events:RegisterFrameEventAndCallback("MODIFIER_STATE_CHANGED", UpdatePage)
|
||||||
|
pfUI.events:RegisterFrameEventAndCallback("ACTIONBAR_PAGE_CHANGED", UpdatePage)
|
||||||
end
|
end
|
||||||
|
|
||||||
local function CreateActionButton(parent, bar, button)
|
local function CreateActionButton(parent, bar, button)
|
||||||
@@ -1000,8 +967,6 @@ pfUI:RegisterModule("actionbar", function ()
|
|||||||
local bind_size = tonumber(C.bars.bind_size)
|
local bind_size = tonumber(C.bars.bind_size)
|
||||||
local bind_color = { GetStringColor(C.bars.bind_color) }
|
local bind_color = { GetStringColor(C.bars.bind_color) }
|
||||||
|
|
||||||
local cd_size = tonumber(C.bars.cd_size)
|
|
||||||
|
|
||||||
local showempty = C.bars["bar"..bar].showempty
|
local showempty = C.bars["bar"..bar].showempty
|
||||||
local showmacro = C.bars["bar"..bar].showmacro
|
local showmacro = C.bars["bar"..bar].showmacro
|
||||||
local showkybind = C.bars["bar"..bar].showkeybind
|
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 macro_size == 0 then macro_size = 1 end
|
||||||
if count_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 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
|
local button_name = "pfActionBar" .. barnames[bar] .. "Button" .. button
|
||||||
|
|
||||||
@@ -1043,10 +1007,7 @@ pfUI:RegisterModule("actionbar", function ()
|
|||||||
f.slot = id
|
f.slot = id
|
||||||
|
|
||||||
-- cooldown
|
-- cooldown
|
||||||
f.cd = CreateFrame("Cooldown", f:GetName() .. "Cooldown", f, "CooldownFrameTemplate")
|
f.cd = CreateCooldown(f, "actionbar", f:GetName() .. "Cooldown")
|
||||||
f.cd.pfCooldownStyleAnimation = 1
|
|
||||||
f.cd.pfCooldownType = "NOGCD"
|
|
||||||
f.cd.pfCooldownSize = cd_size
|
|
||||||
|
|
||||||
-- icon
|
-- icon
|
||||||
f.icon = f:CreateTexture(button_name .. "Icon", "BACKGROUND")
|
f.icon = f:CreateTexture(button_name .. "Icon", "BACKGROUND")
|
||||||
@@ -1055,8 +1016,8 @@ pfUI:RegisterModule("actionbar", function ()
|
|||||||
|
|
||||||
-- animation
|
-- animation
|
||||||
f.animation = CreateFrame("Frame", button_name .. "Animation", f)
|
f.animation = CreateFrame("Frame", button_name .. "Animation", f)
|
||||||
f.animation.parent = f
|
f.animation.groups = {}
|
||||||
f.animation:SetPoint("CENTER", 0, 0)
|
f.animation:SetAllPoints()
|
||||||
f.animation:Hide()
|
f.animation:Hide()
|
||||||
f.animation.tex = f.animation:CreateTexture(button_name .. "AnimationTexture", "BACKGROUND")
|
f.animation.tex = f.animation:CreateTexture(button_name .. "AnimationTexture", "BACKGROUND")
|
||||||
f.animation.tex:SetTexCoord(.08, .92, .08, .92)
|
f.animation.tex:SetTexCoord(.08, .92, .08, .92)
|
||||||
@@ -1115,9 +1076,6 @@ pfUI:RegisterModule("actionbar", function ()
|
|||||||
f:RegisterForClicks("LeftButtonUp", "RightButtonUp")
|
f:RegisterForClicks("LeftButtonUp", "RightButtonUp")
|
||||||
end
|
end
|
||||||
|
|
||||||
-- set animation
|
|
||||||
f.animation:SetScript("OnUpdate", button_animations[C.bars.animation])
|
|
||||||
|
|
||||||
-- pet autocast
|
-- pet autocast
|
||||||
if bar == 12 then
|
if bar == 12 then
|
||||||
f.autocast:SetScale(C.bars["bar"..bar].icon_size / 25)
|
f.autocast:SetScale(C.bars["bar"..bar].icon_size / 25)
|
||||||
@@ -1125,7 +1083,7 @@ pfUI:RegisterModule("actionbar", function ()
|
|||||||
end
|
end
|
||||||
|
|
||||||
-- macro options
|
-- 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)
|
SetAllPointsOffset(f.macro, f, font_offset, -font_offset)
|
||||||
f.macro:SetFont(font, macro_size, "OUTLINE")
|
f.macro:SetFont(font, macro_size, "OUTLINE")
|
||||||
f.macro:SetTextColor(unpack(macro_color))
|
f.macro:SetTextColor(unpack(macro_color))
|
||||||
@@ -1133,7 +1091,7 @@ pfUI:RegisterModule("actionbar", function ()
|
|||||||
f.macro:SetJustifyV("BOTTOM")
|
f.macro:SetJustifyV("BOTTOM")
|
||||||
|
|
||||||
-- keybind options
|
-- 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)
|
SetAllPointsOffset(f.keybind, f, font_offset, -font_offset)
|
||||||
f.keybind:SetFont(font, bind_size, "OUTLINE")
|
f.keybind:SetFont(font, bind_size, "OUTLINE")
|
||||||
f.keybind:SetTextColor(unpack(bind_color))
|
f.keybind:SetTextColor(unpack(bind_color))
|
||||||
@@ -1142,15 +1100,13 @@ pfUI:RegisterModule("actionbar", function ()
|
|||||||
f.keybind:SetNonSpaceWrap(false)
|
f.keybind:SetNonSpaceWrap(false)
|
||||||
|
|
||||||
-- item count options
|
-- 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)
|
SetAllPointsOffset(f.count, f, font_offset, -font_offset)
|
||||||
f.count:SetFont(font, count_size, "OUTLINE")
|
f.count:SetFont(font, count_size, "OUTLINE")
|
||||||
f.count:SetTextColor(unpack(count_color))
|
f.count:SetTextColor(unpack(count_color))
|
||||||
f.count:SetJustifyH("RIGHT")
|
f.count:SetJustifyH("RIGHT")
|
||||||
f.count:SetJustifyV("BOTTOM")
|
f.count:SetJustifyV("BOTTOM")
|
||||||
|
|
||||||
f.scanmacro, f.spellslot, f.booktype = nil, nil, nil
|
|
||||||
|
|
||||||
-- range glow color
|
-- range glow color
|
||||||
f.rangeColor = GetStringColorObject(C.bars.rangecolor)
|
f.rangeColor = GetStringColorObject(C.bars.rangecolor)
|
||||||
|
|
||||||
@@ -1162,7 +1118,7 @@ pfUI:RegisterModule("actionbar", function ()
|
|||||||
|
|
||||||
-- equipped color
|
-- equipped color
|
||||||
if f.equipped then
|
if f.equipped then
|
||||||
f.equipped:SetTexture(GetStringColor(C.bars.eqcolor))
|
f.equipped:SetColorTexture(GetStringColor(C.bars.eqcolor))
|
||||||
end
|
end
|
||||||
|
|
||||||
-- general appearance
|
-- general appearance
|
||||||
@@ -1217,8 +1173,7 @@ pfUI:RegisterModule("actionbar", function ()
|
|||||||
end
|
end
|
||||||
|
|
||||||
-- the stored layout is invalid, temporary fallback
|
-- the stored layout is invalid, temporary fallback
|
||||||
local _, _, fcols, frows = string.find(tostring(formfactor or ""), "(%d+)%s*x%s*(%d+)")
|
if not fcols2 or not frows2 then
|
||||||
if not ((fcols and frows) or pfGridmath[buttons][BarLayoutFormfactor(formfactor)]) then
|
|
||||||
formfactor = BarLayoutOptions(buttons)[1]
|
formfactor = BarLayoutOptions(buttons)[1]
|
||||||
end
|
end
|
||||||
|
|
||||||
@@ -1244,11 +1199,7 @@ pfUI:RegisterModule("actionbar", function ()
|
|||||||
-- handle pet bar
|
-- handle pet bar
|
||||||
if i == 12 then
|
if i == 12 then
|
||||||
-- only show when pet actions exists
|
-- only show when pet actions exists
|
||||||
if PetHasActionBar() or pfUI.unlock and pfUI.unlock:IsShown() then
|
bars[i]:SetShown(PetHasActionBar() or pfUI.unlock and pfUI.unlock:IsShown())
|
||||||
bars[i]:Show()
|
|
||||||
else
|
|
||||||
bars[i]:Hide()
|
|
||||||
end
|
|
||||||
|
|
||||||
-- show/hide petbar on petbar updates
|
-- show/hide petbar on petbar updates
|
||||||
if init then
|
if init then
|
||||||
@@ -1268,11 +1219,7 @@ pfUI:RegisterModule("actionbar", function ()
|
|||||||
-- handle shapeshift bar
|
-- handle shapeshift bar
|
||||||
elseif i == 11 then
|
elseif i == 11 then
|
||||||
-- only show when shapeshifts exist
|
-- only show when shapeshifts exist
|
||||||
if GetNumShapeshiftForms() > 0 then
|
bars[i]:SetShown(GetNumShapeshiftForms() > 0)
|
||||||
bars[i]:Show()
|
|
||||||
else
|
|
||||||
bars[i]:Hide()
|
|
||||||
end
|
|
||||||
|
|
||||||
-- update shapeshift bar when amount of spells changes
|
-- update shapeshift bar when amount of spells changes
|
||||||
if init then
|
if init then
|
||||||
@@ -1514,23 +1461,10 @@ pfUI:RegisterModule("actionbar", function ()
|
|||||||
_G.ShapeshiftBar_ChangeForm = function(slot) pfActionButton(slot, nil, "ShapeShiftBar") end
|
_G.ShapeshiftBar_ChangeForm = function(slot) pfActionButton(slot, nil, "ShapeShiftBar") end
|
||||||
|
|
||||||
-- handle drag-drop grid
|
-- handle drag-drop grid
|
||||||
local grid = CreateFrame("Frame")
|
pfUI.events:RegisterFrameEventAndCallback("ACTIONBAR_SHOWGRID", function() pfUI.bars:UpdateGrid(1) end)
|
||||||
grid:RegisterEvent("ACTIONBAR_SHOWGRID")
|
pfUI.events:RegisterFrameEventAndCallback("ACTIONBAR_HIDEGRID", function() pfUI.bars:UpdateGrid(0) end)
|
||||||
grid:RegisterEvent("ACTIONBAR_HIDEGRID")
|
pfUI.events:RegisterFrameEventAndCallback("PET_BAR_SHOWGRID", function() pfUI.bars:UpdateGrid(1, "PET") end)
|
||||||
grid:RegisterEvent("PET_BAR_SHOWGRID")
|
pfUI.events:RegisterFrameEventAndCallback("PET_BAR_HIDEGRID", function() pfUI.bars:UpdateGrid(0, "PET") end)
|
||||||
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)
|
|
||||||
|
|
||||||
-- reagent counter
|
-- reagent counter
|
||||||
if C.bars.reagents == "1" then
|
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
|
-- rescan before deciding whether the panel should be shown by default
|
||||||
pfUI.addonbuttons:ProcessButtons()
|
pfUI.addonbuttons:ProcessButtons()
|
||||||
|
|
||||||
if C.abuttons.showdefault == "1" and GetNumButtons() > 0 then
|
pfUI.addonbuttons:SetShown(C.abuttons.showdefault == "1" and GetNumButtons() > 0)
|
||||||
pfUI.addonbuttons:Show()
|
|
||||||
else
|
|
||||||
pfUI.addonbuttons:Hide()
|
|
||||||
end
|
|
||||||
|
|
||||||
-- apply workarounds
|
-- apply workarounds
|
||||||
for k, v in pairs(pfUI.addonbuttons.overrides) do
|
for k, v in pairs(pfUI.addonbuttons.overrides) do
|
||||||
|
|||||||
@@ -128,7 +128,7 @@ pfUI:RegisterModule("addoncompat", function ()
|
|||||||
{T["Yes"], function()
|
{T["Yes"], function()
|
||||||
ReloadUI()
|
ReloadUI()
|
||||||
end},
|
end},
|
||||||
{T["No"], function() end},
|
{T["No"], nop},
|
||||||
nil)
|
nil)
|
||||||
end
|
end
|
||||||
end
|
end
|
||||||
|
|||||||
+118
-162
@@ -69,17 +69,53 @@ pfUI:RegisterModule("addons", function ()
|
|||||||
pfUI.addons:Hide()
|
pfUI.addons:Hide()
|
||||||
end)
|
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
|
-- addons profile
|
||||||
local function GetSelectedAddonsList()
|
local function GetSelectedAddonsList()
|
||||||
local selected_addons = {}
|
local selected_addons = {}
|
||||||
for i, frame in ipairs(pfUI.addons.list) do
|
for i, addon in ipairs(addons) do
|
||||||
if frame.input:GetChecked() then
|
if IsAddonEnabled(i) then
|
||||||
table.insert(selected_addons, frame.aname)
|
table.insert(selected_addons, addon.name)
|
||||||
end
|
end
|
||||||
end
|
end
|
||||||
return selected_addons
|
return selected_addons
|
||||||
end
|
end
|
||||||
|
|
||||||
|
local selectedProfile
|
||||||
|
|
||||||
|
local function IsSelectedProfile(profile)
|
||||||
|
return profile == selectedProfile
|
||||||
|
end
|
||||||
|
|
||||||
local function SetAddonProfile(profile)
|
local function SetAddonProfile(profile)
|
||||||
-- create new profile if not existing
|
-- create new profile if not existing
|
||||||
if not pfUI_addon_profiles[profile] then
|
if not pfUI_addon_profiles[profile] then
|
||||||
@@ -87,31 +123,24 @@ pfUI:RegisterModule("addons", function ()
|
|||||||
end
|
end
|
||||||
|
|
||||||
-- set dropdown to profile
|
-- set dropdown to profile
|
||||||
pfUI.addons.profile.dropdown:SetSelectionByText(profile)
|
selectedProfile = profile
|
||||||
|
pfUI.addons.profile.dropdown:GenerateMenu()
|
||||||
|
|
||||||
-- load profile
|
-- load profile
|
||||||
local selected_list = pfUI_addon_profiles[profile]
|
local selected = {}
|
||||||
for i=1, GetNumAddOns() do
|
for _, name in ipairs(pfUI_addon_profiles[profile]) do
|
||||||
local active = false
|
selected[name] = true
|
||||||
local f = pfUI.addons.list[i]
|
end
|
||||||
|
|
||||||
for i_i, n in ipairs(selected_list) do
|
for i, addon in ipairs(addons) do
|
||||||
if f.aname == n then
|
if selected[addon.name] and not IsAddonEnabled(i) then
|
||||||
active = true
|
SetAddonEnabled(i, true)
|
||||||
break
|
elseif not selected[addon.name] and IsAddonEnabled(i) then
|
||||||
|
SetAddonEnabled(i, false)
|
||||||
end
|
end
|
||||||
end
|
end
|
||||||
|
|
||||||
if active then
|
pfUI.addons.list.ScrollBox:ReinitializeFrames()
|
||||||
if not f.input:GetChecked() then
|
|
||||||
f.input:Click()
|
|
||||||
end
|
|
||||||
else
|
|
||||||
if f.input:GetChecked() then
|
|
||||||
f.input:Click()
|
|
||||||
end
|
|
||||||
end
|
|
||||||
end
|
|
||||||
end
|
end
|
||||||
|
|
||||||
-- addon profiles
|
-- addon profiles
|
||||||
@@ -141,7 +170,7 @@ pfUI:RegisterModule("addons", function ()
|
|||||||
pfUI.addons.profile.del:SetText("-")
|
pfUI.addons.profile.del:SetText("-")
|
||||||
pfUI.addons.profile.del:SetTextColor(1,.5,.5,1)
|
pfUI.addons.profile.del:SetTextColor(1,.5,.5,1)
|
||||||
pfUI.addons.profile.del:SetScript("OnClick", function() -- TODO
|
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
|
if not name then return end
|
||||||
CreateQuestionDialog(T["Delete profile"] .. " '|cff33ffcc" .. name .. "|r'?", function()
|
CreateQuestionDialog(T["Delete profile"] .. " '|cff33ffcc" .. name .. "|r'?", function()
|
||||||
pfUI_addon_profiles[name] = nil
|
pfUI_addon_profiles[name] = nil
|
||||||
@@ -171,45 +200,15 @@ pfUI:RegisterModule("addons", function ()
|
|||||||
end)
|
end)
|
||||||
|
|
||||||
-- addon profile: dropdown
|
-- addon profile: dropdown
|
||||||
pfUI.addons.profile.dropdown = CreateDropDownButton("pfAddonListProfileList", pfUI.addons.profile)
|
pfUI.addons.profile.dropdown = CreateFrame("DropdownButton", nil, pfUI.addons.profile, "pfUIDropdownTemplate")
|
||||||
pfUI.addons.profile.dropdown:SetBackdrop(nil)
|
|
||||||
pfUI.addons.profile.dropdown:ClearAllPoints()
|
|
||||||
pfUI.addons.profile.dropdown:SetPoint("RIGHT", pfUI.addons.profile.add, "LEFT", -2, 0)
|
pfUI.addons.profile.dropdown:SetPoint("RIGHT", pfUI.addons.profile.add, "LEFT", -2, 0)
|
||||||
pfUI.addons.profile.dropdown:SetWidth(220)
|
pfUI.addons.profile.dropdown:SetWidth(220)
|
||||||
pfUI.addons.profile.dropdown:SetMenu(function()
|
pfUI.addons.profile.dropdown:SetupMenu(function(dropdown, rootDescription)
|
||||||
local menu = {}
|
for name in pairs(pfUI_addon_profiles) do
|
||||||
|
rootDescription:CreateRadio(name, IsSelectedProfile, SetAddonProfile, name)
|
||||||
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
|
end
|
||||||
table.insert(menu, entry)
|
|
||||||
end
|
|
||||||
|
|
||||||
return menu
|
|
||||||
end)
|
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)
|
local function AddDependencyLines(header, deps)
|
||||||
if not deps or table.getn(deps) == 0 then return end
|
if not deps or table.getn(deps) == 0 then return end
|
||||||
GameTooltip:AddLine(" ")
|
GameTooltip:AddLine(" ")
|
||||||
@@ -225,137 +224,94 @@ pfUI:RegisterModule("addons", function ()
|
|||||||
end
|
end
|
||||||
end
|
end
|
||||||
|
|
||||||
local function AddonOnEnter()
|
local function RowOnEnter(self)
|
||||||
this:SetBackdropBorderColor(1,1,1,.08)
|
local addon = self.addon
|
||||||
|
self:SetBackdropBorderColor(1,1,1,.08)
|
||||||
|
|
||||||
GameTooltip:SetOwner(this, "ANCHOR_RIGHT")
|
GameTooltip:SetOwner(self, "ANCHOR_RIGHT")
|
||||||
GameTooltip:SetText(this.atitle)
|
GameTooltip:SetText(addon.title)
|
||||||
if this.aversion then
|
if addon.version then
|
||||||
GameTooltip:AddDoubleLine(T["Version"], this.aversion, 1,1,1, .2,1,.8)
|
GameTooltip:AddDoubleLine(T["Version"], addon.version, 1,1,1, .2,1,.8)
|
||||||
end
|
end
|
||||||
|
|
||||||
if this.aauthor then
|
if addon.author then
|
||||||
GameTooltip:AddDoubleLine(T["Author"], this.aauthor, 1,1,1, .2,1,.8)
|
GameTooltip:AddDoubleLine(T["Author"], addon.author, 1,1,1, .2,1,.8)
|
||||||
end
|
end
|
||||||
|
|
||||||
GameTooltip:AddLine(this.anote, .75,.75,.75,1)
|
GameTooltip:AddLine(addon.notes, .75,.75,.75,1)
|
||||||
AddDependencyLines(T["Dependencies"], this.adeps)
|
AddDependencyLines(T["Dependencies"], addon.deps)
|
||||||
AddDependencyLines(T["Optional Dependencies"], this.aoptdeps)
|
AddDependencyLines(T["Optional Dependencies"], addon.optdeps)
|
||||||
GameTooltip:SetWidth(180)
|
GameTooltip:SetWidth(180)
|
||||||
GameTooltip:Show()
|
GameTooltip:Show()
|
||||||
end
|
end
|
||||||
|
|
||||||
local function AddonOnLeave()
|
local function RowOnLeave(self)
|
||||||
this:SetBackdropBorderColor(1,1,1,.04)
|
self:SetBackdropBorderColor(1,1,1,.04)
|
||||||
GameTooltip:Hide()
|
GameTooltip:Hide()
|
||||||
end
|
end
|
||||||
|
|
||||||
local function AddonOnClick()
|
local function RowOnClick(self)
|
||||||
this.input:Click()
|
self.input:Click()
|
||||||
end
|
end
|
||||||
|
|
||||||
local function InputOnClick()
|
local function InputOnClick(self)
|
||||||
if this:GetChecked() then
|
SetAddonEnabled(self:GetParent().addon.index, self:GetChecked())
|
||||||
EnableAddOn(this:GetID())
|
|
||||||
else
|
|
||||||
DisableAddOn(this:GetID())
|
|
||||||
end
|
|
||||||
pfUI.addons.hasChanged = true
|
|
||||||
|
|
||||||
local id, name = pfUI.addons.profile.dropdown:GetSelection()
|
pfUI_addon_profiles[selectedProfile or T["Current"]] = GetSelectedAddonsList()
|
||||||
name = name or T["Current"]
|
|
||||||
pfUI_addon_profiles[name] = GetSelectedAddonsList()
|
|
||||||
end
|
end
|
||||||
|
|
||||||
pfUI.addons.list:SetScript("OnEvent", function()
|
local function InitRow(row, addon)
|
||||||
for i=1, GetNumAddOns() do
|
-- one-time setup of a pooled row
|
||||||
local aname, atitle, anote = GetAddOnInfo(i)
|
if not row.input then
|
||||||
local aauthor = GetAddOnMetadata(aname, "Author")
|
row:SetBackdrop(pfUI.backdrop_hover)
|
||||||
local aversion = GetAddOnMetadata(aname, "Version")
|
row:SetBackdropBorderColor(1,1,1,.04)
|
||||||
|
|
||||||
-- basic frame
|
row:EnableMouse(true)
|
||||||
if not pfUI.addons.list[i] then
|
row:SetScript("OnEnter", RowOnEnter)
|
||||||
pfUI.addons.list[i] = CreateFrame("Button", nil, pfUI.addons.list)
|
row:SetScript("OnLeave", RowOnLeave)
|
||||||
local frame = pfUI.addons.list[i]
|
row:SetScript("OnClick", RowOnClick)
|
||||||
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)
|
|
||||||
|
|
||||||
frame:SetSize(340, 25)
|
|
||||||
frame:SetPoint("TOPLEFT", 5, i * -25 + 20)
|
|
||||||
|
|
||||||
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
|
-- caption
|
||||||
frame.caption = frame:CreateFontString("Status", "LOW", "GameFontNormal")
|
row.caption = row:CreateFontString(nil, "LOW", "GameFontNormal")
|
||||||
frame.caption:SetFont(pfUI.font_default, C.global.font_size + 2, "OUTLINE")
|
row.caption:SetFont(pfUI.font_default, C.global.font_size + 2, "OUTLINE")
|
||||||
frame.caption:SetPoint("LEFT", frame, "LEFT", 2, 0)
|
row.caption:SetPoint("LEFT", row, "LEFT", 2, 0)
|
||||||
frame.caption:SetFontObject(GameFontWhite)
|
row.caption:SetFontObject(GameFontWhite)
|
||||||
frame.caption:SetJustifyH("LEFT")
|
row.caption:SetJustifyH("LEFT")
|
||||||
frame.caption:SetText(atitle)
|
|
||||||
|
|
||||||
-- input field
|
-- input field
|
||||||
frame.input = CreateFrame("CheckButton", nil, frame, "UICheckButtonTemplate")
|
row.input = CreateFrame("CheckButton", nil, row, "UICheckButtonTemplate")
|
||||||
frame.input:SetFrameLevel(3)
|
row.input:SetNormalTexture("")
|
||||||
frame.input:SetNormalTexture("")
|
row.input:SetPushedTexture("")
|
||||||
frame.input:SetPushedTexture("")
|
row.input:SetHighlightTexture("")
|
||||||
frame.input:SetHighlightTexture("")
|
CreateBackdrop(row.input, nil, true)
|
||||||
CreateBackdrop(frame.input, nil, true)
|
row.input:SetBackdropBorderColor(.3,.3,.3,1)
|
||||||
frame.input:SetBackdropBorderColor(.3,.3,.3,1)
|
row.input:SetSize(14, 14)
|
||||||
frame.input:SetWidth(14)
|
row.input:SetPoint("RIGHT" , -5, 1)
|
||||||
frame.input:SetHeight(14)
|
row.input:SetScript("OnClick", InputOnClick)
|
||||||
frame.input:SetPoint("RIGHT" , -5, 1)
|
|
||||||
frame.input:SetID(i)
|
|
||||||
frame.input:SetScript("OnClick", InputOnClick)
|
|
||||||
end
|
end
|
||||||
|
|
||||||
if IsAddOnLoaded(i) then
|
row.addon = addon
|
||||||
pfUI.addons.list[i].input:SetChecked()
|
row.caption:SetText(addon.title)
|
||||||
pfUI.addons.list[i].caption:SetAlpha(1)
|
row.caption:SetAlpha(IsAddOnLoaded(addon.index) and 1 or .5)
|
||||||
else
|
row.input:SetChecked(IsAddonEnabled(addon.index))
|
||||||
pfUI.addons.list[i].caption:SetAlpha(.5)
|
|
||||||
end
|
|
||||||
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
|
|
||||||
end
|
end
|
||||||
|
|
||||||
pfUI.addons.scroll.slider:SetScript("OnValueChanged", function()
|
-- addon list: a ScrollBox keeps rows only for the addons in view
|
||||||
this:GetParent():SetVerticalScroll(this:GetValue())
|
pfUI.addons.list = CreateFrame("Frame", "pfAddonList", pfUI.addons, "pfUIScrollBoxListTemplate")
|
||||||
end)
|
pfUI.addons.list:SetSize(370, 420)
|
||||||
pfUI.addons.scroll:SetScript("OnScrollRangeChanged", function()
|
pfUI.addons.list:SetPoint("BOTTOM", 0, 5)
|
||||||
this.slider:SetMinMaxValues(1, floor(this:GetVerticalScrollRange() + 25))
|
CreateBackdrop(pfUI.addons.list, nil, true)
|
||||||
end)
|
|
||||||
pfUI.addons.scroll:SetScript("OnShow", function()
|
local view = CreateScrollBoxListLinearView(5, 5, 5, 8)
|
||||||
this.slider:SetValue(floor(this:GetVerticalScroll()))
|
view:SetElementExtent(25)
|
||||||
pfUI.addons.scroll:ShowVisibleRange()
|
view:SetElementInitializer("Button", InitRow)
|
||||||
end)
|
ScrollUtil.InitScrollBoxListWithScrollBar(pfUI.addons.list.ScrollBox, pfUI.addons.list.ScrollBar, view)
|
||||||
pfUI.addons.scroll:SetScript("OnVerticalScroll", function()
|
pfUI.addons.list.ScrollBox:SetDataProvider(CreateDataProvider(addons))
|
||||||
pfUI.addons.scroll:ShowVisibleRange()
|
|
||||||
this.slider:SetValue(floor(this:GetVerticalScroll()))
|
-- 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)
|
||||||
|
|
||||||
end)
|
end)
|
||||||
|
|||||||
+17
-19
@@ -16,33 +16,33 @@ pfUI:RegisterModule("afkcam", function ()
|
|||||||
overlay.top:SetPoint("TOPLEFT", overlay, "TOPLEFT")
|
overlay.top:SetPoint("TOPLEFT", overlay, "TOPLEFT")
|
||||||
overlay.top:SetPoint("TOPRIGHT", overlay, "TOPRIGHT")
|
overlay.top:SetPoint("TOPRIGHT", overlay, "TOPRIGHT")
|
||||||
overlay.top:SetHeight(100)
|
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.top:SetGradientAlpha("VERTICAL", 0,0,0,0, 0,0,0,1)
|
||||||
|
|
||||||
overlay.bottom = overlay:CreateTexture("pfAFKGradientTop", "BACKGROUND")
|
overlay.bottom = overlay:CreateTexture("pfAFKGradientTop", "BACKGROUND")
|
||||||
overlay.bottom:SetPoint("BOTTOMLEFT", overlay, "BOTTOMLEFT")
|
overlay.bottom:SetPoint("BOTTOMLEFT", overlay, "BOTTOMLEFT")
|
||||||
overlay.bottom:SetPoint("BOTTOMRIGHT", overlay, "BOTTOMRIGHT")
|
overlay.bottom:SetPoint("BOTTOMRIGHT", overlay, "BOTTOMRIGHT")
|
||||||
overlay.bottom:SetHeight(100)
|
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.bottom:SetGradientAlpha("VERTICAL", 0,0,0,1, 0,0,0,0)
|
||||||
|
|
||||||
overlay:SetFrameStrata("DIALOG")
|
overlay:SetFrameStrata("DIALOG")
|
||||||
overlay:SetAllPoints(WorldFrame)
|
overlay:SetAllPoints(WorldFrame)
|
||||||
|
|
||||||
overlay:SetScript("OnMouseUp",function()
|
-- /afk toggles, so send it only while AFK is still set: once the client
|
||||||
SendChatMessage("","AFK")
|
-- or the server has cleared it, /afk would set it again
|
||||||
this._parent:stop()
|
local function Wake()
|
||||||
end)
|
if IsChatAFK() then SendChatMessage("", "AFK") end
|
||||||
|
afkcam:stop()
|
||||||
|
end
|
||||||
|
overlay:SetScript("OnMouseUp", Wake)
|
||||||
overlay:SetScript("OnShow", function()
|
overlay:SetScript("OnShow", function()
|
||||||
this:EnableKeyboard(true)
|
this:EnableKeyboard(true)
|
||||||
end)
|
end)
|
||||||
overlay:SetScript("OnHide", function()
|
overlay:SetScript("OnHide", function()
|
||||||
this:EnableKeyboard(false)
|
this:EnableKeyboard(false)
|
||||||
end)
|
end)
|
||||||
overlay:SetScript("OnKeyUp",function()
|
overlay:SetScript("OnKeyUp", Wake)
|
||||||
SendChatMessage("","AFK")
|
|
||||||
this._parent:stop()
|
|
||||||
end)
|
|
||||||
overlay:Hide()
|
overlay:Hide()
|
||||||
|
|
||||||
local chat = CreateFrame("ScrollingMessageFrame", "pfAFKCamChat", overlay)
|
local chat = CreateFrame("ScrollingMessageFrame", "pfAFKCamChat", overlay)
|
||||||
@@ -59,7 +59,10 @@ pfUI:RegisterModule("afkcam", function ()
|
|||||||
if not this:IsVisible() then return end
|
if not this:IsVisible() then return end
|
||||||
local info = _G.ChatTypeInfo[string.gsub(event,"CHAT_MSG_","")]
|
local info = _G.ChatTypeInfo[string.gsub(event,"CHAT_MSG_","")]
|
||||||
if not info then return end
|
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
|
local author, msg
|
||||||
if class and class ~= UNKNOWN then
|
if class and class ~= UNKNOWN then
|
||||||
local class_color = PFUI_CLASS_COLORS[class]:GenerateHexColorMarkup()
|
local class_color = PFUI_CLASS_COLORS[class]:GenerateHexColorMarkup()
|
||||||
@@ -74,15 +77,10 @@ pfUI:RegisterModule("afkcam", function ()
|
|||||||
chat:RegisterEvent(ctype)
|
chat:RegisterEvent(ctype)
|
||||||
end
|
end
|
||||||
chat:SetScript("OnMouseWheel",function()
|
chat:SetScript("OnMouseWheel",function()
|
||||||
if arg1 > 0 then
|
this:ScrollByAmount(arg1)
|
||||||
this:ScrollUp()
|
|
||||||
else
|
|
||||||
this:ScrollDown()
|
|
||||||
end
|
|
||||||
end)
|
end)
|
||||||
overlay.chat = chat
|
overlay.chat = chat
|
||||||
|
|
||||||
overlay._parent = afkcam
|
|
||||||
afkcam.overlay = overlay
|
afkcam.overlay = overlay
|
||||||
|
|
||||||
local clock = CreateFrame("Frame", "pfAFKClock", overlay)
|
local clock = CreateFrame("Frame", "pfAFKClock", overlay)
|
||||||
@@ -166,9 +164,9 @@ pfUI:RegisterModule("afkcam", function ()
|
|||||||
if event == "PLAYER_FLAGS_CHANGED" then
|
if event == "PLAYER_FLAGS_CHANGED" then
|
||||||
if UnitIsAFK('player') then
|
if UnitIsAFK('player') then
|
||||||
delay:Show()
|
delay:Show()
|
||||||
elseif delay:IsVisible() then
|
else
|
||||||
delay:Hide()
|
delay:Hide()
|
||||||
this:stop()
|
if this._spinning then this:stop() end
|
||||||
end
|
end
|
||||||
else
|
else
|
||||||
if this._spinning then
|
if this._spinning then
|
||||||
|
|||||||
@@ -86,11 +86,7 @@ pfUI:RegisterModule("autovendor", function ()
|
|||||||
if not pfMerchantFrame_Update then
|
if not pfMerchantFrame_Update then
|
||||||
local pfMerchantFrame_Update = MerchantFrame_Update
|
local pfMerchantFrame_Update = MerchantFrame_Update
|
||||||
function _G.MerchantFrame_Update()
|
function _G.MerchantFrame_Update()
|
||||||
if MerchantFrame.selectedTab == 1 and C["global"]["autosell"] ~= "1" then
|
autovendor.button:SetShown(MerchantFrame.selectedTab == 1 and C["global"]["autosell"] ~= "1")
|
||||||
autovendor.button:Show()
|
|
||||||
else
|
|
||||||
autovendor.button:Hide()
|
|
||||||
end
|
|
||||||
pfMerchantFrame_Update()
|
pfMerchantFrame_Update()
|
||||||
end
|
end
|
||||||
end
|
end
|
||||||
|
|||||||
+48
-103
@@ -6,8 +6,6 @@ pfUI:RegisterModule("bags", function ()
|
|||||||
[1804] = {frame="picklock"},
|
[1804] = {frame="picklock"},
|
||||||
}
|
}
|
||||||
|
|
||||||
local scanner = libtipscan:GetScanner("input_search")
|
|
||||||
|
|
||||||
local function BagSortOpts()
|
local function BagSortOpts()
|
||||||
return {
|
return {
|
||||||
reverse = C.appearance.bags.sortreverse == "1",
|
reverse = C.appearance.bags.sortreverse == "1",
|
||||||
@@ -42,11 +40,7 @@ pfUI:RegisterModule("bags", function ()
|
|||||||
|
|
||||||
-- overwrite some bag functions
|
-- overwrite some bag functions
|
||||||
function _G.OpenAllBags()
|
function _G.OpenAllBags()
|
||||||
if pfUI.bag.right:IsShown() then
|
pfUI.bag.right:SetShown(not pfUI.bag.right:IsShown())
|
||||||
pfUI.bag.right:Hide()
|
|
||||||
else
|
|
||||||
pfUI.bag.right:Show()
|
|
||||||
end
|
|
||||||
end
|
end
|
||||||
|
|
||||||
function _G.CloseAllBags()
|
function _G.CloseAllBags()
|
||||||
@@ -54,11 +48,7 @@ pfUI:RegisterModule("bags", function ()
|
|||||||
end
|
end
|
||||||
|
|
||||||
function _G.ToggleBackpack()
|
function _G.ToggleBackpack()
|
||||||
if pfUI.bag.right:IsShown() then
|
pfUI.bag.right:SetShown(not pfUI.bag.right:IsShown())
|
||||||
pfUI.bag.right:Hide()
|
|
||||||
else
|
|
||||||
pfUI.bag.right:Show()
|
|
||||||
end
|
|
||||||
end
|
end
|
||||||
|
|
||||||
function _G.OpenBackpack()
|
function _G.OpenBackpack()
|
||||||
@@ -95,6 +85,7 @@ pfUI:RegisterModule("bags", function ()
|
|||||||
pfUI.bag:RegisterEvent("ITEM_LOCK_CHANGED")
|
pfUI.bag:RegisterEvent("ITEM_LOCK_CHANGED")
|
||||||
pfUI.bag:RegisterEvent("SPELLS_CHANGED")
|
pfUI.bag:RegisterEvent("SPELLS_CHANGED")
|
||||||
pfUI.bag:RegisterEvent("MERCHANT_CLOSED")
|
pfUI.bag:RegisterEvent("MERCHANT_CLOSED")
|
||||||
|
pfUI.bag:RegisterEvent("INVENTORY_SEARCH_UPDATE")
|
||||||
|
|
||||||
pfUI.bag.delay = { UpdateBag = {} }
|
pfUI.bag.delay = { UpdateBag = {} }
|
||||||
|
|
||||||
@@ -122,6 +113,11 @@ pfUI:RegisterModule("bags", function ()
|
|||||||
pfUI.bag:UpdateItemLock()
|
pfUI.bag:UpdateItemLock()
|
||||||
end
|
end
|
||||||
|
|
||||||
|
if this.delay.UpdateSearch then
|
||||||
|
this.delay.UpdateSearch = nil
|
||||||
|
pfUI.bag:UpdateSearch()
|
||||||
|
end
|
||||||
|
|
||||||
for bag in pairs(this.delay.UpdateBag) do
|
for bag in pairs(this.delay.UpdateBag) do
|
||||||
this.delay.UpdateBag[bag] = nil
|
this.delay.UpdateBag[bag] = nil
|
||||||
pfUI.bag:UpdateBag(bag)
|
pfUI.bag:UpdateBag(bag)
|
||||||
@@ -159,6 +155,10 @@ pfUI:RegisterModule("bags", function ()
|
|||||||
this.delay.UpdateItemLock = true
|
this.delay.UpdateItemLock = true
|
||||||
end
|
end
|
||||||
|
|
||||||
|
if event == "INVENTORY_SEARCH_UPDATE" then
|
||||||
|
this.delay.UpdateSearch = true
|
||||||
|
end
|
||||||
|
|
||||||
if event == "PLAYERBANKSLOTS_CHANGED" then
|
if event == "PLAYERBANKSLOTS_CHANGED" then
|
||||||
this.delay.UpdateBag[-1] = true
|
this.delay.UpdateBag[-1] = true
|
||||||
end
|
end
|
||||||
@@ -377,6 +377,21 @@ pfUI:RegisterModule("bags", function ()
|
|||||||
end
|
end
|
||||||
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)
|
function pfUI.bag:UpdateSlot(bag, slot)
|
||||||
if not pfUI.bags[bag] then return end
|
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].slot = slot
|
||||||
pfUI.bags[bag].slots[slot].frame:SetID(slot)
|
pfUI.bags[bag].slots[slot].frame:SetID(slot)
|
||||||
|
|
||||||
-- add cooldown frame to bankslots
|
-- native cooldown frame: the bank template has none and the bag
|
||||||
if tpl == "BankItemButtonGenericTemplate" then
|
-- template's is 1.12's indicator Model, which can't reverse.
|
||||||
local bankslot = pfUI.bags[bag].slots[slot].frame
|
-- ContainerFrame_UpdateCooldown reads the "<button>Cooldown" global.
|
||||||
local name = "pfBag" .. bag .. "item" .. slot .. "Cooldown"
|
-- 1.12 binds a frame's name only while that global is unset, so the
|
||||||
bankslot.cd = CreateFrame("Cooldown", name, bankslot, "CooldownFrameTemplate")
|
-- global is rebound by hand; the Model starts hidden and nothing
|
||||||
bankslot.cd.pfCooldownStyleAnimation = 1
|
-- reaches it after that
|
||||||
bankslot.cd.pfCooldownType = "NOGCD"
|
local slotframe = pfUI.bags[bag].slots[slot].frame
|
||||||
else
|
local cdname = slotframe:GetName() .. "Cooldown"
|
||||||
local bagslot = pfUI.bags[bag].slots[slot].frame
|
slotframe.cd = CreateCooldown(slotframe, "bags", cdname)
|
||||||
bagslot.cd = _G[bagslot:GetName().."Cooldown"]
|
_G[cdname] = slotframe.cd
|
||||||
bagslot.cd.pfCooldownType = "NOGCD"
|
|
||||||
end
|
|
||||||
|
|
||||||
if not pfUI.bags[bag].slots[slot].frame.backdrop then
|
if not pfUI.bags[bag].slots[slot].frame.backdrop then
|
||||||
CreateBackdrop(pfUI.bags[bag].slots[slot].frame, default_border)
|
CreateBackdrop(pfUI.bags[bag].slots[slot].frame, default_border)
|
||||||
end
|
end
|
||||||
|
|
||||||
local highlight = pfUI.bags[bag].slots[slot].frame:GetHighlightTexture()
|
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()
|
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
|
local questText = pfUI.bags[bag].slots[slot].frame.qtext
|
||||||
questText:SetFont(pfUI.font_default, 13, "THICKOUTLINE")
|
questText:SetFont(pfUI.font_default, 13, "THICKOUTLINE")
|
||||||
@@ -463,6 +476,7 @@ pfUI:RegisterModule("bags", function ()
|
|||||||
SetItemButtonTexture(pfUI.bags[bag].slots[slot].frame, texture)
|
SetItemButtonTexture(pfUI.bags[bag].slots[slot].frame, texture)
|
||||||
SetItemButtonCount(pfUI.bags[bag].slots[slot].frame, count)
|
SetItemButtonCount(pfUI.bags[bag].slots[slot].frame, count)
|
||||||
SetItemButtonDesaturated(pfUI.bags[bag].slots[slot].frame, locked, 0.5, 0.5, 0.5)
|
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
|
local hasItem = texture and 1 or nil
|
||||||
pfUI.bags[bag].slots[slot].frame.hasItem = hasItem
|
pfUI.bags[bag].slots[slot].frame.hasItem = hasItem
|
||||||
@@ -558,10 +572,10 @@ pfUI:RegisterModule("bags", function ()
|
|||||||
border:SetTexture("")
|
border:SetTexture("")
|
||||||
|
|
||||||
local highlight = frame.bagslots.slots[slot].frame:GetHighlightTexture()
|
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()
|
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
|
if frame == pfUI.bag.left then
|
||||||
frame.bagslots.slots[slot].frame:SetID(slot + 4)
|
frame.bagslots.slots[slot].frame:SetID(slot + 4)
|
||||||
@@ -571,31 +585,16 @@ pfUI:RegisterModule("bags", function ()
|
|||||||
frame.bagslots.slots[slot].slot = slot
|
frame.bagslots.slots[slot].slot = slot
|
||||||
end
|
end
|
||||||
|
|
||||||
local SlotEnter = frame.bagslots.slots[slot].frame:GetScript("OnEnter")
|
frame.bagslots.slots[slot].frame:HookScript("OnEnter", function()
|
||||||
frame.bagslots.slots[slot].frame:SetScript("OnEnter", function()
|
|
||||||
for slot, f in ipairs(pfUI.bags[this.slot + 1].slots) do
|
for slot, f in ipairs(pfUI.bags[this.slot + 1].slots) do
|
||||||
CreateBackdrop(f.frame, default_border)
|
CreateBackdrop(f.frame, default_border)
|
||||||
f.frame.backdrop:SetBackdropBorderColor(.2,1,.8,1)
|
f.frame.backdrop:SetBackdropBorderColor(.2,1,.8,1)
|
||||||
end
|
end
|
||||||
SlotEnter(this)
|
|
||||||
end)
|
end)
|
||||||
|
|
||||||
local SlotLeave = frame.bagslots.slots[slot].frame:GetScript("OnLeave")
|
frame.bagslots.slots[slot].frame:HookScript("OnLeave", function()
|
||||||
frame.bagslots.slots[slot].frame:SetScript("OnLeave", function()
|
|
||||||
pfUI.bag:UpdateBag(this.slot + 1)
|
pfUI.bag:UpdateBag(this.slot + 1)
|
||||||
SlotLeave()
|
|
||||||
end)
|
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
|
end
|
||||||
|
|
||||||
local left = (slot-min)*(frame.button_size/5*4+default_border*2) + default_border
|
local left = (slot-min)*(frame.button_size/5*4+default_border*2) + default_border
|
||||||
@@ -1008,7 +1007,6 @@ pfUI:RegisterModule("bags", function ()
|
|||||||
-- bag search
|
-- bag search
|
||||||
if not frame.search then
|
if not frame.search then
|
||||||
frame.search = CreateFrame("Frame", "pfBagSearch", frame)
|
frame.search = CreateFrame("Frame", "pfBagSearch", frame)
|
||||||
frame.search.db = {}
|
|
||||||
frame.search:SetHeight(12)
|
frame.search:SetHeight(12)
|
||||||
frame.search:SetPoint("TOPLEFT", frame, "TOPLEFT", default_border, -default_border)
|
frame.search:SetPoint("TOPLEFT", frame, "TOPLEFT", default_border, -default_border)
|
||||||
frame.search:SetPoint("TOPRIGHT", frame.sort, "TOPLEFT", -default_border*3, -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()
|
frame.search.edit:SetScript("OnEditFocusLost", function()
|
||||||
this:SetText(T["Search"])
|
this:SetText(T["Search"])
|
||||||
for bag=-2, 11 do
|
C_Container.SetItemSearch("")
|
||||||
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
|
|
||||||
end)
|
end)
|
||||||
|
|
||||||
frame.search.edit:SetScript("OnTextChanged", function()
|
frame.search.edit:SetScript("OnTextChanged", function()
|
||||||
if this:GetText() == T["Search"] then return end
|
if this:GetText() == T["Search"] then return end
|
||||||
for bag=-2, 11 do
|
C_Container.SetItemSearch(this:GetText())
|
||||||
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
|
|
||||||
end)
|
end)
|
||||||
|
|
||||||
frame.search:SetScript("OnLeave", function()
|
frame.search:SetScript("OnLeave", function()
|
||||||
@@ -1092,17 +1051,7 @@ pfUI:RegisterModule("bags", function ()
|
|||||||
|
|
||||||
frame.search:SetScript("OnHide", function()
|
frame.search:SetScript("OnHide", function()
|
||||||
frame.search.edit:SetText(T["Search"])
|
frame.search.edit:SetText(T["Search"])
|
||||||
for bag = -2, 11 do
|
C_Container.SetItemSearch("")
|
||||||
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
|
|
||||||
end)
|
end)
|
||||||
end
|
end
|
||||||
else
|
else
|
||||||
@@ -1165,11 +1114,7 @@ pfUI:RegisterModule("bags", function ()
|
|||||||
end)
|
end)
|
||||||
|
|
||||||
frame.bags:SetScript("OnClick", function()
|
frame.bags:SetScript("OnClick", function()
|
||||||
if pfUI.bag.left.bagslots:IsShown() then
|
pfUI.bag.left.bagslots:SetShown(not pfUI.bag.left.bagslots:IsShown())
|
||||||
pfUI.bag.left.bagslots:Hide()
|
|
||||||
else
|
|
||||||
pfUI.bag.left.bagslots:Show()
|
|
||||||
end
|
|
||||||
end)
|
end)
|
||||||
end
|
end
|
||||||
|
|
||||||
|
|||||||
+6
-7
@@ -2,7 +2,7 @@ pfUI:RegisterModule("bubbles", function ()
|
|||||||
|
|
||||||
local alpha = tonumber(C.chat.bubbles.alpha)
|
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_SAY")
|
||||||
pfUI.bubbles:RegisterEvent("CHAT_MSG_YELL")
|
pfUI.bubbles:RegisterEvent("CHAT_MSG_YELL")
|
||||||
pfUI.bubbles:RegisterEvent("CHAT_MSG_PARTY")
|
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_YELL")
|
||||||
pfUI.bubbles:RegisterEvent("CHAT_MSG_MONSTER_PARTY")
|
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)
|
function pfUI.bubbles:ProcessBubble(f)
|
||||||
f.text:Hide()
|
f.text:Hide()
|
||||||
f.text:SetFont(pfUI.font_default, tonumber(C.global.font_size) * UIParent:GetScale(), "OUTLINE")
|
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
|
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)
|
end)
|
||||||
|
|||||||
+72
-72
@@ -16,6 +16,25 @@ pfUI:RegisterModule("buff", function ()
|
|||||||
ScanAuraSlots("player", "HARMFUL", harmfulSlots, 16)
|
ScanAuraSlots("player", "HARMFUL", harmfulSlots, 16)
|
||||||
end
|
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)
|
local function RefreshBuffButton(buff)
|
||||||
if buff.btype == "HELPFUL" then
|
if buff.btype == "HELPFUL" then
|
||||||
if C.buffs.separateweapons == "1" then
|
if C.buffs.separateweapons == "1" then
|
||||||
@@ -33,7 +52,7 @@ pfUI:RegisterModule("buff", function ()
|
|||||||
end
|
end
|
||||||
|
|
||||||
local slots = buff.btype == "HELPFUL" and helpfulSlots or harmfulSlots
|
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
|
--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
|
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
|
||||||
end
|
end
|
||||||
|
|
||||||
-- Set Weapon Texture and Border
|
-- Set Weapon Texture, Border and Timer
|
||||||
if buff.mode == "MAINHAND" then
|
if buff.mode == "MAINHAND" then
|
||||||
buff.texture:SetTexture(GetInventoryItemTexture("player", 16))
|
buff.texture:SetTexture(GetInventoryItemTexture("player", 16))
|
||||||
buff.backdrop:SetBackdropBorderColor(GetItemQualityColor(GetInventoryItemQuality("player", 16) or 1))
|
buff.backdrop:SetBackdropBorderColor(GetItemQualityColor(GetInventoryItemQuality("player", 16) or 1))
|
||||||
|
RefreshWeaponButton(buff, mhtime, mhcharge)
|
||||||
elseif buff.mode == "OFFHAND" then
|
elseif buff.mode == "OFFHAND" then
|
||||||
buff.texture:SetTexture(GetInventoryItemTexture("player", 17))
|
buff.texture:SetTexture(GetInventoryItemTexture("player", 17))
|
||||||
buff.backdrop:SetBackdropBorderColor(GetItemQualityColor(GetInventoryItemQuality("player", 17) or 1))
|
buff.backdrop:SetBackdropBorderColor(GetItemQualityColor(GetInventoryItemQuality("player", 17) or 1))
|
||||||
|
RefreshWeaponButton(buff, ohtime, ohcharge)
|
||||||
end
|
end
|
||||||
elseif name and (( buff.btype == "HARMFUL" and C.buffs.debuffs == "1" ) or ( buff.btype == "HELPFUL" and C.buffs.buffs == "1" )) then
|
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
|
-- Set Buff Texture and Border
|
||||||
buff.mode = buff.btype
|
buff.mode = buff.btype
|
||||||
buff.expirationTime = expirationTime
|
|
||||||
buff.stackCount = count
|
|
||||||
buff.spellId = spellId
|
buff.spellId = spellId
|
||||||
buff.texture:SetTexture(icon)
|
buff.texture:SetTexture(icon)
|
||||||
|
buff.stacks:SetText((count or 0) > 1 and count or "")
|
||||||
|
|
||||||
if buff.btype == "HARMFUL" then
|
if buff.btype == "HARMFUL" then
|
||||||
local dispelColor = C_UnitAuras.GetAuraDispelTypeColor(dispelType)
|
local dispelColor = C_UnitAuras.GetAuraDispelTypeColor(dispelType)
|
||||||
@@ -79,6 +99,18 @@ pfUI:RegisterModule("buff", function ()
|
|||||||
else
|
else
|
||||||
buff.backdrop:SetBackdropBorderColor(br,bg,bb,ba)
|
buff.backdrop:SetBackdropBorderColor(br,bg,bb,ba)
|
||||||
end
|
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
|
else
|
||||||
buff:Hide()
|
buff:Hide()
|
||||||
return
|
return
|
||||||
@@ -106,17 +138,24 @@ pfUI:RegisterModule("buff", function ()
|
|||||||
buff.texture:SetTexCoord(.07,.93,.07,.93)
|
buff.texture:SetTexCoord(.07,.93,.07,.93)
|
||||||
buff.texture:SetAllPoints(buff)
|
buff.texture:SetAllPoints(buff)
|
||||||
|
|
||||||
buff.timer = buff:CreateFontString(nil, "OVERLAY", "GameFontNormal")
|
-- overlay lifts the stacks above the sweep: a child frame renders above
|
||||||
buff.timer:SetTextColor(1,1,1,1)
|
-- all of its parent's own regions, so they would dim under the dark
|
||||||
buff.timer:SetJustifyH("CENTER")
|
-- wedge otherwise
|
||||||
buff.timer:SetJustifyV("CENTER")
|
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:SetTextColor(1,1,1,1)
|
||||||
buff.stacks:SetJustifyH("RIGHT")
|
buff.stacks:SetJustifyH("RIGHT")
|
||||||
buff.stacks:SetJustifyV("BOTTOM")
|
buff.stacks:SetJustifyV("BOTTOM")
|
||||||
buff.stacks:SetAllPoints(buff)
|
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:RegisterForClicks("RightButtonUp")
|
||||||
|
|
||||||
buff.weapon = weapon
|
buff.weapon = weapon
|
||||||
@@ -193,66 +232,24 @@ pfUI:RegisterModule("buff", function ()
|
|||||||
end
|
end
|
||||||
end)
|
end)
|
||||||
|
|
||||||
-- PERF: Consolidated OnUpdate handler for all buff timers
|
-- the buttons that can show a weapon enchant: the first two buffs, or the
|
||||||
-- This replaces 50 individual OnUpdate handlers with a single one
|
-- separate weapon buttons
|
||||||
|
local weaponButtons
|
||||||
|
|
||||||
|
-- weapon enchants, see RefreshWeaponButton
|
||||||
pfUI.buff:SetScript("OnUpdate", function()
|
pfUI.buff:SetScript("OnUpdate", function()
|
||||||
local now = GetTime()
|
local now = GetTime()
|
||||||
if not this.nextUpdate then this.nextUpdate = now + 0.1 end
|
if not this.nextUpdate then this.nextUpdate = now + 0.1 end
|
||||||
if this.nextUpdate > now then return end
|
if this.nextUpdate > now then return end
|
||||||
this.nextUpdate = now + 0.1
|
this.nextUpdate = now + 0.1
|
||||||
|
|
||||||
-- Cache weapon enchant info once per update cycle
|
local _, mhtime, mhcharge, _, ohtime, ohcharge = GetWeaponEnchantInfo()
|
||||||
local mh, mhtime, mhcharge, oh, ohtime, ohcharge = GetWeaponEnchantInfo()
|
for _, buff in ipairs(weaponButtons) do
|
||||||
|
|
||||||
-- Update all visible buff buttons
|
|
||||||
local buttons = pfUI.buff.buffs.buttons
|
|
||||||
for i = 1, 32 do
|
|
||||||
local buff = buttons[i]
|
|
||||||
if buff:IsShown() then
|
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
|
|
||||||
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
|
if buff.mode == "MAINHAND" then
|
||||||
timeleft = mhtime and mhtime / 1000 or 0
|
RefreshWeaponButton(buff, mhtime, mhcharge)
|
||||||
stacks = mhcharge or 0
|
|
||||||
elseif buff.mode == "OFFHAND" then
|
elseif buff.mode == "OFFHAND" then
|
||||||
timeleft = ohtime and ohtime / 1000 or 0
|
RefreshWeaponButton(buff, ohtime, ohcharge)
|
||||||
stacks = ohcharge or 0
|
|
||||||
end
|
|
||||||
buff.timer:SetText(timeleft > 0 and GetColoredTimeString(timeleft) or "")
|
|
||||||
buff.stacks:SetText(stacks > 1 and stacks or "")
|
|
||||||
end
|
end
|
||||||
end
|
end
|
||||||
end
|
end
|
||||||
@@ -283,52 +280,55 @@ pfUI:RegisterModule("buff", function ()
|
|||||||
pfUI.buff.debuffs.buttons[i] = CreateBuffButton(i, "HARMFUL")
|
pfUI.buff.debuffs.buttons[i] = CreateBuffButton(i, "HARMFUL")
|
||||||
end
|
end
|
||||||
|
|
||||||
|
weaponButtons = {
|
||||||
|
pfUI.buff.buffs.buttons[1], pfUI.buff.buffs.buttons[2],
|
||||||
|
pfUI.buff.wepbuffs.buttons[1], pfUI.buff.wepbuffs.buttons[2],
|
||||||
|
}
|
||||||
|
|
||||||
-- config loading
|
-- config loading
|
||||||
function pfUI.buff:UpdateConfigBuffButton(buff)
|
function pfUI.buff:UpdateConfigBuffButton(buff)
|
||||||
local fontsize = C.buffs.fontsize == "-1" and C.global.font_size or C.buffs.fontsize
|
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 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
|
local rowcount, relFrame, offsetX, offsetY
|
||||||
if buff.btype == "HELPFUL" then
|
if buff.btype == "HELPFUL" then
|
||||||
if buff.weapon == 1 and C.buffs.separateweapons == "1" then
|
if buff.weapon == 1 and C.buffs.separateweapons == "1" then
|
||||||
rowcount = floor((buff.gid-1) / tonumber(C.buffs.wepbuffrowsize))
|
rowcount = floor((buff.gid-1) / tonumber(C.buffs.wepbuffrowsize))
|
||||||
relFrame = pfUI.buff.wepbuffs
|
relFrame = pfUI.buff.wepbuffs
|
||||||
offsetX = -(buff.gid-1-rowcount*tonumber(C.buffs.wepbuffrowsize))*(buffSize+2*buffSpacing)
|
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
|
else
|
||||||
rowcount = floor((buff.gid-1) / tonumber(C.buffs.buffrowsize))
|
rowcount = floor((buff.gid-1) / tonumber(C.buffs.buffrowsize))
|
||||||
relFrame = pfUI.buff.buffs
|
relFrame = pfUI.buff.buffs
|
||||||
offsetX = -(buff.gid-1-rowcount*tonumber(C.buffs.buffrowsize))*(buffSize+2*buffSpacing)
|
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
|
end
|
||||||
else
|
else
|
||||||
rowcount = floor((buff.gid-1) / tonumber(C.buffs.debuffrowsize))
|
rowcount = floor((buff.gid-1) / tonumber(C.buffs.debuffrowsize))
|
||||||
relFrame = pfUI.buff.debuffs
|
relFrame = pfUI.buff.debuffs
|
||||||
offsetX = -(buff.gid-1-rowcount*tonumber(C.buffs.debuffrowsize))*(buffSize+2*buffSpacing)
|
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
|
end
|
||||||
buff:SetSize(buffSize, buffSize)
|
buff:SetSize(buffSize, buffSize)
|
||||||
buff:ClearAllPoints()
|
buff:ClearAllPoints()
|
||||||
buff:SetPoint("TOPRIGHT", relFrame, "TOPRIGHT",offsetX, offsetY)
|
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.stacks:SetFont(pfUI.font_default, fontsize+1, "OUTLINE")
|
||||||
|
|
||||||
buff.timer:SetHeight(fontsize * 1.3)
|
-- the duration numbers sit inside the icon or below it
|
||||||
|
local countdown = buff.cd:GetCountdownFontString()
|
||||||
buff.timer:ClearAllPoints()
|
countdown:ClearAllPoints()
|
||||||
if C.buffs.textinside == "1" then
|
if C.buffs.textinside == "1" then
|
||||||
buff.timer:SetAllPoints(buff)
|
countdown:SetPoint("CENTER", buff, "CENTER", 0, 0)
|
||||||
else
|
else
|
||||||
buff.timer:SetPoint("TOP", buff, "BOTTOM", 0, -3)
|
countdown:SetPoint("TOP", buff, "BOTTOM", 0, -3)
|
||||||
end
|
end
|
||||||
end
|
end
|
||||||
|
|
||||||
function pfUI.buff:UpdateConfig()
|
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 spacing = tonumber(C.buffs.spacing)
|
||||||
local cell = tonumber(C.buffs.size) + 2 * 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)
|
local function SizeBuffFrame(frame, rowsize, count)
|
||||||
rowsize = tonumber(rowsize)
|
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
|
fcache[tostring(config)] = nil -- invalidate so the new entry takes effect immediately
|
||||||
DEFAULT_CHAT_FRAME:AddMessage("|cff33ffcc" .. skill .. "|r" .. T["is now blacklisted."])
|
DEFAULT_CHAT_FRAME:AddMessage("|cff33ffcc" .. skill .. "|r" .. T["is now blacklisted."])
|
||||||
end
|
end
|
||||||
|
this.parent.Refresh()
|
||||||
elseif this.parent.unit == "player" then
|
elseif this.parent.unit == "player" then
|
||||||
local aura = C_UnitAuras.GetAuraDataByIndex("player", this.id, this.type)
|
local aura = C_UnitAuras.GetAuraDataByIndex("player", this.id, this.type)
|
||||||
if aura and aura.spellId then C_Spell.CancelSpellByID(aura.spellId) end
|
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)
|
table.sort(frame.buffs, frame.buffcmp)
|
||||||
|
|
||||||
-- create a buff bar for each below threshold
|
-- create a buff bar for each below threshold
|
||||||
local bar = 1
|
local bar, crossing = 1, nil
|
||||||
for id, data in pairs(frame.buffs) do
|
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
|
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
|
and data[3] and data[3] ~= "" -- buff has a name
|
||||||
@@ -340,6 +341,10 @@ pfUI:RegisterModule("buffwatch", function ()
|
|||||||
|
|
||||||
frame.bars[bar]:Show()
|
frame.bars[bar]:Show()
|
||||||
bar = bar + 1
|
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
|
||||||
end
|
end
|
||||||
|
|
||||||
@@ -347,13 +352,11 @@ pfUI:RegisterModule("buffwatch", function ()
|
|||||||
for i = bar, table.getn(frame.bars) do
|
for i = bar, table.getn(frame.bars) do
|
||||||
frame.bars[i]:Hide()
|
frame.bars[i]:Hide()
|
||||||
end
|
end
|
||||||
end
|
|
||||||
|
|
||||||
-- Create a new Buff Bar
|
-- no event marks an aura's time left dropping under the threshold, so
|
||||||
local function BuffBarFrameOnUpdate()
|
-- wake when the next one does
|
||||||
if ( this.tick or 1) > GetTime() then return else this.tick = GetTime() + .4 end
|
if frame.crossing then frame.crossing:Cancel() end
|
||||||
RefreshBuffBarFrame(this)
|
frame.crossing = crossing and C_Timer.NewTimer(crossing + .1, frame.Refresh) or nil
|
||||||
this:RefreshPosition()
|
|
||||||
end
|
end
|
||||||
|
|
||||||
local function RefreshPosition(self)
|
local function RefreshPosition(self)
|
||||||
@@ -373,6 +376,19 @@ pfUI:RegisterModule("buffwatch", function ()
|
|||||||
end
|
end
|
||||||
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 function CreateBuffBarFrame(unit, type)
|
||||||
local framename = "pf" .. unit .. ( type == "HARMFUL" and "Debuff" or "Buff" ) .. "Bar"
|
local framename = "pf" .. unit .. ( type == "HARMFUL" and "Debuff" or "Buff" ) .. "Bar"
|
||||||
local frame = _G[framename] or CreateFrame("Frame", framename, UIParent)
|
local frame = _G[framename] or CreateFrame("Frame", framename, UIParent)
|
||||||
@@ -388,9 +404,22 @@ pfUI:RegisterModule("buffwatch", function ()
|
|||||||
end
|
end
|
||||||
|
|
||||||
frame.RefreshPosition = RefreshPosition
|
frame.RefreshPosition = RefreshPosition
|
||||||
|
frame.Refresh = function()
|
||||||
|
RefreshBuffBarFrame(frame)
|
||||||
|
RefreshPositions()
|
||||||
|
end
|
||||||
|
|
||||||
-- OnEvent (UNIT_AURA) doesn't trigger properly on buff refresh
|
-- UNIT_AURA_DELTA reports refreshes and new durations as well, so the bars
|
||||||
frame:SetScript("OnUpdate", BuffBarFrameOnUpdate)
|
-- 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
|
return frame
|
||||||
end
|
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
|
-- 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.
|
-- from event handlers (cast start, target/focus change), never per-frame.
|
||||||
local function RefreshBar(cb, rank)
|
local function RefreshBar(cb, rank)
|
||||||
local query = cb.unitstr ~= "" and cb.unitstr or cb.unitname
|
local query = cb.unitstr
|
||||||
if not query or (cb.unitstr ~= "" and not UnitExists(cb.unitstr)) then
|
if not UnitExists(query) then
|
||||||
ClearBar(cb)
|
ClearBar(cb)
|
||||||
return
|
return
|
||||||
end
|
end
|
||||||
@@ -178,7 +178,7 @@ pfUI:RegisterModule("castbar", function ()
|
|||||||
end
|
end
|
||||||
end
|
end
|
||||||
|
|
||||||
local function CreateCastbar(name, parent, unitstr, unitname)
|
local function CreateCastbar(name, parent, unitstr)
|
||||||
local cb = CreateFrame("Frame", name, parent or UIParent)
|
local cb = CreateFrame("Frame", name, parent or UIParent)
|
||||||
|
|
||||||
cb:SetHeight(C.global.font_size * 1.5)
|
cb:SetHeight(C.global.font_size * 1.5)
|
||||||
@@ -186,7 +186,6 @@ pfUI:RegisterModule("castbar", function ()
|
|||||||
cb:SetFrameLevel(8)
|
cb:SetFrameLevel(8)
|
||||||
|
|
||||||
cb.unitstr = unitstr
|
cb.unitstr = unitstr
|
||||||
cb.unitname = unitname
|
|
||||||
|
|
||||||
-- icon
|
-- icon
|
||||||
cb.icon = CreateFrame("Frame", nil, cb)
|
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 = cb.bar:CreateTexture(nil, "OVERLAY")
|
||||||
cb.bar.lag:SetPoint("TOPRIGHT", cb.bar, "TOPRIGHT", 0, 0)
|
cb.bar.lag:SetPoint("TOPRIGHT", cb.bar, "TOPRIGHT", 0, 0)
|
||||||
cb.bar.lag:SetPoint("BOTTOMRIGHT", cb.bar, "BOTTOMRIGHT", 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
|
-- 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
|
-- 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
|
-- moves 5x faster than the main fill). Position is updated by OnUpdate
|
||||||
-- while a merge is active; hidden otherwise.
|
-- while a merge is active; hidden otherwise.
|
||||||
cb.bar.spark = cb.bar:CreateTexture(nil, "OVERLAY")
|
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:SetWidth(2)
|
||||||
cb.bar.spark:SetPoint("TOP", cb.bar, "TOPLEFT", 0, 0)
|
cb.bar.spark:SetPoint("TOP", cb.bar, "TOPLEFT", 0, 0)
|
||||||
cb.bar.spark:SetPoint("BOTTOM", cb.bar, "BOTTOMLEFT", 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),
|
-- Non-player bars: if the unit disappears (target died / detarget),
|
||||||
-- drop the bar immediately.
|
-- 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)
|
ClearBar(this)
|
||||||
return
|
return
|
||||||
end
|
end
|
||||||
@@ -423,13 +422,12 @@ pfUI:RegisterModule("castbar", function ()
|
|||||||
-- endMs. delay is a positive magnitude; OnUpdate signs it "+" for casts
|
-- endMs. delay is a positive magnitude; OnUpdate signs it "+" for casts
|
||||||
-- and "-" for channels. Skipped during a tradeskill merge.
|
-- and "-" for channels. Skipped during a tradeskill merge.
|
||||||
if this.endTime and not this.tradeskillTotal then
|
if this.endTime and not this.tradeskillTotal then
|
||||||
local query = this.unitstr ~= "" and this.unitstr or this.unitname
|
|
||||||
local startMs, endMs
|
local startMs, endMs
|
||||||
if this.isChannel then
|
if this.isChannel then
|
||||||
local _, _, _, s, e = C_Spell.UnitChannelInfo(query)
|
local _, _, _, s, e = C_Spell.UnitChannelInfo(unit)
|
||||||
startMs, endMs = s, e
|
startMs, endMs = s, e
|
||||||
else
|
else
|
||||||
local _, _, _, s, e = C_Spell.UnitCastingInfo(query)
|
local _, _, _, s, e = C_Spell.UnitCastingInfo(unit)
|
||||||
startMs, endMs = s, e
|
startMs, endMs = s, e
|
||||||
end
|
end
|
||||||
if startMs and endMs then
|
if startMs and endMs then
|
||||||
@@ -544,9 +542,6 @@ pfUI:RegisterModule("castbar", function ()
|
|||||||
pfUI.castbar.focus:SetHeight(C.castbar.focus.height)
|
pfUI.castbar.focus:SetHeight(C.castbar.focus.height)
|
||||||
end
|
end
|
||||||
|
|
||||||
-- bind castbar to the "focus" unit token; the GUID resolves at read time
|
|
||||||
pfUI.castbar.focus.unitstr = "focus"
|
|
||||||
|
|
||||||
UpdateMovable(pfUI.castbar.focus)
|
UpdateMovable(pfUI.castbar.focus)
|
||||||
end
|
end
|
||||||
end)
|
end)
|
||||||
+44
-100
@@ -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"] = 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)
|
function pfUI.chat:FormatLink(formatter,a1,a2,a3,a4,a5,a6,a7,a8,a9,a10)
|
||||||
if not (formatter and a1) then return end
|
if not (formatter and a1) then return end
|
||||||
local newtext = string.format(formatter,a1,a2,a3,a4,a5,a6,a7,a8,a9,a10)
|
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
|
return text
|
||||||
end
|
end
|
||||||
|
|
||||||
pfUI.chat.urlcopy = CreateFrame("Frame", "pfURLCopy", UIParent)
|
-- clicking a url link copies it
|
||||||
pfUI.chat.urlcopy:Hide()
|
LinkUtil.RegisterLinkHandler("url", function(link, text, linkData)
|
||||||
pfUI.chat.urlcopy:SetWidth(270)
|
CopyText(linkData.options)
|
||||||
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()
|
|
||||||
end)
|
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 = CreateFrame("Frame", "pfChatRight", UIParent)
|
||||||
pfUI.chat.right:SetFrameStrata("BACKGROUND")
|
pfUI.chat.right:SetFrameStrata("BACKGROUND")
|
||||||
pfUI.chat.right:SetWidth(C.chat.right.width)
|
pfUI.chat.right:SetWidth(C.chat.right.width)
|
||||||
@@ -278,22 +215,14 @@ pfUI:RegisterModule("chat", function ()
|
|||||||
pfUI.chat:RegisterEvent("UI_SCALE_CHANGED")
|
pfUI.chat:RegisterEvent("UI_SCALE_CHANGED")
|
||||||
|
|
||||||
local function ChatOnMouseWheel()
|
local function ChatOnMouseWheel()
|
||||||
if (arg1 > 0) then
|
if not IsShiftKeyDown() then
|
||||||
if IsShiftKeyDown() then
|
this:ScrollByAmount(arg1 * C.chat.global.scrollspeed)
|
||||||
this:ScrollToTop()
|
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
|
else
|
||||||
for i=1, C.chat.global.scrollspeed do
|
|
||||||
this:ScrollUp()
|
|
||||||
end
|
|
||||||
end
|
|
||||||
elseif (arg1 < 0) then
|
|
||||||
if IsShiftKeyDown() then
|
|
||||||
this:ScrollToBottom()
|
this:ScrollToBottom()
|
||||||
else
|
|
||||||
for i=1, C.chat.global.scrollspeed do
|
|
||||||
this:ScrollDown()
|
|
||||||
end
|
|
||||||
end
|
|
||||||
end
|
end
|
||||||
end
|
end
|
||||||
|
|
||||||
@@ -376,7 +305,8 @@ pfUI:RegisterModule("chat", function ()
|
|||||||
CreateBackdrop(LanguageMenu)
|
CreateBackdrop(LanguageMenu)
|
||||||
CreateBackdrop(VoiceMacroMenu)
|
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
|
for i=1, NUM_CHAT_WINDOWS do
|
||||||
local frame = _G["ChatFrame"..i]
|
local frame = _G["ChatFrame"..i]
|
||||||
@@ -389,7 +319,7 @@ pfUI:RegisterModule("chat", function ()
|
|||||||
end
|
end
|
||||||
end
|
end
|
||||||
|
|
||||||
if combat > 5 then
|
if frame.CombatLogQuickButtonFrame or combat > 5 then
|
||||||
frame.pfCombatLog = true
|
frame.pfCombatLog = true
|
||||||
else
|
else
|
||||||
frame.pfCombatLog = nil
|
frame.pfCombatLog = nil
|
||||||
@@ -456,7 +386,7 @@ pfUI:RegisterModule("chat", function ()
|
|||||||
|
|
||||||
-- hide textures
|
-- hide textures
|
||||||
for j,v in ipairs({tab:GetRegions()}) do
|
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)
|
v:SetHeight(C.global.font_size+default_border*2)
|
||||||
end
|
end
|
||||||
|
|
||||||
@@ -779,6 +709,20 @@ pfUI:RegisterModule("chat", function ()
|
|||||||
local r,g,b,a = GetStringColor(C.chat.text.timecolor)
|
local r,g,b,a = GetStringColor(C.chat.text.timecolor)
|
||||||
local timecolorhex = rgbhex(r,g,b,a)
|
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 r,g,b = GetStringColor(C.chat.text.unknowncolor)
|
||||||
local unknowncolorhex = rgbhex(r,g,b)
|
local unknowncolorhex = rgbhex(r,g,b)
|
||||||
|
|
||||||
@@ -788,12 +732,14 @@ pfUI:RegisterModule("chat", function ()
|
|||||||
return pfUI_playerDB[name].level
|
return pfUI_playerDB[name].level
|
||||||
end
|
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
|
if not text then return end
|
||||||
|
|
||||||
-- skip chat parsing on combat log
|
-- skip chat parsing on combat log
|
||||||
if frame.pfCombatLog then
|
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
|
end
|
||||||
|
|
||||||
-- payload of the CHAT_MSG event printing this line; nil for lines
|
-- 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
|
-- 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
|
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
|
-- show timestamp in chat
|
||||||
if C.chat.text.time == "1" then
|
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
|
end
|
||||||
|
|
||||||
-- save chat history
|
-- save chat history
|
||||||
if isWhisper then
|
if isWhisper then
|
||||||
SaveChatHistory(frame:GetID(), string.gsub(text, wcol, ""), cr, cg, cb)
|
SaveChatHistory(frame:GetID(), string.gsub(text, wcol, ""), cr, cg, cb)
|
||||||
else
|
else
|
||||||
SaveChatHistory(frame:GetID(), text, a1, a2, a3)
|
SaveChatHistory(frame:GetID(), text, ...)
|
||||||
end
|
end
|
||||||
|
|
||||||
if isWhisper then
|
frame:HookAddMessage(text, ...)
|
||||||
-- 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)
|
|
||||||
end
|
end
|
||||||
|
|
||||||
for i=1,NUM_CHAT_WINDOWS do
|
for i=1,NUM_CHAT_WINDOWS do
|
||||||
@@ -906,12 +853,9 @@ pfUI:RegisterModule("chat", function ()
|
|||||||
|
|
||||||
if not _G["ChatFrame"..i].HookAddMessage then
|
if not _G["ChatFrame"..i].HookAddMessage then
|
||||||
if C.chat.text.history == "1" then
|
if C.chat.text.history == "1" then
|
||||||
-- write history to chat
|
-- write history to chat, newest first, above the lines already there
|
||||||
local history = GetChatHistory(i)
|
for _, msg in ipairs(GetChatHistory(i)) do
|
||||||
for j=30,0,-1 do
|
_G["ChatFrame"..i]:BackFillMessage(msg, .7,.7,.7)
|
||||||
if history[j] then
|
|
||||||
_G["ChatFrame"..i]:AddMessage(history[j], .7,.7,.7)
|
|
||||||
end
|
|
||||||
end
|
end
|
||||||
end
|
end
|
||||||
|
|
||||||
|
|||||||
+33
-89
@@ -1,5 +1,4 @@
|
|||||||
pfUI:RegisterModule("chatcopy", function ()
|
pfUI:RegisterModule("chatcopy", function ()
|
||||||
local limit = 100
|
|
||||||
local f = CreateFrame("Frame")
|
local f = CreateFrame("Frame")
|
||||||
f:RegisterEvent("PLAYER_ENTERING_WORLD")
|
f:RegisterEvent("PLAYER_ENTERING_WORLD")
|
||||||
f:SetScript("OnEvent", function()
|
f:SetScript("OnEvent", function()
|
||||||
@@ -15,26 +14,27 @@ pfUI:RegisterModule("chatcopy", function ()
|
|||||||
button.icon:SetTexture("Interface\\Buttons\\UI-GuildButton-PublicNote-Disabled")
|
button.icon:SetTexture("Interface\\Buttons\\UI-GuildButton-PublicNote-Disabled")
|
||||||
button.icon:SetAllPoints()
|
button.icon:SetAllPoints()
|
||||||
|
|
||||||
button:SetScript("OnClick", function()
|
-- show or hide the copy box of every chat frame
|
||||||
if arg1 == "LeftButton" then
|
local function SetCopyMode(state)
|
||||||
this.state = not this.state
|
button.state = state
|
||||||
|
|
||||||
for i=1, _G.NUM_CHAT_WINDOWS do
|
for i=1, _G.NUM_CHAT_WINDOWS do
|
||||||
local frame = _G["ChatFrame"..i]
|
local scroll = _G["ChatFrame"..i].scroll
|
||||||
local scroll = frame.scroll
|
if scroll then
|
||||||
|
scroll:SetShown(state)
|
||||||
if scroll and this.state then
|
|
||||||
scroll:Show()
|
|
||||||
elseif scroll then
|
|
||||||
scroll:Hide()
|
|
||||||
end
|
end
|
||||||
end
|
end
|
||||||
|
|
||||||
if this.state then
|
if state then
|
||||||
button.icon:SetTexture("Interface\\Buttons\\UI-GuildButton-PublicNote-Up")
|
button.icon:SetTexture("Interface\\Buttons\\UI-GuildButton-PublicNote-Up")
|
||||||
else
|
else
|
||||||
button.icon:SetTexture("Interface\\Buttons\\UI-GuildButton-PublicNote-Disabled")
|
button.icon:SetTexture("Interface\\Buttons\\UI-GuildButton-PublicNote-Disabled")
|
||||||
end
|
end
|
||||||
|
end
|
||||||
|
|
||||||
|
button:SetScript("OnClick", function()
|
||||||
|
if arg1 == "LeftButton" then
|
||||||
|
SetCopyMode(not this.state)
|
||||||
elseif arg1 == "RightButton" then
|
elseif arg1 == "RightButton" then
|
||||||
if ChatMenu:IsShown() then
|
if ChatMenu:IsShown() then
|
||||||
ChatMenu:Hide()
|
ChatMenu:Hide()
|
||||||
@@ -56,99 +56,43 @@ pfUI:RegisterModule("chatcopy", function ()
|
|||||||
|
|
||||||
for i=1, _G.NUM_CHAT_WINDOWS do
|
for i=1, _G.NUM_CHAT_WINDOWS do
|
||||||
local frame = _G["ChatFrame"..i]
|
local frame = _G["ChatFrame"..i]
|
||||||
local name = frame:GetName()
|
|
||||||
|
|
||||||
local combat = 0
|
-- the chat frame's messages in an edit box to copy from
|
||||||
for i, msg in pairs(frame.messageTypeList) do
|
local scroll = CreateFrame("Frame", "pfChatCopy" .. i, frame, "pfUIScrollingEditBoxTemplate")
|
||||||
if strfind(msg, "SPELL", 1) or strfind(msg, "COMBAT", 1) then
|
|
||||||
combat = combat + 1
|
|
||||||
end
|
|
||||||
end
|
|
||||||
|
|
||||||
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
|
|
||||||
|
|
||||||
if history[limit] then
|
|
||||||
table.remove(history, limit)
|
|
||||||
end
|
|
||||||
AddMessage(self,msg,r,g,b)
|
|
||||||
end
|
|
||||||
|
|
||||||
-- read chat defaults
|
|
||||||
local font, size, flags = frame:GetFont()
|
|
||||||
|
|
||||||
-- build the frames
|
|
||||||
local scroll = CreateScrollFrame("ChatFrameScroll"..i, frame)
|
|
||||||
scroll:SetAllPoints(frame)
|
scroll:SetAllPoints(frame)
|
||||||
scroll.tex = scroll:CreateTexture(nil, "BACKGROUND")
|
scroll.tex = scroll:CreateTexture(nil, "BACKGROUND")
|
||||||
scroll.tex:SetTexture(0,0,0,.95)
|
scroll.tex:SetColorTexture(0,0,0,.95)
|
||||||
scroll.tex:SetPoint("TOPLEFT", -3, 3)
|
scroll.tex:SetPoint("TOPLEFT", -3, 3)
|
||||||
scroll.tex:SetPoint("BOTTOMRIGHT", 3, -3)
|
scroll.tex:SetPoint("BOTTOMRIGHT", 3, -3)
|
||||||
scroll:Hide()
|
scroll:Hide()
|
||||||
|
|
||||||
local editbox = CreateFrame("EditBox", "pfChatCopyBox" .. i, scroll)
|
scroll:RegisterCallback("OnEscapePressed", function()
|
||||||
editbox:SetSize(frame:GetSize())
|
SetCopyMode(false)
|
||||||
editbox:SetAllPoints(scroll)
|
end, 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()
|
scroll:HookScript("OnShow", function()
|
||||||
editbox.hasFocus = true
|
-- each line in its own color, which also replaces the |r resets inside it
|
||||||
end)
|
local lines = {}
|
||||||
|
for index=1, frame:GetNumMessages() do
|
||||||
editbox:SetScript("OnEscapePressed", function()
|
local text, r, g, b = frame:GetMessageInfo(index)
|
||||||
if editbox.hasFocus then
|
if C.chat.text.copytime == "0" then
|
||||||
editbox:HighlightText(0, 0)
|
text = pfUI.chat.StripTimestamp(text)
|
||||||
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
|
||||||
|
local color = rgbhex(r, g, b)
|
||||||
|
table.insert(lines, color .. text:gsub("|r", color))
|
||||||
end
|
end
|
||||||
|
local text = table.concat(lines, "\n")
|
||||||
|
|
||||||
editbox:SetScript("OnUpdate", function()
|
scroll:SetFont(frame:GetFont())
|
||||||
if not this.count then this.count = 0 end
|
scroll:SetText(text)
|
||||||
|
|
||||||
scroll:UpdateScrollChildRect()
|
-- the cursor at the end scrolls the box to the newest line
|
||||||
scroll:SetVerticalScroll(scroll:GetVerticalScrollRange())
|
scroll:SetFocus()
|
||||||
scroll:Scroll()
|
scroll:SetCursorPosition(#text)
|
||||||
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)
|
end)
|
||||||
|
|
||||||
frame.scroll = scroll
|
frame.scroll = scroll
|
||||||
end
|
end
|
||||||
end
|
|
||||||
|
|
||||||
this:UnregisterAllEvents()
|
this:UnregisterAllEvents()
|
||||||
end)
|
end)
|
||||||
|
|||||||
File diff suppressed because it is too large
Load Diff
File diff suppressed because it is too large
Load Diff
@@ -27,11 +27,11 @@ pfUI:RegisterModule("combopoints", function ()
|
|||||||
pfUI.combopoints[point].tex:SetAllPoints(pfUI.combopoints[point])
|
pfUI.combopoints[point].tex:SetAllPoints(pfUI.combopoints[point])
|
||||||
|
|
||||||
if point < 3 then
|
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
|
elseif point < 4 then
|
||||||
pfUI.combopoints[point].tex:SetTexture(1, 1, .3, .75)
|
pfUI.combopoints[point].tex:SetColorTexture(1, 1, .3, .75)
|
||||||
else
|
else
|
||||||
pfUI.combopoints[point].tex:SetTexture(.3, 1, .3, .75)
|
pfUI.combopoints[point].tex:SetColorTexture(.3, 1, .3, .75)
|
||||||
end
|
end
|
||||||
|
|
||||||
UpdateMovable(pfUI.combopoints[point])
|
UpdateMovable(pfUI.combopoints[point])
|
||||||
|
|||||||
@@ -1,165 +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 function GetCooldownHeight(cooldown)
|
|
||||||
return cooldown:GetParent() and cooldown:GetParent():GetHeight() or cooldown:GetHeight() or 0
|
|
||||||
end
|
|
||||||
|
|
||||||
-- sizes the text to the cooldown's current height; the dynamic size follows
|
|
||||||
-- the frame, so SetCooldown calls this again whenever that height changes
|
|
||||||
local function pfUpdateCooldownFont(cooldown)
|
|
||||||
local size
|
|
||||||
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" then
|
|
||||||
local height = GetCooldownHeight(cooldown)
|
|
||||||
cooldown.pfCooldownText.height = height
|
|
||||||
size = math.max((height > 0 and height * .64 or 16), size)
|
|
||||||
end
|
|
||||||
|
|
||||||
cooldown.pfCooldownText.text:SetFont(pfUI.media[C.appearance.cd.font], size, "OUTLINE")
|
|
||||||
end
|
|
||||||
|
|
||||||
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")
|
|
||||||
|
|
||||||
pfUpdateCooldownFont(cooldown)
|
|
||||||
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)
|
|
||||||
elseif C.appearance.cd.dynamicsize == "1" and GetCooldownHeight(this) ~= this.pfCooldownText.height then
|
|
||||||
pfUpdateCooldownFont(this)
|
|
||||||
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)
|
|
||||||
+348
-86
@@ -1,5 +1,252 @@
|
|||||||
pfUI:RegisterModule("easteregg", function ()
|
pfUI:RegisterModule("easteregg", function ()
|
||||||
local today = date("%m%d")
|
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!
|
-- merry x-mas!
|
||||||
if today == "1224" or today == "1225" then
|
if today == "1224" or today == "1225" then
|
||||||
local title = (UnitFactionGroup("player") == "Horde") and PVP_RANK_18_0 or PVP_RANK_18_1
|
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 = "You are now |cff33ffcc" .. title .. "|r (AFK)."
|
||||||
_G.MARKED_AFK_MESSAGE = "You are now |cff33ffcc" .. title .. "|r (AFK): %s"
|
_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"
|
_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
|
end
|
||||||
|
|
||||||
-- happy new year
|
-- happy new year
|
||||||
if today == "1231" or today == "0101" then
|
if today == "1231" or today == "0101" then
|
||||||
local fireworks = CreateFrame("Button", "pfFireworks", WorldFrame)
|
local fireworks = CreateScene("pfFireworks", "happy new year!",
|
||||||
fireworks:SetFrameStrata("DIALOG")
|
"Another year with |cff33ffccpf|rUI has passed.\nThanks for continuing to use it!")
|
||||||
fireworks:SetAllPoints()
|
|
||||||
fireworks:Hide()
|
|
||||||
|
|
||||||
fireworks.night = fireworks:CreateTexture("LOW")
|
-- Each explosion grows by 100px and fades out over 5/3s, then goes back
|
||||||
fireworks.night:SetTexture(0,0,0,1)
|
-- to the pool.
|
||||||
fireworks.night:SetGradientAlpha("VERTICAL", 0,0,0,.5, 0,0,0,1)
|
local explosions = CreateTexturePool(fireworks, "OVERLAY")
|
||||||
fireworks.night:SetAllPoints()
|
|
||||||
|
|
||||||
fireworks.stext = fireworks:CreateFontString("Status", "LOW", "GameFontWhite")
|
local function Explode(x, y, size, r, g, b, a)
|
||||||
fireworks.stext:SetFont(STANDARD_TEXT_FONT, 14, "OUTLINE")
|
local tex = explosions:Acquire()
|
||||||
fireworks.stext:SetPoint("TOP", 0, -380)
|
if not tex.burst then
|
||||||
fireworks.stext:SetText("|cff33ffccShagu|cffffffff wishes you a")
|
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
|
||||||
|
|
||||||
fireworks.text = fireworks:CreateFontString("Status", "LOW", "GameFontWhite")
|
tex:SetPoint("CENTER", fireworks, "TOPLEFT", x, y)
|
||||||
fireworks.text:SetFont(pfUI.media["font:BigNoodleTitling.ttf"], 38)
|
tex:SetSize(size, size)
|
||||||
fireworks.text:SetPoint("TOP", 0, -400)
|
tex:SetColorTexture(r, g, b, a)
|
||||||
fireworks.text:SetText("happy new year!")
|
tex.burst.grow:SetScale((size + 100) / size, (size + 100) / size)
|
||||||
|
tex:Show()
|
||||||
|
tex.burst:Play()
|
||||||
|
end
|
||||||
|
|
||||||
fireworks.dtext = fireworks:CreateFontString("Status", "LOW", "GameFontWhite")
|
fireworks:HookScript("OnHide", function()
|
||||||
fireworks.dtext:SetFont(STANDARD_TEXT_FONT, 14, "OUTLINE")
|
explosions:ReleaseAll()
|
||||||
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)
|
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)
|
|
||||||
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
|
|
||||||
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
|
|
||||||
|
|
||||||
-- create random amount of fireworks at random positions
|
-- create random amount of fireworks at random positions
|
||||||
local width, height = GetScreenWidth(), GetScreenHeight()
|
|
||||||
fireworks:SetScript("OnUpdate", function()
|
fireworks:SetScript("OnUpdate", function()
|
||||||
-- fade in the night
|
if this.dusk:IsPlaying() then return end
|
||||||
if this:GetAlpha() < 1 then
|
|
||||||
this:SetAlpha(this:GetAlpha() + .02)
|
|
||||||
return
|
|
||||||
end
|
|
||||||
|
|
||||||
-- let the "happy new year" blink
|
-- let the "happy new year" blink
|
||||||
local r,g,b = this.text:GetTextColor()
|
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
|
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
|
-- create the base explosion
|
||||||
local f = GetExplosion()
|
Explode(x, y, 25, 1, 1, 1, .5)
|
||||||
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()
|
|
||||||
|
|
||||||
-- create random amount of colored explosions
|
-- create random amount of colored explosions
|
||||||
for i=1, math.random(20) do
|
for i=1, math.random(20) do
|
||||||
local f = GetExplosion()
|
Explode(x+(math.random(0,100)-50), y+(math.random(0,100)-50), 2, math.random(), math.random(), math.random(), 1)
|
||||||
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()
|
|
||||||
end
|
end
|
||||||
end)
|
end)
|
||||||
end
|
end
|
||||||
|
|||||||
@@ -132,8 +132,7 @@ pfUI:RegisterModule("energytick", function()
|
|||||||
energytick:SetAllPoints(pfUI.uf.player.power.bar)
|
energytick:SetAllPoints(pfUI.uf.player.power.bar)
|
||||||
energytick:RegisterEvent("PLAYER_ENTERING_WORLD")
|
energytick:RegisterEvent("PLAYER_ENTERING_WORLD")
|
||||||
energytick:RegisterUnitEvent("UNIT_DISPLAYPOWER", "player")
|
energytick:RegisterUnitEvent("UNIT_DISPLAYPOWER", "player")
|
||||||
energytick:RegisterUnitEvent("UNIT_ENERGY", "player")
|
energytick:RegisterUnitEvent("UNIT_POWER_UPDATE", "player")
|
||||||
energytick:RegisterUnitEvent("UNIT_MANA", "player")
|
|
||||||
energytick:RegisterUnitEvent("UNIT_SPELLCAST_SUCCEEDED", "player")
|
energytick:RegisterUnitEvent("UNIT_SPELLCAST_SUCCEEDED", "player")
|
||||||
energytick:RegisterUnitEvent("UNIT_SPELLCAST_CHANNEL_STOP", "player")
|
energytick:RegisterUnitEvent("UNIT_SPELLCAST_CHANNEL_STOP", "player")
|
||||||
energytick:RegisterEvent("SPELLS_CHANGED")
|
energytick:RegisterEvent("SPELLS_CHANGED")
|
||||||
@@ -147,6 +146,7 @@ pfUI:RegisterModule("energytick", function()
|
|||||||
this.mode = "ENERGY"
|
this.mode = "ENERGY"
|
||||||
this:Show()
|
this:Show()
|
||||||
else
|
else
|
||||||
|
this.mode = nil
|
||||||
this:Hide()
|
this:Hide()
|
||||||
end
|
end
|
||||||
|
|
||||||
@@ -155,7 +155,8 @@ pfUI:RegisterModule("energytick", function()
|
|||||||
return
|
return
|
||||||
end
|
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")
|
this.lastPower = UnitPower("player")
|
||||||
end
|
end
|
||||||
|
|
||||||
@@ -179,7 +180,8 @@ pfUI:RegisterModule("energytick", function()
|
|||||||
return
|
return
|
||||||
end
|
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 power = UnitPower("player")
|
||||||
local diff = this.lastPower and (power - this.lastPower) or 0
|
local diff = this.lastPower and (power - this.lastPower) or 0
|
||||||
this.lastPower = power
|
this.lastPower = power
|
||||||
@@ -260,7 +262,7 @@ pfUI:RegisterModule("energytick", function()
|
|||||||
if fsrOverlay then
|
if fsrOverlay then
|
||||||
-- classic style: a translucent shade on top of the power bar's own fill
|
-- classic style: a translucent shade on top of the power bar's own fill
|
||||||
energytick.fsrbar = energytick:CreateTexture(nil, "ARTWORK")
|
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("TOPLEFT", 0, 0)
|
||||||
energytick.fsrbar:SetPoint("BOTTOMLEFT", 0, 0)
|
energytick.fsrbar:SetPoint("BOTTOMLEFT", 0, 0)
|
||||||
else
|
else
|
||||||
|
|||||||
+36
-2
@@ -86,6 +86,12 @@ pfUI:RegisterModule("eqcompare", function ()
|
|||||||
end
|
end
|
||||||
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 prevMerchant = ShoppingTooltip1.SetMerchantCompareItem
|
||||||
local function SetMerchantCompareItem(self, index, compareItem)
|
local function SetMerchantCompareItem(self, index, compareItem)
|
||||||
if compareItem == 1 then
|
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
|
-- 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.
|
-- position the tooltip is about to leave, so place the compare a frame later.
|
||||||
local deferred
|
local deferred
|
||||||
if C_AddOns.DoesAddOnExist("Guda") then
|
HookAddon("Guda", function()
|
||||||
EventUtil.ContinueOnAddOnLoaded("Guda", function()
|
|
||||||
deferred = true
|
deferred = true
|
||||||
end)
|
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
|
end
|
||||||
|
|
||||||
local function makeHook(getter)
|
local function makeHook(getter)
|
||||||
return function(tooltip, arg1, arg2, arg3)
|
return function(tooltip, arg1, arg2, arg3)
|
||||||
local link = getter(arg1, arg2, arg3)
|
local link = getter(arg1, arg2, arg3)
|
||||||
|
links[tooltip] = link
|
||||||
if not deferred then
|
if not deferred then
|
||||||
return ShowCompareItem(tooltip, link)
|
return ShowCompareItem(tooltip, link)
|
||||||
end
|
end
|
||||||
@@ -159,8 +172,29 @@ pfUI:RegisterModule("eqcompare", function ()
|
|||||||
for setter, getter in pairs(TooltipHooks) do
|
for setter, getter in pairs(TooltipHooks) do
|
||||||
hooksecurefunc(tooltip, setter, makeHook(getter))
|
hooksecurefunc(tooltip, setter, makeHook(getter))
|
||||||
end
|
end
|
||||||
|
tooltip:HookScript("OnTooltipCleared", forget)
|
||||||
|
tooltip:HookScript("OnHide", forget)
|
||||||
end
|
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)
|
HookTooltip(GameTooltip)
|
||||||
|
|
||||||
pfUI.eqcompare.HookTooltip = HookTooltip
|
pfUI.eqcompare.HookTooltip = HookTooltip
|
||||||
|
|||||||
+1340
-205
File diff suppressed because it is too large
Load Diff
@@ -1,10 +1,6 @@
|
|||||||
pfUI:RegisterModule("farmmode", function ()
|
pfUI:RegisterModule("farmmode", function ()
|
||||||
local function ToggleFarmMode()
|
local function ToggleFarmMode()
|
||||||
if pfUI.farmmap:IsShown() then
|
pfUI.farmmap:SetShown(not pfUI.farmmap:IsShown())
|
||||||
pfUI.farmmap:Hide()
|
|
||||||
else
|
|
||||||
pfUI.farmmap:Show()
|
|
||||||
end
|
|
||||||
end
|
end
|
||||||
|
|
||||||
local function MoveNodes(layer)
|
local function MoveNodes(layer)
|
||||||
|
|||||||
+11
-36
@@ -16,51 +16,26 @@ pfUI:RegisterModule("focus", function ()
|
|||||||
|
|
||||||
-- PLAYER_FOCUS_CHANGED drives immediate refresh on focus assign / clear.
|
-- PLAYER_FOCUS_CHANGED drives immediate refresh on focus assign / clear.
|
||||||
-- Between events, ClassicAPI fires UNIT_* (health/mana/aura/...) with
|
-- Between events, ClassicAPI fires UNIT_* (health/mana/aura/...) with
|
||||||
-- arg1 == "focus" and arg1 == "focustarget", so both frames update
|
-- arg1 == "focus", so the bars update event-driven like target.
|
||||||
-- event-driven like target and need no polling tick.
|
-- focustarget is a chained unit like targettarget: UNIT_TARGET follows the
|
||||||
local refresher = CreateFrame("Frame")
|
-- focus retargeting, and a new focus only needs its visibility re-checked,
|
||||||
refresher:RegisterEvent("PLAYER_FOCUS_CHANGED")
|
-- which queues the full refresh when its target is a different unit.
|
||||||
refresher:SetScript("OnEvent", function()
|
pfUI.events:RegisterFrameEventAndCallback("PLAYER_FOCUS_CHANGED", function()
|
||||||
pfUI.uf.focus.instantRefresh = true
|
|
||||||
pfUI.uf:RefreshUnit(pfUI.uf.focus, "all")
|
pfUI.uf:RefreshUnit(pfUI.uf.focus, "all")
|
||||||
pfUI.uf.focustarget.instantRefresh = true
|
pfUI.uf.focustarget:UpdateVisibility()
|
||||||
pfUI.uf:RefreshUnit(pfUI.uf.focustarget, "all")
|
|
||||||
end)
|
end)
|
||||||
end)
|
end)
|
||||||
|
|
||||||
-- /focus and /clearfocus live in ClassicAPI's SlashCommandsRegistry now.
|
-- /focus and /clearfocus live in ClassicAPI's SlashCommandsRegistry now.
|
||||||
-- /focusname is pfUI-specific because the engine has no name→GUID
|
-- `/focus Name` takes the nearest prefix match; /focusname tries the exact
|
||||||
-- lookup for off-screen units — we resolve via a short target-swap.
|
-- name first, so "Bob" still wins over a nearer "Bobby".
|
||||||
|
|
||||||
pfUI.api.RegisterSlashCommand("PFFOCUSNAME", { '/focusname', '/pffocusname' }, function(msg)
|
pfUI.api.RegisterSlashCommand("PFFOCUSNAME", { '/focusname', '/pffocusname' }, function(msg)
|
||||||
if msg == "" then return end
|
if msg == "" then return end
|
||||||
|
|
||||||
local prevGUID = UnitGUID("target")
|
local unit = UnitTokenFromName(msg, true) or UnitTokenFromName(msg)
|
||||||
local prevPlayer = UnitIsUnit("target", "player")
|
if unit then
|
||||||
|
FocusUnit(unit)
|
||||||
-- 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()
|
|
||||||
end
|
end
|
||||||
end, true)
|
end, true)
|
||||||
|
|
||||||
|
|||||||
+1
-1
@@ -456,7 +456,7 @@ pfUI:RegisterSkin("Friends", function ()
|
|||||||
end
|
end
|
||||||
|
|
||||||
-- all RaidFrame buttons are in Blizzard_RaidUI in Turtle WoW
|
-- 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 RaidFrameRaidInfoButton then SkinButton(RaidFrameRaidInfoButton) end
|
||||||
if RaidFrameConvertToRaidButton then SkinButton(RaidFrameConvertToRaidButton) end
|
if RaidFrameConvertToRaidButton then SkinButton(RaidFrameConvertToRaidButton) end
|
||||||
if RaidFrameReadyCheckButton then SkinButton(RaidFrameReadyCheckButton) end
|
if RaidFrameReadyCheckButton then SkinButton(RaidFrameReadyCheckButton) end
|
||||||
|
|||||||
+1
-1
@@ -35,7 +35,7 @@ pfUI:RegisterModule("group", function ()
|
|||||||
end
|
end
|
||||||
|
|
||||||
if C.unitframes.grouptarget.visible == "1" and active then
|
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:UpdateFrameSize()
|
||||||
pfUI.uf.group[i].target:SetPoint("TOPLEFT", pfUI.uf.group[i], "TOPRIGHT", 3*default_border, 0)
|
pfUI.uf.group[i].target:SetPoint("TOPLEFT", pfUI.uf.group[i], "TOPRIGHT", 3*default_border, 0)
|
||||||
pfUI.uf.group[i].target:UpdateConfig()
|
pfUI.uf.group[i].target:UpdateConfig()
|
||||||
|
|||||||
@@ -37,11 +37,7 @@ pfUI:RegisterModule("gryphons", function ()
|
|||||||
frame.texture:SetTexCoord(1, 0, 0, 1)
|
frame.texture:SetTexCoord(1, 0, 0, 1)
|
||||||
end
|
end
|
||||||
|
|
||||||
if texture then
|
frame:SetShown(texture)
|
||||||
frame:Show()
|
|
||||||
else
|
|
||||||
frame:Hide()
|
|
||||||
end
|
|
||||||
end
|
end
|
||||||
end
|
end
|
||||||
|
|
||||||
|
|||||||
+207
-182
@@ -1,5 +1,5 @@
|
|||||||
pfUI:RegisterModule("gui", function ()
|
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
|
-- "searchDB" gets populated when CreateConfig is called. The table holds
|
||||||
-- information about the title, its parent buttons and the frame itself:
|
-- information about the title, its parent buttons and the frame itself:
|
||||||
@@ -47,25 +47,12 @@ pfUI:RegisterModule("gui", function ()
|
|||||||
end
|
end
|
||||||
end})
|
end})
|
||||||
|
|
||||||
function EntryUpdate()
|
function EntryOnEnter()
|
||||||
-- detect and skip during dropdowns
|
this.tex:Show()
|
||||||
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
|
end
|
||||||
|
|
||||||
local over = MouseIsOverHitRect(this)
|
function EntryOnLeave()
|
||||||
if over and not this.over then
|
|
||||||
this.tex:Show()
|
|
||||||
this.over = true
|
|
||||||
elseif not over and this.over then
|
|
||||||
this.tex:Hide()
|
this.tex:Hide()
|
||||||
this.over = nil
|
|
||||||
end
|
|
||||||
end
|
end
|
||||||
|
|
||||||
function CreateConfig(ufunc, caption, category, config, widget, values, skip, named, type)
|
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 not widget or (widget and widget ~= "button") then
|
||||||
|
|
||||||
if widget ~= "header" 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 = frame:CreateTexture(nil, "BACKGROUND")
|
||||||
frame.tex:SetTexture(1,1,1,.05)
|
frame.tex:SetColorTexture(1,1,1,.05)
|
||||||
frame.tex:SetAllPoints()
|
frame.tex:SetAllPoints()
|
||||||
frame.tex:Hide()
|
frame.tex:Hide()
|
||||||
end
|
end
|
||||||
@@ -190,7 +181,7 @@ pfUI:RegisterModule("gui", function ()
|
|||||||
if not cr or not cg or not cb or not ca then
|
if not cr or not cg or not cb or not ca then
|
||||||
cr, cg, cb, ca = 1, 1, 1, 1
|
cr, cg, cb, ca = 1, 1, 1, 1
|
||||||
end
|
end
|
||||||
frame.color.prev:SetTexture(cr,cg,cb,ca)
|
frame.color.prev:SetColorTexture(cr,cg,cb,ca)
|
||||||
|
|
||||||
frame.color:SetScript("OnClick", function()
|
frame.color:SetScript("OnClick", function()
|
||||||
local cr, cg, cb, ca = strsplit(",", category[config])
|
local cr, cg, cb, ca = strsplit(",", category[config])
|
||||||
@@ -208,7 +199,7 @@ pfUI:RegisterModule("gui", function ()
|
|||||||
b = round(b, 3)
|
b = round(b, 3)
|
||||||
a = round(a, 3)
|
a = round(a, 3)
|
||||||
|
|
||||||
preview:SetTexture(r,g,b,a)
|
preview:SetColorTexture(r,g,b,a)
|
||||||
|
|
||||||
if not this:GetParent():IsShown() then
|
if not this:GetParent():IsShown() then
|
||||||
category[config] = r .. "," .. g .. "," .. b .. "," .. a
|
category[config] = r .. "," .. g .. "," .. b .. "," .. a
|
||||||
@@ -218,7 +209,7 @@ pfUI:RegisterModule("gui", function ()
|
|||||||
end
|
end
|
||||||
|
|
||||||
function ColorPickerFrame.cancelFunc()
|
function ColorPickerFrame.cancelFunc()
|
||||||
preview:SetTexture(cr,cg,cb,ca)
|
preview:SetColorTexture(cr,cg,cb,ca)
|
||||||
end
|
end
|
||||||
|
|
||||||
ColorPickerFrame.opacityFunc = ColorPickerFrame.func
|
ColorPickerFrame.opacityFunc = ColorPickerFrame.func
|
||||||
@@ -344,45 +335,43 @@ pfUI:RegisterModule("gui", function ()
|
|||||||
|
|
||||||
-- use dropdown widget
|
-- use dropdown widget
|
||||||
if widget == "dropdown" and values then
|
if widget == "dropdown" and values then
|
||||||
frame.input = CreateDropDownButton(nil, frame)
|
local function IsSelected(value)
|
||||||
frame.input:SetBackdrop(nil)
|
return category[config] == value
|
||||||
frame.input.menuframe:SetParent(pfUI.gui)
|
end
|
||||||
|
|
||||||
frame.input:SetPoint("RIGHT", frame, "RIGHT", 0, 0)
|
local function SetSelected(value)
|
||||||
frame.input:SetWidth(180)
|
if category[config] ~= value then
|
||||||
frame.input:SetMenu(function()
|
|
||||||
local menu = {}
|
|
||||||
|
|
||||||
for i, k in pairs(_G.type(values) == "function" and values() or values) do
|
|
||||||
local entry = {}
|
|
||||||
-- 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
|
category[config] = value
|
||||||
if ufunc then ufunc() else pfUI.gui.settingChanged = true end
|
if ufunc then ufunc() else pfUI.gui.settingChanged = true end
|
||||||
pfUI.events:TriggerEvent("config:changed", category, config)
|
pfUI.events:TriggerEvent("config:changed", category, config)
|
||||||
end
|
end
|
||||||
end
|
end
|
||||||
|
|
||||||
if category and category[config] == value then
|
frame.input = CreateFrame("DropdownButton", nil, frame, "pfUIDropdownTemplate")
|
||||||
frame.input.current = i
|
frame.input:SetPoint("RIGHT", frame, "RIGHT", 0, 0)
|
||||||
|
frame.input:SetWidth(180)
|
||||||
|
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)
|
||||||
|
rootDescription:CreateRadio(text or value, IsSelected, SetSelected, value)
|
||||||
end
|
end
|
||||||
|
|
||||||
table.insert(menu, entry)
|
|
||||||
end
|
|
||||||
|
|
||||||
return menu
|
|
||||||
end)
|
end)
|
||||||
|
|
||||||
frame.input:SetSelection(frame.input.current)
|
|
||||||
end
|
end
|
||||||
|
|
||||||
-- use list widget
|
-- use list widget
|
||||||
if widget == "list" then
|
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")
|
frame.del = CreateFrame("Button", nil, frame, "UIPanelButtonTemplate")
|
||||||
SkinButton(frame.del)
|
SkinButton(frame.del)
|
||||||
frame.del:SetWidth(16)
|
frame.del:SetWidth(16)
|
||||||
@@ -392,15 +381,16 @@ pfUI:RegisterModule("gui", function ()
|
|||||||
frame.del:SetText("-")
|
frame.del:SetText("-")
|
||||||
frame.del:SetTextColor(1,.5,.5,1)
|
frame.del:SetTextColor(1,.5,.5,1)
|
||||||
frame.del:SetScript("OnClick", function()
|
frame.del:SetScript("OnClick", function()
|
||||||
local sel = frame.input:GetSelection()
|
if not selected then return end
|
||||||
local newconf = ""
|
local newconf = ""
|
||||||
for id, val in pairs({strsplit("#", category[config])}) do
|
for id, val in ipairs({strsplit("#", category[config])}) do
|
||||||
if id ~= sel then newconf = newconf .. "#" .. val end
|
if id ~= selected and val ~= "" then newconf = newconf .. "#" .. val end
|
||||||
end
|
end
|
||||||
|
selected = nil
|
||||||
category[config] = newconf
|
category[config] = newconf
|
||||||
if ufunc then ufunc() else pfUI.gui.settingChanged = true end
|
if ufunc then ufunc() else pfUI.gui.settingChanged = true end
|
||||||
pfUI.events:TriggerEvent("config:changed", category, config)
|
pfUI.events:TriggerEvent("config:changed", category, config)
|
||||||
frame.input:UpdateMenu()
|
frame.input:GenerateMenu()
|
||||||
end)
|
end)
|
||||||
|
|
||||||
frame.add = CreateFrame("Button", nil, frame, "UIPanelButtonTemplate")
|
frame.add = CreateFrame("Button", nil, frame, "UIPanelButtonTemplate")
|
||||||
@@ -416,24 +406,26 @@ pfUI:RegisterModule("gui", function ()
|
|||||||
category[config] = category[config] .. "#" .. this:GetParent().input:GetText()
|
category[config] = category[config] .. "#" .. this:GetParent().input:GetText()
|
||||||
if ufunc then ufunc() else pfUI.gui.settingChanged = true end
|
if ufunc then ufunc() else pfUI.gui.settingChanged = true end
|
||||||
pfUI.events:TriggerEvent("config:changed", category, config)
|
pfUI.events:TriggerEvent("config:changed", category, config)
|
||||||
frame.input:UpdateMenu()
|
frame.input:GenerateMenu()
|
||||||
end, false, true)
|
end, false, true)
|
||||||
end)
|
end)
|
||||||
|
|
||||||
frame.input = CreateDropDownButton(nil, frame)
|
frame.input = CreateFrame("DropdownButton", nil, frame, "pfUIDropdownTemplate")
|
||||||
frame.input:SetBackdrop(nil)
|
|
||||||
frame.input.menuframe:SetParent(pfUI.gui)
|
|
||||||
frame.input:SetPoint("RIGHT", frame.add, "LEFT", -2, 0)
|
frame.input:SetPoint("RIGHT", frame.add, "LEFT", -2, 0)
|
||||||
frame.input:SetWidth(140)
|
frame.input:SetWidth(140)
|
||||||
frame.input:SetMenu(function()
|
frame.input:SetupMenu(function(dropdown, rootDescription)
|
||||||
local menu = {}
|
for id, val in ipairs({strsplit("#", category[config])}) do
|
||||||
for i, val in pairs({strsplit("#", category[config])}) do
|
if val ~= "" then
|
||||||
table.insert(menu, { text = val })
|
rootDescription:CreateRadio(val, IsSelected, Select, id)
|
||||||
|
end
|
||||||
end
|
end
|
||||||
return menu
|
|
||||||
end)
|
end)
|
||||||
end
|
end
|
||||||
|
|
||||||
|
for _, child in ipairs({ frame:GetChildren() }) do
|
||||||
|
child:SetPropagateMouseMotion(true)
|
||||||
|
end
|
||||||
|
|
||||||
return frame
|
return frame
|
||||||
end
|
end
|
||||||
|
|
||||||
@@ -498,31 +490,32 @@ pfUI:RegisterModule("gui", function ()
|
|||||||
f.button = parent[title]
|
f.button = parent[title]
|
||||||
|
|
||||||
f.bg = f:CreateTexture(nil, "BACKGROUND")
|
f.bg = f:CreateTexture(nil, "BACKGROUND")
|
||||||
f.bg:SetTexture(1,1,1,.05)
|
f.bg:SetColorTexture(1,1,1,.05)
|
||||||
f.bg:SetAllPoints()
|
f.bg:SetAllPoints()
|
||||||
|
|
||||||
f:SetScript("OnShow", function()
|
f:SetScript("OnShow", function()
|
||||||
this.indexed = true
|
this.indexed = true
|
||||||
this.button.text:SetTextColor(.2,1,.8,1)
|
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)
|
this.button.bg:SetGradientAlpha("HORIZONTAL", 0,0,0,0, 1,1,1,.05)
|
||||||
end)
|
end)
|
||||||
|
|
||||||
f:SetScript("OnHide", function()
|
f:SetScript("OnHide", function()
|
||||||
this.button.text:SetTextColor(1,1,1,1)
|
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)
|
end)
|
||||||
|
|
||||||
-- are we a frame with contents?
|
-- are we a frame with contents?
|
||||||
if func then
|
if func then
|
||||||
f.scroll = CreateScrollFrame(nil, f)
|
f.scroll = CreateFrame("ScrollFrame", nil, f, "pfUIScrollFrameTemplate")
|
||||||
SetAllPointsOffset(f.scroll, f, 2)
|
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.parent = f.scroll
|
||||||
f.scroll.content:SetScript("OnShow", function()
|
f.scroll.content:SetScript("OnShow", function()
|
||||||
if not this.setup then
|
if not this.setup then
|
||||||
func()
|
func()
|
||||||
this.setup = true
|
this.setup = true
|
||||||
|
this.parent:UpdateScrollChildRect()
|
||||||
end
|
end
|
||||||
end)
|
end)
|
||||||
end
|
end
|
||||||
@@ -695,7 +688,10 @@ pfUI:RegisterModule("gui", function ()
|
|||||||
SkinButton(pfUI.gui.share)
|
SkinButton(pfUI.gui.share)
|
||||||
|
|
||||||
-- searchbar
|
-- 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
|
-- clear search focus
|
||||||
pfUI.gui.search:ClearFocus()
|
pfUI.gui.search:ClearFocus()
|
||||||
|
|
||||||
@@ -705,23 +701,24 @@ pfUI:RegisterModule("gui", function ()
|
|||||||
end
|
end
|
||||||
|
|
||||||
-- highlight matched entry
|
-- highlight matched entry
|
||||||
if not this.obj[-1].highlight then
|
if highlighted then highlighted.highlight:Hide() end
|
||||||
this.obj[-1].highlight = this.obj[-1]:CreateTexture(nil, "OVERLAY")
|
highlighted = this.obj[-1]
|
||||||
this.obj[-1].highlight:SetAllPoints()
|
if not highlighted.highlight then
|
||||||
this.obj[-1].highlight:SetTexture(.2,1,.8,.2)
|
highlighted.highlight = highlighted:CreateTexture(nil, "OVERLAY")
|
||||||
|
highlighted.highlight:SetAllPoints()
|
||||||
|
highlighted.highlight:SetColorTexture(.2,1,.8,.2)
|
||||||
end
|
end
|
||||||
this.obj[-1].highlight:Show()
|
highlighted.highlight:Show()
|
||||||
end
|
end
|
||||||
|
|
||||||
local function CreateSearchEntry(parent, i)
|
local function InitSearchResult(f, obj)
|
||||||
local f = CreateFrame("Button", nil, parent)
|
-- one-time setup of a pooled row
|
||||||
f:SetPoint("TOPLEFT", 5, -5 + (i-1)*-25)
|
if not f.text then
|
||||||
f:SetWidth(565)
|
f:SetScript("OnClick", SearchResultClick)
|
||||||
f:SetHeight(20)
|
f:SetScript("OnEnter", EntryOnEnter)
|
||||||
f:SetScript("OnClick", SearchEntryClick)
|
f:SetScript("OnLeave", EntryOnLeave)
|
||||||
f:SetScript("OnUpdate", EntryUpdate)
|
|
||||||
|
|
||||||
f.text = f:CreateFontString("Status", "LOW", "GameFontWhite")
|
f.text = f:CreateFontString(nil, "LOW", "GameFontWhite")
|
||||||
f.text:SetFont(pfUI.font_default, pfUI_config.global.font_size, "OUTLINE")
|
f.text:SetFont(pfUI.font_default, pfUI_config.global.font_size, "OUTLINE")
|
||||||
f.text:SetAllPoints()
|
f.text:SetAllPoints()
|
||||||
f.text:SetJustifyH("LEFT")
|
f.text:SetJustifyH("LEFT")
|
||||||
@@ -729,11 +726,19 @@ pfUI:RegisterModule("gui", function ()
|
|||||||
f.text:SetTextColor(.5,.5,.5)
|
f.text:SetTextColor(.5,.5,.5)
|
||||||
|
|
||||||
f.tex = f:CreateTexture(nil, "BACKGROUND")
|
f.tex = f:CreateTexture(nil, "BACKGROUND")
|
||||||
f.tex:SetTexture(1,1,1,.05)
|
f.tex:SetColorTexture(1,1,1,.05)
|
||||||
f.tex:SetAllPoints()
|
f.tex:SetAllPoints()
|
||||||
f.tex:Hide()
|
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
|
end
|
||||||
|
|
||||||
pfUI.gui.search = CreateFrame("EditBox", nil, pfUI.gui)
|
pfUI.gui.search = CreateFrame("EditBox", nil, pfUI.gui)
|
||||||
@@ -760,54 +765,34 @@ pfUI:RegisterModule("gui", function ()
|
|||||||
local defval = "["..T["Search"].."]"
|
local defval = "["..T["Search"].."]"
|
||||||
|
|
||||||
-- initialize search window
|
-- 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()
|
pfUI.gui.frames[defval]:Click()
|
||||||
|
|
||||||
local scroll = pfUI.gui.frames[defval].area.scroll.content
|
if highlighted then
|
||||||
local parent = pfUI.gui.frames[defval].area.scroll
|
highlighted.highlight:Hide()
|
||||||
scroll.results = scroll.results or {}
|
highlighted = nil
|
||||||
|
|
||||||
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
|
|
||||||
end
|
end
|
||||||
|
|
||||||
if strlen(this:GetText()) < 1 then return end
|
-- the matching entries, from the top of the list
|
||||||
|
local matches = {}
|
||||||
local i = 1
|
|
||||||
local search = strlower(this:GetText())
|
local search = strlower(this:GetText())
|
||||||
for name, obj in pairs(searchDB) do
|
if search ~= "" then
|
||||||
local title = obj[0] and strlower(obj[0])
|
for _, obj in pairs(searchDB) do
|
||||||
if strfind(title, search) then
|
if strfind(strlower(obj[0]), search, 1, true) then
|
||||||
-- build caption string
|
table.insert(matches, obj)
|
||||||
local caption = ""
|
|
||||||
for x=table.getn(obj),1,-1 do
|
|
||||||
caption = caption .. "|cff33ffcc" .. obj[x].text:GetText() .. "|r » "
|
|
||||||
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
|
||||||
end
|
end
|
||||||
|
end
|
||||||
-- reload scroll frames
|
results.ScrollBox:SetDataProvider(CreateDataProvider(matches))
|
||||||
scroll:Hide()
|
|
||||||
scroll:SetHeight(i * 25 )
|
|
||||||
scroll:Show()
|
|
||||||
parent:SetScrollChild(scroll)
|
|
||||||
QueueFunction(function()
|
|
||||||
parent:SetVerticalScroll(0)
|
|
||||||
parent:UpdateScrollState()
|
|
||||||
parent:Scroll()
|
|
||||||
end)
|
|
||||||
end)
|
end)
|
||||||
|
|
||||||
pfUI.gui.search:SetScript("OnEditFocusGained", function(self)
|
pfUI.gui.search:SetScript("OnEditFocusGained", function(self)
|
||||||
@@ -922,14 +907,6 @@ pfUI:RegisterModule("gui", function ()
|
|||||||
"HORIZONTAL:" .. T["Horizontal"],
|
"HORIZONTAL:" .. T["Horizontal"],
|
||||||
"VERTICAL:" .. T["Vertical"],
|
"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"] = {
|
["xpanchors"] = {
|
||||||
"__NONONIL__:" .. T["No Anchor"],
|
"__NONONIL__:" .. T["No Anchor"],
|
||||||
"pfChatLeft:" .. T["Left Chat Frame"],
|
"pfChatLeft:" .. T["Left Chat Frame"],
|
||||||
@@ -980,6 +957,12 @@ pfUI:RegisterModule("gui", function ()
|
|||||||
"TOP:" .. T["Center"],
|
"TOP:" .. T["Center"],
|
||||||
"TOPRIGHT:" .. T["Right"]
|
"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"] = {
|
["uf_portrait_position"] = {
|
||||||
"bar:" .. T["Healthbar Embedded"],
|
"bar:" .. T["Healthbar Embedded"],
|
||||||
"left:" .. T["Left"],
|
"left:" .. T["Left"],
|
||||||
@@ -1300,7 +1283,7 @@ pfUI:RegisterModule("gui", function ()
|
|||||||
-- draw pfUI logo
|
-- draw pfUI logo
|
||||||
local function draw(p, fx, fy, tx, ty, r, g, b, a)
|
local function draw(p, fx, fy, tx, ty, r, g, b, a)
|
||||||
local t = p:CreateTexture(nil, "OVERLAY")
|
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("TOPLEFT", fx, fy)
|
||||||
t:SetPoint("BOTTOMRIGHT", p, "TOPLEFT", tx, ty)
|
t:SetPoint("BOTTOMRIGHT", p, "TOPLEFT", tx, ty)
|
||||||
end
|
end
|
||||||
@@ -1327,14 +1310,14 @@ pfUI:RegisterModule("gui", function ()
|
|||||||
|
|
||||||
this.version = this:CreateFontString("Status", "LOW", "GameFontWhite")
|
this.version = this:CreateFontString("Status", "LOW", "GameFontWhite")
|
||||||
this.version:SetFont(pfUI.font_default, C.global.font_size)
|
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:SetWidth(200)
|
||||||
this.version:SetJustifyH("RIGHT")
|
this.version:SetJustifyH("RIGHT")
|
||||||
|
|
||||||
this.update = this:CreateFontString("Status", "LOW", "GameFontWhite")
|
this.update = this:CreateFontString("Status", "LOW", "GameFontWhite")
|
||||||
this.update:SetFont(pfUI.font_default, C.global.font_size)
|
this.update:SetFont(pfUI.font_default, C.global.font_size)
|
||||||
this.update:SetPoint("TOPLEFT", 200, -140)
|
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:SetJustifyH("CENTER")
|
||||||
this.update:SetTextColor(.2,1,.8)
|
this.update:SetTextColor(.2,1,.8)
|
||||||
|
|
||||||
@@ -1347,7 +1330,7 @@ pfUI:RegisterModule("gui", function ()
|
|||||||
|
|
||||||
this.screen = this:CreateFontString("Status", "LOW", "GameFontWhite")
|
this.screen = this:CreateFontString("Status", "LOW", "GameFontWhite")
|
||||||
this.screen:SetFont(pfUI.font_default, C.global.font_size)
|
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:SetWidth(200)
|
||||||
this.screen:SetJustifyH("RIGHT")
|
this.screen:SetJustifyH("RIGHT")
|
||||||
|
|
||||||
@@ -1360,7 +1343,7 @@ pfUI:RegisterModule("gui", function ()
|
|||||||
|
|
||||||
this.scale = this:CreateFontString("Status", "LOW", "GameFontWhite")
|
this.scale = this:CreateFontString("Status", "LOW", "GameFontWhite")
|
||||||
this.scale:SetFont(pfUI.font_default, C.global.font_size)
|
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:SetWidth(200)
|
||||||
this.scale:SetJustifyH("RIGHT")
|
this.scale:SetJustifyH("RIGHT")
|
||||||
|
|
||||||
@@ -1373,7 +1356,7 @@ pfUI:RegisterModule("gui", function ()
|
|||||||
|
|
||||||
this.client = this:CreateFontString("Status", "LOW", "GameFontWhite")
|
this.client = this:CreateFontString("Status", "LOW", "GameFontWhite")
|
||||||
this.client:SetFont(pfUI.font_default, C.global.font_size)
|
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:SetWidth(200)
|
||||||
this.client:SetJustifyH("RIGHT")
|
this.client:SetJustifyH("RIGHT")
|
||||||
|
|
||||||
@@ -1385,7 +1368,7 @@ pfUI:RegisterModule("gui", function ()
|
|||||||
this.langc:SetText(T["Language"] .. ":")
|
this.langc:SetText(T["Language"] .. ":")
|
||||||
this.lang = this:CreateFontString("Status", "LOW", "GameFontWhite")
|
this.lang = this:CreateFontString("Status", "LOW", "GameFontWhite")
|
||||||
this.lang:SetFont(pfUI.font_default, C.global.font_size)
|
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:SetWidth(200)
|
||||||
this.lang:SetJustifyH("RIGHT")
|
this.lang:SetJustifyH("RIGHT")
|
||||||
|
|
||||||
@@ -1414,7 +1397,7 @@ pfUI:RegisterModule("gui", function ()
|
|||||||
donate:SetHeight(20)
|
donate:SetHeight(20)
|
||||||
donate:SetText(T["Donate"])
|
donate:SetText(T["Donate"])
|
||||||
donate:SetScript("OnClick", function()
|
donate:SetScript("OnClick", function()
|
||||||
pfUI.chat.urlcopy.CopyText("https://buymeacoffee.com/brues")
|
CopyText("https://buymeacoffee.com/brues")
|
||||||
end)
|
end)
|
||||||
SkinButton(donate)
|
SkinButton(donate)
|
||||||
|
|
||||||
@@ -1424,7 +1407,7 @@ pfUI:RegisterModule("gui", function ()
|
|||||||
github:SetHeight(20)
|
github:SetHeight(20)
|
||||||
github:SetText(T["GitHub"])
|
github:SetText(T["GitHub"])
|
||||||
github:SetScript("OnClick", function()
|
github:SetScript("OnClick", function()
|
||||||
pfUI.chat.urlcopy.CopyText(GetAddOnMetadata(pfUI.name, "X-Website"))
|
CopyText(GetAddOnMetadata(pfUI.name, "X-Website"))
|
||||||
end)
|
end)
|
||||||
SkinButton(github)
|
SkinButton(github)
|
||||||
|
|
||||||
@@ -1434,7 +1417,7 @@ pfUI:RegisterModule("gui", function ()
|
|||||||
website:SetHeight(20)
|
website:SetHeight(20)
|
||||||
website:SetText(T["Website"])
|
website:SetText(T["Website"])
|
||||||
website:SetScript("OnClick", function()
|
website:SetScript("OnClick", function()
|
||||||
pfUI.chat.urlcopy.CopyText(GetAddOnMetadata(pfUI.name, "X-Website"))
|
CopyText(GetAddOnMetadata(pfUI.name, "X-Website"))
|
||||||
end)
|
end)
|
||||||
SkinButton(website)
|
SkinButton(website)
|
||||||
end)
|
end)
|
||||||
@@ -1614,21 +1597,51 @@ pfUI:RegisterModule("gui", function ()
|
|||||||
end)
|
end)
|
||||||
|
|
||||||
CreateGUIEntry(T["Settings"], T["Cooldown"], function()
|
CreateGUIEntry(T["Settings"], T["Cooldown"], function()
|
||||||
CreateConfig(U["buff"], T["Show Milliseconds When Timer Runs Out"], C.appearance.cd, "milliseconds", "checkbox")
|
-- every kind of cooldown CreateCooldown makes, as C.cooldown groups.
|
||||||
CreateConfig(nil, T["Cooldown Color (Less than 3 Sec)"], C.appearance.cd, "lowcolor", "color")
|
-- Other addons' cooldowns only lose numbers or sweep (see
|
||||||
CreateConfig(nil, T["Cooldown Color (Seconds)"], C.appearance.cd, "normalcolor", "color")
|
-- api/cooldown.lua), so giving them back takes a reload
|
||||||
CreateConfig(nil, T["Cooldown Color (Minutes)"], C.appearance.cd, "minutecolor", "color")
|
local kinds = {
|
||||||
CreateConfig(nil, T["Cooldown Color (Hours)"], C.appearance.cd, "hourcolor", "color")
|
{ "actionbar", T["Action Bars"] },
|
||||||
CreateConfig(nil, T["Cooldown Color (Days)"], C.appearance.cd, "daycolor", "color")
|
{ "bags", T["Bags"] },
|
||||||
CreateConfig(nil, T["Use Dynamic Font Size"], C.appearance.cd, "dynamicsize", "checkbox")
|
{ "blizzard", T["Spellbook And Character"] },
|
||||||
CreateConfig(nil, T["Cooldown Text Font"], C.appearance.cd, "font", "dropdown", pfUI.gui.dropdowns.fonts)
|
{ "unitframe", T["Unit Frame Auras"] },
|
||||||
CreateConfig(nil, T["Cooldown Text Font Size"], C.appearance.cd, "font_size")
|
{ "indicator", T["Buff Indicators"] },
|
||||||
CreateConfig(nil, T["Cooldown Text Font Size (Blizzard Frames)"], C.appearance.cd, "font_size_blizz")
|
{ "nameplate", T["Nameplate Debuffs"] },
|
||||||
CreateConfig(nil, T["Cooldown Text Font Size (Foreign Frames)"], C.appearance.cd, "font_size_foreign")
|
{ "buff", T["Player Buffs"] },
|
||||||
CreateConfig(nil, T["Cooldown Text Time Threshold"], C.appearance.cd, "threshold")
|
{ "tooltip", T["Tooltip Auras"] },
|
||||||
CreateConfig(nil, T["Enable Durations On Blizzard Frames"], C.appearance.cd, "blizzard", "checkbox")
|
{ "totem", T["Totems"] },
|
||||||
CreateConfig(nil, T["Enable Durations On Foreign Frames"], C.appearance.cd, "foreign", "checkbox")
|
{ "lossofcontrol", T["Loss Of Control"] },
|
||||||
CreateConfig(nil, T["Hide Foreign Cooldown Animations"], C.appearance.cd, "hideanim", "checkbox")
|
{ "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)
|
end)
|
||||||
|
|
||||||
CreateGUIEntry(T["Settings"], T["Screenshot"], function()
|
CreateGUIEntry(T["Settings"], T["Screenshot"], function()
|
||||||
@@ -2065,9 +2078,9 @@ pfUI:RegisterModule("gui", function ()
|
|||||||
|
|
||||||
CreateGUIEntry(T["Unit Frames"], T["General"], function()
|
CreateGUIEntry(T["Unit Frames"], T["General"], function()
|
||||||
CreateConfig(nil, T["Disable pfUI Unit Frames"], C.unitframes, "disable", "checkbox")
|
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["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["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["Unit Frame Layout"], C.unitframes, "layout", "dropdown", pfUI.gui.dropdowns.uf_layout)
|
||||||
CreateConfig(nil, T["Combopoint Width"], C.unitframes, "combowidth")
|
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["Offhand Bar Color"], C.unitframes, "swingtimerohcolor", "color")
|
||||||
CreateConfig(nil, T["Ranged Bar Color"], C.unitframes, "swingtimerrangedcolor", "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["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 On Next Attack Queue Color"], C.unitframes, "swingtimerhsqueue", "checkbox")
|
||||||
CreateConfig(nil, T["Show Attack Speed"], C.unitframes, "swingtimerattackspeed", "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["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["SuperWoW Settings"], nil, nil, "header")
|
||||||
CreateConfig(nil, T["Track Group on Minimap"], C.unitframes, "track_group", "checkbox", nil, nil, nil, nil)
|
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["Reactive Indicator Size"], C.unitframes, "reactive_size", nil, nil, nil, nil, nil)
|
||||||
|
|
||||||
CreateConfig(nil, T["UnitXP Settings"], nil, nil, "header")
|
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 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["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)
|
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 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["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["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 Position"], C.unitframes[c], "buffs", "dropdown", pfUI.gui.dropdowns.uf_buff_position)
|
||||||
CreateConfig(U[c], T["Buff Size"], C.unitframes[c], "buffsize")
|
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["Buff/Debuff Indicators"], nil, nil, "header")
|
||||||
CreateConfig(U[c], T["Enable Indicators"], C.unitframes[c], "buff_indicator", "checkbox")
|
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["Show Stacks"], C.unitframes[c], "indicator_stacks", "checkbox")
|
||||||
CreateConfig(U[c], T["Indicator Size"], C.unitframes[c], "indicator_size")
|
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)
|
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")
|
CreateConfig(nil, T["Always Show Equipment Slot Flyouts"], C.character.inventory, "equipflyout", "checkbox")
|
||||||
end)
|
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()
|
CreateGUIEntry(T["Character"], T["Reputation"], function()
|
||||||
CreateConfig(nil, T["Show Reputation Remaining"], C.character.reputation, "repRequired", "checkbox")
|
CreateConfig(nil, T["Show Reputation Remaining"], C.character.reputation, "repRequired", "checkbox")
|
||||||
end)
|
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["Hide Chat When Bags Are Opened"], C.appearance.bags, "hidechat", "checkbox")
|
||||||
CreateConfig(nil, T["Bagslots Per Row"], C.appearance.bags, "bagrowlength")
|
CreateConfig(nil, T["Bagslots Per Row"], C.appearance.bags, "bagrowlength")
|
||||||
CreateConfig(nil, T["Bankslots Per Row"], C.appearance.bags, "bankrowlength")
|
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["Item Slot Size"], C.appearance.bags, "icon_size")
|
||||||
CreateConfig(nil, T["Auto Sell Grey Items"], C.global, "autosell", "checkbox")
|
CreateConfig(nil, T["Auto Sell Grey Items"], C.global, "autosell", "checkbox")
|
||||||
CreateConfig(nil, T["Auto Repair Items"], C.global, "autorepair", "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 Buffs Per Row"], C.buffs, "buffrowsize")
|
||||||
CreateConfig(U["buff"], T["Number Of Debuffs Per Row"], C.buffs, "debuffrowsize")
|
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["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)
|
end)
|
||||||
|
|
||||||
CreateGUIEntry(T["Buffs"], T["Totem Icons"], function()
|
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["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 Size"], C.bars, "bind_size")
|
||||||
CreateConfig(U["bars"], T["Keybind Text Color"], C.bars, "bind_color", "color")
|
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(nil, T["Auto Paging"], nil, nil, "header")
|
||||||
CreateConfig(U["bars"], T["Switch Pages On Alt Key Press"], C.bars, "pagemasteralt", "checkbox")
|
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
|
elseif is_horizontal then
|
||||||
if uneven ~= "Left" and uneven ~= "Right" then C.bars["bar"..id].uneven = "Left" end
|
if uneven ~= "Left" and uneven ~= "Right" then C.bars["bar"..id].uneven = "Left" end
|
||||||
end
|
end
|
||||||
if uneven_frame and uneven_frame.input and uneven_frame.input.UpdateMenu then
|
if uneven_frame then
|
||||||
uneven_frame.input:UpdateMenu()
|
uneven_frame.input:GenerateMenu()
|
||||||
end
|
end
|
||||||
if U["bars"] then U["bars"]() end
|
if U["bars"] then U["bars"]() end
|
||||||
end
|
end
|
||||||
@@ -2864,6 +2888,8 @@ pfUI:RegisterModule("gui", function ()
|
|||||||
end)
|
end)
|
||||||
|
|
||||||
CreateGUIEntry(T["Chat"], nil, function()
|
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["Enable \"Loot & Spam\" Chat Window"], C.chat.right, "enable", "checkbox")
|
||||||
CreateConfig(nil, T["Inputbox Width"], C.chat.text, "input_width")
|
CreateConfig(nil, T["Inputbox Width"], C.chat.text, "input_width")
|
||||||
CreateConfig(nil, T["Inputbox Height"], C.chat.text, "input_height")
|
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["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["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["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 Brackets"], C.chat.text, "timebracket", nil, nil, nil, nil, "STRING")
|
||||||
CreateConfig(nil, T["Timestamp Color"], C.chat.text, "timecolor", "color")
|
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["Generate Playerlinks"], C.chat.text, "playerlinks", "checkbox")
|
||||||
CreateConfig(nil, T["Enable URL Detection"], C.chat.text, "detecturl", "checkbox")
|
CreateConfig(nop, T["Enable URL Detection"], C.chat.text, "detecturl", "checkbox")
|
||||||
CreateConfig(nil, T["Enable Class Colors"], C.chat.text, "classcolor", "checkbox")
|
CreateConfig(nop, T["Enable Class Colors"], C.chat.text, "classcolor", "checkbox")
|
||||||
local _, playerRace = UnitRace("player")
|
local _, playerRace = UnitRace("player")
|
||||||
CreateConfig(nil, T["Show Faction Icons"] .. " " .. GetFactionIcon(playerRace), C.chat.text, "factionicons", "checkbox")
|
CreateConfig(nop, 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(nop, 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(nop, T["Enable Player Levels"], C.chat.text, "playerlevel", "checkbox")
|
||||||
CreateConfig(nil, T["Colorize Unknown Classes"], C.chat.text, "tintunknown", "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["Unknown Class Color"], C.chat.text, "unknowncolor", "color")
|
||||||
CreateConfig(nil, T["Left Chat Width"], C.chat.left, "width")
|
CreateConfig(nil, T["Left Chat Width"], C.chat.left, "width")
|
||||||
CreateConfig(nil, T["Left Chat Height"], C.chat.left, "height")
|
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["Maximum Number Of Chat Lines"], C.chat.global, "maxlines")
|
||||||
CreateConfig(nil, T["Enable Chat Fade"], C.chat.global, "fadeout", "checkbox")
|
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["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 Chat Bubbles"], "CVAR", "chatBubbles", "checkbox")
|
||||||
CreateConfig(nil, T["Enable Party Chat Bubbles"], "CVAR", "chatBubblesParty", "checkbox")
|
CreateConfig(nil, T["Enable Party Chat Bubbles"], "CVAR", "chatBubblesParty", "checkbox")
|
||||||
CreateConfig(nil, T["Enable Chat Bubble Borders"], C.chat.bubbles, "borders", "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 Offset"], C.nameplates, "debuffoffset")
|
||||||
CreateConfig(U["nameplates"], T["Debuff Icon Size"], C.nameplates, "debuffsize")
|
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["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["Filter Mode"], C.nameplates.debuffs, "filter", "dropdown", pfUI.gui.dropdowns.buffbarfilter)
|
||||||
CreateConfig(U["nameplates"], T["Blacklist"], C.nameplates.debuffs, "blacklist", "list")
|
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:SetAllPoints(UIParent)
|
||||||
pfUI.hoverbind.edit.tex = pfUI.hoverbind.edit:CreateTexture("pfKeyBindShade", "BACKGROUND")
|
pfUI.hoverbind.edit.tex = pfUI.hoverbind.edit:CreateTexture("pfKeyBindShade", "BACKGROUND")
|
||||||
pfUI.hoverbind.edit.tex:SetAllPoints(pfUI.hoverbind.edit)
|
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.edit:SetScript("OnClick", function()
|
||||||
pfUI.hoverbind:Hide()
|
pfUI.hoverbind:Hide()
|
||||||
end)
|
end)
|
||||||
|
|||||||
+49
-35
@@ -1,51 +1,65 @@
|
|||||||
pfUI:RegisterModule("infight", function ()
|
pfUI:RegisterModule("infight", function ()
|
||||||
local function OnUpdate()
|
pfUI.infight = CreateFrame("Frame", "pfUICombatScreen", WorldFrame)
|
||||||
if not this.infight and not this.aggro and not this.health then return end
|
pfUI.infight:SetAllPoints(WorldFrame)
|
||||||
if ( this.tick or 1) > GetTime() then return else this.tick = GetTime() + .1 end
|
pfUI.infight:EnableMouse(false)
|
||||||
|
pfUI.infight:Hide()
|
||||||
|
|
||||||
if not this.fadeValue then this.fadeValue = 1 end
|
-- Shift the glow between red and a paler orange for good. The group only
|
||||||
if this.fadeValue >= 0.3 then
|
-- advances while the glow is shown, so a hidden glow costs nothing.
|
||||||
this.fadeModifier = -0.1
|
local pulse = pfUI.infight:CreateAnimationGroup()
|
||||||
end
|
pulse:SetLooping("BOUNCE")
|
||||||
if this.fadeValue <= 0 then
|
local shift = pulse:CreateAnimation()
|
||||||
this.fadeModifier = 0.1
|
shift:SetDuration(.3)
|
||||||
end
|
shift:SetSmoothing("IN_OUT")
|
||||||
this.fadeValue = this.fadeValue + this.fadeModifier
|
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
|
-- Combat, health, death and aggro all come from events.
|
||||||
if this.infight and UnitAffectingCombat("player") then visible = true end
|
local combat, health, dead, aggro
|
||||||
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
|
|
||||||
|
|
||||||
if visible then
|
local function Refresh()
|
||||||
this.screen:Show()
|
pfUI.infight:SetShown((combat or health or aggro) and not dead)
|
||||||
this.screen:SetBackdropBorderColor(1,0.2+this.fadeValue, this.fadeValue, 1-this.fadeValue)
|
|
||||||
else
|
|
||||||
this.screen:Hide()
|
|
||||||
end
|
|
||||||
end
|
end
|
||||||
|
|
||||||
pfUI.infight = CreateFrame("Frame", "pfUICombat", UIParent)
|
local function UpdateAggro()
|
||||||
pfUI.infight:SetScript("OnUpdate", OnUpdate)
|
aggro = C.appearance.infight.aggro == "1" and UnitHasAggro("player") > 0
|
||||||
|
Refresh()
|
||||||
|
end
|
||||||
|
|
||||||
pfUI.infight.screen = CreateFrame("Frame", "pfUICombatScreen", WorldFrame)
|
-- a combat drop is also when an attacker that left view is let go
|
||||||
pfUI.infight.screen:SetAllPoints(WorldFrame)
|
local function UpdatePlayer()
|
||||||
pfUI.infight.screen:EnableMouse(false)
|
combat = C.appearance.infight.screen == "1" and UnitAffectingCombat("player")
|
||||||
pfUI.infight.screen:Hide()
|
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.UpdateConfig = function(self)
|
||||||
pfUI.infight.infight = C.appearance.infight.screen == "1" and true or nil
|
pfUI.infight:SetBackdrop({
|
||||||
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({
|
|
||||||
edgeFile = pfUI.media["img:glow"], edgeSize = tonumber(C.appearance.infight.intensity),
|
edgeFile = pfUI.media["img:glow"], edgeSize = tonumber(C.appearance.infight.intensity),
|
||||||
insets = {left = 0, right = 0, top = 0, bottom = 0},
|
insets = {left = 0, right = 0, top = 0, bottom = 0},
|
||||||
})
|
})
|
||||||
|
|
||||||
pfUI.infight.screen:Hide()
|
UpdatePlayer()
|
||||||
end
|
end
|
||||||
|
|
||||||
pfUI.infight.UpdateConfig()
|
pfUI.infight:UpdateConfig()
|
||||||
end)
|
end)
|
||||||
|
|||||||
@@ -46,22 +46,17 @@ pfUI:RegisterModule("innervatecall", function ()
|
|||||||
end)
|
end)
|
||||||
end
|
end
|
||||||
|
|
||||||
local frame = CreateFrame("Frame")
|
pfUI.events:RegisterFrameEventAndCallback("SPELL_UPDATE_COOLDOWN", function()
|
||||||
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
|
if pending then ScheduleReady() end
|
||||||
return
|
end)
|
||||||
end
|
|
||||||
|
|
||||||
|
pfUI.events:RegisterFrameEventAndCallback("COMBAT_LOG_EVENT_UNFILTERED", function()
|
||||||
-- Innervate is instant, so it logs SPELL_CAST_SUCCESS with its target
|
-- Innervate is instant, so it logs SPELL_CAST_SUCCESS with its target
|
||||||
-- arg2=subevent, arg4=sourceGUID, arg9=destName, arg12=spellId
|
local _, subevent, _, sourceGUID, _, _, _, _, destName, _, _, spellId = CombatLogGetCurrentEventInfo()
|
||||||
if arg2 ~= "SPELL_CAST_SUCCESS" or arg12 ~= INNERVATE_SPELLID then return end
|
if subevent ~= "SPELL_CAST_SUCCESS" or spellId ~= INNERVATE_SPELLID then return end
|
||||||
|
|
||||||
-- Only announce our own casts
|
-- Only announce our own casts
|
||||||
if not IsPlayerGuid(arg4) then return end
|
if not IsPlayerGuid(sourceGUID) then return end
|
||||||
local destName = arg9
|
|
||||||
|
|
||||||
-- Determine channel
|
-- Determine channel
|
||||||
local channel = GetAnnounceChannel()
|
local channel = GetAnnounceChannel()
|
||||||
|
|||||||
+94
-199
@@ -31,8 +31,9 @@ pfUI:RegisterModule("loot", function ()
|
|||||||
pfUI.loot.randoms = {}
|
pfUI.loot.randoms = {}
|
||||||
pfUI.loot.rollers = {}
|
pfUI.loot.rollers = {}
|
||||||
pfUI.loot.rollers_sorted = {}
|
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)
|
function pfUI.loot.RaidRoll(candidates)
|
||||||
if type(candidates) ~= "table" then return end
|
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]])
|
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)
|
-- fit the maximum names in a single 255 char message (15)
|
||||||
if i == to or k == 15 then
|
if i == to or k == 15 then
|
||||||
QueueFunction(SendChatMessageWide,names)
|
SendChatMessageWide(names)
|
||||||
names = ""
|
names = ""
|
||||||
end
|
end
|
||||||
k = k<15 and k+1 or 1
|
k = k<15 and k+1 or 1
|
||||||
@@ -57,10 +58,11 @@ pfUI:RegisterModule("loot", function ()
|
|||||||
end
|
end
|
||||||
pfUI.loot:RegisterEvent("CHAT_MSG_SYSTEM")
|
pfUI.loot:RegisterEvent("CHAT_MSG_SYSTEM")
|
||||||
pfUI.loot.randomRolling = true
|
pfUI.loot.randomRolling = true
|
||||||
QueueFunction(RandomRoll,"1",tostring(to))
|
RandomRoll("1",tostring(to))
|
||||||
end
|
end
|
||||||
end
|
end
|
||||||
|
|
||||||
|
-- the roll actions keep the menu open, so it can show the rolls coming in
|
||||||
function pfUI.loot.RequestRolls()
|
function pfUI.loot.RequestRolls()
|
||||||
local slot = pfUI.loot.selectedSlot or 0
|
local slot = pfUI.loot.selectedSlot or 0
|
||||||
local rollers = wipe(pfUI.loot.rollers)
|
local rollers = wipe(pfUI.loot.rollers)
|
||||||
@@ -68,58 +70,16 @@ pfUI:RegisterModule("loot", function ()
|
|||||||
SendChatMessageWide(T["Roll for"].. " " .. GetLootSlotLink(slot))
|
SendChatMessageWide(T["Roll for"].. " " .. GetLootSlotLink(slot))
|
||||||
pfUI.loot:RegisterEvent("CHAT_MSG_SYSTEM")
|
pfUI.loot:RegisterEvent("CHAT_MSG_SYSTEM")
|
||||||
pfUI.loot.monitorRolling = true
|
pfUI.loot.monitorRolling = true
|
||||||
UIDropDownMenu_Refresh(GroupLootDropDown)
|
RefreshMasterLootMenu()
|
||||||
end
|
return MenuResponse.Open
|
||||||
|
|
||||||
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
|
|
||||||
end
|
end
|
||||||
|
|
||||||
function pfUI.loot.ClearRolls()
|
function pfUI.loot.ClearRolls()
|
||||||
wipe(pfUI.loot.rollers)
|
wipe(pfUI.loot.rollers)
|
||||||
wipe(pfUI.loot.rollers_sorted)
|
wipe(pfUI.loot.rollers_sorted)
|
||||||
pfUI.loot.monitorRolling = nil
|
pfUI.loot.monitorRolling = nil
|
||||||
UIDropDownMenu_Refresh(GroupLootDropDown)
|
RefreshMasterLootMenu()
|
||||||
|
return MenuResponse.Open
|
||||||
end
|
end
|
||||||
|
|
||||||
function pfUI.loot.CallTieRoll(rollers)
|
function pfUI.loot.CallTieRoll(rollers)
|
||||||
@@ -148,69 +108,12 @@ pfUI:RegisterModule("loot", function ()
|
|||||||
pfUI.loot:RegisterEvent("CHAT_MSG_SYSTEM")
|
pfUI.loot:RegisterEvent("CHAT_MSG_SYSTEM")
|
||||||
pfUI.loot.monitorRolling = true
|
pfUI.loot.monitorRolling = true
|
||||||
end
|
end
|
||||||
UIDropDownMenu_Refresh(GroupLootDropDown)
|
RefreshMasterLootMenu()
|
||||||
|
return MenuResponse.Open
|
||||||
end
|
end
|
||||||
|
|
||||||
function pfUI.loot:BuildSpecialRollsMenu(level)
|
-- fills the candidate tables from the master loot candidates of the raid
|
||||||
local slot = pfUI.loot.selectedSlot or 0
|
local function UpdateRaidCandidates()
|
||||||
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
|
|
||||||
local index_to_name = wipe(pfUI.loot.index_to_name)
|
local index_to_name = wipe(pfUI.loot.index_to_name)
|
||||||
local name_to_index = wipe(pfUI.loot.name_to_index)
|
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
|
local classes_in_raid = wipe(pfUI.loot.classes_in_raid) -- [global class]=localized class for display
|
||||||
@@ -242,87 +145,95 @@ pfUI:RegisterModule("loot", function ()
|
|||||||
table.insert(players_in_class[unit.class],candidate)
|
table.insert(players_in_class[unit.class],candidate)
|
||||||
end
|
end
|
||||||
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
|
end
|
||||||
|
else
|
||||||
|
GiveMasterLoot(pfUI.loot.selectedSlot, index)
|
||||||
end
|
end
|
||||||
end
|
end
|
||||||
|
|
||||||
function pfUI.loot:BuildPartyMenu(level)
|
-- A party gets its candidates. A raid gets the advanced loot tools, then
|
||||||
local slot = pfUI.loot.selectedSlot or 0
|
-- a submenu of candidates per class.
|
||||||
if level == 1 then
|
local function GenerateMasterLootMenu(owner, rootDescription)
|
||||||
for i=1, MAX_PARTY_MEMBERS+1, 1 do
|
if not IsInRaid() then
|
||||||
|
for i=1, MAX_PARTY_MEMBERS+1 do
|
||||||
local candidate = GetMasterLootCandidate(i)
|
local candidate = GetMasterLootCandidate(i)
|
||||||
if (candidate) then
|
if (candidate) then
|
||||||
info = wipe(info)
|
|
||||||
local unit = GroupInfoByName(candidate,"party")
|
local unit = GroupInfoByName(candidate,"party")
|
||||||
info.text = candidate
|
rootDescription:CreateButton(PFUI_CLASS_COLORS[unit.class]:WrapTextInColorCode(candidate), GiveLoot, i)
|
||||||
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
|
end
|
||||||
info.textHeight = 12
|
end
|
||||||
info.value = i
|
return
|
||||||
info.func = GroupLootDropDown_GiveLoot
|
end
|
||||||
UIDropDownMenu_AddButton(info)
|
|
||||||
|
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
|
||||||
end
|
end
|
||||||
end
|
end
|
||||||
|
|
||||||
function pfUI.loot:InitGroupDropDown()
|
-- Opens the menu under the clicked loot button, which owns it. The slots
|
||||||
local inRaid = IsInRaid()
|
-- table is by row, not by loot slot, so after a looted item it no longer
|
||||||
if UIDROPDOWNMENU_MENU_LEVEL == 1 then
|
-- lines up with selectedSlot. Opening it again closes the one shown before.
|
||||||
if ( inRaid ) then
|
OpenMasterLootMenu = function()
|
||||||
pfUI.loot:BuildRaidMenu(UIDROPDOWNMENU_MENU_LEVEL)
|
local slot = pfUI.loot.selectedLootButton
|
||||||
else
|
local description = MenuUtil.CreateRootMenuDescription(pfUIMenuStyleMixin)
|
||||||
pfUI.loot:BuildPartyMenu(UIDROPDOWNMENU_MENU_LEVEL)
|
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
|
||||||
elseif UIDROPDOWNMENU_MENU_LEVEL == 2 and (inRaid) then
|
|
||||||
pfUI.loot:BuildRaidMenu(UIDROPDOWNMENU_MENU_LEVEL)
|
|
||||||
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
|
end
|
||||||
|
|
||||||
function pfUI.loot:AddMasterLootMenus()
|
function pfUI.loot:AddMasterLootMenus()
|
||||||
@@ -376,7 +287,6 @@ pfUI:RegisterModule("loot", function ()
|
|||||||
end
|
end
|
||||||
|
|
||||||
if C.loot.advancedloot == "1" then
|
if C.loot.advancedloot == "1" then
|
||||||
UIDropDownMenu_Initialize(GroupLootDropDown, pfUI.loot.InitGroupDropDown, "MENU")
|
|
||||||
for button, data in pairs(pfUI.loot.unitbuttons) do
|
for button, data in pairs(pfUI.loot.unitbuttons) do
|
||||||
UnitPopupButtons[button] = { text = data[1], dist = 0}
|
UnitPopupButtons[button] = { text = data[1], dist = 0}
|
||||||
end
|
end
|
||||||
@@ -413,7 +323,6 @@ pfUI:RegisterModule("loot", function ()
|
|||||||
end)
|
end)
|
||||||
else
|
else
|
||||||
pfUI.loot:RemoveMasterlootMenus()
|
pfUI.loot:RemoveMasterlootMenus()
|
||||||
UIDropDownMenu_Initialize(GroupLootDropDown, GroupLootDropDown_Initialize, "MENU")
|
|
||||||
end
|
end
|
||||||
|
|
||||||
pfUI.loot.slots = {}
|
pfUI.loot.slots = {}
|
||||||
@@ -506,8 +415,7 @@ pfUI:RegisterModule("loot", function ()
|
|||||||
|
|
||||||
local function CloseOnClick()
|
local function CloseOnClick()
|
||||||
local lootbind = StaticPopup_FindVisible("LOOT_BIND")
|
local lootbind = StaticPopup_FindVisible("LOOT_BIND")
|
||||||
local masterloot = UIDROPDOWNMENU_INIT_MENU and (UIDROPDOWNMENU_INIT_MENU == "GroupLootDropDown")
|
if lootbind or masterLootMenu then else CloseLoot() end
|
||||||
if lootbind or masterloot then else CloseLoot() end
|
|
||||||
end
|
end
|
||||||
|
|
||||||
function pfUI.loot:CreateSlot(id)
|
function pfUI.loot:CreateSlot(id)
|
||||||
@@ -531,7 +439,7 @@ pfUI:RegisterModule("loot", function ()
|
|||||||
|
|
||||||
StaticPopup_Hide("CONFIRM_LOOT_DISTRIBUTION")
|
StaticPopup_Hide("CONFIRM_LOOT_DISTRIBUTION")
|
||||||
local numItems = GetNumLootItems()
|
local numItems = GetNumLootItems()
|
||||||
pfUI.loot.selectedLootButton = this:GetName()
|
pfUI.loot.selectedLootButton = this
|
||||||
pfUI.loot.selectedSlot = this:GetID()
|
pfUI.loot.selectedSlot = this:GetID()
|
||||||
pfUI.loot.selectedQuality = this.quality
|
pfUI.loot.selectedQuality = this.quality
|
||||||
pfUI.loot.selectedItemName = this.name:GetText()
|
pfUI.loot.selectedItemName = this.name:GetText()
|
||||||
@@ -542,7 +450,7 @@ pfUI:RegisterModule("loot", function ()
|
|||||||
LootSlot(this:GetID())
|
LootSlot(this:GetID())
|
||||||
-- workaround for bugged disenchant / container loot on some servers
|
-- workaround for bugged disenchant / container loot on some servers
|
||||||
if numItems == 1 then
|
if numItems == 1 then
|
||||||
QueueFunction(CloseOnClick)
|
RunNextFrame(CloseOnClick)
|
||||||
end
|
end
|
||||||
end)
|
end)
|
||||||
|
|
||||||
@@ -622,11 +530,11 @@ pfUI:RegisterModule("loot", function ()
|
|||||||
|
|
||||||
pfUI.loot:SetScript("OnEvent", function()
|
pfUI.loot:SetScript("OnEvent", function()
|
||||||
if event == "OPEN_MASTER_LOOT_LIST" then
|
if event == "OPEN_MASTER_LOOT_LIST" then
|
||||||
ToggleDropDownMenu(1, nil, GroupLootDropDown, pfUI.loot.slots[pfUI.loot.selectedSlot], 0, 0)
|
OpenMasterLootMenu()
|
||||||
end
|
end
|
||||||
|
|
||||||
if event == "UPDATE_MASTER_LOOT_LIST" then
|
if event == "UPDATE_MASTER_LOOT_LIST" then
|
||||||
UIDropDownMenu_Refresh(GroupLootDropDown)
|
RefreshMasterLootMenu()
|
||||||
end
|
end
|
||||||
|
|
||||||
if event == "LOOT_OPENED" then
|
if event == "LOOT_OPENED" then
|
||||||
@@ -657,7 +565,6 @@ pfUI:RegisterModule("loot", function ()
|
|||||||
if event == "LOOT_CLOSED" then
|
if event == "LOOT_CLOSED" then
|
||||||
StaticPopup_Hide("LOOT_BIND")
|
StaticPopup_Hide("LOOT_BIND")
|
||||||
HideUIPanel(this)
|
HideUIPanel(this)
|
||||||
if DropDownList1:IsShown() then CloseDropDownMenus() end
|
|
||||||
for _, v in pairs(this.slots) do
|
for _, v in pairs(this.slots) do
|
||||||
v:Hide()
|
v:Hide()
|
||||||
end
|
end
|
||||||
@@ -689,7 +596,7 @@ pfUI:RegisterModule("loot", function ()
|
|||||||
table.sort(pfUI.loot.rollers_sorted,function(a,b)
|
table.sort(pfUI.loot.rollers_sorted,function(a,b)
|
||||||
return a.roll > b.roll
|
return a.roll > b.roll
|
||||||
end)
|
end)
|
||||||
QueueFunction(UIDropDownMenu_Refresh,GroupLootDropDown)
|
RefreshMasterLootMenu()
|
||||||
end
|
end
|
||||||
end
|
end
|
||||||
|
|
||||||
@@ -697,7 +604,7 @@ pfUI:RegisterModule("loot", function ()
|
|||||||
if C.loot.autopickup == "1" and GetNumPartyMembers() == 0 and GetNumRaidMembers() == 0 then
|
if C.loot.autopickup == "1" and GetNumPartyMembers() == 0 and GetNumRaidMembers() == 0 then
|
||||||
if event == "LOOT_BIND_CONFIRM" then
|
if event == "LOOT_BIND_CONFIRM" then
|
||||||
local slot = arg1
|
local slot = arg1
|
||||||
QueueFunction(function()
|
RunNextFrame(function()
|
||||||
LootSlot(slot)
|
LootSlot(slot)
|
||||||
StaticPopup_Hide("LOOT_BIND")
|
StaticPopup_Hide("LOOT_BIND")
|
||||||
end)
|
end)
|
||||||
@@ -712,18 +619,6 @@ pfUI:RegisterModule("loot", function ()
|
|||||||
LootFrame:UnregisterAllEvents()
|
LootFrame:UnregisterAllEvents()
|
||||||
table.insert(UISpecialFrames, "pfLootFrame")
|
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)
|
StaticPopupDialogs["CONFIRM_LOOT_DISTRIBUTION"].OnAccept = function(data)
|
||||||
GiveMasterLoot(pfUI.loot.selectedSlot, data)
|
GiveMasterLoot(pfUI.loot.selectedSlot, data)
|
||||||
end
|
end
|
||||||
|
|||||||
+74
-109
@@ -1,9 +1,9 @@
|
|||||||
pfUI:RegisterModule("loothistory", function ()
|
pfUI:RegisterModule("loothistory", function ()
|
||||||
local rawborder, border = GetBorderSize()
|
local rawborder, border = GetBorderSize()
|
||||||
|
|
||||||
-- Layout
|
-- Layout (rows are 2px apart)
|
||||||
local ITEM_H, PLAYER_H = 24, 18
|
local ITEM_H, PLAYER_H = 24, 16
|
||||||
local ITEM_W, PLAYER_W = 350, 330
|
local PLAYER_INDENT = 18
|
||||||
|
|
||||||
-- rollType constants returned by C_LootHistory.GetPlayerInfo (0/1/2; vanilla
|
-- rollType constants returned by C_LootHistory.GetPlayerInfo (0/1/2; vanilla
|
||||||
-- has no disenchant roll).
|
-- has no disenchant roll).
|
||||||
@@ -86,30 +86,24 @@ pfUI:RegisterModule("loothistory", function ()
|
|||||||
pfUI.loothistory.clear:SetText(T["Clear"])
|
pfUI.loothistory.clear:SetText(T["Clear"])
|
||||||
pfUI.loothistory.clear:SetScript("OnClick", function() C_LootHistory.Clear() end)
|
pfUI.loothistory.clear:SetScript("OnClick", function() C_LootHistory.Clear() end)
|
||||||
|
|
||||||
-- scroll frame
|
-- ==========================================================================
|
||||||
pfUI.loothistory.scroll = CreateScrollFrame("pfLootHistoryScroll", pfUI.loothistory)
|
-- List: a row per item and, under an expanded item, a row per player
|
||||||
pfUI.loothistory.scroll:SetSize(360, 440)
|
-- ==========================================================================
|
||||||
pfUI.loothistory.scroll:SetPoint("BOTTOM", 0, 10)
|
local list = CreateFrame("Frame", "pfLootHistoryList", pfUI.loothistory, "pfUIScrollBoxListTemplate")
|
||||||
|
list:SetSize(370, 450)
|
||||||
pfUI.loothistory.scroll.backdrop = CreateFrame("Frame", nil, pfUI.loothistory.scroll)
|
list:SetPoint("BOTTOM", 0, 5)
|
||||||
pfUI.loothistory.scroll.backdrop:SetFrameLevel(1)
|
CreateBackdrop(list, nil, true)
|
||||||
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)
|
|
||||||
pfUI.loothistory.list = list
|
pfUI.loothistory.list = list
|
||||||
|
|
||||||
-- ==========================================================================
|
|
||||||
-- Frame pools
|
|
||||||
-- ==========================================================================
|
|
||||||
local itemFrames = {}
|
|
||||||
|
|
||||||
local FullUpdate -- forward declaration (toggle handlers call it)
|
local FullUpdate -- forward declaration (toggle handlers call it)
|
||||||
|
|
||||||
local function CreateItemFrame()
|
local function ToggleExpanded(f)
|
||||||
local f = CreateFrame("Button", nil, list)
|
local id = f.rollID
|
||||||
f:SetSize(ITEM_W, ITEM_H)
|
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:SetBackdrop(pfUI.backdrop_hover)
|
||||||
f:SetBackdropBorderColor(1, 1, 1, .04)
|
f:SetBackdropBorderColor(1, 1, 1, .04)
|
||||||
f:EnableMouse(1)
|
f:EnableMouse(1)
|
||||||
@@ -118,10 +112,7 @@ pfUI:RegisterModule("loothistory", function ()
|
|||||||
f.toggle = CreateFrame("Button", nil, f)
|
f.toggle = CreateFrame("Button", nil, f)
|
||||||
f.toggle:SetSize(14, 14)
|
f.toggle:SetSize(14, 14)
|
||||||
f.toggle:SetPoint("LEFT", 4, 0)
|
f.toggle:SetPoint("LEFT", 4, 0)
|
||||||
f.toggle:SetScript("OnClick", function()
|
f.toggle:SetScript("OnClick", function() ToggleExpanded(f) end)
|
||||||
local id = f.rollID
|
|
||||||
if id then expanded[id] = not expanded[id]; FullUpdate() end
|
|
||||||
end)
|
|
||||||
|
|
||||||
-- icon + quality-colored border
|
-- icon + quality-colored border
|
||||||
f.iconbg = CreateFrame("Frame", nil, f)
|
f.iconbg = CreateFrame("Frame", nil, f)
|
||||||
@@ -138,18 +129,18 @@ pfUI:RegisterModule("loothistory", function ()
|
|||||||
f.winicon:SetSize(14, 14)
|
f.winicon:SetSize(14, 14)
|
||||||
f.winicon:SetPoint("RIGHT", f, "RIGHT", -6, 0)
|
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:SetFont(pfUI.font_default, C.global.font_size, "OUTLINE")
|
||||||
f.winroll:SetPoint("RIGHT", f.winicon, "LEFT", -2, 0)
|
f.winroll:SetPoint("RIGHT", f.winicon, "LEFT", -2, 0)
|
||||||
f.winroll:SetTextColor(1, 1, 1, 1)
|
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:SetFont(pfUI.font_default, C.global.font_size, "OUTLINE")
|
||||||
f.winname:SetPoint("RIGHT", f.winroll, "LEFT", -4, 0)
|
f.winname:SetPoint("RIGHT", f.winroll, "LEFT", -4, 0)
|
||||||
f.winname:SetJustifyH("RIGHT")
|
f.winname:SetJustifyH("RIGHT")
|
||||||
|
|
||||||
-- item name (leaves room on the right for the winner block)
|
-- 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:SetFont(pfUI.font_default, C.global.font_size, "OUTLINE")
|
||||||
f.name:SetPoint("LEFT", f.iconbg, "RIGHT", 5, 0)
|
f.name:SetPoint("LEFT", f.iconbg, "RIGHT", 5, 0)
|
||||||
f.name:SetPoint("RIGHT", f, "RIGHT", -100, 0)
|
f.name:SetPoint("RIGHT", f, "RIGHT", -100, 0)
|
||||||
@@ -167,20 +158,13 @@ pfUI:RegisterModule("loothistory", function ()
|
|||||||
this:SetBackdropBorderColor(1, 1, 1, .04)
|
this:SetBackdropBorderColor(1, 1, 1, .04)
|
||||||
GameTooltip:Hide()
|
GameTooltip:Hide()
|
||||||
end)
|
end)
|
||||||
f:SetScript("OnClick", function()
|
f:SetScript("OnClick", function() ToggleExpanded(f) end)
|
||||||
local id = this.rollID
|
|
||||||
if id then expanded[id] = not expanded[id]; FullUpdate() end
|
|
||||||
end)
|
|
||||||
|
|
||||||
return f
|
|
||||||
end
|
end
|
||||||
|
|
||||||
local function CreatePlayerFrame()
|
-- one-time setup of a pooled player row
|
||||||
local f = CreateFrame("Frame", nil, list)
|
local function SetupPlayerRow(f)
|
||||||
f:SetSize(PLAYER_W, PLAYER_H)
|
|
||||||
|
|
||||||
-- name is indented to leave room for the winner checkmark on its left
|
-- 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:SetFont(pfUI.font_default, C.global.font_size, "OUTLINE")
|
||||||
f.name:SetPoint("LEFT", 20, 0)
|
f.name:SetPoint("LEFT", 20, 0)
|
||||||
f.name:SetJustifyH("LEFT")
|
f.name:SetJustifyH("LEFT")
|
||||||
@@ -189,7 +173,7 @@ pfUI:RegisterModule("loothistory", function ()
|
|||||||
f.rollicon:SetSize(16, 16)
|
f.rollicon:SetSize(16, 16)
|
||||||
f.rollicon:SetPoint("RIGHT", -4, 0)
|
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:SetFont(pfUI.font_default, C.global.font_size, "OUTLINE")
|
||||||
f.rolltext:SetPoint("RIGHT", f.rollicon, "LEFT", -3, 0)
|
f.rolltext:SetPoint("RIGHT", f.rollicon, "LEFT", -3, 0)
|
||||||
f.rolltext:SetTextColor(1, 1, 1, 1)
|
f.rolltext:SetTextColor(1, 1, 1, 1)
|
||||||
@@ -199,15 +183,8 @@ pfUI:RegisterModule("loothistory", function ()
|
|||||||
f.winmark:SetSize(16, 16)
|
f.winmark:SetSize(16, 16)
|
||||||
f.winmark:SetTexture(WINMARK)
|
f.winmark:SetTexture(WINMARK)
|
||||||
f.winmark:SetPoint("RIGHT", f.name, "LEFT", -1, 0)
|
f.winmark:SetPoint("RIGHT", f.name, "LEFT", -1, 0)
|
||||||
|
|
||||||
return f
|
|
||||||
end
|
end
|
||||||
|
|
||||||
local playerPool = CreateObjectPool(CreatePlayerFrame, function(_, pf)
|
|
||||||
pf:Hide()
|
|
||||||
pf:ClearAllPoints()
|
|
||||||
end)
|
|
||||||
|
|
||||||
local function SetToggleTexture(toggle, isExpanded)
|
local function SetToggleTexture(toggle, isExpanded)
|
||||||
if isExpanded then
|
if isExpanded then
|
||||||
toggle:SetNormalTexture("Interface\\Buttons\\UI-MinusButton-Up")
|
toggle:SetNormalTexture("Interface\\Buttons\\UI-MinusButton-Up")
|
||||||
@@ -221,35 +198,29 @@ pfUI:RegisterModule("loothistory", function ()
|
|||||||
-- ==========================================================================
|
-- ==========================================================================
|
||||||
-- Rendering
|
-- Rendering
|
||||||
-- ==========================================================================
|
-- ==========================================================================
|
||||||
local function UpdateItemFrame(f, i)
|
local function InitItemRow(f, row)
|
||||||
local rollID, itemLink, numPlayers, isDone, winnerIdx = C_LootHistory.GetItem(i)
|
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.rollID = rollID
|
||||||
f.itemIdx = i
|
|
||||||
f.itemLink = itemLink
|
f.itemLink = itemLink
|
||||||
f.numPlayers = numPlayers or 0
|
|
||||||
f.isDone = isDone
|
|
||||||
|
|
||||||
local isExpanded = rollID and expanded[rollID]
|
local isExpanded = rollID and expanded[rollID]
|
||||||
SetToggleTexture(f.toggle, isExpanded)
|
SetToggleTexture(f.toggle, isExpanded)
|
||||||
|
|
||||||
-- Item icon/name/quality via the ClassicAPI Item mixin. When the item
|
-- Item icon/name/quality via the ClassicAPI Item mixin. The row shows a
|
||||||
-- isn't cached yet, show a placeholder and re-paint this row from the
|
-- placeholder until ContinueOnItemLoad paints it, which happens at once
|
||||||
-- ContinueOnItemLoad callback (guarded on rollID: rows are pooled, so the
|
-- 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).
|
-- 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)
|
ShowRetrieving(f)
|
||||||
|
if itemLink then
|
||||||
|
local item = Item:CreateFromItemLink(itemLink)
|
||||||
local pending = rollID
|
local pending = rollID
|
||||||
item:ContinueOnItemLoad(function()
|
item:ContinueOnItemLoad(function()
|
||||||
if f.rollID == pending then RenderItemVisual(f, item) end
|
if f.rollID == pending then RenderItemVisual(f, item) end
|
||||||
end)
|
end)
|
||||||
end
|
end
|
||||||
else
|
|
||||||
ShowRetrieving(f)
|
|
||||||
end
|
|
||||||
|
|
||||||
-- winner summary only on a decided, collapsed row
|
-- winner summary only on a decided, collapsed row
|
||||||
if isDone and not isExpanded then
|
if isDone and not isExpanded then
|
||||||
@@ -279,16 +250,35 @@ pfUI:RegisterModule("loothistory", function ()
|
|||||||
end
|
end
|
||||||
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:SetText(name or UNKNOWN)
|
||||||
pf.name:SetTextColor(PFUI_CLASS_COLORS[class]:GetRGB())
|
pf.name:SetTextColor(PFUI_CLASS_COLORS[class]:GetRGB())
|
||||||
|
|
||||||
pf.rollicon:SetTexture(ROLL_TEX[rollType] or ROLL_TEX[ROLL_PASS])
|
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 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
|
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),
|
-- 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'
|
-- or afterwards only if they actually rolled or it's you (hide the passers'
|
||||||
-- noise on a decided roll) — mirrors Blizzard's ShouldDisplayPlayer.
|
-- noise on a decided roll) — mirrors Blizzard's ShouldDisplayPlayer.
|
||||||
@@ -298,46 +288,23 @@ pfUI:RegisterModule("loothistory", function ()
|
|||||||
|
|
||||||
function FullUpdate()
|
function FullUpdate()
|
||||||
if not pfUI.loothistory:IsShown() then return end
|
if not pfUI.loothistory:IsShown() then return end
|
||||||
playerPool:ReleaseAll()
|
|
||||||
|
|
||||||
local num = C_LootHistory.GetNumItems()
|
local rows = {}
|
||||||
local y = -2
|
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
|
if rollID and expanded[rollID] then
|
||||||
local f = itemFrames[i] or CreateItemFrame()
|
for p = 1, numPlayers or 0 do
|
||||||
itemFrames[i] = f
|
local _, _, _, roll, _, isMe = C_LootHistory.GetPlayerInfo(i, p)
|
||||||
UpdateItemFrame(f, i)
|
if ShouldDisplayPlayer(isDone, roll, isMe) then
|
||||||
f:ClearAllPoints()
|
table.insert(rows, { item = i, player = p })
|
||||||
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
|
|
||||||
end
|
end
|
||||||
end
|
end
|
||||||
y = y - 2
|
|
||||||
end
|
end
|
||||||
end
|
end
|
||||||
|
|
||||||
for i = num + 1, table.getn(itemFrames) do
|
list.ScrollBox:SetDataProvider(CreateDataProvider(rows), ScrollBoxConstants.RetainScrollPosition)
|
||||||
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()
|
|
||||||
end
|
end
|
||||||
|
|
||||||
pfUI.loothistory:SetScript("OnShow", function() FullUpdate() end)
|
pfUI.loothistory:SetScript("OnShow", function() FullUpdate() end)
|
||||||
@@ -345,20 +312,18 @@ pfUI:RegisterModule("loothistory", function ()
|
|||||||
-- ==========================================================================
|
-- ==========================================================================
|
||||||
-- Events
|
-- 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
|
-- auto-show on a new roll opening / completing, if enabled
|
||||||
if C.loothistory.autoshow == "1"
|
local function AutoShow()
|
||||||
and (event == "LOOT_HISTORY_FULL_UPDATE" or event == "LOOT_HISTORY_ROLL_COMPLETE")
|
if C.loothistory.autoshow == "1" and not pfUI.loothistory:IsShown() then
|
||||||
and not pfUI.loothistory:IsShown() then
|
|
||||||
pfUI.loothistory:Show() -- OnShow runs FullUpdate
|
pfUI.loothistory:Show() -- OnShow runs FullUpdate
|
||||||
return
|
return
|
||||||
end
|
end
|
||||||
FullUpdate() -- no-op while hidden
|
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
|
-- 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
|
-- on both the modern (Turtle/Octo) and stock-vanilla macro UIs. The surrounding
|
||||||
-- MacroFrame (list + body editor) is Blizzard's, already skinned elsewhere.
|
-- MacroFrame (list + body editor) is Blizzard's, already skinned elsewhere.
|
||||||
pfUI:RegisterModule("macroicons", function ()
|
pfUI:RegisterModule("macroicons", function ()
|
||||||
HookAddonOrVariable("Blizzard_MacroUI", function()
|
HookAddon("Blizzard_MacroUI", function()
|
||||||
-- ============================================================
|
-- ============================================================
|
||||||
-- Popup frame
|
-- Popup frame
|
||||||
-- ============================================================
|
-- ============================================================
|
||||||
|
|||||||
+8
-5
@@ -33,6 +33,10 @@ pfUI:RegisterModule("map", function ()
|
|||||||
local alpha = C.position["WorldMapFrame"].alpha
|
local alpha = C.position["WorldMapFrame"].alpha
|
||||||
local scale = C.position["WorldMapFrame"].scale
|
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")
|
local pfMapLoader = CreateFrame("Frame")
|
||||||
pfMapLoader:RegisterEvent("PLAYER_ENTERING_WORLD")
|
pfMapLoader:RegisterEvent("PLAYER_ENTERING_WORLD")
|
||||||
pfMapLoader:SetScript("OnEvent", function()
|
pfMapLoader:SetScript("OnEvent", function()
|
||||||
@@ -46,9 +50,8 @@ pfUI:RegisterModule("map", function ()
|
|||||||
WorldMapFrame:EnableMouse(true)
|
WorldMapFrame:EnableMouse(true)
|
||||||
WorldMapFrame:RegisterForDrag("LeftButton")
|
WorldMapFrame:RegisterForDrag("LeftButton")
|
||||||
|
|
||||||
-- make sure the hooks get only applied once
|
if not hooked then
|
||||||
if not this.hooked then
|
hooked = true
|
||||||
this.hooked = true
|
|
||||||
|
|
||||||
WorldMapFrame:HookScript("OnShow", function()
|
WorldMapFrame:HookScript("OnShow", function()
|
||||||
-- customize
|
-- customize
|
||||||
@@ -64,14 +67,14 @@ pfUI:RegisterModule("map", function ()
|
|||||||
|
|
||||||
WorldMapFrame:HookScript("OnMouseWheel", function()
|
WorldMapFrame:HookScript("OnMouseWheel", function()
|
||||||
if IsShiftKeyDown() then
|
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)
|
WorldMapFrame:SetAlpha(alpha)
|
||||||
end
|
end
|
||||||
|
|
||||||
if IsControlKeyDown() then
|
if IsControlKeyDown() then
|
||||||
local oldscale = WorldMapFrame:GetScale()
|
local oldscale = WorldMapFrame:GetScale()
|
||||||
local point, rel, relpoint, offx, offy = WorldMapFrame:GetPoint()
|
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
|
-- recalculate world frame position based on old and new scale
|
||||||
if point == "TOPLEFT" and relpoint == "TOPLEFT" then
|
if point == "TOPLEFT" and relpoint == "TOPLEFT" then
|
||||||
|
|||||||
@@ -138,7 +138,7 @@ pfUI:RegisterModule("mapcolors", function ()
|
|||||||
end
|
end
|
||||||
|
|
||||||
-- BattlefieldMinimap
|
-- BattlefieldMinimap
|
||||||
HookAddonOrVariable("Blizzard_BattlefieldMinimap", function()
|
HookAddon("Blizzard_BattlefieldMinimap", function()
|
||||||
Initialize('BattlefieldMinimap')
|
Initialize('BattlefieldMinimap')
|
||||||
|
|
||||||
hooksecurefunc('BattlefieldMinimap_OnUpdate', function()
|
hooksecurefunc('BattlefieldMinimap_OnUpdate', function()
|
||||||
|
|||||||
@@ -180,7 +180,7 @@ pfUI:RegisterModule("mapreveal", function ()
|
|||||||
-- above, so nothing is redrawn while the map is closed — the next open
|
-- above, so nothing is redrawn while the map is closed — the next open
|
||||||
-- rebuilds from the current state.
|
-- rebuilds from the current state.
|
||||||
|
|
||||||
EventRegistry:RegisterFrameEventAndCallback("MAP_EXPLORATION_UPDATED", function()
|
pfUI.events:RegisterFrameEventAndCallback("MAP_EXPLORATION_UPDATED", function()
|
||||||
if WorldMapFrame and WorldMapFrame:IsShown() then
|
if WorldMapFrame and WorldMapFrame:IsShown() then
|
||||||
pfWorldMapFrame_Update()
|
pfWorldMapFrame_Update()
|
||||||
end
|
end
|
||||||
|
|||||||
@@ -258,9 +258,7 @@ pfUI.marktracking = CreateFrame("Frame", "pfMarkTracking", UIParent)
|
|||||||
|
|
||||||
-- Unlock mode: show fixed 1-row placeholder so positioning works correctly
|
-- Unlock mode: show fixed 1-row placeholder so positioning works correctly
|
||||||
if pfUI.unlock then
|
if pfUI.unlock then
|
||||||
local origShow = pfUI.unlock:GetScript("OnShow")
|
pfUI.unlock:HookScript("OnShow", function()
|
||||||
pfUI.unlock:SetScript("OnShow", function()
|
|
||||||
if origShow then origShow() end
|
|
||||||
isUnlocked = true
|
isUnlocked = true
|
||||||
-- hide all rows, show container at 1-row height as drag handle
|
-- hide all rows, show container at 1-row height as drag handle
|
||||||
for i = 1, 8 do
|
for i = 1, 8 do
|
||||||
@@ -270,9 +268,7 @@ pfUI.marktracking = CreateFrame("Frame", "pfMarkTracking", UIParent)
|
|||||||
pfUI.marktracking:Show()
|
pfUI.marktracking:Show()
|
||||||
end)
|
end)
|
||||||
|
|
||||||
local origHide = pfUI.unlock:GetScript("OnHide")
|
pfUI.unlock:HookScript("OnHide", function()
|
||||||
pfUI.unlock:SetScript("OnHide", function()
|
|
||||||
if origHide then origHide() end
|
|
||||||
isUnlocked = false
|
isUnlocked = false
|
||||||
UpdateDisplay()
|
UpdateDisplay()
|
||||||
end)
|
end)
|
||||||
|
|||||||
+1
-1
@@ -18,7 +18,7 @@ pfUI:RegisterModule("minimap", function ()
|
|||||||
pfUI.minimap:SetPoint("TOPRIGHT", UIParent, -border*2, -border*2)
|
pfUI.minimap:SetPoint("TOPRIGHT", UIParent, -border*2, -border*2)
|
||||||
UpdateMovable(pfUI.minimap)
|
UpdateMovable(pfUI.minimap)
|
||||||
pfUI.minimap:SetScript("OnShow", function()
|
pfUI.minimap:SetScript("OnShow", function()
|
||||||
QueueFunction(ShowUIPanel, Minimap)
|
RunNextFrame(function() ShowUIPanel(Minimap) end)
|
||||||
end)
|
end)
|
||||||
|
|
||||||
Minimap:SetParent(pfUI.minimap)
|
Minimap:SetParent(pfUI.minimap)
|
||||||
|
|||||||
+49
-98
@@ -130,8 +130,8 @@ pfUI:RegisterModule("nameplates", function ()
|
|||||||
cfg.targetcastbar = C.nameplates["targetcastbar"] == "1"
|
cfg.targetcastbar = C.nameplates["targetcastbar"] == "1"
|
||||||
cfg.notargalpha = tonumber(C.nameplates.notargalpha) or 0.5
|
cfg.notargalpha = tonumber(C.nameplates.notargalpha) or 0.5
|
||||||
if cfg.notargalpha > 1 then cfg.notargalpha = cfg.notargalpha / 100 end
|
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)
|
-- Clamp to 1.0 so a 100% setting yields full opacity (target detection is GUID-based)
|
||||||
if cfg.notargalpha > 0.99 then cfg.notargalpha = 0.99 end
|
if cfg.notargalpha > 1 then cfg.notargalpha = 1 end
|
||||||
cfg.namefightcolor = C.nameplates.namefightcolor == "1"
|
cfg.namefightcolor = C.nameplates.namefightcolor == "1"
|
||||||
cfg.spellname = C.nameplates.spellname == "1"
|
cfg.spellname = C.nameplates.spellname == "1"
|
||||||
cfg.showhp = C.nameplates.showhp == "1"
|
cfg.showhp = C.nameplates.showhp == "1"
|
||||||
@@ -155,10 +155,6 @@ pfUI:RegisterModule("nameplates", function ()
|
|||||||
cfg.use_unitfonts = C.nameplates.use_unitfonts == "1"
|
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.font_size = cfg.use_unitfonts and C.global.font_unit_size or C.global.font_size
|
||||||
cfg.hptextformat = C.nameplates.hptextformat
|
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.
|
-- Throttle delays, resolved once instead of per plate per tick.
|
||||||
-- libthrottle:Get walks the saved-variable table, a defaults fallback and a
|
-- 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]:SetFrameLevel(4)
|
||||||
|
|
||||||
plate.debuffs[index].icon = plate.debuffs[index]:CreateTexture(nil, "BACKGROUND")
|
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].icon:SetAllPoints(plate.debuffs[index])
|
||||||
|
|
||||||
plate.debuffs[index].stacks = plate.debuffs[index]:CreateFontString(nil, "OVERLAY")
|
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:SetJustifyV("BOTTOM")
|
||||||
plate.debuffs[index].stacks:SetTextColor(1,1,0)
|
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)
|
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
|
end
|
||||||
|
|
||||||
local function UpdateDebuffConfig(nameplate, i)
|
local function UpdateDebuffConfig(nameplate, i)
|
||||||
@@ -479,15 +470,6 @@ pfUI:RegisterModule("nameplates", function ()
|
|||||||
end
|
end
|
||||||
|
|
||||||
nameplate.debuffs[i]:SetSize(debuffsize, debuffsize)
|
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
|
end
|
||||||
|
|
||||||
-- create nameplate core
|
-- create nameplate core
|
||||||
@@ -504,7 +486,7 @@ nameplates:RegisterEvent("NAME_PLATE_CREATED")
|
|||||||
nameplates:RegisterEvent("NAME_PLATE_UNIT_ADDED")
|
nameplates:RegisterEvent("NAME_PLATE_UNIT_ADDED")
|
||||||
nameplates:RegisterEvent("NAME_PLATE_UNIT_REMOVED")
|
nameplates:RegisterEvent("NAME_PLATE_UNIT_REMOVED")
|
||||||
nameplates:RegisterEvent("UPDATE_MOUSEOVER_UNIT")
|
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
|
-- plate's own frame, against its own token -- see OnCreate and
|
||||||
-- NAME_PLATE_UNIT_ADDED.
|
-- NAME_PLATE_UNIT_ADDED.
|
||||||
nameplates:RegisterEvent("PLAYER_GUILD_UPDATE")
|
nameplates:RegisterEvent("PLAYER_GUILD_UPDATE")
|
||||||
@@ -519,9 +501,6 @@ nameplates:RegisterUnitEvent("UNIT_SPELLCAST_NOT_INTERRUPTIBLE", "target", "focu
|
|||||||
this:UnregisterAllEvents()
|
this:UnregisterAllEvents()
|
||||||
this:SetScript("OnEvent", nil)
|
this:SetScript("OnEvent", nil)
|
||||||
this:SetScript("OnUpdate", 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
|
-- The plates hold their own unit subscriptions now, so silencing this
|
||||||
-- frame alone would leave them dispatching through logout -- exactly what
|
-- frame alone would leave them dispatching through logout -- exactly what
|
||||||
-- this branch exists to prevent. Leaving the world destroys the units
|
-- this branch exists to prevent. Leaving the world destroys the units
|
||||||
@@ -612,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
|
-- Point this plate's own subscriptions at the token it just took. On a
|
||||||
-- recycled frame these replace the previous unit rather than stacking:
|
-- recycled frame these replace the previous unit rather than stacking:
|
||||||
-- RegisterUnitEvent on an already-filtered registration swaps the units.
|
-- 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_FLAGS", arg1)
|
||||||
|
plate.nameplate:RegisterUnitEvent("UNIT_TARGET", arg1)
|
||||||
plate.nameplate:RegisterUnitEvent("UNIT_SPELLCAST_START", arg1)
|
plate.nameplate:RegisterUnitEvent("UNIT_SPELLCAST_START", arg1)
|
||||||
plate.nameplate:RegisterUnitEvent("UNIT_SPELLCAST_CHANNEL_START", arg1)
|
plate.nameplate:RegisterUnitEvent("UNIT_SPELLCAST_CHANNEL_START", arg1)
|
||||||
plate.nameplate:RegisterUnitEvent("UNIT_SPELLCAST_STOP", arg1)
|
plate.nameplate:RegisterUnitEvent("UNIT_SPELLCAST_STOP", arg1)
|
||||||
@@ -765,12 +745,20 @@ nameplates:RegisterUnitEvent("UNIT_SPELLCAST_NOT_INTERRUPTIBLE", "target", "focu
|
|||||||
-- new token; _REMOVED drops it, which matters because freed slots are
|
-- new token; _REMOVED drops it, which matters because freed slots are
|
||||||
-- reused and a stale token would feed this frame another unit's events.
|
-- reused and a stale token would feed this frame another unit's events.
|
||||||
nameplate:SetScript("OnEvent", function()
|
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
|
-- a fresh C_UnitAuras read next tick rather than waiting out the 0.5s
|
||||||
-- throttle -- covers expiry, dispels, refreshes and stack changes
|
-- throttle -- covers expiry, dispels, refreshes and stack changes
|
||||||
this.auraUpdate = true
|
this.auraUpdate = true
|
||||||
elseif event == "UNIT_FLAGS" then
|
elseif event == "UNIT_FLAGS" then
|
||||||
this.eventcache = true
|
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
|
elseif event == "UNIT_SPELLCAST_START" or event == "UNIT_SPELLCAST_CHANNEL_START" then
|
||||||
-- the payload carries no timing, so poll it (PollCastInfo picks cast
|
-- the payload carries no timing, so poll it (PollCastInfo picks cast
|
||||||
-- vs channel)
|
-- vs channel)
|
||||||
@@ -869,11 +857,11 @@ nameplates:RegisterUnitEvent("UNIT_SPELLCAST_NOT_INTERRUPTIBLE", "target", "focu
|
|||||||
combopoints[i].tex:SetAllPoints()
|
combopoints[i].tex:SetAllPoints()
|
||||||
|
|
||||||
if i < 3 then
|
if i < 3 then
|
||||||
combopoints[i].tex:SetTexture(1, .3, .3, .75)
|
combopoints[i].tex:SetColorTexture(1, .3, .3, .75)
|
||||||
elseif i < 4 then
|
elseif i < 4 then
|
||||||
combopoints[i].tex:SetTexture(1, 1, .3, .75)
|
combopoints[i].tex:SetColorTexture(1, 1, .3, .75)
|
||||||
else
|
else
|
||||||
combopoints[i].tex:SetTexture(.3, 1, .3, .75)
|
combopoints[i].tex:SetColorTexture(.3, 1, .3, .75)
|
||||||
end
|
end
|
||||||
end
|
end
|
||||||
nameplate.combopoints = combopoints
|
nameplate.combopoints = combopoints
|
||||||
@@ -1037,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 "??"
|
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*
|
-- 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
|
-- name — name alone misses pool reuse between same-named units.
|
||||||
-- 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.
|
|
||||||
-- Wipe the whole cache table: the PERF gates below ("only update X when
|
-- 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
|
-- X changed") would otherwise skip bar/color/text updates when the new
|
||||||
-- unit happens to share a cached value with the previous occupant
|
-- unit happens to share a cached value with the previous occupant
|
||||||
@@ -1062,27 +1048,26 @@ nameplates:RegisterUnitEvent("UNIT_SPELLCAST_NOT_INTERRUPTIBLE", "target", "focu
|
|||||||
if event == "PLAYER_TARGET_CHANGED" then unitstr = nil end
|
if event == "PLAYER_TARGET_CHANGED" then unitstr = nil end
|
||||||
|
|
||||||
-- remove unitstr when it doesn't resolve to this plate's unit (stale istarget,
|
-- 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
|
-- stale mouseover guid or a despawned unit)
|
||||||
-- below -- an unrelated unitstr would poison cache.player/minion with the
|
|
||||||
-- *other* unit's answer, and the nil-gate would then never recompute it.
|
|
||||||
if unitstr and UnitName(unitstr) ~= name then unitstr = nil end
|
if unitstr and UnitName(unitstr) ~= name then unitstr = nil end
|
||||||
|
|
||||||
-- resolve player vs npc from plate's own unit so libunitscan can't return
|
-- the plate's own unit token says who it is; a player too high to show a
|
||||||
-- a player record for an NPC sharing the same name (e.g. Chromie). Stored
|
-- level keeps the one the player database last saw
|
||||||
-- as true/false/nil so it doubles as the GetUnitInfo hint.
|
local unit = plate.unit
|
||||||
if plate.cache.player == nil and unitstr then
|
local player, class, elite, guild, ulevel
|
||||||
plate.cache.player = UnitIsPlayer(unitstr) and true or false
|
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
|
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
|
local levelFromDB = false
|
||||||
if level == "??" and ulevel and ulevel > 0 then
|
if level == "??" and ulevel and ulevel > 0 then
|
||||||
level = ulevel
|
level = ulevel
|
||||||
@@ -1092,13 +1077,9 @@ nameplates:RegisterUnitEvent("UNIT_SPELLCAST_NOT_INTERRUPTIBLE", "target", "focu
|
|||||||
local unittype = GetUnitType(plate)
|
local unittype = GetUnitType(plate)
|
||||||
local font_size = C.nameplates.use_unitfonts == "1" and C.global.font_unit_size or C.global.font_size
|
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 == "ENEMY_NPC" then unittype = "ENEMY_PLAYER" end
|
||||||
if player and unittype == "FRIENDLY_NPC" then unittype = "FRIENDLY_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
|
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
|
-- skip data updates on invisible frames
|
||||||
if not visible then return end
|
if not visible then return end
|
||||||
@@ -1216,7 +1197,6 @@ nameplates:RegisterUnitEvent("UNIT_SPELLCAST_NOT_INTERRUPTIBLE", "target", "focu
|
|||||||
|
|
||||||
if cfg.showhp then
|
if cfg.showhp then
|
||||||
local rhp, rhpmax, estimated
|
local rhp, rhpmax, estimated
|
||||||
local unit = plate.unit
|
|
||||||
if unit then
|
if unit then
|
||||||
local npHp = UnitHealth(unit)
|
local npHp = UnitHealth(unit)
|
||||||
local npMaxHp = UnitHealthMax(unit)
|
local npMaxHp = UnitHealthMax(unit)
|
||||||
@@ -1381,7 +1361,7 @@ nameplates:RegisterUnitEvent("UNIT_SPELLCAST_NOT_INTERRUPTIBLE", "target", "focu
|
|||||||
plate.debuffs[index].stacks:Hide()
|
plate.debuffs[index].stacks:Hide()
|
||||||
end
|
end
|
||||||
|
|
||||||
if duration and timeleft and cfg.debufftimers then
|
if duration and timeleft then
|
||||||
-- C_UnitAuras returns the Spell.dbc base duration, which talents
|
-- C_UnitAuras returns the Spell.dbc base duration, which talents
|
||||||
-- can extend past — Shadow Affinity bumps SW:P from 18s to 24s,
|
-- can extend past — Shadow Affinity bumps SW:P from 18s to 24s,
|
||||||
-- so a fresh cast has timeleft > duration and `now + timeleft -
|
-- so a fresh cast has timeleft > duration and `now + timeleft -
|
||||||
@@ -1396,14 +1376,6 @@ nameplates:RegisterUnitEvent("UNIT_SPELLCAST_NOT_INTERRUPTIBLE", "target", "focu
|
|||||||
local cd = plate.debuffs[index].cd
|
local cd = plate.debuffs[index].cd
|
||||||
cd:Show()
|
cd:Show()
|
||||||
if not cachedStart or abs(cachedStart - newStart) > 0.5 then
|
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)
|
CooldownFrame_SetTimer(cd, newStart, effDuration, 1)
|
||||||
plate.cdCache[index] = plate.cdCache[index] or {}
|
plate.cdCache[index] = plate.cdCache[index] or {}
|
||||||
plate.cdCache[index].effect = effect
|
plate.cdCache[index].effect = effect
|
||||||
@@ -1445,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
|
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
|
-- 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)
|
-- and immediately correct on de-target (unlike istarget which updates one tick later)
|
||||||
local targetGuid = state and state.targetGuid
|
local targetGuid = state and state.targetGuid
|
||||||
local target = (targetGuid and nameplate.cachedGuid and targetGuid == nameplate.cachedGuid) or
|
local target = (targetGuid and nameplate.cachedGuid and targetGuid == nameplate.cachedGuid) or nil
|
||||||
(state and state.targetGuid and frame:GetAlpha() >= 0.99) or nil
|
|
||||||
-- Target plate castbar runs on its own dedicated frame (nameplates.castbarFrame).
|
-- Target plate castbar runs on its own dedicated frame (nameplates.castbarFrame).
|
||||||
-- For non-target plates with castbar active, use castbar throttle to ensure
|
-- For non-target plates with castbar active, use castbar throttle to ensure
|
||||||
-- smooth animation without overloading the central loop.
|
-- smooth animation without overloading the central loop.
|
||||||
@@ -1497,7 +1468,6 @@ nameplates:RegisterUnitEvent("UNIT_SPELLCAST_NOT_INTERRUPTIBLE", "target", "focu
|
|||||||
|
|
||||||
local update
|
local update
|
||||||
local original = nameplate.original
|
local original = nameplate.original
|
||||||
local name = original.name:GetText()
|
|
||||||
local mouseover = nameplate.cachedGuid and nameplate.cachedGuid == frameState.mouseoverGuid or nil
|
local mouseover = nameplate.cachedGuid and nameplate.cachedGuid == frameState.mouseoverGuid or nil
|
||||||
|
|
||||||
-- trigger queued event update
|
-- trigger queued event update
|
||||||
@@ -1581,16 +1551,6 @@ nameplates:RegisterUnitEvent("UNIT_SPELLCAST_NOT_INTERRUPTIBLE", "target", "focu
|
|||||||
update = true
|
update = true
|
||||||
end
|
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).
|
-- trigger update when name color changed (includes combat state check).
|
||||||
-- Skipped once OnDataChanged owns the name colour (class-coloured friendly
|
-- Skipped once OnDataChanged owns the name colour (class-coloured friendly
|
||||||
-- players), so the two writers cannot overwrite each other.
|
-- players), so the two writers cannot overwrite each other.
|
||||||
@@ -1930,9 +1890,7 @@ nameplates:RegisterUnitEvent("UNIT_SPELLCAST_NOT_INTERRUPTIBLE", "target", "focu
|
|||||||
end
|
end
|
||||||
|
|
||||||
-- enable mouselook on rightbutton down
|
-- enable mouselook on rightbutton down
|
||||||
nameplates.mouselook = CreateFrame("Frame", nil, UIParent)
|
nameplates.mouselook = {}
|
||||||
nameplates.mouselook.time = nil
|
|
||||||
nameplates.mouselook.frame = nil
|
|
||||||
nameplates.mouselook.OnMouseDown = function()
|
nameplates.mouselook.OnMouseDown = function()
|
||||||
if arg1 and arg1 == "RightButton" then
|
if arg1 and arg1 == "RightButton" then
|
||||||
MouselookStart()
|
MouselookStart()
|
||||||
@@ -1940,30 +1898,23 @@ nameplates:RegisterUnitEvent("UNIT_SPELLCAST_NOT_INTERRUPTIBLE", "target", "focu
|
|||||||
-- start detection of the rightclick emulation
|
-- start detection of the rightclick emulation
|
||||||
nameplates.mouselook.time = GetTime()
|
nameplates.mouselook.time = GetTime()
|
||||||
nameplates.mouselook.frame = this
|
nameplates.mouselook.frame = this
|
||||||
nameplates.mouselook:Show()
|
|
||||||
end
|
end
|
||||||
end
|
end
|
||||||
|
|
||||||
nameplates.mouselook:SetScript("OnUpdate", function()
|
-- releasing the button ends the mouselook. GLOBAL_MOUSE_UP fires for every
|
||||||
-- break here if nothing to do
|
-- release, while PLAYER_STOPPED_LOOKING needs the camera to have moved, and
|
||||||
if not this.time or not this.frame then
|
-- a click doesn't move it.
|
||||||
this:Hide()
|
pfUI.events:RegisterFrameEventAndCallback("GLOBAL_MOUSE_UP", function(_, button)
|
||||||
return
|
local mouselook = nameplates.mouselook
|
||||||
end
|
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
|
|
||||||
|
|
||||||
|
-- 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
|
-- run a usual nameplate rightclick action
|
||||||
if not IsMouselooking() then
|
mouselook.frame:Click("LeftButton")
|
||||||
this.frame:Click("LeftButton")
|
|
||||||
if UnitCanAttack("player", "target") and not nameplates.combat.inCombat then AttackTarget() end
|
if UnitCanAttack("player", "target") and not nameplates.combat.inCombat then AttackTarget() end
|
||||||
this:Hide()
|
|
||||||
return
|
|
||||||
end
|
end
|
||||||
|
mouselook.frame = nil
|
||||||
end)
|
end)
|
||||||
|
|
||||||
pfUI.nameplates = nameplates
|
pfUI.nameplates = nameplates
|
||||||
|
|||||||
+1
-13
@@ -41,19 +41,7 @@ pfUI:RegisterModule("nampower", function ()
|
|||||||
local NON_GCD_QUEUED = 4
|
local NON_GCD_QUEUED = 4
|
||||||
local NON_GCD_QUEUE_POPPED = 5
|
local NON_GCD_QUEUE_POPPED = 5
|
||||||
|
|
||||||
local queue = CreateFrame("Frame")
|
pfUI.events:RegisterFrameEventAndCallback("SPELL_QUEUE_EVENT", function(_, eventCode, spellId)
|
||||||
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
|
|
||||||
|
|
||||||
if eventCode == NORMAL_QUEUED or eventCode == NON_GCD_QUEUED or eventCode == ON_SWING_QUEUED then
|
if eventCode == NORMAL_QUEUED or eventCode == NON_GCD_QUEUED or eventCode == ON_SWING_QUEUED then
|
||||||
local texture = C_Spell.GetSpellTexture(spellId)
|
local texture = C_Spell.GetSpellTexture(spellId)
|
||||||
if texture then
|
if texture then
|
||||||
|
|||||||
+1
-1
@@ -57,7 +57,7 @@ pfUI:RegisterModule("newitem", function ()
|
|||||||
pfUI.newitem:UpdateSlot(bag, slot)
|
pfUI.newitem:UpdateSlot(bag, slot)
|
||||||
end)
|
end)
|
||||||
|
|
||||||
EventRegistry:RegisterFrameEventAndCallback("BAG_NEW_ITEMS_UPDATED", function()
|
pfUI.events:RegisterFrameEventAndCallback("BAG_NEW_ITEMS_UPDATED", function()
|
||||||
pfUI.newitem:RefreshAll()
|
pfUI.newitem:RefreshAll()
|
||||||
end)
|
end)
|
||||||
|
|
||||||
|
|||||||
+56
-12
@@ -105,11 +105,12 @@ pfUI:RegisterModule("panel", function()
|
|||||||
|
|
||||||
do -- FPS & Lag
|
do -- FPS & Lag
|
||||||
local widget = CreateFrame("Frame", "pfPanelWidgetLag", UIParent)
|
local widget = CreateFrame("Frame", "pfPanelWidgetLag", UIParent)
|
||||||
local lag, fps, laghex, fpshex, _
|
local lag, fps, laghex, fpshex, owner, _
|
||||||
widget.Tooltip = function()
|
widget.Tooltip = function(self)
|
||||||
|
owner = self
|
||||||
local active = 0
|
local active = 0
|
||||||
GameTooltip:ClearLines()
|
GameTooltip:ClearLines()
|
||||||
GameTooltip_SetDefaultAnchor(GameTooltip, this)
|
GameTooltip_SetDefaultAnchor(GameTooltip, self)
|
||||||
GameTooltip:AddLine("|cff555555" .. T["Systeminfo"])
|
GameTooltip:AddLine("|cff555555" .. T["Systeminfo"])
|
||||||
for i=1, GetNumAddOns() do
|
for i=1, GetNumAddOns() do
|
||||||
if IsAddOnLoaded(i) then
|
if IsAddOnLoaded(i) then
|
||||||
@@ -128,6 +129,51 @@ pfUI:RegisterModule("panel", function()
|
|||||||
GameTooltip:AddLine(" ")
|
GameTooltip:AddLine(" ")
|
||||||
GameTooltip:AddDoubleLine(T["Memory Usage"], "|cffffffff" .. memmb)
|
GameTooltip:AddDoubleLine(T["Memory Usage"], "|cffffffff" .. memmb)
|
||||||
GameTooltip:AddDoubleLine(T["Next Memory Cleanup"], "|cffffffff" .. gcmb)
|
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:AddLine(" ")
|
||||||
GameTooltip:AddDoubleLine(T["Network Down"], "|cffffffff" .. round(nin,1) .. "KB/s")
|
GameTooltip:AddDoubleLine(T["Network Down"], "|cffffffff" .. round(nin,1) .. "KB/s")
|
||||||
GameTooltip:AddDoubleLine(T["Network Up"], "|cffffffff" .. round(nout,1) .. "KB/s")
|
GameTooltip:AddDoubleLine(T["Network Up"], "|cffffffff" .. round(nout,1) .. "KB/s")
|
||||||
@@ -157,6 +203,10 @@ pfUI:RegisterModule("panel", function()
|
|||||||
end
|
end
|
||||||
|
|
||||||
pfUI.panel:OutputPanel("fps", fps .. " " .. T["fps"] .. " & " .. lag .. " " .. T["ms"], widget.Tooltip, widget.Click)
|
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)
|
||||||
end
|
end
|
||||||
|
|
||||||
@@ -525,19 +575,13 @@ pfUI:RegisterModule("panel", function()
|
|||||||
blindpowder = 5530
|
blindpowder = 5530
|
||||||
}
|
}
|
||||||
|
|
||||||
|
-- runs at once when the item is cached
|
||||||
local function AddItemToPanel(panelType)
|
local function AddItemToPanel(panelType)
|
||||||
local itemID = itemIDs[panelType]
|
local item = Item:CreateFromItemID(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()
|
item:ContinueOnItemLoad(function()
|
||||||
local itemName, count = item:GetItemName(), C_Item.GetItemCount(item:GetItemID())
|
pfUI.panel:OutputPanel(panelType, item:GetItemName() .. ": " .. C_Item.GetItemCount(item:GetItemID()))
|
||||||
pfUI.panel:OutputPanel(panelType, itemName .. ": " .. count)
|
|
||||||
end)
|
end)
|
||||||
end
|
end
|
||||||
end
|
|
||||||
|
|
||||||
local class = UnitClassBase('player')
|
local class = UnitClassBase('player')
|
||||||
if class == "WARLOCK" then
|
if class == "WARLOCK" then
|
||||||
|
|||||||
@@ -3,7 +3,7 @@ pfUI:RegisterModule("pettarget", function ()
|
|||||||
if C.unitframes.disable == "1" then return end
|
if C.unitframes.disable == "1" then return end
|
||||||
local rawborder, default_border = GetBorderSize("unitframes")
|
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:UpdateFrameSize()
|
||||||
pfUI.uf.pettarget:SetPoint("TOP", pfUI.uf.pet or pfUI.uf.target or UIParent, "BOTTOM", 0, -default_border)
|
pfUI.uf.pettarget:SetPoint("TOP", pfUI.uf.pet or pfUI.uf.target or UIParent, "BOTTOM", 0, -default_border)
|
||||||
UpdateMovable(pfUI.uf.pettarget)
|
UpdateMovable(pfUI.uf.pettarget)
|
||||||
|
|||||||
@@ -33,9 +33,7 @@ pfUI:RegisterModule("pixelperfect", function ()
|
|||||||
|
|
||||||
-- pixelperfect: native UIScale listener
|
-- pixelperfect: native UIScale listener
|
||||||
if tonumber(C.global.pixelperfect) > 0 then
|
if tonumber(C.global.pixelperfect) > 0 then
|
||||||
local f = CreateFrame("Frame")
|
pfUI.events:RegisterFrameEventAndCallback("PLAYER_ENTERING_WORLD", pixelperfect)
|
||||||
f:RegisterEvent("PLAYER_ENTERING_WORLD")
|
|
||||||
f:SetScript("OnEvent", pixelperfect)
|
|
||||||
pixelperfect()
|
pixelperfect()
|
||||||
end
|
end
|
||||||
|
|
||||||
|
|||||||
+8
-4
@@ -61,7 +61,7 @@ pfUI:RegisterModule("player", function ()
|
|||||||
MAGE = 7, WARLOCK = 6,
|
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 function UpdateInfoText()
|
||||||
local cfg = playerFrame.config
|
local cfg = playerFrame.config
|
||||||
if not cfg then
|
if not cfg then
|
||||||
@@ -124,9 +124,13 @@ pfUI:RegisterModule("player", function ()
|
|||||||
end)
|
end)
|
||||||
end
|
end
|
||||||
|
|
||||||
-- Haste / spell-power overlay text — refreshes 4×/sec on its own ticker,
|
-- PLAYER_DAMAGE_DONE_MODS fires on the MOD_DAMAGE_DONE fields that
|
||||||
-- independent of the unit frame's OnUpdate cadence.
|
-- GetSpellBonusDamage reads, so gear, buffs and talents all reach it.
|
||||||
C_Timer.NewTicker(0.25, UpdateInfoText)
|
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
|
-- Replace default's RESET_INSTANCES button with an always working one
|
||||||
UnitPopupButtons["RESET_INSTANCES_FIX"] = { text = RESET_INSTANCES, dist = 0 }
|
UnitPopupButtons["RESET_INSTANCES_FIX"] = { text = RESET_INSTANCES, dist = 0 }
|
||||||
|
|||||||
+23
-27
@@ -74,39 +74,35 @@ pfUI:RegisterModule("questitem", function ()
|
|||||||
frame:Show()
|
frame:Show()
|
||||||
end
|
end
|
||||||
|
|
||||||
pfUI.questitem = CreateFrame("Frame", "pfQuestItemScanner", UIParent)
|
-- Seed half a second after the last trigger; each trigger pushes it back.
|
||||||
pfUI.questitem:RegisterEvent("PLAYER_ENTERING_WORLD")
|
local seeding, timer
|
||||||
pfUI.questitem:RegisterEvent("QUEST_LOG_UPDATE")
|
local function QueueSeed()
|
||||||
pfUI.questitem:RegisterEvent("QUEST_ACCEPTED")
|
|
||||||
pfUI.questitem:RegisterEvent("QUEST_REMOVED")
|
|
||||||
pfUI.questitem:SetScript("OnEvent", function()
|
|
||||||
if C.tooltip.questitem.showquest ~= "1" then return end
|
if C.tooltip.questitem.showquest ~= "1" then return end
|
||||||
if event == "QUEST_ACCEPTED" then -- arg1 = logIndex, arg2 = questID
|
seeding = true
|
||||||
if not AddQuest(arg2) then -- cache cold (rare) -> reseed
|
if timer then timer:Cancel() end
|
||||||
this.seeding = true
|
timer = C_Timer.NewTimer(.5, function()
|
||||||
this.run = GetTime() + .5
|
if Seed() then seeding = nil end
|
||||||
end
|
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
|
||||||
|
|
||||||
|
-- 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)
|
end)
|
||||||
|
|
||||||
pfUI.questitem:SetScript("OnUpdate", function()
|
-- a cold cache (rare) needs a full reseed
|
||||||
if not this.run or GetTime() < this.run then return end
|
pfUI.events:RegisterFrameEventAndCallback("QUEST_ACCEPTED", function(_, _, questID)
|
||||||
this.run = nil
|
if not AddQuest(questID) then QueueSeed() end
|
||||||
if Seed() then this.seeding = nil end
|
|
||||||
end)
|
end)
|
||||||
|
|
||||||
pfUI.questitem.UpdateConfig = function()
|
pfUI.events:RegisterFrameEventAndCallback("QUEST_REMOVED", function(_, questID)
|
||||||
if C.tooltip.questitem.showquest ~= "1" then return end
|
RemoveQuest(questID)
|
||||||
pfUI.questitem.seeding = true
|
end)
|
||||||
pfUI.questitem.run = GetTime() + .5
|
|
||||||
end
|
pfUI.questitem = { UpdateConfig = QueueSeed }
|
||||||
|
|
||||||
pfUI.questitem.tooltip = CreateFrame("Frame", "pfQuestItems", GameTooltip)
|
pfUI.questitem.tooltip = CreateFrame("Frame", "pfQuestItems", GameTooltip)
|
||||||
pfUI.questitem.tooltip:SetScript("OnShow", function()
|
pfUI.questitem.tooltip:SetScript("OnShow", function()
|
||||||
|
|||||||
@@ -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
|
||||||
|
CreateMenuDivider(rootDescription)
|
||||||
|
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
|
if C.unitframes.disable == "1" then return end
|
||||||
|
|
||||||
-- tell RaidFrame.lua pfUI replaces party frames
|
-- 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
|
-- must reach _G: RaidFrame.lua reads this global, and pfUI.env has
|
||||||
-- __index but no __newindex, so a bare assignment stays in the sandbox
|
-- __index but no __newindex, so a bare assignment stays in the sandbox
|
||||||
_G.GROUP_REPLACE_PARTY = "1"
|
_G.GROUP_REPLACE_PARTY = "1"
|
||||||
@@ -117,7 +117,7 @@ pfUI:RegisterModule("raid", function ()
|
|||||||
|
|
||||||
self:LayoutPets()
|
self:LayoutPets()
|
||||||
|
|
||||||
self:Show()
|
self:QueueUpdate(0)
|
||||||
end
|
end
|
||||||
|
|
||||||
function pfUI.uf.raid:LayoutPets()
|
function pfUI.uf.raid:LayoutPets()
|
||||||
@@ -177,6 +177,12 @@ pfUI:RegisterModule("raid", function ()
|
|||||||
end
|
end
|
||||||
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()
|
pfUI.uf.raid:UpdateConfig()
|
||||||
|
|
||||||
local function SetRaidIndex(frame, id)
|
local function SetRaidIndex(frame, id)
|
||||||
@@ -205,7 +211,6 @@ pfUI:RegisterModule("raid", function ()
|
|||||||
end
|
end
|
||||||
end
|
end
|
||||||
|
|
||||||
pfUI.uf.raid:Hide()
|
|
||||||
pfUI.uf.raid:RegisterEvent("RAID_ROSTER_UPDATE")
|
pfUI.uf.raid:RegisterEvent("RAID_ROSTER_UPDATE")
|
||||||
pfUI.uf.raid:RegisterEvent("PARTY_MEMBERS_CHANGED")
|
pfUI.uf.raid:RegisterEvent("PARTY_MEMBERS_CHANGED")
|
||||||
pfUI.uf.raid:RegisterEvent("PARTY_LEADER_CHANGED")
|
pfUI.uf.raid:RegisterEvent("PARTY_LEADER_CHANGED")
|
||||||
@@ -218,23 +223,15 @@ pfUI:RegisterModule("raid", function ()
|
|||||||
end
|
end
|
||||||
return
|
return
|
||||||
end
|
end
|
||||||
this:Show()
|
|
||||||
-- Debounce: delay update by 0.5s to batch rapid roster changes (mass swaps)
|
-- Debounce: delay update by 0.5s to batch rapid roster changes (mass swaps)
|
||||||
this.pendingUpdate = GetTime() + 0.5
|
this:QueueUpdate(.5)
|
||||||
end)
|
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
|
-- 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.
|
-- grid still needs its pet frames placed and mapped to the party pets.
|
||||||
if not IsInRaid() then
|
if not IsInRaid() then
|
||||||
this:LayoutPets()
|
self:LayoutPets()
|
||||||
this:Hide()
|
|
||||||
return
|
return
|
||||||
end
|
end
|
||||||
|
|
||||||
@@ -257,7 +254,7 @@ pfUI:RegisterModule("raid", function ()
|
|||||||
end
|
end
|
||||||
end
|
end
|
||||||
|
|
||||||
this:LayoutPets()
|
self:LayoutPets()
|
||||||
|
|
||||||
-- Smart GUID-based updates: only refresh frames where unit changed
|
-- Smart GUID-based updates: only refresh frames where unit changed
|
||||||
if pfUI.uf.guidTracker then
|
if pfUI.uf.guidTracker then
|
||||||
@@ -284,9 +281,7 @@ pfUI:RegisterModule("raid", function ()
|
|||||||
if pfUI.uf.RebuildUnitmap then
|
if pfUI.uf.RebuildUnitmap then
|
||||||
pfUI.uf.RebuildUnitmap()
|
pfUI.uf.RebuildUnitmap()
|
||||||
end
|
end
|
||||||
|
end
|
||||||
this:Hide()
|
|
||||||
end)
|
|
||||||
|
|
||||||
-- raid popup option to toggle tank role
|
-- raid popup option to toggle tank role
|
||||||
for _, menu in pairs({"RAID", "PARTY"}) do
|
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
|
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.tankrole[name] = not pfUI.uf.raid.tankrole[name]
|
||||||
pfUI.uf.raid:Show()
|
pfUI.uf.raid:QueueUpdate(0)
|
||||||
end
|
end
|
||||||
end)
|
end)
|
||||||
end)
|
end)
|
||||||
+18
-33
@@ -205,36 +205,23 @@ pfUI:RegisterModule("share", function ()
|
|||||||
table.insert(UISpecialFrames, "pfShare")
|
table.insert(UISpecialFrames, "pfShare")
|
||||||
|
|
||||||
do -- Edit Box
|
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("TOPLEFT", f, "TOPLEFT", 10, -30)
|
||||||
f.scroll:SetPoint("BOTTOMRIGHT", f, "BOTTOMRIGHT", -10, 50)
|
f.scroll:SetPoint("BOTTOMRIGHT", f, "BOTTOMRIGHT", -10, 50)
|
||||||
f.scroll:SetWidth(560)
|
f.scroll:SetFont(pfUI.media["font:RobotoMono.ttf"], 9)
|
||||||
f.scroll:SetHeight(400)
|
f.scroll:SetTextInsets(15,15,15,15)
|
||||||
|
|
||||||
f.scroll.backdrop = CreateFrame("Frame", "pfShareScrollBackdrop", f.scroll)
|
-- the ScrollBox clips its children, so the backdrop is a sibling
|
||||||
f.scroll.backdrop:SetFrameLevel(1)
|
f.scroll.backdrop = CreateFrame("Frame", "pfShareScrollBackdrop", f)
|
||||||
f.scroll.backdrop:SetPoint("TOPLEFT", f.scroll, "TOPLEFT", -5, 5)
|
f.scroll.backdrop:SetPoint("TOPLEFT", f.scroll, "TOPLEFT", -5, 5)
|
||||||
f.scroll.backdrop:SetPoint("BOTTOMRIGHT", f.scroll, "BOTTOMRIGHT", 5, -5)
|
f.scroll.backdrop:SetPoint("BOTTOMRIGHT", f.scroll, "BOTTOMRIGHT", 5, -5)
|
||||||
pfUI.api.CreateBackdrop(f.scroll.backdrop, nil, true)
|
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:RegisterCallback("OnTextChanged", function()
|
||||||
f.scroll.text.bg = f.scroll.text:CreateTexture(nil, "OVERLAY")
|
local text = f.scroll:GetText()
|
||||||
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()
|
|
||||||
local blob = Decode(text)
|
local blob = Decode(text)
|
||||||
local json = not blob and DecodeJSON(text) or nil
|
local json = not blob and DecodeJSON(text) or nil
|
||||||
local legacy = not blob and not json and DecodeLegacy(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:Enable()
|
||||||
f.readButton.text:SetText(T["Decode"])
|
f.readButton.text:SetText(T["Decode"])
|
||||||
f.readButton.func = function()
|
f.readButton.func = function()
|
||||||
local current = f.scroll.text:GetText()
|
local current = f.scroll:GetText()
|
||||||
local config = Decode(current) or DecodeLegacy(current)
|
local config = Decode(current) or DecodeLegacy(current)
|
||||||
if config then
|
if config then
|
||||||
f.scroll.text:SetText(C_EncodingUtil.SerializeJSON(config))
|
f.scroll:SetText(C_EncodingUtil.SerializeJSON(config))
|
||||||
end
|
end
|
||||||
end
|
end
|
||||||
elseif json then
|
elseif json then
|
||||||
f.readButton:Enable()
|
f.readButton:Enable()
|
||||||
f.readButton.text:SetText(T["Encode"])
|
f.readButton.text:SetText(T["Encode"])
|
||||||
f.readButton.func = function()
|
f.readButton.func = function()
|
||||||
local config = DecodeJSON(f.scroll.text:GetText())
|
local config = DecodeJSON(f.scroll:GetText())
|
||||||
if config then
|
if config then
|
||||||
f.scroll.text:SetText(Encode(config))
|
f.scroll:SetText(Encode(config))
|
||||||
end
|
end
|
||||||
end
|
end
|
||||||
else
|
else
|
||||||
f.readButton:Disable()
|
f.readButton:Disable()
|
||||||
f.readButton.text:SetText(T["N/A"])
|
f.readButton.text:SetText(T["N/A"])
|
||||||
end
|
end
|
||||||
end)
|
end, f)
|
||||||
f.scroll:SetScrollChild(f.scroll.text)
|
|
||||||
end
|
end
|
||||||
|
|
||||||
do -- button: close
|
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:SetFont(pfUI.font_default, pfUI_config.global.font_size, "OUTLINE")
|
||||||
f.loadButton.text:SetText(T["Import"])
|
f.loadButton.text:SetText(T["Import"])
|
||||||
f.loadButton:SetScript("OnClick", function()
|
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)
|
local config = Decode(text) or DecodeJSON(text) or DecodeLegacy(text)
|
||||||
if not config then return end
|
if not config then return end
|
||||||
|
|
||||||
@@ -383,9 +369,8 @@ pfUI:RegisterModule("share", function ()
|
|||||||
ignored["disabled"] = f.ignorePosition:GetChecked()
|
ignored["disabled"] = f.ignorePosition:GetChecked()
|
||||||
|
|
||||||
local encoded = Encode(DiffConfig(myconfig, defconfig, ignored) or {})
|
local encoded = Encode(DiffConfig(myconfig, defconfig, ignored) or {})
|
||||||
f.scroll.text:SetText(encoded)
|
f.scroll:SetText(encoded)
|
||||||
f.scroll.text.value = encoded
|
CopyText(encoded)
|
||||||
f.scroll:SetVerticalScroll(0)
|
|
||||||
end)
|
end)
|
||||||
end
|
end
|
||||||
|
|
||||||
|
|||||||
+56
-12
@@ -15,18 +15,6 @@ pfUI:RegisterModule("skin", function ()
|
|||||||
DurabilityFrame:SetFrameLevel(1)
|
DurabilityFrame:SetFrameLevel(1)
|
||||||
DurabilityFrame.SetPoint = function() return end
|
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
|
for i = 1, UIDROPDOWNMENU_MAXLEVELS do
|
||||||
CreateBackdrop(_G["DropDownList"..i.."MenuBackdrop"], nil, true, .8)
|
CreateBackdrop(_G["DropDownList"..i.."MenuBackdrop"], nil, true, .8)
|
||||||
CreateBackdropShadow(_G["DropDownList"..i.."MenuBackdrop"])
|
CreateBackdropShadow(_G["DropDownList"..i.."MenuBackdrop"])
|
||||||
@@ -35,6 +23,62 @@ pfUI:RegisterModule("skin", function ()
|
|||||||
CreateBackdropShadow(_G["DropDownList"..i.."Backdrop"])
|
CreateBackdropShadow(_G["DropDownList"..i.."Backdrop"])
|
||||||
end
|
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
|
if C.global.errors_limit == "1" then
|
||||||
UIErrorsFrame:SetHeight(25)
|
UIErrorsFrame:SetHeight(25)
|
||||||
end
|
end
|
||||||
|
|||||||
+7
-16
@@ -79,7 +79,7 @@ pfUI:RegisterModule("superwow", function ()
|
|||||||
-- SuperWoW release past 1.5
|
-- SuperWoW release past 1.5
|
||||||
local swVersion = tonumber(SUPERWOW_VERSION)
|
local swVersion = tonumber(SUPERWOW_VERSION)
|
||||||
if swVersion and swVersion >= 1.5 then
|
if swVersion and swVersion >= 1.5 then
|
||||||
QueueFunction(function()
|
RunNextFrame(function()
|
||||||
local pfCombatText_AddMessage = _G.CombatText_AddMessage
|
local pfCombatText_AddMessage = _G.CombatText_AddMessage
|
||||||
_G.CombatText_AddMessage = function(message, a, b, c, d, e, f)
|
_G.CombatText_AddMessage = function(message, a, b, c, d, e, f)
|
||||||
local match, _, hex = string.find(message, ".+ %[(0x.+)%]")
|
local match, _, hex = string.find(message, ".+ %[(0x.+)%]")
|
||||||
@@ -95,20 +95,7 @@ pfUI:RegisterModule("superwow", function ()
|
|||||||
-- TrackUnit API for adding group members to minimap
|
-- TrackUnit API for adding group members to minimap
|
||||||
-- Tracks friendly units on the minimap for easier group coordination
|
-- Tracks friendly units on the minimap for easier group coordination
|
||||||
if TrackUnit and C.unitframes.track_group == "1" then
|
if TrackUnit and C.unitframes.track_group == "1" then
|
||||||
local trackFrame = CreateFrame("Frame")
|
local function TrackGroup()
|
||||||
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
|
|
||||||
|
|
||||||
-- Track party members
|
-- Track party members
|
||||||
for i = 1, 4 do
|
for i = 1, 4 do
|
||||||
local unit = "party" .. i
|
local unit = "party" .. i
|
||||||
@@ -124,7 +111,11 @@ pfUI:RegisterModule("superwow", function ()
|
|||||||
pcall(TrackUnit, unit)
|
pcall(TrackUnit, unit)
|
||||||
end
|
end
|
||||||
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
|
end
|
||||||
|
|
||||||
-- Raid Marker Targeting API
|
-- Raid Marker Targeting API
|
||||||
|
|||||||
+50
-20
@@ -23,8 +23,13 @@ pfUI:RegisterModule("swingtimer", function ()
|
|||||||
useSpellQueueEvent = false,
|
useSpellQueueEvent = false,
|
||||||
swingThrottle = 0,
|
swingThrottle = 0,
|
||||||
onSwingCache = {},
|
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.
|
-- On-next-swing spells replace the next auto-attack swing.
|
||||||
-- Covers Raptor Strike, Maul, Mongoose Bite, Holy Strike, etc. automatically.
|
-- Covers Raptor Strike, Maul, Mongoose Bite, Holy Strike, etc. automatically.
|
||||||
local function IsOnSwingSpell(spellId)
|
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 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 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 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 isHunter = UnitClassBase("player") == "HUNTER"
|
||||||
local mhDefaultR, mhDefaultG, mhDefaultB = mhR, mhG, mhB
|
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 = 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:SetWidth(2)
|
||||||
pfUI.swingtimer.mainhand.marker:SetHeight(sw_height)
|
pfUI.swingtimer.mainhand.marker:SetHeight(sw_height)
|
||||||
pfUI.swingtimer.mainhand.marker:Hide()
|
pfUI.swingtimer.mainhand.marker:Hide()
|
||||||
|
|
||||||
-- Left glow: fades from transparent to white (right edge = marker)
|
-- Left glow: fades from transparent to white (right edge = marker)
|
||||||
pfUI.swingtimer.mainhand.markerGlowL = pfUI.swingtimer.mainhand:CreateTexture(nil, "OVERLAY")
|
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:SetGradientAlpha("HORIZONTAL", 1, 1, 1, 0, 1, 1, 1, 0.35)
|
||||||
pfUI.swingtimer.mainhand.markerGlowL:SetWidth(10)
|
pfUI.swingtimer.mainhand.markerGlowL:SetWidth(10)
|
||||||
pfUI.swingtimer.mainhand.markerGlowL:SetHeight(sw_height)
|
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)
|
-- Right glow: fades from white to transparent (left edge = marker)
|
||||||
pfUI.swingtimer.mainhand.markerGlowR = pfUI.swingtimer.mainhand:CreateTexture(nil, "OVERLAY")
|
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:SetGradientAlpha("HORIZONTAL", 1, 1, 1, 0.35, 1, 1, 1, 0)
|
||||||
pfUI.swingtimer.mainhand.markerGlowR:SetWidth(10)
|
pfUI.swingtimer.mainhand.markerGlowR:SetWidth(10)
|
||||||
pfUI.swingtimer.mainhand.markerGlowR:SetHeight(sw_height)
|
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 = 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:SetWidth(2)
|
||||||
pfUI.swingtimer.offhand.marker:SetHeight(sw_height)
|
pfUI.swingtimer.offhand.marker:SetHeight(sw_height)
|
||||||
pfUI.swingtimer.offhand.marker:Hide()
|
pfUI.swingtimer.offhand.marker:Hide()
|
||||||
|
|
||||||
-- Left glow: fades from transparent to white (right edge = marker)
|
-- Left glow: fades from transparent to white (right edge = marker)
|
||||||
pfUI.swingtimer.offhand.markerGlowL = pfUI.swingtimer.offhand:CreateTexture(nil, "OVERLAY")
|
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:SetGradientAlpha("HORIZONTAL", 1, 1, 1, 0, 1, 1, 1, 0.35)
|
||||||
pfUI.swingtimer.offhand.markerGlowL:SetWidth(10)
|
pfUI.swingtimer.offhand.markerGlowL:SetWidth(10)
|
||||||
pfUI.swingtimer.offhand.markerGlowL:SetHeight(sw_height)
|
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)
|
-- Right glow: fades from white to transparent (left edge = marker)
|
||||||
pfUI.swingtimer.offhand.markerGlowR = pfUI.swingtimer.offhand:CreateTexture(nil, "OVERLAY")
|
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:SetGradientAlpha("HORIZONTAL", 1, 1, 1, 0.35, 1, 1, 1, 0)
|
||||||
pfUI.swingtimer.offhand.markerGlowR:SetWidth(10)
|
pfUI.swingtimer.offhand.markerGlowR:SetWidth(10)
|
||||||
pfUI.swingtimer.offhand.markerGlowR:SetHeight(sw_height)
|
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 = 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:SetWidth(2)
|
||||||
pfUI.swingtimer.ranged.marker:SetHeight(sw_height)
|
pfUI.swingtimer.ranged.marker:SetHeight(sw_height)
|
||||||
pfUI.swingtimer.ranged.marker:Hide()
|
pfUI.swingtimer.ranged.marker:Hide()
|
||||||
|
|
||||||
-- Left glow: fades from transparent to white (right edge = marker)
|
-- Left glow: fades from transparent to white (right edge = marker)
|
||||||
pfUI.swingtimer.ranged.markerGlowL = pfUI.swingtimer.ranged:CreateTexture(nil, "OVERLAY")
|
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:SetGradientAlpha("HORIZONTAL", 1, 1, 1, 0, 1, 1, 1, 0.35)
|
||||||
pfUI.swingtimer.ranged.markerGlowL:SetWidth(10)
|
pfUI.swingtimer.ranged.markerGlowL:SetWidth(10)
|
||||||
pfUI.swingtimer.ranged.markerGlowL:SetHeight(sw_height)
|
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)
|
-- Right glow: fades from white to transparent (left edge = marker)
|
||||||
pfUI.swingtimer.ranged.markerGlowR = pfUI.swingtimer.ranged:CreateTexture(nil, "OVERLAY")
|
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:SetGradientAlpha("HORIZONTAL", 1, 1, 1, 0.35, 1, 1, 1, 0)
|
||||||
pfUI.swingtimer.ranged.markerGlowR:SetWidth(10)
|
pfUI.swingtimer.ranged.markerGlowR:SetWidth(10)
|
||||||
pfUI.swingtimer.ranged.markerGlowR:SetHeight(sw_height)
|
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.
|
-- weapons (22); main-hand-only (21) can never sit there.
|
||||||
local OH_WEAPON_TYPES = { [13]=true, [22]=true }
|
local OH_WEAPON_TYPES = { [13]=true, [22]=true }
|
||||||
local function HasOffhandWeapon()
|
local function HasOffhandWeapon()
|
||||||
local l = GetInventoryItemLink("player", 17)
|
local invType = C_Item.GetItemInventoryType({ equipmentSlotIndex = INVSLOT_OFFHAND })
|
||||||
if not l then return false end
|
return OH_WEAPON_TYPES[invType] == true
|
||||||
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
|
|
||||||
end
|
end
|
||||||
|
|
||||||
local function UpdateWeaponSpeeds()
|
local function UpdateWeaponSpeeds()
|
||||||
@@ -503,6 +505,10 @@ pfUI:RegisterModule("swingtimer", function ()
|
|||||||
end
|
end
|
||||||
|
|
||||||
-- Render MH
|
-- Render MH
|
||||||
|
if S.outOfRange[MAINHAND] then
|
||||||
|
curR, curG, curB = orR, orG, orB
|
||||||
|
end
|
||||||
|
|
||||||
if S.mhActive then
|
if S.mhActive then
|
||||||
local progress = 1 - (S.mhTimer / S.mhTimerMax)
|
local progress = 1 - (S.mhTimer / S.mhTimerMax)
|
||||||
pfUI.swingtimer.mainhand:SetValue(progress)
|
pfUI.swingtimer.mainhand:SetValue(progress)
|
||||||
@@ -542,6 +548,11 @@ pfUI:RegisterModule("swingtimer", function ()
|
|||||||
if sw_showoh and S.ohActive then
|
if sw_showoh and S.ohActive then
|
||||||
local progress = 1 - (S.ohTimer / S.ohTimerMax)
|
local progress = 1 - (S.ohTimer / S.ohTimerMax)
|
||||||
pfUI.swingtimer.offhand:SetValue(progress)
|
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.ohTimer <= 0 then
|
||||||
if S.lastOhMarkerX ~= -1 then
|
if S.lastOhMarkerX ~= -1 then
|
||||||
S.lastOhMarkerX = -1
|
S.lastOhMarkerX = -1
|
||||||
@@ -577,13 +588,13 @@ pfUI:RegisterModule("swingtimer", function ()
|
|||||||
-- Render Ranged
|
-- Render Ranged
|
||||||
if sw_showranged and S.raActive then
|
if sw_showranged and S.raActive then
|
||||||
local remaining = S.raTimer
|
local remaining = S.raTimer
|
||||||
|
local r, g, b, a = raR, raG, raB, raA
|
||||||
if isHunter then
|
if isHunter then
|
||||||
local DEADZONE = 0.5
|
local DEADZONE = 0.5
|
||||||
if remaining > DEADZONE then
|
if remaining > DEADZONE then
|
||||||
pfUI.swingtimer.ranged:SetStatusBarColor(raR, raG, raB, raA)
|
|
||||||
pfUI.swingtimer.ranged:SetValue((remaining - DEADZONE) / (S.raTimerMax - DEADZONE))
|
pfUI.swingtimer.ranged:SetValue((remaining - DEADZONE) / (S.raTimerMax - DEADZONE))
|
||||||
else
|
else
|
||||||
pfUI.swingtimer.ranged:SetStatusBarColor(rwR, rwG, rwB, rwA)
|
r, g, b, a = rwR, rwG, rwB, rwA
|
||||||
pfUI.swingtimer.ranged:SetValue(1 - (remaining / DEADZONE))
|
pfUI.swingtimer.ranged:SetValue(1 - (remaining / DEADZONE))
|
||||||
end
|
end
|
||||||
if sw_showtext then
|
if sw_showtext then
|
||||||
@@ -599,6 +610,10 @@ pfUI:RegisterModule("swingtimer", function ()
|
|||||||
pfUI.swingtimer.ranged.text:SetFormattedText("%.1f", math.floor(remaining * 10) / 10)
|
pfUI.swingtimer.ranged.text:SetFormattedText("%.1f", math.floor(remaining * 10) / 10)
|
||||||
end
|
end
|
||||||
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
|
if sw_showspeed and S.raSpeed > 0 then
|
||||||
pfUI.swingtimer.ranged.speed:SetFormattedText("%.2f", S.raSpeed)
|
pfUI.swingtimer.ranged.speed:SetFormattedText("%.2f", S.raSpeed)
|
||||||
end
|
end
|
||||||
@@ -637,6 +652,7 @@ pfUI:RegisterModule("swingtimer", function ()
|
|||||||
|
|
||||||
local events = CreateFrame("Frame")
|
local events = CreateFrame("Frame")
|
||||||
events:RegisterEvent("PLAYER_SWING")
|
events:RegisterEvent("PLAYER_SWING")
|
||||||
|
events:RegisterEvent("PLAYER_SWING_RANGE_UPDATE")
|
||||||
events:RegisterEvent("PLAYER_ENTERING_WORLD")
|
events:RegisterEvent("PLAYER_ENTERING_WORLD")
|
||||||
events:RegisterEvent("PLAYER_EQUIPMENT_CHANGED") -- ClassicAPI: per-slot, equipment-only
|
events:RegisterEvent("PLAYER_EQUIPMENT_CHANGED") -- ClassicAPI: per-slot, equipment-only
|
||||||
events:RegisterEvent("PLAYER_REGEN_DISABLED")
|
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
|
-- ClassicAPI tracks the server's swing clock (white hits, on-next-swing
|
||||||
-- abilities, swing-reset casts, parry haste, extra attacks, weapon
|
-- abilities, swing-reset casts, parry haste, extra attacks, weapon
|
||||||
-- swaps) and hands over the seconds left until the next swing.
|
-- swaps) and hands over the seconds left until the next swing.
|
||||||
if arg2 == Enum.PlayerSwingType.MainHand then
|
if arg2 == MAINHAND then
|
||||||
StartMH(arg1)
|
StartMH(arg1)
|
||||||
elseif arg2 == Enum.PlayerSwingType.OffHand then
|
elseif arg2 == OFFHAND then
|
||||||
StartOH(arg1)
|
StartOH(arg1)
|
||||||
elseif arg2 == Enum.PlayerSwingType.Ranged then
|
elseif arg2 == RANGED then
|
||||||
StartRanged(arg1)
|
StartRanged(arg1)
|
||||||
end
|
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
|
elseif event == "UNIT_SPELLCAST_SENT" then
|
||||||
-- arg4 = spellID: an on-next-swing ability (HS / Cleave / Maul) queued
|
-- arg4 = spellID: an on-next-swing ability (HS / Cleave / Maul) queued
|
||||||
local kind = ClassifyOnSwingSpell(arg4)
|
local kind = ClassifyOnSwingSpell(arg4)
|
||||||
@@ -773,5 +794,14 @@ pfUI:RegisterModule("swingtimer", function ()
|
|||||||
IsMaulQueued = function() return S.maulQueued end,
|
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()
|
UpdateWeaponSpeeds()
|
||||||
end)
|
end)
|
||||||
@@ -10,4 +10,27 @@ pfUI:RegisterModule("target", function ()
|
|||||||
pfUI.uf.target:UpdateFrameSize()
|
pfUI.uf.target:UpdateFrameSize()
|
||||||
pfUI.uf.target:SetPoint("BOTTOMLEFT", UIParent, "BOTTOM", 75, 125)
|
pfUI.uf.target:SetPoint("BOTTOMLEFT", UIParent, "BOTTOM", 75, 125)
|
||||||
UpdateMovable(pfUI.uf.target)
|
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)
|
end)
|
||||||
|
|||||||
@@ -2,7 +2,7 @@ pfUI:RegisterModule("targettarget", function ()
|
|||||||
-- do not go further on disabled UFs
|
-- do not go further on disabled UFs
|
||||||
if C.unitframes.disable == "1" then return end
|
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:UpdateFrameSize()
|
||||||
pfUI.uf.targettarget:SetPoint("BOTTOM", UIParent , "BOTTOM", 0, 125)
|
pfUI.uf.targettarget:SetPoint("BOTTOM", UIParent , "BOTTOM", 0, 125)
|
||||||
UpdateMovable(pfUI.uf.targettarget)
|
UpdateMovable(pfUI.uf.targettarget)
|
||||||
|
|||||||
@@ -2,7 +2,7 @@ pfUI:RegisterModule("targettargettarget", function ()
|
|||||||
-- do not go further on disabled UFs
|
-- do not go further on disabled UFs
|
||||||
if C.unitframes.disable == "1" then return end
|
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:UpdateFrameSize()
|
||||||
pfUI.uf.targettargettarget:SetPoint("BOTTOM", UIParent , "BOTTOM", 0, 200)
|
pfUI.uf.targettargettarget:SetPoint("BOTTOM", UIParent , "BOTTOM", 0, 200)
|
||||||
UpdateMovable(pfUI.uf.targettargettarget)
|
UpdateMovable(pfUI.uf.targettargettarget)
|
||||||
|
|||||||
@@ -3,7 +3,7 @@ pfUI:RegisterModule("thirdparty-vanilla", function()
|
|||||||
if not pfUI.thirdparty then return end
|
if not pfUI.thirdparty then return end
|
||||||
local rawborder, default_border = GetBorderSize()
|
local rawborder, default_border = GetBorderSize()
|
||||||
|
|
||||||
HookAddonOrVariable("KLHThreatMeter", function()
|
HookAddon("KLHThreatMeter", function()
|
||||||
local ktm_scale = 1
|
local ktm_scale = 1
|
||||||
local function GetKtmWidthDiff(view, match_size)
|
local function GetKtmWidthDiff(view, match_size)
|
||||||
local default_width = 0
|
local default_width = 0
|
||||||
@@ -122,7 +122,7 @@ pfUI:RegisterModule("thirdparty-vanilla", function()
|
|||||||
-- remove red background on some buttons
|
-- remove red background on some buttons
|
||||||
for i,v in ipairs({b:GetRegions()}) do
|
for i,v in ipairs({b:GetRegions()}) do
|
||||||
if v.SetTexture and i == 1 then
|
if v.SetTexture and i == 1 then
|
||||||
v:SetTexture(0,0,0,0)
|
v:SetColorTexture(0,0,0,0)
|
||||||
end
|
end
|
||||||
end
|
end
|
||||||
|
|
||||||
@@ -159,7 +159,7 @@ pfUI:RegisterModule("thirdparty-vanilla", function()
|
|||||||
end
|
end
|
||||||
end)
|
end)
|
||||||
|
|
||||||
HookAddonOrVariable("TWThreat", function()
|
HookAddon("TWThreat", function()
|
||||||
local docktable = { "twt", "TODO", "TWTMain",
|
local docktable = { "twt", "TODO", "TWTMain",
|
||||||
function() -- single
|
function() -- single
|
||||||
TWTMain:ClearAllPoints()
|
TWTMain:ClearAllPoints()
|
||||||
@@ -232,7 +232,7 @@ pfUI:RegisterModule("thirdparty-vanilla", function()
|
|||||||
end
|
end
|
||||||
end)
|
end)
|
||||||
|
|
||||||
HookAddonOrVariable("SW_Stats", function()
|
HookAddon("SW_Stats", function()
|
||||||
local docktable = { "swstats", "TODO", "SW_BarFrame1",
|
local docktable = { "swstats", "TODO", "SW_BarFrame1",
|
||||||
function() -- single
|
function() -- single
|
||||||
SW_BarFrame1:SetWidth(pfUI.chat.right:GetWidth())
|
SW_BarFrame1:SetWidth(pfUI.chat.right:GetWidth())
|
||||||
@@ -518,7 +518,7 @@ pfUI:RegisterModule("thirdparty-vanilla", function()
|
|||||||
end
|
end
|
||||||
end)
|
end)
|
||||||
|
|
||||||
HookAddonOrVariable("WIM", function()
|
HookAddon("WIM", function()
|
||||||
if C.thirdparty.wim.enable == "0" then return end
|
if C.thirdparty.wim.enable == "0" then return end
|
||||||
|
|
||||||
-- use pfUI link handler if available
|
-- use pfUI link handler if available
|
||||||
@@ -798,7 +798,7 @@ pfUI:RegisterModule("thirdparty-vanilla", function()
|
|||||||
|
|
||||||
-- SortBags
|
-- SortBags
|
||||||
-- Vanilla: https://github.com/shirsig/SortBags-vanilla
|
-- Vanilla: https://github.com/shirsig/SortBags-vanilla
|
||||||
HookAddonOrVariable("SortBags", function()
|
HookAddon("SortBags", function()
|
||||||
if C.thirdparty.sortbags.enable == "0" then return end
|
if C.thirdparty.sortbags.enable == "0" then return end
|
||||||
|
|
||||||
local sort = CreateFrame("Frame", nil)
|
local sort = CreateFrame("Frame", nil)
|
||||||
@@ -828,7 +828,7 @@ pfUI:RegisterModule("thirdparty-vanilla", function()
|
|||||||
end)
|
end)
|
||||||
end)
|
end)
|
||||||
|
|
||||||
HookAddonOrVariable("FlightMap", function()
|
HookAddon("FlightMap", function()
|
||||||
if C.thirdparty.flightmap.enable == "0" then return end
|
if C.thirdparty.flightmap.enable == "0" then return end
|
||||||
|
|
||||||
FlightMapTimesBorder:Hide()
|
FlightMapTimesBorder:Hide()
|
||||||
@@ -844,7 +844,7 @@ pfUI:RegisterModule("thirdparty-vanilla", function()
|
|||||||
FlightMapTimesText:SetFont(pfUI.font_default, 12, "OUTLINE")
|
FlightMapTimesText:SetFont(pfUI.font_default, 12, "OUTLINE")
|
||||||
end)
|
end)
|
||||||
|
|
||||||
HookAddonOrVariable("TheoryCraft_SetUpButton", function()
|
HookAddon("TheoryCraft", function()
|
||||||
if C.thirdparty.theorycraft.enable == "0" then return end
|
if C.thirdparty.theorycraft.enable == "0" then return end
|
||||||
|
|
||||||
-- set pfUI bar font
|
-- set pfUI bar font
|
||||||
@@ -862,7 +862,7 @@ pfUI:RegisterModule("thirdparty-vanilla", function()
|
|||||||
end
|
end
|
||||||
end)
|
end)
|
||||||
|
|
||||||
HookAddonOrVariable("SM_GetActionSpell", function()
|
HookAddon("SuperMacro", function()
|
||||||
if C.thirdparty.supermacro.enable == "0" then return end
|
if C.thirdparty.supermacro.enable == "0" then return end
|
||||||
if not pfUI.bars then return end
|
if not pfUI.bars then return end
|
||||||
|
|
||||||
@@ -885,18 +885,15 @@ pfUI:RegisterModule("thirdparty-vanilla", function()
|
|||||||
end
|
end
|
||||||
|
|
||||||
-- hook events to include SuperMacro refreshs
|
-- hook events to include SuperMacro refreshs
|
||||||
local ButtonEnter = pfUI.bars[1][1]:GetScript("OnEnter")
|
|
||||||
local function NewButtonEnter()
|
local function NewButtonEnter()
|
||||||
ButtonEnter()
|
SM_ActionButton_SetTooltip(ActionButton_GetPagedID(this))
|
||||||
local actionid = ActionButton_GetPagedID(this)
|
|
||||||
SM_ActionButton_SetTooltip(actionid)
|
|
||||||
end
|
end
|
||||||
|
|
||||||
-- reassign the new event handler
|
-- reassign the new event handler
|
||||||
for i=1,10 do
|
for i=1,10 do
|
||||||
for j=1,12 do
|
for j=1,12 do
|
||||||
pfUI.bars[i][j]:SetScript("OnEvent", NewButtonEvent)
|
pfUI.bars[i][j]:SetScript("OnEvent", NewButtonEvent)
|
||||||
pfUI.bars[i][j]:SetScript("OnEnter", NewButtonEnter)
|
pfUI.bars[i][j]:HookScript("OnEnter", NewButtonEnter)
|
||||||
end
|
end
|
||||||
end
|
end
|
||||||
|
|
||||||
@@ -908,7 +905,7 @@ pfUI:RegisterModule("thirdparty-vanilla", function()
|
|||||||
|
|
||||||
-- CleverMacro
|
-- CleverMacro
|
||||||
-- https://github.com/DanielAdolfsson/CleverMacro
|
-- https://github.com/DanielAdolfsson/CleverMacro
|
||||||
HookAddonOrVariable("CleverMacro", function()
|
HookAddon("CleverMacro", function()
|
||||||
if C.thirdparty.clevermacro.enable == "0" then return end
|
if C.thirdparty.clevermacro.enable == "0" then return end
|
||||||
|
|
||||||
-- get pfUI actionbar event handler
|
-- get pfUI actionbar event handler
|
||||||
@@ -925,7 +922,7 @@ pfUI:RegisterModule("thirdparty-vanilla", function()
|
|||||||
end)
|
end)
|
||||||
|
|
||||||
-- SuperCleveRoidMacros
|
-- SuperCleveRoidMacros
|
||||||
HookAddonOrVariable("SuperCleveRoidMacros", function()
|
HookAddon("SuperCleveRoidMacros", function()
|
||||||
if C.thirdparty.supercleveroidmacros.enable == "0" then return end
|
if C.thirdparty.supercleveroidmacros.enable == "0" then return end
|
||||||
if not pfUI.bars then return end
|
if not pfUI.bars then return end
|
||||||
|
|
||||||
@@ -933,7 +930,7 @@ pfUI:RegisterModule("thirdparty-vanilla", function()
|
|||||||
pfUI.bars.skip_macro = true
|
pfUI.bars.skip_macro = true
|
||||||
end)
|
end)
|
||||||
|
|
||||||
HookAddonOrVariable("AtlasLoot", function()
|
HookAddon("AtlasLoot", function()
|
||||||
if C.thirdparty.atlasloot.enable == "0" then return end
|
if C.thirdparty.atlasloot.enable == "0" then return end
|
||||||
|
|
||||||
CreateBackdrop(AtlasLootTooltip)
|
CreateBackdrop(AtlasLootTooltip)
|
||||||
@@ -948,7 +945,7 @@ pfUI:RegisterModule("thirdparty-vanilla", function()
|
|||||||
end
|
end
|
||||||
end)
|
end)
|
||||||
|
|
||||||
HookAddonOrVariable("crafty", function()
|
HookAddon("crafty", function()
|
||||||
if C.thirdparty.crafty.enable == "0" then return end
|
if C.thirdparty.crafty.enable == "0" then return end
|
||||||
|
|
||||||
local craftyskin = CreateFrame("Frame", nil, UIParent)
|
local craftyskin = CreateFrame("Frame", nil, UIParent)
|
||||||
@@ -1011,7 +1008,7 @@ pfUI:RegisterModule("thirdparty-vanilla", function()
|
|||||||
end)
|
end)
|
||||||
end)
|
end)
|
||||||
|
|
||||||
HookAddonOrVariable("BetterCharacterStats", function()
|
HookAddon("BetterCharacterStats", function()
|
||||||
if C.thirdparty.bcs.enable == "0" then return end
|
if C.thirdparty.bcs.enable == "0" then return end
|
||||||
StripTextures(BetterCharacterAttributesFrame)
|
StripTextures(BetterCharacterAttributesFrame)
|
||||||
|
|
||||||
@@ -1028,7 +1025,7 @@ pfUI:RegisterModule("thirdparty-vanilla", function()
|
|||||||
end
|
end
|
||||||
end)
|
end)
|
||||||
|
|
||||||
HookAddonOrVariable("MyRolePlay", function()
|
HookAddon("MyRolePlay", function()
|
||||||
if C.thirdparty.myroleplay.enable == "0" then return end
|
if C.thirdparty.myroleplay.enable == "0" then return end
|
||||||
|
|
||||||
if pfUI.uf.target then
|
if pfUI.uf.target then
|
||||||
@@ -1045,15 +1042,13 @@ pfUI:RegisterModule("thirdparty-vanilla", function()
|
|||||||
|
|
||||||
if pfUI.uf.player then
|
if pfUI.uf.player then
|
||||||
-- set tooltip function for player frame
|
-- set tooltip function for player frame
|
||||||
local oldfunc = pfUI.uf.player:GetScript("OnEnter")
|
pfUI.uf.player:HookScript("OnEnter", function()
|
||||||
pfUI.uf.player:SetScript("OnEnter", function()
|
|
||||||
oldfunc()
|
|
||||||
mrpDisplayTooltip("player", "PLAYER")
|
mrpDisplayTooltip("player", "PLAYER")
|
||||||
end)
|
end)
|
||||||
end
|
end
|
||||||
end)
|
end)
|
||||||
|
|
||||||
HookAddonOrVariable("DruidManaBarBackground", function()
|
HookAddon("DruidManaBarBackground", function()
|
||||||
if C.thirdparty.druidmana.enable == "0" then return end
|
if C.thirdparty.druidmana.enable == "0" then return end
|
||||||
DruidManaBar:SetParent(UIParent)
|
DruidManaBar:SetParent(UIParent)
|
||||||
DruidManaBar.bd:Hide()
|
DruidManaBar.bd:Hide()
|
||||||
@@ -1082,7 +1077,7 @@ pfUI:RegisterModule("thirdparty-vanilla", function()
|
|||||||
UpdateMovable(DruidManaBar)
|
UpdateMovable(DruidManaBar)
|
||||||
end)
|
end)
|
||||||
|
|
||||||
HookAddonOrVariable("NoteIt", function()
|
HookAddon("NoteIt", function()
|
||||||
if C.thirdparty.noteit.enable == "0" then return end
|
if C.thirdparty.noteit.enable == "0" then return end
|
||||||
|
|
||||||
-- Main window
|
-- Main window
|
||||||
@@ -1172,33 +1167,21 @@ pfUI:RegisterModule("thirdparty-vanilla", function()
|
|||||||
end)
|
end)
|
||||||
|
|
||||||
local EnableHealComm = function()
|
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
|
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
|
pfUI.api.libpredict.sender.enabled = nil
|
||||||
end
|
end
|
||||||
end
|
end
|
||||||
HookAddonOrVariable("HealComm", EnableHealComm)
|
HookAddon("HealComm", EnableHealComm)
|
||||||
HookAddonOrVariable("LunaUnitFrames", EnableHealComm)
|
HookAddon("LunaUnitFrames", EnableHealComm)
|
||||||
HookAddonOrVariable("NotGrid", EnableHealComm)
|
HookAddon("NotGrid", EnableHealComm)
|
||||||
|
|
||||||
HookAddonOrVariable("HardcoreDeath", function()
|
HookAddon("HardcoreDeath", function()
|
||||||
GameMenuFrame:SetHeight(GameMenuFrame:GetHeight() + 20)
|
GameMenuFrame:SetHeight(GameMenuFrame:GetHeight() + 20)
|
||||||
end)
|
end)
|
||||||
|
|
||||||
HookAddonOrVariable("MacroExtender", function()
|
HookAddon("MacroExtender", function()
|
||||||
-- Macro Extender moves the character dialog from frame-stata "dialog"
|
-- Macro Extender moves the character dialog from frame-stata "dialog"
|
||||||
-- to "low" and by that moves the frame below backgrounds, quest-trackers,
|
-- 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
|
-- 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
|
-- UnitXP SP3 compatibility
|
||||||
-- https://github.com/allfoxwy/UnitXP_SP3
|
-- https://github.com/allfoxwy/UnitXP_SP3
|
||||||
HookAddonOrVariable("UnitXP_SP3_Addon", function()
|
HookAddon("UnitXP_SP3_Addon", function()
|
||||||
-- skin UnitXP SP3 window and elements
|
-- skin UnitXP SP3 window and elements
|
||||||
StripTextures(xpsp3Frame)
|
StripTextures(xpsp3Frame)
|
||||||
CreateBackdrop(xpsp3Frame)
|
CreateBackdrop(xpsp3Frame)
|
||||||
|
|||||||
+10
-9
@@ -74,11 +74,7 @@ pfUI:RegisterModule("thirdparty", function()
|
|||||||
-- show/hide right chatframe
|
-- show/hide right chatframe
|
||||||
if pfUI.chat and C.chat.right.enable == "1" then
|
if pfUI.chat and C.chat.right.enable == "1" then
|
||||||
-- make sure the panel header stays hidden
|
-- make sure the panel header stays hidden
|
||||||
if self.state then
|
pfUI.chat.right.panelTop:SetShown(self.state)
|
||||||
pfUI.chat.right.panelTop:Show()
|
|
||||||
else
|
|
||||||
pfUI.chat.right.panelTop:Hide()
|
|
||||||
end
|
|
||||||
|
|
||||||
-- set chat visibility
|
-- set chat visibility
|
||||||
pfUI.chat.right:SetAlpha(self.state and 1 or 0)
|
pfUI.chat.right:SetAlpha(self.state and 1 or 0)
|
||||||
@@ -143,7 +139,7 @@ pfUI:RegisterModule("thirdparty", function()
|
|||||||
-- MrPlow Bag Sorting Addon.
|
-- MrPlow Bag Sorting Addon.
|
||||||
-- Vanilla: https://www.wowace.com/projects/mr-plow/files/288059
|
-- Vanilla: https://www.wowace.com/projects/mr-plow/files/288059
|
||||||
-- TBC: https://www.wowace.com/projects/mr-plow/files/136162
|
-- 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
|
if C.thirdparty.mrplow.enable == "0" then return end
|
||||||
|
|
||||||
local sort = CreateFrame("Frame", nil)
|
local sort = CreateFrame("Frame", nil)
|
||||||
@@ -179,7 +175,7 @@ pfUI:RegisterModule("thirdparty", function()
|
|||||||
-- ShaguDPS Damage Meter
|
-- ShaguDPS Damage Meter
|
||||||
-- Vanilla: https://github.com/shagu/ShaguDPS
|
-- Vanilla: https://github.com/shagu/ShaguDPS
|
||||||
-- TBC: https://github.com/shagu/ShaguDPS
|
-- TBC: https://github.com/shagu/ShaguDPS
|
||||||
HookAddonOrVariable("ShaguDPS", function()
|
HookAddon("ShaguDPS", function()
|
||||||
local docktable = { "shagudps", "ShaguDPS", "ShaguDPSWindow",
|
local docktable = { "shagudps", "ShaguDPS", "ShaguDPSWindow",
|
||||||
function() -- single
|
function() -- single
|
||||||
ShaguDPSWindow:ClearAllPoints()
|
ShaguDPSWindow:ClearAllPoints()
|
||||||
@@ -284,7 +280,7 @@ pfUI:RegisterModule("thirdparty", function()
|
|||||||
-- dock slot; a second window (GreedMeter.UI.frames[2]) takes the "threat"
|
-- 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
|
-- slot so the two tile the panel side-by-side. Docking triggers a
|
||||||
-- LayoutBars/RefreshFrame so the bars refit the new width.
|
-- LayoutBars/RefreshFrame so the bars refit the new width.
|
||||||
HookAddonOrVariable("GreedMeter", function()
|
HookAddon("GreedMeter", function()
|
||||||
local UI = GreedMeter.UI
|
local UI = GreedMeter.UI
|
||||||
|
|
||||||
local function frameAt(i)
|
local function frameAt(i)
|
||||||
@@ -377,7 +373,12 @@ pfUI:RegisterModule("thirdparty", function()
|
|||||||
-- DPSMate Damage Meter
|
-- DPSMate Damage Meter
|
||||||
-- Vanilla: https://github.com/Geigerkind/DPSMate
|
-- Vanilla: https://github.com/Geigerkind/DPSMate
|
||||||
-- TBC: https://github.com/Geigerkind/DPSMateTBC
|
-- 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",
|
local docktable = { "dpsmate", "DPSMate", "DPSMate_DPSMate",
|
||||||
function() -- single
|
function() -- single
|
||||||
DPSMate_DPSMate:ClearAllPoints()
|
DPSMate_DPSMate:ClearAllPoints()
|
||||||
|
|||||||
+53
-35
@@ -95,7 +95,16 @@ pfUI:RegisterModule("tooltip", function ()
|
|||||||
|
|
||||||
pfUI.tooltip:SetAllPoints()
|
pfUI.tooltip:SetAllPoints()
|
||||||
pfUI.tooltip:SetScript("OnShow", function()
|
pfUI.tooltip:SetScript("OnShow", function()
|
||||||
pfUI.tooltip:Update()
|
if C.tooltip.itemid == "1" and GameTooltip:HasItem() then
|
||||||
|
local _, _, itemID = GameTooltip:GetItem()
|
||||||
|
GameTooltip:AddLine(T["ItemID"] .. ": " .. itemID, .25,.5,1)
|
||||||
|
GameTooltip:Show()
|
||||||
|
elseif C.tooltip.spellid == "1" and GameTooltip:HasSpell() then
|
||||||
|
local _, _, spellID = GameTooltip:GetSpell()
|
||||||
|
GameTooltip:AddLine(T["SpellID"] .. ": " .. spellID, .25,.5,1)
|
||||||
|
GameTooltip:Show()
|
||||||
|
end
|
||||||
|
|
||||||
if GameTooltip:GetAnchorType() == "ANCHOR_NONE" then
|
if GameTooltip:GetAnchorType() == "ANCHOR_NONE" then
|
||||||
GameTooltip:ClearAllPoints()
|
GameTooltip:ClearAllPoints()
|
||||||
if C.tooltip.position == "bottom" then
|
if C.tooltip.position == "bottom" then
|
||||||
@@ -207,10 +216,7 @@ pfUI:RegisterModule("tooltip", function ()
|
|||||||
icon.stacks:SetFont(C.tooltip.font_tooltip, C.tooltip.font_tooltip_size, "OUTLINE")
|
icon.stacks:SetFont(C.tooltip.font_tooltip, C.tooltip.font_tooltip_size, "OUTLINE")
|
||||||
icon.stacks:SetTextColor(1, 1, 1, 1)
|
icon.stacks:SetTextColor(1, 1, 1, 1)
|
||||||
|
|
||||||
icon.timer = icon:CreateFontString(nil, "OVERLAY", "GameFontNormal")
|
icon.cd = CreateCooldown(icon, "tooltip")
|
||||||
icon.timer:SetPoint("CENTER", icon, "CENTER", 0, 0)
|
|
||||||
icon.timer:SetFont(C.tooltip.font_tooltip, C.tooltip.font_tooltip_size, "OUTLINE")
|
|
||||||
icon.timer:SetTextColor(1, 1, 1, 1)
|
|
||||||
return icon
|
return icon
|
||||||
end
|
end
|
||||||
|
|
||||||
@@ -219,18 +225,6 @@ pfUI:RegisterModule("tooltip", function ()
|
|||||||
icon:ClearAllPoints()
|
icon:ClearAllPoints()
|
||||||
end)
|
end)
|
||||||
|
|
||||||
-- Tick the remaining-time text on the visible icons. OnUpdate only fires
|
|
||||||
-- while the row is shown, so it stops as soon as the tooltip hides.
|
|
||||||
pfUI.tooltip.buffs:SetScript("OnUpdate", function()
|
|
||||||
local now = GetTime()
|
|
||||||
if (this.tick or 0) > now then return end
|
|
||||||
this.tick = now + 0.1
|
|
||||||
for icon in pfUI.tooltip.buffpool:EnumerateActive() do
|
|
||||||
local timeleft = icon.expirationTime and icon.expirationTime > 0 and (icon.expirationTime - now) or 0
|
|
||||||
icon.timer:SetText(timeleft > 0 and GetColoredTimeString(timeleft) or "")
|
|
||||||
end
|
|
||||||
end)
|
|
||||||
|
|
||||||
function pfUI.tooltip:UpdateBuffs(unit)
|
function pfUI.tooltip:UpdateBuffs(unit)
|
||||||
pfUI.tooltip.buffpool:ReleaseAll()
|
pfUI.tooltip.buffpool:ReleaseAll()
|
||||||
|
|
||||||
@@ -244,7 +238,7 @@ pfUI:RegisterModule("tooltip", function ()
|
|||||||
-- table and no per-index re-walk of the aura array
|
-- table and no per-index re-walk of the aura array
|
||||||
local n = ScanAuraSlots(unit, "HELPFUL", auraSlots, BUFF_MAX)
|
local n = ScanAuraSlots(unit, "HELPFUL", auraSlots, BUFF_MAX)
|
||||||
for i = 1, n do
|
for i = 1, n do
|
||||||
local name, texture, applications, _, _, expirationTime = C_UnitAuras.UnitAuraBySlot(unit, auraSlots[i])
|
local name, texture, applications, _, duration, expirationTime = C_UnitAuras.UnitAuraBySlot(unit, auraSlots[i])
|
||||||
if not name then break end
|
if not name then break end
|
||||||
|
|
||||||
count = count + 1
|
count = count + 1
|
||||||
@@ -252,9 +246,8 @@ pfUI:RegisterModule("tooltip", function ()
|
|||||||
icon.texture:SetTexture(texture)
|
icon.texture:SetTexture(texture)
|
||||||
icon.stacks:SetText(applications and applications > 1 and applications or "")
|
icon.stacks:SetText(applications and applications > 1 and applications or "")
|
||||||
|
|
||||||
icon.expirationTime = expirationTime
|
local start, dur = GetAuraTimer(duration, expirationTime)
|
||||||
local timeleft = expirationTime and expirationTime > 0 and (expirationTime - GetTime()) or 0
|
CooldownFrame_SetTimer(icon.cd, start, dur, dur > 0 and 1 or 0)
|
||||||
icon.timer:SetText(timeleft > 0 and GetColoredTimeString(timeleft) or "")
|
|
||||||
|
|
||||||
if prev then
|
if prev then
|
||||||
icon:SetPoint("LEFT", prev, "RIGHT", BUFF_SPACING, 0)
|
icon:SetPoint("LEFT", prev, "RIGHT", BUFF_SPACING, 0)
|
||||||
@@ -273,22 +266,47 @@ pfUI:RegisterModule("tooltip", function ()
|
|||||||
end
|
end
|
||||||
end
|
end
|
||||||
|
|
||||||
function pfUI.tooltip:Update()
|
-- A unit tooltip names the unit's target, so it rebuilds when that changes:
|
||||||
local unit = pfUI.tooltip:GetUnit()
|
-- UNIT_TARGET by the unit's GUID, which unit events fire with whatever token
|
||||||
pfUI.tooltip:UpdateBuffs(unit)
|
-- names the unit. SetUnit re-runs OnTooltipSetUnit and with it UpdateUnit.
|
||||||
if unit == "none" then
|
-- It goes through the token the tooltip was built from -- "mouseover" for a
|
||||||
if C.tooltip.itemid == "1" and GameTooltip:HasItem() then
|
-- world unit stops naming it once the cursor leaves, so a fading tooltip is
|
||||||
local _, _, itemID = GameTooltip:GetItem()
|
-- left to fade -- and waits a frame: the rebuild re-points this frame's
|
||||||
GameTooltip:AddLine(T["ItemID"] .. ": " .. itemID, .25,.5,1)
|
-- registration, which the dispatch is still walking.
|
||||||
GameTooltip:Show()
|
local function Retarget()
|
||||||
elseif C.tooltip.spellid == "1" and GameTooltip:HasSpell() then
|
local _, unit = GameTooltip:GetUnit()
|
||||||
local _, _, spellID = GameTooltip:GetSpell()
|
local _, guid = GameTooltip:GetUnitGUID()
|
||||||
GameTooltip:AddLine(T["SpellID"] .. ": " .. spellID, .25,.5,1)
|
if unit and GameTooltip:IsShown() and UnitGUID(unit) == guid then
|
||||||
GameTooltip:Show()
|
GameTooltip:SetUnit(unit)
|
||||||
|
end
|
||||||
end
|
end
|
||||||
|
|
||||||
return
|
pfUI.tooltip.retarget = CreateFrame("Frame")
|
||||||
end
|
pfUI.tooltip.retarget:SetScript("OnEvent", function()
|
||||||
|
RunNextFrame(Retarget)
|
||||||
|
end)
|
||||||
|
|
||||||
|
-- pfUI's unit lines go on whenever a unit is set, not only when the tooltip
|
||||||
|
-- shows, so a tooltip rebuilt while it is up keeps them
|
||||||
|
GameTooltip:HookScript("OnTooltipSetUnit", function()
|
||||||
|
pfUI.tooltip:UpdateUnit()
|
||||||
|
end)
|
||||||
|
|
||||||
|
-- the buff row belongs to the unit it was built for
|
||||||
|
GameTooltip:HookScript("OnTooltipCleared", function()
|
||||||
|
pfUI.tooltip:UpdateBuffs("none")
|
||||||
|
end)
|
||||||
|
|
||||||
|
GameTooltip:HookScript("OnHide", function()
|
||||||
|
pfUI.tooltip:UpdateBuffs("none")
|
||||||
|
pfUI.tooltip.retarget:UnregisterEvent("UNIT_TARGET")
|
||||||
|
end)
|
||||||
|
|
||||||
|
function pfUI.tooltip:UpdateUnit()
|
||||||
|
local unit = pfUI.tooltip:GetUnit()
|
||||||
|
pfUI.tooltip:UpdateBuffs(unit)
|
||||||
|
if unit == "none" then return end
|
||||||
|
pfUI.tooltip.retarget:RegisterUnitEvent("UNIT_TARGET", UnitGUID(unit))
|
||||||
|
|
||||||
local pvpname = UnitPVPName(unit)
|
local pvpname = UnitPVPName(unit)
|
||||||
local name = UnitName(unit)
|
local name = UnitName(unit)
|
||||||
|
|||||||
Some files were not shown because too many files have changed in this diff Show More
Reference in New Issue
Block a user