Как сделать проверку кем нанесён урон и в каких кол-вах, например, Ратуше? Если допустим синий нанёс 100 урона, то здание переходит ему.

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

(всю папку триггеров себе вставляй)
инструкция по переносу в самой наработке
//////////// ВОТ ЧТО ТЕБЕ НАДО ДОПИСАТЬ/////////
if LoadInteger(udg_hash,GetHandleId(c),100+p)>=100 then где 100 - твоё число
call SetUnitOwner(c,GetOwningPlayer(u))
endif
и я показал куда, настраивать всё всё не надо ибо тебе не нужен опыт
и это не 100% решение и не гуи, требуется переработка, я дал максимальную подсказку с образцом
`
ОЖИДАНИЕ РЕКЛАМЫ...

Показан только небольшой набор комментариев вокруг указанного. Перейти к актуальным.
0
32
5 лет назад
0
PT153, не ваще то могут, они его исправно получают, т.е он проходит как событие EVENT_UNIT_DAMAGED но с тех пор как у юнита хп меньше 0.405 урон перестает влиять на кол-во хп юнита, а так же отсекаются все модификаторы, не вешаются баффы и так далее.
Об этом писал еще Diod на форуме, баг яйца феникса, когда из за морфа бонус хп становился отрецательным и макс хп < 0.405, что делало юнита мертвым.
0
28
5 лет назад
0
он проходит как событие EVENT_UNIT_DAMAGED
Тут не проходит. Юнит умер - событие не реагирует.
Загруженные файлы
0
32
5 лет назад
0
PT153, наноси пачкой уроны, на а не после.
0
28
5 лет назад
0
quq_CCCP, лучше сам покажи, у меня не выходит.
Загруженные файлы
0
11
5 лет назад
0
Bergi_Bear:

А вот подробнее , тут как раз такие реализована система подсчета урона по крипу, чтобы в этом % соотношении выдать опыт, в твоём же случае нужно немножко переделать систему:
Первый кто нанесёт 100 урона станет владельцем здания
function Trig_Damage_Test_Actions takes nothing returns nothing
local unit c=GetTriggerUnit() //  тот кто получил урон
local unit u=GetEventDamageSource() //  тот кто нанёс
local real d=GetEventDamage() // количество урона
local integer p=0
//IsUnitType(u,UNIT_TYPE_HERO) and 
if c!=u and IsUnitDead(c)==false and IsUnitIllusion(u)==false and IsUnitEnemy(u,GetOwningPlayer(c)) then //система опыта и голды

set p=GetPlayerId(GetOwningPlayer(u))
call SaveInteger(udg_hash,GetHandleId(c),100+p,R2I(d)+LoadInteger(udg_hash,GetHandleId(c),100+p)) // записываем в индекс + номер игрока хештаблицы
//////////////// ВОТ ЧТО ТЕБЕ НАДО ДОПИСАТЬ/////////
if LoadInteger(udg_hash,GetHandleId(c),100+p)>=100 then // где 100 - твоё число
call SetUnitOwner(c,GetOwningPlayer(u))
endif
//////////////////////////////////////// И ВСЁ/////////////
endif



set c=null
set u=null

endfunction
Это в JassNewGenPack вставлять?
0
32
5 лет назад
0
(всю папку триггеров себе вставляй)
инструкция по переносу в самой наработке
//////////// ВОТ ЧТО ТЕБЕ НАДО ДОПИСАТЬ/////////
if LoadInteger(udg_hash,GetHandleId(c),100+p)>=100 then где 100 - твоё число
call SetUnitOwner(c,GetOwningPlayer(u))
endif
и я показал куда, настраивать всё всё не надо ибо тебе не нужен опыт
и это не 100% решение и не гуи, требуется переработка, я дал максимальную подсказку с образцом
Принятый ответ
Показан только небольшой набор комментариев вокруг указанного. Перейти к актуальным.
Чтобы оставить комментарий, пожалуйста, войдите на сайт.