Какими способами может быть отменено прицеливание способностью?
Хотелось бы узнать максимум вариантов как может быть отменено прицеливание.

Лучший ответ:
  1. пауза стоп анпауза (можно без стоп попробовать)
  2. скрыть/показать юнита
  3. ForceUIKeyBJ (esc)
  4. Сайленс
  5. Удалить/добавить способность, правда в дефолтном понимании игра ещё не знает что способность прожали и нацеливают
  6. Может забыл, что, но любой способ сбивающий приказ нацеливания в игре, движение, смерть юнита, недостаток маны (например её сожгли)


Views: 745

8gabriel8 #1 - 1 year ago 0
Голосов: +0 / -0
Зачем максимум когда достаточно Отменить?
Можно ещё попробовать снять и снова наложить выделение на юнита, если само по себе не сработает, то добавить крошечную задержку.
Либо скрыть/показать или запаузить/распаузить.
Bergi_Bear #2 - 1 year ago 1
Голосов: +1 / -0

  1. пауза стоп анпауза (можно без стоп попробовать)
  2. скрыть/показать юнита
  3. ForceUIKeyBJ (esc)
  4. Сайленс
  5. Удалить/добавить способность, правда в дефолтном понимании игра ещё не знает что способность прожали и нацеливают
  6. Может забыл, что, но любой способ сбивающий приказ нацеливания в игре, движение, смерть юнита, недостаток маны (например её сожгли)
МрачныйВорон #3 - 1 year ago (изм. ) 0
Голосов: +0 / -0
приказ отмена ESC, если это возможна?
» как вариант тестовым путем все опробовать
просто создайте тестовую карту, создайте юнита unit. возьмите 3-5 разных абил с прицелами, дайте это юниту unit.
создаем триггер, который будет периодично срабатывать нв юните unit или на игроке, и пробуем в действиях то что выше написали разные фишки (неизвестно точно будет ли это все работать, поэтому надо проверить). И пробуем. Например, в триггере каждые 5 сек на юните unit вешают
пауза стоп анпауза
в игре берем выделяем юнита unit, пробуя просто прицел включить и не выбирая ничего. И подождать пока сработает триггер. Если прицел снимают, значит, метод рабочий. Иначе смотрите и ищете след метод
world_editor #4 - 1 year ago 0
Голосов: +0 / -0
Удалить/убить и создать новую копию.
Nelloy #5 - 1 year ago 0
Голосов: +0 / -0
Версия 1.31
8gabriel8, отлавливаю начало прицеливания через дамми абилку, хочу отловить завершение прицеливания
NazarPunk #6 - 1 year ago 0
Голосов: +0 / -0
отлавливаю начало прицеливания через дамми абилку
Каким это образом интересно?
8gabriel8 #7 - 1 year ago 0
Голосов: +0 / -0
Nelloy, может на 1.31 есть такая возможность, а на 1.26 пытались и не смогли. Дело в том, что прицеливание не является приказом юнита, а является функцией интерфейса, с которым функционал редактора ранее был очень мал. Расскажи подробнее о том, ради чего это задумал, может найдётся альтернативный вариант реализации

NazarPunk, скорее всего применяется абилка без цели, которая запускает способность, направленную на цель.
Nelloy #8 - 1 year ago (изм. ) 2
Голосов: +2 / -0
Появилась идея по отслеживанию прицеливания наличием кнопки "Cancel"
NazarPunk, дамми и реальная имеют один хоткей, у юнита есть дамми способность (мгновенная без цели), при ее применении меняем на настоящую и нажимаем хоткей для владельца юнита. Зрительно разницы не видно. Кто-то на xgm описывал такой метод.
8gabriel8, на данный момент делаю способность, которая собирает саммонов в некотором построении, например в ширенгу. Хочу чтобы при наведении отображались будующее положение юнитов. В дальнейшем - реализация способностей с указанием 2-х точек, например, трещина из точки А в точку В. Или телекинез: выбираешь противника, затем куда его толкнуть. Или отображение области поражения в виде конуса, вариантов более чем достаточно.
Jack-of-shadow #9 - 1 year ago 0
Голосов: +0 / -0
Nelloy:
Появилась идея по отслеживанию прицеливания наличием кнопки "Cancel"

В HoV сбиваю прицеливание так же через "Cancel"
  • С начало игрок нажимает дамми non_target способность.
  • После нажатия способность заменяется на другую target способность и включается таймер, который по истечении времени имитарует нажатие "Cancel" игроком и меняет способность обратно на non_target.
Что бы было меньше проблем лучше не использовать UnitAddAbility/UnitRemoveAbility, а дать герою сразу обе способности одна из которых будет прятаться через SetPlayerAbilityAvailable. Это убережет от неприятных сюрпризов и сохранит перезарядку.
Nelloy #10 - 1 year ago 0
Голосов: +0 / -0
Jack-of-shadow, а как подбераешь время для таймера? Кто-то быстрее кликнет, кому-то и 15 сек мало
Jack-of-shadow #11 - 1 year ago (изм. ) 0
Голосов: +0 / -0
Nelloy:
У меня в этом смысле чуть проще, так как там выстрел из лука. Проигрывается анимация натяжения и идет звуковой отсчет (кажется 4 секунды).
8gabriel8 #12 - 1 year ago 0
Голосов: +0 / -0
Nelloy, не знаю, можно ли на 1.31 отслеживать, какой юнит из выбранных отображается на панели, так как выбор другого тоже сбивает приказ. А так при срабатывании дамми-способности другие варианты отмены прицеливания перечислили.
Только непонятно, как ты хочешь отслеживать кнопку Отмены.
Bergi_Bear #13 - 1 year ago 0
Голосов: +0 / -0
Можно исходя из разрешения экрана или через отлов нажатой кнопки (мемхак или последний патч), узнать был ли клик/прожатие интерфейса, следовательно было вызвано "меню" наведения способности, но то есть событие интерфейса, следовательно способность наводится, а там можно и курсор поотлавливать, чтобы узнать куда именно наводится, но это уже совсем другая история... есть наработки по этой теме но как же лень...
8gabriel8 #14 - 1 year ago 0
Голосов: +0 / -0
У него нет проблем с началом наведения, но нужно отлавливать прекращение наведения.
quq_CCCP #15 - 1 year ago 0
Голосов: +0 / -0
Только вот это локальные события, и их нужно синхронизировать.
Nelloy #16 - 1 year ago 0
Голосов: +0 / -0
quq_CCCP, или заранее подготовить пул эффектов и делать все локально
Nelloy #17 - 1 year ago (изм. ) 0
Голосов: +0 / -0
Bergi_Bear, 8gabriel8, Сделал через отслеживание нажатия Esc, ПКМ и еще нескольких событий, в том числе храню выбранных юнитов. Отследить наличие кнопки Cancel не смог.
Bergi_Bear #18 - 1 year ago 0
Голосов: +0 / -0
Nelloy, так у меня тут ещё мысли появились, но нужно полностью локально работать с интерфейсом, я так понял, ты хочешь получить некое глобально событие "Прицеливание способности отменено", я знаю как тебя помочь но мне надо больше инфы от тебя:
  1. Какая версия патча?
  2. Сколько будет таких способностей?
  3. Муи в сетевой или сингл/кампания?
Прочитал комментом выше что ты хочешь...
Nelloy:
Хочу чтобы при наведении отображались будующее положение юнитов
Так это меняет дело, мемхак или 131 в помощь, ибо в данный момент самое сложно узнать:
  1. Что была прожата способность проверки построения, про это я уже выше писал, локально узнаём что нажата кнопка Q или сделан клик по интерфейсу где расположена кнопка Q (событие получено)
  2. Далее надо следить за курсором и вокруг него собирают юнитов, чтобы при наведении на толпу из 10 суммонов, мы увидели их подующее расположение, а это уже можно подсветить эффектами, чтобы эффекты видел игрок, надо будет засинхронить положение курсора для всех игроков, и создать эффект видимости только у того кто навел, и тогда вроде как профит, мы видим примерное построение существо
  3. Если способность прожата то там уже проще... точка прожатия автоматически засинхронится событием, перестраиваем юнитов
  4. Если способность отменна, то тут да, надо удалить эффект временного расположения, а теперь и понятно зачем ты спрашивал этот вопрос, ибо способов отмены наведения просто масса.. и тут я честно говоря в тупике....
Просто кнопка отмены она интерфейсная и локальная и может быть вызвана даже без способностей, например попыткой отдать приказ движения или патруля, я вспомнил, когда то ставил перед собой такую задачу, но тогда я забил болт, и сделал автоотмену через 1 секунды после наведения, можно и больше сделать в твоём случае хватит 3х, чтобы игрок увидел построение и через 3 сек развидел, даже если ещё держит наведение.. пока, я только такое решение вижу, надо думать
Nelloy #19 - 1 year ago 1
Голосов: +1 / -0
Bergi_Bear, патч 1.31 мультиплеер с муи.
1 - это определяю легко. У юнита стоит способность-пустышка с мгновенным применением и тем же хоткеем, что у оригинала. При использовании пустышки выдается событие "Targeting start", пустышка меняется на оригинал и прожимается соответсвующий хоткей для владельца юнита локально. Событие выдано, игрок целится - цель достигнута.
2 - да, примерно так и делаю. Для эффектов нет необходимости синхронизировать положение, поэтому заранее создаю пул эффектов для всех игроков и манипулирую нужными локально.
3 - при использовании оригинальной способности все действительно тривиально.
4 - упустим возможноть игровой отметы прицеливания, такие как сайленс, с ними проблем возникнуть не должно. Пока выяснил, что целящийся игрок может отменить прицеливание клавишей Esc и ПКМ (f10 и другие системные пока не проверял). Патч 1.31 позволяет это отслеживать, так что дело за тестами, чтобы выловить все возможности отмены.
Дело в общем-то в том, что я не делаю какую-то конкретную способность, а пилю свою систему каста, которой должно хватить на любые мои хотелки. Пока думаю должно хватить следующих событий:
  • UnitStartTargetingSpell
  • UnitTargetingSpell (вызывается по таймеру с периодом 0.03125)
  • UnitFinishedTargetingSpell
  • UnitStartCastingSpell
  • UnitCastingSpell (вызывается по таймеру с периодом 0.03125)
  • UnitCancelCastingSpell (отмена применения игроком)
  • UnitInterruptedCastingSpell (прерывание противником, например, сайленс, стан)
  • UnitFinishCastingSpell
NazarPunk #20 - 1 year ago 1
Голосов: +1 / -0
Может не сработать в случае, если игрок отправляет героя по шифту, в конце прожимает способность и меняет выбор.