Вот что я имею -------------------------------------------------
--[[ IMPORTS ]]
-------------------------------------------------
import("ScarUtil.scar")
import("WXPScarUtil.scar")
_debug_mode = true
g_spawn_squad_table = { "chaos_marine_squad", "chaos_havoc_squad", "chaos_noise_marine_squad",
"chaos_plague_marine_squad", "chaos_rubric_marine_squad", "chaos_squad_khorne_berserker", "chaos_squad_scorpion",
"chaos_squad_land_raider", "chaos_squad_bloodthirster" }
g_spawn_time_interval = 1 --60
g_player_daemon = nil
g_player_daemon_spawn_pos = nil
-------------------------------------------------
--[[ GAME SETUP ]]
-------------------------------------------------
--[[ the OnGameSetup() function is mandatory! ]]
function OnGameSetup()
local i_last_player = World_GetPlayerCount()-1
g_player_daemon = Setup_Player (i_last_player, "Daemons", "chaos_marine_race", 8)
end
function OnGameRestore()
local i_last_player = World_GetPlayerCount()-1
g_player_daemon = World_GetPlayerAt( i_last_player)
g_player_daemon_spawn_pos = Player_GetStartPosition( g_player_daemon )
end
-------------------------------------------------
--[[ ON INITIALIZATION ]]
-------------------------------------------------
function OnInit()
if _debug_mode then
FOW_RevealAll()
end
---
local i_last_player = World_GetPlayerCount()-1
g_player_daemon = World_GetPlayerAt( i_last_player)
Util_GetSquadsByBP( SGroup_GetName(Player_GetSquads(g_player_daemon)), "g_PlayerAI_builders",
"chaos_squad_slave")
g_player_daemon_SG = SGroup_FromName("g_PlayerAI_builders")
if (SGroup_Count(g_player_daemon_SG) > 0) then
SGroup_DestroyAllSquads("g_PlayerAI_builders")
end
SGroup_Clear( g_player_daemon_SG )
Player_RestrictSquad( g_player_daemon, "chaos_squad_slave" )
---
g_player_daemon_spawn_pos = Player_GetStartPosition( g_player_daemon )
Rule_AddInterval(Rule_SpawnDaemons, g_spawn_time_interval)
end
Scar_AddInit(OnInit)
function Rule_SpawnDaemons()
if( Player_IsAlive(g_player_daemon) ) then
local i_squad_index = Select_Squad_Index()
local i_num_squad = 1
if i_squad_index < 9 then
i_num_squad = math.mod(0, 8) + 1
end
--print(i_squad_index)
--print(g_spawn_squad_table[i_squad_index])
Util_CreateSquadsAtPositionRandom(g_player_daemon, "SG_player_daemon", g_spawn_squad_table[i_squad_index],
g_player_daemon_spawn_pos, i_num_squad)
end
end
function Select_Squad_Index()
iBuildProgram1 = 15
iBuildProgram2 = 12
iBuildProgram3 = 12
iBuildProgram4 = 12
iBuildProgram5 = 12
iBuildProgram6 = 12
iBuildProgram7 = 10
iBuildProgram8 = 10
iBuildProgram9 = 5
-- Now choose a program
iBuildProgram2 = iBuildProgram1 + iBuildProgram2
iBuildProgram3 = iBuildProgram2 + iBuildProgram3
iBuildProgram4 = iBuildProgram3 + iBuildProgram4
iBuildProgram5 = iBuildProgram4 + iBuildProgram5
iBuildProgram6 = iBuildProgram5 + iBuildProgram6
iBuildProgram7 = iBuildProgram6 + iBuildProgram7
iBuildProgram8 = iBuildProgram7 + iBuildProgram8
iBuildProgram9 = iBuildProgram8 + iBuildProgram9
local iRandom = World_GetRand(1, iBuildProgram5)
if (iRandom <= iBuildProgram1) then
return 1
elseif (iRandom <= iBuildProgram2) then
return 2
elseif (iRandom <= iBuildProgram3) then
return 3
elseif (iRandom <= iBuildProgram4) then
return 4
elseif (iRandom <= iBuildProgram5) then
return 5
elseif (iRandom <= iBuildProgram6) then
return 6
elseif (iRandom <= iBuildProgram7) then
return 7
elseif (iRandom <= iBuildProgram8) then
return 8
elseif (iRandom <= iBuildProgram9) then
return 9
end
end