全职业法术队列窗口修改,适配3.44

全职业法术队列窗口修改,适配3.44

适配GetTalentTabInfo(1) API返回新的字符串值。法系:暗牧,法师,术士,奶骑,奶德/平衡德,元素/恢复萨改为400,猎人,盗贼,战士,惩戒骑,增加萨,猫设置为100

通用

如果要调整具体数值。请调整下方的数值,法系是newval 物理是 value

       local newval = 400 --法系

       local value = 100  -- 物理,默认



如果要调整猎人改成400,请将

       -- 职业判断逻辑 --

       if classEN == "MAGE" or classEN == "PRIEST" or classEN == "WARLOCK" then

           value = newval


改成

       -- 职业判断逻辑 --

       if classEN == "MAGE" or classEN == "PRIEST" or classEN == "WARLOCK" or classEN == "HUNTER" then

           value = newval


完整代码如下:

function(event)

   if event == "PLAYER_TALENT_UPDATE" or event == "PLAYER_ENTERING_WORLD" then

       local classCN = {

           ["WARRIOR"] = "战士",

           ["PALADIN"] = "圣骑士",

           ["HUNTER"] = "猎人",

           ["ROGUE"] = "潜行者",

           ["PRIEST"] = "牧师",

           ["DEATHKNIGHT"] = "死亡骑士",

           ["SHAMAN"] = "萨满",

           ["MAGE"] = "法师",

           ["WARLOCK"] = "术士",

           ["DRUID"] = "德鲁伊"

       }

       

       local _, classEN = UnitClass("player")

       --如果手感不对,只需要修改下方 newval和value的值,允许的范围是50-400。

       local newval = 400 --法系

       local value = 100  -- 物理,默认

       

       -- 职业判断逻辑 --

       if classEN == "MAGE" or classEN == "PRIEST" or classEN == "WARLOCK" then

           value = newval

           

       elseif classEN == "SHAMAN" then

           local _, _, _, _, elemPoints = GetTalentTabInfo(1)  -- 元素系

           local _, _, _, _, enhPoints = GetTalentTabInfo(2)   -- 增强系

           local _, _, _, _, restoPoints = GetTalentTabInfo(3) -- 恢复系

           

           -- 增强系点数 < 元素/恢复中的最大点数 → 判定为元素/恢复萨

           if enhPoints < math.max(elemPoints, restoPoints) then

               value = default

           end

           

       elseif classEN == "DRUID" then

           -- 平衡德(第1系)或恢复德(第3系)

           local _, _, _, _, balancePoints = GetTalentTabInfo(1)  -- 平衡系(奥术/自然)

           local _, _, _, _, feralPoints = GetTalentTabInfo(2)    -- 野性系(近战/坦克)

           local _, _, _, _, restoPoints = GetTalentTabInfo(3)    -- 恢复系(治疗)

           

           -- 判断野性系是否不是主天赋(平衡或恢复点数更高)

           if feralPoints < math.max(balancePoints, restoPoints) then

               value = newval  -- 法系或治疗德

           end

           

       elseif classEN == "PALADIN" then

           -- 获取神圣/防护/惩戒系的天赋点数(第3个返回值)

           local _, _, _, _, holyPoints = GetTalentTabInfo(1)  -- 神圣

           local _, _, _, _, protPoints = GetTalentTabInfo(2)  -- 防护

           local _, _, _, _, retriPoints = GetTalentTabInfo(3) -- 惩戒

           -- 判断神圣系是否为主天赋:判断思路:神圣天赋点数大于防护和惩戒则为奶骑

           if holyPoints > math.max(protPoints, retriPoints) then

               value = newval --奶骑

           end

       end

       

       SetCVar("SpellQueueWindow", value)

       print("|cFF00FF00[提醒:]|r 当前职业:"..classCN[classEN].." 当前法术队列窗口:"..value)

   end

   return true

end