474 lines
16 KiB
Plaintext
474 lines
16 KiB
Plaintext
|
---remove spawn zaton_mercenary_1_squad
|
||
|
|
||
|
|
||
|
|
||
|
|
||
|
local HI = has_alife_info
|
||
|
local GI = give_info
|
||
|
local DI = disable_info
|
||
|
function NI(str)
|
||
|
return not (has_alife_info(str))
|
||
|
end
|
||
|
local spawn_squad = dialogs_brotherhood.spawn_squad
|
||
|
------- GENERAL Functions --------
|
||
|
function actor_on_first_update()
|
||
|
marlo_stanfield_init()
|
||
|
chris_partlow_init()
|
||
|
---flavio_becca_init()
|
||
|
---nr_ecologist_rydzyk_init()
|
||
|
---nr_ecologist_1_init()
|
||
|
---nr_ecologist_2_init()
|
||
|
---nr_ecologist_3_init()
|
||
|
vybegallo_init()
|
||
|
sasha_tolstoy_init()
|
||
|
bellerophon_init()
|
||
|
---erast_fandorin_init()
|
||
|
---ac_pri_medic_monolith_init()
|
||
|
end
|
||
|
|
||
|
|
||
|
|
||
|
function on_game_start()
|
||
|
RegisterScriptCallback("actor_on_first_update",actor_on_first_update)
|
||
|
RegisterScriptCallback("npc_on_net_spawn", npc_on_net_spawn_1)
|
||
|
RegisterScriptCallback("npc_on_net_spawn", npc_on_net_spawn_2)
|
||
|
RegisterScriptCallback("npc_on_net_spawn", npc_on_net_spawn_3)
|
||
|
RegisterScriptCallback("npc_on_net_spawn", npc_on_net_spawn_4)
|
||
|
RegisterScriptCallback("npc_on_net_spawn", npc_on_net_spawn_5)
|
||
|
RegisterScriptCallback("npc_on_net_spawn", npc_on_net_spawn_6)
|
||
|
RegisterScriptCallback("npc_on_net_spawn", npc_on_net_spawn_7)
|
||
|
end
|
||
|
|
||
|
function ac_pri_medic_monolith_init()
|
||
|
if (NI("ac_pri_medic_monolith_init")) then
|
||
|
local pos_1 = vector():set( -14.302313804626,0.84455877542496,198.07749938965 )
|
||
|
if not (get_story_se_object("ac_pri_medic_monolith_squad")) then
|
||
|
local se_squad = spawn_squad("ac_pri_medic_monolith_squad", pos_1, 85652, 2985)
|
||
|
end
|
||
|
if (get_story_se_object("ac_pri_medic_monolith_squad")) then
|
||
|
GI("ac_pri_medic_monolith_init")
|
||
|
end
|
||
|
end
|
||
|
end
|
||
|
|
||
|
function marlo_stanfield_init()
|
||
|
if HI("bar_deactivate_radar_done") then
|
||
|
if (NI("marlo_stanfield_init")) then
|
||
|
if not (get_story_se_object("marlo_stanfield")) then
|
||
|
local pos = vector():set( -7.0992422103882,23.103616714478,245.94242858887 )
|
||
|
local se_obj = alife_create( "marlo_stanfield", pos, 703991, 4556 )
|
||
|
|
||
|
|
||
|
end
|
||
|
if (get_story_se_object("marlo_stanfield")) then
|
||
|
GI("marlo_stanfield_init")
|
||
|
end
|
||
|
end
|
||
|
end
|
||
|
end
|
||
|
|
||
|
function chris_partlow_init()
|
||
|
if HI("bar_deactivate_radar_done") then
|
||
|
if (NI("chris_partlow_init")) then
|
||
|
if not (get_story_se_object("chris_partlow")) then
|
||
|
local pos = vector():set( -9.5265302658081,23.103614807129,245.18560791016 )
|
||
|
local se_obj = alife_create( "chris_partlow", pos, 699550, 4556 )
|
||
|
|
||
|
end
|
||
|
if (get_story_se_object("chris_partlow")) then
|
||
|
GI("chris_partlow_init")
|
||
|
end
|
||
|
end
|
||
|
end
|
||
|
end
|
||
|
|
||
|
function bellerophon_init()
|
||
|
if (NI("bellerophon_init")) then
|
||
|
if not (get_story_se_object("bellerophon_squad")) then
|
||
|
local smart = SIMBOARD.smarts_by_names["gar_smart_terrain_3_5"]
|
||
|
local squad = SIMBOARD:create_squad(smart,"bellerophon_squad")
|
||
|
end
|
||
|
if (get_story_se_object("bellerophon_squad")) then
|
||
|
GI("bellerophon_init")
|
||
|
end
|
||
|
end
|
||
|
end
|
||
|
function erast_fandorin_init()
|
||
|
if (NI("erast_fandorin_init")) then
|
||
|
if not (get_story_se_object("erast_fandorin_squad")) then
|
||
|
local smart = SIMBOARD.smarts_by_names["yan_smart_terrain_6_4"]
|
||
|
local squad = SIMBOARD:create_squad(smart,"erast_fandorin_squad")
|
||
|
end
|
||
|
if (get_story_se_object("erast_fandorin_squad")) then
|
||
|
GI("erast_fandorin_init")
|
||
|
end
|
||
|
end
|
||
|
end
|
||
|
|
||
|
function flavio_becca_init()
|
||
|
if (NI("flavio_becca_init")) then
|
||
|
if not (get_story_se_object("flavio_becca_squad")) then
|
||
|
local smart = SIMBOARD.smarts_by_names["jup_b41"]
|
||
|
local squad = SIMBOARD:create_squad(smart,"flavio_becca_squad")
|
||
|
end
|
||
|
if (get_story_se_object("flavio_becca_squad")) then
|
||
|
GI("flavio_becca_init")
|
||
|
end
|
||
|
end
|
||
|
end
|
||
|
|
||
|
function nr_ecologist_rydzyk_init()
|
||
|
if (NI("nr_ecologist_rydzyk_init")) then
|
||
|
if not (get_story_se_object("nr_ecologist_rydzyk_squad")) then
|
||
|
local smart = SIMBOARD.smarts_by_names["yan_smart_terrain_6_4"]
|
||
|
local squad = SIMBOARD:create_squad(smart,"nr_ecologist_rydzyk_squad")
|
||
|
end
|
||
|
if (get_story_se_object("nr_ecologist_rydzyk_squad")) then
|
||
|
GI("nr_ecologist_rydzyk_init")
|
||
|
end
|
||
|
end
|
||
|
end
|
||
|
|
||
|
function nr_ecologist_1_init()
|
||
|
if (NI("nr_ecologist_1_init")) then
|
||
|
if not (get_story_se_object("nr_ecologist_1_squad")) then
|
||
|
local smart = SIMBOARD.smarts_by_names["yan_smart_terrain_6_4"]
|
||
|
local squad = SIMBOARD:create_squad(smart,"nr_ecologist_1_squad")
|
||
|
end
|
||
|
if (get_story_se_object("nr_ecologist_1_squad")) then
|
||
|
GI("nr_ecologist_1_init")
|
||
|
end
|
||
|
end
|
||
|
end
|
||
|
|
||
|
function nr_ecologist_2_init()
|
||
|
if (NI("nr_ecologist_2_init")) then
|
||
|
if not (get_story_se_object("nr_ecologist_2_squad")) then
|
||
|
local smart = SIMBOARD.smarts_by_names["yan_smart_terrain_6_4"]
|
||
|
local squad = SIMBOARD:create_squad(smart,"nr_ecologist_2_squad")
|
||
|
end
|
||
|
if (get_story_se_object("nr_ecologist_2_squad")) then
|
||
|
GI("nr_ecologist_2_init")
|
||
|
end
|
||
|
end
|
||
|
end
|
||
|
|
||
|
function nr_ecologist_3_init()
|
||
|
if (NI("nr_ecologist_3_init")) then
|
||
|
if not (get_story_se_object("nr_ecologist_3_squad")) then
|
||
|
local smart = SIMBOARD.smarts_by_names["jup_b41"]
|
||
|
local squad = SIMBOARD:create_squad(smart,"nr_ecologist_3_squad")
|
||
|
end
|
||
|
if (get_story_se_object("nr_ecologist_3_squad")) then
|
||
|
GI("nr_ecologist_3_init")
|
||
|
end
|
||
|
end
|
||
|
end
|
||
|
|
||
|
function sasha_tolstoy_init()
|
||
|
if (NI("sasha_tolstoy_init")) then
|
||
|
if not (get_story_se_object("sasha_tolstoy_squad")) then
|
||
|
local smart = SIMBOARD.smarts_by_names["mar_smart_terrain_base"]
|
||
|
local squad = SIMBOARD:create_squad(smart,"sasha_tolstoy_squad")
|
||
|
end
|
||
|
if (get_story_se_object("sasha_tolstoy_squad")) then
|
||
|
GI("sasha_tolstoy_init")
|
||
|
end
|
||
|
end
|
||
|
end
|
||
|
|
||
|
function vybegallo_init()
|
||
|
if (NI("vybegallo_init")) then
|
||
|
if not (get_story_se_object("vybegallo_squad")) then
|
||
|
local smart = SIMBOARD.smarts_by_names["agr_smart_terrain_4_4"]
|
||
|
local squad = SIMBOARD:create_squad(smart,"vybegallo_squad")
|
||
|
end
|
||
|
if (get_story_se_object("vybegallo_squad")) then
|
||
|
GI("vybegallo_init")
|
||
|
end
|
||
|
end
|
||
|
end
|
||
|
|
||
|
|
||
|
function zaton_mercenary_1_init()
|
||
|
if (NI("zaton_mercenary_1_init")) then
|
||
|
if not (get_story_se_object("zaton_mercenary_1_squad")) then
|
||
|
local smart = SIMBOARD.smarts_by_names["zat_b40_smart_terrain"]
|
||
|
local squad = SIMBOARD:create_squad(smart,"zaton_mercenary_1_squad")
|
||
|
end
|
||
|
if (get_story_se_object("zaton_mercenary_1_squad")) then
|
||
|
GI("zaton_mercenary_1_init")
|
||
|
end
|
||
|
end
|
||
|
end
|
||
|
|
||
|
|
||
|
function npc_on_net_spawn_1(npc,se_obj)
|
||
|
local chris_partlow = get_story_object("chris_partlow")
|
||
|
if chris_partlow and npc:id() == chris_partlow:id() then
|
||
|
setup_npc_logic_brotherhood_1()
|
||
|
end
|
||
|
end
|
||
|
|
||
|
function npc_on_net_spawn_2(npc,se_obj)
|
||
|
local marlo_stanfield = get_story_object("marlo_stanfield")
|
||
|
if marlo_stanfield and npc:id() == marlo_stanfield:id() then
|
||
|
setup_npc_logic_brotherhood_2()
|
||
|
end
|
||
|
end
|
||
|
|
||
|
function setup_npc_logic_brotherhood_1()
|
||
|
|
||
|
local npc = get_story_object("chris_partlow")
|
||
|
npc:give_info_portion("npc_not_move")
|
||
|
|
||
|
|
||
|
local ltx_name = "scripts\\brotherhood_npc_control_chris.ltx"
|
||
|
local ltx = ini_file(ltx_name)
|
||
|
if not (ltx) then
|
||
|
log("ERROR: do not have access to scripts\\brotherhood_npc_control_chris.ltx! Make sure you installed properly!")
|
||
|
return
|
||
|
end
|
||
|
|
||
|
local id = npc:id()
|
||
|
local sim = alife()
|
||
|
local se_npc = sim:object(id)
|
||
|
local unreg_id = se_npc and se_npc.m_smart_terrain_id
|
||
|
if (unreg_id and unreg_id ~= 65535) then
|
||
|
local unreg = sim:object(unreg_id)
|
||
|
if (unreg) then
|
||
|
unreg:unregister_npc(se_npc)
|
||
|
end
|
||
|
end
|
||
|
|
||
|
xr_logic.configure_schemes(npc, ltx, ltx_name, modules.stype_stalker, loaded and st.loaded_section_logic or "logic", "")
|
||
|
|
||
|
local section = loaded and st.loaded_active_section or xr_logic.determine_section_to_activate(npc, ltx, "logic", db.actor)
|
||
|
xr_logic.activate_by_section(npc, ltx, section, "", loaded)
|
||
|
--printf("setup complete")
|
||
|
|
||
|
end
|
||
|
|
||
|
function setup_npc_logic_brotherhood_2()
|
||
|
|
||
|
local npc = get_story_object("marlo_stanfield")
|
||
|
npc:give_info_portion("npc_not_move")
|
||
|
|
||
|
|
||
|
local ltx_name = "scripts\\brotherhood_npc_control_marlo.ltx"
|
||
|
local ltx = ini_file(ltx_name)
|
||
|
if not (ltx) then
|
||
|
log("ERROR: do not have access to scripts\\brotherhood_npc_control.ltx! Make sure you installed properly!")
|
||
|
return
|
||
|
end
|
||
|
|
||
|
local id = npc:id()
|
||
|
local sim = alife()
|
||
|
local se_npc = sim:object(id)
|
||
|
local unreg_id = se_npc and se_npc.m_smart_terrain_id
|
||
|
if (unreg_id and unreg_id ~= 65535) then
|
||
|
local unreg = sim:object(unreg_id)
|
||
|
if (unreg) then
|
||
|
unreg:unregister_npc(se_npc)
|
||
|
end
|
||
|
end
|
||
|
|
||
|
xr_logic.configure_schemes(npc, ltx, ltx_name, modules.stype_stalker, loaded and st.loaded_section_logic or "logic", "")
|
||
|
|
||
|
local section = loaded and st.loaded_active_section or xr_logic.determine_section_to_activate(npc, ltx, "logic", db.actor)
|
||
|
xr_logic.activate_by_section(npc, ltx, section, "", loaded)
|
||
|
--printf("setup complete")
|
||
|
|
||
|
end
|
||
|
|
||
|
function npc_on_net_spawn_3(npc,se_obj)
|
||
|
local nr_ambush_1 = get_story_object("nr_ambush_1")
|
||
|
if nr_ambush_1 and npc:id() == nr_ambush_1:id() then
|
||
|
setup_nr_ambush_logic_brotherhood_1()
|
||
|
end
|
||
|
end
|
||
|
function npc_on_net_spawn_4(npc,se_obj)
|
||
|
local nr_ambush_2 = get_story_object("nr_ambush_2")
|
||
|
if nr_ambush_2 and npc:id() == nr_ambush_2:id() then
|
||
|
setup_nr_ambush_logic_brotherhood_2()
|
||
|
end
|
||
|
end
|
||
|
function npc_on_net_spawn_5(npc,se_obj)
|
||
|
local nr_ambush_3 = get_story_object("nr_ambush_3")
|
||
|
if nr_ambush_3 and npc:id() == nr_ambush_3:id() then
|
||
|
setup_nr_ambush_logic_brotherhood_3()
|
||
|
end
|
||
|
end
|
||
|
function npc_on_net_spawn_6(npc,se_obj)
|
||
|
local nr_ambush_4 = get_story_object("nr_ambush_4")
|
||
|
if nr_ambush_4 and npc:id() == nr_ambush_4:id() then
|
||
|
setup_nr_ambush_logic_brotherhood_4()
|
||
|
end
|
||
|
end
|
||
|
function npc_on_net_spawn_7(npc,se_obj)
|
||
|
local nr_ambush_5 = get_story_object("nr_ambush_5")
|
||
|
if nr_ambush_5 and npc:id() == nr_ambush_5:id() then
|
||
|
setup_nr_ambush_logic_brotherhood_5()
|
||
|
end
|
||
|
end
|
||
|
|
||
|
|
||
|
function setup_nr_ambush_logic_brotherhood_1()
|
||
|
|
||
|
local npc = get_story_object("nr_ambush_1")
|
||
|
npc:give_info_portion("npc_not_move")
|
||
|
|
||
|
|
||
|
local ltx_name = "scripts\\brotherhood\\brotherhood_npc_nr_ambush_logic_1.ltx"
|
||
|
local ltx = ini_file(ltx_name)
|
||
|
if not (ltx) then
|
||
|
log("ERROR: do not have access to scripts\\brotherhood\\brotherhood_npc_nr_ambush_logic_1! Make sure you installed properly!")
|
||
|
return
|
||
|
end
|
||
|
|
||
|
local id = npc:id()
|
||
|
local sim = alife()
|
||
|
local se_npc = sim:object(id)
|
||
|
local unreg_id = se_npc and se_npc.m_smart_terrain_id
|
||
|
if (unreg_id and unreg_id ~= 65535) then
|
||
|
local unreg = sim:object(unreg_id)
|
||
|
if (unreg) then
|
||
|
unreg:unregister_npc(se_npc)
|
||
|
end
|
||
|
end
|
||
|
|
||
|
xr_logic.configure_schemes(npc, ltx, ltx_name, modules.stype_stalker, loaded and st.loaded_section_logic or "logic", "")
|
||
|
|
||
|
local section = loaded and st.loaded_active_section or xr_logic.determine_section_to_activate(npc, ltx, "logic", db.actor)
|
||
|
xr_logic.activate_by_section(npc, ltx, section, "", loaded)
|
||
|
--printf("setup complete")
|
||
|
|
||
|
end
|
||
|
|
||
|
function setup_nr_ambush_logic_brotherhood_2()
|
||
|
|
||
|
local npc = get_story_object("nr_ambush_2")
|
||
|
npc:give_info_portion("npc_not_move")
|
||
|
|
||
|
|
||
|
local ltx_name = "scripts\\brotherhood\\brotherhood_npc_nr_ambush_logic_2.ltx"
|
||
|
local ltx = ini_file(ltx_name)
|
||
|
if not (ltx) then
|
||
|
log("ERROR: do not have access to scripts\\brotherhood_npc_nr_ambush_logic.ltx! Make sure you installed properly!")
|
||
|
return
|
||
|
end
|
||
|
|
||
|
local id = npc:id()
|
||
|
local sim = alife()
|
||
|
local se_npc = sim:object(id)
|
||
|
local unreg_id = se_npc and se_npc.m_smart_terrain_id
|
||
|
if (unreg_id and unreg_id ~= 65535) then
|
||
|
local unreg = sim:object(unreg_id)
|
||
|
if (unreg) then
|
||
|
unreg:unregister_npc(se_npc)
|
||
|
end
|
||
|
end
|
||
|
|
||
|
xr_logic.configure_schemes(npc, ltx, ltx_name, modules.stype_stalker, loaded and st.loaded_section_logic or "logic", "")
|
||
|
|
||
|
local section = loaded and st.loaded_active_section or xr_logic.determine_section_to_activate(npc, ltx, "logic", db.actor)
|
||
|
xr_logic.activate_by_section(npc, ltx, section, "", loaded)
|
||
|
--printf("setup complete")
|
||
|
|
||
|
end
|
||
|
|
||
|
function setup_nr_ambush_logic_brotherhood_3()
|
||
|
|
||
|
local npc = get_story_object("nr_ambush_3")
|
||
|
npc:give_info_portion("npc_not_move")
|
||
|
|
||
|
|
||
|
local ltx_name = "scripts\\brotherhood\\brotherhood_npc_nr_ambush_logic_3.ltx"
|
||
|
local ltx = ini_file(ltx_name)
|
||
|
if not (ltx) then
|
||
|
log("ERROR: do not have access to scripts\\brotherhood_npc_nr_ambush_logic.ltx! Make sure you installed properly!")
|
||
|
return
|
||
|
end
|
||
|
|
||
|
local id = npc:id()
|
||
|
local sim = alife()
|
||
|
local se_npc = sim:object(id)
|
||
|
local unreg_id = se_npc and se_npc.m_smart_terrain_id
|
||
|
if (unreg_id and unreg_id ~= 65535) then
|
||
|
local unreg = sim:object(unreg_id)
|
||
|
if (unreg) then
|
||
|
unreg:unregister_npc(se_npc)
|
||
|
end
|
||
|
end
|
||
|
|
||
|
xr_logic.configure_schemes(npc, ltx, ltx_name, modules.stype_stalker, loaded and st.loaded_section_logic or "logic", "")
|
||
|
|
||
|
local section = loaded and st.loaded_active_section or xr_logic.determine_section_to_activate(npc, ltx, "logic", db.actor)
|
||
|
xr_logic.activate_by_section(npc, ltx, section, "", loaded)
|
||
|
--printf("setup complete")
|
||
|
|
||
|
end
|
||
|
|
||
|
function setup_nr_ambush_logic_brotherhood_4()
|
||
|
|
||
|
local npc = get_story_object("nr_ambush_4")
|
||
|
npc:give_info_portion("npc_not_move")
|
||
|
|
||
|
|
||
|
local ltx_name = "scripts\\brotherhood\\brotherhood_npc_nr_ambush_logic_4.ltx"
|
||
|
local ltx = ini_file(ltx_name)
|
||
|
if not (ltx) then
|
||
|
log("ERROR: do not have access to scripts\\brotherhood_npc_nr_ambush_logic.ltx! Make sure you installed properly!")
|
||
|
return
|
||
|
end
|
||
|
|
||
|
local id = npc:id()
|
||
|
local sim = alife()
|
||
|
local se_npc = sim:object(id)
|
||
|
local unreg_id = se_npc and se_npc.m_smart_terrain_id
|
||
|
if (unreg_id and unreg_id ~= 65535) then
|
||
|
local unreg = sim:object(unreg_id)
|
||
|
if (unreg) then
|
||
|
unreg:unregister_npc(se_npc)
|
||
|
end
|
||
|
end
|
||
|
|
||
|
xr_logic.configure_schemes(npc, ltx, ltx_name, modules.stype_stalker, loaded and st.loaded_section_logic or "logic", "")
|
||
|
|
||
|
local section = loaded and st.loaded_active_section or xr_logic.determine_section_to_activate(npc, ltx, "logic", db.actor)
|
||
|
xr_logic.activate_by_section(npc, ltx, section, "", loaded)
|
||
|
--printf("setup complete")
|
||
|
|
||
|
end
|
||
|
|
||
|
function setup_nr_ambush_logic_brotherhood_5()
|
||
|
|
||
|
local npc = get_story_object("nr_ambush_5")
|
||
|
npc:give_info_portion("npc_not_move")
|
||
|
|
||
|
|
||
|
local ltx_name = "scripts\\brotherhood\\brotherhood_npc_nr_ambush_logic_5.ltx"
|
||
|
local ltx = ini_file(ltx_name)
|
||
|
if not (ltx) then
|
||
|
log("ERROR: do not have access to scripts\\brotherhood_npc_nr_ambush_logic.ltx! Make sure you installed properly!")
|
||
|
return
|
||
|
end
|
||
|
|
||
|
local id = npc:id()
|
||
|
local sim = alife()
|
||
|
local se_npc = sim:object(id)
|
||
|
local unreg_id = se_npc and se_npc.m_smart_terrain_id
|
||
|
if (unreg_id and unreg_id ~= 65535) then
|
||
|
local unreg = sim:object(unreg_id)
|
||
|
if (unreg) then
|
||
|
unreg:unregister_npc(se_npc)
|
||
|
end
|
||
|
end
|
||
|
|
||
|
xr_logic.configure_schemes(npc, ltx, ltx_name, modules.stype_stalker, loaded and st.loaded_section_logic or "logic", "")
|
||
|
|
||
|
local section = loaded and st.loaded_active_section or xr_logic.determine_section_to_activate(npc, ltx, "logic", db.actor)
|
||
|
xr_logic.activate_by_section(npc, ltx, section, "", loaded)
|
||
|
--printf("setup complete")
|
||
|
|
||
|
end
|