Хочется реализовать механику отключения пассивок на время в виде дебафа, на карте жанра Hero Arena.
Посоветуйте как лучше реализовать это механику, при учете того что пассивных навыков довольно таки много. Стоит ли каким-то образом блокировать и отключать предметные способности по типу : критов, баша, вампиризма, сплеша, уклонения или ограничиться только отключением всех триггерных эффектов. Какие есть варианты реализации?
Пример : Silver Edge из доты.
Атака, прерывающая невидимость, дополнительно нанесёт 175 физического урона и отключит пассивные способности жертвы. Длительность эффекта: 4 сек.
Патч War3 1.26 Jass
Переход на Lua не интересует.

Всё просто создаём бафф на основе торнадо, который будет идентификатором что есть наш бафф отключения пасивок, допустим бафф будет B000
Далее создам полностью триггерные аналоги критов, баша, уворота, сплеша. И в условиях их работы ставим GetUnitAbilityLevel(unit,"B000")==0. В качестве идентификатора деффа не обязательно использовать дебафф торнадо, можно просто любую переменную + эфффект над головой.
Можно сделать на любом патче даже на гуи.
Требуется система отлова урона для контроля триггерных пассивок, для начала рекомендую почитать стати
`
ОЖИДАНИЕ РЕКЛАМЫ...

Показан только небольшой набор комментариев вокруг указанного. Перейти к актуальным.
33
Всё просто создаём бафф на основе торнадо, который будет идентификатором что есть наш бафф отключения пасивок, допустим бафф будет B000
Далее создам полностью триггерные аналоги критов, баша, уворота, сплеша. И в условиях их работы ставим GetUnitAbilityLevel(unit,"B000")==0. В качестве идентификатора деффа не обязательно использовать дебафф торнадо, можно просто любую переменную + эфффект над головой.
Можно сделать на любом патче даже на гуи.
Требуется система отлова урона для контроля триггерных пассивок, для начала рекомендую почитать стати
Принятый ответ
10
Bergi_Bear, а если человек захочет 2 таких похожих способности? а если 3? А если пассивок около 40? во всех предлагаешь это условие тыкать?
Все намного проще:
  1. в базу записываешь все пассивки которые есть в игре (по сути во всех норм картах и так такие массивы есть, так что работы прибавиться не должно)
  2. при использовании способности - делаешь проверку по этой базе у цели, запоминаешь в хэш или временный массив их уровень/код и удаляешь у конечной цели
  3. запускаешь таймер на 4 секунды (на крайний случай TriggerSleepAction )
  4. через 4 секунды с помощью тоже же хэша (массива) возвращаешь
Изи, и не надо мудрить с доп условиями во все скиллы
12
Bergi_Bear, Не все стандарт пассивки можно повторить в точности. Я не исключаю что в этом есть больше возможностей.
Bergi_Bear:
Далее создам полностью триггерные аналоги критов, баша, уворота, сплеша.
триггерный вариант уклонения не будет таким же , дело в том , это это подхил - блок урона ( что уже немного другое) будет , а на уклонение в момент прока на цель не будут накладываться модификаторы атаки ,триггерный сплеш тоже не очень тема , при каждой тычке от юнита пикать группы и перебирать юнитов. Плюс возможности абузов.
У меня есть такой отдельный крит на отлове урона, но разница в том что если стандартный не учитывает броню атакованного юнита , то нестандартный при снижении брони жертвы может выдавать совсем заоблачные значения критов.
Так что из всего этого вариант только крит и баш лучше делать нестандартным.
28
при использовании способности - делаешь проверку по этой базе у цели, запоминаешь в хэш или временный массив их уровень/код и удаляешь у конечной цели
Не уверен, что это будет нормально работать со способностями героев.
10
PT153:
при использовании способности - делаешь проверку по этой базе у цели, запоминаешь в хэш или временный массив их уровень/код и удаляешь у конечной цели
Не уверен, что это будет нормально работать со способностями героев.
На героях не сработает конечно, забранные умения опять уйдут в неизученные, тогда варианта 3
  1. Если герой только 1 и его умения уникальны, то можно тупо запрещать игроку умения, на пассивки вроде тоже работает.
  2. Сделать систему изучения способностей героев - нестандартную. Убьешь 2-х зайцев сразу, можно будет и отменять их легко и больше 4-х скилов впихнуть в изучение.
  3. Если используешь мемхак, то там вообще легко запрещаются умения любые по той же схеме
33
это это подхил - блок урона
нет, на мемхаке можно имитировать мисы
а на рефордже вообще можно манипулировать уроном на прямую, превратив его в 0
Konstantin19:
Все намного проще:
в базу записываешь все пассивки которые есть в игре (по сути во всех норм картах и так такие массивы есть, так что работы прибавиться не должно)
при использовании способности - делаешь проверку по этой базе у цели, запоминаешь в хэш или временный массив их уровень/код и удаляешь у конечной цели
запускаешь таймер на 4 секунды (на крайний случай TriggerSleepAction )
через 4 секунды с помощью тоже же хэша (массива) возвращаешь
и где же тут вообще отключение способностей то? давай отключи абилку дефолт критов без рефа и мемхака, где у тебя нет функции DisableAbility. Тебе придётся её удалять и давать пустышку с той же иконкой, а что делать с предметными своствами?
по сути во всех норм картах и так такие массивы есть
Если в карте используется некий массив такой, то увы эта карта уже не нормальная и скорее всего или из прямиком 2005 или с механиками из 2005

А если пассивок около 40? во всех предлагаешь это условие тыкать?
если они однотипные то лишь 1 раз, по 1 разу на 5 типов абил. Тобишь уворот на 10% и уворот на 30% это одна как бы одна и таже абилка.
Ребята, оставаясь на старых механиках варкратфа не стоит замахиваться на карты типа арен, с таким рвением стоит делать товердефенсы и милишки
32
Простых путей нет, нужно пилить все пассивки с оглядкой на отключение, те же ауры по механике варкравта не отключаются, даже продвинутый сайленс в мемхаке не отключает их, и нужно делать 2 версии, для подмены. Потом в доте десятки пассивок которые не связаны со способностью, та же пассивка снайпера которая лишь пустышка, а ап ренжа апгрейд на дальность атаки.
Показан только небольшой набор комментариев вокруг указанного. Перейти к актуальным.
Чтобы оставить комментарий, пожалуйста, войдите на сайт.