Как отследить урон от руки/заклинаний? Какую систему использовать, кроме как делать все заклинания триггерно, этот вариант не подходит, так как у меня уже есть пул готовых героев, делать это - значит делать все заново.

Frosty102:
Насколько я помню, яд работает только на ближниках
Нет, не только на ближниках. Абилка Отравленное оружие (орда) нормально работает юнитах с ближним типом атаки и с дальним. Есть только разница некоторая с типом снаряда - рикошет и прочее, вроде артиллерии. С ними яд не особо дружит. Но в доте оно и не нужно, более чем хватает "обычный" для ближнего боя и "дальний бой" для ренджевиков.
Frosty102:
как в таком случае избежать проблем с тем же вампиризмом? Делать его триггерно, скорее всего, но это решение больше поможет, чем переделывать все.
Да, именно так - все вампиризмы и прочие абилки (пассивки на атаку) надо будет сделать полностью триггерными.
Frosty102:
как в такой ситуации будет себя чувствовать жар преисподней?
Да никак вообще. Его эти яды не касаются его и ничего на них не срабатывает кроме атаки, вот и всё. Это работает совсем не так как пассивки Сларка/Найкса в доте, когда Радианс своим периодическим уроном проскакивал вперед после замаха, но до фактического удара.
Borodach:
Лучше при входе на карту добавлять событие на получение урона с проверкой на наличие в групе
Borodach, ну мой вариант отличается от этого тем что будет происходить ровно то же самое, но только не сразу при появлении, а тогда когда нужно, т.е. при замахе, при касте абилки (в более редких случаях). Получается так что крипы на лайнах, которые не имеют никаких пассивок на атаку никаким образом и не создают своими ударами новые ивенты, это могут делать только герои с абилками и/или соответствующими предметами, которые работают через эту механику.
Frosty102:
но почему-то для существа А дальнего боя удар не задействует яд (так как я этот бафф сразу удаляю)
Ты быстро схватываешь)) именно так это и должно работать. Герой замахивается - чекается что у него есть яд или иная абилка/предмет. Если атакованная цель не в группе - тогда добавляем (маркируем) и создаём ивент. Когда прилетает любой урон проверяем что есть бафф яда = этот урон был с руки и нанёс яд, поэтому тут же снимает бафф яда. Далее делаем всё что необходимо, даже можно снова урон наносить (на него триггер так же сработает, но уже без яда он не будет активироваться). Ну и впринципе всё, готово. А если перед нанесением урона любым образом юниту принудительно дать бафф яда, то система подумает что это была авто-атака с руки, т.е. то о чём я изначально и говорил - можно делать скиллы урон которых будет ударным (на него срабатывают пассивки).
Frosty102:
не понимаю в чем дело, триггер работает как-то неправильно, удары в дальнем бою он засчитывает как 3 удара
Скорее всего у тебя регистрируется 0.00 урона, которые наносятся юниту в момент получения и потери баффа (ещё вроде бы даже само по себе попадание снаряда даёт 0 урона).
Сам триггер выключать/включать не обязательно, если всё будет сделано правильно.
Не нужно чекать оба баффа яда, используй один, просто поставь его ДВА раза в самой абилке.
Удаляй бафф яда СРАЗУ ЖЕ, а уже потом проверяй чем владеет "источник урона".
`
ОЖИДАНИЕ РЕКЛАМЫ...
13
native UnitHasBuffsEx               takes unit whichUnit, boolean removePositive, boolean removeNegative, boolean magic, boolean physical, boolean timedLife, boolean aura, boolean autoDispel returns boolean

if (UnitHasBuffsEx(WhichUnit,false,true,true,false,true,false,false) == true) then
    // например каст ветерка
endif
if (UnitHasBuffsEx(WhichUnit,false,true,false,true,false,false,false) == true) then
    // физический дамаг
endif
26
кроме как делать все заклинания триггерно
Проще чем делать все абилки триггерно, это сделать триггерно лишь часть абилок... Можно отлавливать авто-атаку героев через яд, и уже от этого отталкиваться. Это заметно проще чем если взяться за все скиллы сразу. Но, я полагаю, что со временем ты придёшь к тому что бы поставить всё на триггерную основу, т.к. это даёт полный контроль над происходящим.
6
Extremator, это при каждой атаке создавать новый триггер на получение урона?
26
Joma, не "при каждой атаке создавать новый триггер на получение урона", а "при каждой атаке чекать необходимость создавать новый триггер на получение урона, и создавать его только если это необходимо". А уже в этом триггере чекать наличие всяких абилок и предметов.
Это не нагружает игру, поверь.
У меня у самого мини-дота есть, и там постоянно крипы мутузятся между собой и с героями, и это никак не мешает с их орбам (пассивные абилки на атаку или предметные пассивкы) и прочим скиллам. Всё отлично работает вплоть до того, что в нужный момент с триггерого скилла можно наносить "ударный" урон, т.е. такой, на который реагируют эти самые пассивки. Например: кидаешь молот бурь, а он выжигает ману цели, потому что у героя есть манабёрн (не важно свой скилл или от предмета).
6
Extremator, кидать молот бурь, а он еще и выжигает ману (срабатывает пассивка). Так и задумывалось? Мне кажется это немного странно
26
Joma, имеется ввиду то, что когда у тебя полностью кастомный скилл триггерно наносит урон, то и детектить можно что угодно и от чего угодно. Например тот же Снайпер в доте, допустим его ульт наносит 550 маг.урона по указанной цели. Имея кастомные орбы и прочие абилки, буквально в два клика можно прицепить к наносимому урону эффект "ударного" (т.е. того, который вызывает срабатывание пассивок для авто-атаки). И вот уже на этот снайперский выстрел распространняется вампиризм, баш, дезоль, дифуза, и вообще всё что угодно. Можно заставить Урсу топать ножкой и давать всем вокруг +1 стак пассивки. Гондар кидает сюрикен и нанося урон срабатывает крит+замедление от джинажы (его пассивка). Мортра бросаед даггер в цель и он попадая критует от ульты (и вампирится, и башит если шанс так же прокнет). Вот чем это удобно.
6
Extremator, так вот оно в чем дело. Всегда удивлялся Морте которая кидает кинжал а там крита срабатывает, думал как?
6
интересно, если плодить много триггеров на "юнит получает урон", сильно ли забьеться память? Где то говорилось что хоть и уничтожить триггер, все равно оно остается висеть где-то
26
так вот оно в чем дело. Всегда удивлялся Морте которая кидает кинжал а там крита срабатывает, думал как?
Joma, нее, в доте у Мортры специально сделано что даггер критует. Тут для реализации как бы очень много места. Можно сделать в нанесении урона проверку на уровень ульты, и если он больше 0, то чекать шанс и домножать урон. Но это не будет работать на другие ударные пассивки. А ведь вся суть её нынешнего даггера как раз в том что он наносит урон равный % от текущей атаки Мортры, и уже поверх этого мы имеет эффект того что на него срабатывают ударные пассивки. То что я описал - вообще не похоже на это. Я лишь привел пример как это можно использовать.
26
если плодить много триггеров на "юнит получает урон", сильно ли забьеться память?
Joma, память будет засираться, но на столько мало, что в карте вроде доты этого никто и не заметит, если конечно не произойдёт какой-то лютый буст этого спавна ивентов. В общем - имеем что имеем, мешать не должно.
6
память будет засираться, но на столько мало, что в карте вроде доты этого никто и не заметит
Отлично. Вот это хотел услышать
если конечно не произойдёт какой-то лютый буст этого спавна ивентов.
да, если все 10 игроков возьмут по героям с триггерными пассивками (вампирик найкса, 3-й урсы и т.д.) и играть 2-3 часа и безостановочно фармить. XD
Значит и тут ничего страшного не должно быть
3
ввиду то, что когда у тебя полностью кастомный скилл триггерно наносит урон, то и детектить можно что угодно и от чего угодно. Например тот же Снайпер в доте, допустим его ульт наносит 550 маг.урона по указанной цели. Имея кастомные орбы и прочие абилки, буквально в два клика можно прицепить к наносимому урону эффект "ударного" (т.е. того, который вызывает срабатывание пассивок для авто-атаки). И вот уже на этот снайперский выстрел распространняется вампиризм, баш, дезоль, дифуза, и вообще всё что угодно. Можно заставить Урсу топать ножкой и давать всем вокруг +1 стак пассивки. Гондар кидает сюрикен и нанося урон срабатывает крит+замедление от джинажы (его пассивка). Мортра бросаед даггер в цель и он попадая критует от ульты (и вампирится, и башит если шанс так же прокнет). Вот чем это удобно.
Насколько я помню, яд работает только на ближниках, и как в таком случае избежать проблем с тем же вампиризмом? Делать его триггерно, скорее всего, но это решение больше поможет, чем переделывать все.
3
Frosty102, да и ещё подумал как в такой ситуации будет себя чувствовать жар преисподней?
18
Joma, Лучше при входе на карту добавлять событие на получение урона с проверкой на наличие в групе
3
сделал проверку яду, почему-то дальний бой реагирует как-то овер неадекватно, система считает, что урон с ядом от ближнего боя засчитывается как 1 удар, но от дальнего боя как, сука, 4 удара, почему так происходит, я не понял
UPD: понял в чем дело, у героя дальнего боя продолжает работать яд и поэтому счетчик ударов увеличивается, но почему-то для существа А дальнего боя удар не задействует яд (так как я этот бафф сразу удаляю), но для существа Б дальнего боя этот бафф сохраняется, поэтому все равно не понимаю в чем дело
3
Frosty102, крч, я не понимаю в чем дело, триггер работает как-то неправильно, удары в дальнем бою он засчитывает как 3 удара (но баффы очищаются), тогда как в ближнем бою все окей. Логика триггера такова, что система должна определить, от руки нанесся дамаг или с заклинания, далее от этого срабатывают пассивные эффекты тех или иных предметов.
Загруженные файлы
26
Принятый ответ
Frosty102:
Насколько я помню, яд работает только на ближниках
Нет, не только на ближниках. Абилка Отравленное оружие (орда) нормально работает юнитах с ближним типом атаки и с дальним. Есть только разница некоторая с типом снаряда - рикошет и прочее, вроде артиллерии. С ними яд не особо дружит. Но в доте оно и не нужно, более чем хватает "обычный" для ближнего боя и "дальний бой" для ренджевиков.
Frosty102:
как в таком случае избежать проблем с тем же вампиризмом? Делать его триггерно, скорее всего, но это решение больше поможет, чем переделывать все.
Да, именно так - все вампиризмы и прочие абилки (пассивки на атаку) надо будет сделать полностью триггерными.
Frosty102:
как в такой ситуации будет себя чувствовать жар преисподней?
Да никак вообще. Его эти яды не касаются его и ничего на них не срабатывает кроме атаки, вот и всё. Это работает совсем не так как пассивки Сларка/Найкса в доте, когда Радианс своим периодическим уроном проскакивал вперед после замаха, но до фактического удара.
Borodach:
Лучше при входе на карту добавлять событие на получение урона с проверкой на наличие в групе
Borodach, ну мой вариант отличается от этого тем что будет происходить ровно то же самое, но только не сразу при появлении, а тогда когда нужно, т.е. при замахе, при касте абилки (в более редких случаях). Получается так что крипы на лайнах, которые не имеют никаких пассивок на атаку никаким образом и не создают своими ударами новые ивенты, это могут делать только герои с абилками и/или соответствующими предметами, которые работают через эту механику.
Frosty102:
но почему-то для существа А дальнего боя удар не задействует яд (так как я этот бафф сразу удаляю)
Ты быстро схватываешь)) именно так это и должно работать. Герой замахивается - чекается что у него есть яд или иная абилка/предмет. Если атакованная цель не в группе - тогда добавляем (маркируем) и создаём ивент. Когда прилетает любой урон проверяем что есть бафф яда = этот урон был с руки и нанёс яд, поэтому тут же снимает бафф яда. Далее делаем всё что необходимо, даже можно снова урон наносить (на него триггер так же сработает, но уже без яда он не будет активироваться). Ну и впринципе всё, готово. А если перед нанесением урона любым образом юниту принудительно дать бафф яда, то система подумает что это была авто-атака с руки, т.е. то о чём я изначально и говорил - можно делать скиллы урон которых будет ударным (на него срабатывают пассивки).
Frosty102:
не понимаю в чем дело, триггер работает как-то неправильно, удары в дальнем бою он засчитывает как 3 удара
Скорее всего у тебя регистрируется 0.00 урона, которые наносятся юниту в момент получения и потери баффа (ещё вроде бы даже само по себе попадание снаряда даёт 0 урона).
Сам триггер выключать/включать не обязательно, если всё будет сделано правильно.
Не нужно чекать оба баффа яда, используй один, просто поставь его ДВА раза в самой абилке.
Удаляй бафф яда СРАЗУ ЖЕ, а уже потом проверяй чем владеет "источник урона".
6
Borodach, попытался сделать примерно как тут: xgm.guru/p/wc3/114895
но при входе новых юнитов на карту события триггера растет и растет.
В общем не получилось пока что так сделать)
26
Joma:
но при входе новых юнитов на карту события триггера растет и растет
Скорее всего у тебя неправильное условие стоит, которое отсекает выбор всех юнитов и добавление ивентов к каждому. Таким образом, вероятно, каждый новый юнит на карте вызывает новую регистрацию ивентов для всех юнитов на карте.
Чтобы оставить комментарий, пожалуйста, войдите на сайт.