Код: Выделить всё
Talents = {{}, {}, {}, {}, {}, {}, {}}
Talents.pvp = {}
local function GetTalents()
for tier=1,7 do
for value=1,3 do
Talents[tier][value] = (select(4, GetTalentInfo(tier, value, 1)))
end
end
for slotN, talentID in ipairs (C_SpecializationInfo.GetAllSelectedPvpTalentIDs()) do
Talents.pvp[talentID] = true
end
end
local Eye = CreateFrame("Frame")
Eye:RegisterEvent("PLAYER_ENTERING_WORLD")
Eye:RegisterEvent("PLAYER_SPECIALIZATION_CHANGED")
Eye:RegisterEvent("PLAYER_TALENT_UPDATE")
Eye:SetScript("OnEvent",
function(self, event, ...)
if event == "PLAYER_TALENT_UPDATE" then
GetTalents()
elseif event == "PLAYER_SPECIALIZATION_CHANGED" then
GetTalents()
elseif event == "PLAYER_ENTERING_WORLD" then
GetTalents()
Eye:UnregisterEvent("PLAYER_ENTERING_WORLD")
end
end
)
function inPvP()
return C_PvP.IsWarModeActive() or C_PvP.IsPVPMap()
end
Например: Talents[5][2]
Тут row это тир (строчка) в окне талантов, а position это номер 1, 2, 3 таланта, который можно выбрать в этой строчке: Если талант в ячейке выбран, то для его позиции в таблице будет true.
Проверить, правильно ли сейчас эта таблица видит ваши текущие таланты можно, написав в чат это + Enter:
Код: Выделить всё
/dump Talents
Код: Выделить всё
/dump Talents[5][2]
Для проверки пвп таланта та же схема пользовательского условия, но вложенная таблица Talents.pvp[talentID]
Например: Talents.pvp[3506]
ID пвп таланта нужно смотреть в игре с аддоном IDtip или на вовхеде.
Помните, что выбранные пвп таланты определяются всегда, но работают только с активным вармодом или в пвп-инстансах. Вам нужно в проверке добавлять определение вармода
C_PvP.IsWarModeActive() — возвращает true или false в зависимости от вашего статуса вармода.
C_PvP.IsPVPMap() — возвращает true или false в зависимости от нахождения на пвп карте. Должно помочь определять пвп-инстансы.
Проверка обоих случаев объединена в функцию inPvP(), которую нужно вызывать вместе с проверкой пвп таланта.
Кто пвпшится, тот сам найдёт, как правильно определяется активный пвп режим, при котором пвп таланты работают.
Для вывода только таблицы пвп талантов:
Код: Выделить всё
/dump Talents.pvp
Код: Выделить всё
/dump Talents.pvp[3506]
Код: Выделить всё
inPvP() and Talents.pvp[3506]