В файле sim_faction.script после строк:
cse_alife_smart_zone.update(self)
--printf("Faction %s update, exp [%s]", self.player_name, tostring(self.current_expansion_level))
self:calculate_absolute_power()
Вставляешь в зависимости от задачи:
1.Респавн случайного сквада в случайном месте (по всей зоне)
--Респавн случайного сквада в случайном месте (по всей зоне)
if(db.actor) and self.board.simulation_started and (last_spawn_time_my == nil or game.get_game_time():diffSec(last_spawn_time_my) >= 5*60)
then
local board = sim_board.get_sim_board()
local player_name = "csky"
local player = board.players[player_name]
local spawn_smart = self.board:get_spawn_smart(self)
if spawn_smart ~= nil then
local smart_name = spawn_smart:name()
--' Спауним
if xr_conditions.smart_squad_population(nil,nil,{player_name,smart_name,1}) then
local squad = self.board:create_squad(player.player_name, sim_squad_generic.sim_squad_generic, spawn_smart)
self.board:enter_smart(squad, spawn_smart.id)
squad:update()
news_manager.send_tip( db.actor, "Сквад заспавнен", nil, nil, 10000 )
--' Пересчитываем Team, Squad, Group
for k,v in pairs(squad.squad_npc) do
local obj = alife():object(k)
self.board:setup_squad_and_group(obj)
end
squad:refresh()
last_spawn_time_my = game.get_game_time()
end
end
end
где:
5*60 - интервал времени между спавнами в игровых сек.,
player_name - имя группировки.
2.Респавн случайного сквада в случайном месте (на спавн смартах группировки)
--Респавн случайного сквада в случайном месте (на спавн смартах группировки)
if(db.actor) and self.board.simulation_started and (last_spawn_time_my == nil or game.get_game_time():diffSec(last_spawn_time_my) >= 5*60)
then
local board = sim_board.get_sim_board()
local player_name = "csky"
local player = board.players[player_name]
local spawn_smart = player.board:get_spawn_smart(player)
if spawn_smart ~= nil then
local smart_name = spawn_smart:name()
--' Спауним
if xr_conditions.smart_squad_population(nil,nil,{player_name,smart_name,1}) then
local squad = self.board:create_squad(player.player_name, sim_squad_generic.sim_squad_generic, spawn_smart)
self.board:enter_smart(squad, spawn_smart.id)
squad:update()
news_manager.send_tip( db.actor, "Сквад заспавнен", nil, nil, 10000 )
--' Пересчитываем Team, Squad, Group
for k,v in pairs(squad.squad_npc) do
local obj = alife():object(k)
self.board:setup_squad_and_group(obj)
end
squad:refresh()
last_spawn_time_my = game.get_game_time()
end
end
end
3.Респавн случайного сквада в определенном месте (по имени смарта)
--Респавн случайного сквада в определенном месте (по имени смарта)
if(db.actor) and self.board.simulation_started and (last_spawn_time_my == nil or game.get_game_time():diffSec(last_spawn_time_my) >= 5*60)
then
local board = sim_board.get_sim_board()
local smart_name = "mar_smart_terrain_csky_respawn"
local spawn_smart = board.smarts_by_names[smart_name]
if spawn_smart ~= nil then
local player_name = "csky"
local player = board.players[player_name]
--' Спауним
if xr_conditions.smart_squad_population(nil,nil,{player_name,smart_name,1}) then
local squad = self.board:create_squad(player.player_name, sim_squad_generic.sim_squad_generic, spawn_smart)
self.board:enter_smart(squad, spawn_smart.id)
squad:update()
news_manager.send_tip( db.actor, "Сквад заспавнен", nil, nil, 10000 )
--' Пересчитываем Team, Squad, Group
for k,v in pairs(squad.squad_npc) do
local obj = alife():object(k)
self.board:setup_squad_and_group(obj)
end
squad:refresh()
last_spawn_time_my = game.get_game_time()
end
end
end
где: smart_name - имя смарта для спавна отрядов.
4.Респавн скриптового сквада в определенном месте (по имени смарта)
--Респавн скриптового сквада в определенном месте (по имени смарта)
if(db.actor) and self.board.simulation_started and (last_spawn_time_my == nil or game.get_game_time():diffSec(last_spawn_time_my) >= 5*60*60)
then
local smart_name = "mar_smart_terrain_csky_respawn"
local squad_id = "mar_csky_attack"
local player_name = "csky"
if xr_conditions.smart_squad_population(nil,nil,{player_name,smart_name,1}) then
xr_effects.create_squad(nil,nil,{squad_id,smart_name})
news_manager.send_tip( db.actor, "Сквад заспавнен", nil, nil, 10000 )
last_spawn_time_my = game.get_game_time()
end
end
где: squad_id - идентификатор сквада для спавна.