Возникла проблема при написании функции, только начинаю. Функция должна возвращать количество нестабильного колдовства, наложенного на цель. Накладывается до 5-ти раз, каждый эффект со своим ID. Вот мой код:
function()
stacks = 0
local UA1 = UnitDebuff("target",233490,"","PLAYER")
if UA1 then
stacks = stacks + 1
end
local UA2 = UnitDebuff("target",233496,"","PLAYER")
if UA2 then
stacks = stacks + 1
end
local UA3 = UnitDebuff("target",233497,"","PLAYER")
if UA3 then
stacks = stacks + 1
end
local UA4 = UnitDebuff("target",233498,"","PLAYER")
if UA4 then
stacks = stacks + 1
end
local UA5 = UnitDebuff("target",233499,"","PLAYER")
if UA5 then
stacks = stacks + 1
end
return stacks
end
Возвращает 0.
Если ID заменить на название спеллов - все работает. Проверял на порче/агонии и т. д. (вместо ID вставлял "Порча", "Агония", да и само "Нестабильное колдовство"), количество считает. Но с нестабилкой такое не прокатит - 5 эффектов, а название одно, надо именно по ID. А вот его у меня UnitDebuff принимать не хочет...
UPD: Походу, указывая в параметрах функции число, я указываю номер дабафа на цели (от 1 до 40), проверил на "1" и "2" - работает. Все еще актуален вопрос, как в параметрах вместо названия использовать spellID.
UPD2: Решил задачу с другой стороны - перебором дебаффов в цикле:
function()
stacks = 0
for i = 1, 40 do
if UnitDebuff("target",i,"PLAYER")=="Нестабильное колдовство" then
stacks = stacks +1
end
end
return stacks
end
Но вопрос о передаче в параметры UnitDebuff spellID остался...