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

[Pick] Рандомим героя

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

Оффлайн EnDronist

  • 222
  • Мощь: 1
  • Перфекционист-максималист
[Pick] Рандомим героя
« : 19-01-2017, 16:53:23 »
Что нужно прописать, чтобы герою по его ID дать рандомного героя? Нужное время и условие в нужной функции у меня уже есть
Код
	if GameRules:State_Get() == DOTA_GAMERULES_STATE_PRE_GAME then
if _G.gamemode_done == false then
CAddonTemplateGameMode:ApplyGamemode()
end
for i=0,9 do
if PlayerResource:GetPlayer(i) ~= nil then
if PlayerResource:GetPlayer(i):GetAssignedHero() == nil then

end
end
end
end
Ням
Мой аддон: steamcommunity.com/...ils/?id=671144274
[свернуть]

Оффлайн ZLOY

  • Супермодератор
  • 368
  • Мощь: 4
Re: [Pick] Рандомим героя
« Ответ #1 : 19-01-2017, 17:04:55 »
Код
PlayerResource:GetPlayer(i):MakeRandomHeroSelection()

Оффлайн EnDronist

  • 222
  • Мощь: 1
  • Перфекционист-максималист
Re: [Pick] Рандомим героя
« Ответ #2 : 19-01-2017, 17:16:55 »
ZLOY,
Код
[   Server               ]: SV: PlayerID 0 was asked to make a random hero selection but randoming isn't enabled and !bForce
Ням
Мой аддон: steamcommunity.com/...ils/?id=671144274
[свернуть]

Оффлайн ZLOY

  • Супермодератор
  • 368
  • Мощь: 4
Re: [Pick] Рандомим героя
« Ответ #3 : 19-01-2017, 17:26:58 »
Volvo может, да.
Попробуй так мб
Код
local heroList = {"hero_name1","hero_name2","hero_name3"}
local i = RandomInt(1,#heroList)
local heroName = heroList[i]
CreateHeroForPlayer(heroName,player)
table.remove(heroList,i) -- для того чтобы герои не повторялись

Оффлайн ZLOY

  • Супермодератор
  • 368
  • Мощь: 4
Re: [Pick] Рандомим героя
« Ответ #4 : 19-01-2017, 17:30:57 »
Только heroList не local, а где-то один раз объяви, а то герои таки будут повторяться

Оффлайн EnDronist

  • 222
  • Мощь: 1
  • Перфекционист-максималист
Re: [Pick] Рандомим героя
« Ответ #5 : 19-01-2017, 17:46:16 »
Только heroList не local, а где-то один раз объяви, а то герои таки будут повторяться
Так?:
Код
			local heroList
heroList = {"npc_dota_hero_razor","npc_dota_hero_razor","npc_dota_hero_razor"}
local i = RandomInt(1,#heroList)
local heroName = heroList[i]
CreateHeroForPlayer(heroName,PlayerResource:GetPlayer(i))
table.remove(heroList,i)
« Последнее редактирование: 19-01-2017, 17:49:57 от EnDronist »
Ням
Мой аддон: steamcommunity.com/...ils/?id=671144274
[свернуть]

Оффлайн ZLOY

  • Супермодератор
  • 368
  • Мощь: 4
Re: [Pick] Рандомим героя
« Ответ #6 : 19-01-2017, 17:48:46 »
heroList вынеси из цикла
или вообще из функции

Оффлайн EnDronist

  • 222
  • Мощь: 1
  • Перфекционист-максималист
Re: [Pick] Рандомим героя
« Ответ #7 : 19-01-2017, 17:55:36 »
ZLOY, Ничего не происходит вообще. Мб потому что в файле
dota_npc_units.txt
нет героев?
Код
function CAddonTemplateGameMode:InitGameMode()
print( "Template addon is loaded." )
_G.heroes_done = false
_G.heroList = {"npc_dota_hero_razor","npc_dota_hero_razor","npc_dota_hero_razor"}
GameRules:GetGameModeEntity():SetThink( "OnThink", self, "GlobalThink", 2 )
CustomGameEventManager:RegisterListener("custom_gamemode", OnCustomGamemodeChanged )
end
Код
      if _G.heroes_done == false then
         for i=0,9 do
            if PlayerResource:GetPlayer(i) ~= nil then
               if PlayerResource:GetPlayer(i):GetAssignedHero() == nil then
                  local i = RandomInt(1,#heroList)
                  local heroName = _G.heroList[i]
                  CreateHeroForPlayer(heroName,PlayerResource:GetPlayer(i))
                  table.remove(heroList,i)
               end
            end
         end
         _G.heroes_done = true
      end
« Последнее редактирование: 19-01-2017, 17:57:40 от EnDronist »
Ням
Мой аддон: steamcommunity.com/...ils/?id=671144274
[свернуть]

Оффлайн ZLOY

  • Супермодератор
  • 368
  • Мощь: 4
Re: [Pick] Рандомим героя
« Ответ #8 : 19-01-2017, 18:01:57 »
В herolist.txt может отключен разор?
А так хз, тебе самому придется разбираться наверно)

Оффлайн EnDronist

  • 222
  • Мощь: 1
  • Перфекционист-максималист
Re: [Pick] Рандомим героя
« Ответ #9 : 19-01-2017, 18:09:11 »
ZLOY, Герой рандомится только во время CDOTA_Hud_Main::EventGameRulesStateChanged DOTA_GAMERULES_STATE_HERO_SELECTION
У меня сейчас получилось с помощью MakeRandomHeroSelection()
Ням
Мой аддон: steamcommunity.com/...ils/?id=671144274
[свернуть]