call UnitDamageTargetBJ( GetEventDamageSource() , GetTriggerUnit(), GetEventDamage()*5, ATTACK_TYPE_HERO, DAMAGE_TYPE_NORMAL )
Такой способ крашит карту, орать не нужно ибо я ковыряю функции.

Буквально вчера такое же разбирал у себя. Краш лечится предусловием. Перед нанесением урона сохранить в Custom Value (UserData) боевой единицы какое-то число, которое бы говорило о нанесении урона, после нанесения урона - убираете. Для триггера, ловящего урон поставить условие, что юниты с таким установленным числом не проходят по событию детекта урона (чтобы триггерный урон не ловился и не получалась рекурсия).
`
ОЖИДАНИЕ РЕКЛАМЫ...

Показан только небольшой набор комментариев вокруг указанного. Перейти к актуальным.
29
PT153, можно было и не выключать триггер, а обойтись логической переменной.
if NoDamageReaction  then
else
set  NoDamageReaction = true 
call UnitDamageTarget ( GetEventDamageSource() , GetTriggerUnit(), GetEventDamage()*5, true, false, ATTACK_TYPE_HERO, DAMAGE_TYPE_NORMAL, null )
set  NoDamageReaction = false
endif
28
можно было и не выключать триггер, а обойтись логической переменной.
В итоге у тебя сработает триггер, начнётся проверятся условие. Зачем так, если можно просто выключить триггер, это обойдётся в меньше строк кода и без создания переменных.
28
KingMaximax, а зачем тут else?
if(!NoDamageReaction){
	NoDamageReaction = true;
	UnitDamageTarget ( GetEventDamageSource() , GetTriggerUnit(), GetEventDamage()*5, true, false, ATTACK_TYPE_HERO, DAMAGE_TYPE_NORMAL, null )
	NoDamageReaction = false
}
29
KingMaximax, а зачем тут else?
Как сказал мой один рыжий знакомый, который ломает сайты. if else быстрее чем if not...
Я всегда использую if else принцип... Особенно для проверки "Есть ли юнит в группе".
28
KingMaximax, т.е. ради экономии одного такта ты пишешь быдлокод?
когда даже старые компьютеры совершают более миллиарда тактов в секунду
может тогда ещё будешь писать всё в одну строчку
т.к. лишние пустые строки замедляют работу намного сильнее чем отрицание
29
nvc123, я бы не сказал, что я писал быдлокод такой код радим одного такта. Скажем так ради тысячи тактов. Просто так я ничего не пишу, всегда есть причина. И Алсилична бы тебе не простила за оскорбление сего способа — быдлокодом. Обычно такое такое её триггерит. Хотя, наверно она не среагирует, скорее всего она как обычно угнетает угоз...
28
KingMaximax, обратить 1 бит это 1 такт
и оставлять пустые иф/елсе это чистой воды былдлокод за который бьют по рукам
а в некоторых местах даже увольняют с работы
лично я бы за такое сжигал напалмом
жаль только что проезд дорогой
да и тащить напалм через границу неудобно
29
nvc123, я в других яп подобного не делаю, только в jass'е. И то не во всех случаях применяю данный способ. Если на то пошло. И вообще это грубо по отношению к некоторым наркокодерам...
и оставлять пустые иф/елсе это чистой воды былдлокод за который бьют по рукам
А кто сказал, что они будут пустыми.. А вдруг там будет код, откуда ты знаешь. А вдруг я просчитал наперёд, что нужно будет ему. А разве программисты не просчитывают всё наперёд, ?)
Быть на шаг впереди заказчика.....
Показан только небольшой набор комментариев вокруг указанного. Перейти к актуальным.
Чтобы оставить комментарий, пожалуйста, войдите на сайт.