--[[
_A_GA_NW_01.lua
SR3 Activity Script
DATE: 12/06/10
AUTHOR: Anne Chilldon
Ryan Slack
]]--
-- *************************
--
-- Data Parameters
--
-- *************************
-- Add/modify the data below to match the activity instance.
-- Do a find/replace on [change_to_activity_name] and replace it with the name of this
-- instance of Guardian Angel.
-- Debug flags --
-- Tweakable Parameters --
_A_GA_NW_01_tweak_params = {
car_speed_override = 60.0,
heli_follow_dist = 25.0,
notoriety_team = "",
notoriety_min_level = 4,
notoriety_max_level = 5,
sniper_weapon_slot = WEAPON_SLOT_SPECIAL,
rpg_weapon_slot = WEAPON_SLOT_EXPLOSIVE,
}
-- Groups --
_A_GA_NW_01_groups = {
protectees = {
name = "ga_nw1_protectee_group",
chars = { "npc_Kinzie", "npc_protectee_guard1", "npc_protectee_guard2", "npc_protectee_guard3" },
},
heli_group = {
name = "ga_nw1_heli_group",
chars = { "npc_heli_pilot" },
vehicle = "veh_player_heli",
},
getaway_group = {
name = "ga_nw1_getaway_group",
chars = { "npc_getawaydriver" },
vehicle = "veh_getawaycar",
},
chase_heli = {
name = "ga_nw1_chase_heli_group",
chars = { "npc_chase_heli_pilot" },
vehicle = "veh_Heli_Chase",
},
chase1 = {
name = "ga_nw1_chase1_group",
chars = { "npc_chase1 001" },
vehicle = "veh_chase1",
},
chase2 = {
name = "ga_nw1_chase2_group",
chars = { "npc_chase2 001" },
vehicle = "veh_chase2",
},
chase3 = {
name = "ga_nw1_chase3_group",
chars = { "npc_chase3 001" },
vehicle = "veh_chase3",
},
chase4 = {
name = "ga_nw1_chase4_group",
chars = { "npc_chase4 001" },
vehicle = "veh_chase4",
},
chase5 = {
name = "ga_nw1_chase5_group",
chars = { "npc_chase5 001" },
vehicle = "veh_chase5",
},
chase6 = {
name = "ga_nw1_chase6_group",
chars = { "npc_chase6 001" },
vehicle = "veh_chase6",
},
chase7 = {
name = "ga_nw1_chase7_group",
chars = { "npc_chase7 001" },
vehicle = "veh_chase7",
},
chase8 = {
name = "ga_nw1_chase8_group",
chars = { "npc_chase8 001" },
vehicle = "veh_chase8",
},
chase9 = {
name = "ga_nw1_chase9_group",
chars = { "npc_chase9 001", "npc_chase9 002" },
vehicle = "veh_chase9",
},
chase10 = {
name = "ga_nw1_chase10_group",
chars = { "npc_chase10 001" },
vehicle = "veh_chase10",
},
chase11 = {
name = "ga_nw1_chase11_group",
chars = { "npc_chase11 001" },
vehicle = "veh_chase11",
},
chase12 = {
name = "ga_nw1_chase12_group",
chars = { "npc_chase12 001", "npc_chase12 002" },
vehicle = "veh_chase12",
},
chase13 = {
name = "ga_nw1_chase13_group",
chars = { "npc_chase13 001", "npc_chase13 002" },
vehicle = "veh_chase13",
},
chase14 = {
name = "ga_nw1_chase14_group",
chars = { "npc_chase14 001" },
vehicle = "veh_chase14",
},
chase15 = {
name = "ga_nw1_chase15_group",
chars = { "npc_chase15 001" },
vehicle = "veh_chase15",
},
chase16 = {
name = "ga_nw1_chase16_group",
chars = { "npc_chase16 001" },
vehicle = "veh_chase16",
},
chase17 = {
name = "ga_nw1_chase17_group",
chars = { "npc_chase17 001" },
vehicle = "veh_chase17",
},
chase18 = {
name = "ga_nw1_chase18_group",
chars = { "npc_chase18 001" },
vehicle = "veh_chase18",
},
chase19 = {
name = "ga_nw1_chase19_group",
chars = { "npc_chase19 001" },
vehicle = "veh_chase19",
},
chase20 = {
name = "ga_nw1_chase20_group",
chars = { "npc_chase20 001" },
vehicle = "veh_chase20",
},
chase21 = {
name = "ga_nw1_chase21_group",
chars = { "npc_chase21 001" },
vehicle = "veh_chase21",
},
chase22 = {
name = "ga_nw1_chase22_group",
chars = { "npc_chase22 001" },
vehicle = "veh_chase22",
},
chase23 = {
name = "ga_nw1_chase23_group",
chars = { "npc_chase23 001" },
vehicle = "veh_chase23",
},
chase24 = {
name = "ga_nw1_chase24_group",
chars = { "npc_chase24 001" },
vehicle = "veh_chase24",
},
chase25 = {
name = "ga_nw1_chase25_group",
chars = { "npc_chase25 001" },
vehicle = "veh_chase25",
},
chase26 = {
name = "ga_nw1_chase26_group",
chars = { "npc_chase26 001" },
vehicle = "veh_chase26",
},
chase27 = {
name = "ga_nw1_chase27_group",
chars = { "npc_chase27 001" },
vehicle = "veh_chase27",
},
chase28 = {
name = "ga_nw1_chase28_group",
chars = { "npc_chase28 001" },
vehicle = "veh_chase28",
},
}
-- Navpoints --
_A_GA_NW_01_navs = {
local_point = "ga_nw1_local_end",
remote_point = "ga_nw1_remote_end",
}
-- Paths --
_A_GA_NW_01_paths = {
script_path_name = "",
getaway_pickup_path = "getaway_pickup_path",
getaway1_path = "getaway1_path",
getaway2a_path = "getaway2a_path",
getaway2b_path = "getaway2b_path",
getaway2c_path = "getaway2c_path",
getaway3a_path = "getaway3a_path",
getaway3b_path = "getaway3b_path",
getaway3c_path = "getaway3c_path",
getaway3d_path = "getaway3d_path",
getaway4a_path = "getaway4a_path",
getaway4b_path = "getaway4b_path",
getaway4c_path = "getaway4c_path",
getaway4d_path = "getaway4d_path",
getaway5a_path = "getaway5a_path",
getaway5b_path = "getaway5b_path",
getaway5c_path = "getaway5c_path",
getaway6a_path = "getaway6a_path",
getaway6b_path = "getaway6b_path",
getaway6c_path = "getaway6c_path",
getaway6d_path = "getaway6d_path",
heli1_path = "heli1_path",
heli2a_path = "heli2a_path",
heli2b_path = "heli2b_path",
heli2c_path = "heli2c_path",
heli3a_path = "heli3a_path",
heli3b_path = "heli3b_path",
heli3c_path = "heli3c_path",
heli3d_path = "heli3d_path",
heli4a_path = "heli4a_path",
heli4b_path = "heli4b_path",
heli4c_path = "heli4c_path",
heli4d_path = "heli4d_path",
heli5a_path = "heli5a_path",
heli5b_path = "heli5b_path",
heli5c_path = "heli5c_path",
heli6a_path = "heli6a_path",
heli6b_path = "heli6b_path",
heli6c_path = "heli6c_path",
heli6d_path = "heli6d_path",
}
-- Triggers --
-- Characters --
-- Vehicles --
-- Mesh Movers --
-- Text --
-- Threads --
_A_GA_NW_01_threads = {
activity_thread = -1,
getaway1_thread = -1,
getaway2a_thread = -1,
getaway2b_thread = -1,
getaway2c_thread = -1,
getaway3a_thread = -1,
getaway3b_thread = -1,
getaway3c_thread = -1,
getaway3d_thread = -1,
getaway4a_thread = -1,
getaway4b_thread = -1,
getaway4c_thread = -1,
getaway4d_thread = -1,
getaway5a_thread = -1,
getaway5b_thread = -1,
getaway5c_thread = -1,
getaway6a_thread = -1,
getaway6b_thread = -1,
getaway6c_thread = -1,
getaway6d_thread = -1,
heli1_thread = -1,
heli2a_thread = -1,
heli2b_thread = -1,
heli2c_thread = -1,
heli3a_thread = -1,
heli3b_thread = -1,
heli3c_thread = -1,
heli3d_thread = -1,
heli4a_thread = -1,
heli4b_thread = -1,
heli4c_thread = -1,
heli4d_thread = -1,
heli5a_thread = -1,
heli5b_thread = -1,
heli5c_thread = -1,
heli6a_thread = -1,
heli6b_thread = -1,
heli6c_thread = -1,
heli6d_thread = -1,
}
-- Checkpoints --
-- Cutscenes --
-- Conversations --
_A_GA_NW_01_convo = {
kinzie_picked_up = {
name = "_A_GA_NW_01_Saints_Arrive",
handle = INVALID_CONVERSATION_HANDLE,
},
enemy_heli = {
name = "_A_GA_NW_01_Enemy_Heli",
handle = INVALID_CONVERSATION_HANDLE,
},
}
-- Other --
_A_GA_NW_01_flags = {
activity_thread_complete = false,
getaway1_thread_complete = false,
getaway2a_thread_complete = false,
getaway2b_thread_complete = false,
getaway2c_thread_complete = false,
getaway3a_thread_complete = false,
getaway3b_thread_complete = false,
getaway3c_thread_complete = false,
getaway3d_thread_complete = false,
getaway4a_thread_complete = false,
getaway4b_thread_complete = false,
getaway4c_thread_complete = false,
getaway4d_thread_complete = false,
getaway5a_thread_complete = false,
getaway5b_thread_complete = false,
getaway5c_thread_complete = false,
getaway6a_thread_complete = false,
getaway6b_thread_complete = false,
getaway6c_thread_complete = false,
getaway6d_thread_complete = false,
heli1_thread_complete = false,
heli2a_thread_complete = false,
heli2b_thread_complete = false,
heli2c_thread_complete = false,
heli3a_thread_complete = false,
heli3b_thread_complete = false,
heli3c_thread_complete = false,
heli3d_thread_complete = false,
heli4a_thread_complete = false,
heli4b_thread_complete = false,
heli4c_thread_complete = false,
heli4d_thread_complete = false,
heli5a_thread_complete = false,
heli5b_thread_complete = false,
heli5c_thread_complete = false,
heli6a_thread_complete = false,
heli6b_thread_complete = false,
heli6c_thread_complete = false,
heli6d_thread_complete = false,
}
_A_GA_NW_01_chase = {
section_01 = {
vehicle_path = "",
heli_path = "",
use_navmesh = true,
},
}
seat_number = 1
_A_GA_NW_01_all_chase_groups = { _A_GA_NW_01_groups.chase1, _A_GA_NW_01_groups.chase2, _A_GA_NW_01_groups.chase3,
_A_GA_NW_01_groups.chase4, _A_GA_NW_01_groups.chase5, _A_GA_NW_01_groups.chase6,
_A_GA_NW_01_groups.chase7, _A_GA_NW_01_groups.chase8, _A_GA_NW_01_groups.chase9,
_A_GA_NW_01_groups.chase10, _A_GA_NW_01_groups.chase11, _A_GA_NW_01_groups.chase12,
_A_GA_NW_01_groups.chase13, _A_GA_NW_01_groups.chase14, _A_GA_NW_01_groups.chase15,
_A_GA_NW_01_groups.chase16, _A_GA_NW_01_groups.chase17, _A_GA_NW_01_groups.chase18,
_A_GA_NW_01_groups.chase19, _A_GA_NW_01_groups.chase20, _A_GA_NW_01_groups.chase21,
_A_GA_NW_01_groups.chase22, _A_GA_NW_01_groups.chase23, _A_GA_NW_01_groups.chase24,
_A_GA_NW_01_groups.chase25, _A_GA_NW_01_groups.chase26, _A_GA_NW_01_groups.chase27,
_A_GA_NW_01_groups.chase28}
-- *************************
--
-- Required Functions
--
-- *************************
-- These functions are required for the activity to run correctly.
-- They can be customized but they should function as outlined in the comments.
-- This is called during the activity setup. This should be used to spawn any required
-- script_groups/npcs/vehicles or other required setup the lua will require later.
-- CALLED FROM CODE
--
-- level_num = The level to start for this instance of guardian angel.
--
function _A_GA_NW_01_start(level_num)
-- Handle any initialization
if (level_num == 1) then
-- Handle starting up level 1 for this activity instance
_A_GA_NW_01_start_lvl_1()
end
end
-- This is the primary function responsible for cleaning up the entire activity
-- CALLED FROM CODE
--
function _A_GA_NW_01_cleanup( )
-- Handle any cleanup
if (group_is_loaded(_A_GA_NW_01_groups.protectees.name))then
group_destroy(_A_GA_NW_01_groups.protectees.name)
end
if (group_is_loaded(_A_GA_NW_01_groups.heli_group.name))then
group_destroy(_A_GA_NW_01_groups.heli_group.name)
end
if (group_is_loaded(_A_GA_NW_01_groups.getaway_group.name))then
on_vehicle_destroyed("", _A_GA_NW_01_groups.getaway_group.vehicle)
group_destroy(_A_GA_NW_01_groups.getaway_group.name)
end
if (group_is_loaded(_A_GA_NW_01_groups.chase_heli.name))then
group_destroy(_A_GA_NW_01_groups.chase_heli.name)
guardian_angel_unregister_script_group(_A_GA_NW_01_groups.chase_heli.name)
end
if (group_is_loaded(_A_GA_NW_01_groups.chase1.name))then
on_vehicle_destroyed("", _A_GA_NW_01_groups.chase1.vehicle)
group_destroy(_A_GA_NW_01_groups.chase1.name)
guardian_angel_unregister_script_group(_A_GA_NW_01_groups.chase1.name)
end
if(group_is_loaded(_A_GA_NW_01_groups.chase2.name))then
on_vehicle_destroyed("", _A_GA_NW_01_groups.chase2.vehicle)
group_destroy(_A_GA_NW_01_groups.chase2.name)
guardian_angel_unregister_script_group(_A_GA_NW_01_groups.chase2.name)
end
if(group_is_loaded(_A_GA_NW_01_groups.chase3.name))then
on_vehicle_destroyed("", _A_GA_NW_01_groups.chase3.vehicle)
group_destroy(_A_GA_NW_01_groups.chase3.name)
guardian_angel_unregister_script_group(_A_GA_NW_01_groups.chase3.name)
end
if(group_is_loaded(_A_GA_NW_01_groups.chase4.name))then
on_vehicle_destroyed("", _A_GA_NW_01_groups.chase4.vehicle)
group_destroy(_A_GA_NW_01_groups.chase4.name)
guardian_angel_unregister_script_group(_A_GA_NW_01_groups.chase4.name)
end
if(group_is_loaded(_A_GA_NW_01_groups.chase5.name))then
on_vehicle_destroyed("", _A_GA_NW_01_groups.chase5.vehicle)
group_destroy(_A_GA_NW_01_groups.chase5.name)
guardian_angel_unregister_script_group(_A_GA_NW_01_groups.chase5.name)
end
if(group_is_loaded(_A_GA_NW_01_groups.chase6.name))then
on_vehicle_destroyed("", _A_GA_NW_01_groups.chase6.vehicle)
group_destroy(_A_GA_NW_01_groups.chase6.name)
guardian_angel_unregister_script_group(_A_GA_NW_01_groups.chase6.name)
end
if(group_is_loaded(_A_GA_NW_01_groups.chase7.name))then
on_vehicle_destroyed("", _A_GA_NW_01_groups.chase7.vehicle)
group_destroy(_A_GA_NW_01_groups.chase7.name)
guardian_angel_unregister_script_group(_A_GA_NW_01_groups.chase7.name)
end
if(group_is_loaded(_A_GA_NW_01_groups.chase8.name))then
on_vehicle_destroyed("", _A_GA_NW_01_groups.chase8.vehicle)
group_destroy(_A_GA_NW_01_groups.chase8.name)
guardian_angel_unregister_script_group(_A_GA_NW_01_groups.chase8.name)
end
if(group_is_loaded(_A_GA_NW_01_groups.chase9.name))then
on_vehicle_destroyed("", _A_GA_NW_01_groups.chase9.vehicle)
group_destroy(_A_GA_NW_01_groups.chase9.name)
guardian_angel_unregister_script_group(_A_GA_NW_01_groups.chase9.name)
end
if(group_is_loaded(_A_GA_NW_01_groups.chase10.name))then
on_vehicle_destroyed("", _A_GA_NW_01_groups.chase10.vehicle)
group_destroy(_A_GA_NW_01_groups.chase10.name)
guardian_angel_unregister_script_group(_A_GA_NW_01_groups.chase10.name)
end
if(group_is_loaded(_A_GA_NW_01_groups.chase11.name))then
on_vehicle_destroyed("", _A_GA_NW_01_groups.chase11.vehicle)
group_destroy(_A_GA_NW_01_groups.chase11.name)
guardian_angel_unregister_script_group(_A_GA_NW_01_groups.chase11.name)
end
if(group_is_loaded(_A_GA_NW_01_groups.chase12.name))then
on_vehicle_destroyed("", _A_GA_NW_01_groups.chase12.vehicle)
group_destroy(_A_GA_NW_01_groups.chase12.name)
guardian_angel_unregister_script_group(_A_GA_NW_01_groups.chase12.name)
end
if(group_is_loaded(_A_GA_NW_01_groups.chase13.name))then
on_vehicle_destroyed("", _A_GA_NW_01_groups.chase13.vehicle)
group_destroy(_A_GA_NW_01_groups.chase13.name)
guardian_angel_unregister_script_group(_A_GA_NW_01_groups.chase13.name)
end
if(group_is_loaded(_A_GA_NW_01_groups.chase14.name))then
on_vehicle_destroyed("", _A_GA_NW_01_groups.chase14.vehicle)
group_destroy(_A_GA_NW_01_groups.chase14.name)
guardian_angel_unregister_script_group(_A_GA_NW_01_groups.chase14.name)
end
if(group_is_loaded(_A_GA_NW_01_groups.chase15.name))then
on_vehicle_destroyed("", _A_GA_NW_01_groups.chase15.vehicle)
group_destroy(_A_GA_NW_01_groups.chase15.name)
guardian_angel_unregister_script_group(_A_GA_NW_01_groups.chase15.name)
end
if(group_is_loaded(_A_GA_NW_01_groups.chase16.name))then
on_vehicle_destroyed("", _A_GA_NW_01_groups.chase16.vehicle)
group_destroy(_A_GA_NW_01_groups.chase16.name)
guardian_angel_unregister_script_group(_A_GA_NW_01_groups.chase16.name)
end
if(group_is_loaded(_A_GA_NW_01_groups.chase17.name))then
on_vehicle_destroyed("", _A_GA_NW_01_groups.chase17.vehicle)
group_destroy(_A_GA_NW_01_groups.chase17.name)
guardian_angel_unregister_script_group(_A_GA_NW_01_groups.chase17.name)
end
if(group_is_loaded(_A_GA_NW_01_groups.chase18.name))then
on_vehicle_destroyed("", _A_GA_NW_01_groups.chase18.vehicle)
group_destroy(_A_GA_NW_01_groups.chase18.name)
guardian_angel_unregister_script_group(_A_GA_NW_01_groups.chase18.name)
end
if(group_is_loaded(_A_GA_NW_01_groups.chase19.name))then
on_vehicle_destroyed("", _A_GA_NW_01_groups.chase19.vehicle)
group_destroy(_A_GA_NW_01_groups.chase19.name)
guardian_angel_unregister_script_group(_A_GA_NW_01_groups.chase19.name)
end
if(group_is_loaded(_A_GA_NW_01_groups.chase20.name))then
on_vehicle_destroyed("", _A_GA_NW_01_groups.chase20.vehicle)
group_destroy(_A_GA_NW_01_groups.chase20.name)
guardian_angel_unregister_script_group(_A_GA_NW_01_groups.chase20.name)
end
if(group_is_loaded(_A_GA_NW_01_groups.chase21.name))then
on_vehicle_destroyed("", _A_GA_NW_01_groups.chase21.vehicle)
group_destroy(_A_GA_NW_01_groups.chase21.name)
guardian_angel_unregister_script_group(_A_GA_NW_01_groups.chase21.name)
end
if(group_is_loaded(_A_GA_NW_01_groups.chase22.name))then
on_vehicle_destroyed("", _A_GA_NW_01_groups.chase22.vehicle)
group_destroy(_A_GA_NW_01_groups.chase22.name)
guardian_angel_unregister_script_group(_A_GA_NW_01_groups.chase22.name)
end
if(group_is_loaded(_A_GA_NW_01_groups.chase23.name))then
on_vehicle_destroyed("", _A_GA_NW_01_groups.chase23.vehicle)
group_destroy(_A_GA_NW_01_groups.chase23.name)
guardian_angel_unregister_script_group(_A_GA_NW_01_groups.chase23.name)
end
if(group_is_loaded(_A_GA_NW_01_groups.chase24.name))then
on_vehicle_destroyed("", _A_GA_NW_01_groups.chase24.vehicle)
group_destroy(_A_GA_NW_01_groups.chase24.name)
guardian_angel_unregister_script_group(_A_GA_NW_01_groups.chase24.name)
end
if(group_is_loaded(_A_GA_NW_01_groups.chase25.name))then
on_vehicle_destroyed("", _A_GA_NW_01_groups.chase25.vehicle)
group_destroy(_A_GA_NW_01_groups.chase25.name)
guardian_angel_unregister_script_group(_A_GA_NW_01_groups.chase25.name)
end
if(group_is_loaded(_A_GA_NW_01_groups.chase26.name))then
on_vehicle_destroyed("", _A_GA_NW_01_groups.chase26.vehicle)
group_destroy(_A_GA_NW_01_groups.chase26.name)
guardian_angel_unregister_script_group(_A_GA_NW_01_groups.chase26.name)
end
if(group_is_loaded(_A_GA_NW_01_groups.chase27.name))then
on_vehicle_destroyed("", _A_GA_NW_01_groups.chase27.vehicle)
group_destroy(_A_GA_NW_01_groups.chase27.name)
guardian_angel_unregister_script_group(_A_GA_NW_01_groups.chase27.name)
end
if(group_is_loaded(_A_GA_NW_01_groups.chase28.name))then
on_vehicle_destroyed("", _A_GA_NW_01_groups.chase28.vehicle)
group_destroy(_A_GA_NW_01_groups.chase28.name)
guardian_angel_unregister_script_group(_A_GA_NW_01_groups.chase28.name)
end
-- Cleanup any existing threads.
for i, thread in pairs(_A_GA_NW_01_threads) do
if ((thread ~= -1) and (thread_check_done(thread) == false)) then
thread_kill(thread)
end
end
helicopters_set_jitter_override()
end
-- *************************
--
-- Callback functions
--
-- *************************
--
-- Lua processing start - These are the functions you reference in the table file to
-- start scripting.
--
function _A_GA_NW_01_init()
inv_weapon_disable_all_but_this_slot(_A_GA_NW_01_tweak_params.sniper_weapon_slot, true)
-- Return true so the activity can continue
return true
end
-- Called from code to start lua processing.
-- IMPORTANT: This should only call the "main" function as a new thread and immediately
-- return true. Doing anything else will break the activity.
--
function _A_GA_NW_01_start_instance()
-- Kick off a thread to process the entire car chase sequence
_A_GA_NW_01_threads.activity_thread = thread_new("_A_GA_NW_01_thread_process_activity")
-- Return true so the activity can continue
return true
end
--
-- Progress Checks - These are how the activity instance knows if lua is complete.
-- Whenever a thread completes, it should mark a bool in
-- _A_GA_NW_01_flags to true. These functions
-- should only return that bool, as anything else could hold
-- up processing.
--
-- Called from code to check if the chase seqeunce has completed
-- IMPORTANT: Do nothing but return the bool that contains the status you are checking.
-- The activity may get held up otherwise.
--
function _A_GA_NW_01_lua_complete()
return _A_GA_NW_01_flags.activity_thread_complete
end
--************** Everything from here up should be copied for every GA lua file. **************--
-- Place any custom functions here for activity processing.
-- *************************
--
-- Thread functions
--
-- *************************
-- Each of these functions are called inside a thread_new("")
-- This is called by _A_GA_NW_01_start_instance() in a new thread.
-- This is responsible for starting scripting. It should run until all functions
-- it calls are complete, and then mark the bool that it has completed.
--
function _A_GA_NW_01_thread_process_activity()
_A_GA_NW_01_PickupKinzie()
_A_GA_NW_01_GetInCar()
_A_GA_NW_01_Heli_Pickup()
-- Intro getaway path
_A_GA_NW_01_threads.heli1_thread = thread_new("_A_GA_NW_01_thread_heli1")
_A_GA_NW_01_threads.getaway1_thread = thread_new("_A_GA_NW_01_thread_getaway1")
while not(_A_GA_NW_01_flags.getaway1_thread_complete and _A_GA_NW_01_flags.heli1_thread_complete)do
-- while not(_A_GA_NW_01_flags.getaway1_thread_complete)do
thread_yield()
end
-- Increment the progress bar
guardian_angel_increment_node_progress()
-----------------------------------------------------
-- Path 2 section
-----------------------------------------------------
_A_GA_NW_01_threads.heli2a_thread = thread_new("_A_GA_NW_01_thread_heli2a")
_A_GA_NW_01_threads.getaway2a_thread = thread_new("_A_GA_NW_01_thread_getaway2a")
_A_GA_NW_01_SetupChase1a()
while not(_A_GA_NW_01_flags.getaway2a_thread_complete)do
thread_yield()
end
-- Increment the progress bar
guardian_angel_increment_node_progress()
_A_GA_NW_01_threads.heli2b_thread = thread_new("_A_GA_NW_01_thread_heli2b")
_A_GA_NW_01_threads.getaway2b_thread = thread_new("_A_GA_NW_01_thread_getaway2b")
_A_GA_NW_01_SetupChase1b()
while not(_A_GA_NW_01_flags.getaway2b_thread_complete)do
thread_yield()
end
-- Increment the progress bar
guardian_angel_increment_node_progress()
_A_GA_NW_01_threads.heli2c_thread = thread_new("_A_GA_NW_01_thread_heli2c")
_A_GA_NW_01_threads.getaway2c_thread = thread_new("_A_GA_NW_01_thread_getaway2c")
_A_GA_NW_01_SetupChase1c()
while not(_A_GA_NW_01_flags.getaway2c_thread_complete)do
thread_yield()
end
-- Increment the progress bar
guardian_angel_increment_node_progress()
---------------------------------------------------------
-- End of Path 2 section
---------------------------------------------------------
-----------------------------------------------------
-- Path 3 section
-----------------------------------------------------
_A_GA_NW_01_threads.heli3a_thread = thread_new("_A_GA_NW_01_thread_heli3a")
_A_GA_NW_01_threads.getaway3a_thread = thread_new("_A_GA_NW_01_thread_getaway3a")
_A_GA_NW_01_SetupChase2a()
-- _A_GA_NW_01_SetupHeliChase()
while not(_A_GA_NW_01_flags.getaway3a_thread_complete)do
thread_yield()
end
-- Increment the progress bar
guardian_angel_increment_node_progress()
_A_GA_NW_01_threads.heli3b_thread = thread_new("_A_GA_NW_01_thread_heli3b")
_A_GA_NW_01_threads.getaway3b_thread = thread_new("_A_GA_NW_01_thread_getaway3b")
_A_GA_NW_01_SetupChase2b()
while not(_A_GA_NW_01_flags.getaway3b_thread_complete)do
thread_yield()
end
-- Increment the progress bar
guardian_angel_increment_node_progress()
_A_GA_NW_01_threads.heli3c_thread = thread_new("_A_GA_NW_01_thread_heli3c")
_A_GA_NW_01_threads.getaway3c_thread = thread_new("_A_GA_NW_01_thread_getaway3c")
_A_GA_NW_01_SetupChase2c()
while not(_A_GA_NW_01_flags.getaway3c_thread_complete)do
thread_yield()
end
-- Increment the progress bar
guardian_angel_increment_node_progress()
_A_GA_NW_01_threads.heli3d_thread = thread_new("_A_GA_NW_01_thread_heli3d")
_A_GA_NW_01_threads.getaway3d_thread = thread_new("_A_GA_NW_01_thread_getaway3d")
_A_GA_NW_01_SetupChase2d()
while not(_A_GA_NW_01_flags.getaway3d_thread_complete)do
thread_yield()
end
-- Increment the progress bar
guardian_angel_increment_node_progress()
---------------------------------------------------------
-- End of Path 3 section
---------------------------------------------------------
-----------------------------------------------------
-- Path 4 section
-----------------------------------------------------
_A_GA_NW_01_threads.heli4a_thread = thread_new("_A_GA_NW_01_thread_heli4a")
_A_GA_NW_01_threads.getaway4a_thread = thread_new("_A_GA_NW_01_thread_getaway4a")
_A_GA_NW_01_SetupChase3a()
while not(_A_GA_NW_01_flags.getaway4a_thread_complete)do
thread_yield()
end
-- Increment the progress bar
guardian_angel_increment_node_progress()
_A_GA_NW_01_threads.heli4b_thread = thread_new("_A_GA_NW_01_thread_heli4b")
_A_GA_NW_01_threads.getaway4b_thread = thread_new("_A_GA_NW_01_thread_getaway4b")
_A_GA_NW_01_SetupChase3b()
while not(_A_GA_NW_01_flags.getaway4b_thread_complete)do
thread_yield()
end
-- Increment the progress bar
guardian_angel_increment_node_progress()
_A_GA_NW_01_threads.heli4c_thread = thread_new("_A_GA_NW_01_thread_heli4c")
_A_GA_NW_01_threads.getaway4c_thread = thread_new("_A_GA_NW_01_thread_getaway4c")
_A_GA_NW_01_SetupChase3c()
while not(_A_GA_NW_01_flags.getaway4c_thread_complete)do
thread_yield()
end
-- Increment the progress bar
guardian_angel_increment_node_progress()
_A_GA_NW_01_threads.heli4d_thread = thread_new("_A_GA_NW_01_thread_heli4d")
_A_GA_NW_01_threads.getaway4d_thread = thread_new("_A_GA_NW_01_thread_getaway4d")
_A_GA_NW_01_SetupChase3d()
while not(_A_GA_NW_01_flags.getaway4d_thread_complete)do
thread_yield()
end
-- Increment the progress bar
guardian_angel_increment_node_progress()
---------------------------------------------------------
-- End of Path 4 section
---------------------------------------------------------
-----------------------------------------------------
-- Path 5 section
-----------------------------------------------------
_A_GA_NW_01_threads.heli5a_thread = thread_new("_A_GA_NW_01_thread_heli5a")
_A_GA_NW_01_threads.getaway5a_thread = thread_new("_A_GA_NW_01_thread_getaway5a")
_A_GA_NW_01_SetupChase4a()
while not(_A_GA_NW_01_flags.getaway5a_thread_complete)do
thread_yield()
end
-- Increment the progress bar
guardian_angel_increment_node_progress()
_A_GA_NW_01_threads.heli5b_thread = thread_new("_A_GA_NW_01_thread_heli5b")
_A_GA_NW_01_threads.getaway5b_thread = thread_new("_A_GA_NW_01_thread_getaway5b")
_A_GA_NW_01_SetupChase4b()
while not(_A_GA_NW_01_flags.getaway5b_thread_complete)do
thread_yield()
end
-- Increment the progress bar
guardian_angel_increment_node_progress()
_A_GA_NW_01_threads.heli5c_thread = thread_new("_A_GA_NW_01_thread_heli5c")
_A_GA_NW_01_threads.getaway5c_thread = thread_new("_A_GA_NW_01_thread_getaway5c")
_A_GA_NW_01_SetupChase4c()
while not(_A_GA_NW_01_flags.getaway5c_thread_complete)do
thread_yield()
end
-- Increment the progress bar
guardian_angel_increment_node_progress()
---------------------------------------------------------
-- End of Path 5 section
---------------------------------------------------------
--[[
-----------------------------------------------------
-- Path 6 section
-----------------------------------------------------
_A_GA_NW_01_threads.heli6a_thread = thread_new("_A_GA_NW_01_thread_heli6a")
_A_GA_NW_01_threads.getaway6a_thread = thread_new("_A_GA_NW_01_thread_getaway6a")
_A_GA_NW_01_SetupChase5a()
while not(_A_GA_NW_01_flags.getaway6a_thread_complete)do
thread_yield()
end
-- Increment the progress bar
guardian_angel_increment_node_progress()
_A_GA_NW_01_threads.heli6b_thread = thread_new("_A_GA_NW_01_thread_heli6b")
_A_GA_NW_01_threads.getaway6b_thread = thread_new("_A_GA_NW_01_thread_getaway6b")
_A_GA_NW_01_SetupChase5b()
while not(_A_GA_NW_01_flags.getaway6b_thread_complete)do
thread_yield()
end
-- Increment the progress bar
guardian_angel_increment_node_progress()
_A_GA_NW_01_threads.heli6c_thread = thread_new("_A_GA_NW_01_thread_heli6c")
_A_GA_NW_01_threads.getaway6c_thread = thread_new("_A_GA_NW_01_thread_getaway6c")
while not(_A_GA_NW_01_flags.getaway6c_thread_complete)do
thread_yield()
end
-- Increment the progress bar
guardian_angel_increment_node_progress()
_A_GA_NW_01_threads.heli6d_thread = thread_new("_A_GA_NW_01_thread_heli6d")
_A_GA_NW_01_threads.getaway6d_thread = thread_new("_A_GA_NW_01_thread_getaway6d")
while not(_A_GA_NW_01_flags.getaway6d_thread_complete)do
thread_yield()
end
-- Increment the progress bar
guardian_angel_increment_node_progress()
---------------------------------------------------------
-- End of Path 6 section
---------------------------------------------------------
]]--
_A_GA_NW_01_flags.activity_thread_complete = true
_A_GA_NW_01_threads.activity_thread = -1
end
function _A_GA_NW_01_thread_getaway1()
delay(1.0)
vehicle_pathfind_to(_A_GA_NW_01_groups.getaway_group.vehicle, _A_GA_NW_01_paths.getaway1_path, true, false)
_A_GA_NW_01_flags.getaway1_thread_complete = true
_A_GA_NW_01_threads.getaway1_thread = -1
end
function _A_GA_NW_01_thread_getaway2a()
vehicle_speed_override(_A_GA_NW_01_groups.getaway_group.vehicle, 30)
vehicle_pathfind_to(_A_GA_NW_01_groups.getaway_group.vehicle, _A_GA_NW_01_paths.getaway2a_path, true, false)
_A_GA_NW_01_flags.getaway2a_thread_complete = true
_A_GA_NW_01_threads.getaway2a_thread = -1
end
function _A_GA_NW_01_thread_getaway2b()
vehicle_speed_override(_A_GA_NW_01_groups.getaway_group.vehicle, 30)
vehicle_pathfind_to(_A_GA_NW_01_groups.getaway_group.vehicle, _A_GA_NW_01_paths.getaway2b_path, true, false)
_A_GA_NW_01_flags.getaway2b_thread_complete = true
_A_GA_NW_01_threads.getaway2b_thread = -1
end
function _A_GA_NW_01_thread_getaway2c()
vehicle_speed_override(_A_GA_NW_01_groups.getaway_group.vehicle, 25)
vehicle_pathfind_to(_A_GA_NW_01_groups.getaway_group.vehicle, _A_GA_NW_01_paths.getaway2c_path, true, false)
_A_GA_NW_01_flags.getaway2c_thread_complete = true
_A_GA_NW_01_threads.getaway2c_thread = -1
end
function _A_GA_NW_01_thread_getaway3a()
vehicle_speed_override(_A_GA_NW_01_groups.getaway_group.vehicle, 25)
vehicle_pathfind_to(_A_GA_NW_01_groups.getaway_group.vehicle, _A_GA_NW_01_paths.getaway3a_path, true, false)
_A_GA_NW_01_flags.getaway3a_thread_complete = true
_A_GA_NW_01_threads.getaway3a_thread = -1
end
function _A_GA_NW_01_thread_getaway3b()
vehicle_speed_override(_A_GA_NW_01_groups.getaway_group.vehicle, 30)
vehicle_pathfind_to(_A_GA_NW_01_groups.getaway_group.vehicle, _A_GA_NW_01_paths.getaway3b_path, true, false)
_A_GA_NW_01_flags.getaway3b_thread_complete = true
_A_GA_NW_01_threads.getaway3b_thread = -1
end
function _A_GA_NW_01_thread_getaway3c()
vehicle_speed_override(_A_GA_NW_01_groups.getaway_group.vehicle, 30)
vehicle_pathfind_to(_A_GA_NW_01_groups.getaway_group.vehicle, _A_GA_NW_01_paths.getaway3c_path, true, false)
_A_GA_NW_01_flags.getaway3c_thread_complete = true
_A_GA_NW_01_threads.getaway3c_thread = -1
end
function _A_GA_NW_01_thread_getaway3d()
vehicle_speed_override(_A_GA_NW_01_groups.getaway_group.vehicle, 25)
vehicle_pathfind_to(_A_GA_NW_01_groups.getaway_group.vehicle, _A_GA_NW_01_paths.getaway3d_path, true, false)
_A_GA_NW_01_flags.getaway3d_thread_complete = true
_A_GA_NW_01_threads.getaway3d_thread = -1
end
function _A_GA_NW_01_thread_getaway4a()
vehicle_speed_override(_A_GA_NW_01_groups.getaway_group.vehicle, 25)
vehicle_pathfind_to(_A_GA_NW_01_groups.getaway_group.vehicle, _A_GA_NW_01_paths.getaway4a_path, true, false)
_A_GA_NW_01_flags.getaway4a_thread_complete = true
_A_GA_NW_01_threads.getaway4a_thread = -1
end
function _A_GA_NW_01_thread_getaway4b()
vehicle_speed_override(_A_GA_NW_01_groups.getaway_group.vehicle, 30)
vehicle_pathfind_to(_A_GA_NW_01_groups.getaway_group.vehicle, _A_GA_NW_01_paths.getaway4b_path, true, false)
_A_GA_NW_01_flags.getaway4b_thread_complete = true
_A_GA_NW_01_threads.getaway4b_thread = -1
end
function _A_GA_NW_01_thread_getaway4c()
vehicle_speed_override(_A_GA_NW_01_groups.getaway_group.vehicle, 30)
vehicle_pathfind_to(_A_GA_NW_01_groups.getaway_group.vehicle, _A_GA_NW_01_paths.getaway4c_path, true, false)
_A_GA_NW_01_flags.getaway4c_thread_complete = true
_A_GA_NW_01_threads.getaway4c_thread = -1
end
function _A_GA_NW_01_thread_getaway4d()
vehicle_speed_override(_A_GA_NW_01_groups.getaway_group.vehicle, 25)
vehicle_pathfind_to(_A_GA_NW_01_groups.getaway_group.vehicle, _A_GA_NW_01_paths.getaway4d_path, true, false)
_A_GA_NW_01_flags.getaway4d_thread_complete = true
_A_GA_NW_01_threads.getaway4d_thread = -1
end
function _A_GA_NW_01_thread_getaway5a()
vehicle_speed_override(_A_GA_NW_01_groups.getaway_group.vehicle, 25)
vehicle_pathfind_to(_A_GA_NW_01_groups.getaway_group.vehicle, _A_GA_NW_01_paths.getaway5a_path, true, false)
_A_GA_NW_01_flags.getaway5a_thread_complete = true
_A_GA_NW_01_threads.getaway5a_thread = -1
end
function _A_GA_NW_01_thread_getaway5b()
vehicle_speed_override(_A_GA_NW_01_groups.getaway_group.vehicle, 30)
vehicle_pathfind_to(_A_GA_NW_01_groups.getaway_group.vehicle, _A_GA_NW_01_paths.getaway5b_path, true, false)
_A_GA_NW_01_flags.getaway5b_thread_complete = true
_A_GA_NW_01_threads.getaway5b_thread = -1
end
function _A_GA_NW_01_thread_getaway5c()
vehicle_speed_override(_A_GA_NW_01_groups.getaway_group.vehicle, 25)
vehicle_pathfind_to(_A_GA_NW_01_groups.getaway_group.vehicle, _A_GA_NW_01_paths.getaway5c_path, true, false)
_A_GA_NW_01_flags.getaway5c_thread_complete = true
_A_GA_NW_01_threads.getaway5c_thread = -1
end
function _A_GA_NW_01_thread_getaway6a()
vehicle_speed_override(_A_GA_NW_01_groups.getaway_group.vehicle, 30)
vehicle_pathfind_to(_A_GA_NW_01_groups.getaway_group.vehicle, _A_GA_NW_01_paths.getaway6a_path, true, false)
_A_GA_NW_01_flags.getaway6a_thread_complete = true
_A_GA_NW_01_threads.getaway6a_thread = -1
end
function _A_GA_NW_01_thread_getaway6b()
vehicle_speed_override(_A_GA_NW_01_groups.getaway_group.vehicle, 30)
vehicle_pathfind_to(_A_GA_NW_01_groups.getaway_group.vehicle, _A_GA_NW_01_paths.getaway6b_path, true, false)
_A_GA_NW_01_flags.getaway6b_thread_complete = true
_A_GA_NW_01_threads.getaway6b_thread = -1
end
function _A_GA_NW_01_thread_getaway6c()
vehicle_speed_override(_A_GA_NW_01_groups.getaway_group.vehicle, 30)
vehicle_pathfind_to(_A_GA_NW_01_groups.getaway_group.vehicle, _A_GA_NW_01_paths.getaway6c_path, true, false)
_A_GA_NW_01_flags.getaway6c_thread_complete = true
_A_GA_NW_01_threads.getaway6c_thread = -1
end
function _A_GA_NW_01_thread_getaway6d()
vehicle_speed_override(_A_GA_NW_01_groups.getaway_group.vehicle, 35)
vehicle_pathfind_to(_A_GA_NW_01_groups.getaway_group.vehicle, _A_GA_NW_01_paths.getaway6d_path, true, false)
_A_GA_NW_01_flags.getaway6d_thread_complete = true
_A_GA_NW_01_threads.getaway6d_thread = -1
end
function _A_GA_NW_01_thread_heli1()
--Give the players time to get into the helicopter
delay(9.0)
guardian_angel_release_attack_groups()
helicopter_fly_to_direct(_A_GA_NW_01_groups.heli_group.vehicle, -1, _A_GA_NW_01_paths.heli1_path)
_A_GA_NW_01_flags.heli1_thread_complete = true
_A_GA_NW_01_threads.heli1_thread = -1
end
function _A_GA_NW_01_thread_heli2a()
helicopter_fly_to_direct_follow_dont_stop(_A_GA_NW_01_groups.heli_group.vehicle, -1, _A_GA_NW_01_groups.getaway_group.vehicle, _A_GA_NW_01_paths.heli2a_path, 5)
_A_GA_NW_01_flags.heli2a_thread_complete = true
_A_GA_NW_01_threads.heli2a_thread = -1
end
function _A_GA_NW_01_thread_heli2b()
helicopter_fly_to_direct_follow_dont_stop(_A_GA_NW_01_groups.heli_group.vehicle, -1, _A_GA_NW_01_groups.getaway_group.vehicle, _A_GA_NW_01_paths.heli2b_path, 5)
_A_GA_NW_01_flags.heli2b_thread_complete = true
_A_GA_NW_01_threads.heli2b_thread = -1
end
function _A_GA_NW_01_thread_heli2c()
helicopter_set_path_orientation(_A_GA_NW_01_groups.heli_group.vehicle, HELI_PF_RIGHT_SIDE_FACE_TARGT, _A_GA_NW_01_groups.getaway_group.vehicle)
helicopter_fly_to_direct_follow_dont_stop(_A_GA_NW_01_groups.heli_group.vehicle, -1, _A_GA_NW_01_groups.getaway_group.vehicle, _A_GA_NW_01_paths.heli2c_path, 10)
_A_GA_NW_01_flags.heli2c_thread_complete = true
_A_GA_NW_01_threads.heli2c_thread = -1
end
function _A_GA_NW_01_thread_heli3a()
helicopter_set_path_orientation(_A_GA_NW_01_groups.heli_group.vehicle, HELI_PF_RIGHT_SIDE_FACE_TARGT, _A_GA_NW_01_groups.getaway_group.vehicle)
helicopter_fly_to_direct_follow_dont_stop(_A_GA_NW_01_groups.heli_group.vehicle, -1, _A_GA_NW_01_groups.getaway_group.vehicle, _A_GA_NW_01_paths.heli3a_path, 5)
_A_GA_NW_01_flags.heli3a_thread_complete = true
_A_GA_NW_01_threads.heli3a_thread = -1
end
function _A_GA_NW_01_thread_heli3b()
helicopter_set_path_orientation(_A_GA_NW_01_groups.heli_group.vehicle, HELI_PF_RIGHT_SIDE_FACE_TARGT, _A_GA_NW_01_groups.getaway_group.vehicle)
helicopter_fly_to_direct_follow_dont_stop(_A_GA_NW_01_groups.heli_group.vehicle, -1, _A_GA_NW_01_groups.getaway_group.vehicle, _A_GA_NW_01_paths.heli3b_path, 10)
_A_GA_NW_01_flags.heli3b_thread_complete = true
_A_GA_NW_01_threads.heli3b_thread = -1
end
function _A_GA_NW_01_thread_heli3c()
helicopter_set_path_orientation(_A_GA_NW_01_groups.heli_group.vehicle, HELI_PF_FACE_ALONG_PATH, _A_GA_NW_01_groups.getaway_group.vehicle)
helicopter_fly_to_direct_follow_dont_stop(_A_GA_NW_01_groups.heli_group.vehicle, -1, _A_GA_NW_01_groups.getaway_group.vehicle, _A_GA_NW_01_paths.heli3c_path, 5)
_A_GA_NW_01_flags.heli3c_thread_complete = true
_A_GA_NW_01_threads.heli3c_thread = -1
end
function _A_GA_NW_01_thread_heli3d()
helicopter_set_path_orientation(_A_GA_NW_01_groups.heli_group.vehicle, HELI_PF_RIGHT_SIDE_FACE_TARGT, _A_GA_NW_01_groups.getaway_group.vehicle)
helicopter_fly_to_direct_follow_dont_stop(_A_GA_NW_01_groups.heli_group.vehicle, -1, _A_GA_NW_01_groups.getaway_group.vehicle, _A_GA_NW_01_paths.heli3d_path, 10)
_A_GA_NW_01_flags.heli3d_thread_complete = true
_A_GA_NW_01_threads.heli3d_thread = -1
end
function _A_GA_NW_01_thread_heli4a()
helicopter_fly_to_direct_follow_dont_stop(_A_GA_NW_01_groups.heli_group.vehicle, -1, _A_GA_NW_01_groups.getaway_group.vehicle, _A_GA_NW_01_paths.heli4a_path, 10)
_A_GA_NW_01_flags.heli4a_thread_complete = true
_A_GA_NW_01_threads.heli4a_thread = -1
end
function _A_GA_NW_01_thread_heli4b()
helicopter_set_path_orientation(_A_GA_NW_01_groups.heli_group.vehicle, HELI_PF_FACE_ALONG_PATH, _A_GA_NW_01_groups.getaway_group.vehicle)
helicopter_fly_to_direct_follow_dont_stop(_A_GA_NW_01_groups.heli_group.vehicle, -1, _A_GA_NW_01_groups.getaway_group.vehicle, _A_GA_NW_01_paths.heli4b_path, 5)
_A_GA_NW_01_flags.heli4b_thread_complete = true
_A_GA_NW_01_threads.heli4b_thread = -1
end
function _A_GA_NW_01_thread_heli4c()
helicopter_fly_to_direct_follow_dont_stop(_A_GA_NW_01_groups.heli_group.vehicle, -1, _A_GA_NW_01_groups.getaway_group.vehicle, _A_GA_NW_01_paths.heli4c_path, 5)
_A_GA_NW_01_flags.heli4c_thread_complete = true
_A_GA_NW_01_threads.heli4c_thread = -1
end
function _A_GA_NW_01_thread_heli4d()
helicopter_set_path_orientation(_A_GA_NW_01_groups.heli_group.vehicle, HELI_PF_RIGHT_SIDE_FACE_TARGT, _A_GA_NW_01_groups.getaway_group.vehicle)
helicopter_fly_to_direct_follow_dont_stop(_A_GA_NW_01_groups.heli_group.vehicle, -1, _A_GA_NW_01_groups.getaway_group.vehicle, _A_GA_NW_01_paths.heli4d_path, 10)
_A_GA_NW_01_flags.heli4d_thread_complete = true
_A_GA_NW_01_threads.heli4d_thread = -1
end
function _A_GA_NW_01_thread_heli5a()
helicopter_set_path_orientation(_A_GA_NW_01_groups.heli_group.vehicle, HELI_PF_RIGHT_SIDE_FACE_TARGT, _A_GA_NW_01_groups.getaway_group.vehicle)
helicopter_fly_to_direct_follow_dont_stop(_A_GA_NW_01_groups.heli_group.vehicle, -1, _A_GA_NW_01_groups.getaway_group.vehicle, _A_GA_NW_01_paths.heli5a_path, 10)
_A_GA_NW_01_flags.heli5a_thread_complete = true
_A_GA_NW_01_threads.heli5a_thread = -1
end
function _A_GA_NW_01_thread_heli5b()
helicopter_set_path_orientation(_A_GA_NW_01_groups.heli_group.vehicle, HELI_PF_RIGHT_SIDE_FACE_TARGT, _A_GA_NW_01_groups.getaway_group.vehicle)
helicopter_fly_to_direct_follow_dont_stop(_A_GA_NW_01_groups.heli_group.vehicle, -1, _A_GA_NW_01_groups.getaway_group.vehicle, _A_GA_NW_01_paths.heli5b_path, 10)
_A_GA_NW_01_flags.heli5b_thread_complete = true
_A_GA_NW_01_threads.heli5b_thread = -1
end
function _A_GA_NW_01_thread_heli5c()
helicopter_set_path_orientation(_A_GA_NW_01_groups.heli_group.vehicle, HELI_PF_RIGHT_SIDE_FACE_TARGT, _A_GA_NW_01_groups.getaway_group.vehicle)
helicopter_fly_to_direct_follow_dont_stop(_A_GA_NW_01_groups.heli_group.vehicle, -1, _A_GA_NW_01_groups.getaway_group.vehicle, _A_GA_NW_01_paths.heli5c_path, 5)
_A_GA_NW_01_flags.heli5c_thread_complete = true
_A_GA_NW_01_threads.heli5c_thread = -1
end
function _A_GA_NW_01_thread_heli6a()
helicopter_set_path_orientation(_A_GA_NW_01_groups.heli_group.vehicle, HELI_PF_FACE_ALONG_PATH, _A_GA_NW_01_groups.getaway_group.vehicle)
helicopter_fly_to_direct_follow_dont_stop(_A_GA_NW_01_groups.heli_group.vehicle, -1, _A_GA_NW_01_groups.getaway_group.vehicle, _A_GA_NW_01_paths.heli6a_path, 5)
_A_GA_NW_01_flags.heli6a_thread_complete = true
_A_GA_NW_01_threads.heli6a_thread = -1
end
function _A_GA_NW_01_thread_heli6b()
helicopter_set_path_orientation(_A_GA_NW_01_groups.heli_group.vehicle, HELI_PF_FACE_ALONG_PATH, _A_GA_NW_01_groups.getaway_group.vehicle)
helicopter_fly_to_direct_follow_dont_stop(_A_GA_NW_01_groups.heli_group.vehicle, -1, _A_GA_NW_01_groups.getaway_group.vehicle, _A_GA_NW_01_paths.heli6b_path, 5)
_A_GA_NW_01_flags.heli6b_thread_complete = true
_A_GA_NW_01_threads.heli6b_thread = -1
end
function _A_GA_NW_01_thread_heli6c()
helicopter_set_path_orientation(_A_GA_NW_01_groups.heli_group.vehicle, HELI_PF_FACE_ALONG_PATH, _A_GA_NW_01_groups.getaway_group.vehicle)
helicopter_fly_to_direct_follow_dont_stop(_A_GA_NW_01_groups.heli_group.vehicle, -1, _A_GA_NW_01_groups.getaway_group.vehicle, _A_GA_NW_01_paths.heli6c_path, 5)
_A_GA_NW_01_flags.heli6c_thread_complete = true
_A_GA_NW_01_threads.heli6c_thread = -1
end
function _A_GA_NW_01_thread_heli6d()
helicopter_set_path_orientation(_A_GA_NW_01_groups.heli_group.vehicle, HELI_PF_FACE_ALONG_PATH, _A_GA_NW_01_groups.getaway_group.vehicle)
helicopter_fly_to_direct_follow_dont_stop(_A_GA_NW_01_groups.heli_group.vehicle, -1, _A_GA_NW_01_groups.getaway_group.vehicle, _A_GA_NW_01_paths.heli6d_path, 5)
_A_GA_NW_01_flags.heli6d_thread_complete = true
_A_GA_NW_01_threads.heli6d_thread = -1
end
-- *************************
--
-- Local functions
--
-- *************************
-- This is called by _A_GA_NW_01_start(level_num) and handles setup for
-- the level 1 instance.
--
function _A_GA_NW_01_start_lvl_1()
if not group_is_loaded(_A_GA_NW_01_groups.heli_group.name)then
group_create(_A_GA_NW_01_groups.heli_group.name, true)
end
vehicle_enter_teleport(_A_GA_NW_01_groups.heli_group.chars[1], _A_GA_NW_01_groups.heli_group.vehicle, 0, true)
vehicle_set_invulnerable(_A_GA_NW_01_groups.heli_group.vehicle)
helicopter_fly_to_do(_A_GA_NW_01_groups.heli_group.vehicle, 2.0, true, _A_GA_NW_01_groups.heli_group.vehicle, false, "", 1.0, true)
helicopters_set_jitter_override(0.01, 0.01)
radio_block(_A_GA_NW_01_groups.heli_group.vehicle)
npc_suppress_persona(_A_GA_NW_01_groups.heli_group.chars[1], true)
end
function _A_GA_NW_01_PickupKinzie()
if not (group_is_loaded(_A_GA_NW_01_groups.getaway_group.name))then
group_create(_A_GA_NW_01_groups.getaway_group.name, true)
end
vehicle_enter_teleport(_A_GA_NW_01_groups.getaway_group.chars[1], _A_GA_NW_01_groups.getaway_group.vehicle, 0, true)
vehicle_suppress_npc_exit(_A_GA_NW_01_groups.getaway_group.vehicle, true)
vehicle_suppress_flipping(_A_GA_NW_01_groups.getaway_group.vehicle)
vehicle_infinite_mass(_A_GA_NW_01_groups.getaway_group.vehicle)
-- Make sure the driver doesn't die from splash damage.
turn_invulnerable(_A_GA_NW_01_groups.getaway_group.chars[1])
delay(1.0)
vehicle_pathfind_to(_A_GA_NW_01_groups.getaway_group.vehicle, _A_GA_NW_01_paths.getaway_pickup_path, true, true)
end
function _A_GA_NW_01_GetInCar()
_A_GA_NW_01_convo.kinzie_picked_up.handle = audio_conversation_load(_A_GA_NW_01_convo.kinzie_picked_up.name)
audio_conversation_play(_A_GA_NW_01_convo.kinzie_picked_up.handle)
on_vehicle_destroyed("_A_GA_NW_01_Car_Killed", _A_GA_NW_01_groups.getaway_group.vehicle)
-- seat_number = 1
-- for i, protectee in pairs (_A_GA_NW_01_groups.protectees.chars)do
-- if not character_is_dead(_A_GA_NW_01_groups.protectees.chars[i])then
-- npc_leash_remove(_A_GA_NW_01_groups.protectees.chars[i])
-- if (seat_number < 4) then
while not (vehicle_enter(_A_GA_NW_01_groups.protectees.chars[1], _A_GA_NW_01_groups.getaway_group.vehicle, 1))do
thread_yield()
end
-- seat_number = seat_number + 1
while not(character_is_in_vehicle(_A_GA_NW_01_groups.protectees.chars[1], _A_GA_NW_01_groups.getaway_group.vehicle))do
thread_yield()
end
-- end
-- end
-- end
vehicle_suppress_npc_exit(_A_GA_NW_01_groups.getaway_group.vehicle, true)
vehicle_suppress_flipping(_A_GA_NW_01_groups.getaway_group.vehicle, true)
vehicle_prevent_explosion_fling(_A_GA_NW_01_groups.getaway_group.vehicle, true)
vehicle_infinite_mass(_A_GA_NW_01_groups.getaway_group.vehicle, true)
vehicle_set_script_hard_goto(_A_GA_NW_01_groups.getaway_group.vehicle, true)
vehicle_prevent_transition_to_ambient(_A_GA_NW_01_groups.getaway_group.vehicle, true)
vehicle_speed_override(_A_GA_NW_01_groups.getaway_group.vehicle, 35)
-- Set Kinzie invulnerable while she is in the car
turn_invulnerable(_A_GA_NW_01_groups.protectees.chars[1])
-- Set unjackable
set_unjackable_flag(_A_GA_NW_01_groups.getaway_group.vehicle, true)
delay(1.0)
end
function _A_GA_NW_01_Heli_Pickup()
-- Show the helicopter
group_show(_A_GA_NW_01_groups.heli_group.name)
camera_restrict_set_active(DISABLE)
-- Fly to pickup the local player
if (coop_is_active() == true) then
if (is_rappelling(REMOTE_PLAYER)) then
rappel_exit(REMOTE_PLAYER, false)
end
vehicle_enter_guardian_angel(REMOTE_PLAYER, _A_GA_NW_01_groups.heli_group.vehicle, 3)
end
if (is_rappelling(LOCAL_PLAYER)) then
rappel_exit(LOCAL_PLAYER, false)
end
vehicle_enter_guardian_angel(LOCAL_PLAYER, _A_GA_NW_01_groups.heli_group.vehicle, 2)
--delay(1.5)
--Keep the helicopter somewhat level
helicopter_set_max_bank_angle(_A_GA_NW_01_groups.heli_group.vehicle, 0.25)
vehicle_speed_override(_A_GA_NW_01_groups.heli_group.vehicle, 60)
end
function _A_GA_NW_01_SetupHeliChase()
if not(group_is_loaded(_A_GA_NW_01_groups.chase_heli.name))then
group_create(_A_GA_NW_01_groups.chase_heli.name)
guardian_angel_register_script_group(_A_GA_NW_01_groups.chase_heli.name)
end
vehicle_enter_teleport(_A_GA_NW_01_groups.chase_heli.chars[1], _A_GA_NW_01_groups.chase_heli.vehicle, 0, true)
while not(character_is_in_vehicle(_A_GA_NW_01_groups.chase_heli.chars[1], _A_GA_NW_01_groups.chase_heli.vehicle))do
thread_yield()
end
vehicle_chase(_A_GA_NW_01_groups.chase_heli.vehicle, _A_GA_NW_01_groups.getaway_group.chars[1])
--delay(2.0)
--helicopter_fly_to_set_goal_direction(_A_GA_NW_01_groups.chase_heli.vehicle, _A_GA_NW_01_groups.getaway_group.vehicle)
--helicopter_go_to_set_target(_A_GA_NW_01_groups.chase_heli.vehicle, _A_GA_NW_01_groups.getaway_group.vehicle)
_A_GA_NW_01_convo.enemy_heli.handle = audio_conversation_load(_A_GA_NW_01_convo.enemy_heli.name)
audio_conversation_play(_A_GA_NW_01_convo.enemy_heli.handle)
end
function _A_GA_NW_01_SetupChase1a()
if not (group_is_loaded(_A_GA_NW_01_groups.chase1.name))then
group_create(_A_GA_NW_01_groups.chase1.name, true)
end
if not (group_is_loaded(_A_GA_NW_01_groups.chase2.name))then
group_create(_A_GA_NW_01_groups.chase2.name, true)
end
vehicle_enter_teleport(_A_GA_NW_01_groups.chase1.chars[1], _A_GA_NW_01_groups.chase1.vehicle, 0, true)
-- vehicle_enter_teleport(_A_GA_NW_01_groups.chase1.chars[2], _A_GA_NW_01_groups.chase1.vehicle, 1, true)
vehicle_enter_teleport(_A_GA_NW_01_groups.chase2.chars[1], _A_GA_NW_01_groups.chase2.vehicle, 0, true)
-- vehicle_enter_teleport(_A_GA_NW_01_groups.chase2.chars[2], _A_GA_NW_01_groups.chase2.vehicle, 1, true)
-- Set drivers invulnerable while they are in the car
turn_invulnerable(_A_GA_NW_01_groups.chase1.chars[1])
turn_invulnerable(_A_GA_NW_01_groups.chase2.chars[1])
on_vehicle_destroyed("_A_GA_NW_01_Enemy_Car_Killed", _A_GA_NW_01_groups.chase1.vehicle)
on_vehicle_destroyed("_A_GA_NW_01_Enemy_Car_Killed", _A_GA_NW_01_groups.chase2.vehicle)
-- Suppress exiting the vehicle
vehicle_suppress_npc_exit(_A_GA_NW_01_groups.chase1.vehicle, true)
vehicle_suppress_npc_exit(_A_GA_NW_01_groups.chase2.vehicle, true)
guardian_angel_register_script_group(_A_GA_NW_01_groups.chase1.name)
vehicle_chase(_A_GA_NW_01_groups.chase1.vehicle, _A_GA_NW_01_groups.protectees.chars[1], false, true)
delay(4.0)
guardian_angel_register_script_group(_A_GA_NW_01_groups.chase2.name)
vehicle_chase(_A_GA_NW_01_groups.chase2.vehicle, _A_GA_NW_01_groups.protectees.chars[1], false, true)
end
function _A_GA_NW_01_SetupChase1b()
if not(group_is_loaded(_A_GA_NW_01_groups.chase3.name))then
group_create(_A_GA_NW_01_groups.chase3.name, true)
end
if not(group_is_loaded(_A_GA_NW_01_groups.chase4.name))then
group_create(_A_GA_NW_01_groups.chase4.name, true)
end
if not(group_is_loaded(_A_GA_NW_01_groups.chase5.name))then
group_create(_A_GA_NW_01_groups.chase5.name, true)
end
vehicle_enter_teleport(_A_GA_NW_01_groups.chase3.chars[1], _A_GA_NW_01_groups.chase3.vehicle, 0, true)
-- vehicle_enter_teleport(_A_GA_NW_01_groups.chase3.chars[2], _A_GA_NW_01_groups.chase3.vehicle, 1, true)
vehicle_enter_teleport(_A_GA_NW_01_groups.chase4.chars[1], _A_GA_NW_01_groups.chase4.vehicle, 0, true)
-- vehicle_enter_teleport(_A_GA_NW_01_groups.chase4.chars[2], _A_GA_NW_01_groups.chase4.vehicle, 1, true)
vehicle_enter_teleport(_A_GA_NW_01_groups.chase5.chars[1], _A_GA_NW_01_groups.chase5.vehicle, 0, true)
-- vehicle_enter_teleport(_A_GA_NW_01_groups.chase5.chars[2], _A_GA_NW_01_groups.chase5.vehicle, 1, true)
-- Set drivers invulnerable while they are in the car
turn_invulnerable(_A_GA_NW_01_groups.chase3.chars[1])
turn_invulnerable(_A_GA_NW_01_groups.chase4.chars[1])
turn_invulnerable(_A_GA_NW_01_groups.chase5.chars[1])
on_vehicle_destroyed("_A_GA_NW_01_Enemy_Car_Killed", _A_GA_NW_01_groups.chase3.vehicle)
on_vehicle_destroyed("_A_GA_NW_01_Enemy_Car_Killed", _A_GA_NW_01_groups.chase4.vehicle)
on_vehicle_destroyed("_A_GA_NW_01_Enemy_Car_Killed", _A_GA_NW_01_groups.chase5.vehicle)
vehicle_suppress_npc_exit(_A_GA_NW_01_groups.chase3.vehicle, true)
vehicle_suppress_npc_exit(_A_GA_NW_01_groups.chase4.vehicle, true)
vehicle_suppress_npc_exit(_A_GA_NW_01_groups.chase5.vehicle, true)
guardian_angel_register_script_group(_A_GA_NW_01_groups.chase3.name)
vehicle_chase(_A_GA_NW_01_groups.chase3.vehicle, _A_GA_NW_01_groups.protectees.chars[1], false, true)
delay(3)
guardian_angel_register_script_group(_A_GA_NW_01_groups.chase4.name)
vehicle_chase(_A_GA_NW_01_groups.chase4.vehicle, _A_GA_NW_01_groups.protectees.chars[1], false, true)
delay(3)
guardian_angel_register_script_group(_A_GA_NW_01_groups.chase5.name)
vehicle_chase(_A_GA_NW_01_groups.chase5.vehicle, _A_GA_NW_01_groups.protectees.chars[1], false, true)
end
function _A_GA_NW_01_SetupChase1c()
if not(group_is_loaded(_A_GA_NW_01_groups.chase6.name))then
group_create(_A_GA_NW_01_groups.chase6.name, true)
end
if not(group_is_loaded(_A_GA_NW_01_groups.chase7.name))then
group_create(_A_GA_NW_01_groups.chase7.name, true)
end
vehicle_enter_teleport(_A_GA_NW_01_groups.chase6.chars[1], _A_GA_NW_01_groups.chase6.vehicle, 0, true)
-- vehicle_enter_teleport(_A_GA_NW_01_groups.chase6.chars[2], _A_GA_NW_01_groups.chase6.vehicle, 1, true)
vehicle_enter_teleport(_A_GA_NW_01_groups.chase7.chars[1], _A_GA_NW_01_groups.chase7.vehicle, 0, true)
-- vehicle_enter_teleport(_A_GA_NW_01_groups.chase7.chars[2], _A_GA_NW_01_groups.chase7.vehicle, 1, true)
on_vehicle_destroyed("_A_GA_NW_01_Enemy_Car_Killed", _A_GA_NW_01_groups.chase6.vehicle)
on_vehicle_destroyed("_A_GA_NW_01_Enemy_Car_Killed", _A_GA_NW_01_groups.chase7.vehicle)
-- Set drivers invulnerable while they are in the car
turn_invulnerable(_A_GA_NW_01_groups.chase6.chars[1])
turn_invulnerable(_A_GA_NW_01_groups.chase7.chars[1])
vehicle_suppress_npc_exit(_A_GA_NW_01_groups.chase6.vehicle, true)
vehicle_suppress_npc_exit(_A_GA_NW_01_groups.chase7.vehicle, true)
guardian_angel_register_script_group(_A_GA_NW_01_groups.chase6.name)
vehicle_chase(_A_GA_NW_01_groups.chase6.vehicle, _A_GA_NW_01_groups.protectees.chars[1], false, true)
delay(2)
guardian_angel_register_script_group(_A_GA_NW_01_groups.chase7.name)
vehicle_chase(_A_GA_NW_01_groups.chase7.vehicle, _A_GA_NW_01_groups.protectees.chars[1], false, true)
end
function _A_GA_NW_01_SetupChase2a()
if not(group_is_loaded(_A_GA_NW_01_groups.chase8.name))then
group_create(_A_GA_NW_01_groups.chase8.name, true)
end
vehicle_enter_teleport(_A_GA_NW_01_groups.chase8.chars[1], _A_GA_NW_01_groups.chase8.vehicle, 0, true)
-- vehicle_enter_teleport(_A_GA_NW_01_groups.chase8.chars[2], _A_GA_NW_01_groups.chase8.vehicle, 1, true)
on_vehicle_destroyed("_A_GA_NW_01_Enemy_Car_Killed", _A_GA_NW_01_groups.chase8.vehicle)
-- Set drivers invulnerable while they are in the car
turn_invulnerable(_A_GA_NW_01_groups.chase8.chars[1])
-- Suppress exiting the vehicle
vehicle_suppress_npc_exit(_A_GA_NW_01_groups.chase8.vehicle, true)
guardian_angel_register_script_group(_A_GA_NW_01_groups.chase8.name)
vehicle_chase(_A_GA_NW_01_groups.chase8.vehicle, _A_GA_NW_01_groups.protectees.chars[1], false, true)
end
function _A_GA_NW_01_SetupChase2b()
-- APC chase!!!
if not(group_is_loaded(_A_GA_NW_01_groups.chase9.name))then
group_create(_A_GA_NW_01_groups.chase9.name, true)
end
vehicle_enter_teleport(_A_GA_NW_01_groups.chase9.chars[1], _A_GA_NW_01_groups.chase9.vehicle, 0, true)
vehicle_enter_teleport(_A_GA_NW_01_groups.chase9.chars[2], _A_GA_NW_01_groups.chase9.vehicle, 1, true)
on_vehicle_destroyed("_A_GA_NW_01_Enemy_Car_Killed", _A_GA_NW_01_groups.chase9.vehicle)
-- Set drivers invulnerable while they are in the car
turn_invulnerable(_A_GA_NW_01_groups.chase9.chars[1])
vehicle_suppress_npc_exit(_A_GA_NW_01_groups.chase9.vehicle, true)
guardian_angel_register_script_group(_A_GA_NW_01_groups.chase9.name)
vehicle_chase(_A_GA_NW_01_groups.chase9.vehicle, _A_GA_NW_01_groups.protectees.chars[1], false, true)
end
function _A_GA_NW_01_SetupChase2c()
if not(group_is_loaded(_A_GA_NW_01_groups.chase10.name))then
group_create(_A_GA_NW_01_groups.chase10.name, true)
end
vehicle_enter_teleport(_A_GA_NW_01_groups.chase10.chars[1], _A_GA_NW_01_groups.chase10.vehicle, 0, true)
-- vehicle_enter_teleport(_A_GA_NW_01_groups.chase10.chars[2], _A_GA_NW_01_groups.chase10.vehicle, 1, true)
on_vehicle_destroyed("_A_GA_NW_01_Enemy_Car_Killed", _A_GA_NW_01_groups.chase10.vehicle)
-- Set drivers invulnerable while they are in the car
-- turn_invulnerable(_A_GA_NW_01_groups.chase10.chars[1])
vehicle_suppress_npc_exit(_A_GA_NW_01_groups.chase10.vehicle, true)
guardian_angel_register_script_group(_A_GA_NW_01_groups.chase10.name)
vehicle_chase(_A_GA_NW_01_groups.chase10.vehicle, _A_GA_NW_01_groups.protectees.chars[1], false, true)
end
function _A_GA_NW_01_SetupChase2d()
if not(group_is_loaded(_A_GA_NW_01_groups.chase11.name))then
group_create(_A_GA_NW_01_groups.chase11.name, true)
end
vehicle_enter_teleport(_A_GA_NW_01_groups.chase11.chars[1], _A_GA_NW_01_groups.chase11.vehicle, 0, true)
-- vehicle_enter_teleport(_A_GA_NW_01_groups.chase11.chars[2], _A_GA_NW_01_groups.chase11.vehicle, 1, true)
on_vehicle_destroyed("_A_GA_NW_01_Enemy_Car_Killed", _A_GA_NW_01_groups.chase11.vehicle)
-- Set drivers invulnerable while they are in the car
turn_invulnerable(_A_GA_NW_01_groups.chase11.chars[1])
vehicle_suppress_npc_exit(_A_GA_NW_01_groups.chase11.vehicle, true)
guardian_angel_register_script_group(_A_GA_NW_01_groups.chase11.name)
vehicle_chase(_A_GA_NW_01_groups.chase11.vehicle, _A_GA_NW_01_groups.protectees.chars[1], false, true)
end
function _A_GA_NW_01_SetupChase3a()
-- Another APC chase
if not(group_is_loaded(_A_GA_NW_01_groups.chase12.name))then
group_create(_A_GA_NW_01_groups.chase12.name, true)
end
if not(group_is_loaded(_A_GA_NW_01_groups.chase13.name))then
group_create(_A_GA_NW_01_groups.chase13.name, true)
end
vehicle_enter_teleport(_A_GA_NW_01_groups.chase12.chars[1], _A_GA_NW_01_groups.chase12.vehicle, 0, true)
vehicle_enter_teleport(_A_GA_NW_01_groups.chase12.chars[2], _A_GA_NW_01_groups.chase12.vehicle, 1, true)
vehicle_enter_teleport(_A_GA_NW_01_groups.chase13.chars[1], _A_GA_NW_01_groups.chase13.vehicle, 0, true)
vehicle_enter_teleport(_A_GA_NW_01_groups.chase13.chars[2], _A_GA_NW_01_groups.chase13.vehicle, 1, true)
on_vehicle_destroyed("_A_GA_NW_01_Enemy_Car_Killed", _A_GA_NW_01_groups.chase12.vehicle)
on_vehicle_destroyed("_A_GA_NW_01_Enemy_Car_Killed", _A_GA_NW_01_groups.chase13.vehicle)
-- Set drivers invulnerable while they are in the car
turn_invulnerable(_A_GA_NW_01_groups.chase12.chars[1])
turn_invulnerable(_A_GA_NW_01_groups.chase13.chars[1])
-- Suppress exiting the vehicle
vehicle_suppress_npc_exit(_A_GA_NW_01_groups.chase12.vehicle, true)
vehicle_suppress_npc_exit(_A_GA_NW_01_groups.chase13.vehicle, true)
guardian_angel_register_script_group(_A_GA_NW_01_groups.chase12.name)
vehicle_chase(_A_GA_NW_01_groups.chase12.vehicle, _A_GA_NW_01_groups.protectees.chars[1], false, true)
-- delay(4.0)
guardian_angel_register_script_group(_A_GA_NW_01_groups.chase13.name)
vehicle_chase(_A_GA_NW_01_groups.chase13.vehicle, _A_GA_NW_01_groups.protectees.chars[1], false, true)
end
function _A_GA_NW_01_SetupChase3b()
if not(group_is_loaded(_A_GA_NW_01_groups.chase14.name))then
group_create(_A_GA_NW_01_groups.chase14.name, true)
end
vehicle_enter_teleport(_A_GA_NW_01_groups.chase14.chars[1], _A_GA_NW_01_groups.chase14.vehicle, 0, true)
-- vehicle_enter_teleport(_A_GA_NW_01_groups.chase14.chars[2], _A_GA_NW_01_groups.chase14.vehicle, 1, true)
on_vehicle_destroyed("_A_GA_NW_01_Enemy_Car_Killed", _A_GA_NW_01_groups.chase14.vehicle)
-- Set drivers invulnerable while they are in the car
turn_invulnerable(_A_GA_NW_01_groups.chase14.chars[1])
vehicle_suppress_npc_exit(_A_GA_NW_01_groups.chase14.vehicle, true)
-- delay(4.0)
guardian_angel_register_script_group(_A_GA_NW_01_groups.chase14.name)
vehicle_chase(_A_GA_NW_01_groups.chase14.vehicle, _A_GA_NW_01_groups.protectees.chars[1], false, true)
end
function _A_GA_NW_01_SetupChase3c()
if not(group_is_loaded(_A_GA_NW_01_groups.chase15.name))then
group_create(_A_GA_NW_01_groups.chase15.name, true)
end
vehicle_enter_teleport(_A_GA_NW_01_groups.chase15.chars[1], _A_GA_NW_01_groups.chase15.vehicle, 0, true)
-- vehicle_enter_teleport(_A_GA_NW_01_groups.chase15.chars[2], _A_GA_NW_01_groups.chase15.vehicle, 1, true)
on_vehicle_destroyed("_A_GA_NW_01_Enemy_Car_Killed", _A_GA_NW_01_groups.chase15.vehicle)
-- Set drivers invulnerable while they are in the car
turn_invulnerable(_A_GA_NW_01_groups.chase15.chars[1])
vehicle_suppress_npc_exit(_A_GA_NW_01_groups.chase15.vehicle, true)
-- delay(4.0)
guardian_angel_register_script_group(_A_GA_NW_01_groups.chase15.name)
vehicle_chase(_A_GA_NW_01_groups.chase15.vehicle, _A_GA_NW_01_groups.protectees.chars[1], false, true)
end
function _A_GA_NW_01_SetupChase3d()
if not(group_is_loaded(_A_GA_NW_01_groups.chase16.name))then
group_create(_A_GA_NW_01_groups.chase16.name, true)
end
if not(group_is_loaded(_A_GA_NW_01_groups.chase17.name))then
group_create(_A_GA_NW_01_groups.chase17.name, true)
end
vehicle_enter_teleport(_A_GA_NW_01_groups.chase16.chars[1], _A_GA_NW_01_groups.chase16.vehicle, 0, true)
-- vehicle_enter_teleport(_A_GA_NW_01_groups.chase16.chars[2], _A_GA_NW_01_groups.chase16.vehicle, 1, true)
vehicle_enter_teleport(_A_GA_NW_01_groups.chase17.chars[1], _A_GA_NW_01_groups.chase17.vehicle, 0, true)
-- vehicle_enter_teleport(_A_GA_NW_01_groups.chase17.chars[2], _A_GA_NW_01_groups.chase17.vehicle, 1, true)
on_vehicle_destroyed("_A_GA_NW_01_Enemy_Car_Killed", _A_GA_NW_01_groups.chase16.vehicle)
on_vehicle_destroyed("_A_GA_NW_01_Enemy_Car_Killed", _A_GA_NW_01_groups.chase17.vehicle)
-- Set drivers invulnerable while they are in the car
turn_invulnerable(_A_GA_NW_01_groups.chase16.chars[1])
turn_invulnerable(_A_GA_NW_01_groups.chase17.chars[1])
vehicle_suppress_npc_exit(_A_GA_NW_01_groups.chase16.vehicle, true)
vehicle_suppress_npc_exit(_A_GA_NW_01_groups.chase17.vehicle, true)
-- delay(4.0)
guardian_angel_register_script_group(_A_GA_NW_01_groups.chase16.name)
vehicle_chase(_A_GA_NW_01_groups.chase16.vehicle, _A_GA_NW_01_groups.protectees.chars[1], false, true)
delay(4.0)
guardian_angel_register_script_group(_A_GA_NW_01_groups.chase17.name)
vehicle_chase(_A_GA_NW_01_groups.chase17.vehicle, _A_GA_NW_01_groups.protectees.chars[1], false, true)
end
function _A_GA_NW_01_SetupChase4a()
if not(group_is_loaded(_A_GA_NW_01_groups.chase18.name))then
group_create(_A_GA_NW_01_groups.chase18.name, true)
end
vehicle_enter_teleport(_A_GA_NW_01_groups.chase18.chars[1], _A_GA_NW_01_groups.chase18.vehicle, 0, true)
-- vehicle_enter_teleport(_A_GA_NW_01_groups.chase18.chars[2], _A_GA_NW_01_groups.chase18.vehicle, 1, true)
on_vehicle_destroyed("_A_GA_NW_01_Enemy_Car_Killed", _A_GA_NW_01_groups.chase18.vehicle)
-- Set drivers invulnerable while they are in the car
turn_invulnerable(_A_GA_NW_01_groups.chase18.chars[1])
-- Suppress exiting the vehicle
vehicle_suppress_npc_exit(_A_GA_NW_01_groups.chase18.vehicle, true)
guardian_angel_register_script_group(_A_GA_NW_01_groups.chase18.name)
vehicle_chase(_A_GA_NW_01_groups.chase18.vehicle, _A_GA_NW_01_groups.protectees.chars[1], false, true)
end
function _A_GA_NW_01_SetupChase4b()
if not(group_is_loaded(_A_GA_NW_01_groups.chase19.name))then
group_create(_A_GA_NW_01_groups.chase19.name, true)
end
if not(group_is_loaded(_A_GA_NW_01_groups.chase20.name))then
group_create(_A_GA_NW_01_groups.chase20.name, true)
end
vehicle_enter_teleport(_A_GA_NW_01_groups.chase19.chars[1], _A_GA_NW_01_groups.chase19.vehicle, 0, true)
-- vehicle_enter_teleport(_A_GA_NW_01_groups.chase19.chars[2], _A_GA_NW_01_groups.chase19.vehicle, 1, true)
vehicle_enter_teleport(_A_GA_NW_01_groups.chase20.chars[1], _A_GA_NW_01_groups.chase20.vehicle, 0, true)
-- vehicle_enter_teleport(_A_GA_NW_01_groups.chase20.chars[2], _A_GA_NW_01_groups.chase20.vehicle, 1, true)
on_vehicle_destroyed("_A_GA_NW_01_Enemy_Car_Killed", _A_GA_NW_01_groups.chase19.vehicle)
on_vehicle_destroyed("_A_GA_NW_01_Enemy_Car_Killed", _A_GA_NW_01_groups.chase20.vehicle)
-- Set drivers invulnerable while they are in the car
turn_invulnerable(_A_GA_NW_01_groups.chase19.chars[1])
turn_invulnerable(_A_GA_NW_01_groups.chase20.chars[1])
vehicle_suppress_npc_exit(_A_GA_NW_01_groups.chase19.vehicle, true)
vehicle_suppress_npc_exit(_A_GA_NW_01_groups.chase20.vehicle, true)
-- delay(4.0)
guardian_angel_register_script_group(_A_GA_NW_01_groups.chase19.name)
vehicle_chase(_A_GA_NW_01_groups.chase19.vehicle, _A_GA_NW_01_groups.protectees.chars[1], false, true)
delay(4.0)
guardian_angel_register_script_group(_A_GA_NW_01_groups.chase20.name)
vehicle_chase(_A_GA_NW_01_groups.chase20.vehicle, _A_GA_NW_01_groups.protectees.chars[1], false, true)
delay(4.0)
end
function _A_GA_NW_01_SetupChase4c()
if not(group_is_loaded(_A_GA_NW_01_groups.chase21.name))then
group_create(_A_GA_NW_01_groups.chase21.name, true)
end
vehicle_enter_teleport(_A_GA_NW_01_groups.chase21.chars[1], _A_GA_NW_01_groups.chase21.vehicle, 0, true)
-- vehicle_enter_teleport(_A_GA_NW_01_groups.chase21.chars[2], _A_GA_NW_01_groups.chase21.vehicle, 1, true)
on_vehicle_destroyed("_A_GA_NW_01_Enemy_Car_Killed", _A_GA_NW_01_groups.chase21.vehicle)
-- Set drivers invulnerable while they are in the car
turn_invulnerable(_A_GA_NW_01_groups.chase21.chars[1])
vehicle_suppress_npc_exit(_A_GA_NW_01_groups.chase21.vehicle, true)
guardian_angel_register_script_group(_A_GA_NW_01_groups.chase21.name)
vehicle_chase(_A_GA_NW_01_groups.chase21.vehicle, _A_GA_NW_01_groups.protectees.chars[1], false, true)
end
function _A_GA_NW_01_SetupChase5a()
if not(group_is_loaded(_A_GA_NW_01_groups.chase22.name))then
group_create(_A_GA_NW_01_groups.chase22.name, true)
end
if not(group_is_loaded(_A_GA_NW_01_groups.chase23.name))then
group_create(_A_GA_NW_01_groups.chase23.name, true)
end
if not(group_is_loaded(_A_GA_NW_01_groups.chase24.name))then
group_create(_A_GA_NW_01_groups.chase24.name, true)
end
if not(group_is_loaded(_A_GA_NW_01_groups.chase25.name))then
group_create(_A_GA_NW_01_groups.chase25.name, true)
end
if not(group_is_loaded(_A_GA_NW_01_groups.chase26.name))then
group_create(_A_GA_NW_01_groups.chase26.name, true)
end
if not(group_is_loaded(_A_GA_NW_01_groups.chase27.name))then
group_create(_A_GA_NW_01_groups.chase27.name, true)
end
if not(group_is_loaded(_A_GA_NW_01_groups.chase28.name))then
group_create(_A_GA_NW_01_groups.chase28.name, true)
end
on_vehicle_destroyed("_A_GA_NW_01_Enemy_Car_Killed", _A_GA_NW_01_groups.chase22.vehicle)
on_vehicle_destroyed("_A_GA_NW_01_Enemy_Car_Killed", _A_GA_NW_01_groups.chase23.vehicle)
on_vehicle_destroyed("_A_GA_NW_01_Enemy_Car_Killed", _A_GA_NW_01_groups.chase24.vehicle)
on_vehicle_destroyed("_A_GA_NW_01_Enemy_Car_Killed", _A_GA_NW_01_groups.chase25.vehicle)
on_vehicle_destroyed("_A_GA_NW_01_Enemy_Car_Killed", _A_GA_NW_01_groups.chase26.vehicle)
on_vehicle_destroyed("_A_GA_NW_01_Enemy_Car_Killed", _A_GA_NW_01_groups.chase27.vehicle)
on_vehicle_destroyed("_A_GA_NW_01_Enemy_Car_Killed", _A_GA_NW_01_groups.chase28.vehicle)
vehicle_enter_teleport(_A_GA_NW_01_groups.chase22.chars[1], _A_GA_NW_01_groups.chase22.vehicle, 0, true)
-- vehicle_enter_teleport(_A_GA_NW_01_groups.chase22.chars[2], _A_GA_NW_01_groups.chase22.vehicle, 1, true)
vehicle_enter_teleport(_A_GA_NW_01_groups.chase23.chars[1], _A_GA_NW_01_groups.chase23.vehicle, 0, true)
-- vehicle_enter_teleport(_A_GA_NW_01_groups.chase23.chars[2], _A_GA_NW_01_groups.chase23.vehicle, 1, true)
vehicle_enter_teleport(_A_GA_NW_01_groups.chase24.chars[1], _A_GA_NW_01_groups.chase24.vehicle, 0, true)
-- vehicle_enter_teleport(_A_GA_NW_01_groups.chase24.chars[2], _A_GA_NW_01_groups.chase24.vehicle, 1, true)
vehicle_enter_teleport(_A_GA_NW_01_groups.chase25.chars[1], _A_GA_NW_01_groups.chase25.vehicle, 0, true)
-- vehicle_enter_teleport(_A_GA_NW_01_groups.chase25.chars[2], _A_GA_NW_01_groups.chase25.vehicle, 1, true)
vehicle_enter_teleport(_A_GA_NW_01_groups.chase26.chars[1], _A_GA_NW_01_groups.chase26.vehicle, 0, true)
-- vehicle_enter_teleport(_A_GA_NW_01_groups.chase26.chars[2], _A_GA_NW_01_groups.chase26.vehicle, 1, true)
vehicle_enter_teleport(_A_GA_NW_01_groups.chase27.chars[1], _A_GA_NW_01_groups.chase27.vehicle, 0, true)
-- vehicle_enter_teleport(_A_GA_NW_01_groups.chase27.chars[2], _A_GA_NW_01_groups.chase27.vehicle, 1, true)
vehicle_enter_teleport(_A_GA_NW_01_groups.chase28.chars[1], _A_GA_NW_01_groups.chase28.vehicle, 0, true)
-- vehicle_enter_teleport(_A_GA_NW_01_groups.chase28.chars[2], _A_GA_NW_01_groups.chase28.vehicle, 1, true)
-- Suppress exiting the vehicle
vehicle_suppress_npc_exit(_A_GA_NW_01_groups.chase22.vehicle, true)
vehicle_suppress_npc_exit(_A_GA_NW_01_groups.chase23.vehicle, true)
vehicle_suppress_npc_exit(_A_GA_NW_01_groups.chase24.vehicle, true)
vehicle_suppress_npc_exit(_A_GA_NW_01_groups.chase25.vehicle, true)
vehicle_suppress_npc_exit(_A_GA_NW_01_groups.chase26.vehicle, true)
vehicle_suppress_npc_exit(_A_GA_NW_01_groups.chase27.vehicle, true)
vehicle_suppress_npc_exit(_A_GA_NW_01_groups.chase28.vehicle, true)
guardian_angel_register_script_group(_A_GA_NW_01_groups.chase22.name)
vehicle_chase(_A_GA_NW_01_groups.chase22.vehicle, _A_GA_NW_01_groups.protectees.chars[1], false, true)
delay(4.0)
guardian_angel_register_script_group(_A_GA_NW_01_groups.chase23.name)
vehicle_chase(_A_GA_NW_01_groups.chase23.vehicle, _A_GA_NW_01_groups.protectees.chars[1], false, true)
delay(4.0)
guardian_angel_register_script_group(_A_GA_NW_01_groups.chase24.name)
vehicle_chase(_A_GA_NW_01_groups.chase24.vehicle, _A_GA_NW_01_groups.protectees.chars[1], false, true)
delay(4.0)
guardian_angel_register_script_group(_A_GA_NW_01_groups.chase25.name)
vehicle_chase(_A_GA_NW_01_groups.chase25.vehicle, _A_GA_NW_01_groups.protectees.chars[1], false, true)
delay(4.0)
guardian_angel_register_script_group(_A_GA_NW_01_groups.chase26.name)
vehicle_chase(_A_GA_NW_01_groups.chase26.vehicle, _A_GA_NW_01_groups.protectees.chars[1], false, true)
delay(4.0)
guardian_angel_register_script_group(_A_GA_NW_01_groups.chase27.name)
vehicle_chase(_A_GA_NW_01_groups.chase27.vehicle, _A_GA_NW_01_groups.protectees.chars[1], false, true)
delay(4.0)
guardian_angel_register_script_group(_A_GA_NW_01_groups.chase28.name)
vehicle_chase(_A_GA_NW_01_groups.chase28.vehicle, _A_GA_NW_01_groups.protectees.chars[1], false, true)
end
function _A_GA_NW_01_SetupChase5b()
end
function _A_GA_NW_01_Car_Killed()
marker_remove(_A_GA_NW_01_groups.getaway_group.vehicle)
on_vehicle_destroyed("", _A_GA_NW_01_groups.getaway_group.vehicle)
character_kill(_A_GA_NW_01_groups.protectees.chars[1], true)
character_kill(_A_GA_NW_01_groups.getaway_group.chars[1], true)
end
-- Callback for when one of the chase vehicles is destroyed
--
-- vehicle_name: (string) name of the vehicle
--
function _A_GA_NW_01_Enemy_Car_Killed(vehicle_name)
-- clear our callback
on_vehicle_destroyed("", vehicle_name)
-- figure out what vehicle it is
for i, chase_group in pairs(_A_GA_NW_01_all_chase_groups) do
if chase_group.vehicle == vehicle_name then
-- Kill the driver
turn_vulnerable(chase_group.chars[1])
character_kill(chase_group.chars[1])
-- Get out of the loop
return
end
end
end
-- Cleanup all callbacks if leaving activity
--
function _A_GA_NW_01_Cleanup_Chase_Callbacks()
end