WORLD OF WARCRAFT

Тема: [Weak Auras 2]  (Прочитано 569087 раз)

0 Пользователей и 1 Гость просматривают эту тему.

Afenar

  • Модератор
  • Ветеран
  • *
  • Сообщений: 7675
  • WarsongEU_Wolfheart

  • Варкрафт: +
    • Имя: Афенар
    • Класс: Priest
    • Сервер: Король-Свитч
Re: [Weak Auras 2]
« Ответ #1335 : 20 Сентября, 2018, 16:36:58 »
  • Рейтинг:0 (+0 | 0)
Парни, совсем недавно стал осваивать wa, вот теперь сижу настраиваю полностью под себя.
Хочу сделать так, что бы в одной индикации была иконка Shadow Word: Pain или Очищение зла (это у дц две разные дотки), в зависимости если вкачана в талантах вторая дотка то отображалась она если нет то swp соответственно. Нужно что бы она отображалась всегда серой иконкой (даже если нету у меня цели) и если выбрана цель и на ней нет данной доты, если же есть то соответственно счетчик доты. Как это сделать в одном слоте индикации? Что бы не создавать несколько по загрузке каждого таланта? Как я не пробовал, во первых не могу понять как сделать что бы переключалась иконка на нужную.
всё уже сделано давно SWP / PTW for mouseover / assist macro
условие серости без цели не сделано, потому что глупость, у тебя же может быть больше одной цели.

Цитировать
- dot found = icon w/ timer (glow if <= 4s)
 - 1st enemy found have no dot = desaturate icon
 - no enemy found = no icon


Ок, спасибо не видел данный индикатор, хотя искал и почти все перебрал там.
У меня другой вопрос, как сделать что бы иконка становилась серой если нет маны на ее произнесенее?


Serafim1991

  • Старожил
  • ***
  • Сообщений: 2614
Re: [Weak Auras 2]
« Ответ #1336 : 24 Сентября, 2018, 14:58:05 »
  • Рейтинг:0 (+0 | 0)
Помогите Даше из обычной ауры с таймером сделать универсальную
Таймер обыкновенный
Цитировать
function()
    s, d, e = GetSpellCooldown('19236')
    if math.floor(s+d-GetTime()) >= 60 then
        return math.floor((60 + s +d -GetTime())/60).."m"
    else
        return math.floor((s + d - GetTime()))
    end
end

Список скилов, на которые таймер должен расшариться
Цитировать
aura_env.list = {
    [19236] = true, --Молитва отчаяния
    [34433] = true, --Исчадие Тьмы
    [47536] = true, --Вознесение
    [33206] = true, --Подавление боли
    [62618] = true, --Слово силы: Барьер
    [246287] = true, --Проповедь
}


Как их соединить?
Можно, конечно, в каждый спел просто вписать этот шаблонный кусочек с таймером, но это скучно :)
Или вообще на все заклинания группы вне зависимости больше 60 секунд у них кд или нет. Это был бы идеальный вариант(поскольку в группе есть скилы с 10-40 сек кд и включена опция отображения гкд на всех спелах - вылазит циферка гкд там, где нет кода, а мне эта циферка гкд не нужна, достаточно обычного кругового отображения)

P.S. пока писал - вылез какой-то баг: если спел не на кд, то на иконке отображаются бешеные цифры кулдауна со знаком "-". В стиле "-84324324234"

« Последнее редактирование: 24 Сентября, 2018, 15:57:10 by Serafim1991 »

afreg

  • Завсегдатай
  • **
  • Сообщений: 437
  • Химюон - Азурегос

  • Варкрафт: +
    • Имя: Химюон
    • Класс: жрец
    • Сервер: Азурегос
Re: [Weak Auras 2]
« Ответ #1337 : 24 Сентября, 2018, 22:15:32 »
  • Рейтинг:2 (+2 | 0)
(показать/скрыть)

Если я правильно понял, ты хочешь кусок кода, который можно не думая и ничего не меняя закинуть в раздел "текст" ауры и он выдаст тебе таймер нормальный, так?
Во-первых надо избегать использовать глобальные перменные (s, d, e не объявлены локально у тебя).
Во-вторых id спелла можно вытянуть из параметров ауры (aura_env.state.spellId).
В-третьих нужно  либо вырубать таймер при спелле не на кд, либо вырубать ауру. В твоем случае GetSpellCooldown возвращает 0 в start (наверное, не проверял) и тогда старт плюс длительность минус время сервера - вон та вон стремная цифра, что ты написал.
function()
    local start, duration, enabled = GetSpellCooldown(aura_env.state.spellId)
    if enabled == 0 and math.floor(start + duration - GetTime()) >= 60 then
        return math.ceil((start + duration - GetTime())/60).."m"
    elseif  enabled == 0
        return math.floor(start + duration - GetTime())
    else
        return ""
    end
end

Serafim1991

  • Старожил
  • ***
  • Сообщений: 2614
Re: [Weak Auras 2]
« Ответ #1338 : 24 Сентября, 2018, 22:29:03 »
  • Рейтинг:0 (+0 | 0)
Если я правильно понял, ты хочешь кусок кода, который можно не думая и ничего не меняя закинуть в раздел "текст" ауры и он выдаст тебе таймер нормальный, так?
Во-первых надо избегать использовать глобальные перменные (s, d, e не объявлены локально у тебя).
Во-вторых id спелла можно вытянуть из параметров ауры (aura_env.state.spellId).
В-третьих нужно  либо вырубать таймер при спелле не на кд, либо вырубать ауру. В твоем случае GetSpellCooldown возвращает 0 в start (наверное, не проверял) и тогда старт плюс длительность минус время сервера - вон та вон стремная цифра, что ты написал.
function()
    local start, duration, enabled = GetSpellCooldown(aura_env.state.spellId)
    if enabled == 0 and math.floor(start + duration - GetTime()) >= 60 then
        return math.ceil((start + duration - GetTime())/60).."m"
    elseif  enabled == 0
        return math.floor(start + duration - GetTime())
    else
        return ""
    end
end
Ну если подразумевать под "нормальным" вид "2m" вместо "2.35" - то да.
Я думал можно сделать текстовую ауру, вписав в нее список спеллов и если ID совпадает в этом списке и в группе - накладывать поверх иконки эту цифру. Но видать перемудрил и оказалось проще в каждый спелл вписать этот код.

afreg

  • Завсегдатай
  • **
  • Сообщений: 437
  • Химюон - Азурегос

  • Варкрафт: +
    • Имя: Химюон
    • Класс: жрец
    • Сервер: Азурегос
Re: [Weak Auras 2]
« Ответ #1339 : 24 Сентября, 2018, 22:57:25 »
  • Рейтинг:0 (+0 | 0)
Ну если подразумевать под "нормальным" вид "2m" вместо "2.35" - то да.
Я думал можно сделать текстовую ауру, вписав в нее список спеллов и если ID совпадает в этом списке и в группе - накладывать поверх иконки эту цифру. Но видать перемудрил и оказалось проще в каждый спелл вписать этот код.
Ну на самом деле такое можно сделать, только там не названия спеллов нужны, а названия именно аур уже. И руками прописывать соответствие ауры и спелла, вытаскивать из названия ауры регион и в нем рисовать цифру. По мне так лажа ненужная.
Может и по id/name реально, но наверное так лучше делать через отдельные таймерные аддоны типа того же omnicc.

Serafim1991

  • Старожил
  • ***
  • Сообщений: 2614
Re: [Weak Auras 2]
« Ответ #1340 : 25 Сентября, 2018, 00:17:25 »
  • Рейтинг:0 (+0 | 0)
Я понял, что не стоит туда лезть и если работает - пусть себе работает.
Кстати, с "enabled == 0" не показывается кулдаун, показывается только с "enabled == 1"

Serafim1991

  • Старожил
  • ***
  • Сообщений: 2614
Re: [Weak Auras 2]
« Ответ #1341 : 25 Сентября, 2018, 19:08:59 »
  • Рейтинг:0 (+0 | 0)
Дурная голова ногам покоя не дает
Ничего не получилось через GetSpellCooldown, 3 часа читал всякие статьи, в итоге получилось то, что хотел, используя aura_env.state
Окончательный вариант
function()
    if aura_env.state and aura_env.state.expirationTime and aura_env.state.expirationTime > GetTime() then
        if (aura_env.state.expirationTime - GetTime())>=60 then
            return math.floor((60 + aura_env.state.expirationTime - GetTime())/60).."m"
        else
            return math.floor(aura_env.state.expirationTime - GetTime())
        end
    end
end

Больше 60 секунд - будет показываться "Xm", 60 или меньше - цифрами, когда не на кд - пустота будет на иконке.
Про expirationTime подсказали в дискорде. Там же сказали, что 3й параметр GetSpellCooldown в принципе можно игнорировать, поскольку он отвечает только за то, показывается ли кулдаун спела на панельке или нет(близы его иногда используют чтобы не отображать нежелательный кд). Я не совсем понял о чем речь, но вот с expirationTime оказалось все немного проще, чем с GetSpellCooldown. Правда пришлось  немного модифицировать(ибо был вариант через SecondsToTimeAbbrev, который немного криво выводит результат)

afreg

  • Завсегдатай
  • **
  • Сообщений: 437
  • Химюон - Азурегос

  • Варкрафт: +
    • Имя: Химюон
    • Класс: жрец
    • Сервер: Азурегос
Re: [Weak Auras 2]
« Ответ #1342 : 25 Сентября, 2018, 22:11:29 »
  • Рейтинг:0 (+0 | 0)
Я не совсем понял о чем речь, но вот с expirationTime оказалось все немного проще, чем с GetSpellCooldown.[/spoiler]
Тут вопрос применения. Если у тебя в триггере например просто постоянно активная иконка, то aura_env.state.expirationTime не поможет, тк туда ничего не передается (хотя тут и мой косяк, spellID из aura_env беру).
А еще я не очень понял, ты специально с округлением вверх минуты выводишь? Типо светится 2 минуты а потом рраз и уже 59 секунд. Хотя на вкус и цвет =)
ps. с enabled я не проверял, сорь, просто увидел что можно использовать

Serafim1991

  • Старожил
  • ***
  • Сообщений: 2614
Re: [Weak Auras 2]
« Ответ #1343 : 25 Сентября, 2018, 22:52:52 »
  • Рейтинг:0 (+0 | 0)
В триггере, да, иконка отображается всегда. И работает(я столько вариантов перепробовал, что думал никак не получиться это сделать и вот это ласт версия, которая и заработала в конце-концов)
А насчет math.floor - для красоты больше. Пробовал еще math.ceil  - но так себе вышло. Да и в принципе мне особо без разницы, 3.50 кд спела или 3.28. А меньше минуты уже посекундно выводится.

Хасс

  • Новичок
  • *
  • Сообщений: 4

  • Варкрафт: +
    • Имя: Хасс
    • Класс: Дк
    • Сервер: РФ
Re: [Weak Auras 2]
« Ответ #1344 : 01 Октября, 2018, 16:15:01 »
  • Рейтинг:0 (+0 | 0)
подскажите можно ли сделать иконку лидера пати/рейда только если я лидер а то в bd unitframes не отображается

Serafim1991

  • Старожил
  • ***
  • Сообщений: 2614
Re: [Weak Auras 2]
« Ответ #1345 : 10 Октября, 2018, 03:19:29 »
  • Рейтинг:0 (+0 | 0)
Очередной "нид хелп".
Есть спелл "Молот гнева". Его можно юзать если у цели 20% и менее хп или если активны крылья паладинские.
С первым условием я справился(когда у цели 20% или менее хп), а прицепить второе у меня не выходит(в одной ауре естественно). Получается только "и менее 20% и активны крылья", вариант "или то, или то" не получается.
Линк на ауру, ID бафа - 31884

Afenar

  • Модератор
  • Ветеран
  • *
  • Сообщений: 7675
  • WarsongEU_Wolfheart

  • Варкрафт: +
    • Имя: Афенар
    • Класс: Priest
    • Сервер: Король-Свитч
Re: [Weak Auras 2]
« Ответ #1346 : 10 Октября, 2018, 03:45:51 »
  • Рейтинг:3 (+3 | 0)
все проще же в разы: условие действия возможным и все.





а если нужно "или или" на будущее:

типа такого:
« Последнее редактирование: 10 Октября, 2018, 03:49:58 by Afenar »

Serafim1991

  • Старожил
  • ***
  • Сообщений: 2614
Re: [Weak Auras 2]
« Ответ #1347 : 10 Октября, 2018, 14:10:22 »
  • Рейтинг:0 (+0 | 0)
 :facepalm:
Неплохо так перемудрил. Думал даже кастомный триггер придется делать...

dachman

  • Завсегдатай
  • **
  • Сообщений: 163

  • Варкрафт: +
    • Имя: dachman
    • Класс: прист
    • Сервер: разувий
Re: [Weak Auras 2]
« Ответ #1348 : 12 Октября, 2018, 15:00:26 »
  • Рейтинг:0 (+0 | 0)
Здравствуйте,появилась проблема следующего характера:
Нужно создать Weak Auras для тотема духовной связи шамана,а именно только время действия,с посекундным отображением на полосе прогресса,без отслеживания восстановления.
Пробую по бафу создавать,работает но прогресса и времени не наблюдаю,дело в том ,что счётчик прогресса работает на иконке персонажа,на бафе счётчика нет.Обязательное условие ,чтобы видели все,кто зашол в зону действия тотема.
Всем спасибо,разработал сам
(показать/скрыть)

« Последнее редактирование: 13 Октября, 2018, 07:07:12 by dachman »
Кто понял жизнь тот больше не спешит, смакует каждый миг и наблюдает, Как спит ребёнок, молится старик, как дождь идёт и как снежинки тают.

BreakingLegs

  • Новичок
  • *
  • Сообщений: 1

  • Варкрафт: +
    • Имя: Люцик
    • Класс: Охотник на демонов
    • Сервер: Подземье
Re: [Weak Auras 2]
« Ответ #1349 : 15 Октября, 2018, 14:15:45 »
  • Рейтинг:0 (+0 | 0)
Ребят, есть желание изменить подсветку иконок с дефолтной на те, что показаны сверху ( прилагаю ссылку https://wago.io/HJkDQqQXQ ), к примеру для "Героизма". Я такой себе спец по ВАшкам, хоть там всё и расписано что и как менять, я не могу понять где это и как это правильно пишется. Если есть знающие люди подскажите, или помогите её сделать, на примере этой ВА я думаю разберусь как это делать, заранее большое спасибо.

 

закрыть