CustomGames.ru - Dota 2 пользовательские игры

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

0 Пользователей и 1 Гость просматривают эту тему.

Оффлайн FastSlow

  • 12
  • Мощь: 0
Как реализовать, чтобы деньги давались, даже если убили крипы?Есть легкий способ? Или придется проверять каждого убитого?

Оффлайн Adam Smith

  • Друзья CG
  • 468
  • Мощь: 6
  • жрять жри его
Как реализовать, чтобы деньги давались, даже если убили крипы?Есть легкий способ? Или придется проверять каждого убитого?
Убили кого?
By PG.Freeman

Оффлайн FastSlow

  • 12
  • Мощь: 0
Ну к примеру ты играешь за редиант твои крипы залосхитили крипа дайр, как сделать, чтобы тебе голду дали за это?

Оффлайн Adam Smith

  • Друзья CG
  • 468
  • Мощь: 6
  • жрять жри его
Ну к примеру ты играешь за редиант твои крипы залосхитили крипа дайр, как сделать, чтобы тебе голду дали за это?
Через евент или модификатор луа
By PG.Freeman

Оффлайн gameizeazy

  • 106
  • Мощь: 1
Что за глупый вопрос?  :-\
Добавляеш крипам абилку с эвентом типо при убийстве юнита
Он запускает скрипт который узнает комманду атакера и через цикл выдает бабла, только нужно предварительно записать игроков припике геров

Оффлайн CryDeS

  • Друзья CG
  • 1200
  • Мощь: 12
Сумрачный гений сверху такой сумрачный.
Поставь слушатель на эвент entity_killed, после проверяй команду убийцы и выдавай деньги всем героем из этой же команды.
Щас бы давать абилку каждому крипу когда есть глобальные эвенты -.-

Оффлайн Илья

  • Супермодератор
  • 1904
  • Мощь: 16
В теории выгоднее делать через абилку, дабы сделать объект обработки независимым от главного скрипта.
Однако это выгодно только тогда, когда нужно работать с конкретными крипами, а не как в данном случае со всеми нейтралами. Тут, конечно, лучше через глобальное событие по поимке смерти.

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

А то мне приходилось недавно закреплять за крипом убийцу через пассивку, что регестрировала последнюю атаку по нему. Сделал через такие выкрутасы именно из-за сказанного мною выше.

Оффлайн KEKMAN

  • 168
  • Мощь: 2
  • Dota forever <3
Как делал я раньше: вначале игры давал всем абилку скрытую, которая работала как аура, при убийстве любого юнита крипами владельцу способности падала голда

Оффлайн ZLOY

  • Супермодератор
  • 367
  • Мощь: 4
Правильно создать крипа и золото за убитых будет даваться владельцу этого крипа

Оффлайн CryDeS

  • Друзья CG
  • 1200
  • Мощь: 12
В теории выгоднее делать через абилку, дабы сделать объект обработки независимым от главного скрипта.
Однако это выгодно только тогда, когда нужно работать с конкретными крипами, а не как в данном случае со всеми нейтралами. Тут, конечно, лучше через глобальное событие по поимке смерти.

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

А то мне приходилось недавно закреплять за крипом убийцу через пассивку, что регестрировала последнюю атаку по нему. Сделал через такие выкрутасы именно из-за сказанного мною выше.
Событие OnKill у абилки и вызывает главный эвент, просто оно его фильтрует через datadriven.
И да, ZLOY подсказал верный вариант.

Оффлайн FastSlow

  • 12
  • Мощь: 0
Делаю так все работает.
Код
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 , а можно подробней?

Оффлайн ZLOY

  • Супермодератор
  • 367
  • Мощь: 4
ModifyGold
Если создать юнита и его владельцем поставить нужного игрока, то и золото за убийства будут даваться этому игроку

Оффлайн FastSlow

  • 12
  • Мощь: 0
Спасибо, а как поставить владельца? Через setowner()?

Оффлайн Илья

  • Супермодератор
  • 1904
  • Мощь: 16
Событие OnKill у абилки и вызывает главный эвент, просто оно его фильтрует через datadriven.

OnKill - отвечает за что, за убийство со стороны владельца модификатора? Я не хочу на героев вешать модики, мне бы убийцу узнать через модик на крипе.

Оффлайн gameizeazy

  • 106
  • Мощь: 1
OnKill - отвечает за что, за убийство со стороны владельца модификатора? Я не хочу на героев вешать модики, мне бы убийцу узнать через модик на крипе.
Я понимаю, просто я примерно говорю, вроде есть что бы если убили owner'a