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

Глобальный Cooldown

Добавлено: 18 сен 2019, 08:42
uaz266
Не могу решить проблему.
Например есть спелл ЭНХ шамана " Героизм" когда выбираешь пвп "Шаманство" то можно "Героизм" использовать каждую минуту.
Хотел прикрутить его в свою ПВП сборку,но вылезла проблема,бот спамит спелл "Героизм" когда он на перезарядке и стопорит ротацию
Пробовал выбрать "Готов к применению" не помогает. Тогда решил вписать пользовательский код GetSpellCooldown("Героизм")==0,помогает бот прожимает "Героизм" и ждёт когда закончится перезарядка,но заканчивается перезарядка,а бот не жмёт больше "Героизм",вычислил виной всему 1,5 сек Глобальный Cooldown,бот его считает как перезарядка спелла.
Кто знает как решить эту проблему?
Примерно догадываюсь как:
local start, duration, enabled = GetSpellCooldown("Героизм");
if ( start > 0 and duration > 1.5) then
Блин дальше мои познания заканчиваются.
Помогите люди добрые!!!

Re: Глобальный Cooldown

Добавлено: 18 сен 2019, 20:38
Reqqque
uaz266 писал(а):
18 сен 2019, 08:42
Не могу решить проблему.
Например есть спелл ЭНХ шамана " Героизм" когда выбираешь пвп "Шаманство" то можно "Героизм" использовать каждую минуту.
Хотел прикрутить его в свою ПВП сборку,но вылезла проблема,бот спамит спелл "Героизм" когда он на перезарядке и стопорит ротацию
Пробовал выбрать "Готов к применению" не помогает. Тогда решил вписать пользовательский код GetSpellCooldown("Героизм")==0,помогает бот прожимает "Героизм" и ждёт когда закончится перезарядка,но заканчивается перезарядка,а бот не жмёт больше "Героизм",вычислил виной всему 1,5 сек Глобальный Cooldown,бот его считает как перезарядка спелла.
Кто знает как решить эту проблему?
Примерно догадываюсь как:
local start, duration, enabled = GetSpellCooldown("Героизм");
if ( start > 0 and duration > 1.5) then
Блин дальше мои познания заканчиваются.
Помогите люди добрые!!!
Функция будет считать кд пока не дойдет до гкд

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

function cdwgcd(spellid)
local start, duration, enabled = GetSpellCooldown(spellid)
local _, gcdMS = GetSpellBaseCooldown(spellid)
local cd = start + duration - GetTime()
if ( start > 0 and duration > gcdMS/1000) then return cd end
return 0
end

Re: Глобальный Cooldown

Добавлено: 19 сен 2019, 02:21
uaz266
Спасибо большое!!! Сейчас попробую

Re: Глобальный Cooldown

Добавлено: 19 сен 2019, 03:04
end
А нет ли возможности отслеживать гкд ?
Например в условиях делать выдержку времени опираясь на гкд.
Как пример. - использовать скил если другой скил имеет время восстановления более или равно 1.4. (1.36 базовый гкд у моего перса) но под проками тринек-азерит трейтов и/или геры, гкд может достигать 0.82. Получается полсекундный простой.
В других случаях нужно опирается на гкд+0.3 ( скил не сразу достигает цели.

П.С. пишу с работы, нет возможности посмотреть функцию выше. Можно ли привести пример её работы?

Re: Глобальный Cooldown

Добавлено: 19 сен 2019, 05:56
uaz266
Reqqque писал(а):
18 сен 2019, 20:38
uaz266 писал(а):
18 сен 2019, 08:42
Не могу решить проблему.
Например есть спелл ЭНХ шамана " Героизм" когда выбираешь пвп "Шаманство" то можно "Героизм" использовать каждую минуту.
Хотел прикрутить его в свою ПВП сборку,но вылезла проблема,бот спамит спелл "Героизм" когда он на перезарядке и стопорит ротацию
Пробовал выбрать "Готов к применению" не помогает. Тогда решил вписать пользовательский код GetSpellCooldown("Героизм")==0,помогает бот прожимает "Героизм" и ждёт когда закончится перезарядка,но заканчивается перезарядка,а бот не жмёт больше "Героизм",вычислил виной всему 1,5 сек Глобальный Cooldown,бот его считает как перезарядка спелла.
Кто знает как решить эту проблему?
Примерно догадываюсь как:
local start, duration, enabled = GetSpellCooldown("Героизм");
if ( start > 0 and duration > 1.5) then
Блин дальше мои познания заканчиваются.
Помогите люди добрые!!!
Функция будет считать кд пока не дойдет до гкд

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

function cdwgcd(spellid)
local start, duration, enabled = GetSpellCooldown(spellid)
local _, gcdMS = GetSpellBaseCooldown(spellid)
local cd = start + duration - GetTime()
if ( start > 0 and duration > gcdMS/1000) then return cd end
return 0
end
Сделал вот так
рерааа.jpg
рерааа.jpg (41.34 КБ) 15908 просмотров
гера.png
гера.png (6.53 КБ) 15908 просмотров
Всё равно спамит "Героизм" когда сам спелл на кд
Решил проблему пока вот так
нерыч.jpg
нерыч.jpg (49.88 КБ) 15908 просмотров

Если ставить 0,то не работает именно влияет 1,5сек Глобальный Cooldown. Ставишь <1 то работает боле мение,но всё равно костыль какой-то

Re: Глобальный Cooldown

Добавлено: 19 сен 2019, 15:42
Reqqque
uaz266 писал(а):
19 сен 2019, 05:56
Сделал вот так
Так работать не будет нужно убрать галочку и прописать == 0
Тогда бот будет жать когда до отката геры осталось гкд

Re: Глобальный Cooldown

Добавлено: 19 сен 2019, 16:50
uaz266
Reqqque писал(а):
19 сен 2019, 15:42
uaz266 писал(а):
19 сен 2019, 05:56
Сделал вот так
Так работать не будет нужно убрать галочку и прописать == 0
Тогда бот будет жать когда до отката геры осталось гкд
Спасибо попробую

Re: Глобальный Cooldown

Добавлено: 19 сен 2019, 17:04
uaz266
Если в пве "Героизм" то работает идеально,но стоит включить ПВП режим
вот так такая хрень
3.jpg
3.jpg (47.78 КБ) 15891 просмотр
2.jpg
2.jpg (4.88 КБ) 15891 просмотр
1.jpg
1.jpg (10.38 КБ) 15891 просмотр
Бот спамит один скилл

Re: Глобальный Cooldown

Добавлено: 19 сен 2019, 18:17
Reqqque
Значит надо писать в бота этот героизм

Re: Глобальный Cooldown

Добавлено: 19 сен 2019, 18:50
lilaa
end писал(а):
19 сен 2019, 03:04
А нет ли возможности отслеживать гкд ?
Например в условиях делать выдержку времени опираясь на гкд.
Как пример. - использовать скил если другой скил имеет время восстановления более или равно 1.4. (1.36 базовый гкд у моего перса) но под проками тринек-азерит трейтов и/или геры, гкд может достигать 0.82. Получается полсекундный простой.
В других случаях нужно опирается на гкд+0.3 ( скил не сразу достигает цели.

П.С. пишу с работы, нет возможности посмотреть функцию выше. Можно ли привести пример её работы?
Тоже очень интересует как отслеживать гкд именно по этому поводу.