Как реализовать, чтобы деньги давались, даже если убили крипы?

  • Автор темы Автор темы FastSlow
  • Дата начала Дата начала

FastSlow

Пользователь
8 Янв 2017
12
0
Как реализовать, чтобы деньги давались, даже если убили крипы?Есть легкий способ? Или придется проверять каждого убитого?
 
Ну к примеру ты играешь за редиант твои крипы залосхитили крипа дайр, как сделать, чтобы тебе голду дали за это?
 
Что за глупый вопрос? :-\
Добавляеш крипам абилку с эвентом типо при убийстве юнита
Он запускает скрипт который узнает комманду атакера и через цикл выдает бабла, только нужно предварительно записать игроков припике геров
 
Сумрачный гений сверху такой сумрачный.
Поставь слушатель на эвент entity_killed, после проверяй команду убийцы и выдавай деньги всем героем из этой же команды.
Щас бы давать абилку каждому крипу когда есть глобальные эвенты -.-
 
В теории выгоднее делать через абилку, дабы сделать объект обработки независимым от главного скрипта.
Однако это выгодно только тогда, когда нужно работать с конкретными крипами, а не как в данном случае со всеми нейтралами. Тут, конечно, лучше через глобальное событие по поимке смерти.

И еще один момент: отловить убийцу, без выкрутасов, можно только по этому же самому глобальному событию смерти. Или я не прав? Событий модификаторов ведь нет подходящих?

А то мне приходилось недавно закреплять за крипом убийцу через пассивку, что регестрировала последнюю атаку по нему. Сделал через такие выкрутасы именно из-за сказанного мною выше.
 
Как делал я раньше: вначале игры давал всем абилку скрытую, которая работала как аура, при убийстве любого юнита крипами владельцу способности падала голда
 
Правильно создать крипа и золото за убитых будет даваться владельцу этого крипа
 
В теории выгоднее делать через абилку, дабы сделать объект обработки независимым от главного скрипта.
Однако это выгодно только тогда, когда нужно работать с конкретными крипами, а не как в данном случае со всеми нейтралами. Тут, конечно, лучше через глобальное событие по поимке смерти.

И еще один момент: отловить убийцу, без выкрутасов, можно только по этому же самому глобальному событию смерти. Или я не прав? Событий модификаторов ведь нет подходящих?

А то мне приходилось недавно закреплять за крипом убийцу через пассивку, что регестрировала последнюю атаку по нему. Сделал через такие выкрутасы именно из-за сказанного мною выше.
Событие OnKill у абилки и вызывает главный эвент, просто оно его фильтрует через datadriven.
И да, ZLOY подсказал верный вариант.
 
Последнее редактирование модератором:
Делаю так все работает.
Код:
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
Как давать золото, а то я только отнимать могу? Пытался чрез setgold, но чот не очень получилось.
ZLOY , а можно подробней?
 
ModifyGold
Если создать юнита и его владельцем поставить нужного игрока, то и золото за убийства будут даваться этому игроку
 
Событие OnKill у абилки и вызывает главный эвент, просто оно его фильтрует через datadriven.

OnKill - отвечает за что, за убийство со стороны владельца модификатора? Я не хочу на героев вешать модики, мне бы убийцу узнать через модик на крипе.
 
Последнее редактирование модератором:
OnKill - отвечает за что, за убийство со стороны владельца модификатора? Я не хочу на героев вешать модики, мне бы убийцу узнать через модик на крипе.
Я понимаю, просто я примерно говорю, вроде есть что бы если убили owner'a
 
Последнее редактирование модератором:
OnKill - отвечает за что, за убийство со стороны владельца модификатора? Я не хочу на героев вешать модики, мне бы убийцу узнать через модик на крипе.
Тьфу ты, я ошибся, OnDeath.
Все модификаторы на смерть, получение урона, получение модификатора и все прочие работают глобально, но для датадривена они еще дополнительно фильтруются на соответствие условиям(убийца, погибший).
 
Последнее редактирование модератором:
Так есть у OnDeath параметр "убийца"?
 
Последнее редактирование модератором:
Реклама: