Убили кого?Как реализовать, чтобы деньги давались, даже если убили крипы?Есть легкий способ? Или придется проверять каждого убитого?
Через евент или модификатор луаНу к примеру ты играешь за редиант твои крипы залосхитили крипа дайр, как сделать, чтобы тебе голду дали за это?
Событие OnKill у абилки и вызывает главный эвент, просто оно его фильтрует через datadriven.В теории выгоднее делать через абилку, дабы сделать объект обработки независимым от главного скрипта.
Однако это выгодно только тогда, когда нужно работать с конкретными крипами, а не как в данном случае со всеми нейтралами. Тут, конечно, лучше через глобальное событие по поимке смерти.
И еще один момент: отловить убийцу, без выкрутасов, можно только по этому же самому глобальному событию смерти. Или я не прав? Событий модификаторов ведь нет подходящих?
А то мне приходилось недавно закреплять за крипом убийцу через пассивку, что регестрировала последнюю атаку по нему. Сделал через такие выкрутасы именно из-за сказанного мною выше.
function GameMode:OnEntityKilled( keys )
local killedUnit = EntIndexToHScript( keys.entindex_killed )
local killerEntity = nil
if keys.entindex_attacker ~= nil then
killerEntity = EntIndexToHScript( keys.entindex_attacker )
local player = killerEntity:GetOwner()
local hero = player:GetAssignedHero()
local unit = killedUnit:GetGoldBounty()
hero:SpendGold(-1 *unit, DOTA_ModifyGold_CreepKill)
end
end
Событие OnKill у абилки и вызывает главный эвент, просто оно его фильтрует через datadriven.
Я понимаю, просто я примерно говорю, вроде есть что бы если убили owner'aOnKill - отвечает за что, за убийство со стороны владельца модификатора? Я не хочу на героев вешать модики, мне бы убийцу узнать через модик на крипе.
Тьфу ты, я ошибся, OnDeath.OnKill - отвечает за что, за убийство со стороны владельца модификатора? Я не хочу на героев вешать модики, мне бы убийцу узнать через модик на крипе.
Офк.Так есть у OnDeath параметр "убийца"?