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

Дроп с мобов

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

Оффлайн Owletass

  • Продвинутый
  • 57
  • Мощь: 0
Дроп с мобов
« : 24-08-2014, 14:27:38 »
Хочу сделать так, чтобы когда умирает крип, то с него падала вещь с некоторым шансом.

Оффлайн -ErøtiC-

  • Администратор
  • 335
  • Мощь: 3
  • Забанен
Re: Дроп с мобов
« Ответ #1 : 24-08-2014, 15:22:01 »
Owletass, через скрипты реализуется. Отслеживаешь смерть моба, через рандом (для некоторого шанса) создаешь на точке смерти предмет.

entity_killed
  • entindex_killed( long )
  • entindex_attacker ( long )
  • entindex_inflictor ( long )
  • damagebits ( long )

Оффлайн Owletass

  • Продвинутый
  • 57
  • Мощь: 0
Re: Дроп с мобов
« Ответ #2 : 24-08-2014, 16:48:04 »
Owletass, через скрипты реализуется. Отслеживаешь смерть моба, через рандом (для некоторого шанса) создаешь на точке смерти предмет.

entity_killed
  • entindex_killed( long )
  • entindex_attacker ( long )
  • entindex_inflictor ( long )
  • damagebits ( long )
Это всё и так было ясно. Дело в том, что я не могу реализовать это. Помоги, если не сложно.

Оффлайн SilentFoXy

  • 9
  • Мощь: 0
Re: Дроп с мобов
« Ответ #3 : 26-08-2014, 07:19:21 »
Начали тему - продолжите ее . Помогите новичкам что-ли :)

Оффлайн doter.ua

  • Друзья CG
  • 272
  • Мощь: 1
Re: Дроп с мобов
« Ответ #4 : 26-08-2014, 07:34:19 »
Хочу сделать так, чтобы когда умирает крип, то с него падала вещь с некоторым шансом.

фнкция умер крип(keys)
     local Guf = EntIndexToHScript(keys.entindex_killed)
     local myItem =  CreateItem("item_aegis", nil, nil)
     CreateItemOnPositionSync(Guf:GetAbsOrigin(),  myItem)
энд

шанс: например  if RandomInt(1, 10) > 3  then   ...   else  ... end   Насколько я помню по комбинаторике шанс равен  7\10  = 70%  ( 7 из 10 чисел  "> 3")
« Последнее редактирование: 26-08-2014, 07:40:30 от doter.ua »
гайды
сурпрайз mthfckr :D

[свернуть]

Оффлайн Owletass

  • Продвинутый
  • 57
  • Мощь: 0
Re: Дроп с мобов
« Ответ #5 : 26-08-2014, 17:26:52 »
фнкция умер крип(keys)
     local Guf = EntIndexToHScript(keys.entindex_killed)
     local myItem =  CreateItem("item_aegis", nil, nil)
     CreateItemOnPositionSync(Guf:GetAbsOrigin(),  myItem)
энд

шанс: например  if RandomInt(1, 10) > 3  then   ...   else  ... end   Насколько я помню по комбинаторике шанс равен  7\10  = 70%  ( 7 из 10 чисел  "> 3")

Извини, но я не знаю, что с этим делать.

Закинул этот код в addon_name_mod.lua и, кажется, заработало.

function DotaPvP:onEntityKilled(keys)
if RandomInt(3, 100) > 3  then
    else local Guf = EntIndexToHScript(keys.entindex_killed)
    local myItem =  CreateItem("item_aegis", nil, nil)
    CreateItemOnPositionSync(Guf:GetAbsOrigin(),  myItem)
end
end
« Последнее редактирование: 26-08-2014, 17:59:13 от Owletass »

Оффлайн doter.ua

  • Друзья CG
  • 272
  • Мощь: 1
Re: Дроп с мобов
« Ответ #6 : 26-08-2014, 17:28:53 »
Извини, но я не знаю, что с этим делать.
Рано такое делать значит. Читай гайды: dota2.ru/forum/th...g-chast-2.602694/   там ссылка на первую часть.
гайды
сурпрайз mthfckr :D

[свернуть]

Оффлайн Илья

  • Супермодератор
  • 1892
  • Мощь: 16
Re: Дроп с мобов
« Ответ #7 : 25-09-2015, 15:50:28 »
Ребят, у меня похожий вопрос: как узнать, что умер монстр конкретного типа?

Вот тут, например, узнаем индекс умершего монстра.
Код
local killedEntity = EntIndexToHScript(event.entindex_killed)
Далее я бы мог сравнить его с необходимым для выполнения условия индексом, но где мне его взять?

Как мне узнать индекс моего кастомного монстра, который называется "cow"?

Оффлайн Илья

  • Супермодератор
  • 1892
  • Мощь: 16
Re: Дроп с мобов
« Ответ #8 : 25-09-2015, 16:20:13 »
Все, разобрался. Нашел где-то на просторах инета такой вот метод GetUnitName().

Кому интересно, вот в итоге код обработчика:

Код
 function OnEntityKilled (event)
   local killedEntity = EntIndexToHScript(event.entindex_killed)
   if killedEntity:GetUnitName() == "cow" then
     CreateDrop("item_flask", killedEntity:GetAbsOrigin())
   end
 end