Заставить ИИ кастовать заклинания из спеллбука
Как ?
Если нечего не делать то дефолтный ИИ вполне не плохо использует любые способности из спеллбука, но не так часто как хотелось
Дополнительные вызовы способностей для через IssueOrder ничего не дают
Добавлять теже самые абилы триггерно, выдрав их из спеллбука не хочется тоже
Неужели ForceUiKejBJ + order???
Есть ли альтернативные методы?

Лучший ответ:
Сегодня выложу систему, показывающую как я кастую из спеллбука, осторожно, много мемхака!
if UnitAbilityIsRealReady(u,'A013') then // проверяет готовность способности (сало, станы, ману, кд)
call UnitEmulateAbilityActivate(u,'A013') // отнимает ману столько стоит, запускает кд
call BlinkToPoint(u,x,y) // выполняет нужный кусок кода, тот же самый кусок, что и функция если применять вручную
endif



Просмотров: 211

ClotPh #1 - 2 недели назад 0
а чем форс кея плох, если он действует для ИИ?
мне в итоге очень помог открыть спеллбук для прелоада
Bergi_Bear #2 - 2 недели назад 0
ClotPh, я не пробовал, а надо ли задержку какую-то? или можно просто подряд force+issue?
ClotPh #3 - 2 недели назад 0
Bergi_Bear, у меня задержка около 0.3-0.4 секунды, что ли
точно влом перепроверять сейчас
но у меня там немного другое у меня прелоад спеллбуков с их нажатием чтобы лага не было
и если без задержки просто спеллбук добавлять прожимать удалять то они точно не успевают прожаться
а так - успевают
quq_CCCP #4 - 2 недели назад 0
Activate Ability на мемхаке, позволяет открыть спеллбук.
Steal nerves #5 - 2 недели назад (отредактировано ) 0
quq_CCCP, а какой это код. это позволяет открыть или активировать абилу из спелбука? что-то на открытие не работает ToggleActiveAbilityOnUnit (это работает только с двойными кнопками и автокастами). интересно ThrowTargetSpellTargetUnit можно каставать прямо из спелбука?
Bergi_Bear #6 - 2 недели назад 0
Если будет работать: открыть/кастовать/закрыть - тогда будет норм, это то что надо, останется вынести в отдельную функцию и готово, главное чтобы мгновенно без лишних пауз
Bergi_Bear #7 - 2 недели назад (отредактировано ) 0
Дошли руки проверить
call ForceUIKeyBJ(GetOwningPlayer(u),"F")
//call TriggerSleepAction(0.1)
call IssueTargetOrder(u,"holybolt",u)
//call TriggerSleepAction(0.1)
call ForceUICancelBJ(GetOwningPlayer(u))
не работает, просто открывает спеллбук а попытки каста нет =( даже если поставить задержку, он просто ходить с открым сбуком
Steal nerves, ThrowTargetSpellTargetUnit проверил, эффект весьма интересный, скил срабатывает игноря кд и возможно ману и прочее, но не регистрируется событие, что скил скастован, идёт только базованый эффект =(
ThrowTargetSpellTargetUnit даже мертый кастует!
Проверил ещё дальше получилось со способностями без цели через
call ForceUIKeyBJ(GetOwningPlayer(u),"F")
call ForceUIKeyBJ(GetOwningPlayer(u),"Q")
call ForceUICancelBJ(GetOwningPlayer(u))
Где F - хоткей спеллбука
Где Q - хоткей нужной способности
(работает на нулевых касттаймах, у меня меня так)
А как же быть с другими способностями на точку и на цель?
DracoL1ch #8 - 2 недели назад 0
ThrowTargetSpellTargetUnit создан как раз для бросков дефолтных заклинаний вместо даммиков, обеспечивает сугубо базовый эффект. если тебе нужен триггерный эффект, так вызывай ту функцию сразу после, не? С параметрами вместо GetTrigger*
Bergi_Bear #9 - 2 недели назад 0
DracoL1ch, да я вот и думаю, наверное я буду запускать скилл в кд (это вроде должно работь внутри спеллбука), все скилы переделать на лишний перевызов, ну вызывать дополнительно функцию HolyBolt (Gettriggerunit(),Getspalltargerunit()) и аналогичный, я думаю это оч. быстро получится сделать, тем более способностей проблемных не так уж и много, да и на будущее пригодтся, например всякие вызовы, при невозможных условиях (в кд, в стане, в дефиците маны)
quq_CCCP #10 - 2 недели назад 0
Bergi_Bear, а ии зачем нужен спеллбук? Когда ему пофиг на панель приказов, можно тыкать абилки прям так без спеллбука.
Bergi_Bear #11 - 2 недели назад 0
quq_CCCP, так не работает же говорю, ии играет за точно такого же персонажа как и человек, и напрямую приказы не работают на заклинанию в спеллбуке, даже есть тот открыт, (проверял на гибридном управлении человек+компьютер), разумеется всё работет если способности дать вне спеллбука, приказы успешно выполняются
quq_CCCP #12 - 2 недели назад 0
Bergi_Bear, ну так когда играет ИИ просто вручаешь кодом ему весь набор из спеллбука а спеллбук удаляешь.
Bergi_Bear #13 - 2 недели назад 0
quq_CCCP, Я не могу так сделать потому что много условий этому противится, такие как удаление всех способностей и возможность гибридного управления.
"Добавлять теже самые абилы триггерно, выдрав их из спеллбука не хочется тоже", а так я об этом написал ещё в шапке темы, я рассматривал эту идею самой первой, как только понял, что оно не работает так как мне хотелось бы
zogorlol #14 - 2 недели назад 0
Приказам скастовать спелл побоку находятся абилка в спеллбуке или нет. Просто работай так, как будто никаких спеллбуков нет.
Bergi_Bear #15 - 2 недели назад 0
zogorlol, это не работает, попробуйте сначала, а потом приложите результаты
zogorlol #16 - 2 недели назад 0
Bergi_Bear, Ок, подвела меня память. Ну тогда добавь юнитам каналов с приказами нужных абилок и отключенным отображением.
Bergi_Bear #17 - 2 недели назад 0

Сегодня выложу систему, показывающую как я кастую из спеллбука, осторожно, много мемхака!
if UnitAbilityIsRealReady(u,'A013') then // проверяет готовность способности (сало, станы, ману, кд)
call UnitEmulateAbilityActivate(u,'A013') // отнимает ману столько стоит, запускает кд
call BlinkToPoint(u,x,y) // выполняет нужный кусок кода, тот же самый кусок, что и функция если применять вручную
endif