Помогите пожалуйста, мне очень нужна ваша помощь. Всё перерыл, ни где нету достоверной информации, а если юзать jass то эта морокка, не совсем его понимаю

Принятый ответ

Кирилл4, на jass есть, вот пример
Для начала тебе хватит, есть более продвинутые системы.
`
ОЖИДАНИЕ РЕКЛАМЫ...

Показан только небольшой набор комментариев вокруг указанного. Перейти к актуальным.
0
26
6 лет назад
0
Кирилл4, пользуйтесь поиском, наработки есть. Например xgm.guru/p/wc3/catch-dmg
0
21
6 лет назад
0
Кирилл4, а как бы оно, интересно, должно было работать
откуда триггер до регистрации события атакованного возьмет?
0
2
6 лет назад
0
ClotPh:
Кирилл4, а как бы оно, интересно, должно было работать
откуда триггер до регистрации события атакованного возьмет?
Ну помоги плиз, если не в лом. Мне кажется, что я близок к истине.
0
32
6 лет назад
0
Кирилл4, есть готовые системы на эту тему, гугл в помощь.
0
2
6 лет назад
0
quq_CCCP:
Кирилл4, есть готовые системы на эту тему, гугл в помощь.
Имхо их много, но толкового ничего нету, гуи не хочется использовать..
quq_CCCP:
Мне просто срочно нужно это, так я хоть буду иметь большое и дальнейшей представление о том как он отлавливается, разжуйте мне пожалуйста
1
32
6 лет назад
1
Кирилл4, на jass есть, вот пример
Для начала тебе хватит, есть более продвинутые системы.
Принятый ответ
0
21
6 лет назад
0
Вот тебе простейший пример на GUI.
Загруженные файлы
2
32
6 лет назад
2
~~
Мне просто срочно нужно это, так я хоть буду иметь большое и дальнейшей представление о том как он отлавливается, разжуйте мне пожалуйста
Что значит как? Это помойму разжевано везде, но блин в сотый раз...
Нельзя просто так узнать кто кого ударил, вот нету такой функции, о том что один юнит ударил руками другого мы можем узнать лишь косвенно (в коде), т.к у нас есть событие - юнит атакован, которое срабатывает когда юнит начал атаку, еще даже не махнул ручками а просто сагрился на цель - уже сработало событие, при этом неважно ударит он или промажет, или цель вовсе к тому моменту умрет...
Ну у нас еще есть событие - юнит получает урон, оно не так удобно - т.к требует конкретно указанного юнита в отличии от события "юнит атакован", которе можно повешать на всех юнитов игрока ( EVENT_PLAYER_UNIT_ATTACKED), что удобнее т.к такое событие будет работат на всех юнитов указанного игрока и существующих и созданных в процессе игры.... Ну вернемся к событию - "юнит получает урон", оно срабатывает на фрейм ранее от того момента как юнит потеряет хп от урона, срабатывает на любой урон полученный указанным юнитом, проверить приэтом мы можем лишь кол-во урона (функция GetEventDamage()), источник урона (GetEventDamageSource()) ну и тот кто получил урон (GetTriggerUnit()), понять прост так нельзя урон это от атаки, от спелла или от баффа (вредные баффы наносят 0 урона при появлении и потере).
Далее уже люди реализуют проверки на тип урона с помощью костылей, тот пример что я тебе дал использует оба событие, когда юнит атакован - включается событие юнит получает урон, если после события атаки сработает событие урона - считай был удар, но это слишком багано, т.к сущетсуют промахи и другие источники урона.
Еще есть способ отличить физический урон от магического - сделать его отрицательным, вручая тому у кого будем отлавливать физ атаки, суть - рунные браслеты с фактором сниженного урона 2, весь магический урон полученный юнитом будет отрецательным, а положительным будет только чистый и физический (чистый в стандартных способностях практически не втречается, как и физический) ну а далее все просто, лечение от маг урона уберается так же триггерно, сначала ждем таймером 0.00 сек, потом возвращаем юниту хп которое было до отрец урона и тут же наносим ему еще урон маг типа, забирая пассивку резиста и отключая триггер, таким образом мы вернем все наместо и юнит получит маг урон в полном размере, как и должен без лечения (т.е мы блокируем лечение от отрец урона), ну а далее снова вручаем пассивку и врубаем триггер, дейтсвуем поновой....
Показан только небольшой набор комментариев вокруг указанного. Перейти к актуальным.
Чтобы оставить комментарий, пожалуйста, войдите на сайт.