Приветствуем вас на форуме проекта WoW Circle. Если вы читаете это, значит не зарегистрировались у нас. Для того, чтобы получить доступ к расширенным возможностям нашего форума нажмите сюда и пройди регистрацию, которая не займет у вас много времени. После регистрации будут доступны новые, более расширенные, возможности.
Проверка дебафа на членах рейда

Упомянутые в теме пользователи:

Показано с 1 по 1 из 1
  1. #1
    Старожил
    Регистрация
    17.03.2016
    Сообщений
    133
    Поблагодарил(а)
    13
    Получено благодарностей: 18 (сообщений: 12).
    Репутация: 18

    Проверка дебафа на членах рейда

    Хочу написать аддон который смог бы сканировать рейд и если обнаруживает на ком-то дебаф (по ID скила) то проигрывает звуковой файл.

    Воспроизвести звук не проблема:
    Код:
    PlaySoundFile("Interface\\AddOns\\Название аддона\\Sounds\\Countdown.mp3")
    Но как реализовать проверку на рейде так и не понял. Пытался копировать куски кода из DBM но не смог разобраться. Буду благодарен за любую помощь.

    Цитата Сообщение от DreamlØlz
    PHP код:
    local checkIDs = { -- по аналогии добавить нужные ауры
        
    ['Священный щит'] = true,
        [
    22222] = true,
    }

    local f CreateFrame"frame"
    f:Hide()
    local dTypeFilter = {"HARMFUL""HELPFUL"} -- бафы и дебафы HARMFUL дебафы HELPFUL бафы
    local playCache 
    = {} -- это нужно что бы звук не воспроизводился кучу раз при обновлении любой из ауресли на цили висит нужная
    f
    :SetScript("OnEvent", function(selfeventunit)
        if 
    unit:match'raid%d' then -- нам нужен только рейдне плохо бы кэшировать через слабые таблицы но и так сойдет
            local foundAuras 
    -- найденные ауры из кэша
            
    for 1#dTypeFilter do
                
    local filter dTypeFilter[i]
                if 
    filter then
                    local index 
    1
                    
    while true do
                        
    local nameranktexturecountdtypedurationtimeLeftcasterisStealableshouldConsolidatespellID UnitAura(unitindexfilter)
                        if 
    not name then break end -- цикл то бесконечныйнужно выходить если аур больше нет бля дальнейшего перебора
                        local curaura 
    checkIDs[name] or checkIDs[spellID] -- нашли ауру из списка?
                        if 
    curaura then
                            foundAuras 
    foundAuras -- отлично сумируем
                        end
                        index 
    index 1
                    end
                end
            end
            
    if foundAuras and not playCache[unitthen
                PlaySoundFile
    ("Interface\\AddOns\\Название аддона\\Sounds\\Countdown.mp3")
                
    playCache[unit] = true -- записываем юнитадля предотвращения множества вызовов при появлении всего 1 ауры
            
    else
                if 
    playCache[unitthen -- ауры нетснимаем флаг и можно поновой воспроизводить звукв случае дальнейшего ее появления
                    playCache
    [unit] = nil
                end
            end
        end
    end
    )

    f:RegisterEvent("UNIT_AURA"
    Последний раз редактировалось DreamlØlz; 23.08.2017 в 00:54.

Похожие темы

  1. Ответов: 12
    Последнее сообщение: 15.02.2015, 01:11
  2. Совет для Олд-Рейдера
    от vett0 в разделе Корзина
    Ответов: 3
    Последнее сообщение: 27.12.2014, 01:53
  3. Ответов: 6
    Последнее сообщение: 13.04.2013, 21:19
  4. Ответов: 1
    Последнее сообщение: 15.01.2013, 14:10

Ваши права

  • Вы не можете создавать новые темы
  • Вы не можете отвечать в темах
  • Вы не можете прикреплять вложения
  • Вы не можете редактировать свои сообщения
  •