Страница 1 из 1

Можно ли посчитать?

Добавлено: 28 июн 2019, 12:38
uaz266
Можно ли посчитать сколько штук на цели висит "Нестабильное колдовство"?
https://ru.wowhead.com/spell=30108/%D0% ... 0%B2%D0%BE

Проблема в том ,что оно не стакается,а суммируется.

Re: Можно ли посчитать?

Добавлено: 11 авг 2019, 07:11
keklol
кстати тоже интересно, есть ли возможность это как-то отследить, может есть у кого идеи?
там суть в том что нужно дать не больше 5 анстейблов, а под бурст, особенно если мультитаргет у тебя прокает норм шардов и давать их в оверкап это не ок
http://prntscr.com/or5k1i
у афенара в вашке можно отследить, поэтому думаю и тут это можно реализовать, но у меня знаний недостаточно
вот такой там тригер

Код: Выделить всё

function()
    aura_env.stacks = 0
    aura_env.duration = 0
    aura_env.expTime =0
    for i = 1, 40 do
        local dur, expTime, _, _, _, spellID = select(5, UnitDebuff("target", i, "PLAYER"))
        
        if aura_env.UnstableArray[spellID] then
            aura_env.stacks = aura_env.stacks + 1
            
            if expTime > aura_env.expTime then
                aura_env.duration = dur
                aura_env.expTime = expTime
            end
        end
    end
    if aura_env.stacks == 0 then
        aura_env.duration = 0
        aura_env.expTime =0
    end
    return true
end
сижу в коде и на https://wowwiki.fandom.com/wiki/API_UnitDebuff но не могу понять как реализовать

Re: Можно ли посчитать?

Добавлено: 11 авг 2019, 07:53
EnterBrain
keklol писал(а):
11 авг 2019, 07:11
кстати тоже интересно, есть ли возможность это как-то отследить, может есть у кого идеи?
там суть в том что нужно дать не больше 5 анстейблов, а под бурст, особенно если мультитаргет у тебя прокает норм шардов и давать их в оверкап это не ок
http://prntscr.com/or5k1i
у афенара в вашке можно отследить, поэтому думаю и тут это можно реализовать, но у меня знаний недостаточно
вот такой там тригер

Код: Выделить всё

function()
    aura_env.stacks = 0
    aura_env.duration = 0
    aura_env.expTime =0
    for i = 1, 40 do
        local dur, expTime, _, _, _, spellID = select(5, UnitDebuff("target", i, "PLAYER"))
        
        if aura_env.UnstableArray[spellID] then
            aura_env.stacks = aura_env.stacks + 1
            
            if expTime > aura_env.expTime then
                aura_env.duration = dur
                aura_env.expTime = expTime
            end
        end
    end
    if aura_env.stacks == 0 then
        aura_env.duration = 0
        aura_env.expTime =0
    end
    return true
end
Ну тут судя по всему идёт перебор висящих дебафов. Если правильно понимаю, их несколько вешается, а интерфейс их складывает в один. Т.е. тут тупо надо перебрать все дебаффы с нужным айди и посчитать их. Проверить сам не могу, варлока нету) А с какого лвл эта механика появляется?
UPD. Сделал варлока ночнорождённого и этого хватило. Да там просто надо перебрать дебафы и посчитать их.

Re: Можно ли посчитать?

Добавлено: 11 авг 2019, 08:02
keklol
EnterBrain писал(а):
11 авг 2019, 07:53
Ну тут судя по всему идёт перебор висящих дебафов. Если правильно понимаю, их несколько вешается, а интерфейс их складывает в один. Т.е. тут тупо надо перебрать все дебаффы с нужным айди и посчитать их. Проверить сам не могу, варлока нету) А с какого лвл эта механика появляется?
Да, их вешается от 1 до 5. Не знаю, гдет с 50, на офе можно триал 110 лвл создать и сидеть на нем на манекене.
Суть в том что есть возможность это отследить, значит и возможность в боте тоже будет, но я не понимаю как кодом реализовать это,а стандартными инструментами не выходит.

Re: Можно ли посчитать?

Добавлено: 11 авг 2019, 08:26
EnterBrain
keklol писал(а):
11 авг 2019, 08:02
Да, их вешается от 1 до 5. Не знаю, гдет с 50, на офе можно триал 110 лвл создать и сидеть на нем на манекене.
Суть в том что есть возможность это отследить, значит и возможность в боте тоже будет, но я не понимаю как кодом реализовать это,а стандартными инструментами не выходит.

Код: Выделить всё

function CalculateUnstable(unit, SpellName)
    local stacks = 0;
    for i=1,40 do
        local name, _ = UnitDebuff(unit, i, "PLAYER");
        if not name then 
            break
        end
        if string.upper(name) == string.upper(SpellName) then
            stacks = stacks + 1;
        end
    end
    return stacks;
end
Изображение
Через пользовательский код юзай CalculateUnstable("target","Нестабильное колдовство"), возвращает кол-во нестабильного колдовства в штуках)

Re: Можно ли посчитать?

Добавлено: 11 авг 2019, 09:21
keklol
EnterBrain писал(а):
11 авг 2019, 08:26
keklol писал(а):
11 авг 2019, 08:02
Да, их вешается от 1 до 5. Не знаю, гдет с 50, на офе можно триал 110 лвл создать и сидеть на нем на манекене.
Суть в том что есть возможность это отследить, значит и возможность в боте тоже будет, но я не понимаю как кодом реализовать это,а стандартными инструментами не выходит.

Код: Выделить всё

function CalculateUnstable(unit, SpellName)
    local stacks = 0;
    for i=1,40 do
        local name, _ = UnitDebuff(unit, i, "PLAYER");
        if not name then 
            break
        end
        if string.upper(name) == string.upper(SpellName) then
            stacks = stacks + 1;
        end
    end
    return stacks;
end
Изображение
Через пользовательский код юзай CalculateUnstable("target","Нестабильное колдовство"), возвращает кол-во нестабильного колдовства в штуках)
Cпасибо больше! Всё работает.

Re: Можно ли посчитать?

Добавлено: 11 авг 2019, 18:26
EnterBrain
Изображение
С обновлением можно теперь так считать кол-во одноимённых дебафов на цели от игрока.