mirror of
https://github.com/brues-code/pfUI.git
synced 2026-10-31 07:56:57 +00:00
Compare commits
| Author | SHA1 | Date | |
|---|---|---|---|
|
|
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 |
+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 = 11800 -- (X*10000 + Y*100 + Z)
|
local PFUI_CLASSIC_API_MIN = 11805 -- (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)
|
||||||
|
|||||||
+35
-107
@@ -103,13 +103,20 @@ mod = math.mod or mod
|
|||||||
-- characters (bytes) in the string.
|
-- characters (bytes) in the string.
|
||||||
-- 'subject' [string] String to split.
|
-- 'subject' [string] String to split.
|
||||||
-- return: [list] a list of strings.
|
-- return: [list] a list of strings.
|
||||||
local format, sgsub = string.format, string.gsub
|
local sfind, ssub, sgsub = string.find, string.sub, string.gsub
|
||||||
function pfUI.api.strsplit(delimiter, subject)
|
function pfUI.api.strsplit(delimiter, subject)
|
||||||
if not subject then return nil end
|
if not subject then return nil end
|
||||||
local fields = {}
|
-- a character class of the delimiter bytes, each escaped so % ] ^ - stay
|
||||||
delimiter = delimiter or ":"
|
-- literal
|
||||||
local pattern = format("([^%s]+)", delimiter)
|
local set = "[" .. sgsub(delimiter or ":", "(%W)", "%%%1") .. "]"
|
||||||
sgsub(subject, pattern, function(c) fields[table.getn(fields)+1] = c end)
|
local fields, start = {}, 1
|
||||||
|
local pos = sfind(subject, set)
|
||||||
|
while pos do
|
||||||
|
table.insert(fields, ssub(subject, start, pos - 1))
|
||||||
|
start = pos + 1
|
||||||
|
pos = sfind(subject, set, start)
|
||||||
|
end
|
||||||
|
table.insert(fields, ssub(subject, start))
|
||||||
return unpack(fields)
|
return unpack(fields)
|
||||||
end
|
end
|
||||||
|
|
||||||
@@ -175,26 +182,6 @@ function pfUI.api.UnitInRange(unit)
|
|||||||
return nil
|
return nil
|
||||||
end
|
end
|
||||||
|
|
||||||
-- [ RunOOC ]
|
|
||||||
-- Runs a function once, as soon as the combat lockdown fades.
|
|
||||||
-- func [function] The function that shall run ooc.
|
|
||||||
-- return: [bool] true if the function was added,
|
|
||||||
-- nil if the function already exists in queue
|
|
||||||
local queue, frame = {}
|
|
||||||
function pfUI.api.RunOOC(func)
|
|
||||||
if not frame then
|
|
||||||
frame = CreateFrame("Frame")
|
|
||||||
frame:SetScript("OnUpdate", function()
|
|
||||||
for key, func in pairs(queue) do func(); queue[key] = nil end
|
|
||||||
end)
|
|
||||||
end
|
|
||||||
|
|
||||||
if not queue[tostring(func)] then
|
|
||||||
queue[tostring(func)] = func
|
|
||||||
return true
|
|
||||||
end
|
|
||||||
end
|
|
||||||
|
|
||||||
-- [ UnitHasBuff ]
|
-- [ UnitHasBuff ]
|
||||||
-- Returns whether a unit has the named buff or not.
|
-- Returns whether a unit has the named buff or not.
|
||||||
-- unit [string] A unit to query (string, unitID)
|
-- unit [string] A unit to query (string, unitID)
|
||||||
@@ -579,6 +566,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 +638,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()
|
end)
|
||||||
if not lurker.foundConfig then return end
|
|
||||||
for i = table.getn(pending), 1, -1 do
|
|
||||||
local hook = pending[i]
|
|
||||||
if IsAddOnLoaded(hook.addon) or _G[hook.addon] then
|
|
||||||
hook.func()
|
|
||||||
table.remove(pending, i)
|
|
||||||
end
|
|
||||||
end
|
|
||||||
if table.getn(pending) == 0 then
|
|
||||||
lurker:UnregisterAllEvents()
|
|
||||||
end
|
|
||||||
end
|
|
||||||
|
|
||||||
function pfUI.api.HookAddonOrVariable(addon, func)
|
|
||||||
if not lurker then
|
|
||||||
lurker = CreateFrame("Frame", nil)
|
|
||||||
lurker:SetScript("OnEvent", function()
|
|
||||||
if event == "VARIABLES_LOADED" or event == "PLAYER_ENTERING_WORLD" then
|
|
||||||
this.foundConfig = true
|
|
||||||
end
|
|
||||||
ProcessPending()
|
|
||||||
end)
|
|
||||||
end
|
|
||||||
|
|
||||||
table.insert(pending, { addon = addon, func = func })
|
|
||||||
lurker:RegisterEvent("ADDON_LOADED")
|
|
||||||
lurker:RegisterEvent("VARIABLES_LOADED")
|
|
||||||
lurker:RegisterEvent("PLAYER_ENTERING_WORLD")
|
|
||||||
ProcessPending()
|
|
||||||
end
|
|
||||||
end
|
|
||||||
|
|
||||||
-- [ QueueFunction ]
|
|
||||||
-- Add functions to a FIFO queue for execution after a short delay.
|
|
||||||
-- '...' [vararg] function, [arguments]
|
|
||||||
local timer
|
|
||||||
function pfUI.api.QueueFunction(a1,a2,a3,a4,a5,a6,a7,a8,a9)
|
|
||||||
if not timer then
|
|
||||||
timer = CreateFrame("Frame")
|
|
||||||
timer.queue = {}
|
|
||||||
timer.interval = TOOLTIP_UPDATE_TIME
|
|
||||||
timer.DeQueue = function()
|
|
||||||
local item = table.remove(timer.queue,1)
|
|
||||||
if item then
|
|
||||||
item[1](item[2],item[3],item[4],item[5],item[6],item[7],item[8],item[9])
|
|
||||||
end
|
|
||||||
if table.getn(timer.queue) == 0 then
|
|
||||||
timer:Hide() -- no need to run the OnUpdate when the queue is empty
|
|
||||||
end
|
|
||||||
end
|
|
||||||
timer:SetScript("OnUpdate",function()
|
|
||||||
this.sinceLast = (this.sinceLast or 0) + arg1
|
|
||||||
while (this.sinceLast > this.interval) do
|
|
||||||
this.DeQueue()
|
|
||||||
this.sinceLast = this.sinceLast - this.interval
|
|
||||||
end
|
|
||||||
end)
|
|
||||||
end
|
|
||||||
table.insert(timer.queue,{a1,a2,a3,a4,a5,a6,a7,a8,a9})
|
|
||||||
timer:Show() -- start the OnUpdate
|
|
||||||
end
|
end
|
||||||
|
|
||||||
-- [ Create Gold String ]
|
-- [ Create Gold String ]
|
||||||
@@ -722,20 +663,7 @@ 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 ]
|
||||||
|
|||||||
@@ -253,6 +253,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")
|
||||||
@@ -825,6 +826,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")
|
||||||
|
|||||||
+348
-636
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>
|
||||||
+62
-32
@@ -116,6 +116,7 @@ end
|
|||||||
pfUI.api.RegisterSlashCommand("PFTEST", { "/pftest", "/pfuftest" }, function()
|
pfUI.api.RegisterSlashCommand("PFTEST", { "/pftest", "/pfuftest" }, function()
|
||||||
pfUI.uf.showall = not pfUI.uf.showall
|
pfUI.uf.showall = not pfUI.uf.showall
|
||||||
if pfUI.uf.raid and pfUI.uf.raid.LayoutPets then pfUI.uf.raid:LayoutPets() end
|
if pfUI.uf.raid and pfUI.uf.raid.LayoutPets then pfUI.uf.raid:LayoutPets() end
|
||||||
|
pfUI.uf:UpdateAllVisibility()
|
||||||
end, true)
|
end, true)
|
||||||
|
|
||||||
-- Buff indicators are identified by a spell id, resolved once into the aura's
|
-- Buff indicators are identified by a spell id, resolved once into the aura's
|
||||||
@@ -214,13 +215,32 @@ local function DebuffOnClick()
|
|||||||
end
|
end
|
||||||
end
|
end
|
||||||
|
|
||||||
local visibilityscan = CreateFrame("Frame", "pfUnitFrameVisibility", UIParent)
|
-- Every enabled unit frame. Group, target and pet events re-check a frame's
|
||||||
visibilityscan.frames = {}
|
-- visibility in OnEvent. A frame with a tick shows another unit's target or a
|
||||||
visibilityscan:SetScript("OnUpdate", function()
|
-- pet that can go out of sight, and no event reports either, so a timer
|
||||||
if ( this.limit or 1) > GetTime() then return else this.limit = GetTime() + .2 end
|
-- re-checks those frames, hidden ones included.
|
||||||
for frame in pairs(this.frames) do frame:UpdateVisibility() end
|
local visibilityframes = {}
|
||||||
|
C_Timer.NewTicker(.2, function()
|
||||||
|
for frame in pairs(visibilityframes) do
|
||||||
|
if frame.tick then frame:UpdateVisibility() end
|
||||||
|
end
|
||||||
end)
|
end)
|
||||||
|
|
||||||
|
-- Re-check every unit frame, for the changes no event reports: unlock mode
|
||||||
|
-- and /pftest.
|
||||||
|
function pfUI.uf:UpdateAllVisibility()
|
||||||
|
for frame in pairs(visibilityframes) do frame:UpdateVisibility() end
|
||||||
|
end
|
||||||
|
|
||||||
|
-- the events that can bring a frame's unit into or out of existence
|
||||||
|
local VISIBILITY_EVENTS = {
|
||||||
|
PLAYER_ENTERING_WORLD = true,
|
||||||
|
PARTY_MEMBERS_CHANGED = true,
|
||||||
|
RAID_ROSTER_UPDATE = true,
|
||||||
|
PLAYER_TARGET_CHANGED = true,
|
||||||
|
UNIT_PET = true,
|
||||||
|
}
|
||||||
|
|
||||||
-- ============================================================================
|
-- ============================================================================
|
||||||
-- GetUnitStats - health + power for a unit token.
|
-- GetUnitStats - health + power for a unit token.
|
||||||
-- Returns: hp, maxHp, power, maxPower, powerType
|
-- Returns: hp, maxHp, power, maxPower, powerType
|
||||||
@@ -380,8 +400,8 @@ function pfUI.uf:UpdateVisibility()
|
|||||||
self._label, self._id = nil, nil
|
self._label, self._id = nil, nil
|
||||||
end
|
end
|
||||||
|
|
||||||
-- this runs for every frame five times a second, so only touch the
|
-- this runs on every refresh, so only touch the attribute when the unit
|
||||||
-- attribute when the unit actually changed
|
-- actually changed
|
||||||
local unitstr = self.label .. self.id
|
local unitstr = self.label .. self.id
|
||||||
if unitstr ~= self.unitstr then
|
if unitstr ~= self.unitstr then
|
||||||
self.unitstr = unitstr
|
self.unitstr = unitstr
|
||||||
@@ -422,8 +442,7 @@ function pfUI.uf:UpdateVisibility()
|
|||||||
-- unit's events, and OnEvent compares against the cached string instead of
|
-- unit's events, and OnEvent compares against the cached string instead of
|
||||||
-- rebuilding label..id -- and calling UnitGUID -- for every unit event fired
|
-- rebuilding label..id -- and calling UnitGUID -- for every unit event fired
|
||||||
-- by anything, anywhere. A frame that is not in use drops them entirely; the
|
-- by anything, anywhere. A frame that is not in use drops them entirely; the
|
||||||
-- roster events that would bring it back are registered plainly, and
|
-- VISIBILITY_EVENTS that bring it back are registered plainly.
|
||||||
-- visibilityscan re-runs this every 0.2s regardless, so it recovers on its own.
|
|
||||||
self:RegisterUnitEvents(visibility ~= "hide" and self.unitstr or nil)
|
self:RegisterUnitEvents(visibility ~= "hide" and self.unitstr or nil)
|
||||||
|
|
||||||
-- vanilla visibility
|
-- vanilla visibility
|
||||||
@@ -500,7 +519,7 @@ function pfUI.uf:UpdateConfig()
|
|||||||
|
|
||||||
local cooldown_text = tonumber(f.config.cooldown_text)
|
local cooldown_text = tonumber(f.config.cooldown_text)
|
||||||
local cooldown_anim = tonumber(f.config.cooldown_anim)
|
local cooldown_anim = tonumber(f.config.cooldown_anim)
|
||||||
local cooldown_reverse = tonumber(f.config.cooldown_reverse) or 0
|
local cooldown_reverse = f.config.cooldown_reverse == "1"
|
||||||
|
|
||||||
local relative_point = "BOTTOM"
|
local relative_point = "BOTTOM"
|
||||||
if f.config.panchor == "TOPLEFT" then
|
if f.config.panchor == "TOPLEFT" then
|
||||||
@@ -862,8 +881,9 @@ function pfUI.uf:UpdateConfig()
|
|||||||
f.buffs[i].cd.pfCooldownType = "ALL"
|
f.buffs[i].cd.pfCooldownType = "ALL"
|
||||||
f.buffs[i].cd.pfCooldownStyleText = cooldown_text
|
f.buffs[i].cd.pfCooldownStyleText = cooldown_text
|
||||||
f.buffs[i].cd.pfCooldownStyleAnimation = cooldown_anim
|
f.buffs[i].cd.pfCooldownStyleAnimation = cooldown_anim
|
||||||
f.buffs[i].cd.pfCooldownReverse = cooldown_reverse
|
f.buffs[i].cd:SetDrawSwipe(cooldown_anim == 1)
|
||||||
f.buffs[i].cd:SetAlpha(cooldown_anim == 1 and 1 or 0)
|
f.buffs[i].cd:SetDrawBling(cooldown_anim == 1)
|
||||||
|
f.buffs[i].cd:SetReverse(cooldown_reverse)
|
||||||
|
|
||||||
-- immediately show/hide existing cooldown text
|
-- immediately show/hide existing cooldown text
|
||||||
if f.buffs[i].cd.pfCooldownText then
|
if f.buffs[i].cd.pfCooldownText then
|
||||||
@@ -923,8 +943,9 @@ function pfUI.uf:UpdateConfig()
|
|||||||
f.debuffs[i].cd.pfCooldownType = "ALL"
|
f.debuffs[i].cd.pfCooldownType = "ALL"
|
||||||
f.debuffs[i].cd.pfCooldownStyleText = cooldown_text
|
f.debuffs[i].cd.pfCooldownStyleText = cooldown_text
|
||||||
f.debuffs[i].cd.pfCooldownStyleAnimation = cooldown_anim
|
f.debuffs[i].cd.pfCooldownStyleAnimation = cooldown_anim
|
||||||
f.debuffs[i].cd.pfCooldownReverse = cooldown_reverse
|
f.debuffs[i].cd:SetDrawSwipe(cooldown_anim == 1)
|
||||||
f.debuffs[i].cd:SetAlpha(cooldown_anim == 1 and 1 or 0)
|
f.debuffs[i].cd:SetDrawBling(cooldown_anim == 1)
|
||||||
|
f.debuffs[i].cd:SetReverse(cooldown_reverse)
|
||||||
|
|
||||||
-- immediately show/hide existing cooldown text
|
-- immediately show/hide existing cooldown text
|
||||||
if f.debuffs[i].cd.pfCooldownText then
|
if f.debuffs[i].cd.pfCooldownText then
|
||||||
@@ -967,10 +988,10 @@ function pfUI.uf.OnEvent()
|
|||||||
this:UnregisterAllEvents()
|
this:UnregisterAllEvents()
|
||||||
this:SetScript("OnEvent", nil)
|
this:SetScript("OnEvent", nil)
|
||||||
this:SetScript("OnUpdate", nil)
|
this:SetScript("OnUpdate", nil)
|
||||||
-- visibilityscan is a separate frame and keeps ticking, so leaving this one
|
-- the visibility timer keeps ticking, so leaving this frame on its list
|
||||||
-- on its list would have UpdateVisibility re-register the unit events we
|
-- would have UpdateVisibility re-register the unit events we just
|
||||||
-- just dropped -- straight back into the crash 132 this branch prevents
|
-- dropped -- straight back into the crash 132 this branch prevents
|
||||||
visibilityscan.frames[this] = nil
|
visibilityframes[this] = nil
|
||||||
return
|
return
|
||||||
end
|
end
|
||||||
|
|
||||||
@@ -988,6 +1009,12 @@ function pfUI.uf.OnEvent()
|
|||||||
-- abort on broken unitframes (e.g focus)
|
-- abort on broken unitframes (e.g focus)
|
||||||
if not this.label then return end
|
if not this.label then return end
|
||||||
|
|
||||||
|
-- a hidden frame runs no OnUpdate, so its unit coming into existence has to
|
||||||
|
-- show it from here
|
||||||
|
if VISIBILITY_EVENTS[event] and not (event == "PLAYER_TARGET_CHANGED" and pfScanActive) then
|
||||||
|
this:UpdateVisibility()
|
||||||
|
end
|
||||||
|
|
||||||
-- update regular frames
|
-- update regular frames
|
||||||
if event == "PLAYER_ENTERING_WORLD" then
|
if event == "PLAYER_ENTERING_WORLD" then
|
||||||
this.update_full = true
|
this.update_full = true
|
||||||
@@ -1051,6 +1078,8 @@ function pfUI.uf.OnEvent()
|
|||||||
this.update_pvp = true
|
this.update_pvp = true
|
||||||
elseif event == "UNIT_COMBAT" then
|
elseif event == "UNIT_COMBAT" then
|
||||||
CombatFeedback_OnCombatEvent(arg2, arg3, arg4, arg5)
|
CombatFeedback_OnCombatEvent(arg2, arg3, arg4, arg5)
|
||||||
|
elseif event == "INCOMING_RESURRECT_CHANGED" then
|
||||||
|
this.update_indicators = true
|
||||||
else
|
else
|
||||||
this.update_base = true
|
this.update_base = true
|
||||||
end
|
end
|
||||||
@@ -1093,10 +1122,10 @@ function pfUI.uf.OnUpdate()
|
|||||||
this.lastCombatCheck = now + 0.2
|
this.lastCombatCheck = now + 0.2
|
||||||
|
|
||||||
if this.config and this.config.squareaggro == "1" and pfUI.api.UnitHasAggro(this.label .. this.id) > 0 then
|
if this.config and this.config.squareaggro == "1" and pfUI.api.UnitHasAggro(this.label .. this.id) > 0 then
|
||||||
this.combat.tex:SetTexture(1,.2,0)
|
this.combat.tex:SetColorTexture(1,.2,0)
|
||||||
this.combat:Show()
|
this.combat:Show()
|
||||||
elseif this.config and this.config.squarecombat == "1" and UnitAffectingCombat(this.label .. this.id) then
|
elseif this.config and this.config.squarecombat == "1" and UnitAffectingCombat(this.label .. this.id) then
|
||||||
this.combat.tex:SetTexture(1,1,.2)
|
this.combat.tex:SetColorTexture(1,1,.2)
|
||||||
this.combat:Show()
|
this.combat:Show()
|
||||||
elseif this.combat then
|
elseif this.combat then
|
||||||
this.combat:Hide()
|
this.combat:Hide()
|
||||||
@@ -1221,10 +1250,6 @@ function pfUI.uf.OnUpdate()
|
|||||||
this.incHeal:Hide()
|
this.incHeal:Hide()
|
||||||
end
|
end
|
||||||
end
|
end
|
||||||
|
|
||||||
-- update ressurections
|
|
||||||
local ress = libpredict:UnitHasIncomingResurrection(unit)
|
|
||||||
this.ressIcon:SetShown(ress and UnitIsDeadOrGhost(unit))
|
|
||||||
end
|
end
|
||||||
end
|
end
|
||||||
end
|
end
|
||||||
@@ -1302,12 +1327,12 @@ local UNIT_EVENTS = {
|
|||||||
"UNIT_PORTRAIT_UPDATE", "UNIT_MODEL_CHANGED",
|
"UNIT_PORTRAIT_UPDATE", "UNIT_MODEL_CHANGED",
|
||||||
"UNIT_FACTION",
|
"UNIT_FACTION",
|
||||||
"UNIT_AURA", -- frame=buff, frame=debuff
|
"UNIT_AURA", -- frame=buff, frame=debuff
|
||||||
|
"INCOMING_RESURRECT_CHANGED", -- frame=ressIcon
|
||||||
}
|
}
|
||||||
|
|
||||||
-- Point this frame's unit-event subscriptions at `unitstr`, or drop them when
|
-- Point this frame's unit-event subscriptions at `unitstr`, or drop them when
|
||||||
-- the frame has no unit. Cheap to call repeatedly: it no-ops unless the unit
|
-- the frame has no unit. Cheap to call repeatedly: it no-ops unless the unit
|
||||||
-- actually changed, which matters because visibilityscan runs UpdateVisibility
|
-- actually changed, which matters because every refresh runs UpdateVisibility.
|
||||||
-- for every frame five times a second.
|
|
||||||
function pfUI.uf:RegisterUnitEvents(unitstr)
|
function pfUI.uf:RegisterUnitEvents(unitstr)
|
||||||
if self.eventunit == unitstr then return end
|
if self.eventunit == unitstr then return end
|
||||||
self.eventunit = unitstr
|
self.eventunit = unitstr
|
||||||
@@ -1414,8 +1439,7 @@ function pfUI.uf:EnableScripts()
|
|||||||
f:SetScript("OnEvent", pfUI.uf.OnEvent)
|
f:SetScript("OnEvent", pfUI.uf.OnEvent)
|
||||||
f:SetScript("OnUpdate", pfUI.uf.OnUpdate)
|
f:SetScript("OnUpdate", pfUI.uf.OnUpdate)
|
||||||
|
|
||||||
-- add frame to visibility refresh handler
|
visibilityframes[f] = true
|
||||||
visibilityscan.frames[f] = true
|
|
||||||
end
|
end
|
||||||
|
|
||||||
function pfUI.uf:CreateUnitFrame(unit, id, config, tick)
|
function pfUI.uf:CreateUnitFrame(unit, id, config, tick)
|
||||||
@@ -1649,6 +1673,10 @@ function pfUI.uf:RefreshIndicators(unit)
|
|||||||
unit.pvpIcon:SetShown(unit.config.showPVP == "1" and UnitIsPVP(unitstr))
|
unit.pvpIcon:SetShown(unit.config.showPVP == "1" and UnitIsPVP(unitstr))
|
||||||
end
|
end
|
||||||
|
|
||||||
|
if unit.ressIcon then -- Resurrection Icon
|
||||||
|
unit.ressIcon:SetShown(libpredict:UnitHasResurrection(unitstr))
|
||||||
|
end
|
||||||
|
|
||||||
if unit.restIcon and unit:GetName() == "pfPlayer" then -- Rest Icon
|
if unit.restIcon and unit:GetName() == "pfPlayer" then -- Rest Icon
|
||||||
unit.restIcon:SetShown(C.unitframes.player.showRest == "1" and UnitIsUnit(unitstr, "player") and IsResting())
|
unit.restIcon:SetShown(C.unitframes.player.showRest == "1" and UnitIsUnit(unitstr, "player") and IsResting())
|
||||||
end
|
end
|
||||||
@@ -1895,7 +1923,7 @@ function pfUI.uf:RefreshUnit(unit, component)
|
|||||||
indicator[debuff]:SetSize(size, size)
|
indicator[debuff]:SetSize(size, size)
|
||||||
indicator[debuff]:SetBackdrop(nil)
|
indicator[debuff]:SetBackdrop(nil)
|
||||||
elseif disptype == "3" then
|
elseif disptype == "3" then
|
||||||
indicator[debuff].tex:SetTexture(dispelColor:GetRGBA())
|
indicator[debuff].tex:SetColorTexture(dispelColor:GetRGBA())
|
||||||
indicator[debuff].tex:SetVertexColor(1,1,1,1)
|
indicator[debuff].tex:SetVertexColor(1,1,1,1)
|
||||||
indicator[debuff].tex:Show()
|
indicator[debuff].tex:Show()
|
||||||
indicator[debuff]:ClearAllPoints()
|
indicator[debuff]:ClearAllPoints()
|
||||||
@@ -1907,7 +1935,7 @@ function pfUI.uf:RefreshUnit(unit, component)
|
|||||||
indicator[debuff]:SetBackdrop(glow)
|
indicator[debuff]:SetBackdrop(glow)
|
||||||
indicator[debuff]:SetBackdropBorderColor(dispelColor:GetRGBA())
|
indicator[debuff]:SetBackdropBorderColor(dispelColor:GetRGBA())
|
||||||
elseif disptype == "1" then
|
elseif disptype == "1" then
|
||||||
indicator[debuff].tex:SetTexture(dispelColor:GetRGBA())
|
indicator[debuff].tex:SetColorTexture(dispelColor:GetRGBA())
|
||||||
indicator[debuff].tex:SetVertexColor(1,1,1,1)
|
indicator[debuff].tex:SetVertexColor(1,1,1,1)
|
||||||
indicator[debuff].tex:Show()
|
indicator[debuff].tex:Show()
|
||||||
indicator[debuff]:SetAllPoints(unit.hp.bar)
|
indicator[debuff]:SetAllPoints(unit.hp.bar)
|
||||||
@@ -1956,8 +1984,8 @@ function pfUI.uf:RefreshUnit(unit, component)
|
|||||||
|
|
||||||
if not unit.indicator_custom and unit.config.buff_indicator == "1" then
|
if not unit.indicator_custom and unit.config.buff_indicator == "1" then
|
||||||
unit.indicator_custom = {}
|
unit.indicator_custom = {}
|
||||||
for k, v in pairs({strsplit("#", unit.config.custom_indicator)}) do
|
for _, v in pairs({strsplit("#", unit.config.custom_indicator)}) do
|
||||||
unit.indicator_custom[k] = v:lower()
|
if v ~= "" then table.insert(unit.indicator_custom, v:lower()) end
|
||||||
end
|
end
|
||||||
elseif not unit.indicator_custom then
|
elseif not unit.indicator_custom then
|
||||||
unit.indicator_custom = {}
|
unit.indicator_custom = {}
|
||||||
@@ -2266,6 +2294,8 @@ function pfUI.uf:AddIcon(frame, pos, icon, timeleft, stacks, start, duration)
|
|||||||
|
|
||||||
frame.icon[pos].cd = CreateFrame("Cooldown", nil, frame.icon[pos], "CooldownFrameTemplate")
|
frame.icon[pos].cd = CreateFrame("Cooldown", nil, frame.icon[pos], "CooldownFrameTemplate")
|
||||||
frame.icon[pos].cd.pfCooldownStyleAnimation = 0
|
frame.icon[pos].cd.pfCooldownStyleAnimation = 0
|
||||||
|
frame.icon[pos].cd:SetDrawSwipe(false)
|
||||||
|
frame.icon[pos].cd:SetDrawBling(false)
|
||||||
frame.icon[pos].cd.pfCooldownType = "ALL"
|
frame.icon[pos].cd.pfCooldownType = "ALL"
|
||||||
frame.icon[pos].cd:SetFrameLevel(48)
|
frame.icon[pos].cd:SetFrameLevel(48)
|
||||||
end
|
end
|
||||||
|
|||||||
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
-1
@@ -30,4 +30,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
-1
@@ -30,4 +30,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
-1
@@ -30,4 +30,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
-1
@@ -30,4 +30,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
-1
@@ -30,4 +30,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
-1
@@ -30,4 +30,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
-1
@@ -30,4 +30,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
@@ -123,6 +123,7 @@ pfUI_translation["deDE"] = {
|
|||||||
["Clear Rolls"] = nil,
|
["Clear Rolls"] = nil,
|
||||||
["Click Action"] = nil,
|
["Click Action"] = nil,
|
||||||
["Click Casting"] = nil,
|
["Click Casting"] = nil,
|
||||||
|
["Click to undress"] = nil,
|
||||||
["Clock"] = nil,
|
["Clock"] = nil,
|
||||||
["Close"] = nil,
|
["Close"] = nil,
|
||||||
["Collapse Empty Slots"] = nil,
|
["Collapse Empty Slots"] = nil,
|
||||||
@@ -160,6 +161,7 @@ pfUI_translation["deDE"] = {
|
|||||||
["Cooldown Text Time 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,
|
||||||
|
|||||||
Vendored
+2
@@ -129,6 +129,7 @@ pfUI_translation["enUS"] = {
|
|||||||
["Clear Rolls"] = nil,
|
["Clear Rolls"] = nil,
|
||||||
["Click Action"] = nil,
|
["Click Action"] = nil,
|
||||||
["Click Casting"] = nil,
|
["Click Casting"] = nil,
|
||||||
|
["Click to undress"] = nil,
|
||||||
["Clock"] = nil,
|
["Clock"] = nil,
|
||||||
["Close"] = nil,
|
["Close"] = nil,
|
||||||
["Collapse Empty Slots"] = nil,
|
["Collapse Empty Slots"] = nil,
|
||||||
@@ -166,6 +167,7 @@ pfUI_translation["enUS"] = {
|
|||||||
["Cooldown Text Time 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,
|
||||||
|
|||||||
Vendored
+2
@@ -123,6 +123,7 @@ pfUI_translation["esES"] = {
|
|||||||
["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,
|
||||||
["Clock"] = "Reloj",
|
["Clock"] = "Reloj",
|
||||||
["Close"] = "Cerrar",
|
["Close"] = "Cerrar",
|
||||||
["Collapse Empty Slots"] = nil,
|
["Collapse Empty Slots"] = nil,
|
||||||
@@ -160,6 +161,7 @@ pfUI_translation["esES"] = {
|
|||||||
["Cooldown Text Time Threshold"] = "Umbral del texto del tiempo de reutilización",
|
["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",
|
||||||
|
|||||||
Vendored
+2
@@ -123,6 +123,7 @@ pfUI_translation["frFR"] = {
|
|||||||
["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,
|
||||||
["Clock"] = "Horloge",
|
["Clock"] = "Horloge",
|
||||||
["Close"] = "Fermer",
|
["Close"] = "Fermer",
|
||||||
["Collapse Empty Slots"] = nil,
|
["Collapse Empty Slots"] = nil,
|
||||||
@@ -160,6 +161,7 @@ pfUI_translation["frFR"] = {
|
|||||||
["Cooldown Text Time Threshold"] = "Seuil du texte des temps de recharge",
|
["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",
|
||||||
|
|||||||
Vendored
+2
@@ -123,6 +123,7 @@ pfUI_translation["koKR"] = {
|
|||||||
["Clear Rolls"] = nil,
|
["Clear Rolls"] = nil,
|
||||||
["Click Action"] = "클릭 액션",
|
["Click Action"] = "클릭 액션",
|
||||||
["Click Casting"] = nil,
|
["Click Casting"] = nil,
|
||||||
|
["Click to undress"] = nil,
|
||||||
["Clock"] = "시계",
|
["Clock"] = "시계",
|
||||||
["Close"] = "닫기",
|
["Close"] = "닫기",
|
||||||
["Collapse Empty Slots"] = nil,
|
["Collapse Empty Slots"] = nil,
|
||||||
@@ -160,6 +161,7 @@ pfUI_translation["koKR"] = {
|
|||||||
["Cooldown Text Time Threshold"] = "재사용 대기시간 텍스트 임계 값",
|
["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,
|
||||||
|
|||||||
Vendored
+2
@@ -123,6 +123,7 @@ pfUI_translation["ruRU"] = {
|
|||||||
["Clear Rolls"] = "Очистить броски",
|
["Clear Rolls"] = "Очистить броски",
|
||||||
["Click Action"] = "Действие при нажатии",
|
["Click Action"] = "Действие при нажатии",
|
||||||
["Click Casting"] = "Каст по нажатию",
|
["Click Casting"] = "Каст по нажатию",
|
||||||
|
["Click to undress"] = nil,
|
||||||
["Clock"] = "Часы",
|
["Clock"] = "Часы",
|
||||||
["Close"] = "Закрыть",
|
["Close"] = "Закрыть",
|
||||||
["Collapse Empty Slots"] = nil,
|
["Collapse Empty Slots"] = nil,
|
||||||
@@ -160,6 +161,7 @@ pfUI_translation["ruRU"] = {
|
|||||||
["Cooldown Text Time 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+нажатие",
|
||||||
|
|||||||
Vendored
+2
@@ -123,6 +123,7 @@ pfUI_translation["zhCN"] = {
|
|||||||
["Clear Rolls"] = "清除Roll点",
|
["Clear Rolls"] = "清除Roll点",
|
||||||
["Click Action"] = "点击操作",
|
["Click Action"] = "点击操作",
|
||||||
["Click Casting"] = "点击施法",
|
["Click Casting"] = "点击施法",
|
||||||
|
["Click to undress"] = nil,
|
||||||
["Clock"] = "时间",
|
["Clock"] = "时间",
|
||||||
["Close"] = "关闭",
|
["Close"] = "关闭",
|
||||||
["Collapse Empty Slots"] = nil,
|
["Collapse Empty Slots"] = nil,
|
||||||
@@ -160,6 +161,7 @@ pfUI_translation["zhCN"] = {
|
|||||||
["Cooldown Text Time 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点击",
|
||||||
|
|||||||
Vendored
+2
@@ -123,6 +123,7 @@ pfUI_translation["zhTW"] = {
|
|||||||
["Clear Rolls"] = "清除Roll點",
|
["Clear Rolls"] = "清除Roll點",
|
||||||
["Click Action"] = "點擊操作",
|
["Click Action"] = "點擊操作",
|
||||||
["Click Casting"] = nil,
|
["Click Casting"] = nil,
|
||||||
|
["Click to undress"] = nil,
|
||||||
["Clock"] = "時間",
|
["Clock"] = "時間",
|
||||||
["Close"] = "關閉",
|
["Close"] = "關閉",
|
||||||
["Collapse Empty Slots"] = nil,
|
["Collapse Empty Slots"] = nil,
|
||||||
@@ -160,6 +161,7 @@ pfUI_translation["zhTW"] = {
|
|||||||
["Cooldown Text Time 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點擊",
|
||||||
|
|||||||
@@ -2,5 +2,6 @@
|
|||||||
<Include file="..\api\api.lua"/>
|
<Include file="..\api\api.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>
|
||||||
|
|||||||
@@ -7,6 +7,14 @@
|
|||||||
<Include file="..\env\locales_esES.lua"/>
|
<Include file="..\env\locales_esES.lua"/>
|
||||||
<Include file="..\env\locales_ruRU.lua"/>
|
<Include file="..\env\locales_ruRU.lua"/>
|
||||||
|
|
||||||
|
<Include file="..\env\combatlog_enUS.lua"/>
|
||||||
|
<Include file="..\env\combatlog_koKR.lua"/>
|
||||||
|
<Include file="..\env\combatlog_frFR.lua"/>
|
||||||
|
<Include file="..\env\combatlog_deDE.lua"/>
|
||||||
|
<Include file="..\env\combatlog_zhCN.lua"/>
|
||||||
|
<Include file="..\env\combatlog_esES.lua"/>
|
||||||
|
<Include file="..\env\combatlog_ruRU.lua"/>
|
||||||
|
|
||||||
<Include file="..\env\profiles.lua"/>
|
<Include file="..\env\profiles.lua"/>
|
||||||
|
|
||||||
<Include file="..\env\translations_enUS.lua"/>
|
<Include file="..\env\translations_enUS.lua"/>
|
||||||
|
|||||||
@@ -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"/>
|
||||||
@@ -80,4 +82,5 @@
|
|||||||
<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"/>
|
||||||
</Ui>
|
</Ui>
|
||||||
+55
-166
@@ -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,12 +92,6 @@ 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")
|
||||||
@@ -131,7 +122,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 +202,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 +240,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 +253,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 +303,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 +341,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 +360,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 +369,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,27 +440,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
|
|
||||||
elseif cmd == "RESNO" then
|
|
||||||
msgtype = "RessStop"
|
|
||||||
end
|
|
||||||
end
|
|
||||||
|
|
||||||
if msgtype == "Stop" and sender then
|
if msgtype == "Stop" and sender then
|
||||||
libpredict:HealStop(sender)
|
libpredict:HealStop(sender)
|
||||||
return
|
return
|
||||||
elseif msgtype == "RessStop" 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
|
||||||
@@ -503,29 +456,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()
|
||||||
@@ -674,41 +604,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)
|
||||||
@@ -731,21 +626,10 @@ 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()
|
||||||
@@ -1073,7 +957,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
|
||||||
@@ -1085,7 +968,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
|
||||||
@@ -1136,11 +1018,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
|
||||||
|
|
||||||
@@ -1176,13 +1067,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
-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)
|
||||||
|
|||||||
+91
-155
@@ -161,113 +161,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 +280,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
|
||||||
|
|
||||||
@@ -414,11 +383,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
|
||||||
@@ -465,8 +430,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)
|
||||||
@@ -506,11 +470,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
|
||||||
@@ -1035,7 +995,7 @@ pfUI:RegisterModule("actionbar", function ()
|
|||||||
-- cooldown
|
-- cooldown
|
||||||
f.cd = CreateFrame("Cooldown", f:GetName() .. "Cooldown", f, "CooldownFrameTemplate")
|
f.cd = CreateFrame("Cooldown", f:GetName() .. "Cooldown", f, "CooldownFrameTemplate")
|
||||||
f.cd.pfCooldownStyleAnimation = 1
|
f.cd.pfCooldownStyleAnimation = 1
|
||||||
f.cd.pfCooldownReverse = tonumber(C.bars.cooldown_reverse) or 0
|
f.cd:SetReverse(C.bars.cooldown_reverse == "1")
|
||||||
f.cd.pfCooldownType = "NOGCD"
|
f.cd.pfCooldownType = "NOGCD"
|
||||||
f.cd.pfCooldownSize = cd_size
|
f.cd.pfCooldownSize = cd_size
|
||||||
|
|
||||||
@@ -1046,8 +1006,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)
|
||||||
@@ -1106,9 +1066,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)
|
||||||
@@ -1116,7 +1073,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))
|
||||||
@@ -1124,7 +1081,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))
|
||||||
@@ -1133,7 +1090,7 @@ 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))
|
||||||
@@ -1151,7 +1108,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
|
||||||
@@ -1232,11 +1189,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
|
||||||
@@ -1256,11 +1209,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
|
||||||
@@ -1502,23 +1451,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
|
||||||
|
|||||||
+121
-165
@@ -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
|
||||||
end
|
SetAddonEnabled(i, false)
|
||||||
end
|
|
||||||
|
|
||||||
if active then
|
|
||||||
if not f.input:GetChecked() then
|
|
||||||
f.input:Click()
|
|
||||||
end
|
|
||||||
else
|
|
||||||
if f.input:GetChecked() then
|
|
||||||
f.input:Click()
|
|
||||||
end
|
|
||||||
end
|
end
|
||||||
end
|
end
|
||||||
|
|
||||||
|
pfUI.addons.list.ScrollBox:ReinitializeFrames()
|
||||||
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
|
|
||||||
table.insert(menu, entry)
|
|
||||||
end
|
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)
|
-- caption
|
||||||
frame:SetPoint("TOPLEFT", 5, i * -25 + 20)
|
row.caption = row:CreateFontString(nil, "LOW", "GameFontNormal")
|
||||||
|
row.caption:SetFont(pfUI.font_default, C.global.font_size + 2, "OUTLINE")
|
||||||
|
row.caption:SetPoint("LEFT", row, "LEFT", 2, 0)
|
||||||
|
row.caption:SetFontObject(GameFontWhite)
|
||||||
|
row.caption:SetJustifyH("LEFT")
|
||||||
|
|
||||||
frame:SetBackdrop(pfUI.backdrop_hover)
|
-- input field
|
||||||
frame:SetBackdropBorderColor(1,1,1,.04)
|
row.input = CreateFrame("CheckButton", nil, row, "UICheckButtonTemplate")
|
||||||
|
row.input:SetNormalTexture("")
|
||||||
frame:EnableMouse(1)
|
row.input:SetPushedTexture("")
|
||||||
frame:SetScript("OnEnter", AddonOnEnter)
|
row.input:SetHighlightTexture("")
|
||||||
frame:SetScript("OnLeave", AddonOnLeave)
|
CreateBackdrop(row.input, nil, true)
|
||||||
frame:SetScript("OnClick", AddonOnClick)
|
row.input:SetBackdropBorderColor(.3,.3,.3,1)
|
||||||
|
row.input:SetSize(14, 14)
|
||||||
-- caption
|
row.input:SetPoint("RIGHT" , -5, 1)
|
||||||
frame.caption = frame:CreateFontString("Status", "LOW", "GameFontNormal")
|
row.input:SetScript("OnClick", InputOnClick)
|
||||||
frame.caption:SetFont(pfUI.font_default, C.global.font_size + 2, "OUTLINE")
|
|
||||||
frame.caption:SetPoint("LEFT", frame, "LEFT", 2, 0)
|
|
||||||
frame.caption:SetFontObject(GameFontWhite)
|
|
||||||
frame.caption:SetJustifyH("LEFT")
|
|
||||||
frame.caption:SetText(atitle)
|
|
||||||
|
|
||||||
-- input field
|
|
||||||
frame.input = CreateFrame("CheckButton", nil, frame, "UICheckButtonTemplate")
|
|
||||||
frame.input:SetFrameLevel(3)
|
|
||||||
frame.input:SetNormalTexture("")
|
|
||||||
frame.input:SetPushedTexture("")
|
|
||||||
frame.input:SetHighlightTexture("")
|
|
||||||
CreateBackdrop(frame.input, nil, true)
|
|
||||||
frame.input:SetBackdropBorderColor(.3,.3,.3,1)
|
|
||||||
frame.input:SetWidth(14)
|
|
||||||
frame.input:SetHeight(14)
|
|
||||||
frame.input:SetPoint("RIGHT" , -5, 1)
|
|
||||||
frame.input:SetID(i)
|
|
||||||
frame.input:SetScript("OnClick", InputOnClick)
|
|
||||||
end
|
|
||||||
|
|
||||||
if IsAddOnLoaded(i) then
|
|
||||||
pfUI.addons.list[i].input:SetChecked()
|
|
||||||
pfUI.addons.list[i].caption:SetAlpha(1)
|
|
||||||
else
|
|
||||||
pfUI.addons.list[i].caption:SetAlpha(.5)
|
|
||||||
end
|
|
||||||
end
|
end
|
||||||
end)
|
|
||||||
|
|
||||||
-- show only frames in visible range
|
row.addon = addon
|
||||||
function pfUI.addons.scroll:ShowVisibleRange()
|
row.caption:SetText(addon.title)
|
||||||
local top_index, bottom_index, range
|
row.caption:SetAlpha(IsAddOnLoaded(addon.index) and 1 or .5)
|
||||||
range = floor(pfUI.addons.scroll:GetHeight() / 25) + 1
|
row.input:SetChecked(IsAddonEnabled(addon.index))
|
||||||
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)
|
||||||
|
|||||||
+13
-18
@@ -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)
|
||||||
@@ -74,15 +74,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 +161,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
|
||||||
|
|||||||
+20
-33
@@ -40,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()
|
||||||
@@ -52,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()
|
||||||
@@ -415,30 +407,29 @@ 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.pfCooldownReverse = tonumber(C.appearance.bags.cooldown_reverse) or 0
|
local slotframe = pfUI.bags[bag].slots[slot].frame
|
||||||
bankslot.cd.pfCooldownType = "NOGCD"
|
local cdname = slotframe:GetName() .. "Cooldown"
|
||||||
else
|
slotframe.cd = CreateFrame("Cooldown", cdname, slotframe, "CooldownFrameTemplate")
|
||||||
local bagslot = pfUI.bags[bag].slots[slot].frame
|
_G[cdname] = slotframe.cd
|
||||||
bagslot.cd = _G[bagslot:GetName().."Cooldown"]
|
slotframe.cd.pfCooldownStyleAnimation = 1
|
||||||
bagslot.cd.pfCooldownType = "NOGCD"
|
slotframe.cd:SetReverse(C.appearance.bags.cooldown_reverse == "1")
|
||||||
bagslot.cd.pfCooldownReverse = tonumber(C.appearance.bags.cooldown_reverse) or 0
|
slotframe.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")
|
||||||
@@ -584,10 +575,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)
|
||||||
@@ -1141,11 +1132,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
|
||||||
|
|
||||||
|
|||||||
+9
-12
@@ -86,23 +86,23 @@ pfUI:RegisterModule("buff", function ()
|
|||||||
|
|
||||||
-- drive the sweep from the aura duration (weapon enchants and permanent
|
-- drive the sweep from the aura duration (weapon enchants and permanent
|
||||||
-- auras report no usable total, so those buttons stay text-only)
|
-- auras report no usable total, so those buttons stay text-only)
|
||||||
if buff.mode == buff.btype and duration and duration > 0 and expirationTime and expirationTime > 0 then
|
if C.buffs.cooldown_anim == "1" and buff.mode == buff.btype and duration and duration > 0 and expirationTime and expirationTime > 0 then
|
||||||
local now = GetTime()
|
local now = GetTime()
|
||||||
local timeleft = expirationTime - now
|
local timeleft = expirationTime - now
|
||||||
if timeleft > 0 then
|
if timeleft > 0 then
|
||||||
local effDuration = duration > timeleft and duration or timeleft
|
local effDuration = duration > timeleft and duration or timeleft
|
||||||
local newStart = now + timeleft - effDuration
|
local newStart = now + timeleft - effDuration
|
||||||
if buff.cdStart == nil or abs(buff.cdStart - newStart) > .5 or buff.cdDuration ~= effDuration then
|
if buff.cdStart == nil or abs(buff.cdStart - newStart) > .5 or buff.cdDuration ~= effDuration then
|
||||||
CooldownFrame_SetTimer(buff.cd, newStart, effDuration, 1)
|
buff.cd:SetCooldown(newStart, effDuration)
|
||||||
buff.cdStart = newStart
|
buff.cdStart = newStart
|
||||||
buff.cdDuration = effDuration
|
buff.cdDuration = effDuration
|
||||||
end
|
end
|
||||||
else
|
else
|
||||||
CooldownFrame_SetTimer(buff.cd, 0, 0, 0)
|
buff.cd:Clear()
|
||||||
buff.cdStart = nil
|
buff.cdStart = nil
|
||||||
end
|
end
|
||||||
else
|
else
|
||||||
CooldownFrame_SetTimer(buff.cd, 0, 0, 0)
|
buff.cd:Clear()
|
||||||
buff.cdStart = nil
|
buff.cdStart = nil
|
||||||
end
|
end
|
||||||
|
|
||||||
@@ -145,15 +145,13 @@ pfUI:RegisterModule("buff", function ()
|
|||||||
buff.stacks:SetJustifyV("BOTTOM")
|
buff.stacks:SetJustifyV("BOTTOM")
|
||||||
buff.stacks:SetAllPoints(buff)
|
buff.stacks:SetAllPoints(buff)
|
||||||
|
|
||||||
-- radial sweep (the template covers the button and starts hidden;
|
-- radial sweep (the template covers the button and starts hidden).
|
||||||
-- the cooldown hook drives it from here, text stays with buff.timer)
|
-- RefreshBuffButton drives it through the frame's own methods, never
|
||||||
|
-- CooldownFrame_SetTimer, so the cooldown module's hook leaves it alone;
|
||||||
|
-- text stays with buff.timer
|
||||||
buff.cd = CreateFrame("Cooldown", buttonName .. "Cooldown", buff, "CooldownFrameTemplate")
|
buff.cd = CreateFrame("Cooldown", buttonName .. "Cooldown", buff, "CooldownFrameTemplate")
|
||||||
buff.cd:SetFrameLevel(buff:GetFrameLevel() + 1)
|
buff.cd:SetFrameLevel(buff:GetFrameLevel() + 1)
|
||||||
buff.overlay:SetFrameLevel(buff:GetFrameLevel() + 2)
|
buff.overlay:SetFrameLevel(buff:GetFrameLevel() + 2)
|
||||||
buff.cd.pfCooldownType = "ALL"
|
|
||||||
buff.cd.pfCooldownStyleText = 0
|
|
||||||
buff.cd.pfCooldownStyleAnimation = tonumber(C.buffs.cooldown_anim) or 0
|
|
||||||
buff.cd.pfCooldownReverse = tonumber(C.buffs.cooldown_reverse) or 0
|
|
||||||
|
|
||||||
buff:RegisterForClicks("RightButtonUp")
|
buff:RegisterForClicks("RightButtonUp")
|
||||||
|
|
||||||
@@ -345,8 +343,7 @@ pfUI:RegisterModule("buff", function ()
|
|||||||
offsetY = -(rowcount) * ((C.buffs.textinside == "1" and 0 or (fontsize*1.5))+buffSize+2*buffSpacing)
|
offsetY = -(rowcount) * ((C.buffs.textinside == "1" and 0 or (fontsize*1.5))+buffSize+2*buffSpacing)
|
||||||
end
|
end
|
||||||
buff:SetSize(buffSize, buffSize)
|
buff:SetSize(buffSize, buffSize)
|
||||||
buff.cd.pfCooldownStyleAnimation = tonumber(C.buffs.cooldown_anim) or 0
|
buff.cd:SetReverse(C.buffs.cooldown_reverse == "1")
|
||||||
buff.cd.pfCooldownReverse = tonumber(C.buffs.cooldown_reverse) or 0
|
|
||||||
buff:ClearAllPoints()
|
buff:ClearAllPoints()
|
||||||
buff:SetPoint("TOPRIGHT", relFrame, "TOPRIGHT",offsetX, offsetY)
|
buff:SetPoint("TOPRIGHT", relFrame, "TOPRIGHT",offsetX, offsetY)
|
||||||
|
|
||||||
|
|||||||
+2
-2
@@ -234,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)
|
||||||
|
|||||||
+46
-102
@@ -145,7 +145,7 @@ pfUI:RegisterModule("chat", function ()
|
|||||||
["URL"] = function(a1,a2,a3) return pfUI.chat:FormatLink(pfUI.chat.URLPattern.URL.fm,a1,a2,a3) end,
|
["URL"] = 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
|
||||||
else
|
-- stops with the oldest line on top, as the wheel does; ScrollToTop
|
||||||
for i=1, C.chat.global.scrollspeed do
|
-- would leave it alone on the bottom line
|
||||||
this:ScrollUp()
|
this:ScrollByAmount(this:GetMaxScrollRange())
|
||||||
end
|
else
|
||||||
end
|
this:ScrollToBottom()
|
||||||
elseif (arg1 < 0) then
|
|
||||||
if IsShiftKeyDown() then
|
|
||||||
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
|
||||||
|
|
||||||
|
|||||||
+50
-106
@@ -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()
|
||||||
|
|
||||||
|
-- show or hide the copy box of every chat frame
|
||||||
|
local function SetCopyMode(state)
|
||||||
|
button.state = state
|
||||||
|
|
||||||
|
for i=1, _G.NUM_CHAT_WINDOWS do
|
||||||
|
local scroll = _G["ChatFrame"..i].scroll
|
||||||
|
if scroll then
|
||||||
|
scroll:SetShown(state)
|
||||||
|
end
|
||||||
|
end
|
||||||
|
|
||||||
|
if state then
|
||||||
|
button.icon:SetTexture("Interface\\Buttons\\UI-GuildButton-PublicNote-Up")
|
||||||
|
else
|
||||||
|
button.icon:SetTexture("Interface\\Buttons\\UI-GuildButton-PublicNote-Disabled")
|
||||||
|
end
|
||||||
|
end
|
||||||
|
|
||||||
button:SetScript("OnClick", function()
|
button:SetScript("OnClick", function()
|
||||||
if arg1 == "LeftButton" then
|
if arg1 == "LeftButton" then
|
||||||
this.state = not this.state
|
SetCopyMode(not this.state)
|
||||||
|
|
||||||
for i=1, _G.NUM_CHAT_WINDOWS do
|
|
||||||
local frame = _G["ChatFrame"..i]
|
|
||||||
local scroll = frame.scroll
|
|
||||||
|
|
||||||
if scroll and this.state then
|
|
||||||
scroll:Show()
|
|
||||||
elseif scroll then
|
|
||||||
scroll:Hide()
|
|
||||||
end
|
|
||||||
end
|
|
||||||
|
|
||||||
if this.state then
|
|
||||||
button.icon:SetTexture("Interface\\Buttons\\UI-GuildButton-PublicNote-Up")
|
|
||||||
else
|
|
||||||
button.icon:SetTexture("Interface\\Buttons\\UI-GuildButton-PublicNote-Disabled")
|
|
||||||
end
|
|
||||||
elseif arg1 == "RightButton" then
|
elseif arg1 == "RightButton" then
|
||||||
if ChatMenu:IsShown() then
|
if ChatMenu:IsShown() then
|
||||||
ChatMenu:Hide()
|
ChatMenu:Hide()
|
||||||
@@ -56,98 +56,42 @@ 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
|
scroll:SetAllPoints(frame)
|
||||||
combat = combat + 1
|
scroll.tex = scroll:CreateTexture(nil, "BACKGROUND")
|
||||||
|
scroll.tex:SetColorTexture(0,0,0,.95)
|
||||||
|
scroll.tex:SetPoint("TOPLEFT", -3, 3)
|
||||||
|
scroll.tex:SetPoint("BOTTOMRIGHT", 3, -3)
|
||||||
|
scroll:Hide()
|
||||||
|
|
||||||
|
scroll:RegisterCallback("OnEscapePressed", function()
|
||||||
|
SetCopyMode(false)
|
||||||
|
end, scroll)
|
||||||
|
|
||||||
|
scroll:HookScript("OnShow", function()
|
||||||
|
-- each line in its own color, which also replaces the |r resets inside it
|
||||||
|
local lines = {}
|
||||||
|
for index=1, frame:GetNumMessages() do
|
||||||
|
local text, r, g, b = frame:GetMessageInfo(index)
|
||||||
|
if C.chat.text.copytime == "0" then
|
||||||
|
text = pfUI.chat.StripTimestamp(text)
|
||||||
|
end
|
||||||
|
local color = rgbhex(r, g, b)
|
||||||
|
table.insert(lines, color .. text:gsub("|r", color))
|
||||||
end
|
end
|
||||||
end
|
local text = table.concat(lines, "\n")
|
||||||
|
|
||||||
if combat < 5 then
|
scroll:SetFont(frame:GetFont())
|
||||||
-- initialize message cache
|
scroll:SetText(text)
|
||||||
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
|
-- the cursor at the end scrolls the box to the newest line
|
||||||
table.remove(history, limit)
|
scroll:SetFocus()
|
||||||
end
|
scroll:SetCursorPosition(#text)
|
||||||
AddMessage(self,msg,r,g,b)
|
end)
|
||||||
end
|
|
||||||
|
|
||||||
-- read chat defaults
|
frame.scroll = scroll
|
||||||
local font, size, flags = frame:GetFont()
|
|
||||||
|
|
||||||
-- build the frames
|
|
||||||
local scroll = CreateScrollFrame("ChatFrameScroll"..i, frame)
|
|
||||||
scroll:SetAllPoints(frame)
|
|
||||||
scroll.tex = scroll:CreateTexture(nil, "BACKGROUND")
|
|
||||||
scroll.tex:SetTexture(0,0,0,.95)
|
|
||||||
scroll.tex:SetPoint("TOPLEFT", -3, 3)
|
|
||||||
scroll.tex:SetPoint("BOTTOMRIGHT", 3, -3)
|
|
||||||
scroll:Hide()
|
|
||||||
|
|
||||||
local editbox = CreateFrame("EditBox", "pfChatCopyBox" .. i, scroll)
|
|
||||||
editbox:SetSize(frame:GetSize())
|
|
||||||
editbox:SetAllPoints(scroll)
|
|
||||||
editbox:SetTextColor(1,1,1,1)
|
|
||||||
editbox:SetFontObject(ChatFontNormal)
|
|
||||||
editbox:SetFont(font, size, flags)
|
|
||||||
editbox:SetAutoFocus(true)
|
|
||||||
editbox:SetMultiLine(true)
|
|
||||||
editbox:SetMaxLetters(0)
|
|
||||||
|
|
||||||
editbox:SetScript("OnMouseDown", function()
|
|
||||||
editbox.hasFocus = true
|
|
||||||
end)
|
|
||||||
|
|
||||||
editbox:SetScript("OnEscapePressed", function()
|
|
||||||
if editbox.hasFocus then
|
|
||||||
editbox:HighlightText(0, 0)
|
|
||||||
editbox:ClearFocus()
|
|
||||||
editbox.hasFocus = false
|
|
||||||
else
|
|
||||||
editbox:GetParent():Hide()
|
|
||||||
pfChatCopyButton.icon:SetTexture("Interface\\Buttons\\UI-GuildButton-PublicNote-Disabled")
|
|
||||||
pfChatCopyButton.state = false
|
|
||||||
end
|
|
||||||
end)
|
|
||||||
|
|
||||||
scroll:SetScrollChild(editbox)
|
|
||||||
scroll:SetScript("OnShow", function()
|
|
||||||
editbox:SetText("")
|
|
||||||
for i=limit,0,-1 do
|
|
||||||
if history[i] then
|
|
||||||
editbox:Insert("\n" .. history[i])
|
|
||||||
end
|
|
||||||
end
|
|
||||||
|
|
||||||
editbox:SetScript("OnUpdate", function()
|
|
||||||
if not this.count then this.count = 0 end
|
|
||||||
|
|
||||||
scroll:UpdateScrollChildRect()
|
|
||||||
scroll:SetVerticalScroll(scroll:GetVerticalScrollRange())
|
|
||||||
scroll:Scroll()
|
|
||||||
this.count = this.count + 1
|
|
||||||
|
|
||||||
-- the scroll frame takes a while to update
|
|
||||||
if this.count >= 3 then
|
|
||||||
this:SetScript("OnUpdate", nil)
|
|
||||||
this.count = 0
|
|
||||||
end
|
|
||||||
end)
|
|
||||||
end)
|
|
||||||
|
|
||||||
frame.scroll = scroll
|
|
||||||
end
|
|
||||||
end
|
end
|
||||||
|
|
||||||
this:UnregisterAllEvents()
|
this:UnregisterAllEvents()
|
||||||
|
|||||||
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])
|
||||||
|
|||||||
+3
-10
@@ -135,17 +135,10 @@ pfUI:RegisterModule("cooldown", function ()
|
|||||||
start, duration = 0, 0
|
start, duration = 0, 0
|
||||||
end
|
end
|
||||||
|
|
||||||
-- hide animation
|
-- hide foreign animations; frames that set pfCooldownStyleAnimation
|
||||||
if this.pfCooldownStyleAnimation == 0 then
|
-- configure their own sweep (SetDrawSwipe, SetReverse)
|
||||||
|
if not this.pfCooldownStyleAnimation and C.appearance.cd.hideanim == "1" then
|
||||||
this:SetAlpha(0)
|
this:SetAlpha(0)
|
||||||
elseif not this.pfCooldownStyleAnimation and C.appearance.cd.hideanim == "1" then
|
|
||||||
this:SetAlpha(0)
|
|
||||||
end
|
|
||||||
|
|
||||||
-- reversed sweep direction (ClassicAPI backports SetReverse with the
|
|
||||||
-- modern Cooldown frame; stock Model swipes don't have it, so guard it)
|
|
||||||
if this.pfCooldownReverse == 1 and this.SetReverse then
|
|
||||||
this:SetReverse(true)
|
|
||||||
end
|
end
|
||||||
|
|
||||||
-- print time as text on cooldown frames
|
-- print time as text on cooldown frames
|
||||||
|
|||||||
+345
-85
@@ -1,5 +1,250 @@
|
|||||||
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 hides it again.
|
||||||
|
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)
|
||||||
|
|
||||||
|
scene:SetScript("OnClick", function()
|
||||||
|
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 +272,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)
|
||||||
fireworks.text = fireworks:CreateFontString("Status", "LOW", "GameFontWhite")
|
tex.burst.grow = tex.burst:CreateAnimation("Scale")
|
||||||
fireworks.text:SetFont(pfUI.media["font:BigNoodleTitling.ttf"], 38)
|
tex.burst.grow:SetDuration(5/3)
|
||||||
fireworks.text:SetPoint("TOP", 0, -400)
|
local fade = tex.burst:CreateAnimation("Alpha")
|
||||||
fireworks.text:SetText("happy new year!")
|
fade:SetChange(-1)
|
||||||
|
fade:SetDuration(5/3)
|
||||||
fireworks.dtext = fireworks:CreateFontString("Status", "LOW", "GameFontWhite")
|
tex.burst:SetScript("OnFinished", function() explosions:Release(tex) end)
|
||||||
fireworks.dtext:SetFont(STANDARD_TEXT_FONT, 14, "OUTLINE")
|
|
||||||
fireworks.dtext:SetPoint("TOP", 0, -430)
|
|
||||||
fireworks.dtext:SetText("Another year with |cff33ffccpf|rUI has passed.\nThanks for continuing to use it!\n\n|cff444444<Click> or '/afk' to exit")
|
|
||||||
|
|
||||||
fireworks:SetScript("OnClick", function()
|
|
||||||
this:Hide()
|
|
||||||
end)
|
|
||||||
|
|
||||||
-- trigger fireworks when being AFK
|
|
||||||
fireworks:RegisterEvent("PLAYER_FLAGS_CHANGED")
|
|
||||||
fireworks:SetScript("OnEvent", function()
|
|
||||||
local isAFK = UnitIsAFK('player')
|
|
||||||
if isAFK then
|
|
||||||
this:SetAlpha(0)
|
|
||||||
end
|
end
|
||||||
this:SetShown(isAFK)
|
|
||||||
end)
|
|
||||||
|
|
||||||
-- basic explosion animation
|
tex:SetPoint("CENTER", fireworks, "TOPLEFT", x, y)
|
||||||
local function animation()
|
tex:SetSize(size, size)
|
||||||
local fps = (60 / math.max(GetFramerate(), 1))
|
tex:SetColorTexture(r, g, b, a)
|
||||||
this:SetWidth(this:GetWidth()+fps)
|
tex.burst.grow:SetScale((size + 100) / size, (size + 100) / size)
|
||||||
this:SetHeight(this:GetHeight()+fps)
|
tex:Show()
|
||||||
this:SetAlpha(this:GetAlpha()-fps*.01)
|
tex.burst:Play()
|
||||||
if this:GetAlpha() <= 0 then
|
|
||||||
this.free = true
|
|
||||||
this:Hide()
|
|
||||||
end
|
|
||||||
end
|
end
|
||||||
|
|
||||||
-- cache explosions to reuse frames
|
fireworks:HookScript("OnHide", function()
|
||||||
local explosions = {}
|
explosions:ReleaseAll()
|
||||||
local function GetExplosion()
|
end)
|
||||||
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 +389,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
|
||||||
|
|||||||
@@ -260,7 +260,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
|
||||||
|
|||||||
@@ -135,11 +135,9 @@ 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)
|
|
||||||
end
|
|
||||||
|
|
||||||
local function makeHook(getter)
|
local function makeHook(getter)
|
||||||
return function(tooltip, arg1, arg2, arg3)
|
return function(tooltip, arg1, arg2, arg3)
|
||||||
|
|||||||
+242
-390
@@ -204,110 +204,62 @@ pfUI:RegisterModule("equipmentmanager", function()
|
|||||||
end)
|
end)
|
||||||
|
|
||||||
-- ============================================================
|
-- ============================================================
|
||||||
-- Per-row context menu (single instance, repositioned per click).
|
-- Per-row context menu, opened from the gear icon on each set row.
|
||||||
-- Triggered by the gear icon on each set row.
|
|
||||||
-- ============================================================
|
-- ============================================================
|
||||||
|
|
||||||
local rowMenu = CreateFrame("Frame", "pfEqMgrRowMenu", UIParent)
|
local function EditSet(setID)
|
||||||
rowMenu:SetFrameStrata("DIALOG")
|
local name, icon = C_EquipmentSet.GetEquipmentSetInfo(setID)
|
||||||
rowMenu:SetSize(140, 50);
|
selectedSetID = setID
|
||||||
rowMenu:Hide()
|
|
||||||
CreateBackdrop(rowMenu, nil, nil, .95)
|
|
||||||
CreateBackdropShadow(rowMenu)
|
|
||||||
rowMenu:EnableMouse(true)
|
|
||||||
|
|
||||||
-- Close on click outside via GLOBAL_MOUSE_DOWN (fires on any click
|
|
||||||
-- without consuming it). The anchorBtn check defers the gear-click
|
|
||||||
-- toggle to the gear's own OnClick so opening doesn't trigger close.
|
|
||||||
rowMenu:RegisterEvent("GLOBAL_MOUSE_DOWN")
|
|
||||||
rowMenu:SetScript("OnEvent", function()
|
|
||||||
if not this:IsShown() then return end
|
|
||||||
if MouseIsOverHitRect(this) then return end
|
|
||||||
if this.anchorBtn and MouseIsOverHitRect(this.anchorBtn) then return end
|
|
||||||
this:Hide()
|
|
||||||
end)
|
|
||||||
tinsert(UISpecialFrames, "pfEqMgrRowMenu") -- Escape closes it
|
|
||||||
|
|
||||||
rowMenu.changeBtn = CreateFrame("Button", nil, rowMenu, "UIPanelButtonTemplate")
|
|
||||||
rowMenu.changeBtn:SetSize(130, 20);
|
|
||||||
rowMenu.changeBtn:SetPoint("TOPLEFT", rowMenu, "TOPLEFT", 5, -3)
|
|
||||||
rowMenu.changeBtn:SetText(EQUIPMENT_SET_EDIT)
|
|
||||||
SkinButton(rowMenu.changeBtn)
|
|
||||||
rowMenu.changeBtn:SetScript("OnClick", function()
|
|
||||||
rowMenu:Hide()
|
|
||||||
if not rowMenu.targetSetID then return end
|
|
||||||
local name, icon = C_EquipmentSet.GetEquipmentSetInfo(rowMenu.targetSetID)
|
|
||||||
selectedSetID = rowMenu.targetSetID
|
|
||||||
OpenNamePopup("save", name, icon)
|
OpenNamePopup("save", name, icon)
|
||||||
end)
|
end
|
||||||
|
|
||||||
rowMenu.deleteBtn = CreateFrame("Button", nil, rowMenu, "UIPanelButtonTemplate")
|
local function DeleteSet(setID)
|
||||||
rowMenu.deleteBtn:SetSize(130, 20);
|
local name = C_EquipmentSet.GetEquipmentSetInfo(setID)
|
||||||
rowMenu.deleteBtn:SetPoint("TOP", rowMenu.changeBtn, "BOTTOM", 0, -2)
|
|
||||||
rowMenu.deleteBtn:SetText(DELETE)
|
|
||||||
SkinButton(rowMenu.deleteBtn)
|
|
||||||
rowMenu.deleteBtn:SetScript("OnClick", function()
|
|
||||||
rowMenu:Hide()
|
|
||||||
if not rowMenu.targetSetID then return end
|
|
||||||
local targetID = rowMenu.targetSetID
|
|
||||||
local name = C_EquipmentSet.GetEquipmentSetInfo(targetID)
|
|
||||||
StaticPopupDialogs["PFUI_EQMGR_DELETE"] = {
|
StaticPopupDialogs["PFUI_EQMGR_DELETE"] = {
|
||||||
text = string.format(CONFIRM_DELETE_EQUIPMENT_SET, name or "?"),
|
text = string.format(CONFIRM_DELETE_EQUIPMENT_SET, name or "?"),
|
||||||
button1 = YES, button2 = NO,
|
button1 = YES, button2 = NO,
|
||||||
OnAccept = function()
|
OnAccept = function()
|
||||||
pendingIgnoredToggles[targetID] = nil
|
pendingIgnoredToggles[setID] = nil
|
||||||
C_EquipmentSet.DeleteEquipmentSet(targetID)
|
C_EquipmentSet.DeleteEquipmentSet(setID)
|
||||||
if selectedSetID == targetID then selectedSetID = nil end
|
if selectedSetID == setID then selectedSetID = nil end
|
||||||
pfUI.equipmentmanager.Refresh()
|
pfUI.equipmentmanager.Refresh()
|
||||||
end,
|
end,
|
||||||
timeout = 0, whileDead = 1, hideOnEscape = 1, exclusive = 1,
|
timeout = 0, whileDead = 1, hideOnEscape = 1, exclusive = 1,
|
||||||
}
|
}
|
||||||
StaticPopup_Show("PFUI_EQMGR_DELETE")
|
StaticPopup_Show("PFUI_EQMGR_DELETE")
|
||||||
end)
|
end
|
||||||
|
|
||||||
|
-- The row owns the menu, not the gear: the gear hides when the cursor
|
||||||
|
-- leaves the row for the menu, and a menu closes with its owner.
|
||||||
|
local function GenerateSetMenu(row, rootDescription)
|
||||||
|
rootDescription:CreateButton(EQUIPMENT_SET_EDIT, EditSet, row.setID)
|
||||||
|
rootDescription:CreateButton(DELETE, DeleteSet, row.setID)
|
||||||
|
end
|
||||||
|
|
||||||
-- ============================================================
|
-- ============================================================
|
||||||
-- Set list (left column)
|
-- Set list (left column)
|
||||||
-- ============================================================
|
-- ============================================================
|
||||||
|
|
||||||
local LIST_VISIBLE_ROWS = 7
|
local LIST_VISIBLE_ROWS = 7
|
||||||
local LIST_ROW_STRIDE = SET_ROW_HEIGHT + 2
|
-- The template keeps 5px around the rows, which sit 2px apart.
|
||||||
local listFrame = CreateFrame("Frame", nil, frame)
|
local listFrame = CreateFrame("Frame", nil, frame, "pfUIScrollBoxListTemplate")
|
||||||
listFrame:SetPoint("TOPLEFT", frame, "TOPLEFT", 16, -58)
|
listFrame:SetPoint("TOPLEFT", frame, "TOPLEFT", 16, -58)
|
||||||
-- Height fits N rows + (N-1) inter-row gaps + 3px top/bottom padding.
|
listFrame:SetSize(180, LIST_VISIBLE_ROWS * (SET_ROW_HEIGHT + 2) - 2 + 10)
|
||||||
listFrame:SetSize(180, LIST_VISIBLE_ROWS * LIST_ROW_STRIDE + 4)
|
|
||||||
CreateBackdrop(listFrame, nil, nil, .75)
|
CreateBackdrop(listFrame, nil, nil, .75)
|
||||||
|
|
||||||
-- Mouse-wheel scroll: list of [sets..., newSetRow] is virtualized
|
-- One-time setup of a pooled row. A row shows a set or, last in the
|
||||||
-- through LIST_VISIBLE_ROWS slots. Refresh() consumes listFrame.offset
|
-- list, the "New Set" entry; InitSetRow sets what differs.
|
||||||
-- and the wheel handler clamps + bumps it.
|
local function SetupSetRow(row)
|
||||||
listFrame.offset = 0
|
|
||||||
listFrame:EnableMouseWheel(true)
|
|
||||||
listFrame:SetScript("OnMouseWheel", function()
|
|
||||||
listFrame.offset = listFrame.offset - (arg1 or 0)
|
|
||||||
pfUI.equipmentmanager.Refresh()
|
|
||||||
end)
|
|
||||||
|
|
||||||
local setRows = {}
|
|
||||||
local function CreateSetRow()
|
|
||||||
local row = CreateFrame("Button", nil, listFrame)
|
|
||||||
row:SetSize(170, SET_ROW_HEIGHT)
|
|
||||||
-- Position is set per-Refresh based on the row's visible slot;
|
|
||||||
-- start anchored to avoid uninitialized geometry before first Refresh.
|
|
||||||
row:SetPoint("TOPLEFT", listFrame, "TOPLEFT", 5, -3)
|
|
||||||
|
|
||||||
row.icon = row:CreateTexture(nil, "ARTWORK")
|
row.icon = row:CreateTexture(nil, "ARTWORK")
|
||||||
row.icon:SetSize(30, 30)
|
row.icon:SetPoint("CENTER", row, "LEFT", 17, 0)
|
||||||
row.icon:SetPoint("LEFT", row, "LEFT", 2, 0)
|
|
||||||
row.icon:SetTexCoord(.08, .92, .08, .92)
|
|
||||||
|
|
||||||
row.text = row:CreateFontString(nil, "OVERLAY", "GameFontNormal")
|
row.text = row:CreateFontString(nil, "OVERLAY", "GameFontNormal")
|
||||||
row.text:SetPoint("LEFT", row.icon, "RIGHT", 6, 0)
|
row.text:SetPoint("LEFT", row, "LEFT", 38, 0)
|
||||||
row.text:SetPoint("RIGHT", row, "RIGHT", -22, 0)
|
|
||||||
row.text:SetJustifyH("LEFT")
|
row.text:SetJustifyH("LEFT")
|
||||||
|
|
||||||
row.highlight = row:CreateTexture(nil, "BACKGROUND")
|
row.highlight = row:CreateTexture(nil, "BACKGROUND")
|
||||||
row.highlight:SetAllPoints(row)
|
row.highlight:SetAllPoints(row)
|
||||||
row.highlight:SetTexture(.3, .3, .3, .4)
|
row.highlight:SetColorTexture(.3, .3, .3, .4)
|
||||||
row.highlight:Hide()
|
row.highlight:Hide()
|
||||||
|
|
||||||
row.gear = CreateFrame("Button", nil, row)
|
row.gear = CreateFrame("Button", nil, row)
|
||||||
@@ -316,58 +268,42 @@ pfUI:RegisterModule("equipmentmanager", function()
|
|||||||
row.gear.tex = row.gear:CreateTexture(nil, "ARTWORK")
|
row.gear.tex = row.gear:CreateTexture(nil, "ARTWORK")
|
||||||
row.gear.tex:SetAllPoints(row.gear)
|
row.gear.tex:SetAllPoints(row.gear)
|
||||||
row.gear.tex:SetTexture(pfUI.path.."\\img\\Gear_64Grey")
|
row.gear.tex:SetTexture(pfUI.path.."\\img\\Gear_64Grey")
|
||||||
row.gear:SetHighlightTexture("Interface\\Buttons\\ButtonHilight-Square", "ADD")
|
row.gear.tex:SetAlpha(.5)
|
||||||
|
-- the gear drawn again additively lights up the gear itself
|
||||||
|
row.gear:SetHighlightTexture(pfUI.path.."\\img\\Gear_64Grey", "ADD")
|
||||||
|
-- moving onto the gear does not leave the row
|
||||||
|
row.gear:SetPropagateMouseMotion(true)
|
||||||
row.gear:Hide()
|
row.gear:Hide()
|
||||||
|
row.menuMixin = pfUIMenuStyleMixin
|
||||||
row.gear:SetScript("OnClick", function()
|
row.gear:SetScript("OnClick", function()
|
||||||
if not row.setID then return end
|
if row.setID then MenuUtil.CreateContextMenu(row, GenerateSetMenu) end
|
||||||
-- Toggle: clicking the gear that owns the open menu closes it.
|
|
||||||
-- GLOBAL_MOUSE_DOWN's anchorBtn check excludes the gear, so the
|
|
||||||
-- close has to happen here.
|
|
||||||
if rowMenu:IsShown() and rowMenu.targetSetID == row.setID then
|
|
||||||
rowMenu:Hide()
|
|
||||||
return
|
|
||||||
end
|
|
||||||
rowMenu.targetSetID = row.setID
|
|
||||||
rowMenu.anchorBtn = row.gear
|
|
||||||
rowMenu:ClearAllPoints()
|
|
||||||
rowMenu:SetPoint("TOPRIGHT", row.gear, "BOTTOMRIGHT", 0, 0)
|
|
||||||
rowMenu:Show()
|
|
||||||
end)
|
end)
|
||||||
|
|
||||||
row:SetScript("OnClick", function()
|
row:SetScript("OnClick", function()
|
||||||
selectedSetID = row.setID
|
if row.setID then
|
||||||
-- Detect double-click manually; vanilla Button has no native event.
|
selectedSetID = row.setID
|
||||||
local now = GetTime()
|
pfUI.equipmentmanager.Refresh()
|
||||||
if row.lastClick and (now - row.lastClick) < 0.4 then
|
|
||||||
row.lastClick = nil
|
|
||||||
EquipSet(row.setID)
|
|
||||||
else
|
else
|
||||||
row.lastClick = now
|
OpenNamePopup("new")
|
||||||
end
|
end
|
||||||
pfUI.equipmentmanager.Refresh()
|
end)
|
||||||
|
row:SetScript("OnDoubleClick", function()
|
||||||
|
if row.setID then EquipSet(row.setID) end
|
||||||
end)
|
end)
|
||||||
|
|
||||||
-- Drag a set onto an action bar. PickupEquipmentSet is newer than
|
-- Drag a set onto an action bar.
|
||||||
-- the rest of C_EquipmentSet, so dragging stays inert on ClassicAPI
|
row:RegisterForDrag("LeftButton")
|
||||||
-- builds that don't ship it yet.
|
row:SetScript("OnDragStart", function()
|
||||||
if C_EquipmentSet.PickupEquipmentSet then
|
if row.setID then C_EquipmentSet.PickupEquipmentSet(row.setID) end
|
||||||
row:RegisterForDrag("LeftButton")
|
end)
|
||||||
row:SetScript("OnDragStart", function()
|
|
||||||
if row.setID then C_EquipmentSet.PickupEquipmentSet(row.setID) end
|
|
||||||
end)
|
|
||||||
end
|
|
||||||
|
|
||||||
-- Show the gear and tooltip while the cursor is over the row or its
|
-- A set row shows its gear and tooltip while the cursor is over it;
|
||||||
-- gear child. The gear sits inside the row's rectangle, so a single
|
-- the "New Set" row lights up.
|
||||||
-- MouseIsOverHitRect(row) check covers both. OnLeave on the row and the
|
|
||||||
-- gear catches every exit path, so no OnUpdate poll is needed.
|
|
||||||
local function HideRowHover()
|
|
||||||
if MouseIsOverHitRect(row) then return end
|
|
||||||
GameTooltip:Hide()
|
|
||||||
row.gear:Hide()
|
|
||||||
end
|
|
||||||
row:SetScript("OnEnter", function()
|
row:SetScript("OnEnter", function()
|
||||||
if not row.setID then return end
|
if not row.setID then
|
||||||
|
row.highlight:Show()
|
||||||
|
return
|
||||||
|
end
|
||||||
local name = C_EquipmentSet.GetEquipmentSetInfo(row.setID)
|
local name = C_EquipmentSet.GetEquipmentSetInfo(row.setID)
|
||||||
if name then
|
if name then
|
||||||
GameTooltip:SetOwner(row, "ANCHOR_RIGHT")
|
GameTooltip:SetOwner(row, "ANCHOR_RIGHT")
|
||||||
@@ -376,40 +312,50 @@ pfUI:RegisterModule("equipmentmanager", function()
|
|||||||
end
|
end
|
||||||
row.gear:Show()
|
row.gear:Show()
|
||||||
end)
|
end)
|
||||||
row:SetScript("OnLeave", HideRowHover)
|
row:SetScript("OnLeave", function()
|
||||||
row.gear:SetScript("OnLeave", HideRowHover)
|
GameTooltip:Hide()
|
||||||
|
row.gear:Hide()
|
||||||
return row
|
if not row.setID then row.highlight:Hide() end
|
||||||
|
end)
|
||||||
end
|
end
|
||||||
|
|
||||||
-- Rows are allocated lazily in Refresh — ClassicAPI no longer caps
|
local function InitSetRow(row, entry)
|
||||||
-- the number of equipment sets, so we grow the pool to numSets on
|
if not row.text then SetupSetRow(row) end
|
||||||
-- demand. The set list is wheel-scrolled, so only LIST_VISIBLE_ROWS
|
|
||||||
-- are ever positioned in-frame at a time, but each row is bound to a
|
|
||||||
-- specific set index (row[i] always shows ids[i]).
|
|
||||||
|
|
||||||
local newSetRow = CreateFrame("Button", nil, listFrame)
|
row.setID = entry.setID
|
||||||
newSetRow:SetSize(170, SET_ROW_HEIGHT);
|
row.gear:Hide()
|
||||||
|
|
||||||
newSetRow.icon = newSetRow:CreateTexture(nil, "ARTWORK")
|
if not entry.setID then
|
||||||
newSetRow.icon:SetSize(24, 24);
|
row.icon:SetSize(24, 24)
|
||||||
newSetRow.icon:SetPoint("LEFT", newSetRow, "LEFT", 5, 0)
|
row.icon:SetTexCoord(0, 1, 0, 1)
|
||||||
newSetRow.icon:SetTexture(pfUI.path.."\\img\\Character-Plus")
|
row.icon:SetTexture(pfUI.path.."\\img\\Character-Plus")
|
||||||
|
row.text:SetPoint("RIGHT", row, "RIGHT", -4, 0)
|
||||||
|
row.text:SetText(PAPERDOLL_NEWEQUIPMENTSET)
|
||||||
|
row.text:SetTextColor(0.2, 1, 0.2)
|
||||||
|
row.highlight:Hide()
|
||||||
|
return
|
||||||
|
end
|
||||||
|
|
||||||
newSetRow.text = newSetRow:CreateFontString(nil, "OVERLAY", "GameFontNormal")
|
local name, icon, _, isEquipped, _, _, _, numMissing = C_EquipmentSet.GetEquipmentSetInfo(entry.setID)
|
||||||
newSetRow.text:SetPoint("LEFT", newSetRow.icon, "RIGHT", 8, 0)
|
row.icon:SetSize(30, 30)
|
||||||
newSetRow.text:SetPoint("RIGHT", newSetRow, "RIGHT", -4, 0)
|
row.icon:SetTexCoord(.08, .92, .08, .92)
|
||||||
newSetRow.text:SetJustifyH("LEFT")
|
if icon then
|
||||||
newSetRow.text:SetText(PAPERDOLL_NEWEQUIPMENTSET)
|
row.icon:SetTexture(string.find(icon, "\\") and icon or ("Interface\\Icons\\" .. icon))
|
||||||
newSetRow.text:SetTextColor(0.2, 1, 0.2)
|
else
|
||||||
|
row.icon:SetTexture("Interface\\Icons\\INV_Misc_QuestionMark")
|
||||||
|
end
|
||||||
|
-- Color precedence: missing items (red) > equipped (green) > normal (white).
|
||||||
|
local color = (numMissing and numMissing > 0) and "|cffff5555"
|
||||||
|
or isEquipped and "|cff33ff33" or "|cffffffff"
|
||||||
|
row.text:SetPoint("RIGHT", row, "RIGHT", -22, 0)
|
||||||
|
row.text:SetText(color .. (name or "?") .. "|r")
|
||||||
|
row.highlight:SetShown(entry.setID == selectedSetID)
|
||||||
|
end
|
||||||
|
|
||||||
newSetRow.highlight = newSetRow:CreateTexture(nil, "BACKGROUND")
|
local setView = CreateScrollBoxListLinearView(0, 0, 0, 2, 2)
|
||||||
newSetRow.highlight:SetAllPoints(newSetRow)
|
setView:SetElementExtent(SET_ROW_HEIGHT)
|
||||||
newSetRow.highlight:SetTexture(.3, .3, .3, .4)
|
setView:SetElementInitializer("Button", InitSetRow)
|
||||||
newSetRow.highlight:Hide()
|
ScrollUtil.InitScrollBoxListWithScrollBar(listFrame.ScrollBox, listFrame.ScrollBar, setView)
|
||||||
newSetRow:SetScript("OnEnter", function() newSetRow.highlight:Show() end)
|
|
||||||
newSetRow:SetScript("OnLeave", function() newSetRow.highlight:Hide() end)
|
|
||||||
newSetRow:SetScript("OnClick", function() OpenNamePopup("new") end)
|
|
||||||
|
|
||||||
local function MakeButton(name, label, parent, anchor, ax, ay, width)
|
local function MakeButton(name, label, parent, anchor, ax, ay, width)
|
||||||
local b = CreateFrame("Button", name, parent, "UIPanelButtonTemplate")
|
local b = CreateFrame("Button", name, parent, "UIPanelButtonTemplate")
|
||||||
@@ -832,7 +778,7 @@ pfUI:RegisterModule("equipmentmanager", function()
|
|||||||
function UpdatePopouts()
|
function UpdatePopouts()
|
||||||
local show = PopoutsActive()
|
local show = PopoutsActive()
|
||||||
for _, b in ipairs(popoutButtons) do
|
for _, b in ipairs(popoutButtons) do
|
||||||
if show then b:Show() else b:Hide() end
|
b:SetShown(show)
|
||||||
end
|
end
|
||||||
if not show then flyout:Hide() end
|
if not show then flyout:Hide() end
|
||||||
end
|
end
|
||||||
@@ -863,60 +809,21 @@ pfUI:RegisterModule("equipmentmanager", function()
|
|||||||
selectedSetID = nil
|
selectedSetID = nil
|
||||||
end
|
end
|
||||||
|
|
||||||
-- Virtual list = sets ++ newSetRow. Clamp the current scroll
|
-- The rows are the sets, then the "New Set" entry. They are rebuilt
|
||||||
-- offset against the visible window before laying out rows so
|
-- only when the sets change; otherwise the shown rows refresh in
|
||||||
-- deleting sets snaps the list back into view.
|
-- place, so the row under the cursor stays the same frame and a
|
||||||
local totalItems = numSets + 1
|
-- double-click reaches it.
|
||||||
local maxOffset = math.max(0, totalItems - LIST_VISIBLE_ROWS)
|
local setsKey = table.concat(ids, ",")
|
||||||
if listFrame.offset > maxOffset then listFrame.offset = maxOffset end
|
if setsKey ~= listFrame.setsKey then
|
||||||
if listFrame.offset < 0 then listFrame.offset = 0 end
|
listFrame.setsKey = setsKey
|
||||||
local off = listFrame.offset
|
local entries = {}
|
||||||
|
for _, setID in ipairs(ids) do
|
||||||
-- Set rows: lazy-grow the pool to numSets, then position visible
|
table.insert(entries, { setID = setID })
|
||||||
-- ones into slots and hide the rest. Each row stays bound to a
|
|
||||||
-- specific set index (row[i] always shows ids[i]).
|
|
||||||
for i = 1, numSets do
|
|
||||||
if not setRows[i] then setRows[i] = CreateSetRow() end
|
|
||||||
local row = setRows[i]
|
|
||||||
local slot = i - off
|
|
||||||
if slot >= 1 and slot <= LIST_VISIBLE_ROWS then
|
|
||||||
local setID = ids[i]
|
|
||||||
local name, icon, _, isEquipped, _, _, _, numMissing = C_EquipmentSet.GetEquipmentSetInfo(setID)
|
|
||||||
row.setID = setID
|
|
||||||
-- Color precedence: missing items (red) > equipped (green) > normal (white).
|
|
||||||
local color = (numMissing and numMissing > 0) and "|cffff5555"
|
|
||||||
or isEquipped and "|cff33ff33" or "|cffffffff"
|
|
||||||
row.text:SetText(color .. (name or "?") .. "|r")
|
|
||||||
if icon then
|
|
||||||
local full = string.find(icon, "\\") and icon or ("Interface\\Icons\\" .. icon)
|
|
||||||
row.icon:SetTexture(full)
|
|
||||||
else
|
|
||||||
row.icon:SetTexture("Interface\\Icons\\INV_Misc_QuestionMark")
|
|
||||||
end
|
|
||||||
if setID == selectedSetID then row.highlight:Show() else row.highlight:Hide() end
|
|
||||||
row:ClearAllPoints()
|
|
||||||
row:SetPoint("TOPLEFT", listFrame, "TOPLEFT", 5, -3 - (slot - 1) * LIST_ROW_STRIDE)
|
|
||||||
row:Show()
|
|
||||||
else
|
|
||||||
row:Hide()
|
|
||||||
row.setID = nil
|
|
||||||
end
|
end
|
||||||
end
|
table.insert(entries, { newSet = true })
|
||||||
-- Hide pool entries past the current set count (left over from a
|
listFrame.ScrollBox:SetDataProvider(CreateDataProvider(entries), ScrollBoxConstants.RetainScrollPosition)
|
||||||
-- previous Refresh with more sets — e.g. just deleted one).
|
|
||||||
for i = numSets + 1, table.getn(setRows) do
|
|
||||||
setRows[i]:Hide()
|
|
||||||
setRows[i].setID = nil
|
|
||||||
end
|
|
||||||
|
|
||||||
-- "+ New Set" row occupies virtual index numSets+1.
|
|
||||||
local newSlot = (numSets + 1) - off
|
|
||||||
if newSlot >= 1 and newSlot <= LIST_VISIBLE_ROWS then
|
|
||||||
newSetRow:ClearAllPoints()
|
|
||||||
newSetRow:SetPoint("TOPLEFT", listFrame, "TOPLEFT", 5, -3 - (newSlot - 1) * LIST_ROW_STRIDE)
|
|
||||||
newSetRow:Show()
|
|
||||||
else
|
else
|
||||||
newSetRow:Hide()
|
listFrame.ScrollBox:ReinitializeFrames()
|
||||||
end
|
end
|
||||||
|
|
||||||
-- Update the ignored-overlay textures attached to each paperdoll
|
-- Update the ignored-overlay textures attached to each paperdoll
|
||||||
@@ -924,7 +831,7 @@ pfUI:RegisterModule("equipmentmanager", function()
|
|||||||
-- uncommitted user changes show immediately.
|
-- uncommitted user changes show immediately.
|
||||||
local setIgnored = selectedSetID and GetEffectiveIgnored(selectedSetID) or {}
|
local setIgnored = selectedSetID and GetEffectiveIgnored(selectedSetID) or {}
|
||||||
for slotID, overlay in pairs(slotOverlays) do
|
for slotID, overlay in pairs(slotOverlays) do
|
||||||
if frame:IsShown() and selectedSetID and setIgnored[slotID] then overlay:Show() else overlay:Hide() end
|
overlay:SetShown(frame:IsShown() and selectedSetID and setIgnored[slotID])
|
||||||
end
|
end
|
||||||
|
|
||||||
local hasSelection = selectedSetID and true or false
|
local hasSelection = selectedSetID and true or false
|
||||||
@@ -957,19 +864,6 @@ pfUI:RegisterModule("equipmentmanager", function()
|
|||||||
return b
|
return b
|
||||||
end
|
end
|
||||||
|
|
||||||
-- Dropdown entries carry a `.value`; select one by value instead of index.
|
|
||||||
local function SelectDropdownValue(dd, value)
|
|
||||||
local menu = dd:GetMenu()
|
|
||||||
for i, entry in ipairs(menu or {}) do
|
|
||||||
if entry.value == value then
|
|
||||||
dd:SetSelection(i)
|
|
||||||
return
|
|
||||||
end
|
|
||||||
end
|
|
||||||
dd.id = nil
|
|
||||||
dd.text:SetText("")
|
|
||||||
end
|
|
||||||
|
|
||||||
local function Print(msg)
|
local function Print(msg)
|
||||||
DEFAULT_CHAT_FRAME:AddMessage("|cff33ffccpf|cffffffffUI|r: " .. msg)
|
DEFAULT_CHAT_FRAME:AddMessage("|cff33ffccpf|cffffffffUI|r: " .. msg)
|
||||||
end
|
end
|
||||||
@@ -1102,11 +996,14 @@ pfUI:RegisterModule("equipmentmanager", function()
|
|||||||
|
|
||||||
local UNUSED_COLS, UNUSED_ROWS = 7, 8
|
local UNUSED_COLS, UNUSED_ROWS = 7, 8
|
||||||
local UNUSED_SIZE, UNUSED_GAP = 30, 4
|
local UNUSED_SIZE, UNUSED_GAP = 30, 4
|
||||||
local UNUSED_STRIDE = UNUSED_SIZE + UNUSED_GAP
|
|
||||||
|
-- The grid's list template keeps 5px around the buttons and a 7px scroll
|
||||||
|
-- bar 2px right of them.
|
||||||
|
local UNUSED_GRID_W = UNUSED_COLS * (UNUSED_SIZE + UNUSED_GAP) - UNUSED_GAP + 2 + 7 + 10
|
||||||
|
local UNUSED_GRID_H = UNUSED_ROWS * (UNUSED_SIZE + UNUSED_GAP) - UNUSED_GAP + 10
|
||||||
|
|
||||||
local unusedPanel = CreateSubPanel("pfEqMgrUnusedFrame",
|
local unusedPanel = CreateSubPanel("pfEqMgrUnusedFrame",
|
||||||
UNUSED_COLS * UNUSED_STRIDE + 24, frame:GetHeight(), T["Items Not In Any Set"])
|
UNUSED_GRID_W + 22, frame:GetHeight(), T["Items Not In Any Set"])
|
||||||
unusedPanel.offset = 0 -- first visible row
|
|
||||||
|
|
||||||
unusedPanel.info = unusedPanel:CreateFontString(nil, "OVERLAY", "GameFontHighlightSmall")
|
unusedPanel.info = unusedPanel:CreateFontString(nil, "OVERLAY", "GameFontHighlightSmall")
|
||||||
unusedPanel.info:SetPoint("TOPLEFT", unusedPanel, "TOPLEFT", 14, -34)
|
unusedPanel.info:SetPoint("TOPLEFT", unusedPanel, "TOPLEFT", 14, -34)
|
||||||
@@ -1118,14 +1015,13 @@ pfUI:RegisterModule("equipmentmanager", function()
|
|||||||
unusedPanel.showIgnored.label:SetPoint("RIGHT", unusedPanel.showIgnored, "LEFT", -4, 0)
|
unusedPanel.showIgnored.label:SetPoint("RIGHT", unusedPanel.showIgnored, "LEFT", -4, 0)
|
||||||
unusedPanel.showIgnored.label:SetText(T["Show Ignored"])
|
unusedPanel.showIgnored.label:SetText(T["Show Ignored"])
|
||||||
|
|
||||||
local unusedGrid = CreateFrame("Frame", nil, unusedPanel)
|
local unusedGrid = CreateFrame("Frame", nil, unusedPanel, "pfUIScrollBoxListTemplate")
|
||||||
unusedGrid:SetPoint("TOPLEFT", unusedPanel, "TOPLEFT", 12 + UNUSED_GAP/2, -54)
|
unusedGrid:SetPoint("TOPLEFT", unusedPanel, "TOPLEFT", 11, -51)
|
||||||
unusedGrid:SetSize(UNUSED_COLS * UNUSED_STRIDE, UNUSED_ROWS * UNUSED_STRIDE)
|
unusedGrid:SetSize(UNUSED_GRID_W, UNUSED_GRID_H)
|
||||||
unusedGrid:EnableMouseWheel(true)
|
|
||||||
|
|
||||||
unusedPanel.empty = unusedPanel:CreateFontString(nil, "OVERLAY", "GameFontDisable")
|
unusedPanel.empty = unusedPanel:CreateFontString(nil, "OVERLAY", "GameFontDisable")
|
||||||
unusedPanel.empty:SetPoint("CENTER", unusedGrid, "CENTER", 0, 0)
|
unusedPanel.empty:SetPoint("CENTER", unusedGrid, "CENTER", 0, 0)
|
||||||
unusedPanel.empty:SetWidth(UNUSED_COLS * UNUSED_STRIDE - 10)
|
unusedPanel.empty:SetWidth(UNUSED_GRID_W - 20)
|
||||||
unusedPanel.empty:SetText(T["Every equippable item is part of a set."])
|
unusedPanel.empty:SetText(T["Every equippable item is part of a set."])
|
||||||
|
|
||||||
unusedPanel.hint = unusedPanel:CreateFontString(nil, "OVERLAY", "GameFontDisableSmall")
|
unusedPanel.hint = unusedPanel:CreateFontString(nil, "OVERLAY", "GameFontDisableSmall")
|
||||||
@@ -1135,7 +1031,6 @@ pfUI:RegisterModule("equipmentmanager", function()
|
|||||||
unusedPanel.hint:SetText(T["Shift-Click: Link Ctrl-Click: Preview\nRight-Click: Ignore / Unignore"])
|
unusedPanel.hint:SetText(T["Shift-Click: Link Ctrl-Click: Preview\nRight-Click: Ignore / Unignore"])
|
||||||
|
|
||||||
local RefreshUnusedPanel -- forward decl
|
local RefreshUnusedPanel -- forward decl
|
||||||
local unusedButtons = {}
|
|
||||||
|
|
||||||
-- Bag highlight: while the panel is open, items of the list glow in
|
-- Bag highlight: while the panel is open, items of the list glow in
|
||||||
-- pfUI's bag and bank frames and every other item is dimmed.
|
-- pfUI's bag and bank frames and every other item is dimmed.
|
||||||
@@ -1160,7 +1055,7 @@ pfUI:RegisterModule("equipmentmanager", function()
|
|||||||
o.dim = o:CreateTexture(nil, "OVERLAY")
|
o.dim = o:CreateTexture(nil, "OVERLAY")
|
||||||
o.dim:SetPoint("TOPLEFT", f, "TOPLEFT", 1, -1)
|
o.dim:SetPoint("TOPLEFT", f, "TOPLEFT", 1, -1)
|
||||||
o.dim:SetPoint("BOTTOMRIGHT", f, "BOTTOMRIGHT", -1, 1)
|
o.dim:SetPoint("BOTTOMRIGHT", f, "BOTTOMRIGHT", -1, 1)
|
||||||
o.dim:SetTexture(0, 0, 0, .7)
|
o.dim:SetColorTexture(0, 0, 0, .7)
|
||||||
|
|
||||||
o.glow = o:CreateTexture(nil, "OVERLAY")
|
o.glow = o:CreateTexture(nil, "OVERLAY")
|
||||||
o.glow:SetTexture("Interface\\Buttons\\UI-ActionButton-Border")
|
o.glow:SetTexture("Interface\\Buttons\\UI-ActionButton-Border")
|
||||||
@@ -1203,12 +1098,8 @@ pfUI:RegisterModule("equipmentmanager", function()
|
|||||||
local WHERE_TAG = { equipped = "|cff33ff33E|r", bags = "", bank = "|cff66aaffB|r" }
|
local WHERE_TAG = { equipped = "|cff33ff33E|r", bags = "", bank = "|cff66aaffB|r" }
|
||||||
local WHERE_TEXT = { equipped = T["Equipped"], bags = T["In Bags"], bank = T["In Bank"] }
|
local WHERE_TEXT = { equipped = T["Equipped"], bags = T["In Bags"], bank = T["In Bank"] }
|
||||||
|
|
||||||
local function CreateUnusedButton(i)
|
-- one-time setup of a pooled grid button
|
||||||
local b = CreateFrame("Button", nil, unusedGrid)
|
local function SetupUnusedButton(b)
|
||||||
b:SetSize(UNUSED_SIZE, UNUSED_SIZE)
|
|
||||||
local col = math.mod(i - 1, UNUSED_COLS)
|
|
||||||
local row = math.floor((i - 1) / UNUSED_COLS)
|
|
||||||
b:SetPoint("TOPLEFT", unusedGrid, "TOPLEFT", col * UNUSED_STRIDE + UNUSED_GAP/2, -row * UNUSED_STRIDE - UNUSED_GAP/2)
|
|
||||||
CreateBackdrop(b)
|
CreateBackdrop(b)
|
||||||
b:RegisterForClicks("LeftButtonUp", "RightButtonUp")
|
b:RegisterForClicks("LeftButtonUp", "RightButtonUp")
|
||||||
|
|
||||||
@@ -1252,14 +1143,24 @@ pfUI:RegisterModule("equipmentmanager", function()
|
|||||||
DressUpItemLink(e.link)
|
DressUpItemLink(e.link)
|
||||||
end
|
end
|
||||||
end)
|
end)
|
||||||
|
|
||||||
return b
|
|
||||||
end
|
end
|
||||||
|
|
||||||
unusedGrid:SetScript("OnMouseWheel", function()
|
local function InitUnusedButton(b, e)
|
||||||
unusedPanel.offset = unusedPanel.offset - (arg1 or 0)
|
if not b.icon then SetupUnusedButton(b) end
|
||||||
RefreshUnusedPanel()
|
|
||||||
end)
|
b.entry = e
|
||||||
|
b.icon:SetTexture(e.icon or "Interface\\Icons\\INV_Misc_QuestionMark")
|
||||||
|
b.icon:SetDesaturated(e.ignored and true or false)
|
||||||
|
b.icon:SetAlpha(e.ignored and .5 or 1)
|
||||||
|
b.tag:SetText(WHERE_TAG[e.where] or "")
|
||||||
|
local r, g, bl = GetItemQualityColor(e.quality or 1)
|
||||||
|
b.backdrop:SetBackdropBorderColor(r, g, bl, 1)
|
||||||
|
end
|
||||||
|
|
||||||
|
local unusedView = CreateScrollBoxListGridView(UNUSED_COLS, 0, 0, 0, 2, UNUSED_GAP, UNUSED_GAP)
|
||||||
|
unusedView:SetElementSize(UNUSED_SIZE, UNUSED_SIZE)
|
||||||
|
unusedView:SetElementInitializer("Button", InitUnusedButton)
|
||||||
|
ScrollUtil.InitScrollBoxListWithScrollBar(unusedGrid.ScrollBox, unusedGrid.ScrollBar, unusedView)
|
||||||
|
|
||||||
function RefreshUnusedPanel()
|
function RefreshUnusedPanel()
|
||||||
local list, numIgnored = ScanUnusedItems(unusedPanel.showIgnored:GetChecked() and true or nil)
|
local list, numIgnored = ScanUnusedItems(unusedPanel.showIgnored:GetChecked() and true or nil)
|
||||||
@@ -1267,35 +1168,9 @@ pfUI:RegisterModule("equipmentmanager", function()
|
|||||||
local numShownIgnored = unusedPanel.showIgnored:GetChecked() and numIgnored or 0
|
local numShownIgnored = unusedPanel.showIgnored:GetChecked() and numIgnored or 0
|
||||||
unusedPanel.info:SetText(string.format(T["%d items, %d ignored"], total - numShownIgnored, numIgnored))
|
unusedPanel.info:SetText(string.format(T["%d items, %d ignored"], total - numShownIgnored, numIgnored))
|
||||||
|
|
||||||
local totalRows = math.ceil(total / UNUSED_COLS)
|
unusedGrid.ScrollBox:SetDataProvider(CreateDataProvider(list), ScrollBoxConstants.RetainScrollPosition)
|
||||||
local maxOffset = math.max(0, totalRows - UNUSED_ROWS)
|
|
||||||
if unusedPanel.offset > maxOffset then unusedPanel.offset = maxOffset end
|
|
||||||
if unusedPanel.offset < 0 then unusedPanel.offset = 0 end
|
|
||||||
local first = unusedPanel.offset * UNUSED_COLS
|
|
||||||
|
|
||||||
for i = 1, UNUSED_COLS * UNUSED_ROWS do
|
unusedPanel.empty:SetShown(total == 0)
|
||||||
local e = list[first + i]
|
|
||||||
local b = unusedButtons[i]
|
|
||||||
if e then
|
|
||||||
if not b then
|
|
||||||
b = CreateUnusedButton(i)
|
|
||||||
unusedButtons[i] = b
|
|
||||||
end
|
|
||||||
b.entry = e
|
|
||||||
b.icon:SetTexture(e.icon or "Interface\\Icons\\INV_Misc_QuestionMark")
|
|
||||||
b.icon:SetDesaturated(e.ignored and true or false)
|
|
||||||
b.icon:SetAlpha(e.ignored and .5 or 1)
|
|
||||||
b.tag:SetText(WHERE_TAG[e.where] or "")
|
|
||||||
local r, g, bl = GetItemQualityColor(e.quality or 1)
|
|
||||||
if b.backdrop then b.backdrop:SetBackdropBorderColor(r, g, bl, 1) end
|
|
||||||
b:Show()
|
|
||||||
elseif b then
|
|
||||||
b.entry = nil
|
|
||||||
b:Hide()
|
|
||||||
end
|
|
||||||
end
|
|
||||||
|
|
||||||
if total == 0 then unusedPanel.empty:Show() else unusedPanel.empty:Hide() end
|
|
||||||
|
|
||||||
bagHighlight.active = true
|
bagHighlight.active = true
|
||||||
bagHighlight.locs = {}
|
bagHighlight.locs = {}
|
||||||
@@ -1315,23 +1190,22 @@ pfUI:RegisterModule("equipmentmanager", function()
|
|||||||
UpdateBagHighlights()
|
UpdateBagHighlights()
|
||||||
end)
|
end)
|
||||||
|
|
||||||
local bankEvents = CreateFrame("Frame")
|
local function RescanBank()
|
||||||
bankEvents:RegisterEvent("BANKFRAME_OPENED")
|
|
||||||
bankEvents:RegisterEvent("BANKFRAME_CLOSED")
|
|
||||||
bankEvents:RegisterEvent("PLAYERBANKSLOTS_CHANGED")
|
|
||||||
bankEvents:RegisterEvent("BAG_UPDATE_DELAYED")
|
|
||||||
bankEvents:RegisterEvent("EQUIPMENT_SETS_CHANGED")
|
|
||||||
bankEvents:SetScript("OnEvent", function()
|
|
||||||
if event == "BANKFRAME_OPENED" then
|
|
||||||
bankOpen = true
|
|
||||||
elseif event == "BANKFRAME_CLOSED" then
|
|
||||||
bankOpen = false
|
|
||||||
return
|
|
||||||
end
|
|
||||||
if not bankOpen then return end
|
if not bankOpen then return end
|
||||||
ScanBank()
|
ScanBank()
|
||||||
if frame:IsShown() then pfUI.equipmentmanager.Refresh() end
|
if frame:IsShown() then pfUI.equipmentmanager.Refresh() end
|
||||||
|
end
|
||||||
|
|
||||||
|
pfUI.events:RegisterFrameEventAndCallback("BANKFRAME_OPENED", function()
|
||||||
|
bankOpen = true
|
||||||
|
RescanBank()
|
||||||
end)
|
end)
|
||||||
|
pfUI.events:RegisterFrameEventAndCallback("BANKFRAME_CLOSED", function()
|
||||||
|
bankOpen = false
|
||||||
|
end)
|
||||||
|
for _, event in ipairs({ "PLAYERBANKSLOTS_CHANGED", "BAG_UPDATE_DELAYED", "EQUIPMENT_SETS_CHANGED" }) do
|
||||||
|
pfUI.events:RegisterFrameEventAndCallback(event, RescanBank)
|
||||||
|
end
|
||||||
|
|
||||||
-- ============================================================
|
-- ============================================================
|
||||||
-- Automatic set switching (triggers)
|
-- Automatic set switching (triggers)
|
||||||
@@ -1690,10 +1564,8 @@ pfUI:RegisterModule("equipmentmanager", function()
|
|||||||
-- ============================================================
|
-- ============================================================
|
||||||
|
|
||||||
local TRIGGER_ROWS, TRIGGER_ROW_H = 5, 24
|
local TRIGGER_ROWS, TRIGGER_ROW_H = 5, 24
|
||||||
local TRIGGER_STRIDE = TRIGGER_ROW_H + 2
|
|
||||||
local triggerPanel = CreateSubPanel("pfEqMgrTriggerFrame", 310, 404, T["Automatic Set Switching"])
|
local triggerPanel = CreateSubPanel("pfEqMgrTriggerFrame", 310, 404, T["Automatic Set Switching"])
|
||||||
local selectedTriggerID = nil
|
local selectedTriggerID = nil
|
||||||
triggerPanel.offset = 0
|
|
||||||
|
|
||||||
local cbAuto = CreateCheckbox(triggerPanel, T["Enable Automatic Set Switching"])
|
local cbAuto = CreateCheckbox(triggerPanel, T["Enable Automatic Set Switching"])
|
||||||
cbAuto:SetPoint("TOPLEFT", triggerPanel, "TOPLEFT", 12, -30)
|
cbAuto:SetPoint("TOPLEFT", triggerPanel, "TOPLEFT", 12, -30)
|
||||||
@@ -1702,15 +1574,11 @@ pfUI:RegisterModule("equipmentmanager", function()
|
|||||||
UpdateEngine()
|
UpdateEngine()
|
||||||
end)
|
end)
|
||||||
|
|
||||||
local triggerList = CreateFrame("Frame", nil, triggerPanel)
|
-- The template keeps 5px around the rows, which sit 2px apart.
|
||||||
|
local triggerList = CreateFrame("Frame", nil, triggerPanel, "pfUIScrollBoxListTemplate")
|
||||||
triggerList:SetPoint("TOPLEFT", triggerPanel, "TOPLEFT", 14, -56)
|
triggerList:SetPoint("TOPLEFT", triggerPanel, "TOPLEFT", 14, -56)
|
||||||
triggerList:SetSize(282, TRIGGER_ROWS * TRIGGER_STRIDE + 4)
|
triggerList:SetSize(282, TRIGGER_ROWS * (TRIGGER_ROW_H + 2) - 2 + 10)
|
||||||
CreateBackdrop(triggerList, nil, nil, .75)
|
CreateBackdrop(triggerList, nil, nil, .75)
|
||||||
triggerList:EnableMouseWheel(true)
|
|
||||||
triggerList:SetScript("OnMouseWheel", function()
|
|
||||||
triggerPanel.offset = triggerPanel.offset - (arg1 or 0)
|
|
||||||
RefreshTriggerPanel()
|
|
||||||
end)
|
|
||||||
|
|
||||||
triggerList.empty = triggerList:CreateFontString(nil, "OVERLAY", "GameFontDisable")
|
triggerList.empty = triggerList:CreateFontString(nil, "OVERLAY", "GameFontDisable")
|
||||||
triggerList.empty:SetPoint("CENTER", triggerList, "CENTER", 0, 0)
|
triggerList.empty:SetPoint("CENTER", triggerList, "CENTER", 0, 0)
|
||||||
@@ -1725,15 +1593,11 @@ pfUI:RegisterModule("equipmentmanager", function()
|
|||||||
RefreshTriggerPanel()
|
RefreshTriggerPanel()
|
||||||
end
|
end
|
||||||
|
|
||||||
local triggerRows = {}
|
-- one-time setup of a pooled trigger row
|
||||||
for i = 1, TRIGGER_ROWS do
|
local function SetupTriggerRow(row)
|
||||||
local row = CreateFrame("Button", nil, triggerList)
|
|
||||||
row:SetSize(272, TRIGGER_ROW_H)
|
|
||||||
row:SetPoint("TOPLEFT", triggerList, "TOPLEFT", 5, -3 - (i - 1) * TRIGGER_STRIDE)
|
|
||||||
|
|
||||||
row.highlight = row:CreateTexture(nil, "BACKGROUND")
|
row.highlight = row:CreateTexture(nil, "BACKGROUND")
|
||||||
row.highlight:SetAllPoints(row)
|
row.highlight:SetAllPoints(row)
|
||||||
row.highlight:SetTexture(.3, .3, .3, .4)
|
row.highlight:SetColorTexture(.3, .3, .3, .4)
|
||||||
row.highlight:Hide()
|
row.highlight:Hide()
|
||||||
|
|
||||||
row.check = CreateCheckbox(row)
|
row.check = CreateCheckbox(row)
|
||||||
@@ -1792,10 +1656,39 @@ pfUI:RegisterModule("equipmentmanager", function()
|
|||||||
GameTooltip:Show()
|
GameTooltip:Show()
|
||||||
end)
|
end)
|
||||||
row:SetScript("OnLeave", function() GameTooltip:Hide() end)
|
row:SetScript("OnLeave", function() GameTooltip:Hide() end)
|
||||||
|
|
||||||
triggerRows[i] = row
|
|
||||||
end
|
end
|
||||||
|
|
||||||
|
local function InitTriggerRow(row, entry)
|
||||||
|
if not row.check then SetupTriggerRow(row) end
|
||||||
|
|
||||||
|
local t, index = entry.trigger, entry.index
|
||||||
|
row.trigger = t
|
||||||
|
row.index = index
|
||||||
|
row.check:SetChecked(t.enabled)
|
||||||
|
|
||||||
|
local color = "|cffffffff"
|
||||||
|
if not t.enabled then
|
||||||
|
color = "|cff808080"
|
||||||
|
elseif not SetExists(t.setID) then
|
||||||
|
color = "|cffff5555"
|
||||||
|
elseif db.applied == t.id then
|
||||||
|
color = "|cff33ff33"
|
||||||
|
elseif ConditionActive(t) then
|
||||||
|
color = "|cffffd100"
|
||||||
|
end
|
||||||
|
local target = SetExists(t.setID) and SetName(t.setID) or T["No set selected"]
|
||||||
|
row.text:SetText(color .. DescribeTrigger(t) .. "|r |cffaaaaaa>|r " .. color .. target .. "|r")
|
||||||
|
|
||||||
|
row.highlight:SetShown(t.id == selectedTriggerID)
|
||||||
|
row.up:SetEnabled(index > 1)
|
||||||
|
row.down:SetEnabled(index < table.getn(db.triggers))
|
||||||
|
end
|
||||||
|
|
||||||
|
local triggerView = CreateScrollBoxListLinearView(0, 0, 0, 2, 2)
|
||||||
|
triggerView:SetElementExtent(TRIGGER_ROW_H)
|
||||||
|
triggerView:SetElementInitializer("Button", InitTriggerRow)
|
||||||
|
ScrollUtil.InitScrollBoxListWithScrollBar(triggerList.ScrollBox, triggerList.ScrollBar, triggerView)
|
||||||
|
|
||||||
local btnNewTrigger = CreateFrame("Button", nil, triggerPanel, "UIPanelButtonTemplate")
|
local btnNewTrigger = CreateFrame("Button", nil, triggerPanel, "UIPanelButtonTemplate")
|
||||||
btnNewTrigger:SetSize(110, 22)
|
btnNewTrigger:SetSize(110, 22)
|
||||||
btnNewTrigger:SetPoint("TOPLEFT", triggerList, "BOTTOMLEFT", 0, -6)
|
btnNewTrigger:SetPoint("TOPLEFT", triggerList, "BOTTOMLEFT", 0, -6)
|
||||||
@@ -1813,10 +1706,10 @@ pfUI:RegisterModule("equipmentmanager", function()
|
|||||||
db.nextID = db.nextID + 1
|
db.nextID = db.nextID + 1
|
||||||
table.insert(db.triggers, t)
|
table.insert(db.triggers, t)
|
||||||
selectedTriggerID = t.id
|
selectedTriggerID = t.id
|
||||||
-- Scroll so the new trigger is visible.
|
|
||||||
triggerPanel.offset = math.max(0, table.getn(db.triggers) - TRIGGER_ROWS)
|
|
||||||
UpdateEngine()
|
UpdateEngine()
|
||||||
RefreshTriggerPanel()
|
RefreshTriggerPanel()
|
||||||
|
-- the new trigger is the last row
|
||||||
|
triggerList.ScrollBox:ScrollToEnd()
|
||||||
end)
|
end)
|
||||||
|
|
||||||
-- Editor for the selected trigger
|
-- Editor for the selected trigger
|
||||||
@@ -1837,9 +1730,10 @@ pfUI:RegisterModule("equipmentmanager", function()
|
|||||||
end
|
end
|
||||||
|
|
||||||
local function EditorDropdown(row)
|
local function EditorDropdown(row)
|
||||||
local dd = CreateDropDownButton(nil, editor)
|
local dd = CreateFrame("DropdownButton", nil, editor, "pfUIDropdownTemplate")
|
||||||
dd:SetWidth(190)
|
dd:SetWidth(190)
|
||||||
dd:SetPoint("TOPRIGHT", editor, "TOPRIGHT", 0, EDITOR_ROW_Y[row])
|
dd:SetPoint("TOPRIGHT", editor, "TOPRIGHT", 0, EDITOR_ROW_Y[row])
|
||||||
|
CreateBackdrop(dd, nil, true)
|
||||||
return dd
|
return dd
|
||||||
end
|
end
|
||||||
|
|
||||||
@@ -1855,41 +1749,49 @@ pfUI:RegisterModule("equipmentmanager", function()
|
|||||||
RefreshTriggerPanel()
|
RefreshTriggerPanel()
|
||||||
end
|
end
|
||||||
|
|
||||||
|
-- The radio callbacks for one field of the selected trigger; a trigger
|
||||||
|
-- without the field reads as `default`.
|
||||||
|
local function TriggerField(field, default)
|
||||||
|
local function IsSelected(value)
|
||||||
|
local t = SelectedTrigger()
|
||||||
|
return t ~= nil and (t[field] or default) == value
|
||||||
|
end
|
||||||
|
local function SetSelected(value)
|
||||||
|
local t = SelectedTrigger()
|
||||||
|
if not t then return end
|
||||||
|
t[field] = value
|
||||||
|
OnTriggerEdited()
|
||||||
|
end
|
||||||
|
return IsSelected, SetSelected
|
||||||
|
end
|
||||||
|
|
||||||
EditorLabel(T["When"], 1)
|
EditorLabel(T["When"], 1)
|
||||||
local ddType = EditorDropdown(1)
|
local ddType = EditorDropdown(1)
|
||||||
ddType:SetMenu(function()
|
local IsType = TriggerField("type")
|
||||||
local menu = {}
|
local function SetType(key)
|
||||||
|
local t = SelectedTrigger()
|
||||||
|
if not t or t.type == key then return end
|
||||||
|
t.type = key
|
||||||
|
t.value = DefaultTriggerValue(key)
|
||||||
|
OnTriggerEdited()
|
||||||
|
end
|
||||||
|
ddType:SetupMenu(function(dropdown, rootDescription)
|
||||||
for _, info in ipairs(TRIGGER_TYPES) do
|
for _, info in ipairs(TRIGGER_TYPES) do
|
||||||
if info.value ~= "list" or info.options then
|
if info.value ~= "list" or info.options then
|
||||||
local key = info.key
|
rootDescription:CreateRadio(info.text, IsType, SetType, info.key)
|
||||||
table.insert(menu, { text = info.text, value = key, func = function()
|
|
||||||
local t = SelectedTrigger()
|
|
||||||
if not t or t.type == key then return end
|
|
||||||
t.type = key
|
|
||||||
t.value = DefaultTriggerValue(key)
|
|
||||||
OnTriggerEdited()
|
|
||||||
end })
|
|
||||||
end
|
end
|
||||||
end
|
end
|
||||||
return menu
|
|
||||||
end)
|
end)
|
||||||
|
|
||||||
local valueLabel = EditorLabel(T["Value"], 2)
|
local valueLabel = EditorLabel(T["Value"], 2)
|
||||||
local ddValue = EditorDropdown(2)
|
local ddValue = EditorDropdown(2)
|
||||||
ddValue:SetMenu(function()
|
local IsValue, SetValue = TriggerField("value")
|
||||||
local menu = {}
|
ddValue:SetupMenu(function(dropdown, rootDescription)
|
||||||
local t = SelectedTrigger()
|
local t = SelectedTrigger()
|
||||||
local info = t and TRIGGER_TYPE[t.type]
|
local info = t and TRIGGER_TYPE[t.type]
|
||||||
for _, o in ipairs(info and info.options or {}) do
|
for _, o in ipairs(info and info.options or {}) do
|
||||||
local value = o.value
|
rootDescription:CreateRadio(o.text, IsValue, SetValue, o.value)
|
||||||
table.insert(menu, { text = o.text, value = value, func = function()
|
|
||||||
local t = SelectedTrigger()
|
|
||||||
if not t then return end
|
|
||||||
t.value = value
|
|
||||||
OnTriggerEdited()
|
|
||||||
end })
|
|
||||||
end
|
end
|
||||||
return menu
|
|
||||||
end)
|
end)
|
||||||
|
|
||||||
local editValue = CreateTextBox(nil, editor)
|
local editValue = CreateTextBox(nil, editor)
|
||||||
@@ -1961,39 +1863,22 @@ pfUI:RegisterModule("equipmentmanager", function()
|
|||||||
|
|
||||||
EditorLabel(T["Equip"], 3)
|
EditorLabel(T["Equip"], 3)
|
||||||
local ddSet = EditorDropdown(3)
|
local ddSet = EditorDropdown(3)
|
||||||
ddSet:SetMenu(function()
|
local IsSet, SetSet = TriggerField("setID")
|
||||||
local menu = {}
|
ddSet:SetupMenu(function(dropdown, rootDescription)
|
||||||
for _, id in ipairs(GetVisibleSetIDs()) do
|
for _, id in ipairs(GetVisibleSetIDs()) do
|
||||||
local setID = id
|
rootDescription:CreateRadio(SetName(id), IsSet, SetSet, id)
|
||||||
table.insert(menu, { text = SetName(setID), value = setID, func = function()
|
|
||||||
local t = SelectedTrigger()
|
|
||||||
if not t then return end
|
|
||||||
t.setID = setID
|
|
||||||
OnTriggerEdited()
|
|
||||||
end })
|
|
||||||
end
|
end
|
||||||
return menu
|
|
||||||
end)
|
end)
|
||||||
|
|
||||||
EditorLabel(T["When It Ends"], 4)
|
EditorLabel(T["When It Ends"], 4)
|
||||||
local ddLeave = EditorDropdown(4)
|
local ddLeave = EditorDropdown(4)
|
||||||
ddLeave:SetMenu(function()
|
local IsLeave, SetLeave = TriggerField("leave", "restore")
|
||||||
local function Choose(value)
|
ddLeave:SetupMenu(function(dropdown, rootDescription)
|
||||||
return function()
|
rootDescription:CreateRadio(T["Restore Previous Gear"], IsLeave, SetLeave, "restore")
|
||||||
local t = SelectedTrigger()
|
rootDescription:CreateRadio(T["Do Nothing"], IsLeave, SetLeave, "none")
|
||||||
if not t then return end
|
|
||||||
t.leave = value
|
|
||||||
OnTriggerEdited()
|
|
||||||
end
|
|
||||||
end
|
|
||||||
local menu = {
|
|
||||||
{ text = T["Restore Previous Gear"], value = "restore", func = Choose("restore") },
|
|
||||||
{ text = T["Do Nothing"], value = "none", func = Choose("none") },
|
|
||||||
}
|
|
||||||
for _, id in ipairs(GetVisibleSetIDs()) do
|
for _, id in ipairs(GetVisibleSetIDs()) do
|
||||||
table.insert(menu, { text = T["Equip"] .. " " .. SetName(id), value = id, func = Choose(id) })
|
rootDescription:CreateRadio(T["Equip"] .. " " .. SetName(id), IsLeave, SetLeave, id)
|
||||||
end
|
end
|
||||||
return menu
|
|
||||||
end)
|
end)
|
||||||
|
|
||||||
editor.noSets = editor:CreateFontString(nil, "OVERLAY", "GameFontDisableSmall")
|
editor.noSets = editor:CreateFontString(nil, "OVERLAY", "GameFontDisableSmall")
|
||||||
@@ -2016,43 +1901,12 @@ pfUI:RegisterModule("equipmentmanager", function()
|
|||||||
local function RefreshTriggerRows()
|
local function RefreshTriggerRows()
|
||||||
cbAuto:SetChecked(C.equipmentmanager.autoswitch == "1")
|
cbAuto:SetChecked(C.equipmentmanager.autoswitch == "1")
|
||||||
|
|
||||||
local num = table.getn(db.triggers)
|
local entries = {}
|
||||||
local maxOffset = math.max(0, num - TRIGGER_ROWS)
|
for index, t in ipairs(db.triggers) do
|
||||||
if triggerPanel.offset > maxOffset then triggerPanel.offset = maxOffset end
|
table.insert(entries, { trigger = t, index = index })
|
||||||
if triggerPanel.offset < 0 then triggerPanel.offset = 0 end
|
|
||||||
|
|
||||||
for i, row in ipairs(triggerRows) do
|
|
||||||
local index = i + triggerPanel.offset
|
|
||||||
local t = db.triggers[index]
|
|
||||||
if t then
|
|
||||||
row.trigger = t
|
|
||||||
row.index = index
|
|
||||||
row.check:SetChecked(t.enabled)
|
|
||||||
|
|
||||||
local color = "|cffffffff"
|
|
||||||
if not t.enabled then
|
|
||||||
color = "|cff808080"
|
|
||||||
elseif not SetExists(t.setID) then
|
|
||||||
color = "|cffff5555"
|
|
||||||
elseif db.applied == t.id then
|
|
||||||
color = "|cff33ff33"
|
|
||||||
elseif ConditionActive(t) then
|
|
||||||
color = "|cffffd100"
|
|
||||||
end
|
|
||||||
local target = SetExists(t.setID) and SetName(t.setID) or T["No set selected"]
|
|
||||||
row.text:SetText(color .. DescribeTrigger(t) .. "|r |cffaaaaaa>|r " .. color .. target .. "|r")
|
|
||||||
|
|
||||||
if t.id == selectedTriggerID then row.highlight:Show() else row.highlight:Hide() end
|
|
||||||
if index > 1 then row.up:Enable() else row.up:Disable() end
|
|
||||||
if index < num then row.down:Enable() else row.down:Disable() end
|
|
||||||
row:Show()
|
|
||||||
else
|
|
||||||
row.trigger = nil
|
|
||||||
row.index = nil
|
|
||||||
row:Hide()
|
|
||||||
end
|
|
||||||
end
|
end
|
||||||
if num == 0 then triggerList.empty:Show() else triggerList.empty:Hide() end
|
triggerList.ScrollBox:SetDataProvider(CreateDataProvider(entries), ScrollBoxConstants.RetainScrollPosition)
|
||||||
|
triggerList.empty:SetShown(table.getn(entries) == 0)
|
||||||
end
|
end
|
||||||
|
|
||||||
function RefreshTriggerPanel()
|
function RefreshTriggerPanel()
|
||||||
@@ -2069,7 +1923,7 @@ pfUI:RegisterModule("equipmentmanager", function()
|
|||||||
editor:Show()
|
editor:Show()
|
||||||
editor.placeholder:Hide()
|
editor.placeholder:Hide()
|
||||||
|
|
||||||
SelectDropdownValue(ddType, t.type)
|
ddType:GenerateMenu()
|
||||||
|
|
||||||
local info = TRIGGER_TYPE[t.type]
|
local info = TRIGGER_TYPE[t.type]
|
||||||
local kind = info and info.value
|
local kind = info and info.value
|
||||||
@@ -2078,7 +1932,7 @@ pfUI:RegisterModule("equipmentmanager", function()
|
|||||||
editValue:SetShown(kind == "text")
|
editValue:SetShown(kind == "text")
|
||||||
btnCurrentZone:SetShown(t.type == "zone")
|
btnCurrentZone:SetShown(t.type == "zone")
|
||||||
if kind == "list" then
|
if kind == "list" then
|
||||||
SelectDropdownValue(ddValue, t.value)
|
ddValue:GenerateMenu()
|
||||||
elseif kind == "text" then
|
elseif kind == "text" then
|
||||||
editValue:ClearAllPoints()
|
editValue:ClearAllPoints()
|
||||||
editValue:SetPoint("TOPLEFT", editor, "TOPRIGHT", -190, EDITOR_ROW_Y[2])
|
editValue:SetPoint("TOPLEFT", editor, "TOPRIGHT", -190, EDITOR_ROW_Y[2])
|
||||||
@@ -2099,8 +1953,8 @@ pfUI:RegisterModule("equipmentmanager", function()
|
|||||||
local hasSets = table.getn(GetVisibleSetIDs()) > 0
|
local hasSets = table.getn(GetVisibleSetIDs()) > 0
|
||||||
ddSet:SetShown(hasSets)
|
ddSet:SetShown(hasSets)
|
||||||
editor.noSets:SetShown(not hasSets)
|
editor.noSets:SetShown(not hasSets)
|
||||||
SelectDropdownValue(ddSet, t.setID)
|
ddSet:GenerateMenu()
|
||||||
SelectDropdownValue(ddLeave, t.leave or "restore")
|
ddLeave:GenerateMenu()
|
||||||
end
|
end
|
||||||
|
|
||||||
triggerPanel:SetScript("OnShow", function() RefreshTriggerPanel() end)
|
triggerPanel:SetScript("OnShow", function() RefreshTriggerPanel() end)
|
||||||
@@ -2112,7 +1966,6 @@ pfUI:RegisterModule("equipmentmanager", function()
|
|||||||
RefreshTriggerRows()
|
RefreshTriggerRows()
|
||||||
end)
|
end)
|
||||||
triggerPanel:SetScript("OnHide", function()
|
triggerPanel:SetScript("OnHide", function()
|
||||||
for _, dd in ipairs({ ddType, ddValue, ddSet, ddLeave }) do dd:HideMenu() end
|
|
||||||
editValue:ClearFocus()
|
editValue:ClearFocus()
|
||||||
end)
|
end)
|
||||||
|
|
||||||
@@ -2168,15 +2021,14 @@ pfUI:RegisterModule("equipmentmanager", function()
|
|||||||
-- Events
|
-- Events
|
||||||
-- ============================================================
|
-- ============================================================
|
||||||
|
|
||||||
local events = CreateFrame("Frame")
|
local function RefreshShown()
|
||||||
events:RegisterEvent("EQUIPMENT_SETS_CHANGED")
|
|
||||||
events:RegisterEvent("EQUIPMENT_SWAP_FINISHED")
|
|
||||||
events:RegisterEvent("EQUIPMENT_SWAP_PENDING")
|
|
||||||
events:RegisterEvent("BAG_UPDATE_DELAYED")
|
|
||||||
events:RegisterEvent("PLAYER_EQUIPMENT_CHANGED")
|
|
||||||
events:SetScript("OnEvent", function()
|
|
||||||
if not frame:IsShown() then return end
|
if not frame:IsShown() then return end
|
||||||
pfUI.equipmentmanager.Refresh()
|
pfUI.equipmentmanager.Refresh()
|
||||||
end)
|
end
|
||||||
|
|
||||||
|
for _, event in ipairs({ "EQUIPMENT_SETS_CHANGED", "EQUIPMENT_SWAP_FINISHED", "EQUIPMENT_SWAP_PENDING",
|
||||||
|
"BAG_UPDATE_DELAYED", "PLAYER_EQUIPMENT_CHANGED" }) do
|
||||||
|
pfUI.events:RegisterFrameEventAndCallback(event, RefreshShown)
|
||||||
|
end
|
||||||
|
|
||||||
end)
|
end)
|
||||||
|
|||||||
@@ -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)
|
||||||
|
|||||||
+5
-6
@@ -8,7 +8,7 @@ pfUI:RegisterModule("focus", function ()
|
|||||||
UpdateMovable(pfUI.uf.focus)
|
UpdateMovable(pfUI.uf.focus)
|
||||||
pfUI.uf.focus:Hide()
|
pfUI.uf.focus:Hide()
|
||||||
|
|
||||||
pfUI.uf.focustarget = pfUI.uf:CreateUnitFrame("FocusTarget", nil, C.unitframes.focustarget)
|
pfUI.uf.focustarget = pfUI.uf:CreateUnitFrame("FocusTarget", nil, C.unitframes.focustarget, .2)
|
||||||
pfUI.uf.focustarget:UpdateFrameSize()
|
pfUI.uf.focustarget:UpdateFrameSize()
|
||||||
pfUI.uf.focustarget:SetPoint("BOTTOMLEFT", pfUI.uf.focus, "TOP", 0, 10)
|
pfUI.uf.focustarget:SetPoint("BOTTOMLEFT", pfUI.uf.focus, "TOP", 0, 10)
|
||||||
UpdateMovable(pfUI.uf.focustarget)
|
UpdateMovable(pfUI.uf.focustarget)
|
||||||
@@ -16,11 +16,10 @@ 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" and arg1 == "focustarget", so the bars update
|
||||||
-- event-driven like target and need no polling tick.
|
-- event-driven like target. No event reports the focus changing its
|
||||||
local refresher = CreateFrame("Frame")
|
-- target, so focustarget ticks like targettarget.
|
||||||
refresher:RegisterEvent("PLAYER_FOCUS_CHANGED")
|
pfUI.events:RegisterFrameEventAndCallback("PLAYER_FOCUS_CHANGED", function()
|
||||||
refresher:SetScript("OnEvent", function()
|
|
||||||
pfUI.uf.focus.instantRefresh = true
|
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.instantRefresh = 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
|
||||||
|
|||||||
@@ -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
|
||||||
|
|
||||||
|
|||||||
+152
-162
@@ -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()
|
end
|
||||||
if focus and focus.parent and focus.parent.menu then
|
|
||||||
if this.over then
|
|
||||||
this.tex:Hide()
|
|
||||||
this.over = nil
|
|
||||||
end
|
|
||||||
return
|
|
||||||
end
|
|
||||||
|
|
||||||
local over = MouseIsOverHitRect(this)
|
function EntryOnLeave()
|
||||||
if over and not this.over then
|
this.tex:Hide()
|
||||||
this.tex:Show()
|
|
||||||
this.over = true
|
|
||||||
elseif not over and this.over then
|
|
||||||
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
|
||||||
|
|
||||||
|
local function SetSelected(value)
|
||||||
|
if category[config] ~= value then
|
||||||
|
category[config] = value
|
||||||
|
if ufunc then ufunc() else pfUI.gui.settingChanged = true end
|
||||||
|
pfUI.events:TriggerEvent("config:changed", category, config)
|
||||||
|
end
|
||||||
|
end
|
||||||
|
|
||||||
|
frame.input = CreateFrame("DropdownButton", nil, frame, "pfUIDropdownTemplate")
|
||||||
frame.input:SetPoint("RIGHT", frame, "RIGHT", 0, 0)
|
frame.input:SetPoint("RIGHT", frame, "RIGHT", 0, 0)
|
||||||
frame.input:SetWidth(180)
|
frame.input:SetWidth(180)
|
||||||
frame.input:SetMenu(function()
|
frame.input:SetupMenu(function(dropdown, rootDescription)
|
||||||
local menu = {}
|
for _, k in pairs(_G.type(values) == "function" and values() or values) do
|
||||||
|
|
||||||
for i, k in pairs(_G.type(values) == "function" and values() or values) do
|
|
||||||
local entry = {}
|
|
||||||
-- get human readable
|
-- get human readable
|
||||||
local value, text = strsplit(":", k)
|
local value, text = strsplit(":", k)
|
||||||
text = text or value
|
rootDescription:CreateRadio(text or value, IsSelected, SetSelected, value)
|
||||||
|
|
||||||
entry.text = text
|
|
||||||
entry.func = function()
|
|
||||||
if category and category[config] ~= value then
|
|
||||||
category[config] = value
|
|
||||||
if ufunc then ufunc() else pfUI.gui.settingChanged = true end
|
|
||||||
pfUI.events:TriggerEvent("config:changed", category, config)
|
|
||||||
end
|
|
||||||
end
|
|
||||||
|
|
||||||
if category and category[config] == value then
|
|
||||||
frame.input.current = i
|
|
||||||
end
|
|
||||||
|
|
||||||
table.insert(menu, entry)
|
|
||||||
end
|
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,35 +701,44 @@ 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")
|
||||||
f.text:SetJustifyV("CENTER")
|
f.text:SetJustifyV("CENTER")
|
||||||
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
|
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
|
||||||
|
results.ScrollBox:SetDataProvider(CreateDataProvider(matches))
|
||||||
-- reload scroll frames
|
|
||||||
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)
|
||||||
@@ -1300,7 +1285,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 +1312,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 +1332,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 +1345,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 +1358,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 +1370,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 +1399,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 +1409,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 +1419,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)
|
||||||
@@ -2088,6 +2073,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")
|
||||||
|
|
||||||
@@ -2340,8 +2326,8 @@ pfUI:RegisterModule("gui", function ()
|
|||||||
|
|
||||||
CreateConfig(U[c], T["Timer"], nil, nil, "header")
|
CreateConfig(U[c], T["Timer"], nil, nil, "header")
|
||||||
CreateConfig(U[c], T["Show Timer Text"], C.unitframes[c], "cooldown_text", "checkbox")
|
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["Show Timer Animation"], C.unitframes[c], "cooldown_anim", "checkbox")
|
||||||
CreateConfig(Reload, T["Reverse Timer Animation"], C.unitframes[c], "cooldown_reverse", "checkbox")
|
CreateConfig(U[c], T["Reverse Timer Animation"], C.unitframes[c], "cooldown_reverse", "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)
|
||||||
@@ -2511,8 +2497,8 @@ pfUI:RegisterModule("gui", function ()
|
|||||||
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["Buff Font Size"], C.buffs, "fontsize")
|
||||||
CreateConfig(Reload, T["Show Timer Animation"], C.buffs, "cooldown_anim", "checkbox")
|
CreateConfig(U["buff"], T["Show Timer Animation"], C.buffs, "cooldown_anim", "checkbox")
|
||||||
CreateConfig(Reload, T["Reverse Timer Animation"], C.buffs, "cooldown_reverse", "checkbox")
|
CreateConfig(U["buff"], T["Reverse Timer Animation"], C.buffs, "cooldown_reverse", "checkbox")
|
||||||
end)
|
end)
|
||||||
|
|
||||||
CreateGUIEntry(T["Buffs"], T["Totem Icons"], function()
|
CreateGUIEntry(T["Buffs"], T["Totem Icons"], function()
|
||||||
@@ -2520,7 +2506,7 @@ pfUI:RegisterModule("gui", function ()
|
|||||||
CreateConfig(U["totems"], T["Icon Size"], C.totems, "iconsize")
|
CreateConfig(U["totems"], T["Icon Size"], C.totems, "iconsize")
|
||||||
CreateConfig(U["totems"], T["Spacing"], C.totems, "spacing", "dropdown", pfUI.gui.dropdowns.spacing)
|
CreateConfig(U["totems"], T["Spacing"], C.totems, "spacing", "dropdown", pfUI.gui.dropdowns.spacing)
|
||||||
CreateConfig(U["totems"], T["Show Background"], C.totems, "showbg", "checkbox")
|
CreateConfig(U["totems"], T["Show Background"], C.totems, "showbg", "checkbox")
|
||||||
CreateConfig(Reload, T["Reverse Cooldown Animation"], C.totems, "cooldown_reverse", "checkbox")
|
CreateConfig(U["totems"], T["Reverse Cooldown Animation"], C.totems, "cooldown_reverse", "checkbox")
|
||||||
end)
|
end)
|
||||||
|
|
||||||
CreateGUIEntry(T["Buffs"], T["Player Buff Bar"], function()
|
CreateGUIEntry(T["Buffs"], T["Player Buff Bar"], function()
|
||||||
@@ -2703,8 +2689,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
|
||||||
@@ -2884,6 +2870,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")
|
||||||
@@ -2892,18 +2880,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")
|
||||||
@@ -2923,7 +2913,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")
|
||||||
@@ -2979,8 +2969,8 @@ pfUI:RegisterModule("gui", function ()
|
|||||||
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["Enable Debuff Timers"], C.nameplates, "debufftimers", "checkbox")
|
||||||
CreateConfig(U["nameplates"], T["Show Timer Text"], C.nameplates, "debufftext", "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["Show Timer Animation"], C.nameplates, "debuffanim", "checkbox")
|
||||||
CreateConfig(Reload, T["Reverse Timer Animation"], C.nameplates, "debreverse", "checkbox")
|
CreateConfig(U["nameplates"], T["Reverse Timer Animation"], C.nameplates, "debreverse", "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)
|
||||||
|
|||||||
+48
-35
@@ -1,51 +1,64 @@
|
|||||||
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 and death come from events. Aggro has no event, so a
|
||||||
if this.infight and UnitAffectingCombat("player") then visible = true end
|
-- ticker polls it while that glow is enabled.
|
||||||
if this.aggro and UnitHasAggro("player") > 0 then visible = true end
|
local combat, health, dead, aggro, poll
|
||||||
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 UpdatePlayer()
|
||||||
pfUI.infight:SetScript("OnUpdate", OnUpdate)
|
combat = C.appearance.infight.screen == "1" and UnitAffectingCombat("player")
|
||||||
|
health = C.appearance.infight.health == "1" and UnitHealth("player") / UnitHealthMax("player") <= .25
|
||||||
|
dead = UnitIsDeadOrGhost("player")
|
||||||
|
Refresh()
|
||||||
|
end
|
||||||
|
|
||||||
pfUI.infight.screen = CreateFrame("Frame", "pfUICombatScreen", WorldFrame)
|
local function UpdateAggro()
|
||||||
pfUI.infight.screen:SetAllPoints(WorldFrame)
|
aggro = UnitHasAggro("player") > 0
|
||||||
pfUI.infight.screen:EnableMouse(false)
|
Refresh()
|
||||||
pfUI.infight.screen:Hide()
|
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.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()
|
if poll then poll:Cancel() end
|
||||||
|
poll = C.appearance.infight.aggro == "1" and C_Timer.NewTicker(.3, UpdateAggro)
|
||||||
|
aggro = nil
|
||||||
|
|
||||||
|
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")
|
if pending then ScheduleReady() end
|
||||||
frame:RegisterEvent("SPELL_UPDATE_COOLDOWN")
|
end)
|
||||||
frame:SetScript("OnEvent", function()
|
|
||||||
if event == "SPELL_UPDATE_COOLDOWN" then
|
|
||||||
if pending then ScheduleReady() end
|
|
||||||
return
|
|
||||||
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()
|
||||||
|
|||||||
+97
-202
@@ -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,89 +145,97 @@ 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
|
end
|
||||||
info = wipe(info)
|
|
||||||
info.text = GIVE_LOOT
|
-- gives the selected slot to a candidate, asking first for epic items
|
||||||
info.textHeight = 12
|
local function GiveLoot(index)
|
||||||
info.notCheckable = 1
|
if ( pfUI.loot.selectedQuality >= MASTER_LOOT_THREHOLD ) then
|
||||||
info.isTitle = 1
|
local dialog = StaticPopup_Show("CONFIRM_LOOT_DISTRIBUTION", ITEM_QUALITY_COLORS[pfUI.loot.selectedQuality].hex..pfUI.loot.selectedItemName..FONT_COLOR_CODE_CLOSE, GetMasterLootCandidate(index))
|
||||||
UIDropDownMenu_AddButton(info)
|
if ( dialog ) then
|
||||||
pfUI.loot:BuildSpecialRollsMenu(UIDROPDOWNMENU_MENU_LEVEL)
|
dialog.data = index
|
||||||
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
|
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
|
end
|
||||||
if unit.class and PFUI_CLASS_COLORS[unit.class] then
|
end
|
||||||
info.textR, info.textG, info.textB = PFUI_CLASS_COLORS[unit.class]:GetRGB()
|
return
|
||||||
end
|
end
|
||||||
info.textHeight = 12
|
|
||||||
info.value = i
|
UpdateRaidCandidates()
|
||||||
info.func = GroupLootDropDown_GiveLoot
|
rootDescription:CreateTitle(GIVE_LOOT)
|
||||||
UIDropDownMenu_AddButton(info)
|
|
||||||
|
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)
|
||||||
end
|
|
||||||
elseif UIDROPDOWNMENU_MENU_LEVEL == 2 and (inRaid) then
|
masterLootMenu = Menu.GetManager():OpenMenu(slot, description, AnchorUtil.CreateAnchor("TOPLEFT", slot, "BOTTOMLEFT", 0, 0))
|
||||||
pfUI.loot:BuildRaidMenu(UIDROPDOWNMENU_MENU_LEVEL)
|
if masterLootMenu then
|
||||||
|
masterLootMenu:SetClosedCallback(function() masterLootMenu = nil end)
|
||||||
end
|
end
|
||||||
end
|
end
|
||||||
|
|
||||||
|
-- a change to the candidates or the rolls rebuilds the menu while it is shown
|
||||||
|
RefreshMasterLootMenu = function()
|
||||||
|
if masterLootMenu then OpenMasterLootMenu() end
|
||||||
|
end
|
||||||
|
|
||||||
function pfUI.loot:AddMasterLootMenus()
|
function pfUI.loot:AddMasterLootMenus()
|
||||||
for index,value in ipairs(UnitPopupMenus["SELF"]) do
|
for index,value in ipairs(UnitPopupMenus["SELF"]) do
|
||||||
if value == "LOOT_PROMOTE" then
|
if value == "LOOT_PROMOTE" then
|
||||||
@@ -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
|
||||||
|
|||||||
+80
-115
@@ -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,34 +198,28 @@ 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)
|
ShowRetrieving(f)
|
||||||
if item and not item:IsItemEmpty() then
|
if itemLink then
|
||||||
if item:IsItemDataCached() then
|
local item = Item:CreateFromItemLink(itemLink)
|
||||||
RenderItemVisual(f, item)
|
local pending = rollID
|
||||||
else
|
item:ContinueOnItemLoad(function()
|
||||||
ShowRetrieving(f)
|
if f.rollID == pending then RenderItemVisual(f, item) end
|
||||||
local pending = rollID
|
end)
|
||||||
item:ContinueOnItemLoad(function()
|
|
||||||
if f.rollID == pending then RenderItemVisual(f, item) end
|
|
||||||
end)
|
|
||||||
end
|
|
||||||
else
|
|
||||||
ShowRetrieving(f)
|
|
||||||
end
|
end
|
||||||
|
|
||||||
-- winner summary only on a decided, collapsed row
|
-- winner summary only on a decided, collapsed row
|
||||||
@@ -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")
|
-- auto-show on a new roll opening / completing, if enabled
|
||||||
events:RegisterEvent("LOOT_HISTORY_FULL_UPDATE")
|
local function AutoShow()
|
||||||
events:RegisterEvent("LOOT_HISTORY_ROLL_CHANGED")
|
if C.loothistory.autoshow == "1" and not pfUI.loothistory:IsShown() then
|
||||||
events:RegisterEvent("LOOT_HISTORY_ROLL_COMPLETE")
|
|
||||||
events:SetScript("OnEvent", function()
|
|
||||||
-- auto-show on a new roll opening / completing, if enabled
|
|
||||||
if C.loothistory.autoshow == "1"
|
|
||||||
and (event == "LOOT_HISTORY_FULL_UPDATE" or event == "LOOT_HISTORY_ROLL_COMPLETE")
|
|
||||||
and not pfUI.loothistory:IsShown() then
|
|
||||||
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,90 @@
|
|||||||
|
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 = CreateFrame("Cooldown", nil, frame.icon, "CooldownFrameTemplate")
|
||||||
|
frame.cd:SetAllPoints(frame.icon.tex)
|
||||||
|
frame.cd.pfCooldownStyleAnimation = 1
|
||||||
|
frame.cd.pfCooldownType = "ALL"
|
||||||
|
|
||||||
|
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) 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", "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
|
||||||
-- ============================================================
|
-- ============================================================
|
||||||
|
|||||||
@@ -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
|
||||||
|
|||||||
+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)
|
||||||
|
|||||||
+14
-30
@@ -157,9 +157,6 @@ pfUI:RegisterModule("nameplates", function ()
|
|||||||
cfg.hptextformat = C.nameplates.hptextformat
|
cfg.hptextformat = C.nameplates.hptextformat
|
||||||
-- NEW: Cache debuff config
|
-- NEW: Cache debuff config
|
||||||
cfg.debufftimers = C.nameplates.debufftimers == "1"
|
cfg.debufftimers = C.nameplates.debufftimers == "1"
|
||||||
cfg.debuffanim = tonumber(C.nameplates.debuffanim) or 0
|
|
||||||
cfg.debufftext = tonumber(C.nameplates.debufftext) or 1
|
|
||||||
cfg.debreverse = tonumber(C.nameplates.debreverse) or 0
|
|
||||||
|
|
||||||
-- 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
|
||||||
@@ -432,7 +429,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")
|
||||||
@@ -443,11 +440,8 @@ pfUI:RegisterModule("nameplates", function ()
|
|||||||
|
|
||||||
plate.debuffs[index].cd = CreateFrame("Cooldown", plate.platename.."Debuff"..index.."Cooldown", plate.debuffs[index], "CooldownFrameTemplate")
|
plate.debuffs[index].cd = CreateFrame("Cooldown", plate.platename.."Debuff"..index.."Cooldown", plate.debuffs[index], "CooldownFrameTemplate")
|
||||||
plate.debuffs[index].cd:SetFrameLevel(6)
|
plate.debuffs[index].cd:SetFrameLevel(6)
|
||||||
|
-- the display settings come from UpdateDebuffConfig, which runs for
|
||||||
-- Set initial config flags (will be cached per-cooldown later)
|
-- every new icon before its first timer
|
||||||
plate.debuffs[index].cd.pfCooldownStyleAnimation = cfg.debuffanim
|
|
||||||
plate.debuffs[index].cd.pfCooldownReverse = cfg.debreverse or 0
|
|
||||||
plate.debuffs[index].cd.pfCooldownStyleText = cfg.debufftext
|
|
||||||
plate.debuffs[index].cd.pfCooldownType = "ALL"
|
plate.debuffs[index].cd.pfCooldownType = "ALL"
|
||||||
end
|
end
|
||||||
|
|
||||||
@@ -483,14 +477,14 @@ pfUI:RegisterModule("nameplates", function ()
|
|||||||
nameplate.debuffs[i]:SetSize(debuffsize, debuffsize)
|
nameplate.debuffs[i]:SetSize(debuffsize, debuffsize)
|
||||||
|
|
||||||
-- Update cooldown display settings
|
-- Update cooldown display settings
|
||||||
if nameplate.debuffs[i].cd then
|
local cd = nameplate.debuffs[i].cd
|
||||||
local cooldown_text = tonumber(C.nameplates.debufftext) or 1
|
cd.pfCooldownStyleText = tonumber(C.nameplates.debufftext) or 1
|
||||||
local cooldown_anim = tonumber(C.nameplates.debuffanim) or 0
|
cd.pfCooldownStyleAnimation = tonumber(C.nameplates.debuffanim) or 0
|
||||||
nameplate.debuffs[i].cd.pfCooldownStyleText = cooldown_text
|
-- the draw flags, not alpha: the plate's SetAlpha copies its alpha down
|
||||||
nameplate.debuffs[i].cd.pfCooldownStyleAnimation = cooldown_anim
|
-- to every child (ClassicAPI keeps 1.12's alpha under default plates)
|
||||||
nameplate.debuffs[i].cd.pfCooldownReverse = tonumber(C.nameplates.debreverse) or 0
|
cd:SetDrawSwipe(C.nameplates.debuffanim == "1")
|
||||||
|
cd:SetDrawBling(C.nameplates.debuffanim == "1")
|
||||||
end
|
cd:SetReverse(C.nameplates.debreverse == "1")
|
||||||
end
|
end
|
||||||
|
|
||||||
-- create nameplate core
|
-- create nameplate core
|
||||||
@@ -872,11 +866,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
|
||||||
@@ -1399,16 +1393,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 or cd.cachedReverse ~= cfg.debreverse then
|
|
||||||
cd.pfCooldownStyleAnimation = cfg.debuffanim
|
|
||||||
cd.pfCooldownStyleText = cfg.debufftext
|
|
||||||
cd.pfCooldownReverse = cfg.debreverse or 0
|
|
||||||
cd:SetAlpha(cfg.debuffanim == 1 and 1 or 0)
|
|
||||||
cd.cachedAnim = cfg.debuffanim
|
|
||||||
cd.cachedText = cfg.debufftext
|
|
||||||
cd.cachedReverse = cfg.debreverse
|
|
||||||
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
|
||||||
|
|||||||
+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)
|
||||||
|
|
||||||
|
|||||||
+13
-14
@@ -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
|
||||||
@@ -202,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
|
||||||
|
|
||||||
@@ -570,18 +575,12 @@ 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
|
item:ContinueOnItemLoad(function()
|
||||||
local itemName, count = C_Item.GetItemNameByID(itemID), C_Item.GetItemCount(itemID)
|
pfUI.panel:OutputPanel(panelType, item:GetItemName() .. ": " .. C_Item.GetItemCount(item:GetItemID()))
|
||||||
pfUI.panel:OutputPanel(panelType, itemName .. ": " .. count)
|
end)
|
||||||
else
|
|
||||||
local item = Item:CreateFromItemID(itemID)
|
|
||||||
item:ContinueOnItemLoad(function()
|
|
||||||
local itemName, count = item:GetItemName(), C_Item.GetItemCount(item:GetItemID())
|
|
||||||
pfUI.panel:OutputPanel(panelType, itemName .. ": " .. count)
|
|
||||||
end)
|
|
||||||
end
|
|
||||||
end
|
end
|
||||||
|
|
||||||
local class = UnitClassBase('player')
|
local class = UnitClassBase('player')
|
||||||
|
|||||||
@@ -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
|
||||||
|
|
||||||
|
|||||||
+1
-1
@@ -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"
|
||||||
|
|||||||
+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
|
||||||
|
|
||||||
|
|||||||
@@ -35,6 +35,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)
|
||||||
@@ -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
|
||||||
|
|
||||||
@@ -908,7 +908,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 +925,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 +933,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 +948,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 +1011,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 +1028,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
|
||||||
@@ -1053,7 +1053,7 @@ pfUI:RegisterModule("thirdparty-vanilla", function()
|
|||||||
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 +1082,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
|
||||||
@@ -1178,15 +1178,15 @@ pfUI:RegisterModule("thirdparty-vanilla", function()
|
|||||||
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
|
||||||
@@ -1208,7 +1208,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()
|
||||||
|
|||||||
+1
-1
@@ -115,7 +115,7 @@ pfUI:RegisterModule("totems", function ()
|
|||||||
self.bar[i].cdbg:SetPoint("CENTER", self.bar[i], "CENTER", 0, 0)
|
self.bar[i].cdbg:SetPoint("CENTER", self.bar[i], "CENTER", 0, 0)
|
||||||
self.bar[i].cd = self.bar[i].cd or CreateFrame("Cooldown", "pfTotemsBar"..i.."Cooldown", self.bar[i].cdbg, "CooldownFrameTemplate")
|
self.bar[i].cd = self.bar[i].cd or CreateFrame("Cooldown", "pfTotemsBar"..i.."Cooldown", self.bar[i].cdbg, "CooldownFrameTemplate")
|
||||||
self.bar[i].cd.pfCooldownStyleAnimation = 1
|
self.bar[i].cd.pfCooldownStyleAnimation = 1
|
||||||
self.bar[i].cd.pfCooldownReverse = tonumber(pfUI_config.totems.cooldown_reverse) or 0
|
self.bar[i].cd:SetReverse(pfUI_config.totems.cooldown_reverse == "1")
|
||||||
self.bar[i].cd.pfCooldownType = "ALL"
|
self.bar[i].cd.pfCooldownType = "ALL"
|
||||||
|
|
||||||
self.bar[i]:RegisterForClicks("LeftButtonUp", "RightButtonUp")
|
self.bar[i]:RegisterForClicks("LeftButtonUp", "RightButtonUp")
|
||||||
|
|||||||
+18
-25
@@ -42,7 +42,23 @@ pfUI:RegisterModule("tracking", function ()
|
|||||||
fade:SetDuration(.5)
|
fade:SetDuration(.5)
|
||||||
fade:SetSmoothing("IN_OUT")
|
fade:SetSmoothing("IN_OUT")
|
||||||
|
|
||||||
pfUI.tracking.menu = CreateFrame("Frame", "pfUIDropDownMenuTracking", nil, "UIDropDownMenuTemplate")
|
pfUI.tracking.menuMixin = pfUIMenuStyleMixin
|
||||||
|
|
||||||
|
local function IsTracking(spell)
|
||||||
|
return spell.texture == state.texture
|
||||||
|
end
|
||||||
|
|
||||||
|
local function Track(spell)
|
||||||
|
SetTracking(spell.index)
|
||||||
|
end
|
||||||
|
|
||||||
|
local function GenerateTrackingMenu(owner, rootDescription)
|
||||||
|
rootDescription:CreateTitle(T["Minimap Tracking"])
|
||||||
|
for _, spell in pairs(state.spells) do
|
||||||
|
local icon = CreateTextureMarkup(spell.texture, 64, 64, 16, 16, .1, .9, .1, .9)
|
||||||
|
rootDescription:CreateRadio(icon .. " " .. spell.name, IsTracking, Track, spell)
|
||||||
|
end
|
||||||
|
end
|
||||||
|
|
||||||
pfUI.tracking:RegisterEvent("PLAYER_ENTERING_WORLD")
|
pfUI.tracking:RegisterEvent("PLAYER_ENTERING_WORLD")
|
||||||
pfUI.tracking:RegisterEvent("PLAYER_AURAS_CHANGED")
|
pfUI.tracking:RegisterEvent("PLAYER_AURAS_CHANGED")
|
||||||
@@ -59,8 +75,7 @@ pfUI:RegisterModule("tracking", function ()
|
|||||||
pfUI.tracking:RegisterForClicks("LeftButtonUp", "RightButtonUp")
|
pfUI.tracking:RegisterForClicks("LeftButtonUp", "RightButtonUp")
|
||||||
pfUI.tracking:SetScript("OnClick", function()
|
pfUI.tracking:SetScript("OnClick", function()
|
||||||
if arg1 == "RightButton" then
|
if arg1 == "RightButton" then
|
||||||
pfUI.tracking:InitMenu()
|
MenuUtil.CreateContextMenu(this, GenerateTrackingMenu)
|
||||||
ToggleDropDownMenu(1, nil, pfUI.tracking.menu, this, -5, -5)
|
|
||||||
end
|
end
|
||||||
if arg1 == "LeftButton" and state.texture then
|
if arg1 == "LeftButton" and state.texture then
|
||||||
CancelTrackingBuff()
|
CancelTrackingBuff()
|
||||||
@@ -128,26 +143,4 @@ pfUI:RegisterModule("tracking", function ()
|
|||||||
function pfUI.tracking:PlayerIsDruidInCatForm(playerClass)
|
function pfUI.tracking:PlayerIsDruidInCatForm(playerClass)
|
||||||
return playerClass == "DRUID" and GetShapeshiftFormID() == 1
|
return playerClass == "DRUID" and GetShapeshiftFormID() == 1
|
||||||
end
|
end
|
||||||
|
|
||||||
function pfUI.tracking:InitMenu()
|
|
||||||
UIDropDownMenu_Initialize(pfUI.tracking.menu, function ()
|
|
||||||
UIDropDownMenu_AddButton({text = T["Minimap Tracking"], isTitle = 1})
|
|
||||||
for _, spell in pairs(state.spells) do
|
|
||||||
UIDropDownMenu_AddButton({
|
|
||||||
text = spell.name,
|
|
||||||
icon = spell.texture,
|
|
||||||
tCoordLeft = .1,
|
|
||||||
tCoordRight = .9,
|
|
||||||
tCoordTop = .1,
|
|
||||||
tCoordBottom = .9,
|
|
||||||
checked = spell.texture == state.texture,
|
|
||||||
arg1 = spell,
|
|
||||||
func = function (arg1)
|
|
||||||
SetTracking(arg1.index)
|
|
||||||
CloseDropDownMenus()
|
|
||||||
end
|
|
||||||
})
|
|
||||||
end
|
|
||||||
end, "MENU")
|
|
||||||
end
|
|
||||||
end)
|
end)
|
||||||
@@ -61,7 +61,7 @@ pfUI:RegisterModule("turtle-wow", function ()
|
|||||||
end
|
end
|
||||||
end
|
end
|
||||||
|
|
||||||
HookAddonOrVariable("GroupFrame", function()
|
HookAddon("Turtle_GroupUI", function()
|
||||||
-- After Turtle's own init, hide frames if pfUI handles them
|
-- After Turtle's own init, hide frames if pfUI handles them
|
||||||
hooksecurefunc("GroupFrame_Toggle", function()
|
hooksecurefunc("GroupFrame_Toggle", function()
|
||||||
if pfUIHandlesGroupOrRaid() then
|
if pfUIHandlesGroupOrRaid() then
|
||||||
@@ -247,11 +247,7 @@ pfUI:RegisterModule("turtle-wow", function ()
|
|||||||
local STEADY_SHOT_DURATION_MS = 1400 -- not haste-scaled; close enough for the visual cue
|
local STEADY_SHOT_DURATION_MS = 1400 -- not haste-scaled; close enough for the visual cue
|
||||||
local ON_SWING_QUEUED, ON_SWING_QUEUE_POPPED = 0, 1
|
local ON_SWING_QUEUED, ON_SWING_QUEUE_POPPED = 0, 1
|
||||||
|
|
||||||
local steadyShot = CreateFrame("Frame")
|
pfUI.events:RegisterFrameEventAndCallback("SPELL_QUEUE_EVENT", function(_, eventCode, spellId)
|
||||||
steadyShot:RegisterEvent("SPELL_QUEUE_EVENT")
|
|
||||||
steadyShot:SetScript("OnEvent", function()
|
|
||||||
if event ~= "SPELL_QUEUE_EVENT" then return end
|
|
||||||
local eventCode, spellId = arg1, arg2
|
|
||||||
if eventCode ~= ON_SWING_QUEUED and eventCode ~= ON_SWING_QUEUE_POPPED then return end
|
if eventCode ~= ON_SWING_QUEUED and eventCode ~= ON_SWING_QUEUE_POPPED then return end
|
||||||
if C_Spell.GetSpellName(spellId) ~= steadyShotName then return end
|
if C_Spell.GetSpellName(spellId) ~= steadyShotName then return end
|
||||||
if eventCode == ON_SWING_QUEUED then
|
if eventCode == ON_SWING_QUEUED then
|
||||||
@@ -272,7 +268,7 @@ pfUI:RegisterModule("turtle-wow", function ()
|
|||||||
if pfUI.skin["Inspect"] and pfUI_config["disabled"]["skin_Inspect"] ~= "1" then
|
if pfUI.skin["Inspect"] and pfUI_config["disabled"]["skin_Inspect"] ~= "1" then
|
||||||
local initialized = false
|
local initialized = false
|
||||||
|
|
||||||
HookAddonOrVariable("Blizzard_InspectUI", function()
|
HookAddon("Blizzard_InspectUI", function()
|
||||||
hooksecurefunc("InspectFrame_Show", function()
|
hooksecurefunc("InspectFrame_Show", function()
|
||||||
-- break if theres nothing left to do
|
-- break if theres nothing left to do
|
||||||
if initialized then return end
|
if initialized then return end
|
||||||
@@ -330,7 +326,7 @@ pfUI:RegisterModule("turtle-wow", function ()
|
|||||||
end
|
end
|
||||||
|
|
||||||
-- rearrange twow's profession window additions
|
-- rearrange twow's profession window additions
|
||||||
HookAddonOrVariable("Blizzard_TradeSkillUI", function()
|
HookAddon("Blizzard_TradeSkillUI", function()
|
||||||
if TradeSkillSkillCheckButton and pfUI.skin["Profession"] and pfUI_config["disabled"]["skin_Profession"] ~= "1" then
|
if TradeSkillSkillCheckButton and pfUI.skin["Profession"] and pfUI_config["disabled"]["skin_Profession"] ~= "1" then
|
||||||
SkinCheckbox(TradeSkillSkillCheckButton)
|
SkinCheckbox(TradeSkillSkillCheckButton)
|
||||||
TradeSkillSkillCheckButton:SetWidth(24)
|
TradeSkillSkillCheckButton:SetWidth(24)
|
||||||
@@ -352,7 +348,7 @@ pfUI:RegisterModule("turtle-wow", function ()
|
|||||||
end)
|
end)
|
||||||
|
|
||||||
if C.disabled["macroicons"] == "1" then
|
if C.disabled["macroicons"] == "1" then
|
||||||
HookAddonOrVariable("Blizzard_MacroUI", function()
|
HookAddon("Blizzard_MacroUI", function()
|
||||||
if type(UpdateMacroIconFilenames) ~= "function" then return end
|
if type(UpdateMacroIconFilenames) ~= "function" then return end
|
||||||
function _G.UpdateMacroIconFilenames()
|
function _G.UpdateMacroIconFilenames()
|
||||||
wipe(MACRO_ICON_FILENAMES)
|
wipe(MACRO_ICON_FILENAMES)
|
||||||
|
|||||||
+8
-26
@@ -42,11 +42,7 @@ pfUI:RegisterModule("unitxp", function ()
|
|||||||
end
|
end
|
||||||
|
|
||||||
local success, behind = pcall(UnitXP, "behind", "player", "target")
|
local success, behind = pcall(UnitXP, "behind", "player", "target")
|
||||||
if success and behind then
|
this.text:SetShown(success and behind)
|
||||||
this.text:Show()
|
|
||||||
else
|
|
||||||
this.text:Hide()
|
|
||||||
end
|
|
||||||
end)
|
end)
|
||||||
|
|
||||||
pfUI.uf.target.behindIndicator = behindFrame
|
pfUI.uf.target.behindIndicator = behindFrame
|
||||||
@@ -76,11 +72,7 @@ pfUI:RegisterModule("unitxp", function ()
|
|||||||
end
|
end
|
||||||
|
|
||||||
local success, inSight = pcall(UnitXP, "inSight", "player", "target")
|
local success, inSight = pcall(UnitXP, "inSight", "player", "target")
|
||||||
if success and inSight == false then
|
this.text:SetShown(success and inSight == false)
|
||||||
this.text:Show()
|
|
||||||
else
|
|
||||||
this.text:Hide()
|
|
||||||
end
|
|
||||||
end)
|
end)
|
||||||
|
|
||||||
pfUI.uf.target.losIndicator = losFrame
|
pfUI.uf.target.losIndicator = losFrame
|
||||||
@@ -253,24 +245,14 @@ pfUI:RegisterModule("unitxp", function ()
|
|||||||
|
|
||||||
-- OS Notification Support
|
-- OS Notification Support
|
||||||
if C.unitframes.unitxp_notify == "1" then
|
if C.unitframes.unitxp_notify == "1" then
|
||||||
local notifyFrame = CreateFrame("Frame")
|
local function Notify()
|
||||||
notifyFrame:RegisterEvent("CHAT_MSG_WHISPER")
|
|
||||||
notifyFrame:RegisterEvent("CHAT_MSG_BN_WHISPER")
|
|
||||||
notifyFrame:RegisterEvent("READY_CHECK")
|
|
||||||
notifyFrame:RegisterEvent("RAID_INSTANCE_WELCOME")
|
|
||||||
notifyFrame:RegisterEvent("PLAYER_LOGOUT")
|
|
||||||
|
|
||||||
notifyFrame:SetScript("OnEvent", function()
|
|
||||||
-- Handle shutdown to prevent crash 132
|
|
||||||
if event == "PLAYER_LOGOUT" then
|
|
||||||
this:UnregisterAllEvents()
|
|
||||||
this:SetScript("OnEvent", nil)
|
|
||||||
return
|
|
||||||
end
|
|
||||||
|
|
||||||
pcall(UnitXP, "notify", "taskbarIcon")
|
pcall(UnitXP, "notify", "taskbarIcon")
|
||||||
pcall(UnitXP, "notify", "systemSound")
|
pcall(UnitXP, "notify", "systemSound")
|
||||||
end)
|
end
|
||||||
|
|
||||||
|
for _, event in ipairs({ "CHAT_MSG_WHISPER", "CHAT_MSG_BN_WHISPER", "READY_CHECK", "RAID_INSTANCE_WELCOME" }) do
|
||||||
|
pfUI.events:RegisterFrameEventAndCallback(event, Notify)
|
||||||
|
end
|
||||||
|
|
||||||
-- Also notify on BG queue pop
|
-- Also notify on BG queue pop
|
||||||
local origBattlefieldPortShow = BattlefieldFrame_Show
|
local origBattlefieldPortShow = BattlefieldFrame_Show
|
||||||
|
|||||||
+36
-49
@@ -168,10 +168,10 @@ pfUI:RegisterModule("unlock", function ()
|
|||||||
for i = 0, 128 do
|
for i = 0, 128 do
|
||||||
if i == 128 / 2 then
|
if i == 128 / 2 then
|
||||||
line = grid:CreateTexture(nil, 'BORDER')
|
line = grid:CreateTexture(nil, 'BORDER')
|
||||||
line:SetTexture(.1, .5, .4)
|
line:SetColorTexture(.1, .5, .4)
|
||||||
else
|
else
|
||||||
line = grid:CreateTexture(nil, 'BACKGROUND')
|
line = grid:CreateTexture(nil, 'BACKGROUND')
|
||||||
line:SetTexture(0, 0, 0, .5)
|
line:SetColorTexture(0, 0, 0, .5)
|
||||||
end
|
end
|
||||||
line:SetPoint("TOPLEFT", grid, "TOPLEFT", i*wStep - (size/2), 0)
|
line:SetPoint("TOPLEFT", grid, "TOPLEFT", i*wStep - (size/2), 0)
|
||||||
line:SetPoint('BOTTOMRIGHT', grid, 'BOTTOMLEFT', i*wStep + (size/2), 0)
|
line:SetPoint('BOTTOMRIGHT', grid, 'BOTTOMLEFT', i*wStep + (size/2), 0)
|
||||||
@@ -181,10 +181,10 @@ pfUI:RegisterModule("unlock", function ()
|
|||||||
for i = 1, floor(height/hStep) do
|
for i = 1, floor(height/hStep) do
|
||||||
if i == floor(height/hStep / 2) then
|
if i == floor(height/hStep / 2) then
|
||||||
line = grid:CreateTexture(nil, 'BORDER')
|
line = grid:CreateTexture(nil, 'BORDER')
|
||||||
line:SetTexture(.1, .5, .4)
|
line:SetColorTexture(.1, .5, .4)
|
||||||
else
|
else
|
||||||
line = grid:CreateTexture(nil, 'BACKGROUND')
|
line = grid:CreateTexture(nil, 'BACKGROUND')
|
||||||
line:SetTexture(0, 0, 0)
|
line:SetColorTexture(0, 0, 0)
|
||||||
end
|
end
|
||||||
|
|
||||||
line:SetPoint("TOPLEFT", grid, "TOPLEFT", 0, -(i*hStep) + (size/2))
|
line:SetPoint("TOPLEFT", grid, "TOPLEFT", 0, -(i*hStep) + (size/2))
|
||||||
@@ -230,19 +230,6 @@ pfUI:RegisterModule("unlock", function ()
|
|||||||
if pfUI_config["position"] and pfUI_config["position"][drag.fname] and pfUI_config["position"][drag.fname]["xpos"] then
|
if pfUI_config["position"] and pfUI_config["position"][drag.fname] and pfUI_config["position"][drag.fname]["xpos"] then
|
||||||
dock.xcoord:SetText(pfUI_config["position"][drag.fname]["xpos"])
|
dock.xcoord:SetText(pfUI_config["position"][drag.fname]["xpos"])
|
||||||
dock.ycoord:SetText(pfUI_config["position"][drag.fname]["ypos"])
|
dock.ycoord:SetText(pfUI_config["position"][drag.fname]["ypos"])
|
||||||
local anchor = pfUI_config["position"][drag.fname]["anchor"] or "TOPLEFT"
|
|
||||||
|
|
||||||
for id, k in pairs(anchors) do
|
|
||||||
-- get human readable
|
|
||||||
local value, text = strsplit(":", k)
|
|
||||||
text = text or value
|
|
||||||
|
|
||||||
if value == anchor then
|
|
||||||
UIDropDownMenu_SetSelectedID(pfUI.unlock.dock.anchor, id, 0)
|
|
||||||
UIDropDownMenu_SetText(text, pfUI.unlock.dock.anchor)
|
|
||||||
end
|
|
||||||
end
|
|
||||||
|
|
||||||
dock.reset:SetText(T["Reset"])
|
dock.reset:SetText(T["Reset"])
|
||||||
|
|
||||||
dock.up:Enable()
|
dock.up:Enable()
|
||||||
@@ -270,6 +257,9 @@ pfUI:RegisterModule("unlock", function ()
|
|||||||
dock.right.texture:SetVertexColor(.4,.4,.4)
|
dock.right.texture:SetVertexColor(.4,.4,.4)
|
||||||
end
|
end
|
||||||
|
|
||||||
|
-- show the saved anchor, or none for a frame without a saved position
|
||||||
|
dock.anchor:GenerateMenu()
|
||||||
|
|
||||||
-- update config button
|
-- update config button
|
||||||
local cat, conf = GetConfigTable(drag.label)
|
local cat, conf = GetConfigTable(drag.label)
|
||||||
if cat then
|
if cat then
|
||||||
@@ -313,7 +303,7 @@ pfUI:RegisterModule("unlock", function ()
|
|||||||
end
|
end
|
||||||
|
|
||||||
if frame.OnMove then frame:OnMove() end
|
if frame.OnMove then frame:OnMove() end
|
||||||
QueueFunction(UpdateDockValues)
|
RunNextFrame(UpdateDockValues)
|
||||||
end
|
end
|
||||||
|
|
||||||
local function DraggerOnDragStart()
|
local function DraggerOnDragStart()
|
||||||
@@ -518,6 +508,10 @@ pfUI:RegisterModule("unlock", function ()
|
|||||||
UpdateMovable(frame)
|
UpdateMovable(frame)
|
||||||
end
|
end
|
||||||
|
|
||||||
|
-- show the unit frames whose unit came and hide the ones whose unit went
|
||||||
|
-- while unlocked
|
||||||
|
pfUI.uf:UpdateAllVisibility()
|
||||||
|
|
||||||
SetDockToFrame(nil)
|
SetDockToFrame(nil)
|
||||||
pfUI.unlock:Hide()
|
pfUI.unlock:Hide()
|
||||||
pfUI.gui:Show()
|
pfUI.gui:Show()
|
||||||
@@ -539,42 +533,35 @@ pfUI:RegisterModule("unlock", function ()
|
|||||||
pfUI.unlock.dock.title:SetPoint("TOP", 0, -5)
|
pfUI.unlock.dock.title:SetPoint("TOP", 0, -5)
|
||||||
|
|
||||||
-- anchor
|
-- anchor
|
||||||
pfUI.unlock.dock.anchor = CreateFrame("Frame", "pfUIUnlockAnchorDropDownMenu", pfUI.unlock.dock, "UIDropDownMenuTemplate")
|
-- SetupMenu reads the selection at once, before any frame is docked
|
||||||
pfUI.unlock.dock.anchor:ClearAllPoints()
|
local function IsDockAnchor(anchor)
|
||||||
pfUI.unlock.dock.anchor:SetPoint("TOP", 0, -25)
|
local drag = pfUI.unlock.dock.parent
|
||||||
|
local position = drag and pfUI_config["position"] and pfUI_config["position"][drag.fname]
|
||||||
|
return position and position["xpos"] and (position["anchor"] or "TOPLEFT") == anchor
|
||||||
|
end
|
||||||
|
|
||||||
UIDropDownMenu_SetWidth(120, pfUI.unlock.dock.anchor)
|
-- moves the frame's saved position to count from another point of the screen
|
||||||
UIDropDownMenu_SetButtonWidth(120, pfUI.unlock.dock.anchor)
|
local function SetDockAnchor(anchor)
|
||||||
UIDropDownMenu_JustifyText("RIGHT", pfUI.unlock.dock.anchor)
|
local frame = pfUI.unlock.dock.parent.frame
|
||||||
UIDropDownMenu_Initialize(pfUI.unlock.dock.anchor, function()
|
local point, x, y = ConvertFrameAnchor(frame, anchor)
|
||||||
local info = {}
|
frame:ClearAllPoints()
|
||||||
for id, k in pairs(anchors) do
|
frame:SetPoint(point, UIParent, point, x, y)
|
||||||
-- get human readable
|
|
||||||
local value, text = strsplit(":", k)
|
|
||||||
local id = id
|
|
||||||
text = text or value
|
|
||||||
|
|
||||||
info.text = text
|
SavePosition(frame)
|
||||||
info.checked = false
|
UpdateDockValues()
|
||||||
info.func = function()
|
end
|
||||||
UIDropDownMenu_SetSelectedID(pfUI.unlock.dock.anchor, id, 0)
|
|
||||||
UIDropDownMenu_SetText(text, pfUI.unlock.dock.anchor)
|
|
||||||
|
|
||||||
local frame = pfUI.unlock.dock.parent.frame
|
pfUI.unlock.dock.anchor = CreateFrame("DropdownButton", nil, pfUI.unlock.dock, "pfUIDropdownTemplate")
|
||||||
local anchor, x, y = ConvertFrameAnchor(frame, text)
|
pfUI.unlock.dock.anchor:SetPoint("TOP", 0, -28)
|
||||||
frame:ClearAllPoints()
|
pfUI.unlock.dock.anchor:SetWidth(140)
|
||||||
frame:SetPoint(anchor, UIParent, anchor, x, y)
|
pfUI.unlock.dock.anchor:SetDefaultText(T["N/A"])
|
||||||
|
CreateBackdrop(pfUI.unlock.dock.anchor, nil, true)
|
||||||
SavePosition(frame)
|
pfUI.unlock.dock.anchor:SetupMenu(function(dropdown, rootDescription)
|
||||||
UpdateDockValues()
|
for _, anchor in ipairs(anchors) do
|
||||||
end
|
rootDescription:CreateRadio(anchor, IsDockAnchor, SetDockAnchor, anchor)
|
||||||
|
|
||||||
UIDropDownMenu_AddButton(info)
|
|
||||||
end
|
end
|
||||||
end)
|
end)
|
||||||
|
|
||||||
SkinDropDown(pfUI.unlock.dock.anchor)
|
|
||||||
|
|
||||||
-- x coordinates
|
-- x coordinates
|
||||||
pfUI.unlock.dock.xcoordcap = pfUI.unlock.dock:CreateFontString("Status", "DIALOG", "GameFontNormal")
|
pfUI.unlock.dock.xcoordcap = pfUI.unlock.dock:CreateFontString("Status", "DIALOG", "GameFontNormal")
|
||||||
pfUI.unlock.dock.xcoordcap:SetFont(pfUI.font_default, C.global.font_size, "OUTLINE")
|
pfUI.unlock.dock.xcoordcap:SetFont(pfUI.font_default, C.global.font_size, "OUTLINE")
|
||||||
@@ -671,7 +658,7 @@ pfUI:RegisterModule("unlock", function ()
|
|||||||
|
|
||||||
if frame.OnMove then frame:OnMove() end
|
if frame.OnMove then frame:OnMove() end
|
||||||
|
|
||||||
QueueFunction(SetDockToFrame, pfUI.unlock.dock.parent)
|
RunNextFrame(function() SetDockToFrame(pfUI.unlock.dock.parent) end)
|
||||||
end)
|
end)
|
||||||
SkinButton(pfUI.unlock.dock.reset,.2,1,.8)
|
SkinButton(pfUI.unlock.dock.reset,.2,1,.8)
|
||||||
|
|
||||||
|
|||||||
@@ -38,13 +38,7 @@ pfUI:RegisterModule("unusable", function ()
|
|||||||
-- requirement changes (level, proficiency/skill, required spell, reputation,
|
-- requirement changes (level, proficiency/skill, required spell, reputation,
|
||||||
-- honor rank) don't touch the bags; queue a full rebag through pfUI.bag's
|
-- honor rank) don't touch the bags; queue a full rebag through pfUI.bag's
|
||||||
-- coalesced delay, whose UpdateSlot resets the tint before we reapply it
|
-- coalesced delay, whose UpdateSlot resets the tint before we reapply it
|
||||||
local refresh = CreateFrame("Frame")
|
local function Refresh()
|
||||||
refresh:RegisterEvent("PLAYER_LEVEL_UP")
|
|
||||||
refresh:RegisterEvent("SKILL_LINES_CHANGED")
|
|
||||||
refresh:RegisterEvent("SPELLS_CHANGED")
|
|
||||||
refresh:RegisterEvent("FACTION_STANDING_CHANGED")
|
|
||||||
refresh:RegisterEvent("PLAYER_PVP_RANK_CHANGED")
|
|
||||||
refresh:SetScript("OnEvent", function()
|
|
||||||
for _, bag in pairs(pfUI.BACKPACK) do
|
for _, bag in pairs(pfUI.BACKPACK) do
|
||||||
pfUI.bag.delay.UpdateBag[bag] = true
|
pfUI.bag.delay.UpdateBag[bag] = true
|
||||||
end
|
end
|
||||||
@@ -54,5 +48,10 @@ pfUI:RegisterModule("unusable", function ()
|
|||||||
pfUI.bag.delay.UpdateBag[bag] = true
|
pfUI.bag.delay.UpdateBag[bag] = true
|
||||||
end
|
end
|
||||||
end
|
end
|
||||||
end)
|
end
|
||||||
|
|
||||||
|
for _, event in ipairs({ "PLAYER_LEVEL_UP", "SKILL_LINES_CHANGED", "SPELLS_CHANGED",
|
||||||
|
"FACTION_STANDING_CHANGED", "PLAYER_PVP_RANK_CHANGED" }) do
|
||||||
|
pfUI.events:RegisterFrameEventAndCallback(event, Refresh)
|
||||||
|
end
|
||||||
end)
|
end)
|
||||||
|
|||||||
+33
-36
@@ -12,44 +12,41 @@ pfUI:RegisterModule("updatenotify", function ()
|
|||||||
local localbranch = "main"
|
local localbranch = "main"
|
||||||
local versionmsg = "VERSION:" .. localversion .. ":" .. localbranch
|
local versionmsg = "VERSION:" .. localversion .. ":" .. localbranch
|
||||||
|
|
||||||
pfUI.updater = CreateFrame("Frame")
|
pfUI.events:RegisterFrameEventAndCallback("CHAT_MSG_ADDON", function(_, prefix, message)
|
||||||
pfUI.updater:RegisterEvent("CHAT_MSG_ADDON")
|
if prefix ~= ADDON_PREFIX then return end
|
||||||
pfUI.updater:RegisterEvent("PLAYER_ENTERING_WORLD")
|
|
||||||
pfUI.updater:RegisterEvent("PARTY_MEMBERS_CHANGED")
|
|
||||||
pfUI.updater:SetScript("OnEvent", function()
|
|
||||||
if event == "CHAT_MSG_ADDON" and arg1 == ADDON_PREFIX then
|
|
||||||
local v, rv, branch = pfUI.api.strsplit(":", arg2)
|
|
||||||
rv = tonumber(rv)
|
|
||||||
-- only process VERSION messages from the same branch
|
|
||||||
-- messages without a branch tag (old versions) are ignored
|
|
||||||
if v == "VERSION" and rv and branch == localbranch then
|
|
||||||
if rv > localversion then
|
|
||||||
pfUI_init.updateavailable = rv
|
|
||||||
end
|
|
||||||
end
|
|
||||||
end
|
|
||||||
|
|
||||||
if event == "PARTY_MEMBERS_CHANGED" then
|
local v, rv, branch = pfUI.api.strsplit(":", message)
|
||||||
local groupsize = IsInRaid() and GetNumRaidMembers() or IsInGroup() and GetNumPartyMembers() or 0
|
rv = tonumber(rv)
|
||||||
if ( this.group or 0 ) < groupsize then
|
-- only process VERSION messages from the same branch
|
||||||
for _, chan in pairs(groupchannels) do
|
-- messages without a branch tag (old versions) are ignored
|
||||||
SendAddonMessage(ADDON_PREFIX, versionmsg, chan)
|
if v == "VERSION" and rv and branch == localbranch then
|
||||||
end
|
if rv > localversion then
|
||||||
end
|
pfUI_init.updateavailable = rv
|
||||||
this.group = groupsize
|
|
||||||
end
|
|
||||||
|
|
||||||
if event == "PLAYER_ENTERING_WORLD" then
|
|
||||||
if not alreadyshown and localversion < remoteversion then
|
|
||||||
DEFAULT_CHAT_FRAME:AddMessage(string.format(T["|cff33ffccpf|rUI: New version available! Get it at %s"], GetAddOnMetadata(pfUI.name, "X-Website") .. "/releases"))
|
|
||||||
DEFAULT_CHAT_FRAME:AddMessage(T["|cffddddddIt's always safe to upgrade |cff33ffccpf|rUI. |cffddddddYou won't lose any of your configuration."])
|
|
||||||
pfUI_init.updateavailable = localversion
|
|
||||||
alreadyshown = true
|
|
||||||
end
|
|
||||||
|
|
||||||
for _, chan in pairs(loginchannels) do
|
|
||||||
SendAddonMessage(ADDON_PREFIX, versionmsg, chan)
|
|
||||||
end
|
end
|
||||||
end
|
end
|
||||||
end)
|
end)
|
||||||
|
|
||||||
|
local group = 0
|
||||||
|
pfUI.events:RegisterFrameEventAndCallback("PARTY_MEMBERS_CHANGED", function()
|
||||||
|
local groupsize = IsInRaid() and GetNumRaidMembers() or IsInGroup() and GetNumPartyMembers() or 0
|
||||||
|
if group < groupsize then
|
||||||
|
for _, chan in pairs(groupchannels) do
|
||||||
|
SendAddonMessage(ADDON_PREFIX, versionmsg, chan)
|
||||||
|
end
|
||||||
|
end
|
||||||
|
group = groupsize
|
||||||
|
end)
|
||||||
|
|
||||||
|
pfUI.events:RegisterFrameEventAndCallback("PLAYER_ENTERING_WORLD", function()
|
||||||
|
if not alreadyshown and localversion < remoteversion then
|
||||||
|
DEFAULT_CHAT_FRAME:AddMessage(string.format(T["|cff33ffccpf|rUI: New version available! Get it at %s"], GetAddOnMetadata(pfUI.name, "X-Website") .. "/releases"))
|
||||||
|
DEFAULT_CHAT_FRAME:AddMessage(T["|cffddddddIt's always safe to upgrade |cff33ffccpf|rUI. |cffddddddYou won't lose any of your configuration."])
|
||||||
|
pfUI_init.updateavailable = localversion
|
||||||
|
alreadyshown = true
|
||||||
|
end
|
||||||
|
|
||||||
|
for _, chan in pairs(loginchannels) do
|
||||||
|
SendAddonMessage(ADDON_PREFIX, versionmsg, chan)
|
||||||
|
end
|
||||||
|
end)
|
||||||
end)
|
end)
|
||||||
|
|||||||
@@ -52,9 +52,11 @@ pfUI.env = {}
|
|||||||
-- the flag; one that lacks it should drop the flag and get the safe fallback.
|
-- the flag; one that lacks it should drop the flag and get the safe fallback.
|
||||||
pfUI.handlesHookScript = true
|
pfUI.handlesHookScript = true
|
||||||
|
|
||||||
pfUI.events = Mixin({}, CallbackRegistryMixin)
|
-- pfUI's own EventRegistry: carries pfUI's custom events ("bag:closed",
|
||||||
|
-- "config:changed", ...) and game events alike. Register game events with
|
||||||
|
-- RegisterFrameEventAndCallback instead of creating a frame per listener.
|
||||||
|
pfUI.events = CreateFromMixins(EventRegistry)
|
||||||
pfUI.events:OnLoad()
|
pfUI.events:OnLoad()
|
||||||
pfUI.events:SetUndefinedEventsAllowed(true)
|
|
||||||
|
|
||||||
-- check if macro addons are loaded (disables macrotweak/macroscan)
|
-- check if macro addons are loaded (disables macrotweak/macroscan)
|
||||||
function pfUI:MacroAddonsLoaded()
|
function pfUI:MacroAddonsLoaded()
|
||||||
|
|||||||
@@ -4,7 +4,7 @@
|
|||||||
## Notes: A complete user interface replacement.
|
## Notes: A complete user interface replacement.
|
||||||
## Notes-ruRU: Полная замена пользовательского интерфейса.
|
## Notes-ruRU: Полная замена пользовательского интерфейса.
|
||||||
## Version: @project-version@
|
## Version: @project-version@
|
||||||
## SavedVariables: pfUI_profiles, pfUI_addon_profiles, pfUI_cache, pfUI_throttle
|
## SavedVariables: pfUI_profiles, pfUI_addon_profiles, pfUI_cache, pfUI_throttle, pfUI_combatlog
|
||||||
## SavedVariablesPerCharacter: pfUI_config, pfUI_init, pfUI_playerDB, pfUI_eqmgr
|
## SavedVariablesPerCharacter: pfUI_config, pfUI_init, pfUI_playerDB, pfUI_eqmgr
|
||||||
## X-Website: https://github.com/brues-code/pfUI
|
## X-Website: https://github.com/brues-code/pfUI
|
||||||
|
|
||||||
|
|||||||
+1
-1
@@ -4,7 +4,7 @@
|
|||||||
## Notes: A complete user interface replacement.
|
## Notes: A complete user interface replacement.
|
||||||
## Notes-ruRU: Полная замена пользовательского интерфейса.
|
## Notes-ruRU: Полная замена пользовательского интерфейса.
|
||||||
## Version: @project-version@
|
## Version: @project-version@
|
||||||
## SavedVariables: pfUI_profiles, pfUI_addon_profiles, pfUI_cache, pfUI_throttle
|
## SavedVariables: pfUI_profiles, pfUI_addon_profiles, pfUI_cache, pfUI_throttle, pfUI_combatlog
|
||||||
## SavedVariablesPerCharacter: pfUI_config, pfUI_init, pfUI_playerDB, pfUI_eqmgr
|
## SavedVariablesPerCharacter: pfUI_config, pfUI_init, pfUI_playerDB, pfUI_eqmgr
|
||||||
## X-Website: https://github.com/brues-code/pfUI
|
## X-Website: https://github.com/brues-code/pfUI
|
||||||
|
|
||||||
|
|||||||
+1
-1
@@ -4,7 +4,7 @@
|
|||||||
## Notes: A complete user interface replacement.
|
## Notes: A complete user interface replacement.
|
||||||
## Notes-ruRU: Полная замена пользовательского интерфейса.
|
## Notes-ruRU: Полная замена пользовательского интерфейса.
|
||||||
## Version: @project-version@
|
## Version: @project-version@
|
||||||
## SavedVariables: pfUI_profiles, pfUI_addon_profiles, pfUI_cache, pfUI_throttle
|
## SavedVariables: pfUI_profiles, pfUI_addon_profiles, pfUI_cache, pfUI_throttle, pfUI_combatlog
|
||||||
## SavedVariablesPerCharacter: pfUI_config, pfUI_init, pfUI_playerDB, pfUI_eqmgr
|
## SavedVariablesPerCharacter: pfUI_config, pfUI_init, pfUI_playerDB, pfUI_eqmgr
|
||||||
## X-Website: https://github.com/brues-code/pfUI
|
## X-Website: https://github.com/brues-code/pfUI
|
||||||
|
|
||||||
|
|||||||
@@ -1,7 +1,7 @@
|
|||||||
pfUI:RegisterSkin("Auctionhouse", function ()
|
pfUI:RegisterSkin("Auctionhouse", function ()
|
||||||
local rawborder, border = GetBorderSize()
|
local rawborder, border = GetBorderSize()
|
||||||
local bpad = rawborder > 1 and border - GetPerfectPixel() or GetPerfectPixel()
|
local bpad = rawborder > 1 and border - GetPerfectPixel() or GetPerfectPixel()
|
||||||
HookAddonOrVariable("Blizzard_AuctionUI", function()
|
HookAddon("Blizzard_AuctionUI", function()
|
||||||
SkinArrowButton(BidPrevPageButton, "left", 18)
|
SkinArrowButton(BidPrevPageButton, "left", 18)
|
||||||
SkinArrowButton(BidNextPageButton, "right", 18)
|
SkinArrowButton(BidNextPageButton, "right", 18)
|
||||||
SkinArrowButton(AuctionsPrevPageButton, "left", 18)
|
SkinArrowButton(AuctionsPrevPageButton, "left", 18)
|
||||||
@@ -219,7 +219,7 @@ pfUI:RegisterSkin("Auctionhouse", function ()
|
|||||||
StripTextures(AuctionDressUpFrameCloseButton)
|
StripTextures(AuctionDressUpFrameCloseButton)
|
||||||
SkinCloseButton(AuctionDressUpFrameCloseButton, AuctionDressUpFrame, -6, -6)
|
SkinCloseButton(AuctionDressUpFrameCloseButton, AuctionDressUpFrame, -6, -6)
|
||||||
|
|
||||||
EnableClickRotate(AuctionDressUpModel)
|
EnableModelControls(AuctionDressUpModel)
|
||||||
AuctionDressUpModelRotateLeftButton:Hide()
|
AuctionDressUpModelRotateLeftButton:Hide()
|
||||||
AuctionDressUpModelRotateRightButton:Hide()
|
AuctionDressUpModelRotateRightButton:Hide()
|
||||||
|
|
||||||
|
|||||||
@@ -1,7 +1,7 @@
|
|||||||
pfUI:RegisterSkin("Battlefield Minimap", function ()
|
pfUI:RegisterSkin("Battlefield Minimap", function ()
|
||||||
local rawborder, border = GetBorderSize()
|
local rawborder, border = GetBorderSize()
|
||||||
|
|
||||||
HookAddonOrVariable("Blizzard_BattlefieldMinimap", function()
|
HookAddon("Blizzard_BattlefieldMinimap", function()
|
||||||
StripTextures(BattlefieldMinimap)
|
StripTextures(BattlefieldMinimap)
|
||||||
CreateBackdrop(BattlefieldMinimap, nil, nil, 0)
|
CreateBackdrop(BattlefieldMinimap, nil, nil, 0)
|
||||||
CreateBackdropShadow(BattlefieldMinimap)
|
CreateBackdropShadow(BattlefieldMinimap)
|
||||||
|
|||||||
@@ -171,7 +171,7 @@ pfUI:RegisterSkin("Character", function ()
|
|||||||
StripTextures(CharacterAttributesFrame)
|
StripTextures(CharacterAttributesFrame)
|
||||||
StripTextures(CharacterResistanceFrame)
|
StripTextures(CharacterResistanceFrame)
|
||||||
|
|
||||||
EnableClickRotate(CharacterModelFrame)
|
EnableModelControls(CharacterModelFrame)
|
||||||
CharacterModelFrameRotateLeftButton:Hide()
|
CharacterModelFrameRotateLeftButton:Hide()
|
||||||
CharacterModelFrameRotateRightButton:Hide()
|
CharacterModelFrameRotateRightButton:Hide()
|
||||||
|
|
||||||
@@ -207,7 +207,7 @@ pfUI:RegisterSkin("Character", function ()
|
|||||||
PetNameText:ClearAllPoints()
|
PetNameText:ClearAllPoints()
|
||||||
PetNameText:SetPoint("TOP", CharacterFrame.backdrop, "TOP", 0, -10)
|
PetNameText:SetPoint("TOP", CharacterFrame.backdrop, "TOP", 0, -10)
|
||||||
|
|
||||||
EnableClickRotate(PetModelFrame)
|
EnableModelControls(PetModelFrame)
|
||||||
PetModelFrameRotateLeftButton:Hide()
|
PetModelFrameRotateLeftButton:Hide()
|
||||||
PetModelFrameRotateRightButton:Hide()
|
PetModelFrameRotateRightButton:Hide()
|
||||||
|
|
||||||
@@ -279,6 +279,36 @@ pfUI:RegisterSkin("Character", function ()
|
|||||||
SkinCheckbox(ReputationDetailInactiveCheckBox)
|
SkinCheckbox(ReputationDetailInactiveCheckBox)
|
||||||
SkinCheckbox(ReputationDetailMainScreenCheckBox)
|
SkinCheckbox(ReputationDetailMainScreenCheckBox)
|
||||||
|
|
||||||
|
-- Expand or collapse every header at once, as the Skills tab's button
|
||||||
|
-- does. It shows "+" while any header is collapsed.
|
||||||
|
local collapseAll = CreateFrame("Button", "pfReputationCollapseAllButton", ReputationFrame, "ReputationHeaderTemplate")
|
||||||
|
collapseAll:SetText(ALL)
|
||||||
|
collapseAll:SetWidth(collapseAll:GetTextWidth() + 20)
|
||||||
|
-- on the "Faction" label's row, in the headers' +/- column
|
||||||
|
collapseAll:SetPoint("LEFT", ReputationFrameFactionLabel, "LEFT", -43, 0)
|
||||||
|
collapseAll:SetScript("OnClick", function()
|
||||||
|
if this.isCollapsed then
|
||||||
|
ExpandAllFactionHeaders()
|
||||||
|
else
|
||||||
|
CollapseAllFactionHeaders()
|
||||||
|
end
|
||||||
|
end)
|
||||||
|
SkinCollapseButton(collapseAll, true)
|
||||||
|
|
||||||
|
-- GetFactionInfo, not C_Reputation.GetFactionDataByIndex: the latter
|
||||||
|
-- returns nil for the Other and Inactive headers.
|
||||||
|
hooksecurefunc("ReputationFrame_Update", function()
|
||||||
|
collapseAll.isCollapsed = nil
|
||||||
|
for i = 1, GetNumFactions() do
|
||||||
|
local _, _, _, _, _, _, _, _, isHeader, isCollapsed = GetFactionInfo(i)
|
||||||
|
if isHeader and isCollapsed then
|
||||||
|
collapseAll.isCollapsed = true
|
||||||
|
break
|
||||||
|
end
|
||||||
|
end
|
||||||
|
collapseAll:SetNormalTexture(collapseAll.isCollapsed and "Interface\\Buttons\\UI-PlusButton-Up" or "Interface\\Buttons\\UI-MinusButton-Up")
|
||||||
|
end)
|
||||||
|
|
||||||
-- Append "(N)" to each standing label where N is rep remaining to the
|
-- Append "(N)" to each standing label where N is rep remaining to the
|
||||||
-- next reaction. Skip exalted (reaction 8) and effectively-capped bars.
|
-- next reaction. Skip exalted (reaction 8) and effectively-capped bars.
|
||||||
-- Each bar's OnLeave handler (Blizzard's ReputationFrame.xml) restores
|
-- Each bar's OnLeave handler (Blizzard's ReputationFrame.xml) restores
|
||||||
|
|||||||
@@ -21,7 +21,7 @@ pfUI:RegisterSkin("Dress Up Frame", function ()
|
|||||||
DressUpFrameDescriptionText:ClearAllPoints()
|
DressUpFrameDescriptionText:ClearAllPoints()
|
||||||
DressUpFrameDescriptionText:SetPoint("TOP", DressUpFrame.backdrop, "TOP", 0, -30)
|
DressUpFrameDescriptionText:SetPoint("TOP", DressUpFrame.backdrop, "TOP", 0, -30)
|
||||||
|
|
||||||
EnableClickRotate(DressUpModel)
|
EnableModelControls(DressUpModel)
|
||||||
DressUpModelRotateLeftButton:Hide()
|
DressUpModelRotateLeftButton:Hide()
|
||||||
DressUpModelRotateRightButton:Hide()
|
DressUpModelRotateRightButton:Hide()
|
||||||
|
|
||||||
@@ -29,4 +29,55 @@ pfUI:RegisterSkin("Dress Up Frame", function ()
|
|||||||
SkinButton(DressUpFrameResetButton)
|
SkinButton(DressUpFrameResetButton)
|
||||||
DressUpFrameResetButton:ClearAllPoints()
|
DressUpFrameResetButton:ClearAllPoints()
|
||||||
DressUpFrameResetButton:SetPoint("RIGHT", DressUpFrameCancelButton, "LEFT", -2*bpad, 0)
|
DressUpFrameResetButton:SetPoint("RIGHT", DressUpFrameCancelButton, "LEFT", -2*bpad, 0)
|
||||||
|
|
||||||
|
local undress = CreateFrame("Button", "pfDressUpFrameUndressButton", DressUpFrame, "UIPanelButtonTemplate")
|
||||||
|
undress:SetSize(80, 22)
|
||||||
|
undress:SetText(UNDRESS)
|
||||||
|
undress:SetPoint("RIGHT", DressUpFrameResetButton, "LEFT", -2*bpad, 0)
|
||||||
|
undress:SetScript("OnClick", function()
|
||||||
|
DressUpModel:Undress()
|
||||||
|
PlaySound("gsTitleOptionOK")
|
||||||
|
end)
|
||||||
|
SkinButton(undress)
|
||||||
|
|
||||||
|
-- one button per slot the model can undress, laid out like the paperdoll
|
||||||
|
local columns = {
|
||||||
|
{ point = "TOPLEFT", x = 8, anchor = "ANCHOR_LEFT", slots = { 1, 3, 15, 5, 4, 19, 9 } },
|
||||||
|
{ point = "TOPRIGHT", x = -8, anchor = "ANCHOR_RIGHT", slots = { 10, 6, 7, 8, 16, 17 } },
|
||||||
|
}
|
||||||
|
|
||||||
|
local function SlotOnClick()
|
||||||
|
DressUpModel:UndressSlot(this:GetID())
|
||||||
|
PlaySound("gsTitleOptionOK")
|
||||||
|
end
|
||||||
|
|
||||||
|
local function SlotOnEnter()
|
||||||
|
GameTooltip:SetOwner(this, this.anchor)
|
||||||
|
GameTooltip:SetText(this.label)
|
||||||
|
GameTooltip:AddLine(T["Click to undress"], 1, 1, 1)
|
||||||
|
GameTooltip:Show()
|
||||||
|
end
|
||||||
|
|
||||||
|
for _, column in ipairs(columns) do
|
||||||
|
for row, slot in ipairs(column.slots) do
|
||||||
|
local _, texture, _, slotName = C_PaperDollInfo.GetInventorySlotInfoForInvSlot(slot)
|
||||||
|
local button = CreateFrame("Button", nil, DressUpFrame)
|
||||||
|
button:SetID(slot)
|
||||||
|
button:SetSize(26, 26)
|
||||||
|
button:SetPoint(column.point, DressUpFrame.backdrop, column.point, column.x, -50 - (row - 1) * 30)
|
||||||
|
button:SetFrameLevel(DressUpModel:GetFrameLevel() + 1)
|
||||||
|
button.anchor, button.label = column.anchor, _G[slotName:upper()]
|
||||||
|
|
||||||
|
button.icon = button:CreateTexture(nil, "ARTWORK")
|
||||||
|
button.icon:SetTexture(texture)
|
||||||
|
CreateBackdrop(button)
|
||||||
|
SetAllPointsOffset(button.backdrop, button, 0)
|
||||||
|
HandleIcon(button.backdrop, button.icon)
|
||||||
|
|
||||||
|
button:SetScript("OnClick", SlotOnClick)
|
||||||
|
button:SetScript("OnEnter", SlotOnEnter)
|
||||||
|
button:SetScript("OnLeave", GameTooltip_Hide)
|
||||||
|
SetHighlight(button)
|
||||||
|
end
|
||||||
|
end
|
||||||
end)
|
end)
|
||||||
|
|||||||
@@ -458,7 +458,7 @@ pfUI:RegisterSkin("Friends", function ()
|
|||||||
SkinButton(RaidFrameRaidInfoButton)
|
SkinButton(RaidFrameRaidInfoButton)
|
||||||
SkinButton(RaidFrameConvertToRaidButton)
|
SkinButton(RaidFrameConvertToRaidButton)
|
||||||
|
|
||||||
HookAddonOrVariable("Blizzard_RaidUI", function()
|
HookAddon("Blizzard_RaidUI", function()
|
||||||
for i = 1, MAX_RAID_MEMBERS do
|
for i = 1, MAX_RAID_MEMBERS do
|
||||||
StripTextures(_G["RaidGroupButton"..i])
|
StripTextures(_G["RaidGroupButton"..i])
|
||||||
CreateBackdrop(_G["RaidGroupButton"..i], nil, true)
|
CreateBackdrop(_G["RaidGroupButton"..i], nil, true)
|
||||||
|
|||||||
@@ -21,7 +21,7 @@ pfUI:RegisterSkin("Gossip and Quest", function ()
|
|||||||
StripTextures(QuestRewardItemHighlight)
|
StripTextures(QuestRewardItemHighlight)
|
||||||
local QuestRewardItemHighlight = CreateFrame("Frame", nil, QuestRewardScrollChildFrame)
|
local QuestRewardItemHighlight = CreateFrame("Frame", nil, QuestRewardScrollChildFrame)
|
||||||
local QuestRewardItemHighlightBG = QuestRewardItemHighlight:CreateTexture(nil, "OVERLAY")
|
local QuestRewardItemHighlightBG = QuestRewardItemHighlight:CreateTexture(nil, "OVERLAY")
|
||||||
QuestRewardItemHighlightBG:SetTexture(1,1,1,.2)
|
QuestRewardItemHighlightBG:SetColorTexture(1,1,1,.2)
|
||||||
QuestRewardItemHighlightBG:SetAllPoints()
|
QuestRewardItemHighlightBG:SetAllPoints()
|
||||||
|
|
||||||
hooksecurefunc("QuestFrameItems_Update", function()
|
hooksecurefunc("QuestFrameItems_Update", function()
|
||||||
|
|||||||
+10
-10
@@ -20,8 +20,8 @@ pfUI:RegisterSkin("Help", function ()
|
|||||||
-- HelpFrameHome
|
-- HelpFrameHome
|
||||||
StripTextures(HelpFrameHomeIssues)
|
StripTextures(HelpFrameHomeIssues)
|
||||||
SkinButton(HelpFrameHomeIssues)
|
SkinButton(HelpFrameHomeIssues)
|
||||||
HelpFrameHomeIssues:SetScript("OnMouseUp", function() end)
|
HelpFrameHomeIssues:SetScript("OnMouseUp", nop)
|
||||||
HelpFrameHomeIssues:SetScript("OnMouseDown", function() end)
|
HelpFrameHomeIssues:SetScript("OnMouseDown", nop)
|
||||||
|
|
||||||
SkinButton(HelpFrameHomeCancel)
|
SkinButton(HelpFrameHomeCancel)
|
||||||
|
|
||||||
@@ -49,13 +49,13 @@ pfUI:RegisterSkin("Help", function ()
|
|||||||
-- HelpFrameGeneral
|
-- HelpFrameGeneral
|
||||||
StripTextures(HelpFrameGeneralButton)
|
StripTextures(HelpFrameGeneralButton)
|
||||||
SkinButton(HelpFrameGeneralButton)
|
SkinButton(HelpFrameGeneralButton)
|
||||||
HelpFrameGeneralButton:SetScript("OnMouseUp", function() end)
|
HelpFrameGeneralButton:SetScript("OnMouseUp", nop)
|
||||||
HelpFrameGeneralButton:SetScript("OnMouseDown", function() end)
|
HelpFrameGeneralButton:SetScript("OnMouseDown", nop)
|
||||||
|
|
||||||
StripTextures(HelpFrameGeneralButton2)
|
StripTextures(HelpFrameGeneralButton2)
|
||||||
SkinButton(HelpFrameGeneralButton2)
|
SkinButton(HelpFrameGeneralButton2)
|
||||||
HelpFrameGeneralButton2:SetScript("OnMouseUp", function() end)
|
HelpFrameGeneralButton2:SetScript("OnMouseUp", nop)
|
||||||
HelpFrameGeneralButton2:SetScript("OnMouseDown", function() end)
|
HelpFrameGeneralButton2:SetScript("OnMouseDown", nop)
|
||||||
|
|
||||||
SkinButton(HelpFrameGeneralCancel)
|
SkinButton(HelpFrameGeneralCancel)
|
||||||
|
|
||||||
@@ -69,13 +69,13 @@ pfUI:RegisterSkin("Help", function ()
|
|||||||
|
|
||||||
StripTextures(HelpFrameVerbalHarassmentButton)
|
StripTextures(HelpFrameVerbalHarassmentButton)
|
||||||
SkinButton(HelpFrameVerbalHarassmentButton)
|
SkinButton(HelpFrameVerbalHarassmentButton)
|
||||||
HelpFrameVerbalHarassmentButton:SetScript("OnMouseUp", function() end)
|
HelpFrameVerbalHarassmentButton:SetScript("OnMouseUp", nop)
|
||||||
HelpFrameVerbalHarassmentButton:SetScript("OnMouseDown", function() end)
|
HelpFrameVerbalHarassmentButton:SetScript("OnMouseDown", nop)
|
||||||
|
|
||||||
StripTextures(HelpFramePhysicalHarassmentButton)
|
StripTextures(HelpFramePhysicalHarassmentButton)
|
||||||
SkinButton(HelpFramePhysicalHarassmentButton)
|
SkinButton(HelpFramePhysicalHarassmentButton)
|
||||||
HelpFramePhysicalHarassmentButton:SetScript("OnMouseUp", function() end)
|
HelpFramePhysicalHarassmentButton:SetScript("OnMouseUp", nop)
|
||||||
HelpFramePhysicalHarassmentButton:SetScript("OnMouseDown", function() end)
|
HelpFramePhysicalHarassmentButton:SetScript("OnMouseDown", nop)
|
||||||
|
|
||||||
SkinButton(HelpFrameHarassmentCancel)
|
SkinButton(HelpFrameHarassmentCancel)
|
||||||
|
|
||||||
|
|||||||
@@ -24,7 +24,7 @@ pfUI:RegisterSkin("Inspect", function ()
|
|||||||
local rawborder, border = GetBorderSize()
|
local rawborder, border = GetBorderSize()
|
||||||
local bpad = rawborder > 1 and border - GetPerfectPixel() or GetPerfectPixel()
|
local bpad = rawborder > 1 and border - GetPerfectPixel() or GetPerfectPixel()
|
||||||
|
|
||||||
HookAddonOrVariable("Blizzard_InspectUI", function()
|
HookAddon("Blizzard_InspectUI", function()
|
||||||
local cache = {}
|
local cache = {}
|
||||||
|
|
||||||
CreateBackdrop(InspectFrame, nil, nil, .75)
|
CreateBackdrop(InspectFrame, nil, nil, .75)
|
||||||
@@ -60,7 +60,7 @@ pfUI:RegisterSkin("Inspect", function ()
|
|||||||
do -- Character Tab
|
do -- Character Tab
|
||||||
StripTextures(InspectPaperDollFrame)
|
StripTextures(InspectPaperDollFrame)
|
||||||
|
|
||||||
EnableClickRotate(InspectModelFrame)
|
EnableModelControls(InspectModelFrame)
|
||||||
local rotL = InspectModelRotateLeftButton or InspectModelFrameRotateLeftButton
|
local rotL = InspectModelRotateLeftButton or InspectModelFrameRotateLeftButton
|
||||||
if rotL then rotL:Hide() end
|
if rotL then rotL:Hide() end
|
||||||
local rotR = InspectModelRotateRightButton or InspectModelFrameRotateRightButton
|
local rotR = InspectModelRotateRightButton or InspectModelFrameRotateRightButton
|
||||||
|
|||||||
@@ -76,8 +76,8 @@ pfUI:RegisterSkin("Books", function ()
|
|||||||
ItemTextScrollFrameScrollBarScrollUpButton:Show()
|
ItemTextScrollFrameScrollBarScrollUpButton:Show()
|
||||||
ItemTextScrollFrameScrollBarScrollDownButton:Show()
|
ItemTextScrollFrameScrollBarScrollDownButton:Show()
|
||||||
|
|
||||||
ItemTextScrollFrame.Show = function(self) end
|
ItemTextScrollFrame.Show = nop
|
||||||
ItemTextScrollFrame.Hide = function(self) end
|
ItemTextScrollFrame.Hide = nop
|
||||||
ItemTextScrollFrameScrollBar.Show = function(self) self.thumb:Show() end
|
ItemTextScrollFrameScrollBar.Show = function(self) self.thumb:Show() end
|
||||||
ItemTextScrollFrameScrollBar.Hide = function(self) self.thumb:Hide() end
|
ItemTextScrollFrameScrollBar.Hide = function(self) self.thumb:Hide() end
|
||||||
ItemTextScrollFrameScrollBarScrollUpButton.Show = function(self) if self:GetParent():GetValue() ~= 0 then self:Enable() end end
|
ItemTextScrollFrameScrollBarScrollUpButton.Show = function(self) if self:GetParent():GetValue() ~= 0 then self:Enable() end end
|
||||||
|
|||||||
Some files were not shown because too many files have changed in this diff Show More
Reference in New Issue
Block a user