в api нет функции возвращающей айдишник мейнтанка, но есть https://warcraft.wik...PartyAssignment (или аналогично https://wowwiki-arch...tRaidRosterInfo в том числе возвращает роль), которым можно проверить всех участников рейда, типа вот так
function getMainTank()
for i=1,GetNumRaidMembers() do
if GetPartyAssignment("maintank", "raid"..i)==1 then return "raid"..i end -- вариант с GetPartyAssignment
if select(10, GetRaidRosterInfo(i))=="MAINTANK" then return "raid"..i end -- вариант с GetRaidRosterInfo
end
return nil
end
UPD:
если тебе это нужно не в моменте узнавать, а отслеживать динамически, то нужно подписаться на ивент RAID_ROSTER_UPDATE, он выстреливает в том числе при назначении мейнтанка, типа так
mytestframe = CreateFrame("Frame")
mytestframe:RegisterEvent("RAID_ROSTER_UPDATE")
mytestframe:SetScript("OnEvent", function(...)
local mt = getMainTank()
print(mt, mt and UnitName(mt))
end)
Сообщение отредактировал CrossDoOm: 29 августа 2024 - 16:07