WoW LUA: MSP,结合GTAL?
WoW LUA: MSP, combining GTAL?
虽然我知道最好从基础开始,但我喜欢涉猎。这让我很伤心。在 WoW 中,我使用 ElvUI 和 MyRolePlay (MRP),结果是增强工具提示出现问题。我对代码做了相当多的编辑,唯一剩下的就是尝试正确设置最后一行的格式 - 一行中的全部(3 个变量)。我不明白 gtal 是什么(或 "L"),但它似乎创建了一个新行。有没有办法组合 gtal 线,同时分别保留两者的 RGB 颜色?我试图保持代码风格(因为我在引入新代码时遇到问题)但是由于作者如何调用变量的颜色,我无法获得最终的 %s 自己的颜色值无需换行。
local dC = GetQuestDifficultyColor(level);
local cC = RAID_CLASS_COLORS[ classunloc ];
我能想到的最好的,
gtal( format( L["|r%s|cffffffff %s"], e, emptynil( mrp.DisplayTooltip.RA( f.RA ) ) or race, class), dC.r, dC.g, dC.b )
gtal( format( L["|r%s"], class), cC.r, cC.g, cC.b )
mod 或我能找到的任何其他地方都没有关于 gtal 的信息。我听说作者是不可能接近的。但我希望有人在这里得到这个想法。
Result of the two gtal lines 完美,要是上面一行只有最后一个字就好了!
如果有帮助,所有这些都是
local dC = GetQuestDifficultyColor(level);
local cC = RAID_CLASS_COLORS[ classunloc ];
if level ~= nil and level < 0 then
e = L["|cffffffff(Boss)"]
else
e = format( L["|r%d|cffffffff"], level )
end
if mspsupported then
gtal( format( L["|r%s|cffffffff %s"], e, emptynil( mrp.DisplayTooltip.RA( f.RA ) ) or race, class), dC.r, dC.g, dC.b )
gtal( format( L["|r%s"], class), cC.r, cC.g, cC.b )
n = nil
t = nil
if f.FR and f.FR ~= "" and f.FR ~= "0" then
n = mrp.DisplayTooltip.FR( f.FR ) .. " "
end
最后,这就是原版 gtal 的样子
gtal( format( L["%s %s |r%s|cffffffff (Player)"], e, emptynil( mrp.DisplayTooltip.RA( f.RA ) ) or race, class), r, g, b )
r, g, b = 1.0, 1.0, 1.0
更新 - 这就是这里的工作原理,因为如果这对其他人有帮助:
local dC = GetQuestDifficultyColor(level);
local cC = RAID_CLASS_COLORS[ classunloc ];
if level ~= nil and level < 0 then
e = L["|cffffffff(Boss)"]
else
e = format( L["|r%d|cffffffff"], level )
end
if mspsupported then
local classStr = format("|cff%02x%02x%02x%s|r", cC.r * 255, cC.g * 255, cC.b * 255, class)
local str = format( L["|r%s |cffffffff%s|r %s"], e, emptynil( mrp.DisplayTooltip.RA( f.RA ) ) or race, classStr)
gtal(str, dC.r, dC.g, dC.b)
gtal
定义在 UI_Tooltip.lua
:
--[[
EPIC KLUDGE!
Special local functions to overwrite and add the current tooltip.
]]
-- Single string
local function gtal( n, r, g, b )
local l = GameTooltip.mrpLines + 1
GameTooltip.mrpLines = l
r, g, b = (r or 1.0), (g or 1.0), (b or 1.0)
--if GameTooltip.mrpLines <= GameTooltip.orgLines then
-- Replace original line with ours, or add a new one if not there
if _G["GameTooltipTextLeft"..tostring(l)] then
if _G["GameTooltipTextLeft"..tostring(l)]:IsVisible() then
if _G["GameTooltipTextRight"..tostring(l)] then
_G["GameTooltipTextRight"..tostring(l)]:Hide()
end
_G["GameTooltipTextLeft"..tostring(l)]:SetText( n )
_G["GameTooltipTextLeft"..tostring(l)]:SetTextColor( r, g, b )
else
GameTooltip:AddLine( n, r, g, b )
end
else
GameTooltip:AddLine( n, r, g, b )
end
end
L
通常是您的本地化 table 查找,如果您想要不同语言的不同格式字符串,请在此处使用。
在这种情况下,看起来 gtal
总是添加一行,因此您需要在同一行中完成所有工作。幸运的是,WoW 为您提供了可以使用的内联颜色覆盖!请参阅 UI Escape Sequences - 这就是 |cxxxxxxxx
和字符串中的其他内容。你可能想要这样的东西:
-- Build a color-formatted class string
local classStr = format("|c%02x%02x%02x%s|r", cC.r, cC.g, cC.b, class)
-- Build your tooltip line, which consists of `$e $race $class`
local str = format( L["|r%s |cffffffff%s|r %s"], e, emptynil( mrp.DisplayTooltip.RA( f.RA ) ) or race, classStr)
-- Add the line to the tooltip
gtal(str, dC.r, dC.g, dC.b)
虽然我知道最好从基础开始,但我喜欢涉猎。这让我很伤心。在 WoW 中,我使用 ElvUI 和 MyRolePlay (MRP),结果是增强工具提示出现问题。我对代码做了相当多的编辑,唯一剩下的就是尝试正确设置最后一行的格式 - 一行中的全部(3 个变量)。我不明白 gtal 是什么(或 "L"),但它似乎创建了一个新行。有没有办法组合 gtal 线,同时分别保留两者的 RGB 颜色?我试图保持代码风格(因为我在引入新代码时遇到问题)但是由于作者如何调用变量的颜色,我无法获得最终的 %s 自己的颜色值无需换行。
local dC = GetQuestDifficultyColor(level);
local cC = RAID_CLASS_COLORS[ classunloc ];
我能想到的最好的,
gtal( format( L["|r%s|cffffffff %s"], e, emptynil( mrp.DisplayTooltip.RA( f.RA ) ) or race, class), dC.r, dC.g, dC.b )
gtal( format( L["|r%s"], class), cC.r, cC.g, cC.b )
mod 或我能找到的任何其他地方都没有关于 gtal 的信息。我听说作者是不可能接近的。但我希望有人在这里得到这个想法。
Result of the two gtal lines 完美,要是上面一行只有最后一个字就好了!
如果有帮助,所有这些都是
local dC = GetQuestDifficultyColor(level);
local cC = RAID_CLASS_COLORS[ classunloc ];
if level ~= nil and level < 0 then
e = L["|cffffffff(Boss)"]
else
e = format( L["|r%d|cffffffff"], level )
end
if mspsupported then
gtal( format( L["|r%s|cffffffff %s"], e, emptynil( mrp.DisplayTooltip.RA( f.RA ) ) or race, class), dC.r, dC.g, dC.b )
gtal( format( L["|r%s"], class), cC.r, cC.g, cC.b )
n = nil
t = nil
if f.FR and f.FR ~= "" and f.FR ~= "0" then
n = mrp.DisplayTooltip.FR( f.FR ) .. " "
end
最后,这就是原版 gtal 的样子
gtal( format( L["%s %s |r%s|cffffffff (Player)"], e, emptynil( mrp.DisplayTooltip.RA( f.RA ) ) or race, class), r, g, b )
r, g, b = 1.0, 1.0, 1.0
更新 - 这就是这里的工作原理,因为如果这对其他人有帮助:
local dC = GetQuestDifficultyColor(level);
local cC = RAID_CLASS_COLORS[ classunloc ];
if level ~= nil and level < 0 then
e = L["|cffffffff(Boss)"]
else
e = format( L["|r%d|cffffffff"], level )
end
if mspsupported then
local classStr = format("|cff%02x%02x%02x%s|r", cC.r * 255, cC.g * 255, cC.b * 255, class)
local str = format( L["|r%s |cffffffff%s|r %s"], e, emptynil( mrp.DisplayTooltip.RA( f.RA ) ) or race, classStr)
gtal(str, dC.r, dC.g, dC.b)
gtal
定义在 UI_Tooltip.lua
:
--[[
EPIC KLUDGE!
Special local functions to overwrite and add the current tooltip.
]]
-- Single string
local function gtal( n, r, g, b )
local l = GameTooltip.mrpLines + 1
GameTooltip.mrpLines = l
r, g, b = (r or 1.0), (g or 1.0), (b or 1.0)
--if GameTooltip.mrpLines <= GameTooltip.orgLines then
-- Replace original line with ours, or add a new one if not there
if _G["GameTooltipTextLeft"..tostring(l)] then
if _G["GameTooltipTextLeft"..tostring(l)]:IsVisible() then
if _G["GameTooltipTextRight"..tostring(l)] then
_G["GameTooltipTextRight"..tostring(l)]:Hide()
end
_G["GameTooltipTextLeft"..tostring(l)]:SetText( n )
_G["GameTooltipTextLeft"..tostring(l)]:SetTextColor( r, g, b )
else
GameTooltip:AddLine( n, r, g, b )
end
else
GameTooltip:AddLine( n, r, g, b )
end
end
L
通常是您的本地化 table 查找,如果您想要不同语言的不同格式字符串,请在此处使用。
在这种情况下,看起来 gtal
总是添加一行,因此您需要在同一行中完成所有工作。幸运的是,WoW 为您提供了可以使用的内联颜色覆盖!请参阅 UI Escape Sequences - 这就是 |cxxxxxxxx
和字符串中的其他内容。你可能想要这样的东西:
-- Build a color-formatted class string
local classStr = format("|c%02x%02x%02x%s|r", cC.r, cC.g, cC.b, class)
-- Build your tooltip line, which consists of `$e $race $class`
local str = format( L["|r%s |cffffffff%s|r %s"], e, emptynil( mrp.DisplayTooltip.RA( f.RA ) ) or race, classStr)
-- Add the line to the tooltip
gtal(str, dC.r, dC.g, dC.b)