Skip to content

Instantly share code, notes, and snippets.

@jacobryanwheeler
Last active June 4, 2023 00:20
Show Gist options
  • Save jacobryanwheeler/282660be9111c008d96bb81a6c6b39b5 to your computer and use it in GitHub Desktop.
Save jacobryanwheeler/282660be9111c008d96bb81a6c6b39b5 to your computer and use it in GitHub Desktop.
<<<?xml version="1.0"?>>>
QuestsDefinitions -level=example
quest Setup -final=false
,player-has_flashlight _ true
quest Radio2Captain1 -parent=Setup -final=false
,goto <<Encountered a Bandit>> ZoneBox TB_Radio_NotAlone -distance=2 -show=false
,AND _
path
,enable-multi _
,o SoundEmitterSimple WalkieEmitter2
,wait _ 3
,disable-multi _
,o SoundEmitterSimple WalkieEmitter2
path
,talk _ Jafar NotAlone -auto=true -show=false
path
,enable-multi _
,o AISpawnBoxNumber DocksBandy002
quest MainQuestStart -parent=Setup
,set-skin _ ObjectDI vendmach default
,hide-multi _
,o ObjectDI BlackPlane_Lobby
,o ObjectDI JoeBlood1
,o ObjectDI JoeBlood2
,o ObjectDI JoeBlood3
,o ObjectDI JoeBlood4
,AND _ -obj=&QuestStartJoe_Talk&
path
,talk _ Blake beginlevel
,take <<Take Cookies>> QuestInventoryItemDI QuestObject_JoesBeverage -obj=&MainQuestStart_TakeCookies& -show=true
,wait _ 1
,set-skin _ DoorDI ContainerOfficeDoor default_hl
,set-skin _ ObjectDI vendmach default_off
,set-skin _ ObjectDI LobbyLight1 default
,set-skin _ ObjectDI LobbyLight2 default
,set-skin _ ObjectDI LobbyLight3 default
,set-skin _ ObjectDI LobbyLight4 default
,set-skin _ ObjectDI LobbyLight5 default
,set-skin _ ObjectDI LobbyLight6 default
,set-skin _ ObjectDI LobbyLight7 default
,set-skin _ ObjectDI LobbyLight8 default
,set-skin _ ObjectDI LobbyLight9 default
,set-skin _ ObjectDI LobbyLight10 default
,set-skin _ ObjectDI LobbyLight11 default
,set-skin _ ObjectDI LobbyLight12 default
,set-skin _ ObjectDI LobbyLight13 default
,set-skin _ ObjectDI LobbyLight14 default
,set-skin _ ObjectDI LobbyLight15 default
,set-skin _ ObjectDI LobbyLight16 default
,set-skin _ ObjectDI LobbyLight17 default
,set-skin _ ObjectDI LobbyLight18 default
,set-skin _ ObjectDI LobbyLight19 default
,set-skin _ ObjectDI LobbyLight20 default
,disable-multi _
,o LightObject PowerIndicatorF1
,o LightObject PowerIndicatorBBA
,o LightObject PowerIndicatorBBB
,o LightObject PowerIndicatorBBC
,o LightObject PowerIndicatorD001
,o FXEmitter ElevatorBasement
,o FXEmitter ElevatorShipping
,o FXEmitter ElevatorLobby
,o FXEmitter ElevatorSecurity
,hide-multi _
,o ObjectDI FunctionalLabDoor01
,o ObjectDI BasementDoorArrivalL
,o ObjectDI BasementDoorArrivalR
,show-multi _
,o ObjectDI BlackPlane_Lobby
,enable-multi _
,o SoundEmitterSimple PowerDown
,wait _ 1.5
,disable _ NPCLifePlace JoeSit
,enable _ NPCLifePlace JoeAlert
,wait _ 0
,enable-multi _
,o LightObject JoesFlashLight
,o LightObject JoesFlashLight2
,AND _
path
,wait _ 2
,set-skin _ ModelObject walkie01 ems
,enable-multi _
,o SoundEmitterSimple WalkieEmitter1
,wait _ 2
,disable-multi _
,o SoundEmitterSimple WalkieEmitter1
,wait _ 1
,enable-multi _
,o SoundEmitterSimple WalkieEmitter1
,wait _ 2
,disable-multi _
,o SoundEmitterSimple WalkieEmitter1
,wait _ 1
path
,AND _ -obj=&MainQuestStart_TalkRadioBegin&
path
,talk _ Derek PowerOut -auto=true -show=false
path
,wait _ 1
,enable-multi _
,o SoundEmitterSimple WalkieEmitter1
,wait _ 2
,disable-multi _
,o SoundEmitterSimple WalkieEmitter1
,wait _ 1
,set-skin _ ModelObject walkie01 default
,AND _ -obj=&MainQuestStart_BasementOrders&
path
,talk _ Blake spoke2soon -auto=true -show=true
path
,move _ AINode JoesLobbyNode001 walk
,ai HumanAI QuestStart_Joe
,start AINode JoesLobbyNode001
,movie _ LobbyDoorLMovie
,set-door-behaviour _ DoorDI BasementDoor1 ClosedCheck
,disable _ NPCLifePlace Joechitchatdoor
,AND _ -obj=&MainQuestStart_BasementOrders2&
path
,move _ AINode JoeSecondDoorNode walk
,ai HumanAI QuestStart_Joe
path
,wait _ 8
,talk _ Jade testgroupforjade -auto=true -show=true
,wait _ 1
,set-door-behaviour _ DoorDI Stairwelldoor_F1_001 Closed
,set-skin _ DoorDI Stairwelldoor_F1_001 painted_hl
,talk _ Blake lobbydooropen -auto=true -show=true
,AND _ -obj=&MainQuestStart_TakeRifle&
path
,take <<Take Rifle>> QuestInventoryItemDI QuestObject_Rifle -obj=&MainQuestStart_Item_RifleA& -show=true
,give-weapon _ -weapon_id=Firearm_RifleAGen
,enable-multi _
,o QuestHub Checkpoint_EnteredDocks
,disable-multi _
,o QuestHub Checkpoint_LeftLobby
,o SpawnPoint MapStart
,wait _ .1
,enable _ AISpawnBoxNumber DocksBandy004
path
,take <<Take Card>> QuestInventoryItemDI BasementAccessCard -obj=&MainQuestStart_Item_CardA& -show=true
,enable-multi _
,o AISpawnBoxNumber DocksBandy001
,o AISpawnBoxNumber DocksBandy003
,o QuestHub Checkpoint_EnteredDocks
,disable-multi _
,o QuestHub Checkpoint_LeftLobby
,o SpawnPoint MapStart
,set-skin _ DoorDI ContainerOfficeDoor default
,enable-multi _
,o AISpawnBoxNumber DocksBandy005
,set-door-behaviour _ DoorDI BasementDoor1 Closed
,set-door-behaviour _ DoorDI Stairwelldoor_F1_001 ClosedCheck
,set-skin _ DoorDI Stairwelldoor_F1_001 painted
,set-skin _ DoorDI BasementDoor1 painted_hl
,goto <<Entered the Basement>> ZoneBox ZoneBoxBasementEnter -distance=3 -obj=&MainQuestStart_BasementEnter& -show=true
,enable _ AISpawnBoxNumber BasementBandy00
,set-skin _ DoorDI BasementDoor1 painted
,enable-multi _
,o AISpawnBoxNumber BasementBandy04b
,AND _ -obj=&MainQuestStart_FlipBreakers&
path
,use _ PhysicalSwitchDI QuestObject_BreakerBoxA -state=on -obj=&MainQuestStart_Item_BreakerBoxA& -show=true
,enable _ LightObject PowerIndicatorBBA
,set-skin _ DoorDI BreakerDoorc painted
,set-skin _ ObjectDI BasementLightA1 ems_orange
,set-skin _ ObjectDI BasementLightA2 ems_orange
,set-skin _ ObjectDI BasementLightA3 ems_orange
,set-skin _ ObjectDI BasementLightA4 ems_orange
,set-skin _ ObjectDI BasementLightA5 ems_orange
path
,use _ PhysicalSwitchDI QuestObject_BreakerBoxB -state=on -obj=&MainQuestStart_Item_BreakerBoxB& -show=true
,enable _ LightObject PowerIndicatorBBB
,set-skin _ DoorDI BreakerDoorc painted
,set-skin _ ObjectDI BasementLight1 ems_orange
,set-skin _ ObjectDI BasementLight2 ems_orange
,set-skin _ ObjectDI BasementLight3 ems_orange
,set-skin _ ObjectDI BasementLight4 ems_orange
,set-skin _ ObjectDI BasementLight5 ems_orange
,set-skin _ ObjectDI BasementLight6 ems_orange
,set-skin _ ObjectDI BasementLight7 ems_orange
,set-skin _ ObjectDI BasementLight8 ems_orange
path
,use _ PhysicalSwitchDI QuestObject_BreakerBoxC -state=on -obj=&MainQuestStart_Item_BreakerBoxC& -show=true
,enable _ LightObject PowerIndicatorBBC
,set-skin _ DoorDI BreakerDoorc painted
,set-skin _ ObjectDI BasementLightGC1 ems_orange
,set-skin _ ObjectDI BasementLightGC2 ems_orange
,set-skin _ ObjectDI BasementLightGC3 ems_orange
,set-skin _ ObjectDI BasementLightGC4 ems_orange
,set-skin _ ObjectDI BasementLightGC5 ems_orange
,set-skin _ ObjectDI BasementLightGC6 ems_orange
,set-skin _ ObjectDI BasementLightGC7 ems_orange
,enable-multi _
,o LocalPortalActivatorZone SB_BasementElevator_GoToSecurityFloor
,o LocalPortal LP_BasementElevator_GoToSecurityFloor
,o QuestHub RP_BasementElevator_GoToSecurityFloor
,o PhysicalSwitchDI ElevButton_Basement001
,o QuestHub Checkpoint_BreakersFlipped
,disable _ QuestHub Checkpoint_LeftLobby
,set-door-behaviour _ DoorDI BasementDoor1 ClosedCheck
,set-skin _ ObjectDI BasementKlaxon001 default_light
,enable-multi _
,o FXEmitter ElevatorBasement
,o FXEmitter ElevatorShipping
,o FXEmitter ElevatorLobby
,o FXEmitter ElevatorSecurity
,o LightObject PowerIndicatorF1
,o LightObject PowerIndicatorBaseStairs
,o LightObject PowerIndicatorBaseStairs2
,o LightObject PowerIndicatorF001
,o LightObject PowerIndicatorF001S
,o LightObject PowerIndicatorF001S2
,o LightObject PowerIndicatorF002S1
,o LightObject PowerIndicatorF1S
,o LightObject PowerIndicatorF2
,o LightObject PowerIndicatorS1
,o LightObject PowerIndicatorS2
,o LightObject PowerIndicatorS3
,o LightObject PowerIndicatorS4
,o LightObject PowerIndicatorS5
,o LightObject PowerIndicatorS6
,o LightObject PowerIndicatorS7
,o LightObject PowerIndicatorS8
,o LightObject PowerIndicatorS9
,o LightObject PowerIndicatorS10
,o LightObject PowerIndicatorS11
,o LightObject PowerIndicatorS12
,o LightObject PowerIndicatorS13
,o LightObject PowerIndicatorS14
,o LightObject PowerIndicatorD001
,o LightObject PowerIndicatorF1H1
,o LightObject PowerIndicatorF1H2
,disable-multi _
,o BoxObjectEnabler BOE_BasementBandy2
,o BoxObjectEnabler BOE_BasementBandy4
,o BoxObjectEnabler BOE_BasementBandy5
,o BoxObjectEnabler BOE_BasementBandy7
,o BoxObjectEnabler BOE_BasementBandy8
,hide-multi _
,o ObjectDI BlackPlane_Basement
,o ObjectDI BlackPlane_lab
,o ObjectDI BlackPlane_Shipping
,o ObjectDI BlackPlane_Lobby
,disable-multi _
,o LampDI elight1
,o LampDI elight2
,o LampDI elight3
,o LampDI elight4
,o LampDI elight5
,wait _ 1
,talk _ Derek BreakersFlipped -auto=true -show=false
,use _ PhysicalSwitchDI ElevButton_Basement001 -state=on -obj=&MainQuestStart_Elevator2Top& -show=true
,movie _ FancyElevatorDoorB1
,hide _ ObjectDI SecurityElevatorDoorOpeningA
,goto _ SensorGoTo SG2_ArrivedTopFloor001 -obj=&MainQuestStart_Travel2Top& -show=true
,hide _ ObjectDI BaseElevatorDoorA
,enable-multi _
,o QuestHub ElevatorTop01
,disable-multi _
,o QuestHub Checkpoint_BreakersFlipped
,AND _ -obj=&MainQuestStart_OrdersFromMiles&
path
,set-skin _ ModelObject walkie02 ems
,enable-multi _
,o SoundEmitterSimple WalkieEmitter3
,wait _ .5
,disable-multi _
,o SoundEmitterSimple WalkieEmitter3
,set-skin _ ModelObject walkie01 default
path
,talk _ Derek arrivaltopfloor01 -auto=true -show=false
path
,wait _ 5
,enable _ AISpawnBoxNumber SecurityFloorBandy002
,wait _ 1
,movie _ FirstDoorSecurity
,show _ ObjectDI SecurityElevatorDoorOpeningA
,BLOCK _ -obj=&MainQuestStart_ClearSecurityFloor&
,kill-multi _
,spawner AISpawnBoxNumber SecurityFloorBandy001
,spawner AISpawnBoxNumber SecurityFloorBandy002
,spawner AISpawnBoxNumber SecurityFloorBandy003
,spawner AISpawnBoxNumber SecurityFloorBandy004
,spawner AISpawnBoxNumber SecurityFloorBandy005
,spawner AISpawnBoxNumber SecurityFloorBandy006
,spawner AISpawnBoxNumber SecurityFloorBandy007
,enable _ ZoneBox SecurityFloorClear
,goto <<Clear Area Temp Box>> ZoneBox SecurityFloorClear -distance=2 -show=true -obj=&MainQuestStart_CheckOnMiles&
,disable _ NPCLifePlace MilesInHiding
,talk _ Derek securityfloorclear -auto=true -show=false
,enable _ NPCLifePlace JoesDeathPlace
,show-multi _
,o ObjectDI JoeBlood1
,o ObjectDI JoeBlood2
,o ObjectDI JoeBlood3
,o ObjectDI JoeBlood4
,o ObjectDI BasementDoorArrivalL
,o ObjectDI BasementDoorArrivalR
,hide-multi _
,o ObjectDI SecurityDoorArrivalL
,o ObjectDI SecurityDoorArrivalR
,teleport _ AINode JoesDeathNode
,ai HumanAI QuestStart_Joe
,wait _ 1.5
,move _ AINode MilesOpenDoorNode run
,ai HumanAI QuestCaptain_Derek
,start AINode MilesOpenDoorNode
,movie _ MIlesDoorA
,AND _ -obj=&MainQuestStart_GetToLabOrders&
path
,talk _ Derek go2lab -auto=true -show=true
path
,wait _ 3
,move _ AINode MIlesDoneTalkingNode run
,ai HumanAI QuestCaptain_Derek
,start AINode MIlesDoneTalkingNode
,wait _ 3
,hide-multi _
,o ObjectDI DummyLabDoor01
,o ComplexContainer AntizenFridge2
,o ObjectDI AntizenX9
,o ObjectDI AntizenX10
,show _ ObjectDI FunctionalLabDoor01
,disable-multi _
,o NPCLifePlace MilesAfterDoorOpen
,o LocalPortalActivatorZone SB_BasementElevator_GoToSecurityFloor
,o LocalPortal LP_BasementElevator_GoToSecurityFloor
,o QuestHub RP_BasementElevator_GoToSecurityFloor
,o PhysicalSwitchDI ElevButton_Basement001
,enable-multi _
,o LocalPortalActivatorZone SB_BasementElevator_GoToBasement
,o LocalPortal LP_BasementElevator_GoToBasement
,o QuestHub RP_BasementElevator_GoToBasement
,o PhysicalSwitchDI ElevButton_SecurityFlr001
,movie _ MilesDoor2
,use _ PhysicalSwitchDI ElevButton_SecurityFlr001 -state=on -show=true -obj=&MainQuestStart_AccessElevatorForLab&
,movie _ SecurityFloorElevDoor1
,enable-multi _
,o SensorGoTo SG2_ReturnToBottom
,o AISpawnBoxNumber BasementPostBandy01
,o AISpawnBoxNumber BasementPostBandy02
,o AISpawnBoxNumber Biter1
,o AISpawnBoxNumber Biter2
,o AISpawnBoxNumber Biter3
,o AISpawnBoxNumber Biter4
,o AISpawnBoxNumber Biter5
,o BoxObjectEnabler BOE_labbanditstarts
,goto _ SensorGoTo SG2_ReturnToBottom -show=true -obj=&MainQuestStart_TakeElevatorToLab&
,enable _ QuestHub Checkpoint_ReturnBasement
,disable _ QuestHub ElevatorTop01
,goto <<Clear Area Temp Box>> ZoneBox ZB_EnterLabDoor -distance=2 -show=true -obj=&MainQuestStart_EnterLab&
,enable-multi _
,o AISpawnBoxNumber Biter3
,o QuestHub Checkpoint_LabFoyer
,disable _ QuestHub Checkpoint_ReturnBasement
,use <<Open fridge check antizen>> ComplexContainer AntizenFridge1 -state=opened -obj=&MainQuestStart_CheckAntizen& -show=true
,show _ ObjectDI DummyLabDoor01
,hide _ ObjectDI FunctionalLabDoor01
,talk _ Jade missingvials -auto=true -show=false
,enable-multi _
,o QuestInventoryItemDI QuestObject_Antizen9
,o QuestInventoryItemDI QuestObject_Antizen10
,AND _ -obj=&MainQuestStart_FindAntizen&
path
,take _ QuestInventoryItemDI QuestObject_Antizen9 -obj=&MainQuestStart_Item_Vial9& -show=true
path
,take _ QuestInventoryItemDI QuestObject_Antizen10 -obj=&MainQuestStart_Item_Vial10& -show=true
,hide _ ComplexContainer AntizenFridge1
,show _ ComplexContainer AntizenFridge2
,talk _ Jade vialsfound -auto=true -show=false
,use <<Return Vials>> ComplexContainer AntizenFridge2 -state=opened -obj=&MainQuestStart_ReturnAntizen& -show=true
,wait _ 1
,show _ ObjectDI AntizenX9
,show _ ObjectDI AntizenX10
quest MainQuestEpilog -parent=MainQuestStart -final=true
,talk _ Jade vialsreturned -auto=true -show=false
,wait <<Wait 4 seconds>> 1
@jacobryanwheeler
Copy link
Author

This project is finished as of May 2023.

I learned a lot:
-I learned how to group things differently for better results and simultaneous code-firing
-For the first time, I tried multi-part objectives
-For the first time, I created separate paths that fired depending on the order that the player proceeded through the level
-I learned how to program the AI better in this mod than in prior mods

Things that went well:
-Everything worked as intended
-I managed to get everything working from my original design

Even better if:
-I could have cleaned up this code even more; for example, I could have used more multi-enable/disable lines of code instead of individual enable/disables
-I could have spent more time learning how to ground objects together to make for cleaner code
-I could have spent more time learning how the layers system worked in order to script events by layer which would have allowed for more dynamic changes in the scene; because this did not happen, I cut a lot of the dynamic environmental changes I had planned for the level.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment