Как сделать тп 5x5 арену всей тимой?

gameizeazy

Активный
10 Июн 2016
116
0
Как сделать телепорт в арене 5x5 , комманда на тп есть а как сделать чтоб всей тимой?
 
Как сделать телепорт в арене 5x5 , комманда на тп есть а как сделать чтоб всей тимой?
Сделать телепорт всех героев команды?
HeroList:GetAllHeroes() вернет всех героев на карте.
Либо ты можешь сам записывать в глобальную переменную(_G) героев при их пике.
К остальным глобальным переменным:
Код:
tHeroesRadiant = {}
tHeroesDire = {}
В инитгейммод:
Код:
ListenToGameEvent("dota_player_pick_hero", OnHeroPicked, self)
Просто закинуть в файл
Код:
function OnHeroPicked (event)
  	local hero = EntIndexToHScript(event.heroindex)
	if hero then 
  		if hero:GetTeamNumber() == DOTA_TEAM_GOODGUYS then 
	  		table.insert(tHeroesRadiant, hero)
	  	end

	    if hero:GetTeamNumber() == DOTA_TEAM_BADGUYS then 
	  		table.insert(tHeroesDire, hero)
	  	end
	end
end
-----------
Так же есть более хорошая альтернатива последней функции:
К тем же переменным:
Код:
tHeroes = {}
И сама функция(слушатель тот же что и в прошлый раз).
Код:
function OnHeroPicked (event)
  	local hero 					  = EntIndexToHScript(event.heroindex)
  	local hero_team 			      = hero:GetTeamNumber()
	tHeroes[DOTA_TEAM_GOODGUYS] = tHeroes[DOTA_TEAM_GOODGUYS] or {} -- если таблицы с командой нету то выполнится условие справа(создастся таблица)
    tHeroes[DOTA_TEAM_BADGUYS]  = tHeroes[DOTA_TEAM_BADGUYS]  or {}

    table.insert(tHeroes[hero_team], hero)
end
 
Последнее редактирование модератором:
[ Server ]: PR:SetSelectedHero 0:[U:1:291061558] npc_dota_hero_abaddon(102)
[ Server ]: PR:SetSelectedHero 0:[U:1:291061558] npc_dota_hero_abaddon(102)
[ Developer ]: CLocalize::FindSafe failed to localize: #LoadoutSlot_team_showcase
[ Server ]: PR:SetPlayerReservedState 0:[U:1:291061558] false
[ General ]: S:Gamerules: entering state 'DOTA_GAMERULES_STATE_STRATEGY_TIME'
[ Server ]: PR:SetPlayerReservedState 0:[U:1:291061558] false
[ Server ]: PR:SetSelectedHero 0:[U:1:291061558] npc_dota_hero_abaddon(102)
[ VScript ]: EntIndexToHScript parameter 1: expected integer but got void.
[ Developer ]: ...dons\aa_light_horse\scripts\vscripts\addon_game_mode.lua:69: Parameter type mismatch
[ Developer ]: stack traceback:
[ Developer ]: [C]: in function 'EntIndexToHScript'
[ Developer ]: ...dons\aa_light_horse\scripts\vscripts\addon_game_mode.lua:69: in function <...dons\aa_light_horse\scripts\vscripts\addon_game_mode.lua:68>
[ W VScript ]: Script Runtime Error: ...dons\aa_light_horse\scripts\vscripts\addon_game_mode.lua:69: Parameter type mismatch
[ W VScript ]: stack traceback:
[ W VScript ]: [C]: in function 'EntIndexToHScript'
[ W VScript ]: ...dons\aa_light_horse\scripts\vscripts\addon_game_mode.lua:69: in function <...dons\aa_light_horse\scripts\vscripts\addon_game_mode.lua:68>
[ General ]: C:Gamerules: entering state 'DOTA_GAMERULES_STATE_STRATEGY_TIME'
 
Последнее редактирование модератором:
[quote author=CryDeS link=topic=953.msg4784#msg4784 date=1465627871]
Сделать телепорт всех героев команды?
HeroList:GetAllHeroes() вернет всех героев на карте.
Либо ты можешь сам записывать в глобальную переменную(_G) героев при их пике.
К остальным глобальным переменным:
Код:
tHeroesRadiant = {}
tHeroesDire = {}
В инитгейммод:
Код:
ListenToGameEvent("dota_player_pick_hero", OnHeroPicked, self)
Просто закинуть в файл
Код:
function OnHeroPicked (event)
  	local hero = EntIndexToHScript(event.heroindex)
	if hero then 
  		if hero:GetTeamNumber() == DOTA_TEAM_GOODGUYS then 
	  		table.insert(tHeroesRadiant, hero)
	  	end

	    if hero:GetTeamNumber() == DOTA_TEAM_BADGUYS then 
	  		table.insert(tHeroesDire, hero)
	  	end
	end
end
-----------
Так же есть более хорошая альтернатива последней функции:
К тем же переменным:
Код:
tHeroes = {}
И сама функция(слушатель тот же что и в прошлый раз).
Код:
function OnHeroPicked (event)
  	local hero 					  = EntIndexToHScript(event.heroindex)
  	local hero_team 			      = hero:GetTeamNumber()
	tHeroes[DOTA_TEAM_GOODGUYS] = tHeroes[DOTA_TEAM_GOODGUYS] or {} -- если таблицы с командой нету то выполнится условие справа(создастся таблица)
    tHeroes[DOTA_TEAM_BADGUYS]  = tHeroes[DOTA_TEAM_BADGUYS]  or {}

    table.insert(tHeroes[hero_team], hero)
end
[/quote]
http://pastebin.com/raw/BBCcdp22
 
Последнее редактирование модератором:
gameizeazy,
Код:
function OnHeroPicked (event)
   print("TEST",event.heroindex)
   local hero = EntIndexToHScript(event.heroindex)
  if hero then 
    if hero:GetTeamNumber() == DOTA_TEAM_GOODGUYS then 
      table.insert(tHeroesRadiant, hero)
     end

      if hero:GetTeamNumber() == DOTA_TEAM_BADGUYS then 
      table.insert(tHeroesDire, hero)
     end
  end
end
Так сделай и покажи что выдает принт..
 
Последнее редактирование модератором:
[quote author=Slavko link=topic=953.msg4791#msg4791 date=1465666260]
gameizeazy,
Код:
function OnHeroPicked (event)
    print("TEST", event.heroindex)
   local hero = EntIndexToHScript(event.heroindex)
  if hero then 
     if hero:GetTeamNumber() == DOTA_TEAM_GOODGUYS then 
      table.insert(tHeroesRadiant, hero)
     end

      if hero:GetTeamNumber() == DOTA_TEAM_BADGUYS then 
      table.insert(tHeroesDire, hero)
     end
  end
end
Так сделай и покажи что выдает принт..
[/quote]
Я уже писал,выше что у меня ошибка, и нечего с таблицей. Неработает
 
Последнее редактирование модератором:
[quote author=Slavko link=topic=953.msg4791#msg4791 date=1465666260]
gameizeazy,
Код:
function OnHeroPicked (event)
     end

      if hero:GetTeamNumber() == DOTA_TEAM_BADGUYS then 
      table.insert(tHeroesDire, hero)
     end
  end
end
Так сделай и покажи что выдает принт..
[/quote]
[ Server ]: PR:SetSelectedHero 0:[U:1:291061558] npc_dota_hero_abaddon(102)
[ VScript ]: TEST nil
[ VScript ]: EntIndexToHScript parameter 1: expected integer but got void.
[ Developer ]: ...dota_addons\testing\scripts\vscripts\addon_game_mode.lua:40: Parameter type mismatch
[ Developer ]: stack traceback:
[ Developer ]: [C]: in function 'EntIndexToHScript'
[ Developer ]: ...dota_addons\testing\scripts\vscripts\addon_game_mode.lua:40: in function <...dota_addons\testing\scripts\vscripts\addon_game_mode.lua:38>
[ W VScript ]: Script Runtime Error: ...dota_addons\testing\scripts\vscripts\addon_game_mode.lua:40: Parameter type mismatch
[ W VScript ]: stack traceback:
[ W VScript ]: [C]: in function 'EntIndexToHScript'
[ W VScript ]: ...dota_addons\testing\scripts\vscripts\addon_game_mode.lua:40: in function <...dota_addons\testing\scripts\vscripts\addon_game_mode.lua:38>
Вот это при 1,2 скрипте
 
Последнее редактирование модератором:
Нужен твой код, или хотя бы строчки на которые ругается дота. Без них сложно разобраться.
 
gameizeazy, вообще хз. поставь нормальный barebones, в котором всё в отдельных файлах прописано, и этот самый ОнХироПик прописан в events.lua.
 
Реклама: