Отлов убийства нейтралов

Дай всем мобам скрытый скилл, по которому на OnOwnerDied будет запускаться луа скрипт. Код тебе писать никто не будет, хватит уже коды клянчить, учись сам писать.
 
Вот, под рукой было.
Код:
"creep_die"
{
 "BaseClass"        "ability_datadriven"
 "AbilityBehavior"     "DOTA_ABILITY_BEHAVIOR_PASSIVE | DOTA_ABILITY_BEHAVIOR_HIDDEN"
 "AbilityTextureName"    ""
 "AbilityCastRange"    "0"
 "AbilityCastPoint"    "0"
 "AbilityCooldown"     "0"
 "OnOwnerDied"
 {
  "RunScript"
  {
   "ScriptFile"  "creep_spawn.lua"
   "Function"   "creep_die"
  }
 }
}
Еще можно всё делать через слушателя "OnEntityDied" или что-то такое.
 
Последнее редактирование модератором:
[quote author=Slavko link=topic=958.msg4820#msg4820 date=1465746054]
Вот, под рукой было.
Код:
"creep_die"
{
 "BaseClass"        "ability_datadriven"
 "AbilityBehavior"     "DOTA_ABILITY_BEHAVIOR_PASSIVE | DOTA_ABILITY_BEHAVIOR_HIDDEN"
 "AbilityTextureName"    ""
 "AbilityCastRange"    "0"
 "AbilityCastPoint"    "0"
 "AbilityCooldown"     "0"
 "OnOwnerDied"
 {
  "RunScript"
  {
   "ScriptFile"  "creep_spawn.lua"
   "Function"   "creep_die"
  }
 }
}
Еще можно всё делать через слушателя "OnEntityDied" или что-то такое.
[/quote]
Я думал что можно только через OnEntityDied ,только он считывает смерть героев.
А твой способ я не понял что писать в луа слушатель срабатывания этой способности?
Вы мне постоянно пишите ,что я должен сам писать код ,но как если я не знаю.
 
Последнее редактирование модератором:
Роман, начни с малого. У тебя нет желания развиваться.
Это и есть слушатель. Этот скилл присваивай всем мобам. Моб умер - функция creep_die вcreep_spawn.lua запустилась. Там че хочешь, то и делай.
 
[quote author=Slavko link=topic=958.msg4826#msg4826 date=1465747675]
Роман, начни с малого. У тебя нет желания развиваться.
Это и есть слушатель. Этот скилл присваивай всем мобам. Моб умер - функция creep_die в creep_spawn.lua запустилась. Там че хочешь, то и делай.
[/quote]
creep_spawn.lua это barebones?
 
например,
Код:
function creep_die(keys)
 GLOBAL_MOBS =GLOBAL_MOBS - 1
end
 
Роман, нет, просто создай его вscripts\vscripts
Zf0SnFc.png
 
[quote author=Slavko link=topic=958.msg4828#msg4828 date=1465747770]
например,
Код:
function creep_die(keys)
 GLOBAL_MOBS = GLOBAL_MOBS - 1
end
[/quote]
все понял ,а как через OnEntityDied реализовывать
 
Можно точно так же реализовывать, как и счетчик убийств героев. Но, соответственно, событие использовать entity_killed. Ну и естественно код под него переделать. Это тебе как альтернативный вариант варианту Slavko (и то, что ты изначально спрашивал).
 
У меня ошибка пишет "=" excpected чето там creep_die

Чот в голос ;D
Отличное разъяснение проблемы ;)
Я думаю тебе нужно сделать "чето там" в твоем коде и все будет работать.
Не за что.
 
Последнее редактирование модератором:
Чот в голос ;D
Отличное разъяснение проблемы ;)
Я думаю тебе нужно сделать "чето там" в твоем коде и все будет работать.
Не за что.
На самом деле дельный совет правда я решил эту проблему до его появления ;D.
 
Последнее редактирование модератором:
Ну вот у меня новая проблема я не могу реализовать эту фишку.
Собственно мой код я нуб так что не удивляйтесь
Код:
require( 'timers' )
require( 'barebones' )
GLOBAL_MOBS = 4
GAME_ROUND = 0
MAX_ROUNDS = 5
ROUND_DURATION = 10 
ROUND_UNITS = 2
function Precache( context )
	print("[BAREBONES] Performing pre-load precache")
	PrecacheResource("particle", "particles/econ/generic/generic_aoe_explosion_sphere_1/generic_aoe_explosion_sphere_1.vpcf", context)
	PrecacheResource("particle_folder", "particles/test_particle", context)
	PrecacheResource("model_folder", "particles/heroes/antimage", context)
	PrecacheResource("model", "particles/heroes/viper/viper.vmdl", context)
	PrecacheModel("models/heroes/viper/viper.vmdl", context)
	PrecacheResource("soundfile", "soundevents/game_sounds_heroes/game_sounds_gyrocopter.vsndevts", context)
	PrecacheUnitByNameSync("example_unit_1", context)
	PrecacheItemByNameSync("example_ability", context)
	PrecacheItemByNameSync("item_example_item", context)
	PrecacheUnitByNameSync("npc_dota_hero_ancient_apparition", context)
	PrecacheUnitByNameSync("npc_dota_hero_enigma", context)
end
function Activate()
	GameRules.GameMode = GameMode()
	GameRules.GameMode:InitGameMode()
end
function creep_die(keys)
 GLOBAL_MOBS = GLOBAL_MOBS - 1
end
function GameMode:OnGameInProgress()
   local point = Entities:FindByName( nil, "spawnerino"):GetAbsOrigin()
   local waypoint = Entities:FindByName( nil, "way1")
   local return_time = 10
   Timers:CreateTimer(10, function()		 
		 GAME_ROUND = GAME_ROUND + 1
		 if GAME_ROUND == MAX_ROUNDS then
      return_time = nil
     end
     Say(nil,"Wave №" .. GAME_ROUND, false)
          if GAME_ROUND == 1 then
     	GLOBAL_MOBS = 4
     	end
     for i=1, ROUND_UNITS do
		  local unit = CreateUnitByName( "example_unit_" .. GAME_ROUND, point + RandomVector( RandomFloat( 0, 200 ) ), true, nil, nil, DOTA_TEAM_GOODGUYS )
		  unit:SetInitialGoalEntity( waypoint )
		  local uni = CreateUnitByName( "example_unit_" .. GAME_ROUND + 1, point + RandomVector( RandomFloat( 0, 200 ) ), true, nil, nil, DOTA_TEAM_GOODGUYS )
		  	uni:SetInitialGoalEntity( waypoint )
     end   
     	if GLOBAL_MOBS == 0 then
     return return_time
   end
   end)
end
Вообщем что я хотел что бы после убийства волны появлялась следующая, сейчас не большие пояснения
if GAME_ROUND == 1 then
GLOBAL_MOBS = 4
end
здесь я написал так потому что в 1 раунде 4 моба
if GLOBAL_MOBS == 0 then
return return_time
end
Здесь я хотел что бы после убийства мобов шла следующая война
 
Последнее редактирование модератором:
Роман, на сайте же есть гайд по созданию карты с волнами крипов, почему нельзя сделать по нему?
 
Прости, братан, надоело вникать в твои коды, которые еще и закомменчены все, из за чего едва читабельны. Попробуй начать с чего-то попроще. Сделай какую-то шляпу с глобалками и циклами типа for, while, например, предмет, который на OnToggle будет начинать спавнить вокруг тебя мобов каждые 5-10 секунд, а если кто-то их всех убьет, то у тебя этот предмет пропадет. Или сам чето придумай. Ты не понимаешь принципа работы операторов.
 
I_GRIN_I, он по нему и делает, но хочет приблуду туда прикрутить.
 
[quote author=I_GRIN_I link=topic=958.msg4848#msg4848 date=1465757578]
Роман, на сайте же есть гайд по созданию карты с волнами крипов, почему нельзя сделать по нему?
[/quote]
Да там есть гайд проблема в том ,что в этом гайде волны респавнятся каждые 30 секунд,а я хотел что бы после убийства всех мобов
 
Прости, братан, надоело вникать в твои коды, которые еще и закомменчены все, из за чего едва читабельны. Попробуй начать с чего-то попроще. Сделай какую-то шляпу с глобалками и циклами типа for, while, например, предмет, который на OnToggle будет начинать спавнить вокруг тебя мобов каждые 5-10 секунд, а если кто-то их всех убьет, то у тебя этот предмет пропадет. Или сам чето придумай. Ты не понимаешь принципа работы операторов.
Забей я просто типичный очередняра про мою тупость даже тему создали.Буду сам свои проблемы решать.
 
Последнее редактирование модератором:
Да там есть гайд проблема в том ,что в этом гайде волны респавнятся каждые 30 секунд,а я хотел что бы после убийства всех мобов
Кстати в том гайде в комментариях есть решение ,но я его не понял.
 
Последнее редактирование модератором:
Роман, короче смотри, тебе примерно нужно такое: ты через функциюGameMode:OnIntervalThink() [Не забудь IntervalThink выставить, например каждые 0.1 секунду] ищешь через FindByName твоих крипов на волнах, если же крипы не находятся то return_time выставляется 0, это же глобальная переменная. В общем тебе в любом случае нужно хоть немного знать луа, а то я может чушь сейчас написал.
 
Реклама: