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

Прожатие своей способности

Добавлено: 10 май 2023, 04:02
Diase123
Как сделать, чтобы бот прерывался и жал способность, как в том же MaxDPS?
Например, идёт ротация, я жму кнопку, она ставится выше всех в приоритете и жмётся сразу же следующей, дальше ротация продолжается.
Заранее спасибо огромное за помощь

Re: Прожатие своей способности

Добавлено: 10 май 2023, 10:24
noname123
Именно как в MaxDPS у нас не реализовано к сожалению, приходится через макросы выкручиваться.

Вот пример с клеткой у дх
делается в игре такой макрос и выносится на панель твоих спелов.
Клетка1.png
Клетка1.png (26.81 КБ) 664 просмотра
1500 - это время в миллисекундах (1.5с) сколько твой макрос будет действовать.
KKK - название макроса, можно любое какое тебе удобно.

После того как сделал макрос нужно в боте создать блок (разместить его в самом верху сборки для наивысшего приоритета) который будет срабатывать от этого макроса.
Клетка2.png
Клетка2.png (9.87 КБ) 664 просмотра
Сохраняешь сборку и всё готово. Теперь при нажатии в игре на этот макрос в течении 1.5 секунды (по моему примеру) он прожмёт клетку с наивысшим приоритетом в твоей ротации.

------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------
Вариант БЕЗ МАКРОСОВ в игре.

Если вы экономите место в макросах или просто не хотите чтобы подобные макросы в игре у вас находились, то есть альтернативный способ.
Приведу пример с печатями дх танка

Вставляем пользовательский код в боте внизу

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

local A = CreateFrame("Frame")
A:RegisterEvent("UNIT_SPELLCAST_FAILED")
A:SetScript("OnEvent", 
  function(self, event, ...)
    if event == "UNIT_SPELLCAST_FAILED" then
      local unit, spellID, spellName, spellRank;
            if checkVersionOld(1,3) then
                unit, spellName, spellRank = ...;
                spellID = MyGetSpellID(spellName, spellRank)
            elseif checkVersionOld(4,7) then
                unit, _, _, _, spellID = ...;
            else
                unit, _, spellID = ...;
            end
      if spellID == 202138 and unit == "player" then
      Timers['CMD_AAA'] = 1.5
      elseif spellID == 202137 and unit == "player" then
      Timers['CMD_BBB'] = 1.5
      elseif spellID == 207684 and unit == "player" then
      Timers['CMD_CCC'] = 1.5
    end
  end
end
)
Собственно тут примерно всё тоже самое (см. пользовательский код внизу). spellID - ID вашего спела. AAA, BBB, CCC - это названия макросов. 1.5 - это время в секундах действия этого макроса. Измените под себя в случае надобности.

Потом в боте создаёте блоки (в самом верху вашей ротации для наивысшего приоритета) и можно пользоваться.
Печатидх.png
Печатидх.png (91.66 КБ) 664 просмотра
Теперь когда вы будете нажимать указанный спелл и попадать этим спелом в гкд, то он будет вставать в очередь ваших заклинаний и приоритетно прожиматься без лишней борьбы с ботом за нажатие.

Re: Прожатие своей способности

Добавлено: 03 апр 2024, 16:10
Адын
noname123 писал(а):
10 май 2023, 10:24
Именно как в MaxDPS у нас не реализовано к сожалению, приходится через макросы выкручиваться.

Вот пример с клеткой у дх
делается в игре такой макрос и выносится на панель твоих спелов.
Изображение
1500 - это время в миллисекундах (1.5с) сколько твой макрос будет действовать.
KKK - название макроса, можно любое какое тебе удобно.

После того как сделал макрос нужно в боте создать блок (разместить его в самом верху сборки для наивысшего приоритета) который будет срабатывать от этого макроса.
Изображение
Сохраняешь сборку и всё готово. Теперь при нажатии в игре на этот макрос в течении 1.5 секунды (по моему примеру) он прожмёт клетку с наивысшим приоритетом в твоей ротации.

------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------
Вариант БЕЗ МАКРОСОВ в игре.

Если вы экономите место в макросах или просто не хотите чтобы подобные макросы в игре у вас находились, то есть альтернативный способ.
Приведу пример с печатями дх танка

Вставляем пользовательский код в боте внизу

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

local A = CreateFrame("Frame")
A:RegisterEvent("UNIT_SPELLCAST_FAILED")
A:SetScript("OnEvent", 
  function(self, event, ...)
    if event == "UNIT_SPELLCAST_FAILED" then
      local unit, spellID, spellName, spellRank;
            if checkVersionOld(1,3) then
                unit, spellName, spellRank = ...;
                spellID = MyGetSpellID(spellName, spellRank)
            elseif checkVersionOld(4,7) then
                unit, _, _, _, spellID = ...;
            else
                unit, _, spellID = ...;
            end
      if spellID == 202138 and unit == "player" then
      Timers['CMD_AAA'] = 1.5
      elseif spellID == 202137 and unit == "player" then
      Timers['CMD_BBB'] = 1.5
      elseif spellID == 207684 and unit == "player" then
      Timers['CMD_CCC'] = 1.5
    end
  end
end
)
Собственно тут примерно всё тоже самое. spellID - ID вашего спела. AAA, BBB, CCC - это названия макросов. 1.5 - это время в секундах действия этого макроса. Измените под себя в случае надобности.

Потом в боте создаёте блоки (в самом верху вашей ротации для наивысшего приоритета) и можно пользоваться.
Изображение
Теперь когда вы будете нажимать указанный спелл и попадать этим спелом в гкд, то он будет вставать в очередь ваших заклинаний и приоритетно прожиматься без лишней борьбы с ботом за нажатие.
можно повторить пример макроса, у меня не отображаются изображения) спс

Re: Прожатие своей способности

Добавлено: 03 апр 2024, 22:27
noname123
Перезалил примеры. Дискорд в последнее время постоянно новые ссылки генерирует для одних и тех же картинок вот их и не видно становится =/