-- $Id: //depot/Projects/StarWars/Run/Data/Scripts/Story/Story_Rebel_ActIII_M08_SPACE.lua#19 $ --///////////////////////////////////////////////////////////////////////////////////////////////// -- -- (C) Petroglyph Games, Inc. -- -- -- ***** ** * * -- * ** * * * -- * * * * * -- * * * * * * * * -- * * *** ****** * ** **** *** * * * ***** * *** -- * ** * * * ** * ** ** * * * * ** ** ** * -- *** ***** * * * * * * * * ** * * * * -- * * * * * * * * * * * * * * * -- * * * * * * * * * * ** * * * * -- * ** * * ** * ** * * ** * * * * -- ** **** ** * **** ***** * ** *** * * -- * * * -- * * * -- * * * -- * * * * -- **** * * -- --///////////////////////////////////////////////////////////////////////////////////////////////// -- C O N F I D E N T I A L S O U R C E C O D E -- D O N O T D I S T R I B U T E --///////////////////////////////////////////////////////////////////////////////////////////////// -- -- $File: //depot/Projects/StarWars/Run/Data/Scripts/Story/Story_Rebel_ActIII_M08_SPACE.lua $ -- -- Original Author: Eric_Yiskis -- -- $Author: Joseph_Gernert $ -- -- $Change: 36026 $ -- -- $DateTime: 2006/01/05 17:48:43 $ -- -- $Revision: #19 $ -- --///////////////////////////////////////////////////////////////////////////////////////////////// require("PGStoryMode") ------------------------------------------------------------------------------------------------------------------------ -- Definitions -- This function is called once when the script is first created. ------------------------------------------------------------------------------------------------------------------------ function Definitions() DebugMessage("%s -- In Definitions", tostring(Script)) StoryModeEvents = { Rebel_A3_M08_Begin = State_Rebel_A3_M08_Begin ,Rebel_A3_M08_Cargo_Found_Text_02 = State_Rebel_A3_M08_Cargo_Found_Text_02 ,FALCON_SPOTTED1_Reset_Alarm_Message = State_FALCON_SPOTTED1_Reset_Alarm_Message ,FALCON_SPOTTED2_Reset_Alarm_Message = State_FALCON_SPOTTED2_Reset_Alarm_Message ,FALCON_SPOTTED3_Reset_Alarm_Message = State_FALCON_SPOTTED3_Reset_Alarm_Message ,FALCON_SPOTTED4_Reset_Alarm_Message = State_FALCON_SPOTTED4_Reset_Alarm_Message } interceptor_units_1 = { "TIE_BOMBER_SQUADRON" ,"TIE_BOMBER_SQUADRON" ,"TIE_SCOUT_SQUADRON" ,"STAR_DESTROYER_TRACTOR_FIGHTERS" } interceptor_units_2 = { "TARTAN_PATROL_CRUISER" ,"TARTAN_PATROL_CRUISER" ,"TARTAN_PATROL_CRUISER" -- THESE ARE CRASHING THE GAME CURRENTLY -- ,"BROADSIDE_CLASS_CRUISER" -- ,"BROADSIDE_CLASS_CRUISER" } visit_list = { "Victory_Destroyer_No_Fighters" } patrol_marker_names = { "patrol1" ,"patrol2" ,"patrol3" ,"patrol4" ,"patrol5" ,"patrol6" ,"patrol7" ,"patrol8" ,"patrol9" ,"patrol10" ,"patrol11" ,"patrol12" } starbase_marker = nil patrol_marker_count = 12 patrol_markers = {} cargo_range = 150 scanning_range = 600 cargo_scanned = 0 cargo_being_scanned = nil spotted_range = 500 -- This should be slighly greater than the longest sight range by a patroller falcon_spottings = 0 alarm_units = {} alarm_was_activated = false time_to_first_visit = 20 min_time_between_visits = 60 variance_between_visits = 30 duration_of_fighter_assist = 30 traffic_count = 0 num_scanned_to_bring_fett = 5 counter_enough_scanned = 10 flag_okay_to_give_alarm_message = true fog_id = nil end ------------------------------------------------------------------------------------------------------------------------ -- State_Rebel_A3_M08_Begin -- Get the mission started ------------------------------------------------------------------------------------------------------------------------ function State_Rebel_A3_M08_Begin(message) if message == OnEnter then -- Prevent the AI from performing an automatic fog of war reveal for this tactical scenario. -- MessageBox("disallowing ai controlled fog reveal") GlobalValue.Set("Allow_AI_Controlled_Fog_Reveal", 0) --MessageBox("OnEnter State_Rebel_A3_M08_Begin") -- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -- Get Players starbase_marker = Find_Hint("GENERIC_MARKER_SPACE", "starbase") empire = Find_Player("Empire") rebel = Find_Player("Rebel") -- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -- Find all the patrol markers (waypoints) for i,name in pairs(patrol_marker_names) do marker = Find_Hint("GENERIC_MARKER_SPACE", name) if not marker then --MessageBox("Missing patrol marker %s",name) end table.insert(patrol_markers,marker) end --MessageBox("Done finding patrol markers") -- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -- Set up proximity calls to keep patrol moving along prox_range = 300 for i,marker in pairs(patrol_markers) do Register_Prox(marker, Prox_Patrol, prox_range, empire) end --MessageBox("Setup marker proximity calls") -- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -- Set up proximity calls on cargo cargo_list = Find_All_Objects_Of_Type("ORBITAL_RESOURCE_CONTAINER") for i,unit in pairs(cargo_list) do Register_Prox(unit, Prox_Cargo, cargo_range, rebel) unit.Make_Invulnerable(true) end --MessageBox("Set up proximity on resource containers") -- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -- Find the Falcon falcon = Find_First_Object("MILLENNIUM_FALCON") if not falcon then --MessageBox("Couldn't find Millennium Falcon") return end Register_Prox(falcon, Prox_Falcon, spotted_range, empire) -- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -- Periodically send in a Star Destroyer that is refuelling at the starbase interceptor1 = Find_Hint("GENERIC_MARKER_SPACE", "interceptor1") interceptor2 = Find_Hint("GENERIC_MARKER_SPACE", "interceptor2") Register_Timer(Star_Destroyer_Visit,time_to_first_visit) -- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - fett_spawn = Find_Hint("GENERIC_MARKER_SPACE", "fett-spawn") if not fett_spawn then --MessageBox("failed to find fett-spawn") end --DELME --Register_Timer(Bring_Fett, 10) -- this is a comment ----------------------------------------------------------------------------------------------- -- adding radar blips here ----------------------------------------------------------------------------------------------- --Add_Radar_Blip(alarm1, "blip_alarm1") cargo_01 = Find_Hint ("ORBITAL_RESOURCE_CONTAINER", "cargo-01") cargo_02 = Find_Hint ("ORBITAL_RESOURCE_CONTAINER", "cargo-02") cargo_03 = Find_Hint ("ORBITAL_RESOURCE_CONTAINER", "cargo-03") cargo_04 = Find_Hint ("ORBITAL_RESOURCE_CONTAINER", "cargo-04") cargo_05 = Find_Hint ("ORBITAL_RESOURCE_CONTAINER", "cargo-05") cargo_06 = Find_Hint ("ORBITAL_RESOURCE_CONTAINER", "cargo-06") cargo_07 = Find_Hint ("ORBITAL_RESOURCE_CONTAINER", "cargo-07") cargo_08 = Find_Hint ("ORBITAL_RESOURCE_CONTAINER", "cargo-08") cargo_09 = Find_Hint ("ORBITAL_RESOURCE_CONTAINER", "cargo-09") cargo_10 = Find_Hint ("ORBITAL_RESOURCE_CONTAINER", "cargo-10") cargo_11 = Find_Hint ("ORBITAL_RESOURCE_CONTAINER", "cargo-11") cargo_12 = Find_Hint ("ORBITAL_RESOURCE_CONTAINER", "cargo-12") if TestValid(cargo_01) then Add_Radar_Blip(cargo_01, "blip_cargo_01") end if TestValid(cargo_02) then Add_Radar_Blip(cargo_02, "blip_cargo_02") end if TestValid(cargo_03) then Add_Radar_Blip(cargo_03, "blip_cargo_03") end if TestValid(cargo_04) then Add_Radar_Blip(cargo_04, "blip_cargo_04") end if TestValid(cargo_05) then Add_Radar_Blip(cargo_05, "blip_cargo_05") end if TestValid(cargo_06) then Add_Radar_Blip(cargo_06, "blip_cargo_06") end if TestValid(cargo_07) then Add_Radar_Blip(cargo_07, "blip_cargo_07") end if TestValid(cargo_08) then Add_Radar_Blip(cargo_08, "blip_cargo_08") end if TestValid(cargo_09) then Add_Radar_Blip(cargo_09, "blip_cargo_09") end if TestValid(cargo_10) then Add_Radar_Blip(cargo_10, "blip_cargo_10") end if TestValid(cargo_11) then Add_Radar_Blip(cargo_11, "blip_cargo_11") end if TestValid(cargo_12) then Add_Radar_Blip(cargo_12, "blip_cargo_12") end fog_id = FogOfWar.Reveal_All(rebel) end end ------------------------------------------------------------------------------------------------------------------------ -- Star Destroyer Visit functions ------------------------------------------------------------------------------------------------------------------------ function Star_Destroyer_Visit() if alarm_was_activated then return end ReinforceList(visit_list,interceptor2,empire,false,true, true, Star_Destroyer_Arrived) -- Setup next visit; Han should only be able to slip past if he waits for a big gap Register_Timer(Star_Destroyer_Visit, min_time_between_visits + GameRandom(1, variance_between_visits)) end function Star_Destroyer_Arrived(unit_list) Create_Thread("Star_Destroyer_Sequence", unit_list[1]) Register_Prox(unit_list[1], Prox_Visitor, spotted_range, rebel) end function Star_Destroyer_Sequence(star_destroyer) if TestValid(star_destroyer) then BlockOnCommand(star_destroyer.Move_To(starbase_marker)) end -- Every so N star_destroyers to pass through, there's an X% chance that -- fighters on patrol come to assist or guard; giving han a window of easier cargo examining traffic_count = traffic_count + 1 if (traffic_count == 2) then traffic_count = 0 --if (GameRandom(0,1) < 0.5) then --MessageBox("Calling in the fighters") List_Guard(Find_All_Objects_Of_Type("TIE_FIGHTER_SQUADRON"), star_destroyer) Sleep(duration_of_fighter_assist) --MessageBox("Placing fighters back on patrol") List_Random_Patrol(Find_All_Objects_Of_Type("TIE_FIGHTER_SQUADRON")) --end else -- Pause for a refuel at the station or something Sleep(5) end if TestValid(star_destroyer) then BlockOnCommand(star_destroyer.Move_To(interceptor1)) end if TestValid(star_destroyer) then star_destroyer.Hyperspace_Away() end end function List_Guard(list, obj) for k, unit in pairs(list) do if TestValid(unit) and not alarm_units[unit] then unit.Guard_Target(obj) end end end function List_Random_Patrol(list) for k, unit in pairs(list) do if TestValid(unit) then unit.Move_To(patrol_markers[GameRandom(1, table.getn(patrol_markers))]) end end end function Prox_Visitor(prox_obj, trigger_obj) prox_obj.Cancel_Event_Object_In_Range(Prox_Visitor) prox_obj.Attack_Move(falcon) alarm_unit = prox_obj if flag_okay_to_give_alarm_message then flag_okay_to_give_alarm_message = false Alarm_Activated() end end ------------------------------------------------------------------------------------------------------------------------ -- Alarm_Activated - Tie fighters lasted long enough to sound alarm ------------------------------------------------------------------------------------------------------------------------ function Alarm_Activated() if alarm_was_activated then return end --MessageBox("alarm activated") -- Bring in units to intercept Millennium Falcon Story_Event("ALARM_ACTIVATED") alarm_was_activated = true ReinforceList(interceptor_units_1,falcon,empire,false,true, true, List_Attack_Han) ReinforceList(interceptor_units_2,interceptor2,empire,false,true, true, List_Attack_Han) end function List_Attack_Han(unit_list) for i,unit in pairs(unit_list) do unit.Attack_Move(falcon) end end ------------------------------------------------------------------------------------------------------------------------ -- Prox_Falcon - Called when an Empire spots the Millennium Falcon ------------------------------------------------------------------------------------------------------------------------ function Prox_Falcon(prox_obj, trigger_obj) trigger_type = trigger_obj.Get_Type().Get_Name() if trigger_type == "TIE_FIGHTER" then unit = trigger_obj.Get_Parent_Object() elseif trigger_type == "TARTAN_PATROL_CRUISER" then unit = trigger_obj elseif trigger_type == "SLAVE_I" then -- boba fett just wants the kill himself; no reporting to the Empire if not fett_found_han then Create_Thread("Fett_Attack_Han", trigger_obj) end return else DebugMessage("]]]] Falcon spotted by %s",trigger_type) return end --Don't trigger on the same unit... if alarm_units[unit] then return end alarm_units[unit] = 1 --MessageBox("Falcon spotted by tie fighter squadron") falcon_spottings = falcon_spottings + 1 if falcon_spottings == 1 and flag_okay_to_give_alarm_message then flag_okay_to_give_alarm_message = false Story_Event("FALCON_SPOTTED1") end if falcon_spottings == 2 and flag_okay_to_give_alarm_message then flag_okay_to_give_alarm_message = false Story_Event("FALCON_SPOTTED2") end if falcon_spottings == 3 and flag_okay_to_give_alarm_message then flag_okay_to_give_alarm_message = false Story_Event("FALCON_SPOTTED3") end if falcon_spottings == 4 and flag_okay_to_give_alarm_message then flag_okay_to_give_alarm_message = false Story_Event("FALCON_SPOTTED4") -- The unit just reports without bothering to attack first DebugMessage("reporting han without attacking") unit.Move_To(starbase_marker) Register_Timer(Alarm_Activated, 10) else -- The first three times, Han has a chance to take out the unit before it reports Create_Thread("Discover_Then_Report", unit) end end --jdg adding a timer between the bevy of spotted events above function State_FALCON_SPOTTED1_Reset_Alarm_Message(message) if message == OnEnter then flag_okay_to_give_alarm_message = true end end function State_FALCON_SPOTTED2_Reset_Alarm_Message(message) if message == OnEnter then flag_okay_to_give_alarm_message = true end end function State_FALCON_SPOTTED3_Reset_Alarm_Message(message) if message == OnEnter then flag_okay_to_give_alarm_message = true end end function State_FALCON_SPOTTED4_Reset_Alarm_Message(message) if message == OnEnter then flag_okay_to_give_alarm_message = true end end function Fett_Attack_Han(unit) -- Safety check to prevent an extra thread on this...somehow a few were slipping in. if fett_found_han == true then return end fett_found_han = true --MessageBox("attacking han with fett") Story_Event("BOBA_ATTACK") if TestValid(unit) and TestValid(falcon) then BlockOnCommand(unit.Attack_Target(falcon), 20) end fett_found_han = false end function Discover_Then_Report(unit) DebugMessage("discovering han") -- Attack the falcon for a while BlockOnCommand(unit.Attack_Target(falcon), 30) --unit.Attack_Target(falcon) --Sleep(30) -- Allow the player to still have a chance to cancel the alarm if TestValid(unit) then DebugMessage("reporting han") BlockOnCommand(unit.Move_To(starbase_marker)) end -- If the unit still survived, then the falcon is reported. if TestValid(unit) and TestValid(falcon) then unit.Attack_Target(falcon) Alarm_Activated() end end ------------------------------------------------------------------------------------------------------------------------ -- Prox_Patrol - Called when ships reach a patrol point ------------------------------------------------------------------------------------------------------------------------ function Prox_Patrol(prox_obj, trigger_obj) -- Send only patrols to the next waypoint trigger_type = trigger_obj.Get_Type().Get_Name() --DebugMessage("]]]] Patrol trigger picked up type %s",trigger_type) -- If this is a fighter, we want to issue the order to the parent instead of the trigger_obj if trigger_type == "TIE_FIGHTER" then unit = trigger_obj.Get_Parent_Object() elseif trigger_type == "TARTAN_PATROL_CRUISER" then unit = trigger_obj elseif trigger_type == "TIE_BOMBER" then unit = trigger_obj.Get_Parent_Object() else return end -- Ignore objects that have already been sent on to the next patrol if unit.Has_Active_Orders() then --MessageBox("unit has active orders") return end --Units dealing with the alarm don't patrol if alarm_units[unit] then return end -- Send to the next marker for i,marker in pairs(patrol_markers) do if prox_obj == marker then if i == patrol_marker_count then next_point = 1 else next_point = i+1 end unit.Move_To(patrol_markers[next_point]) DebugMessage("]]]] Sending patrol ships from %d to patrol point %d",i,next_point) break end end end ------------------------------------------------------------------------------------------------------------------------ -- Prox_Cargo ------------------------------------------------------------------------------------------------------------------------ function Prox_Cargo(prox_obj, trigger_obj) -- Stop checking for this one prox_obj.Cancel_Event_Object_In_Range(Prox_Cargo) Game_Message("TEXT_STORY_REBEL_ACT03_MISSION_EIGHT_11") --differentiate up the boring scan dialog here if (cargo_scanned == 0) or (cargo_scanned == 4) or (cargo_scanned == 8) then Story_Event("BEGIN_CARGO_SCAN") elseif (cargo_scanned == 1) or (cargo_scanned == 5) or (cargo_scanned == 9) then Story_Event("BEGIN_CARGO_SCAN2") elseif (cargo_scanned == 2) or (cargo_scanned == 6) or (cargo_scanned == 10) then Story_Event("BEGIN_CARGO_SCAN3") elseif (cargo_scanned == 3) or (cargo_scanned == 7) or (cargo_scanned == 11) then Story_Event("BEGIN_CARGO_SCAN4") end --Story_Event("BEGIN_CARGO_SCAN") scan_seconds = 5 cargo_being_scanned = prox_obj Register_Timer(Scanning_Timer,scan_seconds,prox_obj ) --add an arrow to cargo being scanned cargo_being_scanned.Highlight(true) falcon.Stop() end ------------------------------------------------------------------------------------------------------------------------ -- Scanning_Timer() - Marks cargo as scanned if the Falcon hangs out for x seconds ------------------------------------------------------------------------------------------------------------------------ function Scanning_Timer(timer_obj) if cargo_being_scanned.Get_Distance(falcon) <= scanning_range then Game_Message("TEXT_STORY_REBEL_ACT03_MISSION_EIGHT_12") --MessageBox("Story_Event(CARGO_SCAN_DONE)") Story_Event("CARGO_SCAN_DONE") --MessageBox("CARGO_SCAN_DONE") cargo_scanned = cargo_scanned + 1 --turn off appropriate radar blip here if TestValid(cargo_01) and cargo_being_scanned == cargo_01 then Remove_Radar_Blip("blip_cargo_01") cargo_being_scanned.Highlight(false) --MessageBox("cargo one scanned...removing blip?") end if TestValid(cargo_02) and cargo_being_scanned == cargo_02 then Remove_Radar_Blip("blip_cargo_02") cargo_being_scanned.Highlight(false) end if TestValid(cargo_03) and cargo_being_scanned == cargo_03 then Remove_Radar_Blip("blip_cargo_03") cargo_being_scanned.Highlight(false) end if TestValid(cargo_04) and cargo_being_scanned == cargo_04 then Remove_Radar_Blip("blip_cargo_04") cargo_being_scanned.Highlight(false) end if TestValid(cargo_05) and cargo_being_scanned == cargo_05 then Remove_Radar_Blip("blip_cargo_05") cargo_being_scanned.Highlight(false) end if TestValid(cargo_06) and cargo_being_scanned == cargo_06 then Remove_Radar_Blip("blip_cargo_06") cargo_being_scanned.Highlight(false) end if TestValid(cargo_07) and cargo_being_scanned == cargo_07 then Remove_Radar_Blip("blip_cargo_07") cargo_being_scanned.Highlight(false) end if TestValid(cargo_08) and cargo_being_scanned == cargo_08 then Remove_Radar_Blip("blip_cargo_08") cargo_being_scanned.Highlight(false) end if TestValid(cargo_09) and cargo_being_scanned == cargo_09 then Remove_Radar_Blip("blip_cargo_09") cargo_being_scanned.Highlight(false) end if TestValid(cargo_10) and cargo_being_scanned == cargo_10 then Remove_Radar_Blip("blip_cargo_10") cargo_being_scanned.Highlight(false) end if TestValid(cargo_11) and cargo_being_scanned == cargo_11 then Remove_Radar_Blip("blip_cargo_11") cargo_being_scanned.Highlight(false) end if TestValid(cargo_12) and cargo_being_scanned == cargo_12 then Remove_Radar_Blip("blip_cargo_12") cargo_being_scanned.Highlight(false) end if cargo_scanned == num_scanned_to_bring_fett then DebugMessage("Timer for fett initiated") Register_Timer(Bring_Fett, 10) elseif cargo_scanned >= counter_enough_scanned then Story_Event("CARGO_SCANNED") end else Game_Message("TEXT_STORY_REBEL_ACT03_MISSION_EIGHT_13") Story_Event("CARGO_SCAN_ABORTED") Register_Prox(cargo_being_scanned, Prox_Cargo, cargo_range, rebel) end end -- Fett arrives after a short delay function Bring_Fett() DebugMessage("Reinforcing with Fett") if TestValid(falcon) then ReinforceList({"Boba_Fett_Team"}, fett_spawn, empire, false, true, true, Fett_Arrives) end end -- Fett gives his intro then begins his search function Fett_Arrives(unit_list) fett = unit_list[1] --MessageBox("Fett intro dialog here") Story_Event("BOBA_DIALOG") fett.Move_To(interceptor1) Register_Timer(Timer_Fett_Search, 10) end function Timer_Fett_Search() Create_Thread("Fett_Search") end function Fett_Search() -- Fett patrols between the container second nearest to the falcon -- If he finds han, script elsewhere will cause him to attack. -- Resume patrolling if han is lost in the fog of war. while TestValid(falcon) do if not fett_found_han then if not TestValid(fett) then break end nearest_barrel = Find_Nearest(falcon, "ORBITAL_RESOURCE_CONTAINER") BlockOnCommand(fett.Attack_Move(nearest_barrel.Get_Position()), 20) end Sleep(3) if not fett_found_han then if not TestValid(fett) then break end nearest_barrel = Find_Nearest(falcon, "ORBITAL_RESOURCE_CONTAINER") second_nearest_barrel = Find_Nearest(nearest_barrel, "ORBITAL_RESOURCE_CONTAINER") BlockOnCommand(fett.Attack_Move(second_nearest_barrel.Get_Position()), 20) end Sleep(3) end end ------------------------------------------------------------------------------------------------------------------------ -- Story_Mode_Service() - gets serviced each frame ------------------------------------------------------------------------------------------------------------------------ -- Here is an opportunity for updates outside of an event --function Story_Mode_Service() --end ------------------------------------------------------------------------------------------------------------------------ ------------------------------------------------------------------------------------------------------------------------ -- dme Mission over, triggering end cinematic. ------------------------------------------------------------------------------------------------------------------------ function State_Rebel_A3_M08_Cargo_Found_Text_02(message) if message == OnEnter then Create_Thread("Ending_Cinematic") end end ------------------------------------------------------------------------------------------------------------------------ -- dme Ending Cinematic stuff ------------------------------------------------------------------------------------------------------------------------ function Ending_Cinematic() --Story_Event("END_DIALOG") Fade_Screen_Out(.5) Suspend_AI(1) Lock_Controls(1) Letter_Box_In(0) -- Ensure Millennium Falcon is still present for this cinematic falcon = Find_First_Object("Millennium_Falcon") if not falcon then MessageBox("Couldn't find Millennium Falcon") return end falcon.Make_Invulnerable(true) Story_Event("DISABLE_FALCON_KILLED") --Set up all waypoints for cinematic falcon_start = Find_Hint("GENERIC_MARKER_SPACE", "falconstart") falcon_move1 = Find_Hint("GENERIC_MARKER_SPACE", "falconpos1") falcon_move2 = Find_Hint("GENERIC_MARKER_SPACE", "falconpos2") falcon_move3 = Find_Hint("GENERIC_MARKER_SPACE", "falconpos3") falcon_move4 = Find_Hint("GENERIC_MARKER_SPACE", "falconpos4") camera_start = Find_Hint("GENERIC_MARKER_SPACE", "camerastart") --Move Falcon to the start loc falcon.Teleport_And_Face(falcon_start) falcon.Move_To(falcon_move2) Start_Cinematic_Camera() Sleep(1) Story_Event("VICTORY_TRIGGER") Fade_Screen_In(2) -- Set_Cinematic_Camera_Key(target_pos, xoffset_dist, yoffset_pitch, zoffset_yaw, angles?, attach_object, use_object_rotation, cinematic_animation) Set_Cinematic_Camera_Key(falcon, 250, 10, 30, 1, 0, 0, 0) -- Set_Cinematic_Camera_Key(target_pos, xoffset_dist, yoffset_pitch, zoffset_yaw, angles?, attach_object, use_object_rotation, cinematic_animation) Set_Cinematic_Target_Key(falcon, 0, 0, 0, 0, falcon, 0, 0) -- Transition_Cinematic_Camera_Key(target_pos, time, xoffset_dist, yoffset_pitch, zoffset_yaw, angles?, attach_object, use_object_rotation, cinematic_animation) --Transition_Cinematic_Target_Key(falcon_move4, 5, 0, 0, 0, 0, 0, 0, 0) Sleep(2) --falcon.Move_To(falcon_move2) --Sleep(1) --falcon.Move_To(falcon_move3) --Sleep(1) Transition_Cinematic_Camera_Key(camera_start, 4, 200, 45, 0, 1, 0, 1, 0) falcon.Move_To(falcon_move4) Sleep(4) falcon.Hyperspace_Away() falcon.Make_Invulnerable(false) end