Trending Games
Release Countdowns
Florida Man Death Clocks Funko PoP!


Fallout New Vegas: Ultimate Edition





2,576 Results
For SCPT:SCTX

NumberEDIDText
1VEFR01NCRGood2QuestSCRIPT; !!!!!!!!!!!!!!!!!!!!! OLD SCRIPT - DO NOT USE !!!!!!!!!!!!!!!!!!!!!!!! (replacement for this is "VEFR01NCREmergencyRadioQuestSCRIPT") scn VEFR01NCRGood2QuestSCRIPT ; Quest Script for "Emergency Radio" NCR faction reputation benefit/consequence (good 2)... ; ... gives Player a radio to call for NCR support (once/day) if Good Rep goes to 2 or above. ; This script handles all of the spawning/deleting of NPCs and... ; ... the functionality of the Emeregency Radio itself. ; The Emergency Radio Message ("VEFR01NCREmergencyRadioMSG") and... ; ... the Dialogue (Quest Filter: "VEFR01NCRGood2EmergencyRadio") each have Conditional Checks and... ; ... set Variables that are integral to the functioning/maintaining of the entire routine. ; --------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | Float fTimePassed ; Tracks the day(s) between support availability. Ref EmergencyRadioRef Ref placedDUMMYRef ; Marker to move and Xmarker to... to move the supply cache to (so it doesn't spawn underground). Ref placedRadioOpRef ; NCR Radio Operator. Short bAwaitingInput Short bDoOnce Short bHasRadio ; Player has been given radio. Short bInputReceived Short bRadioBark Short bRadioOpDoneTalking Short bRadioOpOscarMike Short bRadioOpPlaced Short bRadioOpWalk Short bReceivedSupport Short bTrooperBarkDone Short bTrooperAlive Short bRangerBarkDone Short bRangerAlive Short bPatrolBarkDone Short bPatrolAlive Short bCombatBarkDone Short bCombatAlive Short bTimerSet Short bUsingRadio ; Player just called for support (on radio). Short bSupportAway ; << Variables for: "Respawn Counter (in case NPC doesn't reach PC)" Short bSafetyTimer ; << --------------------------------------------------------------------------------------------------------- Short fThreeHourTimer ; << Short bSupportArrived ; << Short bRadioOpAway ; << Short bRadioOpArrived ; << Short bTrooperAway ; << Short bTrooperArrived ; << Short bRangerAway ; << Short bRangerArrived ; << Short bPatrolAway ; << Short bPatrolArrived ; << Short bCombatAway ; << Short bCombatArrived ; << Short iBarkDelay Short iButtonVar Short iDeleteRange Short iOneDayTimer Short iRadioButtonPressed Short iRotateCancelDialog Short iRotateCombatDialog Short iRotatePatrolDialog Short iRotateSupplyDialog Short iRotateSupportDialog Short iRotateTrooperDialog Short iRotateRangerDialog Short iRotateNoSupportDialog Short iRotateOutofAreaDialog Short iSpawnDelay Short iSpawnCombatDelay Short iSpawnPatrolDelay Short iSpawnRangerDelay Short iSpawnSupplyDelay Short iSpawnTrooperDelay Short iSpeedDelay Short iWalkDelay Short iWalkRange ; --------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | Begin GameMode If bDoOnce == 0 Set iWalkRange to 4500 Set iDeleteRange to 9999 Set iButtonVar to -1 Set iRadioButtonPressed to -1 Set iRotateSupplyDialog to 1 Set iRotateTrooperDialog to 1 Set iRotateRangerDialog to 1 Set iRotateNoSupportDialog to 1 Set iRotateOutofAreaDialog to 1 Set iRotateCancelDialog to 1 Set bDoOnce to 1 Endif If ( GetReputationThreshold RepNVNCR 1 >= 2 && DisguiseFactionPulseQuest.bFactionArmorEquipped != 1 ) ; Player NCR "Good" reputation is 2 or greater AND Player is not wearing faction armor. If ( IsPlayerInRegion vMapCanSupportPCHere == 1 ) SetQuestDelay VEFR01NCRGood2EmergencyRadio 0.1 ; -------------------------------------------------------------------------------------------- Deliver Emergency Radio to Player -------------------------------------------------------------------------------------- \/ ; --------------------------------------------------------- Spawn Radio Op --------------------------------------------------- \/ If ( bRadioOpPlaced == 0 ) ; Radio Op not spawned yet - spawn. If ( iSpawnDelay == 0 ) VEFR0xRepSpawnMarker01.MoveTo Player 5995 5995 Set iSpawnDelay to 1 Return Elseif ( iSpawnDelay == 1 ) VEFR01NCRRadioOperatorRef.MoveTo VEFR0xRepSpawnMarker01 Set iSpawnDelay to 2 Return Elseif ( iSpawnDelay == 2 ) Set placedRadioOpRef to VEFR01NCRRadioOperatorRef Set iSpawnDelay to 3 ; <<>> <-- Only if RadioOp is dead AND Player doesn't have the Radio! Endif Set bRadioOpArrived to 0 Set bRadioOpAway to 1 Set bSupportArrived to 0 Set bSafetyTimer to 0 Set bSupportAway to 1 ; <<>> (Handled by "Respawn Counter (in case NPC doesn't reach PC)") Set bRadioOpPlaced to 1 ; <<>> <-- Only if RadioOp is dead AND Player doesn't have the Radio! Endif ; --------------------------------------------------------- END Spawn Radio Op ------------------------------------------- /\ ; --------------------------------------------------------- Radio Op - Speed to Player ---------------------------------- \/ If bRadioOpOscarMike == 0 && bRadioOpPlaced == 1 ; If Radio Op spawned, but not On-the-Move yet - speed to Player. If ( iSpeedDelay == 0 ) placedRadioOpRef.SetActorValue SpeedMult 1000 ; Set speed to 10x normal speed (SpeedMult should be 1000). Set iSpeedDelay to 1 Return Elseif ( iSpeedDelay == 1 ) placedRadioOpRef.AddScriptPackage VEFR02NCRBad2TalkToPlayer ; (Borrowing dialogue package from Bad2 Rep routine) Set iSpeedDelay to 2 ; <<>> <-- Only if RadioOp is dead AND Player doesn't have the Radio! Endif Set bRadioOpOscarMike to 1 ; <<>> <-- Only if RadioOp is dead AND Player doesn't have the Radio! Endif ; --------------------------------------------------------- END Radio Op - Speed to Player -------------------------- /\ Endif ; Ends check for Player in CanSupport region. Endif ; Ends check for NCR good rep (>= 2). ; Radio Operator is on his way - don't shut down routine because Player leaves area (Radio itself will handle any reduction in good NCR reputation). ; --------------------------------------------------------- Radio Op - Speed to Normal --------------------------------- \/ If bRadioOpWalk == 0 && bRadioOpOscarMike == 1 If ( player.GetDistance placedRadioOpRef <= iWalkRange ) If ( iWalkDelay == 0 ) placedRadioOpRef.RemoveScriptPackage VEFR02NCRBad2TalkToPlayer Set iWalkDelay to 1 Return Elseif ( iWalkDelay == 1 ) placedRadioOpRef.SetActorValue SpeedMult 100 ; Set speed to normal speed (SpeedMult should be 100). Set iWalkDelay to 2 Return Elseif ( iWalkDelay == 2 ) placedRadioOpRef.AddScriptPackage VEFR02NCRBad2TalkToPlayer Set iWalkDelay to 3 ; <<>> <-- Only if RadioOp is dead AND Player doesn't have the Radio! Set bRadioOpWalk to 1 ; <<>> <-- Only if RadioOp is dead AND Player doesn't have the Radio! Endif Endif Endif ; --------------------------------------------------------- END Radio Op - Speed to Normal ------------------------- /\ ; [NOTE: Variable set in RadioOps Dialogue triggers the transfer of the Radio to the Player.] ; --------------------------------------------------------- Radio Op - Give Radio to Player --------------------------- \/ If ( bHasRadio == 1 ) ; This variable is "set to 1" in RadioOps' dialogue player.AddItem NVVEFR01NCRGood2Radio 1 Set bRadioOpAway to 0 Set bRadioOpArrived to 1 Set bHasRadio to 2 ; <<>> Endif ; --------------------------------------------------------- END Radio Op - Give Radio to Player ------------------ /\ ; -------------------------------------------------------------------------------------------- END Deliver Emergency Radio to Player ------------------------------------------------------------------------------ /\ ; -------------------------------------------------------------------------------------------- Delete Placed Radio Operator ----------------------------------------------------------------------------------------------- \/ ; --------------------------------------------------------- Radio Op - Move Off and Delete --------------------------- \/ If ( bRadioOpDoneTalking == 1 ) ; This variable is "set to 1" in RadioOps' dialogue placedRadioOpRef.AddScriptPackage VEFR02NCRBad2LeaveFromPlayer ; Sends RadioOp to delete trigger at Camp McCarran entrance (see package for name). Set bRadioOpDoneTalking to 0 ; <<>> Endif ; --------------------------------------------------------- END Radio Op - Move Off and Delete ------------------- /\ ; --------------------------------------------------------- Radio Op - Far from Player - Delete----------------------- \/ If ( bRadioOpPlaced == 1 && bRadioOpDoneTalking == 1 ) If ( player.GetDistance placedRadioOpRef >= iDeleteRange ) placedRadioOpRef.Disable placedRadioOpRef.MarkForDelete Endif Endif ; --------------------------------------------------------- END Radio Op - Far from Player - Delete ------------- /\ ; -------------------------------------------------------------------------------------------- END Delete Placed Radio Operator --------------------------------------------------------------------------------------- /\ ; -------------------------------------------------------------------------------------------- Radio Operator Talk to Player ----------------------------------------------------------------------------------------------- \/ ; When the Player makes a selection on the Emergency Radio the Radio Op with "reply" acknowledging the selection ; [NOTE: Currently this doesn't work - something to do with the TalkingActivator (it works fine if an Actor is used... or with the TalkingActivator if the sequence is triggered... ; ...using an Activator (trigger volume) in the worldspace) - but these lines are left here (commented out) incase I have a flash of inspiration. -ETB.] ;If ( iRadioButtonPressed > -1 && bRadioBark == 1 ) ;SetQuestDelay VEFR01NCRGood2EmergencyRadio 0.1 ;If ( iBarkDelay == 0 ) ;Set iBarkDelay to 1 ;VEFR01NCRRadioOperatorRef.MoveTo Player 150 150 ; <<<-- This works (but using an actor defeats the purpose of a radio communication). ;VEFR0xNCRRadioOpSpeakerRef.MoveTo Player ; <<<-- This doesn't work (well, the MoveTo part is fine - the problem occurs at "StartConversation"). ;Return ;Endif ;If ( iBarkDelay == 1 ) ;Set iBarkDelay to 2 ;VEFR0xNCRRadioOpSpeakerRef.StartConversation player, GREETING ; [NOTE: Conditionals in dialog plays correct line for button pressed.] ;VEFR01NCRRadioOperatorRef.StartConversation player GREETING ; <<<-- This works (using an actor), but the one above (TalkingActivator) does not. ;Return ;Endif ;If ( iBarkDelay == 2 ) ;Set iBarkDelay to 3 ;Endif ;Set bRadioBark to 0 ;Set iBarkDelay to 0 ;Endif ; -------------------------------------------------------------------------------------------- END Radio Operator Talk to Player --------------------------------------------------------------------------------------- /\ ; -------------------------------------------------------------------------------------------- Trooper Done Barking - Follow Player ----------------------------------------------------------------------------------- \/ If ( bTrooperBarkDone == 1 ) Set bTrooperBarkDone to 0 Set bTrooperAway to 0 Set bTrooperArrived to 1 VEFR01NCRSupportTrooper01AAMRef.AddScriptPackage VEFR01NCRGood2FollowPlayer SetQuestDelay VEFR01NCRGood2EmergencyRadio 5.0 Endif ; -------------------------------------------------------------------------------------------- END Trooper Done Barking - Follow Player -------------------------------------------------------------------------- /\ ; -------------------------------------------------------------------------------------------- Ranger Done Barking - Follow Player ----------------------------------------------------------------------------------- \/ If ( bRangerBarkDone == 1 ) Set bRangerBarkDone to 0 Set bRangerAway to 0 Set bRangerArrived to 1 VEFR01NCRSupportRanger01CFRef.AddScriptPackage VEFR01NCRGood2FollowPlayer SetQuestDelay VEFR01NCRGood2EmergencyRadio 5.0 Endif ; -------------------------------------------------------------------------------------------- END Ranger Done Barking - Follow Player -------------------------------------------------------------------------- /\ ; -------------------------------------------------------------------------------------------- Patrol Ranger Done Barking - Follow Player ------------------------------------------------------------------------ \/ If ( bPatrolBarkDone == 1 ) Set bPatrolBarkDone to 0 Set bPatrolAway to 0 Set bPatrolArrived to 1 VEFR01NCRSupportRanger02HMRef.AddScriptPackage VEFR01NCRGood2FollowPlayer SetQuestDelay VEFR01NCRGood2EmergencyRadio 5.0 Endif ; -------------------------------------------------------------------------------------------- END Patrol Ranger Done Barking - Follow Player ---------------------------------------------------------------- /\ ; -------------------------------------------------------------------------------------------- Combat Ranger Done Barking - Follow Player ---------------------------------------------------------------------- \/ If ( bCombatBarkDone == 1 ) Set bCombatBarkDone to 0 Set bCombatAway to 0 Set bCombatArrived to 1 VEFR01NCRSupportRanger03AAFRef.AddScriptPackage VEFR01NCRGood2FollowPlayer SetQuestDelay VEFR01NCRGood2EmergencyRadio 5.0 Endif ; -------------------------------------------------------------------------------------------- END Combat Ranger Done Barking - Follow Player -------------------------------------------------------------- /\ ; -------------------------------------------------------------------------------------------- Respawn Counter (in case NPC doesn't reach PC) --------------------------------------------------------------- \/ If ( bSupportAway == 1 ) ; Any of the NPCs has been sent to the Player (en route now). If ( bSafetyTimer == 0 ) Set fThreeHourTimer to GameDaysPassed ; Start the timer! Set bSafetyTimer to 1 Endif If ( bSupportArrived == 0 ) ; Has not reached the Player yet (still en route). If ( GameDaysPassed >= ( fThreeHourTimer + 0.125 ) ) ; Three hours have passed - something has gone wrong. If ( bRadioOpAway == 1 && bRadioOpArrived == 0 ) ; NPC is en route, but has not reached the Player. If ( player.GetDistance placedRadioOpRef >= 5000 ) ; NPC is too far away - resurrect (if necessary) and move closer. If ( GetReputationThreshold RepNVNCR 1 >= 2 ) placedRadioOpRef.MoveTo Player 3500 3000 If ( placedRadioOpRef.GetDead == 1 ) placedRadioOpRef.ResurrectActor 0 Endif placedRadioOpRef.AddScriptPackage VEFR02NCRBad2TalkToPlayer Set bSafetyTimer to 0 Return Endif Else ; NPC isn't too far away - reset timer and let NPC live (for now). Set bSafetyTimer to 0 ; This will allow "fThreeHourTimer" to be reset to "GameDaysPassed" (giving the NPC three more hours to arrive). Return Endif Elseif ( bTrooperAway == 1 && bTrooperArrived == 0 ) If ( player.GetDistance VEFR01NCRSupportTrooper01AAMRef >= 5000 && GetReputationThreshold RepNVNCR 1 >= 2 ) VEFR01NCRSupportTrooper01AAMRef.MoveTo Player 2500 3750 If ( VEFR01NCRSupportTrooper01AAMRef.GetDead == 1 ) VEFR01NCRSupportTrooper01AAMRef.ResurrectActor 0 Set bTrooperAlive to 1 Endif VEFR01NCRSupportTrooper01AAMRef.AddScriptPackage VEFR01NCRGood2BarkAtPlayer Set bSafetyTimer to 0 Return Else ; NPC isn't too far away - reset timer and let NPC live (for now). Set bSafetyTimer to 0 ; This will allow "fThreeHourTimer" to be reset to "GameDaysPassed" (giving the NPC three more hours to arrive). Return Endif Elseif ( bRangerAway == 1 && bRangerArrived == 0 ) If ( player.GetDistance VEFR01NCRSupportRanger01CFRef >= 5000 && GetReputationThreshold RepNVNCR 1 >= 2 ) VEFR01NCRSupportRanger01CFRef.MoveTo Player 3000 2750 If ( VEFR01NCRSupportRanger01CFRef.GetDead == 1 ) VEFR01NCRSupportRanger01CFRef.ResurrectActor 0 Set bRangerAlive to 1 Endif VEFR01NCRSupportRanger01CFRef.AddScriptPackage VEFR01NCRGood2BarkAtPlayer Set bSafetyTimer to 0 Return Else ; NPC isn't too far away - reset timer and let NPC live (for now). Set bSafetyTimer to 0 ; This will allow "fThreeHourTimer" to be reset to "GameDaysPassed" (giving the NPC three more hours to arrive). Return Endif Elseif ( bPatrolAway == 1 && bPatrolArrived == 0 ) If ( player.GetDistance VEFR01NCRSupportRanger02HMRef >= 5000 && GetReputationThreshold RepNVNCR 1 >= 2 ) VEFR01NCRSupportRanger02HMRef.MoveTo Player 4000 2500 If ( VEFR01NCRSupportRanger02HMRef.GetDead == 1 ) VEFR01NCRSupportRanger02HMRef.ResurrectActor 0 Set bPatrolAlive to 1 Endif VEFR01NCRSupportRanger02HMRef.AddScriptPackage VEFR01NCRGood2BarkAtPlayer Set bSafetyTimer to 0 Return Else ; NPC isn't too far away - reset timer and let NPC live (for now). Set bSafetyTimer to 0 ; This will allow "fThreeHourTimer" to be reset to "GameDaysPassed" (giving the NPC three more hours to arrive). Return Endif Elseif ( bCombatAway == 1 && bCombatArrived == 0 ) If ( player.GetDistance VEFR01NCRSupportRanger03AAFRef >= 5000 && GetReputationThreshold RepNVNCR 1 ) VEFR01NCRSupportRanger03AAFRef.MoveTo Player 4000 2500 If ( VEFR01NCRSupportRanger03AAFRef.GetDead == 1 ) VEFR01NCRSupportRanger03AAFRef.ResurrectActor 0 Set bCombatAlive to 1 Endif VEFR01NCRSupportRanger03AAFRef.AddScriptPackage VEFR01NCRGood2BarkAtPlayer Set bSafetyTimer to 0 Return Else ; NPC isn't too far away - reset timer and let NPC live (for now). Set bSafetyTimer to 0 ; This will allow "fThreeHourTimer" to be reset to "GameDaysPassed" (giving the NPC three more hours to arrive). Return Endif Endif Endif Endif Endif ; -------------------------------------------------------------------------------------------- END Respawn Counter (in case NPC doesn't reach PC) ------------------------------------------------------- /\ ; -------------------------------------------------------------------------------------------- Reset Counter (wait until 2400) --------------------------------------------------------------------------------------------- \/ If ( bReceivedSupport == 1 ) If ( bTimerSet == 0 ) Set iOneDayTimer to GameDaysPassed Set bTimerSet to 1 ; <<>> ( In "Radio Menu Up (waiting for selection)" ) Endif If ( GameDaysPassed >= ( iOneDayTimer + 1 ) ) Set bReceivedSupport to 0 ; <<>> (Set to 1 in "Radio Menu Up (waiting for selection)") Set iSpawnTrooperDelay to 0 Set iSpawnRangerDelay to 0 Set iSpawnPatrolDelay to 0 Set iSpawnCombatDelay to 0 Endif Endif ; -------------------------------------------------------------------------------------------- END Reset Counter (wait until 2400) ------------------------------------------------------------------------------------- /\ End ; End GameMode block. ; /\ /\ /\ /\ /\ /\ /\ /\ /\ /\ /\ /\ /\ /\ /\ /\ /\ /\ /\ /\ /\ /\ /\ /\ /\ /\ /\ /\ /\ /\ /\ /\ /\ /\ /\ /\ /\ /\ /\ /\ /\ /\ /\ /\ /\ /\ /\ /\ /\ /\ /\ /\ /\ /\ /\ /\ /\ /\ /\ /\ /\ /\ /\ /\ /\ /\ /\ /\ /\ /\ /\ /\ /\ /\ /\ /\ /\ /\ /\ /\ ; \/ \/ \/ \/ \/ \/ \/ \/ \/ \/ \/ \/ \/ \/ \/ \/ \/ \/ \/ \/ \/ \/ \/ \/ \/ \/ \/ \/ \/ \/ \/ \/ \/ \/ \/ \/ \/ \/ \/ \/ \/ \/ \/ \/ \/ \/ \/ \/ \/ \/ \/ \/ \/ \/ \/ \/ \/ \/ \/ \/ \/ \/ \/ \/ \/ \/ \/ \/ \/ \/ \/ \/ \/ \/ \/ \/ \/ \/ \/ \/ Begin MenuMode SetQuestDelay VEFR01NCRGood2EmergencyRadio 0.1 If ( bUsingRadio == 1 ) ; Player used radio (variable set to 1 in the Radio's ingestible effect - in "NVEmergencyRadioSCRIPT") Set bUsingRadio to 0 ShowMessage VEFR01NCREmergencyRadioMSG ; [NOTE: Which buttons are displayed is controlled by conditions in the message itself. Only one support troop at a time and only one support (any) per day.] Set bAwaitingInput to 1 Endif ; -------------------------------------------------------------------------------------------- Radio Menu Up (waiting for selection) ---------------------------------------------------------------------------------- \/ If ( bAwaitingInput == 1) Set iButtonVar to GetButtonPressed If ( iButtonVar > -1 ) Set bAwaitingInput to 0 If ( iButtonVar == 0 ) ; "Cancel [no support]" [RepNVNCR >= 2] Set iRadioButtonPressed to 0 Set iButtonVar to -1 Set bRadioBark to 1 Elseif ( iButtonVar == 1 ) ; "Call for NCR Supply Support" [RepNVNCR >= 2] ResetQuest VEFR01NCRGood2EmergencyRadio Set iRadioButtonPressed to 1 Set iButtonVar to -1 Set bReceivedSupport to 1 Set bTimerSet to 0 Set bRadioBark to 1 If ( iSpawnSupplyDelay == 0 ) VEFR0xRepSpawnMarker02.MoveTo Player 5500 2500 Set iSpawnSupplyDelay to 1 Endif Elseif ( iButtonVar == 2 ) ; "Call for NCR Trooper Support" [RepNVNCR >= 3] Set iRadioButtonPressed to 2 Set iButtonVar to -1 Set bReceivedSupport to 1 Set bTimerSet to 0 Set bRadioBark to 1 If ( iSpawnTrooperDelay == 0 ) VEFR0xRepSpawnMarker02.MoveTo Player 5500 4500 Set iSpawnTrooperDelay to 1 Endif Elseif ( iButtonVar == 3 ) ; "Call for NCR Ranger Support" [RepNVNCR >= 4] Set iRadioButtonPressed to 3 Set iButtonVar to -1 Set bReceivedSupport to 1 Set bTimerSet to 0 Set bRadioBark to 1 If ( GetReputationThreshold RepNVNCR 1 >= 4 ) ; <<>> If ( iSpawnRangerDelay == 0 ) VEFR0xRepSpawnMarker02.MoveTo Player 4500 5500 Set iSpawnRangerDelay to 1 Endif Elseif ( GetReputationThreshold RepNVNCR 1 >= 5 ) ; <<>> If ( iSpawnPatrolDelay == 0 ) VEFR0xRepSpawnMarker02.MoveTo Player 5500 3500 Set iSpawnPatrolDelay to 1 Endif Elseif ( GetReputationThreshold RepNVNCR 1 >= 6 && GetGlobalValue VStoryState >= 40 ) ; <<>> If ( iSpawnCombatDelay == 0 ) VEFR0xRepSpawnMarker02.MoveTo Player 3500 5500 Set iSpawnCombatDelay to 1 Endif Endif Elseif ( iButtonVar == 4 ) ; "Support Exhausted for Today" Set iRadioButtonPressed to 4 Set iButtonVar to -1 Set bRadioBark to 1 Elseif ( iButtonVar == 5 ) ; "Current location outside NCR Support Area" [Not in CanSupport Region] Set iRadioButtonPressed to 5 Set iButtonVar to -1 Set bRadioBark to 1 Elseif ( iButtonVar == 6 ) ; "Reputation with NCR too low - Support Withdrawn" [RepNVNCR < 2] Set iRadioButtonPressed to 6 Set iButtonVar to -1 ; [NOTE: No radio response for this option. ("bRadioBark" is NOT set to 1) ] Endif Else Return Endif Endif ; -------------------------------------------------------------------------------------------- END Radio Menu Up (waiting for selection) -------------------------------------------------------------------------- /\ ; -------------------------------------------------------------------------------------------- NCR Supply Support Selected (button 1) ------------------------------------------------------------------------------- \/ If ( iSpawnSupplyDelay == 1 ) ; Set to 1 "Radio Menu Up" section (above). Set iSpawnSupplyDelay to 2 Return Elseif ( iSpawnSupplyDelay == 2 ) Set iSpawnSupplyDelay to 3 VEFR01NCRRadioOperatorDUMMYRef.MoveTo VEFR0xRepSpawnMarker02 Return Elseif ( iSpawnSupplyDelay == 3 ) VEFR0xRepSpawnMarker02.MoveTo VEFR01NCRRadioOperatorDUMMYRef Set iSpawnSupplyDelay to 4 Return Elseif ( iSpawnSupplyDelay == 4 ) VEFR0xRepSpawnMarker02.PlaceAtMe VEFR01NCRSupplyCacheContainer 1 SetStage VEFR01NCRGood2EmergencyRadio 10 Set iSpawnSupplyDelay to 5 Return Elseif ( iSpawnSupplyDelay == 5 ) VEFR01NCRRadioOperatorDUMMYRef.MoveTo VEFR0xNCRRadioOpReturnMarkerRef Set iSpawnSupplyDelay to 6 Return Elseif ( iSpawnSupplyDelay == 6 ) SetQuestDelay VEFR01NCRGood2EmergencyRadio 5.0 ; Set quest processing back to normal. Set iSpawnSupplyDelay to 7 ; <<>> Endif ; -------------------------------------------------------------------------------------------- END NCR Supply Support Selected (button 1) ----------------------------------------------------------------------- /\ ; -------------------------------------------------------------------------------------------- NCR Trooper Support Selected (button 2) ------------------------------------------------------------------------------ \/ If ( iSpawnTrooperDelay == 1 ) ; Set to 1 in "Radio Menu Up" section (above). If ( VEFR01NCRSupportTrooper01AAMRef.GetDead == 1 ) VEFR01NCRSupportTrooper01AAMRef.ResurrectActor 0 Endif Set iSpawnTrooperDelay to 2 Return Elseif ( iSpawnTrooperDelay == 2 ) VEFR01NCRSupportTrooper01AAMRef.MoveTo VEFR0xRepSpawnMarker02 Set bTrooperAlive to 1 Set iSpawnTrooperDelay to 3 Set bTrooperArrived to 0 Set bTrooperAway to 1 Set bSupportArrived to 0 Set bSafetyTimer to 0 Set bSupportAway to 1 ; <<>> (Handled by "Respawn Counter (in case NPC doesn't reach PC)") Return Elseif ( iSpawnTrooperDelay == 3 ) VEFR01NCRSupportTrooper01AAMRef.AddScriptPackage VEFR01NCRGood2BarkAtPlayer Set iSpawnTrooperDelay to 4 ; <<>> Endif ; -------------------------------------------------------------------------------------------- END NCR Trooper Support Selected (button 2) ---------------------------------------------------------------------- /\ ; -------------------------------------------------------------------------------------------- NCR Ranger Support Selected (button 3) ------------------------------------------------------------------------------- \/ If ( iSpawnRangerDelay == 1 ) ; Set to 1 in "Radio Menu Up" section (above). If ( VEFR01NCRSupportRanger01CFRef.GetDead == 1 ) VEFR01NCRSupportRanger01CFRef.ResurrectActor 0 Endif Set iSpawnRangerDelay to 2 Return Elseif ( iSpawnRangerDelay == 2 ) VEFR01NCRSupportRanger01CFRef.MoveTo VEFR0xRepSpawnMarker02 Set bRangerAlive to 1 Set iSpawnRangerDelay to 3 Set bRangerArrived to 0 Set bRangerAway to 1 Set bSupportArrived to 0 Set bSafetyTimer to 0 Set bSupportAway to 1 ; <<>> (Handled by "Respawn Counter (in case NPC doesn't reach PC)") Return Elseif ( iSpawnRangerDelay == 3 ) VEFR01NCRSupportRanger01CFRef.AddScriptPackage VEFR01NCRGood2BarkAtPlayer Set iSpawnRangerDelay to 4 ; <<>> Endif ; -------------------------------------------------------------------------------------------- END NCR Ranger Support Selected (button 3) ---------------------------------------------------------------------- /\ ; -------------------------------------------------------------------------------------------- NCR Patrol Ranger Support Selected (button 3) -------------------------------------------------------------------- \/ If ( iSpawnPatrolDelay == 1 ) ; Set to 1 in "Radio Menu Up" section (above). If ( VEFR01NCRSupportRanger02HMRef.GetDead == 1 ) VEFR01NCRSupportRanger02HMRef.ResurrectActor 0 Endif Set iSpawnPatrolDelay to 2 Return Elseif ( iSpawnPatrolDelay == 2 ) VEFR01NCRSupportRanger02HMRef.MoveTo VEFR0xRepSpawnMarker02 Set bPatrolAlive to 1 Set iSpawnPatrolDelay to 3 Set bPatrolArrived to 0 Set bPatrolAway to 1 Set bSupportArrived to 0 Set bSafetyTimer to 0 Set bSupportAway to 1 ; <<>> (Handled by "Respawn Counter (in case NPC doesn't reach PC)") Return Elseif ( iSpawnPatrolDelay == 3 ) VEFR01NCRSupportRanger02HMRef.AddScriptPackage VEFR01NCRGood2BarkAtPlayer Set iSpawnPatrolDelay to 4 ; <<>> Endif ; -------------------------------------------------------------------------------------------- END NCR Patrol Ranger Support Selected (button 3) ------------------------------------------------------------ /\ ; -------------------------------------------------------------------------------------------- NCR Combat Ranger Support Selected (button 3) ----------------------------------------------------------------- \/ If ( iSpawnCombatDelay == 1 ) ; Set to 1 in "Radio Menu Up" section (above). If ( VEFR01NCRSupportRanger03AAFRef.GetDead == 1 ) VEFR01NCRSupportRanger03AAFRef.ResurrectActor 0 Endif Set iSpawnCombatDelay to 2 Return Elseif ( iSpawnCombatDelay == 2 ) VEFR01NCRSupportRanger03AAFRef.MoveTo VEFR0xRepSpawnMarker02 Set bCombatAlive to 1 Set iSpawnCombatDelay to 3 Set bCombatArrived to 0 Set bCombatAway to 1 Set bSupportArrived to 0 Set bSafetyTimer to 0 Set bSupportAway to 1 ; <<>> (Handled by "Respawn Counter (in case NPC doesn't reach PC)") Return Elseif ( iSpawnCombatDelay == 3 ) VEFR01NCRSupportRanger03AAFRef.AddScriptPackage VEFR01NCRGood2BarkAtPlayer Set iSpawnCombatDelay to 4 ; <<>> Endif ; -------------------------------------------------------------------------------------------- END NCR Combat Ranger Support Selected (button 3) --------------------------------------------------------- /\ End ; End MenuMode block.
2VMS13TeddyBearScript; Fires when the player acquires the ill-gotten teddy bear from Dermot's room in Casa Madrid scn VMS13TeddyBearScript begin OnAdd player SetObjectiveCompleted VMS13 30 1 if GetObjectiveCompleted VMS13 20 SetStage VMS13 40 endif end
3VReactionVeronicaSCRIPT; Plays reactions in a few special cases where a dialogue package isn't preferable ScriptName VReactionVeronicaSCRIPT short bDidBosReaction; short bDidGiftShopReaction; short bDidCodexReaction; ref rTarget; ref rLastTarget; float fLastGreetHour; ; she only has 2 hellos per NPC (1 with Hardin). She'll say them once only. short nRamos; short nTorres; short nSchuler; short nWatkins; short nIbsen; short nTaggart; short nHardin; BEGIN GameMode if(VeronicaREF.GetInCell HooverDamIntPowerPlant04) if (bDidBosReaction == 0 && (VeronicaREF.GetDistance vHDPlantBosRef01 < 500 || VeronicaREF.GetDistance vHDPlantBosRef02 < 500)) VeronicaREF.Say VDialogueVeronicaBosDamReact; endif elseif (bDidGiftShopReaction == 0 && (VeronicaREF.GetDistance SarahWeintraubREF < 1500 || VeronicaREF.GetDistance VVault21SecuritronREF < 1500)) VeronicaREF.Say VDialogueVeronicaGiftShopReact; elseif (bDidCodexReaction == 0 && (VeronicaREF.GetDistance VMS49PaladinLeaderREF < 3000 || VeronicaREF.GetDistance VMS49OutpostPaladin1REF < 1000)) VeronicaREF.Say VDialogueVeronicaCodexReact elseif (VeronicaREF.GetInCell HiddenValley01 && VMS49.nFinalState != 2) if(VeronicaREF.GetDistance RamosREF < 500 && nRamos < 2) set rTarget to RamosREF; elseif (VeronicaREF.GetDistance TorresREF < 500 && nTorres < 2) set rTarget to TorresREF; elseif(VeronicaREF.GetDistance LindaSchulerREF < 500 && nSchuler < 2) set rTarget to LindaSchulerREF; endif if (rTarget != 0 && rTarget != rLastTarget && GameHour > fLastGreetHour + 0.35 && rTarget.IsInCombat == 0 && rTarget.IsTalking == 0) VeronicaREF.SayTo rTarget HELLO; set rLastTarget to rTarget; set fLastGreetHour to GameHour; endif elseif(VeronicaREF.GetInCell HiddenValley02 && VMS49.nFinalState != 2) if(VeronicaREF.GetDistance MelissaWatkinsREF < 500 && nWatkins < 2) set rTarget to MelissaWatkinsREF; elseif (VeronicaREF.GetDistance HVScribeIbsenREF < 500 && nIbsen < 2) set rTarget to HVScribeIbsenREF; elseif (VeronicaREF.GetDistance LarsTaggartREF < 500 && nTaggart < 2) set rTarget to LarsTaggartREF; elseif (VeronicaREF.GetDistance EdgarHardinREF < 500 && VDialogueHiddenValley.CurrentElder == 0 && nHardin < 1) set rTarget to EdgarHardinREF; endif if (rTarget != 0 && rTarget != rLastTarget && GameHour > fLastGreetHour + 0.35 && rTarget.IsInCombat == 0 && rTarget.IsTalking == 0 && VeronicaREF.IsTalking == 0) VeronicaREF.SayTo rTarget HELLO; set rLastTarget to rTarget; set fLastGreetHour to GameHour; endif else StopQuest VReactionVeronica; endif END
4VMS12QuestScript; Quest script for Three-Card Bounty scn VMS12QuestScript ------------------------------------------------------------------------------------------------------------------------------------------------ ;First Recon Variables ------------------------------------------------------------------------------------------------------------------------------------------------ short bFirstReconNoSandbox ; 1 = First Recon is on a mission. short bFirstReconHelp ; 1 = First Recon has agreed to help ambush Driver Nephi. short bFirstReconTraveling ; 1= The team is traveling to or from McCarran Field. short bGetIntoPosition ; 1 = First Recon snipers get to their sniping positions. short b10ofSpadesHit ; 1 = Scored a hit on Driver Nephi short bCorporalBetsyHit ; 1 = Scored a hit on Driver Nephi short bCorporalSterlingHit ; 1 = Scored a hit on Driver Nephi short bSergeantBitterRootHit ; 1 = Scored a hit on Driver Nephi ------------------------------------------------------------------------------------------------------------------------------------------------ ;Fiend Mini-Boss Variables ------------------------------------------------------------------------------------------------------------------------------------------------ short bBountyHuntActive ; 1 = player is actively hunting one of the Fiends. short bHuntingDriver ; 1 = Player is bounty hunting Driver Nephi. short bHuntingViolet short bHuntingCookCook short bDriverNephiDead short bVioletDead short bCookCookDead int nKillCount short bVioletComplete short bDriverNephiComplete short bCookCookComplete BEGIN GameMode ; JSH 10.29.10 - Remove Little Buster objective if Cook-Cook already dead if (GetObjectiveDisplayed VMS12 22 == 1) && (GetObjectiveCompleted VMS12 22 == 0) if (FiendCookCookRef.GetDead == 1) SetObjectiveDisplayed VMS12 22 0 endif endif END
5RSFoxtrotQuestTestSCRIPT; Test script to assign start-of-quest state to RS Foxtrot on entering the bunker scn RSFoxtrotQuestTestSCRIPT begin onTrigger if getStage VMSRSGlobalCommBreakdown < 10 setStage VMSRSGlobalCommBreakdown 5 ShowMessage BMRadioHelloMsg endif end
6RSFoxtrotQuestSCRIPT; Trigger on use of terminal scn RSFoxtrotQuestSCRIPT begin onTriggerEnter player ;Disabled 6/30 CESif getStage RSAlphaQuest == 20 && getStage RSBravoQuest == 20 && getStage RSCharlieQuest == 20 && getStage RSDeltaQuest == 20 && getStage RSEchoQuest == 20 && getStage RSFoxtrotQuest == 20 ;Disabled 6/30 CES setStage RSGlobalCommBreakdown 20 ;Disabled 6/30 CES setObjectiveCompleted RSGlobalCommBreakdown 10 1 ;Disabled 6/30 CES setObjectiveDisplayed RSGlobalCommBreakdown 21 0 ;Disabled 6/30 CES setObjectiveDisplayed RSGlobalCommBreakdown 22 0 ;Disabled 6/30 CES setObjectiveDisplayed RSGlobalCommBreakdown 23 0 ;Disabled 6/30 CES setObjectiveDisplayed RSGlobalCommBreakdown 24 0 ;Disabled 6/30 CES setObjectiveDisplayed RSGlobalCommBreakdown 25 0 ;Disabled 6/30 CES setObjectiveDisplayed RSGlobalCommBreakdown 26 0 ;Disabled 6/30 CESendif end
7188tradingpostbehaviorscn 188tradingpostbehavior Script int NcrPatrolDirection ; 0 = McCarran, 1 = Hoover Dam int AlexanderReferral ; 0 = PC not referred to Alexander, 1 = PC has been referred int AlexanderSpecial ; 0 = PC has not retrieved a special gun for Alex; 1 = PC has int PredictionNumber ; increments the number of predictions short bAskedArmsMercAboutDischarge; short bAlexanderStoreOpen
81EFrankWeathersSCRIPTscn 1EFrankWeathersSCRIPT int iTold ; 1 = told Frank where his family is int iAngry ; 1 = got Frank angry by not telling him begin onDeath setstage vccleftmyheart 0 end
91EKeithScriptscn 1EKeithScript BEGIN OnDeath Player set VDialogueVegasEast2.PlayerKilledKeith to 1 END BEGIN OnDeath CaptainParkerREF CaptainParkerREF.StartConversation Player ParkerHelp END BEGIN OnHit CaptainParkerREF set VDialogueVegasEast2.KeithQuestDone to 2 Kill END
101ELoadedDiceScriptscn 1ELoadedDiceScript begin OnAdd Player set VDialogueVegasEast2.LoadedDiceFound to 1 AddNote VDialogueVegasEastDiceNote RemoveNote VDialogueVegasEastKeithNote end
111EWatchControlScriptScn 1EWatchControlScript Short bDoOnce Int iTurn Float fTimer Begin GameMode If bDoOnce == 0 If GetObjectiveDisplayed VDialogueVegasNorth 10 == 1 Set fTimer to (fTimer + GetSecondsPassed) If iTurn == 0 SquatterWatchQuest1REF.Enable Set iTurn to 1 Return Elseif iTurn == 1 && fTimer >= 0.5 SquatterWatchQuest2REF.Enable Set iTurn to 2 Return Elseif iTurn == 2 && fTimer >= 1.0 SquatterWatchQuest3REF.Enable Set iTurn to 3 Set bDoOnce to 1 Return Endif Endif Else Disable MarkForDelete Endif End
121EWatchFiendDeathScriptscn 1EWatchFiendDeathScript begin OnDeath set VDialogueVegasNorth.NumFiendsDead to (VDialogueVegasNorth.NumFiendsDead + 1) if VDialogueVegasNorth.NumFiendsDead == 4 set VDialogueVegasNorth.FiendsDealtWith to 1 If GetStageDone VDialogueVegasNorth 20 == 1 && GetStageDone VDialogueVegasNorth 25 != 1 SetStage VDialogueVegasNorth 25 Endif endif end
131EWatchSquatter1Scriptscn 1EWatchSquatter1Script begin OnDeath set VDialogueVegasNorth.NumSquattersDead to (VDialogueVegasNorth.NumSquattersDead + 1) If GetObjectiveDisplayed VDialogueVegasNorth 10 == 1 if VDialogueVegasNorth.NumSquattersDead == 3 Set vDialogueVegasNorth.SquattersDealtWith to 1 SetObjectiveCompleted VdialogueVegasNorth 10 1 SetObjectiveDisplayed VdialogueVegasNorth 15 1 endif Endif end Begin OnStartCombat Player SquatterWatchQuest2REF.StartCombat Player SquatterWatchQuest3REF.StartCombat Player End
141EWatchSquatter2Scriptscn 1EWatchSquatter2Script begin OnDeath set VDialogueVegasNorth.NumSquattersDead to (VDialogueVegasNorth.NumSquattersDead + 1) if VDialogueVegasNorth.NumSquattersDead == 3 set VDialogueVegasNorth.SquattersDealtWith to 1 SetObjectiveCompleted VdialogueVegasNorth 10 1 SetObjectiveDisplayed VdialogueVegasNorth 15 1 endif end
15223AmmoAddScriptscn 223AmmoAddScript int killme BEGIN OnAdd Player Set killme to 1 END begin GameMode if (killme == 1) Player.AddItem Ammo223 20 RemoveMe endif end
1622LRPlinkingAmmoAddScriptscn 22LRPlinkingAmmoAddScript int killme BEGIN OnAdd Player Set killme to 1 END begin GameMode if (killme == 1) Player.AddItem Ammo22LRPlinking 100 RemoveMe endif end
1738SpecialAmmoAddScriptscn 38SpecialAmmoAddScript int killme BEGIN OnAdd Player Set killme to 1 END begin GameMode int countofstuff; int numberToAdd; if (killme == 1) Player.AddItem Ammo38Special 50 RemoveMe endif end
18556mmSurplusAmmoAddScriptscn 556mmSurplusAmmoAddScript int killme BEGIN OnAdd Player Set killme to 1 END begin GameMode int countofstuff; int numberToAdd; if (killme == 1) Player.AddItem Ammo556mmSurplus 250 RemoveMe endif end
195mmSurplusAmmoAddScriptscn 5mmSurplusAmmoAddScript int killme BEGIN OnAdd Player Set killme to 1 END begin GameMode int countofstuff; int numberToAdd; if (killme == 1) Player.AddItem Ammo5mmSurplus 250 RemoveMe endif end
2087bEntranceChargeSCRIPTscn 87bEntranceChargeSCRIPT short playerTriggered ; set to 1 when player triggers begin onTriggerEnter Player ;if the player hasnt done it before... if playerTriggered == 0 set playerTriggered to 1 ;spawn the SuperMutant and start him running ;mrk87bSMEntranceCharge.enable endif end
21ActivateEdwardsCampscn ActivateEdwardsCamp begin onTriggerEnter EdwardsREF SetStage VMS43a 35 EdwardsFireREF.enable End
22ActivateEdwardsEchoSandboxscn ActivateEdwardsEchoSandbox begin onTriggerEnter EdwardsREF SetStage VMS43a 30 End
23ActivateEmilySCRIPTscn ActivateEmilySCRIPT short bAwardStreetRepOnce ; (8_6_10) To keep the Player from getting a reputation benefit more than once. -ETB int iTalkTwice Begin OnTriggerEnter player if ( iTalkTwice <= 1 ) FollowerEmily.AddScriptPackage FollowerEmilyDialogue ; (8_5_10) To make Emily forcegreet Player. -ETB FollowerEmily.Evp ActivateEmily.disable Set iTalkTwice to ( iTalkTwice + 1 ) endif If ( bAwardStreetRepOnce == 0 ) Set bAwardStreetRepOnce to 1 Player.AddReputation RepNVTheStrip 1 2 ; (8_6_10) After the Player comes out of the Lucky 38 for the first time the people of the Strip are impressed. -ETB Endif end
24ActivateMiloSCRIPTscn ActivateMiloSCRIPT int DoOnce ref Link int do1 int do2 int do3 Begin OnTriggerEnter player if DoOnce==0 set Link to getLinkedRef Link.enable 1 set DoOnce to 1 ;showWarning "Trigger Fires" endif end Begin OnTriggerEnter if do1 == 0 if getactionref == NelsonNCRHostage01REF set NelsonNCRHostage01REF.Home to 1 set do1 to 1 endif endif if do2 == 0 if getactionref == NelsonNCRHostage02REF set NelsonNCRHostage02REF.Home to 1 set do2 to 1 endif endif if do3 == 0 if getactionref == NelsonNCRHostage03REF set NelsonNCRHostage03REF.Home to 1 set do3 to 1 endif endif end
25ActivateStartLinkedCombatscn ActivateStartLinkedCombat ref creature begin OnActivate set creature to getLinkedRef creature.startCombat player activate end
26AddDrainedSmallEnergyCellEffectScriptscn AddDrainedSmallEnergyCellEffectScript begin ScriptEffectStart if GetRandomPercent < 50 additem DrainedSmallEnergyCell 1 1 else endif end
27AddictionRemovalEffectSCRIPTscn AddictionRemovalEffectSCRIPT begin ScriptEffectStart RemoveSpell WithdrawalAlcohol RemoveSpell WithdrawalAntNectar RemoveSpell WithdrawalBuffout RemoveSpell WithdrawalHydra RemoveSpell WithdrawalJet RemoveSpell WithdrawalMentats RemoveSpell WithdrawalMorphine RemoveSpell WithdrawalPsycho RemoveSpell WithdrawalQuantumNukacola RemoveSpell WithdrawalRebound RemoveSpell WithdrawalSteady RemoveSpell WithdrawalTobacco RemoveSpell WithdrawalTurbo ShowMessage AddictionRemovalMsg end
28AliceMcLaffertyScriptScn AliceMcLaffertyScript Begin OnDeath set VCassCompanion.bKilledCrimsonCaravan to 1 if (GetStageDone VMS05 100 == 0) SetStage VMS05 110 endif if (GetStageDone VMS51 100 == 0) SetStage VMS51 110 endif ; CAV: 8.14.10 Commented out line below to address 35712, need to re-order how Cass can now give murder objectives if you were getting evidence first. if GetStage VCassCompanion >= 40 ; SetObjectiveCompleted VCassCompanion 80 1 RoseofSharonCassidyREF.AddScriptPackage CassAliceDeadDialoguePackage endif if GetQuestRunning VNellisJack && GetObjectiveDisplayed VNellisJack 40 && GetObjectiveCompleted VNellisJack 40 == 0 SetObjectiveDisplayed VNellisJack 40 0 SetObjectiveCompleted VNellisJack 45 1 SetObjectiveDisplayed VNellisJack 55 1 endif End
29AlienRadioBeaconSCRIPTscn AlienRadioBeaconSCRIPT float timer ; intermittently broadcasting radio beacon begin gamemode if GetDestroyed == 0 if timer > 0 set timer to timer - GetSecondsPassed else ;AlienRadioBeaconREF.startRadioConversation ;showWarning "Beginning Play" set timer to 10 endif endif end
30ambushVolumeSCN ambushVolume BEGIN onTriggerEnter player REF myLink SET myLink to getLinkedRef myLink.enable mylink.startCombat player END
31AndersonScriptscn AndersonScript begin OnDeath if (VNPCFollowers.ArcadeHired == 1) set VMS11.bArcadeWitness to 1 endif if GetObjectiveDisplayed VMS11 75 SetObjectiveCompleted VMS11 75 1 SetStage VMS11 90 Set VMS11.nOutcome to 2; endif end
32AntivenomEffectSCRIPTscn AntivenomEffectSCRIPT begin ScriptEffectStart Dispel BarkScorpionPoison Dispel CazadorPoison Dispel DeathClawPoison Dispel DLC03FeralGhoulPoison Dispel DLC03RadScorpion3Poison Dispel NightstalkerPoison Dispel RadScorpion1Poison Dispel RadScorpion2Poison ShowMessage PoisonRemovalMsg end
33AntNectarSCRIPTfxscn AntNectarSCRIPTfx ; the magic effect for the IS mod associated with the ant nectar chem begin ScriptEffectStart iMod AntNectarISFX ; apply ant-o-vision end begin ScriptEffectFinish riMod AntNectarISFX ; and remove it end
34ArcadeBitterSpringsConversationScriptscn ArcadeBitterSpringsConversationScript short bDoOnce Begin OnTriggerEnter Player If (VNPCFollowers.ArcadeHired == 1 && bDoOnce !=1) ArcadeREF.Say ArcadeBitterSprings Set bDoOnce to 1 Disable MarkForDelete EndIf End
35ArcadeGettingArmorTriggerScriptscn ArcadeGettingArmorTriggerScript begin OnTriggerEnter ArcadeRef ;ArcadeRef.MoveToMarkerWithFade end
36ArcadeGoodbyeTriggerScriptscn ArcadeGoodbyeTriggerScript short bDoOnce begin OnTriggerEnter player if (VDialogueArcadeGannon.nArcadeGoForTeslaEK > 0) && (bDoOnce == 0) ArcadeRef.AddScriptPackage ArcadeGoodbyeDialoguePackage set bDoOnce to 1 Disable endif end
37ArcadeHooverDamTriggerScriptscn ArcadeHooverDamTriggerScript short bDoOnce begin OnTriggerEnter player if (VNPCFollowers.ArcadeHired == 1) && (ArcadeRef.Waiting == 0) if (bDoOnce == 0) ArcadeREF.AddScriptPackage ArcadeHooverDamDialoguePackage set bDoOnce to 1 Disable MarkForDelete endif endif end
38ArcadeRetrieverArmorScriptscn ArcadeRetrieverArmorScript short DoOnce ;Script blocker float Timer ;Timer used for animation control BEGIN GameMode if ( DoOnce== 0 ) set Timer to 4 set DoOnce to 1 ArcadeREF.EquipItem OutfitGannonArcadesDoctor; ArcadeREF.RemoveAllTypedItems player 0 0 24 NVArcadePersonalEquipment ; Armor ArcadeREF.RemoveAllTypedItems player 0 0 26 NVArcadePersonalEquipment ; Clothing ArcadeREF.RemoveAllTypedItems player 0 0 31 NVArcadePersonalEquipment; ArcadeREF.RemoveAllTypedItems player 0 0 40 NVArcadePersonalEquipment; ArcadeREF.RemoveAllTypedItems player 0 0 41 NVArcadePersonalEquipment; ArcadeREF.RemoveAllTypedItems player 0 0 47 NVArcadePersonalEquipment; endif set Timer to ( Timer - GetSecondsPassed ) if ( Timer <= 3 ) && ( DoOnce == 1 ) IMod FadeToBlackISFX ArcadeREF.MoveToMarkerWithFade ArcadeWaitForPlayerMarker set DoOnce to 2 endif if ( Timer <= 0 ) && ( IsImagespaceActive FadeToBlackISFX == 0 ) EnablePlayerControls if (VDialogueArcadeGannon.nArcadeResolution == 2) set VDialogueArcadeGannon.nArcadeGoForTeslaEK to 3 ; Arcade is giving his armor to the PC elseif (VDialogueArcadeGannon.nArcadeResolution == 1) set VDialogueArcadeGannon.nArcadeGoForTeslaEK to 2 ; Arcade is keeping his armor ArcadeRef.AddItemHealthPercent ArmorGannonTesla 1 0.65 ArcadeRef.AddItemHealthPercent ArmorGannonTeslaHelmet 1 0.65 ArcadeRef.EquipItem ArmorGannonTesla ArcadeRef.EquipItem ArmorGannonTeslaHelmet endif set DoOnce to 0 StopQuest ArcadeRetrieveArmorTimer endif endif END
39ArcadeScriptscn ArcadeScript int Waiting ; 0 = Not waiting, 1 = Waiting int CombatStyleMelee ; 0 = Not melee, 1= Melee int CombatStyleRanged ; 0 = Not ranged, 1 = Ranged int IsFollowingDefault ; 0 = Not following default, 1 = Is following default range int IsFollowingLong ; 0 = Not following long, 1 = Is following long int FollowerSwitchAggressive ; 0 = Passive (wait on player), 1 = Aggressive (attack when see enemies) ;--------------------------------------------------------------------------------------------------------------------------------------------- begin OnDeath if ( VNPCFollowers.ArcadeHired == 1 ) set VNPCFollowers.nCurrentFollowers to VNPCFollowers.nCurrentFollowers - 1 ; <<< (Added 7_10_10) Arcade needed "nCurrentFollowers" set so one of Victor's... if (VNPCFollowers.nCurrentFollowers == 0) ; <<< ...dialogue's would acknowledge his death properly (used template from Boone) -ETB set VNPCFollowers.bPlayerHasFollower to 0 ; <<< endif ; <<< set VNPCFollowers.ArcadeHired to 0 ;Player.RemoveFromFaction VArcadeFaction -ETB set VNPCFollowers.bHumanoidInParty to 0 ShowMessage FollowerMessageDeadArcade player.RemovePerk BetterHealing ShowMessage FollowerMessagePerkArcadeRemove endif set VNPCFollowers.bArcadeDead to 1 ; Fail VMS54 if it's not completed since you need Arcade around. if (GetQuestCompleted VMS54 == 0) SetStage VMS54 110 endif ; Remove VMS35 objective to enslave Arcade if it's open but not complete if (GetObjectiveDisplayed VMS35 50 == 1) && (GetObjectiveCompleted VMS35 50 == 0) SetObjectiveDisplayed VMS35 50 0 endif end ;--------------------------------------------------------------------------------------------------------------------------------------------- begin OnCombatEND if GetPlayerTeammate == 1 resethealth restoreav perceptioncondition 100 restoreav endurancecondition 100 restoreav leftattackcondition 100 restoreav leftmobilitycondition 100 restoreav rightattackcondition 100 restoreav rightmobilitycondition 100 endif end BEGIN OnLoad ;Script to make sure we set the right combat style on loading. If (CombatStyleMelee == 1) ArcadeREF.SetCombatStyle FollowersCombatStyleMelee; Else ArcadeREF.SetCombatStyle FollowersCombatStyleRanged; EndIf END
40ArcadeTestSiteTriggerScriptscn ArcadeTestSiteTriggerScript short bDoOnce begin OnTriggerEnter player if (bDoOnce == 0) if (VNPCFollowers.ArcadeHired == 1) && (ArcadeRef.Waiting == 0) ArcadeRef.AddScriptPackage ArcadeTestSiteDialoguePackage set bDoOnce to 1 Disable MarkForDelete endif endif end
41ArcadeVault22ConversationScriptscn ArcadeVault22ConversationScript short bDoOnce Begin OnTriggerEnter Player If (VNPCFollowers.ArcadeHired == 1 && bDoOnce !=1) ArcadeREF.Say ArcadeVault22 ;ShowWarning "Arcade Sez...!" Set bDoOnce to 1 Disable MarkForDelete EndIf End
42ArcadeVertibirdTriggerScriptscn ArcadeVertibirdTriggerScript short bDoOnce begin OnTriggerEnter player if (bDoOnce == 0) if (VNPCFollowers.ArcadeHired == 1) && (ArcadeRef.Waiting == 0) ArcadeRef.AddScriptPackage ArcadeVertibirdDialoguePackage set bDoOnce to 1 Disable MarkForDelete endif endif end
43ArcadeWestSideTriggerScriptscn ArcadeWestSideTriggerScript short bMentionedAnderson short bMentionedOutcome begin OnTriggerEnter player if (VNPCFollowers.ArcadeHired == 1) if (GetQuestRunning VMS11 == 1) && (GetStage VMS11 < 40) && (bMentionedAnderson == 0) ;ShowWarning "Arcade mentions Anderson" ArcadeREF.SayTo player ArcadeWhiteWashInProgress set bMentionedAnderson to 1 endif if (GetQuestCompleted VMS11 == 1) if (GetStageDone VMS11 140 == 0) && (VMS11.nOutcome != 3) && (VMS11.bArcadeWitness == 0) && (bMentionedOutcome == 0) ArcadeREF.StartConversation player ArcadeAboutAnderson set bMentionedOutcome to 1 Disable MarkForDelete endif endif endif end
44ArmoredVaultSuitMountedSCRIPTscn ArmoredVaultSuitMountedSCRIPT BEGIN OnActivate if IsActionRef player == 1 player.additem MS03VaultSuit21Armored 1 1 disable endif END
45AstorDeadScriptscn AstorDeadScript begin onDeath if AstorREF.GetDead == 1 SetStage VMS43 40 EdwardsREF.RemoveFromFaction PrivateEdwardsNeutral EdwardsGhoul01.RemoveFromFaction PrivateEdwardsNeutral EdwardsGhoul02.RemoveFromFaction PrivateEdwardsNeutral EdwardsGhoul03.RemoveFromFaction PrivateEdwardsNeutral endif if getquestcompleted vcceyeforaneye == 0 setstage vcceyeforaneye 0 endif end
46AttackedCaravanTriggerSCRIPTscn AttackedCaravanTriggerSCRIPT ; A KISS script to handle ambush and corpse cleanup afterward. Float fTimePassed Short bCorpseClean short bDoOnce Begin OnLoad If VERT1CaravanAttackedMarker.GetDisabled != 1 If GameDaysPassed <= ( fTimePassed + 5 ) If bCorpseClean != 1 VERT1AttackedCaravanBlood01REF.Disable VERT1AttackedCaravanBlood02REF.Disable VERT1AttackedCaravanBlood03REF.Disable VERT1AttackedCaravanBlood04REF.Disable VERT1AttackedCaravanSkel01REF.Enable VERT1AttackedCaravanSkel02REF.Enable VERT1AttackedCaravanSkel03REF.Enable VERT1AttackedCaravanCorpse01REF.Disable VERT1AttackedCaravanCorpse02REF.Disable VERT1AttackedCaravanCorpse04REF.Disable Set bCorpseClean to 1 Endif Endif Endif End begin OnTriggerEnter player if bDoOnce == 0 VERT1GSCaravanAmbush01DudeREF.AddScriptPackage VERT1GSCaravanRun VERT1GSCaravanAmbush02DudeREF.AddScriptPackage VERT1GSCaravanRun Set fTimePassed to GameDaysPassed Set bDoOnce to 1 endif end
47AutoDocTimerQuestScriptscn AutoDocTimerQuestScript short DoOnce ;Script blocker float Timer ;Timer used for animation control BEGIN GameMode if ( DoOnce== 0 ) set Timer to 4 set DoOnce to 1 endif set Timer to ( Timer - GetSecondsPassed ) if ( Timer <= 3 ) && ( DoOnce == 1 ) IMod FadeToBlackISFX PlaySound QSTFortSaveCaesar set DoOnce to 2 endif if ( Timer <= 0 ) && ( IsImagespaceActive FadeToBlackISFX == 0 ) EnablePlayerControls set DoOnce to 0 set VFreeformTheFort.bCaesarInComa to 0 FortCaesarRef.StartConversation player StopQuest AutoDocTimerQuest endif endif END
48AutomatScript01scn AutomatScript01 short opened begin onActivate if opened == 0 set opened to 1 activate setDestroyed 1 endif end begin onLoad if GetOpenState == 1 && opened == 0 setDestroyed 1 endif end
49AWMBrokenDoorScriptscn AWMBrokenDoorScript ; ;This script is for the broken door in Anchorage War Memorial. ;The player needs a skill of 95% repair to fix it, but if they are led to it through the freeform ;gameplay in the area they will receive a door part that will let them repair it with 35% repair skill. ;============================================== short passSkill ;skill needed to fix the door short isFixed Begin onActivate if (isFixed == 1) activate else if (IsActionRef player == 1) if player.getItemCount AWMFFDoorComponent > 0 ;if the player has the door component, the repair skill should be much less set passSkill to 35 if player.getav repair >= passSkill ;lower repair skill ShowMessage AWMDoorOpenedRepairLowMsg passSkill ;Text Assumes you have the missing part player.removeitem AWMFFDoorComponent 1 set isFixed to 1 ;Now the door is fixed. Don't make the player fix it every activation. activate else ShowMessage DoorOpenFailedRepairMsg passSkill endif else ;doesn't have the part set passSkill to 95 if player.getav repair >= passSkill ;higher repair skill ShowMessage AWMDoorOpenedRepairHighMsg passSkill ;Text Assumes you do not have the missing part set isFixed to 1 ;Now the door is fixed. Don't make the player fix it every activation. activate else if player.getav repair >= 35 ShowMessage DoorOpenFailedRepairHighMsg passSkill else ShowMessage DoorOpenFailedRepairMsg passSkill endif endif endif endif endif End
50AWMFridgeStashScriptscn AWMFridgeStashScript ; ;This script checks to see if the player has a very high perception or has the AWMNoteFFStashLocation note. ;If so, a message will display and more loot will be added to the fridge. ;=============================================================== short PerceptionNeeded ;skill needed to fix the door short doOnce short openAfterButton short button Begin onActivate if (doOnce == 1) activate else if (IsActionRef player == 1) set PerceptionNeeded to 5 if getHasNote AWMNoteFFStashLocation && player.getItemCount AWMStashKey == 0 ;if player has the note but no key ShowMessage AWMStashNoteFridgeMsg set openAfterButton to 1 elseif player.getav Perception >= PerceptionNeeded && player.getItemCount AWMStashKey == 0 ;or if player has high Perception ShowMessage AWMHighPerceptionPassFridgeMsg PerceptionNeeded set openAfterButton to 1 elseif player.getItemCount AWMStashKey > 0 && (getHasNote AWMNoteFFStashLocation || player.getav Perception >= PerceptionNeeded) ShowMessage AWMStashFridgeKeyMsg additem Caps90 2 additem Caps001 200 additem AWMNoteMirelurkRecipe 1 set openAfterButton to 1 set doOnce to 1 else activate endif endif endif End Begin GameMode if openAfterButton == 1 set button to getButtonPressed ;grab the button state, you don't know when this will be set if button > -1 ;if a valid response is received start doing stuff set openAfterButton to 0 activate endif endif End
51B29BallastScriptscn B29BallastScript int Deployed int Button int BallastDeployed int DestroyOnce ref MyLink begin onLoad if DestroyOnce == 0 setDestroyed 1 set DestroyOnce to 1 endif end begin onActivate if IsActionRef Player == 1 ShowMessage VMS15BallastMessage endif end begin GameMode ; Added conditional code to reduce the cost of running the script on every frame. Part of a game-wide revision of scripts - Jorge 03/14/10 If GetObjectiveDisplayed VMS15 40 != 1 || GetObjectiveCompleted VMS15 40 == 1 Return Else if DestroyOnce == 1 && GetObjectiveDisplayed VMS15 40 && player.GetItemCount VMS15DeployableBallast >= 1 set DestroyOnce to 2 enable setDestroyed 0 B29TowWinchRef.enable endif set MyLink to GetLinkedRef set Button to getButtonPressed if Button == 0 set BallastDeployed to VMS15.BallastDeployed + 1 set VMS15.BallastDeployed to BallastDeployed ;showWarning "Ballast Deployed" ;setDestroyed 1 mylink.enable disable markfordelete player.removeitem VMS15DeployableBallast 1 Activate if BallastDeployed == 2 setObjectiveCompleted VMS15 40 1 setObjectiveDisplayed VMS15 45 1 endif endif Endif end
52BananaYuccaScriptscn BananaYuccaScript int State begin onActivate if State == 0 && GetActionRef == player player.additem NVFreshBananaYuccaFruit 1 set State to 1 playGroup Forward 1 setdestroyed 1 endif end begin onLoad if State == 0 playGroup Backward 1 elseif State == 1 playGroup Forward 1 endif end begin onReset if State == 1 playgroup Backward 1 set State to 0 setdestroyed 0 endif end
53BarkScorpionDropTrigger01Scriptscn BarkScorpionDropTrigger01Script begin onTriggerEnter Player BarkScorpionDrop01.enable 0 BarkScorpionDrop01.StartCombat Player end
54BarkScorpionDropTrigger02Scriptscn BarkScorpionDropTrigger02Script begin onTriggerEnter Player BarkScorpionDrop02.enable 0 BarkScorpionDrop02.StartCombat Player end
55BarkScorpionDropTrigger03Scriptscn BarkScorpionDropTrigger03Script begin onTriggerEnter Player BarkScorpionDrop03.enable 0 BarkScorpionDrop03.StartCombat Player end
56BarkScorpionDropTrigger04Scriptscn BarkScorpionDropTrigger04Script begin onTriggerEnter Player BarkScorpionDrop04.enable 0 BarkScorpionDrop04.StartCombat Player end
57BarkScorpionPoisonEffectSCRIPTscn BarkScorpionPoisonEffectSCRIPT float timerEffect ref myself begin ScriptEffectStart set myself to GetSelf if myself == player ;ShowWarning "Poisoned by bark scorpion!" float randomTime set randomTime to 5.0 + 20.0/99.0 * GetRandomPercent set timerEffect to randomTime ShowMessage FixerDizzyMsg endif end begin ScriptEffectUpdate set myself to GetSelf if myself == player if timerEffect <= 0 ApplyImageSpaceModifier BarkScorpionPoisonISFX set timerEffect to 5.0 + 20/99.0 *GetRandomPercent else set timerEffect to (timerEffect - GetSecondsPassed) endif endif end
58BarrelCactusScriptscn BarrelCactusScript int State begin onActivate if State == 0 && GetActionRef == player player.additem NVFreshBarrelCactusFruit 1 set State to 1 playGroup Forward 1 setdestroyed 1 endif end begin onLoad if State == 0 playGroup Backward 1 elseif State == 1 playGroup Forward 1 endif end begin onReset if State == 1 playgroup Backward 1 set State to 0 setdestroyed 0 endif end
59BCGreatKhanExitTriggerScriptscn BCGreatKhanExitTriggerScript ref EnteringObjectRef begin OnTriggerEnter ;set EnteringObjectRef to GetActionRef ;if GetInFaction EnteringObjectRef BoulderCityGreatKhanFaction ; EnteringObjectRef.Disable ;endif end
60BCHostageTriggerScriptscn BCHostageTriggerScript short bGilbertEscaped short bAckermanEscaped begin OnTriggerEnter BCPrivateGilbertRef if (bGilbertEscaped == 0) BCPrivateGilbertRef.RemoveScriptPackage set VMS20.bGilbertToIdle to 1 BCPrivateGilbertRef.evp set bGilbertEscaped to 1 endif end begin OnTriggerEnter BCPrivateNelsonRef if (bAckermanEscaped == 0) BCPrivateNelsonRef.RemoveScriptPackage set VMS20.bAckermanToIdle to 1 BCPrivateNelsonRef.evp set bAckermanEscaped to 1 endif end
61BCJessupScriptscn BCJessupScript short DoOnce begin OnReset if (GetQuestCompleted VMS20) && (GetIsID BCJessup == 0) Disable MarkForDelete endif end begin GameMode ; The Great Khans should only aggro on the NCR troops/hostages when the player ; is detected skulking around. if VMS20.Recon && (VMS20.bEnemyNCR == 0) if GetDetected player && DoOnce == 0 set DoOnce to 1 SetEnemy BoulderCityGreatKhanFaction BoulderCityNCRFaction endif endif end begin OnStartCombat player ; Player came to negotiate, but attacked instead. Permanent enemy of Boulder City Great Khans. if VMS20.Negotiator && (VMS20.bEnemyGK != 2) Set VMS20.bEnemyGK to 2 endif ; Player is trying to sneak in to rescue the hostages, but caught got if VMS20.Recon && (VMS20.bEnemyGK != 2) Set VMS20.bEnemyGK to 2 endif ; Player attacked the NCR, but then shot some Great Khans in the back. Permanent enemy. if (VMS20.bEnemyNCR) && (VMS20.bEnemyGK != 2) Set VMS20.bEnemyGK to 2 SetStage VMS20 110 return endif if GetQuestRunning VMS20 && (VMS20.bEnemyGK == 2) SetEnemy BoulderCityGreatKhanFaction PlayerFaction SetEnemy BoulderCityGreatKhanFaction BoulderCityNCRFaction SetObjectiveDisplayed VMS20 10 0 SetObjectiveDisplayed VMS20 15 0 SetObjectiveDisplayed VMS20 20 0 SetObjectiveDisplayed VMS20 60 0 SetObjectiveDisplayed VMS20 70 0 if (VMS20.bEnemyNCR == 0) && (GetObjectiveDisplayed VMS20 40 == 0) SetObjectiveDisplayed VMS20 50 1 else SetStage VMS20 110 endif endif end begin OnDeath set VMS20.nDeathsGreatKhans to (VMS20.nDeathsGreatKhans + 1) if (GetObjectiveDisplayed VMS20 80 == 1) && (GetObjectiveCompleted VMS20 80 == 0) SetStage VMS20 110 return endif if (IsKiller player) && (VMS20.bEnemyNCR) && (VMS20.bEnemyGK != 2) Set VMS20.bEnemyGK to 2 endif if (VMS20.nDeathsGreatKhans == 6) if (VMS20.bEnemyNCR) SetStage VMS20 110 endif if (GetObjectiveDisplayed VMS20 50) && (GetStageDone VMS20 110 == 0) SetObjectiveCompleted VMS20 50 1 Set VMS20.bBoulderCityOutcome to 4 SetStage VMS20 100 endif endif end
62BCLieutenantMonroeScriptscn BCLieutenantMonroeScript begin OnStartCombat player if (VMS20.bEnemyNCR == 0) set VMS20.bEnemyNCR to 1 SetEnemy BoulderCityNCRFaction PlayerFaction endif if GetQuestRunning VMS20 SetObjectiveDisplayed VMS20 10 0 SetObjectiveDisplayed VMS20 15 0 SetObjectiveDisplayed VMS20 20 0 SetObjectiveDisplayed VMS20 60 0 SetObjectiveDisplayed VMS20 70 0 SetObjectiveDisplayed VMS20 40 1 endif end begin OnDeath if GetQuestRunning VMS20 SetObjectiveDisplayed VMS20 10 0 SetObjectiveDisplayed VMS20 15 0 SetObjectiveDisplayed VMS20 20 0 SetObjectiveDisplayed VMS20 60 0 SetObjectiveDisplayed VMS20 70 0 SetObjectiveDisplayed VMS20 40 1 endif set VMS20.nDeathsNCR to VMS20.nDeathsNCR + 1 if VMS20.nDeathsNCR == 6 SetObjectiveCompleted VMS20 40 1 SetObjectiveDisplayed VMS20 80 1 endif end
63BCPrivateKowalskiScriptscn BCPrivateKowalskiScript begin OnReset Disable MarkForDelete end
64BCTrooperHostageScriptscn BCTrooperHostageScript Short Freed Short ThankedPlayer Short Button Short DoOnce ref LinkedRef ref Myself BEGIN OnLoad if ( VMS20.HostagesFreed == 0 ) && ( GetDead == 0 ) ; JSH 04/27/11 - Updating variable to prevent zombie. Yes, zombie. ; ignore crime so that I won't respond to friendly fire IgnoreCrime 1 setRestrained 1 ; reset restrained state so I can get back into position after load set DoOnce to 0 setRestrained 0 endif END begin OnReset ; Despawn if I've been rescued if ( VMS20.HostagesFreed == 1 ) ; JSH 04/27/11 - Updating variable to prevent zombie. Yes, zombie. Disable MarkForDelete endif end begin OnDeath set VMS20.nHostageDeaths to (VMS20.nHostageDeaths + 1) if (IsKiller player) if (VMS20.HostagesFreed == 0) RewardKarma -100 ; JSH 04/29/11 - Fail only if not helping Great Khans If ( GetObjectiveDisplayed VMS20 40 == 0 ) SetStage VMS20 110 EndIf SetEnemy BoulderCityNCRFaction PlayerFaction SetEnemy BoulderCityGreatKhanFaction PlayerFaction SetEnemy BoulderCityGreatKhanFaction BoulderCityNCRFaction AddReputation RepNVNCR 0 2 endif endif end BEGIN OnActivate set LinkedRef to GetLinkedRef if ( GetDead == 0 ) if ( VMS20.HostagesFreed == 0 ) if ( IsActionRef player == 1 ) ;if ( Player.IsInCombat == 0 ) if ( GetIsSex Male == 1 ) ShowMessage BCTrooperHostageMsgM elseif ( GetIsSex Female == 1 ) ShowMessage BCTrooperHostageMsgF endif ;else ;ShowMessage FFSupermutantCaptiveNoActivateMessage ;endif endif else Activate endif elseIf ( GetDead == 1 ) Activate endif END begin GameMode ; restrain me once I'm in position if ( DoOnce == 0 ) if ( GetSitting == 3 ) set DoOnce to 1 setRestrained 1 endif endif ; Added conditional code to reduce the cost of running the script on every frame. Part of a game-wide revision of scripts - Jorge 03/14/10 end begin MenuMode 1001 set Button to GetButtonPressed if ( Button == 1 ) set VMS20.HostagesFreed to 1 LinkedRef.SetRestrained 0 SetRestrained 0 LinkedRef.setav Variable02 1 setav Variable02 1 SayTo player GREETING LinkedRef.ignoreCrime 0 ignoreCrime 0 ; Player is supposed to be helping the Khans fight the NCR, so hostages attack the player. if (GetObjectiveDisplayed VMS20 40) StartCombat player LinkedRef.StartCombat player return endif ; If back door is unlocked and they're still hostages, hostages leave that way. Otherwise, they go through the front. if BCHostageRearDoor.GetLocked >0 || VMS20.bHostagesFreeToGo LinkedRef.AddScriptPackage BCTrooperHostageEscape AddScriptPackage BCTrooperHostageEscape else LinkedRef.AddScriptPackage BCTrooperHostageSecretEscape AddScriptPackage BCTrooperHostageSecretEscape endif ; Player hasn't gotten permission to free the hostages, so Great Khans get pissed if VMS20.bHostagesFreeToGo == 0 if (GetObjectiveDisplayed VMS20 10 == 1) && (GetObjectiveCompleted VMS20 10 == 0) SetObjectiveDisplayed VMS20 10 0 endif if (GetObjectiveDisplayed VMS20 15 == 1) && (GetObjectiveCompleted VMS20 15 == 0) SetObjectiveDisplayed VMS20 15 0 endif ; Player has come to negotiate, but ended up breaking out the hostages instead. if VMS20.Negotiator && (VMS20.bGreatKhansSpeech == 0) SetEnemy BoulderCityGreatKhanFaction BoulderCityNCRFaction SetEnemy BoulderCityGreatKhanFaction PlayerFaction SetEnemy BoulderCityGreatKhanFaction BoulderCityHostageFaction SetObjectiveDisplayed VMS20 50 1 else SetObjectiveCompleted VMS20 20 1 if VMS20.nDeathsGreatKhans < 6 SetObjectiveDisplayed VMS20 50 1 else Set VMS20.bBoulderCityOutcome to 4 SetStage VMS20 100 endif endif endif endif end
65BCTrooperScriptscn BCTrooperScript short bDoOnce begin OnReset if GetQuestCompleted VMS20 Disable MarkForDelete endif end begin OnStartCombat player if (LieutenantMonroeRef.GetDead == 0) && (bDoOnce == 0) LieutenantMonroeRef.AddScriptPackage BCLieutenantMonroeAlerted set bDoOnce to 1 endif if (VMS20.bEnemyNCR == 0) set VMS20.bEnemyNCR to 1 SetEnemy BoulderCityNCRFaction PlayerFaction SetEnemy BoulderCityNCRFaction BoulderCityGreatKhanFaction ;SetEnemy BoulderCityGreatKhanFaction PlayerFaction 1 1 SetAlly BoulderCityGreatKhanFaction PlayerFaction endif if GetQuestRunning VMS20 if (VMS20.bEnemyGK == 2) SetStage VMS20 110 else SetObjectiveDisplayed VMS20 10 0 SetObjectiveDisplayed VMS20 15 0 SetObjectiveDisplayed VMS20 20 0 SetObjectiveDisplayed VMS20 60 0 SetObjectiveDisplayed VMS20 70 0 SetObjectiveDisplayed VMS20 40 1 endif endif end begin OnDeath if GetQuestRunning VMS20 SetObjectiveDisplayed VMS20 10 0 SetObjectiveDisplayed VMS20 15 0 SetObjectiveDisplayed VMS20 20 0 SetObjectiveDisplayed VMS20 60 0 SetObjectiveDisplayed VMS20 70 0 SetObjectiveDisplayed VMS20 40 1 endif set VMS20.nDeathsNCR to VMS20.nDeathsNCR + 1 if VMS20.nDeathsNCR == 6 set VMS20.bTroopersDead to 1 if (BCJessupRef.GetDead == 0) SetObjectiveCompleted VMS20 40 1 SetObjectiveDisplayed VMS20 80 1 else set VMS20.bBoulderCityOutcome to 5 SetStage VMS20 100 endif endif end
66BeatrixFXSCRIPTscn BeatrixFXSCRIPT float timer int reset int bump begin gamemode if reset == 0 VFSBeatrixREF.SetRestrained 1 DisablePlayerControls 1 1 1 0 1 1 1 imod FadeToBlack9sISFX set timer to 0 set bump to 0 set reset to 1 endif set timer to timer + getsecondspassed if timer > 1.5 && bump == 0 PlaySound NPCIdleScratchShoulder set bump to 1 endif elseif timer > 2 && bump == 1 PlaySound NPCIdleSwattingSlap set bump to 2 endif elseif timer > 2.3 && bump == 2 PlaySound NPCIdleScratchSelf set bump to 3 endif elseif timer > 2.5 && bump == 3 PlaySound NPCIdleSwattingSlap set bump to 4 endif elseif timer > 3.5 && bump == 4 PlaySound NPCIdleScratchSelf set bump to 5 endif elseif timer > 4.5 && bump == 5 PlaySound NPCFeralGhoulAlert set bump to 6 endif elseif timer > 5.5 && bump == 6 PlaySound NPCFeralGhoulAware set bump to 7 endif if timer > 9 set reset to 0 enableplayercontrols if GameHour <= 23 set GameHour to GameHour + 1 else set GameDaysPassed to GameDaysPassed + 1 set Gamehour to 1 endif set VFSBeatrixREF.iWorking to 0 VFSBeatrixREF.SetRestrained 0 VFSBeatrixREF.evp stopquest BeatrixFX endif end
67BehemothAchievementSCRIPTscn BehemothAchievementSCRIPT ; put this into any behemoth script and increment BehemothsMax global by 1 if you add one short hitBig begin OnDeath set BehemothsKilled to BehemothsKilled + 1 if BehemothsKilled >= BehemothsMax AddAchievement 48 endif end
68BennyIdleTriggerSCRIPTSCN BennyIdleTriggerSCRIPT BEGIN OnTriggerEnter BennyREF set VMQTops.BennyAtTable to 1 TopsBodyguardGoon1REF.evp TopsBodyguardGoon2REF.evp TopsBodyguardGoon3REF.evp TopsBodyguardGoon4REF.evp END
69BennySCRIPTscn BennySCRIPT Begin OnDeath BennyREF.AddItem VPlatinumChip 1 VTopsAmbushTriggerREF.disable if GetObjectiveDisplayed VMQTops 10 SetObjectiveCompleted VMQTops 10 1 endif if getobjectivedisplayed vmqtops 5 setobjectivecompleted vmqtops 5 1 endif if GetObjectiveDisplayed VMQTops 18 setObjectiveCompleted VMQTops 18 1 endif SetObjectiveCompleted VMQTops 42 1 SetStage VMQTops 43 if VStoryState < 20 set VStoryState to 20 endif set VStoryEventBennyKilledCasino TO 1 set VStoryEventBennyFled to 0 set VMQTops.BennyFleeing to 0 if Player.GetItemCount VPlatinumChip == 0 SetObjectiveDisplayed VMQTops 43 1 endif if Player.GetInCell 2ETopsPresidentialSuite == 1 set VMQTops.bElevatorDisabled to 0 endif VTopsAmbushTriggerREF.Disable VTopsAmbushTriggerREF.MarkforDelete if GetObjectiveDisplayed VMQTops 65 SetObjectiveCompleted VMQTops 65 1 endif if GetObjectiveDisplayed VMQTops 20 && GetObjectiveCompleted VMQTops 20 == 0 SetObjectiveDisplayed VMQTops 20 0 endif ; Spawn Vulpes on Strip outside if he wasn't killed in Nipton end BEGIN OnActivate ; Don't let the player talk to Benny on his way to the suite for the seduction scene. if VMQTops.BennySeduce == 1&& GetDeadCount Benny == 0 ;&& VMQTops.BennyIsInSuite == 0 ; commented out for testing bugfix Return else Activate endif END BEGIN OnStartCombat Player SetObjectiveCompleted VMQTops 10 1 if GetObjectiveDisplayed VMQTops 18 == 0 SetObjectiveDisplayed VMQTops 42 1 endif if getobjectivedisplayed vmqtops 5 setobjectivecompleted vmqtops 5 1 endif END
70BennyTeleportTriggerSCRIPTscn BennyTeleportTriggerSCRIPT BEGIN OnTriggerEnter if IsActionRef BennyREF == 1 BennyREF.MoveTo BennyDoorCheatMarkerREF endif END
71BennyToArenaTimerScriptscn BennyToArenaTimerScript short bFadeOutDone short DoOnce ;Script blocker float Timer ;Timer used for animation control BEGIN GameMode if (bFadeOutDone == 1) return endif if ( DoOnce== 0 ) set Timer to 3 set DoOnce to 1 endif set Timer to ( Timer - GetSecondsPassed ) if ( Timer <= 3 ) && ( DoOnce == 1 ) IMod FadeToBlackISFX VFortBennyRef.MoveToMarkerWithFade ArenaOpponentMarker set DoOnce to 2 endif if ( Timer <= 0 ) EnablePlayerControls set bFadeOutDone to 1 StopQuest BennyToArenaTimer set VMS34.FightingBenny to 1 set VMS34.ArenaDuelEnabled to 1 VFortBennyRef.ResetAI endif endif END
72BetsyTheBrahminScriptscn BetsyTheBrahminScript int Waiting ; 0 = Not waiting, 1 = Waiting int CombatStyleMelee ; 0 = Not melee, 1= Melee int CombatStyleRanged ; 0 = Not ranged, 1 = Ranged int IsFollowingDefault ; 0 = Not following default, 1 = Is following default range int IsFollowingLong ; 0 = Not following long, 1 = Is following long int FollowerSwitchAggressive ; 0 = Passive (wait on player), 1 = Aggressive (attack when see enemies) int AbandonedPlayer ; 0 = Haven't abandoned, 1 = Abandoned int BetsyState ; 0 = Default, will run away when the player sleeps ; 1 = Ran away, back at Kevin's ; 2 = Hired for real, won't run away ;------------------------------------------------------------------------------------------------------------------------------ begin OnLoad ; Set Betsy's carry weight to a super high number ; setav carryweight 600 end ;------------------------------------------------------------------------------------------------------------------------------ begin MenuMode ; Added conditional code to reduce the cost of running the script on every frame. Part of a game-wide revision of scripts - Jorge 03/14/10 ;if VNPCFollowers.BetsyHired == 1 ; ; Betsy sneaks away when the player sleeps ; if isPCSleeping == 1 && BetsyState == 0 ; ; ; Should add another condition here to only do this when Betsy has stuff ; if BetsyREF.GetItemCount Everything >= 50 ; ; ; Move all of the items that the player put on Betsy to Tom's other chest ; BetsyREF.removeallitems VFSTomDooleyPlayerStuffMerchantBoxREF ; ; ; Make Tom use that chest for his store ; VFSTomDooleyREF.SetMerchantContainer VFSTomDooleyPlayerStuffMerchantBoxREF ; ; ; Set vars to make Betsy stay in Kevin's pen again ; set BetsyState to 1 ; BetsyREF.evp ; BetsyREF.MoveTo BetsyHomeMarker ; ; ; Change Betsy's name ;; SetActorFullName BrahminNameMsg ; ; Remove Betsy from the party, so the Companion Wheel stops for her ; set VNPCFollowers.BetsyHired to 0 ; set VNPCFollowers.bPlayerHasFollower to 0 ; RemoveFromFaction FollowerFaction ; SetPlayerTeammate 0 ; endif ; endif ; endif end ;--------------------------------------------------------------------------------------------------------------------------------------------- begin OnDeath ; if VNPCFollowers.BetsyHired == 1 ; set VNPCFollowers.bPlayerHasFollower to 0 ; set VNPCFollowers.BetsyHired to 0 ;; ShowMessage FollowerMessageDeadBetsy ; endif end ;--------------------------------------------------------------------------------------------------------------------------------------------- begin OnCombatEND ; if GetPlayerTeammate == 1 ; resethealth ; restoreav perceptioncondition 100 ; restoreav endurancecondition 100 ; restoreav leftattackcondition 100 ; restoreav leftmobilitycondition 100 ; restoreav rightattackcondition 100 ; restoreav rightmobilitycondition 100 ; endif end
73BH01QuestScriptscn BH01QuestScript short HaveAGL ;1=Player has found the Agility Bobblehead short HaveBART ;1=Player has found the Barter Bobblehead short HaveBGUN ;1=Player has found the Big Guns Bobblehead short HaveCHA ;1=Player has found the Charisma Bobblehead short HaveEND ;1=Player has found the Endurance Bobblehead short HaveERGW ;1=Player has found the Energy Weapons Bobblehead short HaveEXPL ;1=Player has found the Explosives Bobblehead short HaveINT ;1=Player has found the Intelligence Bobblehead short HaveLOCK ;1=Player has found the Lockpick Bobblehead short HaveLUK ;1=Player has found the Luck Bobblehead short HaveMEDI ;1=Player has found the Medicine Bobblehead short HaveMELE ;1=Player has found the Melee Weapons Bobblehead short HavePER ;1=Player has found the Perception Bobblehead short HaveREPR ;1=Player has found the Repair Bobblehead short HaveSCNC ;1=Player has found the Science Bobblehead short HaveSGUN ;1=Player has found the Small Guns Bobblehead short HaveSNEK ;1=Player has found the Sneak Bobblehead short HaveSPCH ;1=Player has found the Speech Bobblehead short HaveSTR ;1=Player has found the Strength Bobblehead short HaveUARM ;1=Player has found the Unarmed Bobblehead short Bobbles ;x=Total Number of Bobbleheads found short Carrying ;1= Has one or more Bobbles on self
74BigHornerKnockdownScriptscn BigHornerKnockdownScript ref myself ref mytarget short rnd Begin ScriptEffectStart set rnd to GetRandomPercent if rnd <= 20 set mytarget to GetCombatTarget If mytarget.hasperk stonewall != 1 set myself to GetSelf myself.pushactoraway mytarget 12 Else ShowMessage StonewallMessage EndIf endif End
75BisonSteveElevatorScriptscn BisonSteveElevatorScript int Button begin OnActivate if IsActionRef player == 1 showmessage BisonElevatorMessage endif end begin GameMode set Button to getButtonPressed if Button == 1 UpperDestroyTrigger.Disable 1 LowerDestroyTrigger.Disable 1 BisonLowerElevator.SetDestroyed 0 BisonUpperElevator.SetDestroyed 0 BSUpperButton.SetDestroyed 1 BSLowerButton.SetDestroyed 1 Activate endif end
76BisonSteveRaiderScriptscn BisonSteveRaiderScript int onceonly begin gamemode if nVPrimmDeputyConv.BeagleCaptured >= 4 && onceonly == 0 ;KillActor CG01DadREF set onceonly to 1 endif end
77BlackbirdSingingScn BlackbirdSinging ; Fly, little one, fly! Float fFlyTime Short bFlying Short bFlyReady Begin OnLoad If bFlyReady != 1 Set bFlyReady to 1 Endif End Begin OnHit PlayIdle NVRavenFlyAway Set fFlyTime to 9 Set bFlying to 1 End Begin GameMode If bFlyReady != 1 Return Elseif bFlyReady == 1 If bFlying != 1 If GetDistance Player >= 512 Return Else PlayIdle NVRavenFlyAway Set fFlyTime to 9 Set bFlying to 1 Endif Elseif bFlying == 1 Set fFlyTime to ( fFlyTime - GetSecondsPassed ) If fFlyTime <= 0 Set bFlyReady to 0 Disable MarkForDelete Else Set fFlyTime to ( fFlyTime - GetSecondsPassed ) Endif Endif Endif End
78BlackjackTableAtomicWranglerScriptscn BlackjackTableAtomicWranglerScript begin OnActivate if IsActionRef player if VCasinoCompsAtomicWrangler.Banned ShowMessage AtomicWranglerSlotsMsg else ShowBlackjackMenuParams AtomicWranglerCasinoData 1 200 0 endif endif end
79BlackjackTableTheTopsScriptscn BlackjackTableTheTopsScript begin OnActivate if IsActionRef player if VCasinoCompsTheTops.bFloorManagerIncoming ShowMessage TheTopsFloorManagerMsg else ShowBlackjackMenuParams TheTopsCasinoData 1 200 0 endif endif end
80BlackjackTableUltraLuxeScriptscn BlackjackTableUltraLuxeScript ; hack to make unused tables into artificial statics. Strings are locked so I can't create new assets. BEGIN OnLoad BlackjackTableUltraLuxeStatic1REF.SetDestroyed 1; BlackjackTableUltraLuxeStatic2REF.SetDestroyed 1; BlackjackTableUltraLuxeStatic3REF.SetDestroyed 1; END begin OnActivate if IsActionRef player if VCasinoCompsUltraLuxe.bFloorManagerIncoming ShowMessage UltraLuxeFloorManagerMsg else ShowBlackjackMenuParams UltraLuxeCasinoData 1 200 0 endif endif end
81BlackMountainScriptscn BlackMountainScript int NeilState ; 0 = Neil at bottom of mountain in hut (sandbox) ; 1 = Player is attempting mountain, Neil on his way up ; 2 = Neil in village (sandbox) ; 3 = Neil going to distract mutants ; 4 = Neil performed distraction, heading back int TabithaLeaving ; 0 = Tabitha not leaving, 1 = Tabitha leaving int DistractionDone ; 0 = Distraction hasn't happened, 1 = Distraction done int TabithaParanoia ; 0 = Player doesn't know, 1 = Player knows Tabitha is paranoid int DishHutAttack ; 0 = Nothing, 1 = Super Mutants rush the dish hut int TabithaConfrontation ; 0 = Nothing, 1 = Player entered Tabitha's room int SummitNightkinState ; 0 = At summit (default) ; 1 = Distracted by Neil ; 2 = Sent to kill dumb dumbs int RaulRescued ; 0 = Not rescued ; 1 = Rescued int NeilToldAboutJacobstown ; 0 = Neil didn't tell about Jacobstown ; 1 = Neil told
82BlackMountainTreasureDoorSCN BlackMountainTreasureDoor BEGIN OnActivate Player ; This script was accidentally left on object IndDoorSmAnim01, and can't be removed without breaking doors when the game gets patched, so leaving this minimum script in its place. Activate END
83BlakeSCRIPTscn BlakeSCRIPT BEGIN OnDeath if GetQuestCompleted VMS40 == 0 && GetDeadCount VFSArcadeGannon == 1 SetStage VMS40 30 endif END
84BMBonfireScriptscn BMBonfireScript ; This script is attached to a trigger linked to a fire effect. It hides the fire during the day ; and displays it at night. int Lit ; Tracks whether the fire is currently displaying ref FireREF ; Reference to the linked fire begin GameMode if Lit if GetCurrentTime > 6.0 && GetCurrentTime < 20.0 set FireREF to GetLinkedRef FireREF.Disable 2 set Lit to 0 endif else ; Fire not currently lit if GetCurrentTime < 6.0 || GetCurrentTime > 20.0 set FireREF to GetLinkedRef FireREF.enable 2 set Lit to 1 endif endif end
85BMBoulder1PushScriptscn BMBoulder1PushScript ; This script runs when the player moves a little further up the path leading ; to the rockslide in Black Mountain. It causes the large boulder to begin ; tumbling (with some company). int DoOnce int StartSlide float Timer begin OnTriggerEnter player if DoOnce == 0 NVBoulderSTATIC.disable BMBoulder1REF.enable NVRS01a01.enable NVRS01a02.enable NVRS01a03.enable NVRS01a04.enable NVRS01a05.enable NVRS01a06.enable NVRS01a07.enable NVRS01a08.enable NVRS01a09.enable NVRS01a10.enable NVRS01a11.enable set StartSlide to 1 Set DoOnce to 1 endif end begin GameMode if StartSlide == 1 if Timer < 1.0 set Timer to Timer + GetSecondsPassed else BMBoulder1PushMarker.PlaceAtMe FakeForceBallNudge ;BMBoulder1SoundREF.enable NVRS01a01.PlayGroup Forward 0 NVRS01a02.PlayGroup Forward 0 NVRS01a03.PlayGroup Forward 0 NVRS01a04.PlayGroup Forward 0 NVRS01a05.PlayGroup Forward 0 NVRS01a06.PlayGroup Forward 0 NVRS01a07.PlayGroup Forward 0 NVRS01a08.PlayGroup Forward 0 NVRS01a09.PlayGroup Forward 0 NVRS01a10.PlayGroup Forward 0 NVRS01a11.PlayGroup Forward 0 IMOD RockRumbleISM set StartSlide to 2 set Timer to 0.0 endif endif if StartSlide == 2 ;BMBoulder1SoundREF.MoveTo BMBoulder1REF BMBoulder1REF.PlaySound3d FXEventBoulderLarge ;if Timer > 2.0 && Timer <= 5.0 ; BMBoulder1SoundREF.disable ; BMBoulder2SoundREF.enable ;elseif Timer > 5.0 && Timer <= 8.0 ; BMBoulder2SoundREF.disable ; BMBoulder3SoundREF.enable ;elseif Timer > 8.0 && Timer <= 11.0 ; BMBoulder3SoundREF.disable ; BMBoulder4SoundREF.enable ;elseif Timer > 11.0 && Timer <= 13.5 ; BMBoulder4SoundREF.disable ; BMBoulder5SoundREF.enable ;elseif Timer > 13.5 ; BMBoulder5SoundREF.disable ; set StartSlide to 3 ;endif set StartSlide to 3 set Timer to Timer + GetSecondsPassed endif end
86BMBoulder1PushScript02scn BMBoulder1PushScript02 ; This script runs when the player begins to climb up the trail that leads to a ; rockslide on Black Mountain. It causes several smaller rocks to begin coming ; down as a warning. int DoOnce int StartSlide float Timer begin OnTriggerEnter player if DoOnce == 0 NVRS01b01.enable NVRS01b02.enable NVRS01b03.enable NVRS01b04.enable NVRS01b05.enable NVRS01b06.enable NVRS01b07.enable NVRS01b08.enable NVRS01b09.enable NVRS01b10.enable NVRS01b11.enable NVRS01b12.enable NVRS01b13.enable set StartSlide to 1 Set DoOnce to 1 endif end begin GameMode if StartSlide == 1 if Timer < 1.0 set Timer to Timer + GetSecondsPassed BMBoulder2PushMarker02.PlaceAtMe FakeForceBallNudge ; Play sound for smaller rocks coming down PlaySound FXEventBoulderSmall NVRS01b01.PlayGroup Forward 0 NVRS01b02.PlayGroup Forward 0 NVRS01b03.PlayGroup Forward 0 NVRS01b04.PlayGroup Forward 0 NVRS01b05.PlayGroup Forward 0 NVRS01b06.PlayGroup Forward 0 NVRS01b07.PlayGroup Forward 0 NVRS01b08.PlayGroup Forward 0 NVRS01b09.PlayGroup Forward 0 NVRS01b10.PlayGroup Forward 0 NVRS01b11.PlayGroup Forward 0 NVRS01b12.PlayGroup Forward 0 NVRS01b13.PlayGroup Forward 0 set StartSlide to 2 endif endif end
87BMDishExplosionTriggerScriptscn BMDishExplosionTriggerScript int DoOnce int DishStart ; 0 = Dish not fallen yet ; 1 = Dish about to fall ; 2 = Dish falling ; 3 = Dish fallen, swapped for placed static float Timer begin GameMode if DishStart == 1 if Timer >= 1.5 BMDishExplosionMarkerREF.PlaceAtMe BMDishExplosion set DishStart to 2 else set Timer to Timer + GetSecondsPassed endif elseif DishStart == 2 if Timer >= 8.5 BMFallingDish.disable BMFallenDish.enable set DishStart to 3 else set Timer to Timer + GetSecondsPassed endif endif end
88BMDJBoothEntryScriptscn BMDJBoothEntryScript begin OnTriggerEnter player ; Stop radio broadcast since you're interrupting Tabitha RadioBlackMountainTAREF.SetBroadcastState 0 set VFreeformBlackMountain.TabithaConfrontation to 1 TabithaREF.Say BMTabithaRages 1 TabithaREF.StartCombat player ;TabithaREF.evp end
89BMHutRadioScriptscn BMHutRadioScript ; This script is attached to the radio inside the dome tent in the village portion of Black Mountain. ; It allows players to give false orders to the super mutants if Repair is high enough. int RadioState ; 0 = Original state ; 1 = Already used the radio once, can't do so again ;------------------------------------------------------------------------------------------------------------------------------- begin OnActivate if IsActionRef player && RadioState == 0 && (TabithaREF.GetDead == 0) ; JSH 8/7 Added check if Tabitha was dead so she won't talk from the Great Beyond SetTalkingActivatorActor TabithaREF ;StartConversation player BMTabithaDishHutRadioStart set RadioState to 1 Activate elseif (RadioState == 1) || (TabithaREF.GetDead) ; JSH 8/7 ShowMessage BMHutRadioDeadMsg endif end
90BMIntercom01Scriptscn BMIntercom01Script
91BMNeilConvinceScriptscn BMNeilConvinceScript begin OnTriggerEnter NeilREF ;begin OnTriggerEnter player ;ShowWarning "Neil entered the distraction trigger" if VFreeformBlackMountain.NeilState == 3 ; Neil gestures and says he spotted you down the path NeilREF.Say BMNeilDistractsNightkin ;ShowWarning "Distraction away!" set VFreeformBlackMountain.SummitNightkinState to 1 set VFreeformBlackMountain.DistractionDone to 1 ; The nightkin run off down the path BMMutantMob1.evp BMMutantMob1.setav Perception 1 BMMutantMob2.evp BMMutantMob2.setav Perception 1 BMMutantMob3.evp BMMutantMob3.setav Perception 1 BMMutantMob4.evp BMMutantMob4.setav Perception 1 BMMutantMob5.evp BMMutantMob5.setav Perception 1 ; Make Neil walk back to the dome hut set VFreeformBlackMountain.NeilState to 4 NeilREF.evp endif end
92BMNeilJumpTriggerScriptscn BMNeilJumpTriggerScript ; This script jumps Neil to the southern part of Black Mountain to talk to the player ; if the player approaches the area from that direction. It fires when the player ; passes through the fence gate near the centaur/crater area. int DoOnce begin onTriggerEnter player if DoOnce == 0 if NeilREF.GetDead == 0 if NeilREF.TalkedToPlayer == 0 NeilREF.MoveTo BMNeilJumpMarker set NeilREF.ReadyToTalk to 1 NeilREF.evp set DoOnce to 1 endif endif endif end
93BMNeilScriptscn BMNeilScript int TalkedToPlayer ; Tracks whether Neil talked to the player for the first time int ReadyToTalk ; Tracks whether Neil should attempt to talk to the player begin onDeath ; Hide the objective to meet Neil at the summit if he dies if GetObjectiveDisplayed VMS57 20 == 1 && GetObjectiveCompleted VMS57 20 == 0 SetObjectiveDisplayed VMS57 20 0 endif end
94BMNeilTalkScriptscn BMNeilTalkScript begin onTriggerEnter player NeilREF.AddScriptPackage BMNeilDialogPackage end
95BMNeilTalkTriggerScriptscn BMNeilTalkTriggerScript int DoOnce begin onTriggerEnter player if DoOnce == 0 set NeilREF.ReadyToTalk to 1 NeilREF.evp set DoOnce to 1 endif end
96BMNightkinAmbushTriggerScriptscn BMNightkinAmbushTriggerScript int DoOnce ref LinkedNightkin begin OnTriggerEnter player if DoOnce == 0 set LinkedNightkin to GetLinkedRef LinkedNightkin.enable set DoOnce to 1 endif end
97BMPrisonDoorScriptscn BMPrisonDoorScript int DoOnce begin OnActivate if (IsActionREF Player) && (GetIsReference BlackMoutainPrisonIntDoor) if DoOnce == 0 ; Tabitha fight ; Note: Only do this if Tabitha hasn't left if VNPCFollowers.RaulAvailable == 1 && VFreeformBlackMountain.TabithaLeaving == 0 TabithaREF.MoveTo BMTabithaChargesMarkerREF TabithaREF.AddScriptPackage BMTabithaTravelToPlayerRaulRescuedPackage ; Reveal all the guys Tabitha attacks with BMTabithaFightNightkin02REF.enable BMTabithaFightNightkin04REF.enable Set DoOnce to 1 endif endif elseif (IsActionREF Player) && (GetIsReference BlackMountainTreasureIntDoor) && (GetDeadCount BMRhonda == 0) && (RhondaREF.Following == 1) ; Move Tabitha and her men into position, if they're still alive if TabithaREF.GetDead == 0 ; Make Tabitha and her men not hate you SetEnemy TabithaFaction PlayerFaction 1 1 SetEnemy BlackMountainNightkinFaction PlayerFaction 1 1 SetEnemy BlackMountainSuperMutantFaction PlayerFaction 1 1 ; 11.12.10 JF - Re-hide the guys from Tabitha's fight if they've been enabled BMTabithaFightNightkin02REF.disable 1 BMTabithaFightNightkin04REF.disable 1 BMTowerNightkin.disable 1 BMSummitPatrol.disable 1 BMTabithaFightNightkin03REF.disable 1 BMTabithaFightMutant01REF.disable 1 BMTabithaFightMutant02REF.disable 1 BMTabithaFightMutant03REF.disable 1 BMHutGuard1.disable 1 BMHutGuard2.disable 1 BMVillageMutant3.disable 1 BMVillageMutant2.disable 1 BMVillageMutant1.disable 1 BMMutantMob1.disable 1 BMMutantMob2.disable 1 BMMutantMob3.disable 1 BMMutantMob4.disable 1 BMMutantMob5.disable 1 TabithaREF.MoveTo BMTabithaRhondaFixedMarker TabithaREF.ResetAI TabithaREF.StopCombat Player ; Stop all combat against all related parties player.StopCombatAlarmOnActor TabithaREF.StopCombatAlarmOnActor RaulREF.StopCombatAlarmOnActor ;if BMMutantMob1.GetDead == 0 ; BMMutantMob1.MoveTo BMRhondaFixedGuard1Marker ; BMMutantMob1.ResetAI ; BMMutantMob1.StopCombat Player ;endif ;if BMMutantMob2.GetDead == 0 ; BMMutantMob2.MoveTo BMRhondaFixedGuard2Marker ; BMMutantMob2.ResetAI ; BMMutantMob2.StopCombat Player ;endif ;if BMMutantMob3.GetDead == 0 ; BMMutantMob3.MoveTo BMRhondaFixedGuard3Marker ; BMMutantMob3.ResetAI ; BMMutantMob3.StopCombat Player ;endif ;if BMMutantMob4.GetDead == 0 ; BMMutantMob4.MoveTo BMRhondaFixedGuard4Marker ; BMMutantMob4.ResetAI ; BMMutantMob4.StopCombat Player ;endif ;if BMMutantMob5.GetDead == 0 ; BMMutantMob5.MoveTo BMRhondaFixedGuard5Marker ; BMMutantMob5.ResetAI ; BMMutantMob5.StopCombat Player ;endif ;if BMSummitPatrol.GetDead == 0 ; BMSummitPatrol.MoveTo BMRhondaFixedGuard6Marker ; BMSummitPatrol.ResetAI ; BMSummitPatrol.StopCombat Player ;endif endif endif ; Finally, use the door Activate end
98BMPrisonTerminalScriptscn BMPrisonTerminalScript int FirstActivation int WentMenu int PlayedRadio float Timer int Count begin onActivate if FirstActivation == 0 ; Stop current broadcast ;RadioBlackMountainTAREF.SetBroadcastState 0 ;set FirstActivation to 1 endif Activate end ;----------------------------------------------------------------------------------------------------------------------------- begin MenuMode Set WentMenu to 1 end ;----------------------------------------------------------------------------------------------------------------------------- begin GameMode ; Nothing to do here if Tabitha is dead if TabithaREF.GetDead == 0 if FirstActivation if WentMenu && PlayedRadio == 0 ;RadioBlackMountainTAREF.StartRadioConversation RadioBMPrisonLocked ;Set PlayedRadio to 1 endif endif endif end
99BMRadioConsoleScriptscn BMRadioConsoleScript ref ActivatingActor BEGIN OnActivate set ActivatingActor to GetActionREF if ActivatingActor.GetIsReference player if (GetObjectiveDisplayed VMS55b 10 == 1) SetObjectiveCompleted VMS55b 10 1 SetObjectiveDisplayed VMS55b 20 1 else ShowMessage MQ06LLTerminalMessage endif endif END
100BMRadioControlPanelScriptscn BMRadioControlPanelScript int DoOnce ref ThisRef ref ActivatingActor begin OnActivate set ThisRef to GetSelf set ActivatingActor to GetActionREF if ActivatingActor.GetIsReference player ; For dishes 1, 2, & 4, run their animation if ThisRef.GetIsReference BMDishControlPanel01REF && DoOnce == 0 BMDishControlPanel01REF.PlayGroup Left 1 BMDish01REF.PlayGroup Forward 1 BMDishControlPanel01REF.SetDestroyed 1 set DoOnce to 1 elseif ThisRef.GetIsReference BMDishControlPanel02REF && DoOnce == 0 BMDishControlPanel02REF.PlayGroup Left 1 BMDish02REF.PlayGroup Forward 1 BMDishControlPanel02REF.SetDestroyed 1 set DoOnce to 1 elseif ThisRef.GetIsReference BMDishControlPanel03REF && DoOnce == 0 BMDishControlPanel03REF.PlayGroup Left 1 BMDish03aREF.PlayGroup Forward 1 BMDishControlPanel03REF.SetDestroyed 1 set DoOnce to 1 elseif ThisRef.GetIsReference BMDishControlPanel04REF && DoOnce == 0 BMDishControlPanel04REF.PlayGroup Left 1 BMDish04REF.PlayGroup Forward 1 BMDishControlPanel04REF.SetDestroyed 1 set DoOnce to 1 endif endif end
101BMRadioScriptscn BMRadioScript int LastSongPlayed int LastSongPlayed2 int LastSongPlayed3 int LastSegmentPlayed int LastSegmentPlayed2 int LastSegmentPlayed3 int LastGreeting int LastGreeting2 int SegmentVar int SegmentNum int testvar
102BMRhondaScriptscn BMRhondaScript int RepairedState ; 0 = Not repaired, 1 = Repaired int Examined ; 0 = Not examined, 1 = Examined int Following ; 0 = Not following one ; 1 = Following player ; 2 = Leading Tabitha away int InMourning ; 0 = Default, 1 = Taken to Tabitha's body float Timer int Button int ScreenNumber ; 0 = Default screen ; 1 = Examine screen ; 2 = Repair Examine ; 3 = Science Examine int TalkedToPlayer ; 0 = Didn't talk to player ; 1 = Talked to player int HatesPlayer ; 0 = Doesn't hate ; 1 = Hater ;--------------------------------------------------------------------------------------------------------------------------------------------------- begin onActivate if RepairedState == 0 ; If Rhonda's still broken, show a message allowing the player to fix her if player.getav Science >= 60 ShowMessage BMRhondaBrokenMsg else ShowMessage BMRhondaBrokenNoSkillMsg endif else if GetDead Activate elseif Following < 2 && HatesPlayer == 0 ; If Rhonda's repaired, she talks to you when you activate her StartConversation player BMRhondaGreeting elseif Following == 2 && HatesPlayer == 0 RhondaREF.SayTo player BMRhondaGreeting endif endif end ;--------------------------------------------------------------------------------------------------------------------------------------------------- begin GameMode Set Button to GetButtonPressed if Button == 0 ; Normally, do nothing if ScreenNumber == 1 ; If player fixed robot, make it happen RhondaREF.resurrect 0 RhondaREF.SetActorFullName BMRhondaNameMsg RhondaREF.MoveTo RhondaResMarker RhondaREF.setav Health 500 set RhondaREF.RepairedState to 1 endif set ScreenNumber to 0 elseif Button == 1 ; Fix Rhonda button set ScreenNumber to 1 ShowMessage BMRhondaFixMsg endif ; Make Rhonda go to Tabitha's body if she's dead and nearby if InMourning == 0 if TabithaREF.GetDead == 1 && GetDistance TabithaREF <= 200 set InMourning to 1 RhondaREF.evp ;RhondaREF.say BMRhondaBadReunion endif elseif InMourning == 1 set Timer to Timer + GetSecondsPassed if Timer > 10.0 RhondaREF.say BMRhondaBadReunion set Timer to 0.0 endif endif end
103BMRockslide2Scriptscn BMRockslide2Script int DoOnce begin onTriggerEnter player if DoOnce == 0 BMRockslide2Rock1.enable BMRockslide2Rock2.enable BMRockslide2Rock3.enable BMRockslide2Rock4.enable BMRockslide2Marker.PlaceAtMe FakeForceBallNudge set DoOnce to 1 endif end
104BMRockslide3Scriptscn BMRockslide3Script int DoOnce begin onTriggerEnter player if DoOnce == 0 BMRockslide3Rock1.enable BMRockslide3Rock2.enable BMRockslide3Rock3.enable BMRockslide3Marker.PlaceAtMe FakeForceBallNudge set DoOnce to 1 endif end
105BMRockslide4Scriptscn BMRockslide4Script int DoOnce begin onTriggerEnter player if DoOnce == 0 BMRockslide4Rock1.enable BMRockslide4Rock2.enable BMRockslide4Rock3.enable BMRockslide4Rock4.enable BMRockslide4Rock5.enable BMRockslide4Rock6.enable BMRockslide4Marker.PlaceAtMe FakeForceBallNudge set DoOnce to 1 endif end
106BMTabithaPissedScriptscn BMTabithaPissedScript float Timer int PrefightMessage int ExplosionDone int DoExplosion int DoOnce begin OnTriggerEnter TabithaREF ;if DoOnce == 0 ; ; Make Tabitha scream in rage and then attack the player ; ; if VNPCFollowers.RaulAvailable == 1 ; TabithaREF.SayTo player BMTabithaRages ; else ; TabithaREF.Say BMTabithaPrefight 1 ; ShowMessage BMTabithaPrefight1Msg ; set PrefightMessage to 1 ; endif ; Make Tabitha attack the player ; TabithaREF.StartCombat player ; set DoOnce to 1 ;endif end begin GameMode ; Set var so the explosion happens 2 seconds after the player hit okay ;if PrefightMessage == 1 && GetButtonPressed == 0 ; set DoExplosion to 1 ;endif ; Fire dish explosion and set timer for Tabitha's second line ;if DoExplosion == 1 && Timer > 2.0 ; ; Make dish explode ; BMDishExplosionMarkerREF.PlaceAtMe BMDishExplosion ; BMFallingDish.PlaySound3D FXEventSatelliteDrop ; set ExplosionDone to 1 ; set DoExplosion to 0 ; set PrefightMessage to 2 ; set Timer to 0 ;endif ;if DoExplosion == 1 || PrefightMessage == 2 ; set Timer to Timer + GetSecondsPassed ;endif ; Make Tabitha utter her second line 5 seconds after the explosion ;if Timer > 5.0 && PrefightMessage == 2 ; TabithaREF.Say BMTabithaPrefight2 1 ; ShowMessage BMTabithaPrefight2Msg ; set PrefightMessage to 3 ;endif ; After Tabitha's second line, make her attack ;if PrefightMessage == 3 && GetButtonPressed == 0 ; set TabithaREF.Pissed to 2 ; TabithaREF.evp ;endif end
107BMTabithaRhondaFixedTalkTriggerSCRIPTscn BMTabithaRhondaFixedTalkTriggerSCRIPT int DoOnce begin OnTriggerEnter player ; With Rhonda in tow, makes everyone nearby reset their AI, so that hostile nightkin ; and supermutants don't ruin the scene that follows if RhondaREF.Following == 1 && DoOnce == 0 player.cios VEvaluatePackagePulseSpell set DoOnce to 1 endif end
108BMTabithaScriptscn BMTabithaScript int Pissed begin OnDeath if VNPCFollowers.RaulAvailable == 1 RemoveItem BMPrisonPasswordNote 1 endif ; Complete objective & quest if not already done so if GetObjectiveCompleted VMS57 10 == 0 SetObjectiveDisplayed VMS57 10 1 SetObjectiveCompleted VMS57 10 1 else SetObjectiveCompleted VMS57 10 1 endif if GetStage VMS57 != 100 SetStage VMS57 100 endif end
109BMToyCarScriptscn BMToyCarScript int PickedUp ; If the player has picked up the car, but later drops it, don't update ; its name begin OnAdd set PickedUp to 1 end
110BMVintageRadioBMRScriptscn BMVintageRadioBMRScript int DoOnce ref mySelf ;-------------------------------------------------------------------------------------------------------------- begin onLoad if DoOnce == 0 set mySelf to getSelf activate mySelf set DoOnce to 1 endif end ;-------------------------------------------------------------------------------------------------------------- begin onActivate activate end ;--------------------------------------------------------------------------------------------------------------
111BMWarningNoteActivatorScriptscn BMWarningNoteActivatorScript begin onActivate ShowMessage BMWarningNoteMessage end
112BobbleheadAGLScriptscn BobbleheadAGLScript ;This is a Bobblehead script for the Collector Bobbleheads located in game ;On pickup, you recieve the motivational phrase and the appropriate buff short DoOnce begin OnActivate if IsActionRef player == 1 if ( DoOnce == 0 ) if ( Player.GetPermanentActorValue Agility < 10 ) Player.ModAv Agility 1 ;Mod the perm. pool so it sticks endif ShowMessage BobbleheadAGLBuffMessage ;This is the corner buff message Activate ;Allow item pickup Set BH01.Bobbles to ( BH01.Bobbles + 1 ) ;Add 1 to master count Set BH01.Carrying to 1 ;Tell the script the Player has one or more Bobbleheads (for display case) ;Disabled 6/30 CES ModPCMiscStat "Bobbleheads Found", 1 Set BH01.HaveAGL to 1 ;Set the variable for Display Case if ( BH01.Bobbles == 10 ) Addachievement 49 elseif ( BH01.Bobbles == 20 ) Addachievement 50 endif Set DoOnce to 1 endif endif end
113BobbleheadBARTScriptscn BobbleheadBARTScript ;This is a Bobblehead script for the Collector Bobbleheads located in game ;On pickup, you recieve the motivational phrase and the appropriate buff short DoOnce begin OnActivate if IsActionRef player == 1 if ( DoOnce == 0 ) ShowMessage BobbleheadBARTBuffMessage ;This is the corner buff message Player.ModAv Barter 10 ;Mod the perm. pool so it sticks Activate ;Allow item pickup Set BH01.Bobbles to ( BH01.Bobbles + 1 ) ;Add 1 to master count Set BH01.Carrying to 1 ;Tell the script the Player has one or more Bobbleheads (for display case) ;Disabled 6/30 CES ModPCMiscStat "Bobbleheads Found", 1 Set BH01.HaveBART to 1 ;Set the variable for Display Case if ( BH01.Bobbles == 10 ) Addachievement 49 elseif ( BH01.Bobbles == 20 ) Addachievement 50 endif Set DoOnce to 1 endif endif end
114BobbleheadBGUNScriptscn BobbleheadBGUNScript ;This is a Bobblehead script for the Collector Bobbleheads located in game ;On pickup, you recieve the motivational phrase and the appropriate buff short DoOnce begin OnActivate if IsActionRef player == 1 if ( DoOnce == 0 ) ShowMessage BobbleheadBGUNBuffMessage ;This is the corner buff message Player.ModAv Bigguns 10 ;Mod the perm. pool so it sticks Activate ;Allow item pickup Set BH01.Bobbles to ( BH01.Bobbles + 1 ) ;Add 1 to master count Set BH01.Carrying to 1 ;Tell the script the Player has one or more Bobbleheads (for display case) ;Disabled 6/30 CES ModPCMiscStat "Bobbleheads Found", 1 Set BH01.HaveBGUN to 1 ;Set the variable for Display Case if ( BH01.Bobbles == 10 ) Addachievement 49 elseif ( BH01.Bobbles == 20 ) Addachievement 50 endif Set DoOnce to 1 endif endif end
115BobbleheadCHAScriptscn BobbleheadCHAScript ;This is a Bobblehead script for the Collector Bobbleheads located in game ;On pickup, you recieve the motivational phrase and the appropriate buff short DoOnce begin OnActivate if IsActionRef player == 1 if ( DoOnce == 0 ) if ( Player.GetPermanentActorValue Charisma < 10 ) Player.ModAv Charisma 1 ;Mod the perm. pool so it sticks endif ShowMessage BobbleheadCHABuffMessage ;This is the corner buff message Activate ;Allow item pickup Set BH01.Bobbles to ( BH01.Bobbles + 1 ) ;Add 1 to master count Set BH01.Carrying to 1 ;Tell the script the Player has one or more Bobbleheads (for display case) ;Disabled 6/30 CES ModPCMiscStat "Bobbleheads Found", 1 Set BH01.HaveCHA to 1 ;Set the variable for Display Case if ( BH01.Bobbles == 10 ) Addachievement 49 elseif ( BH01.Bobbles == 20 ) Addachievement 50 endif Set DoOnce to 1 endif endif end
116BobbleheadENDScriptscn BobbleheadENDScript ;This is a Bobblehead script for the Collector Bobbleheads located in game ;On pickup, you recieve the motivational phrase and the appropriate buff short DoOnce begin OnActivate if IsActionRef player == 1 if ( DoOnce == 0 ) if ( Player.GetPermanentActorValue Endurance < 10 ) Player.ModAv Endurance 1 ;Mod the perm. pool so it sticks endif ShowMessage BobbleheadENDBuffMessage ;This is the corner buff message Activate ;Allow item pickup Set BH01.Bobbles to ( BH01.Bobbles + 1 ) ;Add 1 to master count Set BH01.Carrying to 1 ;Tell the script the Player has one or more Bobbleheads (for display case) ;Disabled 6/30 CES ModPCMiscStat "Bobbleheads Found", 1 Set BH01.HaveEND to 1 ;Set the variable for Display Case if ( BH01.Bobbles == 10 ) Addachievement 49 elseif ( BH01.Bobbles == 20 ) Addachievement 50 endif Set DoOnce to 1 endif endif end
117BobbleheadERGWScriptscn BobbleheadERGWScript ;This is a Bobblehead script for the Collector Bobbleheads located in game ;On pickup, you recieve the motivational phrase and the appropriate buff short DoOnce begin OnActivate if IsActionRef player == 1 if ( DoOnce == 0 ) ShowMessage BobbleheadERGWBuffMessage ;This is the corner buff message Player.ModAv EnergyWeapons 10 ;Mod the perm. pool so it sticks Activate ;Allow item pickup Set BH01.Bobbles to ( BH01.Bobbles + 1 ) ;Add 1 to master count Set BH01.Carrying to 1 ;Tell the script the Player has one or more Bobbleheads (for display case) ;Disabled 6/30 CES ModPCMiscStat "Bobbleheads Found", 1 Set BH01.HaveERGW to 1 ;Set the variable for Display Case if ( BH01.Bobbles == 10 ) Addachievement 49 elseif ( BH01.Bobbles == 20 ) Addachievement 50 endif Set DoOnce to 1 endif endif end
118BobbleheadEXPLScriptscn BobbleheadEXPLScript ;This is a Bobblehead script for the Collector Bobbleheads located in game ;On pickup, you recieve the motivational phrase and the appropriate buff short DoOnce begin OnActivate if IsActionRef player == 1 if ( DoOnce == 0 ) ShowMessage BobbleheadEXPLBuffMessage ;This is the corner buff message Player.ModAv Explosives 10 ;Mod the perm. pool so it sticks Activate ;Allow item pickup Set BH01.Bobbles to ( BH01.Bobbles + 1 ) ;Add 1 to master count Set BH01.Carrying to 1 ;Tell the script the Player has one or more Bobbleheads (for display case) ;Disabled 6/30 CES ModPCMiscStat "Bobbleheads Found", 1 Set BH01.HaveEXPL to 1 ;Set the variable for Display Case if ( BH01.Bobbles == 10 ) Addachievement 49 elseif ( BH01.Bobbles == 20 ) Addachievement 50 endif Set DoOnce to 1 endif endif end
119BobbleheadINTScriptscn BobbleheadINTScript ;This is a Bobblehead script for the Collector Bobbleheads located in game ;On pickup, you recieve the motivational phrase and the appropriate buff short DoOnce begin OnActivate if IsActionRef player == 1 if ( DoOnce == 0 ) if ( Player.GetPermanentActorValue Intelligence < 10 ) Player.ModAv Intelligence 1 ;Mod the perm. pool so it sticks endif ShowMessage BobbleheadINTBuffMessage ;This is the corner buff message Activate ;Allow item pickup Set BH01.Bobbles to ( BH01.Bobbles + 1 ) ;Add 1 to master count Set BH01.Carrying to 1 ;Tell the script the Player has one or more Bobbleheads (for display case) ;Disabled 6/30 CES ModPCMiscStat "Bobbleheads Found", 1 Set BH01.HaveINT to 1 ;Set the variable for Display Case if ( BH01.Bobbles == 10 ) Addachievement 49 elseif ( BH01.Bobbles == 20 ) Addachievement 50 endif Set DoOnce to 1 endif endif end
120BobbleheadLOCKScriptscn BobbleheadLOCKScript ;This is a Bobblehead script for the Collector Bobbleheads located in game ;On pickup, you recieve the motivational phrase and the appropriate buff short DoOnce begin OnActivate if IsActionRef player == 1 if ( DoOnce == 0 ) ShowMessage BobbleheadLOCKBuffMessage ;This is the corner buff message Player.ModAv Lockpick 10 ;Mod the perm. pool so it sticks Activate ;Allow item pickup Set BH01.Bobbles to ( BH01.Bobbles + 1 ) ;Add 1 to master count Set BH01.Carrying to 1 ;Tell the script the Player has one or more Bobbleheads (for display case) ;Disabled 6/30 CES ModPCMiscStat "Bobbleheads Found", 1 Set BH01.HaveLOCK to 1 ;Set the variable for Display Case if ( BH01.Bobbles == 10 ) Addachievement 49 elseif ( BH01.Bobbles == 20 ) Addachievement 50 endif Set DoOnce to 1 endif endif end
121BobbleheadLUKScriptscn BobbleheadLUKScript ;This is a Bobblehead script for the Collector Bobbleheads located in game ;On pickup, you recieve the motivational phrase and the appropriate buff short DoOnce begin OnActivate if IsActionRef player == 1 if ( DoOnce == 0 ) if ( Player.GetPermanentActorValue Luck < 10 ) Player.ModAv Luck 1 ;Mod the perm. pool so it sticks endif ShowMessage BobbleheadLUKBuffMessage ;This is the corner buff message Activate ;Allow item pickup Set BH01.Bobbles to ( BH01.Bobbles + 1 ) ;Add 1 to master count Set BH01.Carrying to 1 ;Tell the script the Player has one or more Bobbleheads (for display case) ;Disabled 6/30 CES ModPCMiscStat "Bobbleheads Found", 1 Set BH01.HaveLUK to 1 ;Set the variable for Display Case if ( BH01.Bobbles == 10 ) Addachievement 49 elseif ( BH01.Bobbles == 20 ) Addachievement 50 endif Set DoOnce to 1 endif endif end
122BobbleheadMEDIScriptscn BobbleheadMEDIScript ;This is a Bobblehead script for the Collector Bobbleheads located in game ;On pickup, you recieve the motivational phrase and the appropriate buff ; Medical bobblehead has 3 different versions (CG03, CG04, MS16) -- player can get only one, others are disabled when you pick one up short DoOnce begin OnActivate if IsActionRef player == 1 if ( DoOnce == 0 ) ShowMessage BobbleheadMEDIBuffMessage ;This is the corner buff message Player.ModAv Medicine 10 ;Mod the perm. pool so it sticks Set BH01.Bobbles to ( BH01.Bobbles + 1 ) ;Add 1 to master count Set BH01.Carrying to 1 ;Tell the script the Player has one or more Bobbleheads (for display case) ;Disabled 6/30 CES ModPCMiscStat "Bobbleheads Found", 1 Set BH01.HaveMEDI to 1 ;Set the variable for Display Case if ( BH01.Bobbles == 10 ) Addachievement 49 elseif ( BH01.Bobbles == 20 ) Addachievement 50 endif ; add item to inventory and disable all versions of this one player.additem BobbleheadMEDI 1 1 ;BobbleheadMedi01REF.disable ;BobbleheadMedi02REF.disable ;BobbleheadMedi03REF.disable Set DoOnce to 1 endif endif end
123BobbleheadMELEScriptscn BobbleheadMELEScript ;This is a Bobblehead script for the Collector Bobbleheads located in game ;On pickup, you recieve the motivational phrase and the appropriate buff short DoOnce begin OnActivate if IsActionRef player == 1 if ( DoOnce == 0 ) ShowMessage BobbleheadMELEBuffMessage ;This is the corner buff message Player.ModAv MeleeWeapons 10 ;Mod the perm. pool so it sticks Activate ;Allow item pickup Set BH01.Bobbles to ( BH01.Bobbles + 1 ) ;Add 1 to master count Set BH01.Carrying to 1 ;Tell the script the Player has one or more Bobbleheads (for display case) ;Disabled 6/30 CES ModPCMiscStat "Bobbleheads Found", 1 Set BH01.HaveMELE to 1 ;Set the variable for Display Case if ( BH01.Bobbles == 10 ) Addachievement 49 elseif ( BH01.Bobbles == 20 ) Addachievement 50 endif Set DoOnce to 1 endif endif end
124BobbleheadPERScriptscn BobbleheadPERScript ;This is a Bobblehead script for the Collector Bobbleheads located in game ;On pickup, you recieve the motivational phrase and the appropriate buff short DoOnce begin OnActivate if IsActionRef player == 1 if ( DoOnce == 0 ) if ( Player.GetPermanentActorValue Perception < 10 ) Player.ModAv Perception 1 ;Mod the perm. pool so it sticks endif ShowMessage BobbleheadPERBuffMessage ;This is the corner buff message Activate ;Allow item pickup Set BH01.Bobbles to ( BH01.Bobbles + 1 ) ;Add 1 to master count Set BH01.Carrying to 1 ;Tell the script the Player has one or more Bobbleheads (for display case) ;Disabled 6/30 CES ModPCMiscStat "Bobbleheads Found", 1 Set BH01.HavePER to 1 ;Set the variable for Display Case if ( BH01.Bobbles == 10 ) Addachievement 49 elseif ( BH01.Bobbles == 20 ) Addachievement 50 endif Set DoOnce to 1 endif endif end
125BobbleheadREPRScriptscn BobbleheadREPRScript ;This is a Bobblehead script for the Collector Bobbleheads located in game ;On pickup, you recieve the motivational phrase and the appropriate buff short DoOnce begin OnActivate if IsActionRef player == 1 if ( DoOnce == 0 ) ShowMessage BobbleheadREPRBuffMessage ;This is the corner buff message Player.ModAv Repair 10 ;Mod the perm. pool so it sticks Activate ;Allow item pickup Set BH01.Bobbles to ( BH01.Bobbles + 1 ) ;Add 1 to master count Set BH01.Carrying to 1 ;Tell the script the Player has one or more Bobbleheads (for display case) ;Disabled 6/30 CES ModPCMiscStat "Bobbleheads Found", 1 Set BH01.HaveREPR to 1 ;Set the variable for Display Case if ( BH01.Bobbles == 10 ) Addachievement 49 elseif ( BH01.Bobbles == 20 ) Addachievement 50 endif Set DoOnce to 1 endif endif end
126BobbleheadSCNCScriptscn BobbleheadSCNCScript ;This is a Bobblehead script for the Collector Bobbleheads located in game ;On pickup, you recieve the motivational phrase and the appropriate buff short DoOnce begin OnActivate if IsActionRef player == 1 if ( DoOnce == 0 ) ShowMessage BobbleheadSCNCBuffMessage ;This is the corner buff message Player.ModAv Science 10 ;Mod the perm. pool so it sticks Activate ;Allow item pickup Set BH01.Bobbles to ( BH01.Bobbles + 1 ) ;Add 1 to master count Set BH01.Carrying to 1 ;Tell the script the Player has one or more Bobbleheads (for display case) ;Disabled 6/30 CES ModPCMiscStat "Bobbleheads Found", 1 Set BH01.HaveSCNC to 1 ;Set the variable for Display Case if ( BH01.Bobbles == 10 ) Addachievement 49 elseif ( BH01.Bobbles == 20 ) Addachievement 50 endif Set DoOnce to 1 endif endif end
127BobbleheadSGUNScriptscn BobbleheadSGUNScript ;This is a Bobblehead script for the Collector Bobbleheads located in game ;On pickup, you recieve the motivational phrase and the appropriate buff short DoOnce begin OnActivate if IsActionRef player == 1 if ( DoOnce == 0 ) ShowMessage BobbleheadSGUNBuffMessage ;This is the corner buff message ;Disabled 6/30 CES Player.ModAv SmallGuns 10 ;Mod the perm. pool so it sticks Activate ;Allow item pickup Set BH01.Bobbles to ( BH01.Bobbles + 1 ) ;Add 1 to master count Set BH01.Carrying to 1 ;Tell the script the Player has one or more Bobbleheads (for display case) ;Disabled 6/30 CES ModPCMiscStat "Bobbleheads Found", 1 Set BH01.HaveSGUN to 1 ;Set the variable for Display Case if ( BH01.Bobbles == 10 ) Addachievement 49 elseif ( BH01.Bobbles == 20 ) Addachievement 50 endif Set DoOnce to 1 endif endif end
128BobbleheadSNEKScriptscn BobbleheadSNEKScript ;This is a Bobblehead script for the Collector Bobbleheads located in game ;On pickup, you recieve the motivational phrase and the appropriate buff short DoOnce begin OnActivate if IsActionRef player == 1 if ( DoOnce == 0 ) ShowMessage BobbleheadSNEKBuffMessage ;This is the corner buff message Player.ModAv Sneak 10 ;Mod the perm. pool so it sticks Activate ;Allow item pickup Set BH01.Bobbles to ( BH01.Bobbles + 1 ) ;Add 1 to master count Set BH01.Carrying to 1 ;Tell the script the Player has one or more Bobbleheads (for display case) ;Disabled 6/30 CES ModPCMiscStat "Bobbleheads Found", 1 Set BH01.HaveSNEK to 1 ;Set the variable for Display Case if ( BH01.Bobbles == 10 ) Addachievement 49 elseif ( BH01.Bobbles == 20 ) Addachievement 50 endif Set DoOnce to 1 endif endif end
129BobbleheadSPCHScriptscn BobbleheadSPCHScript ;This is a Bobblehead script for the Collector Bobbleheads located in game ;On pickup, you recieve the motivational phrase and the appropriate buff short DoOnce begin OnActivate if IsActionRef player == 1 if ( DoOnce == 0 ) ShowMessage BobbleheadSPCHBuffMessage ;This is the corner buff message Player.ModAv Speech 10 ;Mod the perm. pool so it sticks Activate ;Allow item pickup Set BH01.Bobbles to ( BH01.Bobbles + 1 ) ;Add 1 to master count Set BH01.Carrying to 1 ;Tell the script the Player has one or more Bobbleheads (for display case) ;Disabled 6/30 CES ModPCMiscStat "Bobbleheads Found", 1 Set BH01.HaveSPCH to 1 ;Set the variable for Display Case if ( BH01.Bobbles == 10 ) Addachievement 49 elseif ( BH01.Bobbles == 20 ) Addachievement 50 endif Set DoOnce to 1 endif endif end
130BobbleheadSTRScriptscn BobbleheadSTRScript ;This is a Bobblehead script for the Collector Bobbleheads located in game ;On pickup, you recieve the motivational phrase and the appropriate buff short DoOnce begin OnActivate if IsActionRef player == 1 if ( DoOnce == 0 ) if ( Player.GetPermanentActorValue Strength < 10 ) Player.ModAv Strength 1 ;Mod the perm. pool so it sticks endif ShowMessage BobbleheadSTRBuffMessage ;This is the corner buff message Activate ;Allow item pickup Set BH01.Bobbles to ( BH01.Bobbles + 1 ) ;Add 1 to master count Set BH01.Carrying to 1 ;Tell the script the Player has one or more Bobbleheads (for display case) ;Disabled 6/30 CES ModPCMiscStat "Bobbleheads Found", 1 Set BH01.HaveSTR to 1 ;Set the variable for Display Case if ( BH01.Bobbles == 10 ) Addachievement 49 elseif ( BH01.Bobbles == 20 ) Addachievement 50 endif Set DoOnce to 1 endif endif end
131BobbleheadUARMScriptscn BobbleheadUARMScript ;This is a Bobblehead script for the Collector Bobbleheads located in game ;On pickup, you recieve the motivational phrase and the appropriate buff short DoOnce begin OnActivate if IsActionRef player == 1 if ( DoOnce == 0 ) ShowMessage BobbleheadUARMBuffMessage ;This is the corner buff message Player.ModAv Unarmed 10 ;Mod the perm. pool so it sticks Activate ;Allow item pickup Set BH01.Bobbles to ( BH01.Bobbles + 1 ) ;Add 1 to master count Set BH01.Carrying to 1 ;Tell the script the Player has one or more Bobbleheads (for display case) ;Disabled 6/30 CES ModPCMiscStat "Bobbleheads Found", 1 Set BH01.HaveUARM to 1 ;Set the variable for Display Case if ( BH01.Bobbles == 10 ) Addachievement 49 elseif ( BH01.Bobbles == 20 ) Addachievement 50 endif Set DoOnce to 1 endif endif end
132BooneSCRIPTscn BooneSCRIPT short HasBeenHired short WeaponOut short CombatStyleRanged short CombatStyleMelee short IsFollowingDefault short IsFollowingShort short IsFollowingLong short FollowerSwitchAggressive ; 0 = Passive (wait for player), 1 = Aggressive (attack when see enemy) short Waiting short DoOnce short bEquippedBeret short bGotRevenge short bInNest short bLoadedOnce; ; Beret TRACKING!!! short bCheckedOnce; float fLastCheckHour; short nLastCheckDay; short nLastBeretCount; short nBeretCount; Begin OnLoad ; set up base stats if (bLoadedOnce == 0) ; SetActorValue guns 35; JES 11/2/10 - Artificial buffs found and removed! Mazel tov! ; SetActorValue energyweapons 60; ; SetActorValue meleeweapons 20; ; SetActorValue unarmed 40; ; SetActorValue medicine 50; ; SetActorValue sneak 100; set bLoadedOnce to 1; endif ;Script to make sure we set the right combat style on loading. If (CombatStyleMelee == 1) CraigBooneREF.SetCombatStyle FollowersCombatStyleMelee; Else CraigBooneREF.SetCombatStyle FollowersCombatStyleRanged; EndIf End Begin OnTriggerEnter CraigBooneREF set CraigBooneREF.bInNest to 1 End Begin OnTriggerLeave CraigBooneREF set CraigBooneREF.bInNest to 0 End BEGIN GameMode if ( DoOnce == 0 ) if ( GetDistance Player <= 1400 ) set DoOnce to 1 evp endif endif END BEGIN OnCombatEND if ( GetPlayerTeammate == 1 ) resethealth restoreav perceptioncondition 100 restoreav endurancecondition 100 restoreav leftattackcondition 100 restoreav leftmobilitycondition 100 restoreav rightattackcondition 100 restoreav rightmobilitycondition 100 endif END BEGIN OnDeath if (GetQuestCompleted VMS53 == 0) SetStage VMS53 255; endif if (GetQuestCompleted VMS39 == 0) SetStage VMS39 80; endif if ( VNPCFollowers.bBooneHired == 1 ) set VNPCFollowers.nCurrentFollowers to VNPCFollowers.nCurrentFollowers - 1; if (VNPCFollowers.nCurrentFollowers == 0) set VNPCFollowers.bPlayerHasFollower to 0 endif set VNPCFollowers.bBooneHired to 0 set VNPCFollowers.bHumanoidInParty to 0; Player.RemoveFromFaction VBooneFaction ShowMessage FollowerMessageDeadBoone player.RemovePerk Spotting ShowMessage FollowerMessagePerkBooneRemove endif if (GetQuestCompleted VMS39 && VDialogueCraigBoone.bHeardWifeStory) AddItem VBooneLastLetterNote 1; endif set VNPCFollowers.bBooneDead to 1 END ;OnDeath ; track in here to see if the player gives Veronica a dress. BEGIN MenuMode 1008; container if (GameHour > fLastCheckHour || GameDaysPassed > nLastCheckDay) set fLastCheckHour to GameHour; set nLastCheckDay to GameDaysPassed; Set nBeretCount to GetItemCount RepairNVHatNCRBeret; ; react only if the player has just now taken his last beret if (nBeretCount < nLastBeretCount && nBeretCount == 0) SayTo player VDialogueCraigBooneNoBeretReact; endif set nLastBeretCount to nBeretCount; endif END ;MenuMode 1008 - container
133BoSBackStoryScriptSCN BoSBackStoryScript short MutantKnown
134BoSSnifferScriptscn BoSSnifferScript ; If the player is disguised as a member of the BOS and he's detected by a special ; sniffer character, the character sounds the alarm. ref MyHandler short DoOnce begin OnStartCombat Player if (GetQR DisguiseFactionPulseQuest == 1) && (IsSpellTarget DisguiseFactionPulseActorEffect == 1) sendAssaultAlarm Player BrotherhoodSteelFaction sendAssaultAlarm Player VBOSSnifferFaction set MyHandler to GetLinkedRef if GetDistance player < 512 MyHandler.Say ChallengePlayer endif endif end
135BoulderCityMemorialTriggerScriptscn BoulderCityMemorialTriggerScript ; If the player hits the memorial, Private Kowalski angrily confronts the player. If, after the conversation ; is over, the player hits the memorial again, Kowalski goes berserk and turns hostile. ref LinkedRef begin OnHitWith if VFreeformBoulderCity.Desecrator PrivateKowalskiRef.Say BCPrivateKowalskiAttack PrivateKowalskiRef.StartCombat player else set LinkedRef to GetLinkedRef LinkedRef.Disable Disable set VFreeformBoulderCity.Desecrator to 1 PrivateKowalskiRef.AddScriptPackage BCPrivateKowalskiDialoguePackage endif end
136BoulderCityNoteScriptscn BoulderCityNoteScript begin onActivate ShowMessage PowderGangRanchMsg end
137BoulderCityRuinsDoorScriptscn BoulderCityRuinsDoorScript begin OnActivate if IsActionRef player if LieutenantMonroeRef.GetDead Activate elseif VMS20.bMonroePermission Activate elseif (LieutenantMonroeRef.GetShouldAttack player == 0) LieutenantMonroeRef.StartConversation player else Activate endif else Activate endif end
138boxcarscrippledSCRIPTscn boxcarscrippledSCRIPT Short bDoOnce begin OnLoad vNiptonBoxcarsREF.DamageActorValue LeftMobilityCondition 90 vNiptonBoxcarsREF.DamageActorValue RightMobilityCondition 90 ignorecrime 1 End begin ondeath setstage vnipton 70 if getstage vms44 <= 10 setstage vms44 60 endif end Begin OnStartCombat If (bDoOnce == 0) vNiptonBoxcarsREF.DamageActorValue LeftMobilityCondition 90 vNiptonBoxcarsREF.DamageActorValue RightMobilityCondition 90 Set bDoOnce to 1; Endif End
139BoxingGlovesFatigueOnHitScriptscn BoxingGlovesFatigueOnHitScript ; Inflicts Fatigue damage on the target to temporarily knock it out. ; JES Begin OnHit Ref BoxingGloveTarget Set BoxingGloveTarget to GetOwnerLastTarget If (BoxingGloveTarget != PlayerRef) && (BoxingGloveTarget.GetIsCreatureType 6 != 1) BoxingGloveTarget.damageav Fatigue 35 Else BoxingGloveTarget.damageav Health 10 EndIf End
140BoxingGoldenGlovesFatigueOnHitScriptscn BoxingGoldenGlovesFatigueOnHitScript ; Inflicts Fatigue damage on the target to temporarily knock it out. ; JES Begin OnHit Ref BoxingGoldenGloveTarget Set BoxingGoldenGloveTarget to GetOwnerLastTarget If (BoxingGoldenGloveTarget != PlayerRef) && (BoxingGoldenGloveTarget.GetIsCreatureType 6 != 1) BoxingGoldenGloveTarget.damageav Fatigue 50 Else BoxingGoldenGloveTarget.damageav Health 15 EndIf End
141BoxingTapeFatigueOnHitScriptscn BoxingTapeFatigueOnHitScript ; Inflicts Fatigue damage on the target to temporarily knock it out. ; JES Begin OnHit Ref BoxingTapeTarget Set BoxingTapeTarget to GetOwnerLastTarget If (BoxingTapeTarget != PlayerRef) && (BoxingTapeTarget.GetIsCreatureType 6 != 1) BoxingTapeTarget.damageav Fatigue 20 Else BoxingTapeTarget.damageav Health 5 EndIf End
142BrahminQueenieScriptscn BrahminQueenieScript begin OnDeath if Getdistance FiendCookCookRef < 4000 && VMS12.bCookCookDead == 0 FiendCookCookRef.Say FiendCookCookGrief FiendCookCookRef.DamageAV braincondition 100 ShowMessage CookCookMessage endif if GetObjectiveDisplayed VMS12 21 SetObjectiveCompleted VMS12 21 1 endif end
143BrocFlowerScriptscn BrocFlowerScript int State begin onActivate if State == 0 && GetActionRef == player player.additem BrocFlower 1 set State to 1 playGroup Backward 1 setdestroyed 1 endif end begin onLoad if State == 0 playGroup Forward 1 elseif State == 1 playGroup Backward 1 endif end begin onReset if State == 1 playgroup Forward 1 set State to 0 setdestroyed 0 endif end
144BrotherhoodFactionOutfitWarningScriptscn BrotherhoodFactionOutfitWarningScript float fUpdatedNegNCR float fUpdatedPosNCR float fUpdatedNegCL float fUpdatedPosCL float fUpdatedNegBoS float fUpdatedPosBoS float fUpdatedNegGK float fUpdatedPosGK float fUpdatedNegPG float fUpdatedPosPG Begin OnEquip Player ;Check to see if player was wearing faction armor. if DisguiseFactionPulseQuest.bFactionArmorEquipped == 0 ;Set variable to track wearing faction armor set DisguiseFactionPulseQuest.bFactionArmorEquipped to 1 ;Player was not wearing faction armor - so we store their reputation values, we don't need to clear it here, it'll get cleared below ;Store Reputations set DisguiseFactionPulseQuest.fNCRNegReputation to GetReputation RepNVNCR 0 set DisguiseFactionPulseQuest.fNCRPosReputation to GetReputation RepNVNCR 1 set DisguiseFactionPulseQuest.fLegionNegReputation to GetReputation RepNVCaesarsLegion 0 set DisguiseFactionPulseQuest.fLegionPosReputation to GetReputation RepNVCaesarsLegion 1 set DisguiseFactionPulseQuest.fBoSNegReputation to GetReputation RepNVBrotherhood 0 set DisguiseFactionPulseQuest.fBoSPosReputation to GetReputation RepNVBrotherhood 1 set DisguiseFactionPulseQuest.fKhanNegReputation to GetReputation RepNVGreatKhans 0 set DisguiseFactionPulseQuest.fKhanPosReputation to GetReputation RepNVGreatKhans 1 set DisguiseFactionPulseQuest.fPowderNegReputation to GetReputation RepNVPowderGanger 0 set DisguiseFactionPulseQuest.fPowderPosReputation to GetReputation RepNVPowderGanger 1 else ;Get Current Faction Values and add stored values set DisguiseFactionPulseQuest.fNCRNegReputation to GetReputation RepNVNCR 0 + DisguiseFactionPulseQuest.fNCRNegReputation set DisguiseFactionPulseQuest.fNCRPosReputation to GetReputation RepNVNCR 1+ DisguiseFactionPulseQuest.fNCRPosReputation set DisguiseFactionPulseQuest.fLegionNegReputation to GetReputation RepNVCaesarsLegion 0 + DisguiseFactionPulseQuest.fLegionNegReputation set DisguiseFactionPulseQuest.fLegionPosReputation to GetReputation RepNVCaesarsLegion 1 + DisguiseFactionPulseQuest.fLegionPosReputation set DisguiseFactionPulseQuest.fBoSNegReputation to GetReputation RepNVBrotherhood 0 + DisguiseFactionPulseQuest.fBoSNegReputation set DisguiseFactionPulseQuest.fBoSPosReputation to GetReputation RepNVBrotherhood 1 + DisguiseFactionPulseQuest.fBoSPosReputation set DisguiseFactionPulseQuest.fKhanNegReputation to GetReputation RepNVGreatKhans 0 + DisguiseFactionPulseQuest.fKhanNegReputation set DisguiseFactionPulseQuest.fKhanPosReputation to GetReputation RepNVGreatKhans 1 + DisguiseFactionPulseQuest.fKhanPosReputation set DisguiseFactionPulseQuest.fPowderNegReputation to GetReputation RepNVPowderGanger 0 + DisguiseFactionPulseQuest.fPowderNegReputation set DisguiseFactionPulseQuest.fPowderPosReputation to GetReputation RepNVPowderGanger 1 + DisguiseFactionPulseQuest.fPowderPosReputation endif if VFactionArmorTutorial == 0 ShowMessage VFactionOutfitTutorial set VFactionArmorTutorial to 1 endif ShowMessage BoSFactionOutfitWarning StartQuest DisguiseFactionPulseQuest ;Kicks the pulse placing quest setally ArmorBrotherhoodSteelFaction PlayerFaction 1 1 player.addtofaction ArmorBrotherhoodSteelFactionEnemy 0 ;Set NCR Alliance if BoS have joined the NCR if VStoryEventBoS == 1 setally ArmorNCRFactionNVEnemy BrotherhoodSteelFaction 1 1 setally PlayerFaction ArmorNCRFactionNV 1 1 player.addtofaction ARMORNCRFactionNVEnemy 0 endif ;Clear Reputations SetReputation RepNVNCR 0 0.0 SetReputation RepNVNCR 1 0.0 SetReputation RepNVCaesarsLegion 0 0.0 SetReputation RepNVCaesarsLegion 1 0.0 SetReputation RepNVBrotherhood 0 0.0 SetReputation RepNVBrotherhood 1 0.0 SetReputation RepNVGreatKhans 0 0.0 SetReputation RepNVGreatKhans 1 0.0 SetReputation RepNVPowderGanger 0 0.0 SetReputation RepNVPowderGanger 1 0.0 end Begin OnUnequip Player if Player.GetEquipped FactionGearNVBrotherhood == 0 SetEnemy ArmorBrotherhoodSteelFaction PlayerFaction 1 1 player.RemoveFromFaction ArmorBrotherhoodSteelFactionEnemy ShowMessage BoSFactionOutfitWarningOff ;UnSet NCR Alliance if BoS have joined the NCR if VStoryEventBoS == 1 SetEnemy PlayerFaction ArmorNCRFactionNV 1 1 player.RemoveFromFaction ARMORNCRFactionNVEnemy endif ;Restore Factions ;Get Current Values and add stored values set fUpdatedNegNCR to GetReputation RepNVNCR 0 + DisguiseFactionPulseQuest.fNCRNegReputation set fUpdatedPosNCR to GetReputation RepNVNCR 1+ DisguiseFactionPulseQuest.fNCRPosReputation set fUpdatedNegCL to GetReputation RepNVCaesarsLegion 0 + DisguiseFactionPulseQuest.fLegionNegReputation set fUpdatedPosCL to GetReputation RepNVCaesarsLegion 1 + DisguiseFactionPulseQuest.fLegionPosReputation set fUpdatedNegBoS to GetReputation RepNVBrotherhood 0 + DisguiseFactionPulseQuest.fBoSNegReputation set fUpdatedPosBoS to GetReputation RepNVBrotherhood 1 + DisguiseFactionPulseQuest.fBoSPosReputation set fUpdatedNegGK to GetReputation RepNVGreatKhans 0 + DisguiseFactionPulseQuest.fKhanNegReputation set fUpdatedPosGK to GetReputation RepNVGreatKhans 1 + DisguiseFactionPulseQuest.fKhanPosReputation set fUpdatedNegPG to GetReputation RepNVPowderGanger 0 + DisguiseFactionPulseQuest.fPowderNegReputation set fUpdatedPosPG to GetReputation RepNVPowderGanger 1 + DisguiseFactionPulseQuest.fPowderPosReputation endif ;If the player is not wearing ANY faction armor... if (Player.GetEquipped FactionGearNVNCR == 0) && (Player.GetEquipped FactionGearNVCaesar == 0) && (Player.GetEquipped FactionGearNVBrotherhood == 0) && (Player.GetEquipped FactionGearNVGreatKhans == 0) && (Player.GetEquipped FactionGearNVPowder == 0) && (player.GetEquipped VMS18WhiteGloveMask == 0 || (Player.GetEquipped OutfitFormalWear == 0 && player.GetEquipped ArmorWhiteGloveSociety == 0)) ;Clear Wearing Faction Armor Variable set DisguiseFactionPulseQuest.bFactionArmorEquipped to 0 ;Update to Proper Reputation Values ;Set Reputation Values to Updated SetReputation RepNVNCR 0 fUpdatedNegNCR SetReputation RepNVNCR 1 fUpdatedPosNCR SetReputation RepNVCaesarsLegion 0 fUpdatedNegCL SetReputation RepNVCaesarsLegion 1 fUpdatedPosCL SetReputation RepNVBrotherhood 0 fUpdatedNegBoS SetReputation RepNVBrotherhood 1 fUpdatedPosBoS SetReputation RepNVGreatKhans 0 fUpdatedNegGK SetReputation RepNVGreatKhans 1 fUpdatedPosGK SetReputation RepNVPowderGanger 0 fUpdatedNegPG SetReputation RepNVPowderGanger 1 fUpdatedPosPG endif end ;Restriction on Companions Begin OnAdd CraigBooneREF ShowMessage CompanionFactionArmorMsg DropMe End Begin OnAdd RoseofSharonCassidyREF ShowMessage CompanionFactionArmorMsg DropMe End ;Begin OnAdd VeronicaREF ; ShowMessage CompanionFactionArmorMsg ; DropMe ;End Begin OnAdd LilyREF ShowMessage CompanionFactionArmorMsg DropMe End Begin OnAdd RaulREF ShowMessage CompanionFactionArmorMsg DropMe End Begin OnAdd ArcadeREF ShowMessage CompanionFactionArmorMsg DropMe End Begin OnAdd EDE1REF ShowMessage CompanionFactionArmorMsg DropMe End Begin OnAdd EDE2REF ShowMessage CompanionFactionArmorMsg DropMe End Begin OnAdd EDE3REF ShowMessage CompanionFactionArmorMsg DropMe End Begin OnAdd RexREF ShowMessage CompanionFactionArmorMsg DropMe End
145BruceIsaacTeleportTriggerSCRIPTscn BruceIsaacTeleportTriggerSCRIPT BEGIN OnTriggerEnter BruceIsaacREF if VMSTopsTalentPool.BruceRecruited == 1 BruceIsaacREF.MoveTo TopsBruceMarkerREF endif END
146BuffaloScriptscn BuffaloScript int State begin onActivate if State == 0 && GetActionRef == player player.additem BuffaloGourdSeed 1 set State to 1 playGroup Forward 1 setdestroyed 1 endif end begin onLoad if State == 0 playGroup Backward 1 elseif State == 1 playGroup Forward 1 endif end begin onReset if State == 1 playgroup Backward 1 set State to 0 setdestroyed 0 endif end
147ButchScriptscn ButchScript ;Follower Variables short HasBeenHired short WeaponOut short CombatStyleRanged short CombatStyleMelee short IsFollowingDefault short IsFollowingShort short IsFollowingLong short Waiting BEGIN OnCombatEND if ( GetPlayerTeammate == 1 ) resethealth restoreav perceptioncondition 100 restoreav endurancecondition 100 restoreav leftattackcondition 100 restoreav leftmobilitycondition 100 restoreav rightattackcondition 100 restoreav rightmobilitycondition 100 endif END BEGIN OnDeath if ( Followers.ButchHired == 1 ) set Followers.PlayerHasFollower to 0 set Followers.ButchHired to 0 ShowMessage FollowerMessageDeadButch endif END
148CaesarDialogueTriggerScriptscn CaesarDialogueTriggerScript short bDoOnce begin OnTriggerEnter player if (bDoOnce == 0) ;FortCaesarRef.AddScriptPackage CaesarInitialDialoguePackage set bDoOnce to 1 Disable MarkForDelete endif end
149CaesarsLegionFactionOutfitWarningScriptscn CaesarsLegionFactionOutfitWarningScript float fUpdatedNegNCR float fUpdatedPosNCR float fUpdatedNegCL float fUpdatedPosCL float fUpdatedNegBoS float fUpdatedPosBoS float fUpdatedNegGK float fUpdatedPosGK float fUpdatedNegPG float fUpdatedPosPG Begin OnEquip Player ;Check to see if player was wearing faction armor. if DisguiseFactionPulseQuest.bFactionArmorEquipped == 0 ;Set variable to track wearing faction armor set DisguiseFactionPulseQuest.bFactionArmorEquipped to 1 ;Player was not wearing faction armor - so we store their reputation values, we don't need to clear it here, it'll get cleared below ;Store Reputations set DisguiseFactionPulseQuest.fNCRNegReputation to GetReputation RepNVNCR 0 set DisguiseFactionPulseQuest.fNCRPosReputation to GetReputation RepNVNCR 1 set DisguiseFactionPulseQuest.fLegionNegReputation to GetReputation RepNVCaesarsLegion 0 set DisguiseFactionPulseQuest.fLegionPosReputation to GetReputation RepNVCaesarsLegion 1 set DisguiseFactionPulseQuest.fBoSNegReputation to GetReputation RepNVBrotherhood 0 set DisguiseFactionPulseQuest.fBoSPosReputation to GetReputation RepNVBrotherhood 1 set DisguiseFactionPulseQuest.fKhanNegReputation to GetReputation RepNVGreatKhans 0 set DisguiseFactionPulseQuest.fKhanPosReputation to GetReputation RepNVGreatKhans 1 set DisguiseFactionPulseQuest.fPowderNegReputation to GetReputation RepNVPowderGanger 0 set DisguiseFactionPulseQuest.fPowderPosReputation to GetReputation RepNVPowderGanger 1 else ;Get Current Faction Values and add stored values set DisguiseFactionPulseQuest.fNCRNegReputation to GetReputation RepNVNCR 0 + DisguiseFactionPulseQuest.fNCRNegReputation set DisguiseFactionPulseQuest.fNCRPosReputation to GetReputation RepNVNCR 1+ DisguiseFactionPulseQuest.fNCRPosReputation set DisguiseFactionPulseQuest.fLegionNegReputation to GetReputation RepNVCaesarsLegion 0 + DisguiseFactionPulseQuest.fLegionNegReputation set DisguiseFactionPulseQuest.fLegionPosReputation to GetReputation RepNVCaesarsLegion 1 + DisguiseFactionPulseQuest.fLegionPosReputation set DisguiseFactionPulseQuest.fBoSNegReputation to GetReputation RepNVBrotherhood 0 + DisguiseFactionPulseQuest.fBoSNegReputation set DisguiseFactionPulseQuest.fBoSPosReputation to GetReputation RepNVBrotherhood 1 + DisguiseFactionPulseQuest.fBoSPosReputation set DisguiseFactionPulseQuest.fKhanNegReputation to GetReputation RepNVGreatKhans 0 + DisguiseFactionPulseQuest.fKhanNegReputation set DisguiseFactionPulseQuest.fKhanPosReputation to GetReputation RepNVGreatKhans 1 + DisguiseFactionPulseQuest.fKhanPosReputation set DisguiseFactionPulseQuest.fPowderNegReputation to GetReputation RepNVPowderGanger 0 + DisguiseFactionPulseQuest.fPowderNegReputation set DisguiseFactionPulseQuest.fPowderPosReputation to GetReputation RepNVPowderGanger 1 + DisguiseFactionPulseQuest.fPowderPosReputation endif if VFactionArmorTutorial == 0 ShowMessage VFactionOutfitTutorial set VFactionArmorTutorial to 1 endif ShowMessage CaesarsLegionFactionOutfitWarning StartQuest DisguiseFactionPulseQuest ;Kicks the pulse placing quest setally ArmorVCaesarsLegionFaction PlayerFaction 1 1 player.addtofaction ArmorVCaesarsLegionFactionEnemy 0 ;Clear Reputations SetReputation RepNVNCR 0 0.0 SetReputation RepNVNCR 1 0.0 SetReputation RepNVCaesarsLegion 0 0.0 SetReputation RepNVCaesarsLegion 1 0.0 SetReputation RepNVBrotherhood 0 0.0 SetReputation RepNVBrotherhood 1 0.0 SetReputation RepNVGreatKhans 0 0.0 SetReputation RepNVGreatKhans 1 0.0 SetReputation RepNVPowderGanger 0 0.0 SetReputation RepNVPowderGanger 1 0.0 end Begin OnUnequip Player if Player.GetEquipped FactionGearNVCaesar == 0 SetEnemy ArmorVCaesarsLegionFaction PlayerFaction 1 1 player.RemoveFromFaction ArmorVCaesarsLegionFactionEnemy ShowMessage CaesarsLegionFactionOutfitWarningOff ;Restore Factions ;Get Current Values and add stored values set fUpdatedNegNCR to GetReputation RepNVNCR 0 + DisguiseFactionPulseQuest.fNCRNegReputation set fUpdatedPosNCR to GetReputation RepNVNCR 1+ DisguiseFactionPulseQuest.fNCRPosReputation set fUpdatedNegCL to GetReputation RepNVCaesarsLegion 0 + DisguiseFactionPulseQuest.fLegionNegReputation set fUpdatedPosCL to GetReputation RepNVCaesarsLegion 1 + DisguiseFactionPulseQuest.fLegionPosReputation set fUpdatedNegBoS to GetReputation RepNVBrotherhood 0 + DisguiseFactionPulseQuest.fBoSNegReputation set fUpdatedPosBoS to GetReputation RepNVBrotherhood 1 + DisguiseFactionPulseQuest.fBoSPosReputation set fUpdatedNegGK to GetReputation RepNVGreatKhans 0 + DisguiseFactionPulseQuest.fKhanNegReputation set fUpdatedPosGK to GetReputation RepNVGreatKhans 1 + DisguiseFactionPulseQuest.fKhanPosReputation set fUpdatedNegPG to GetReputation RepNVPowderGanger 0 + DisguiseFactionPulseQuest.fPowderNegReputation set fUpdatedPosPG to GetReputation RepNVPowderGanger 1 + DisguiseFactionPulseQuest.fPowderPosReputation endif ;If the player is not wearing ANY faction armor, clear this variable. if (Player.GetEquipped FactionGearNVNCR == 0) && (Player.GetEquipped FactionGearNVCaesar == 0) && (Player.GetEquipped FactionGearNVBrotherhood == 0) && (Player.GetEquipped FactionGearNVGreatKhans == 0) && (Player.GetEquipped FactionGearNVPowder == 0) && (player.GetEquipped VMS18WhiteGloveMask == 0 || (Player.GetEquipped OutfitFormalWear == 0 && player.GetEquipped ArmorWhiteGloveSociety == 0)) ;Clear Wearing Faction Armor Variable set DisguiseFactionPulseQuest.bFactionArmorEquipped to 0 ;Set Reputation Values to Updated SetReputation RepNVNCR 0 fUpdatedNegNCR SetReputation RepNVNCR 1 fUpdatedPosNCR SetReputation RepNVCaesarsLegion 0 fUpdatedNegCL SetReputation RepNVCaesarsLegion 1 fUpdatedPosCL SetReputation RepNVBrotherhood 0 fUpdatedNegBoS SetReputation RepNVBrotherhood 1 fUpdatedPosBoS SetReputation RepNVGreatKhans 0 fUpdatedNegGK SetReputation RepNVGreatKhans 1 fUpdatedPosGK SetReputation RepNVPowderGanger 0 fUpdatedNegPG SetReputation RepNVPowderGanger 1 fUpdatedPosPG endif end ;Restriction on Companions Begin OnAdd CraigBooneREF ShowMessage CompanionFactionArmorMsg DropMe End Begin OnAdd RoseofSharonCassidyREF ShowMessage CompanionFactionArmorMsg DropMe End Begin OnAdd VeronicaREF ShowMessage CompanionFactionArmorMsg DropMe End Begin OnAdd LilyREF ShowMessage CompanionFactionArmorMsg DropMe End Begin OnAdd RaulREF ShowMessage CompanionFactionArmorMsg DropMe End Begin OnAdd ArcadeREF ShowMessage CompanionFactionArmorMsg DropMe End Begin OnAdd EDE1REF ShowMessage CompanionFactionArmorMsg DropMe End Begin OnAdd EDE2REF ShowMessage CompanionFactionArmorMsg DropMe End Begin OnAdd EDE3REF ShowMessage CompanionFactionArmorMsg DropMe End Begin OnAdd RexREF ShowMessage CompanionFactionArmorMsg DropMe End
150CaesarTentFlapInteriorScriptscn CaesarTentFlapInteriorScript begin OnActivate if IsActionRef player ;if VStoryEventCaesarKilled > 0 ;FortCaesarTentGuardRef.StartConversation player ;else Activate ;endif else Activate endif end
151CalmHeartScriptscn CalmHeartScript begin ScriptEffectStart int iHealth; set iHealth to ((GetBaseAV health) + 50); SetAV health iHealth; end begin ScriptEffectFinish int iHealth; set iHealth to ((GetBaseAV health) - 50); SetAV health iHealth; end
152CampGolfRanger1Scriptscn CampGolfRanger1Script short bHeardHanlonSuicide
153CampGolfScoreTerminalUnlockedSCRIPTscn CampGolfScoreTerminalUnlockedSCRIPT BEGIN OnActivate if IsActionRef Player ChiefHanlonREF.SendTrespassAlarm Player AddReputation RepNVNCR 0 1 RewardKarma -5 Activate endif END
154CampSearchlightAstorBarkDeActivatorScriptscn CampSearchlightAstorBarkDeActivatorScript Begin onTriggerEnter Player if VMS43.AstorBark < 2 StopQuest CampSearchlightAstorBarkQuest CSAstorBark01REF.enable CSAstorBark02REF.enable CSAstorBark03REF.enable CSAstorBark04REF.enable CSAstorBark05REF.enable CSAstorBark06REF.enable Set CSAstorBark01REF.RunOnce to 0 Set CSAstorBark02REF.RunOnce to 0 Set CSAstorBark03REF.RunOnce to 0 Set CSAstorBark04REF.RunOnce to 0 Set CSAstorBark05REF.RunOnce to 0 Set CSAstorBark06REF.RunOnce to 0 Set VMS43.AstorBark to 0 endif End
155CampSearchlightAstorBarkQuestScriptscn CampSearchlightAstorBarkQuestScript SHORT RunOnce Begin GameMode if RunOnce == 0 if AstorREF.GetDetected Player Set VMS43.AstorBark to 1 AstorREF.evp Set RunOnce to 1 endif endif End
156CampSearchlightAstorBarkScriptscn CampSearchlightAstorBarkScript Int RunOnce Begin onTriggerEnter Player if RunOnce == 0 StartQuest CampSearchlightAstorBarkQuest CSAstorBark01REF.disable CSAstorBark02REF.disable CSAstorBark03REF.disable CSAstorBark04REF.disable CSAstorBark05REF.disable CSAstorBark06REF.disable Set RunOnce to 1 endif End
157CampSearchlightAstorPatrolScriptscn CampSearchlightAstorPatrolScript begin onTriggerEnter AstorREF set VMS43.AstorPatrolMarker to 1 AstorREF.evp CSTrooper01REF.evp CSTrooper02REF.evp CSTrooper03REF.evp end begin onTriggerLeave AstorREF set VMS43.AstorPatrolMarker to 0 AstorREF.evp CSTrooper01REF.evp CSTrooper02REF.evp CSTrooper03REF.evp end
158CampSearchlightCaveEnterScn CampSearchlightCaveEnter Begin onTriggerEnter Player if GetStage VMS44 == 15 CSRadSuitLockerREF.enable endif End
159CampSearchlightDogTagPickupscn CampSearchlightDogTagPickup begin OnAdd if getstage vms43 == 10 set VMS43.DogTagCollected to (VMS43.DogTagCollected +1) endif end
160CampSearchlightEdwardsAddsGhoulsScriptscn CampSearchlightEdwardsAddsGhoulsScript Begin onTriggerEnter EdwardsREF if VMS43a.EdwardsKillAstor == 1 SetStage VMS43a 25 EdwardsREF.StartCombat AstorREF EdwardsGhoul01.StartCombat AstorREF EdwardsGhoul02.StartCombat AstorREF EdwardsGhoul03.StartCombat AstorREF endif End
161CampSearchlightEdwardsFindsAstorScriptscn CampSearchlightEdwardsFindsAstorScript SHORT doOnce Begin onTriggerEnter EdwardsREF if VMS43a.EdwardsToAstor == 1 && doOnce == 0 SetStage VMS43a 21 Set doOnce to 1 EdwardsREF.evp Endif End
162CampSearchlightEdwardsLeavingScriptscn CampSearchlightEdwardsLeavingScript Begin onTriggerEnter EdwardsREF if VMS43a.EdwardsToAstor == 1 SetStage VMS43a 16 elseif VMS43a.EdwardsToEcho == 1 SetStage VMS43a 17 elseif VMS43a.EdwardsToWasteland == 1 SetStage VMS43a 18 elseif VMS43a.EdwardsKillAstor == 1 SetStage VMS43a 19 Endif End
163CampSearchlightLoganSearchFireScn CampSearchlightLoganSearchFire Begin onTriggerEnter LoganREF if GetStage VMS44 == 40 setStage VMS44 45 set VMS44.LoganFollow to 0 FireLoot.enable LoganREF.ResetHealth endif End
164CampSearchlightLoganSearchFire01Scn CampSearchlightLoganSearchFire01 Begin onTriggerEnter Player if GetStage VMS44 == 40 setStage VMS44 45 Set VMS44.LoganFollow to 0 endif End
165CampSearchlightLoganSearchPoliceScn CampSearchlightLoganSearchPolice Begin onTriggerEnter LoganREF if GetStage VMS44 == 30 SetStage VMS44 35 Set VMS44.LoganFollow to 0 PoliceLoot.enable LoganREF.ResetHealth endif End
166CampSearchlightLootPickupsscn CampSearchlightLootPickups begin OnAdd set VMS44.HasLoot to (VMS44.HasLoot +1) end
167CampSearchlightPlayerInChurchscn CampSearchlightPlayerInChurch begin onTriggerEnter set VMS44.PlayerInSearchlight to 1 end
168CampSearchlightPlayerLeavingScriptscn CampSearchlightPlayerLeavingScript ;begin onTriggerEnter Player ; Set VMS44.PlayerInSearchlight to 1 ;end ; ;begin onTriggerLeave Player ; Set VMS44.PlayerInSearchlight to 0 ; Set VMS44.LoganFollow to 0 ;end begin GameMode if Player.GetDistance LeavingSearchlightTriggerREF <= 6000 && GetStage VMS44 >= 30 && GetStage VMS44 < 50 Set VMS44.PlayerInSearchlight to 1 Player.EnableFastTravel 0 else Set VMS44.PlayerInSearchlight to 0 Set VMS44.LoganFollow to 0 Player.EnableFastTravel 1 endif end
169CampSearchlightScorpionsscn CampSearchlightScorpions begin onDeath if GetDeadCount CampSearchlightRadscorpionLarge == 3 Set VMS43a.ScorpionsGone to 1 endif end
170CaptainParkerScriptscn CaptainParkerScript begin OnDeath if (GetQuestCompleted VMS13 == 0) SetStage VMS13 110 endif end
171CaravanDeckScriptscn CaravanDeckScript short bDoOnce begin OnAdd player if bDoOnce == 0 CaravanSpareDeckRef.RemoveAllItems player set bDoOnce to 1 endif end
172CardAddToPlayerScriptscn CardAddToPlayerScript begin OnActivate if GetActionRef != player return else ; Activate AddCardToPlayer Disable MarkForDelete endif end begin OnAdd if GetContainer != player return else AddCardToPlayer RemoveMe endif end
173CasaMadridStJamesDoorTriggerScriptscn CasaMadridStJamesDoorTriggerScript short bDoOnce begin OnTriggerEnter player if GetObjectiveDisplayed VMS13 30 && (GetObjectiveCompleted VMS13 30 == 0) set bDoOnce to 1 SetObjectiveDisplayed VMS13 35 1 Disable MarkForDelete endif end
174Case10mmAddScriptscn Case10mmAddScript BEGIN OnAdd Player Player.AddItem Case10mm 25 RemoveMe END
175Case127mmAddScriptscn Case127mmAddScript BEGIN OnAdd Player Player.AddItem Case127mm 25 RemoveMe END
176Case308AddScriptscn Case308AddScript BEGIN OnAdd Player Player.AddItem Case308 25 RemoveMe END
177Case357MagnumAddScriptscn Case357MagnumAddScript BEGIN OnAdd Player Player.AddItem Case357Magnum 25 RemoveMe END
178Case44MagnumAddScriptscn Case44MagnumAddScript BEGIN OnAdd Player Player.AddItem Case44Magnum 25 RemoveMe END
179Case4570GovtAddScriptscn Case4570GovtAddScript BEGIN OnAdd Player Player.AddItem Case4570Govt 25 RemoveMe END
180Case50MGAddScriptscn Case50MGAddScript BEGIN OnAdd Player Player.AddItem Case50MG 25 RemoveMe END
181Case556mmAddScriptscn Case556mmAddScript BEGIN OnAdd Player Player.AddItem Case556mm 25 RemoveMe END
182Case5mmAddScriptscn Case5mmAddScript BEGIN OnAdd Player Player.AddItem Case5mm 25 RemoveMe END
183Case9mmAddScriptscn Case9mmAddScript BEGIN OnAdd Player Player.AddItem Case9mm 25 RemoveMe END
184CasinoBaseLightScriptScn CasinoBaseLightScript begin onLoad PlayGroup Left 0 end Begin GameMode If IsAnimPlaying Left != 1 PlayGroup Left 0 Endif End
185CassLeaveForeverTriggerScriptscn CassLeaveForeverTriggerScript begin OnTriggerEnter RoseOfSharonCassidyRef if (VDialogueCass.bGoneForever == 1) RoseOfSharonCassidyRef.Disable 1 RoseOfSharonCassidyRef.MarkForDelete Disable MarkForDelete endif end
186CateyeEffectscn CateyeEffect begin ScriptEffectStart ApplyImageSpaceModifier CatEyeISFX player.setav Nighteye 1 end begin ScriptEffectFinish RemoveImageSpaceModifier CatEyeISFX ApplyImageSpaceModifier CatEyeFadeOutISFX player.setav Nighteye 0 end
187CateyeQuestScriptscn CateyeQuestScript short once begin GameMode if once== 0 set once to 1 player.additem NVCateye 20 player.additem NVDoctorBag 5 player.additem jet 20 player.additem mentats 20 player.additem buffout 20 player.additem NVfixer 5 player.additem NVsuperstimpak 5 endif ; stopquest CateyeQuest end
188CattleProdFatigueOnHitScriptscn CattleProdFatigueOnHitScript ; Inflicts Fatigue damage on the target to temporarily knock it out. ; JES Begin OnHit Ref CattleProdTarget Set CattleProdTarget to GetOwnerLastTarget If (CattleProdTarget != PlayerRef) CattleProdTarget.damageav Fatigue 50 Else CattleProdTarget.damageav Health 20 EndIf End
189CazadorPoisonEffectScriptscn CazadorPoisonEffectScript float timerEffect ref myself begin ScriptEffectStart set myself to GetSelf if myself == player ;ShowWarning "Poisoned by cazador!" float randomTime set randomTime to 5.0 + 20.0/99.0 * GetRandomPercent set timerEffect to randomTime ShowMessage FixerDizzyMsg PlaySound FXPoisonStinger; <---- J.S. Added as complement to removing the sound from the associated MGEF, for P04 (5/28/11). endif end begin ScriptEffectUpdate set myself to GetSelf if myself == player if timerEffect <= 0 PlaySound FXPoisonStinger ;ApplyImageSpaceModifier BarkScorpionPoisonISFX set timerEffect to 5.0 + 20/99.0 *GetRandomPercent else set timerEffect to (timerEffect - GetSecondsPassed) endif endif end
190CG00DadSCRIPTscn CG00DadSCRIPT short doTalk ; set to 1 to start Dad talking short talking ; set to 1 when talking float timer ; used to time delayed talking begin OnActivate ; can't talk to Dad in CG00 end begin gamemode ; set face after player uses race menu if getStage CG00 >= 60 && GetStageDone CG00 65 == 0 setstage CG00 65 endif if doTalk == 1 && talking == 0 if timer > 0 set timer to timer - GetSecondsPassed else SayTo player CG00DadSpeech 1 set talking to 1 endif endif end begin SayToDone CG00DadSpeech set talking to 0 end
191CG00MomSCRIPTscn CG00MomSCRIPT short doTalk ; set to 1 to start talking short talking ; set to 1 when talking float timer ; used to time delayed talking begin OnActivate ; can't talk to anybody in CG00 end begin gamemode if doTalk == 1 && talking == 0 if timer > 0 set timer to timer - GetSecondsPassed else Say CG00MomSpeech 1 set talking to 1 endif endif end begin SayToDone CG00MomSpeech set talking to 0 end
192CG00SCRIPTscn CG00SCRIPT ; timer float timer short runTimer ; set to 1 to start running timer ; choose sex short chooseSex short button begin menumode ; if starting at CG00 if getStage CG00 < 5 setstage CG00 0 endif end begin gamemode if runTimer == 1 if timer > 0 set timer to timer - GetSecondsPassed else ; anywhere we need a timer if getstage CG00 == 5 setstage CG00 6 elseif getstage CG00 == 6 setstage CG00 8 elseif getstage CG00 == 8 setstage CG00 9 elseif getstage CG00 == 9 setstage CG00 10 elseif getStage CG00 == 18 ; choose sex -- for now just use message box setstage CG00 20 set chooseSex to 1 ShowMessage CG00ChooseSexMessage elseif getStage CG00 == 20 setstage CG00 22 elseif getStage CG00 == 38 setstage CG00 40 elseif getStage CG00 == 40 setstage CG00 42 elseif getStage CG00 == 61 setstage CG00 62 elseif getstage CG00 == 90 setstage CG00 100 endif endif endif if chooseSex == 1 set button to GetButtonPressed if button > -1 set chooseSex to 2 if button == 0 player.sexChange male 1 elseif button == 1 player.sexChange female 1 endif endif endif end begin menumode if getstage CG00 == 60 setstage CG00 61 endif end
193CG00ScriptNVscn CG00ScriptNV short button short chooseSex short CG00Active ;short timer ; currently not used for NV character creation float timer short runTimer ; set to 1 to start running timer begin MenuMode ; if starting at CG00 if getStage CG00 < 5 setstage CG00 0 endif end begin GameMode set CG00Active to 1 if chooseSex == 0 ;&& GetStage CG00 == 95 ShowMessage CG00ChooseSexMessage set chooseSex to 1 endif if chooseSex == 1 set button to GetButtonPressed if button > -1 set chooseSex to 2 if button == 0 player.sexChange male 1 elseif button == 1 player.sexChange female 1 endif SetStage CG00 95 endif endif endif end
194CG01TeddyBear01SCRIPTscn CG01TeddyBear01SCRIPT short runTimer float timer short grabbed short released begin gamemode if runTimer == 1 if timer > 0 set timer to timer - GetSecondsPassed else if grabbed == 1 set grabbed to 2 setStage CGTutorial 22 elseif released == 1 set released to 2 setStage CGTutorial 24 endif endif endif end begin OnActivate ; no picking up end begin OnGrab if grabbed == 0 set grabbed to 1 set runTimer to 1 set timer to 1 endif end begin OnRelease if released == 0 set released to 1 set runTimer to 1 set timer to 1 endif end
195CG02DadSCRIPTscn CG02DadSCRIPT short doTalk ; set to 1 to start Dad talking short talking ; set to 1 when talking float timer ; used to time delayed talking short reaction ; used for "reaction" dialogue begin gamemode if doTalk == 1 && talking == 0 if timer > 0 set timer to timer - GetSecondsPassed else ;if IsTalking == 0 if reaction == 1 SayTo player CG02DadReactionTopic 1 set talking to 1 elseif getStage CG02 >= 80 ; only say it if player is away from Dad if getDistance player > 250 SayTo player CG02DadSpeech 1 set talking to 1 else set timer to 3 endif else SayTo player CG02DadSpeech 1 set talking to 1 endif endif endif end begin SayToDone CG02DadSpeech set talking to 0 end begin SayToDone CG02DadReactionTopic set talking to 0 end ; because Look is cleared after every SayTo (grr): begin SayToDone CG02IntroSurprise look player end begin SayToDone CG02IntroYell look player end begin OnPackageDone CG02DadWaitForPicture ;Disabled 6/30 CES set CG02.DadReady to 1 set doTalk to 1 set timer to 5 end
196CG02DinerIntercomSCRIPTscn CG02DinerIntercomSCRIPT ; don't allow activation of intercom until Jonas is talking through it begin OnActivate if IsActionRef player == 1 if GetStage CG02 >= 35 && GetStage CG02 < 38 Activate else ShowMessage GenericIntercomNoResponseMsg endif else Activate endif end
197CG02JonasSCRIPTscn CG02JonasSCRIPT begin OnPackageDone CG02JonasWaitForPicture ;Disabled 6/30 CES set CG02.JonasReady to 1 end begin SayToDone CG02JonasSpeech if getStage CG02 == 90 setstage CG02 95 endif end
198CG02OverseerSCRIPTscn CG02OverseerSCRIPT short doTalk ; set to 1 to start Dad talking short talking ; set to 1 when talking float timer ; used to time delayed talking begin gamemode if doTalk == 1 && talking == 0 if timer > 0 set timer to timer - GetSecondsPassed else SayTo player CG02OverseerSpeech 1 set talking to 1 endif endif end begin SayToDone CG02OverseerSpeech set talking to 0 end
199CG02PartyguestSCRIPTscn CG02PartyguestSCRIPT ; reset failsafe timer any time you talk to anyone at the party ;begin OnActivate ; if IsActionRef player == 1 && GetStage CG02 < 34 ; set CG02.timer to CG02FailsafeTimer ; endif ; Activate ;end
200CG02PaulHannonSCRIPTscn CG02PaulHannonSCRIPT short doTalk ; set to 1 to start talking short talking ; set to 1 when talking float timer ; used to time delayed talking begin gamemode if doTalk == 1 && talking == 0 if timer > 0 set timer to timer - GetSecondsPassed else SayTo player CG02PaulHannonSpeech 1 set talking to 1 endif endif end begin SayToDone CG02PaulHannonSpeech set talking to 0 end
201CG02RadroachSCRIPTscn CG02RadroachSCRIPT ; update CG02 when player kills me begin OnDeath setstage CG02 70 end
202CG02SweetrollSCRIPTscn CG02SweetrollSCRIPT begin OnGrab ;Disabled 6/30 CES set CG02.sweetrollGrabbed to 1 end begin OnRelease ;Disabled 6/30 CES set CG02.sweetrollGrabbed to 0 end begin OnAdd player ;Disabled 6/30 CES set CG02.sweetrollGrabbed to 0 end
203CG02TargetSCRIPTscn CG02TargetSCRIPT ; update CG02 when player hits begin OnHitWith if isAnimPlaying == 0 playgroup forward 1 endif if GetQuestRunning CG02 == 1 ;Disabled 6/30 CES set CG02.targetCount to CG02.targetCount + 1 setstage CGTutorial 62 ; turn off fire weapon tutorial ;Disabled 6/30 CES if CG02.targetCount >= 3 ;Disabled 6/30 CES setstage CG02 55 ;Disabled 6/30 CES endif endif end
204CG02WallyMackSCRIPTscn CG02WallyMackSCRIPT short doTalk ; set to 1 to start talking short talking ; set to 1 when talking float timer ; used to time delayed talking begin gamemode if doTalk == 1 && talking == 0 if timer > 0 set timer to timer - GetSecondsPassed else SayTo player CG02WallyMackSpeech 1 set talking to 1 endif endif end begin SayToDone CG02WallyMackSpeech set talking to 0 end
205CG03MrBrotchSCRIPTSCN CG03MrBrotchSCRIPT short doTalk ; set to 1 to start talking short talking ; set to 1 when talking float timer ; used to time delayed talking begin gamemode if doTalk == 1 && talking == 0 if timer > 0 set timer to timer - GetSecondsPassed else Say CG03BrotchSpeech 1 set talking to 1 endif endif End begin SayToDone CG03BrotchSpeech set talking to 0 end
206CGHouseLightsScriptscn CGHouseLightsScript short bLit ;1 = Light is on. begin GameMode if bLit if GetCurrentTime < 20.5 && GetCurrentTime > 6.0 HouseLightsOff.Enable 0 HouseLightsOn.Disable 0 set bLit to 0 ;showwarning "Lights Off" endif else if GetCurrentTime > 20.5 || GetCurrentTime < 6.0 HouseLightsOn.Enable 0 HouseLightsOff.Disable 0 set bLit to 1 ;showwarning "Lights On" endif endif end
207CGTutorialSCRIPTscn CGTutorialSCRIPT ; variables and script needed for chargen tutorial messages short runTimer float timer float crippleTimer ; separate timer for universal cripple message float healTimer ; timer for repeating heal message float VATSTimer ; timer for repeating VATS message float addictionTimer ; timer for universal addiction message begin gamemode ; no need to do any tutorials if the player is dead... if player.GetDead == 1 return endif if runTimer == 1 if timer > 0 set timer to timer - GetSecondsPassed else ; pip-boy tutorial -- repeat message until player succeeds if getStageDone CGTutorial 50 == 1 && getStageDone CGTutorial 52 == 0 && getStageDone CG02 35 == 0 showMessage CGTutorialPipboy set timer to 20 endif ; quest target tutorial if getStageDone CGTutorial 54 == 1 && getStageDone CGTutorial 56 == 0 setstage CGTutorial 56 endif ; fire weapon tutorial -- repeat message until player succeeds if getStageDone CGTutorial 60 == 1 && getStageDone CGTutorial 62 == 0 && VCG02.nTargetCount == 0 showMessage CGTutorialFireWeapon showMessage CGTutorialFireWeapon2 if IsXBox == 1 showMessage CGTutorialAccessHelpXBox elseif IsPS3 == 1 showMessage CGTutorialAccessHelpXBox elseif IsWin32 == 1 showMessage CGTutorialAccessHelpPC endif set timer to 20 endif ; VATS tutorial -- repeat message until player succeeds if getStageDone CGTutorial 70 == 1 && getStageDone CGTutorial 72 == 0 && getStage CG02 < 70 showMessage CGTutorialVATS set timer to 20 endif ; sneak tutorial -- repeat message until player succeeds ; if getStageDone CGTutorial 90 == 1 && getStageDone CGTutorial 92 == 0 && getStage CG04 < 100 ; showMessage CGTutorialSneak ; set timer to 20 ; endif endif endif ; special cases ;if getStageDone CGTutorial 90 == 1 && getStageDone CGTutorial 92 == 0 && getStage CG04 < 100 ; if player.IsSneaking == 1 ; setStage CGTutorial 92 ; endif ; endif ; VATS in CG04 ; if getStage CG04 > 0 && getStageDone CGTutorial 72 == 0 ; repeat when the player is in combat ; if player.IsInCombat == 1 ; if VATSTimer > 0 ; set VATSTimer to VATSTimer - GetSecondsPassed ; else ; ; reset timer ; set VATSTimer to CGVATSTimer ; ShowMessage CGTutorialVATS ; endif ; elseif VATSTimer != 0 ; ; if not in combat, reset timer ; set VATSTimer to 0 ; endif ; endif ; first time you get hurt, play message immediately ; if getStageDone CGTutorial 200 == 0 && getStage CG04 > 0 ; ; healing message ; if player.getHealthPercentage < .5 ; setstage CGTutorial 200 ; endif ; else ; if healTimer > 0 ; set healTimer to healTimer - GetSecondsPassed ; else ; ; reset timer ; set healTimer to CGHealTimer ; ; continue to play this while in CG ; if GetStage CG04 < 200 ; if player.getHealthPercentage < .5 ; ShowMessage CGTutorialHeal ; endif ; endif ; endif ; endif ; first time you get crippled, play message immediately if getStageDone CGTutorial 210 == 0 if player.getav PerceptionCondition <= 0 || player.getav EnduranceCondition <= 0 || player.getav LeftAttackCondition <= 0 || player.getav RightAttackCondition <= 0 || player.getav LeftMobilityCondition <= 0 || player.getav RightMobilityCondition <= 0 setstage CGTutorial 210 endif else if crippleTimer > 0 set crippleTimer to crippleTimer - GetSecondsPassed else ; reset timer set crippleTimer to CGCrippleTimer ; crippling message if player.getav PerceptionCondition <= 0 || player.getav EnduranceCondition <= 0 || player.getav LeftAttackCondition <= 0 || player.getav RightAttackCondition <= 0 || player.getav LeftMobilityCondition <= 0 || player.getav RightMobilityCondition <= 0 if (player.ishardcore) ShowMessage CGTutorialCrippleHardcore else ShowMessage CGTutorialCripple endif endif endif endif ; first time you get addicted, give addiction message if getStageDone CGTutorial 216 == 0 ; if player.HasMagicEffect AddictionEFFECT == 1 If GetPCMiscStat "Times Addicted" > 0 setstage CGTutorial 216 endif endif ; first time you uncover 4 locations, give fast travel tutorial if getStageDone CGTutorial 214 == 0 if GetPCMiscStat "Locations Discovered" >= 4 setstage CGTutorial 214 endif endif ; first time you equip poor condition weapon, give repair tutorial ; if getStageDone CGTutorial 218 == 0 && GetStage CG04 >= 200 ; if player.GetWeaponHealthPerc < 25 ; setstage CGTutorial 218 ; endif ; endif ; first time you contract radiation sickness, give radiation tutorial if getStageDone CGTutorial 220 == 0 if player.getav RadiationRads >= 200 setstage CGTutorial 220 endif endif end begin menumode 1 ; pip-boy if player.GetDead == 1 return endif if getStageDone CGTutorial 50 == 1 && getStageDone CGTutorial 52 == 0 setstage CGTutorial 52 endif ; first time you enter Pip-Boy while crippled, display crippling help message if getStageDone CGTutorial 212 == 0 if player.getav PerceptionCondition <= 0 || player.getav EnduranceCondition <= 0 || player.getav LeftAttackCondition <= 0 || player.getav RightAttackCondition <= 0 || player.getav LeftMobilityCondition <= 0 || player.getav RightMobilityCondition <= 0 setstage CGTutorial 212 endif endif end begin menumode 1056 ; VATS if player.GetDead == 1 return endif if ( getStageDone CGTutorial 70 == 1 ) && getStageDone CGTutorial 72 == 0 setstage CGTutorial 72 endif end
208ChallengeAbominationSCRIPTscn ChallengeAbominationSCRIPT begin ScriptEffectStart int rank; set rank to player.HasPerk AbominationChallengePerk if (rank < 3) set rank to (player.addperk AbominationChallengePerk) showmessage ChallengeMessageAbominable rank endif if (rank > 2) RemoveRecurringFromChallenge NVChallengeAbom endif player.RewardXP 50 end
209ChallengeAnimalSCRIPTscn ChallengeAnimalSCRIPT begin ScriptEffectStart int rank; set rank to player.HasPerk AnimalChallengePerk if (rank < 3) set rank to (player.addperk AnimalChallengePerk) showmessage ChallengeMessageAnimalControl rank endif if (rank > 2) RemoveRecurringFromChallenge NVChallengeAnimalControl endif player.RewardXP 50 end
210ChallengeApocalypseSCRIPTscn ChallengeApocalypseSCRIPT begin ScriptEffectStart ; player.addperk LordDeathChallengePerk int rank; set rank to (player.HasPerk LordDeathChallengePerk) if (rank < 3) set rank to (player.addperk LordDeathChallengePerk) showmessage ChallengeMessageLordDeath endif player.RewardXP 50 end
211ChallengeArtfulSCRIPTscn ChallengeArtfulSCRIPT begin ScriptEffectStart AddAchievement 20 player.rewardxp 50 end
212ChallengeAtALossSCRIPTscn ChallengeAtALossSCRIPT begin ScriptEffectStart ; AddAchievement 15 end
213ChallengeBarterSCRIPTscn ChallengeBarterSCRIPT begin ScriptEffectStart player.RewardXP 100 AddAchievement 11 end
214ChallengeBlackjackSCRIPTscn ChallengeBlackjackSCRIPT begin ScriptEffectStart player.RewardXP 100 AddAchievement 27 end
215ChallengeBlasterMasterSCRIPTscn ChallengeBlasterMasterSCRIPT begin ScriptEffectStart AddAchievement 12 player.RewardXP 50 end
216ChallengeBugSCRIPTscn ChallengeBugSCRIPT begin ScriptEffectStart int rank; set rank to (player.HasPerk InsectChallengePerk) if (rank < 3) set rank to (player.addperk InsectChallengePerk) showmessage ChallengeMessageBugStomper rank endif if (rank > 2) RemoveRecurringFromChallenge NVChallengeBug endif player.RewardXP 50 end
217ChallengeCannibalSCRIPTscn ChallengeCannibalSCRIPT begin ScriptEffectStart int rank; set rank to player.HasPerk CannibalChallengePerk if (rank == 0) player.addperk CannibalChallengePerk showmessage ChallengeMessageDine endif UnlockChallenge NVChallengeDevourer end
218ChallengeCaravanMasterSCRIPTscn ChallengeCaravanMasterSCRIPT begin ScriptEffectStart AddAchievement 28 player.rewardxp 50 end
219ChallengeCaravanWinSCRIPTscn ChallengeCaravanWinSCRIPT begin ScriptEffectStart player.RewardXP 100 AddAchievement 24 UnlockChallenge NVChallengeCaravanMaster end
220ChallengeChallengeSCRIPTscn ChallengeChallengeSCRIPT begin ScriptEffectStart player.RewardXP 100 end
221ChallengeCraftySCRIPTscn ChallengeCraftySCRIPT begin ScriptEffectStart UnlockChallenge NVChallengeCraftyVet AddAchievement 6 end
222ChallengeDayTripperSCRIPTscn ChallengeDayTripperSCRIPT begin ScriptEffectStart int rank; set rank to player.HasPerk ChemChallengePerk if (rank == 0) player.addperk ChemChallengePerk showmessage ChallengeMessageDayTripper endif player.RewardXP 50 UnlockChallenge NVChallengeStop end
223ChallengeDisintAchievescn ChallengeDisintAchieve begin ScriptEffectStart AddAchievement 1 end
224ChallengeDismemberScriptscn ChallengeDismemberScript begin ScriptEffectStart player.RewardXP 50 end
225ChallengeEnergeticSCRIPTscn ChallengeEnergeticSCRIPT begin ScriptEffectStart UnlockChallenge NVChallengeMoreEnergetic UnlockChallenge NVChallengeLaserFun UnlockChallenge NVChallengeBeam UnlockChallenge NVChallengeBlind player.RewardXP 64 if (GetChallengeCompleted NVChallengeShootEmUp) if (GetChallengeCompleted NVChallengeKaboom) if (GetChallengeCompleted NVChallengeUpClose) if (GetChallengeCompleted NVChallengeFistful) ; AddAchievement 23 endif endif endif endif ; end
226ChallengeEnergyCritPerkscn ChallengeEnergyCritPerk begin ScriptEffectStart player.addperk SetLasersForFunPerk end
227ChallengeExploreSCRIPTscn ChallengeExploreSCRIPT begin ScriptEffectStart AddAchievement 8 UnlockChallenge NVChallengeMojaveMaster end
228ChallengeFistfulSCRIPTscn ChallengeFistfulSCRIPT begin ScriptEffectStart UnlockChallenge NVChallengeMoreHollars UnlockChallenge NVChallengeDestroyBeauty UnlockChallenge NVChallengeGoForEyes UnlockChallenge NVChallengeLethalWeapons player.RewardXP 50 if (GetChallengeCompleted NVChallengeShootEmUp) if (GetChallengeCompleted NVChallengeKaboom) if (GetChallengeCompleted NVChallengeUpClose) if (GetChallengeCompleted NVChallengeEnergetic) ; AddAchievement 23 endif endif endif endif end
229ChallengeFoodHealedSCRIPTscn ChallengeFoodHealedSCRIPT begin ScriptEffectStart player.RewardXP 100 AddAchievement 22 end
230ChallengeHappySCRIPTscn ChallengeHappySCRIPT begin ScriptEffectStart player.RewardXP 50 end
231ChallengeHealthyGlowSCRIPTscn ChallengeHealthyGlowSCRIPT begin ScriptEffectStart UnlockChallenge NVChallengeHax player.RewardXP 50 AddAchievement 19 end
232ChallengeHighXPSCRIPTscn ChallengeHighXPSCRIPT begin ScriptEffectStart player.RewardXP 100 end
233ChallengeKaboomPowSCRIPTscn ChallengeKaboomPowSCRIPT begin ScriptEffectStart UnlockChallenge NVChallengeAimingOptional UnlockChallenge NVChallengeGrenade player.RewardXP 75 end
234ChallengeKaboomSCRIPTscn ChallengeKaboomSCRIPT begin ScriptEffectStart player.RewardXP 50 UnlockChallenge NVChallengeKaboomPow if (GetChallengeCompleted NVChallengeShootEmUp) if (GetChallengeCompleted NVChallengeEnergetic) if (GetChallengeCompleted NVChallengeUpClose) if (GetChallengeCompleted NVChallengeFistful) ; AddAchievement 23 endif endif endif endif end
235ChallengeLeadDealSCRIPTscn ChallengeLeadDealSCRIPT begin ScriptEffectStart AddAchievement 14 player.RewardXP 50 end
236ChallengeLethalWeaponSCRIPTscn ChallengeLethalWeaponSCRIPT begin ScriptEffectStart UnlockChallenge NVChallengeGutCheck UnlockChallenge NVChallengeStarts player.RewardXP 50 end
237ChallengeLieSCRIPTscn ChallengeLieSCRIPT begin ScriptEffectStart player.rewardxp 25 end
238ChallengeLimberJackSCRIPTscn ChallengeLimberJackSCRIPT begin ScriptEffectStart UnlockChallenge NVChallengePerception UnlockChallenge NVChallengeHeart UnlockChallenge NVChallengeLefty Player.RewardXP 50 end
239ChallengeLordDeathSCRIPTscn ChallengeLordDeathSCRIPT begin ScriptEffectStart UnlockChallenge NVChallengeMurder player.addperk LordDeathChallengePerk showmessage ChallengeMessageLordDeath player.RewardXP 100 end
240ChallengeLoveBombSCRIPTscn ChallengeLoveBombSCRIPT begin ScriptEffectStart AddAchievement 13 player.RewardXP 50 end
241ChallengeLowTechSCRIPTscn ChallengeLowTechSCRIPT begin ScriptEffectStart ;UnlockChallenge NVChallengeLocks player.RewardXP 50 AddAchievement 15 end
242ChallengeLowXPSCRIPTscn ChallengeLowXPSCRIPT begin ScriptEffectStart player.RewardXP 50 end
243ChallengeMediumXPSCRIPTscn ChallengeMediumXPSCRIPT begin ScriptEffectStart player.RewardXP 75 end
244ChallengeMeleeWeaponsPerkSCRIPTscn ChallengeMeleeWeaponsPerkSCRIPT begin ScriptEffectStart int rank; set rank to (player.HasPerk MeleeWeaponsChallengePerk) if (rank < 2) set rank to (player.addperk MeleeWeaponsChallengePerk) showmessage ChallengeMessageMelee rank endif player.RewardXP 50 end
245ChallengeModderSCRIPTscn ChallengeModderSCRIPT begin ScriptEffectStart player.RewardXP 50 AddAchievement 7 end
246ChallengeMojaveSCRIPTscn ChallengeMojaveSCRIPT begin ScriptEffectStart AddAchievement 9 end
247ChallengeMoreEnergeticSCRIPTscn ChallengeMoreEnergeticSCRIPT begin ScriptEffectStart UnlockChallenge NVChallengeCriticalReaction UnlockChallenge NVChallengeLetsGetCritical player.RewardXP 75 end
248ChallengeMurderScriptscn ChallengeMurderScript begin ScriptEffectStart UnlockChallenge NVChallengeApocalypse player.addperk LordDeathChallengePerk player.RewardXP 100 end
249ChallengeMutantScriptscn ChallengeMutantScript begin ScriptEffectStart int rank; set rank to (player.HasPerk MutantChallengePerk) if (rank < 3) set rank to (player.addperk MutantChallengePerk) showmessage ChallengeMessageMutant rank endif if (rank > 2) RemoveRecurringFromChallenge NVChallengeMutantMassacre endif player.RewardXP 50 end
250ChallengeOldTymeSCRIPTscn ChallengeOldTymeSCRIPT begin ScriptEffectStart AddAchievement 23 player.RewardXP 50 end
251ChallengeRadAwaySCRIPTscn ChallengeRadAwaySCRIPT begin ScriptEffectStart player.addperk RadAwayChallengePerk showmessage ChallengeMessageFreeRadical end
252ChallengeRepairSCRIPTscn ChallengeRepairSCRIPT begin ScriptEffectStart player.RewardXP 50 AddAchievement 18 end
253ChallengeRobotSCRIPTscn ChallengeRobotSCRIPT begin ScriptEffectStart int rank; set rank to (player.HasPerk RobotChallengePerk) if (rank < 3) set rank to (player.addperk RobotChallengePerk) set rank to (rank + 1) showmessage ChallengeMessageMachine rank endif if (rank > 2) RemoveRecurringFromChallenge NVChallengeDemiseMachine endif player.RewardXP 50 end
254ChallengeRouletteSCRIPTscn ChallengeRouletteSCRIPT begin ScriptEffectStart player.rewardxp 100 AddAchievement 26 end
255ChallengeSamuraiSCRIPTscn ChallengeSamuraiSCRIPT begin ScriptEffectStart AddAchievement 17 player.RewardXP 50 end
256ChallengeShootEmUpAgainSCRIPTscn ChallengeShootEmUpAgainSCRIPT begin ScriptEffectStart UnlockChallenge NVChallengeSqueezy UnlockChallenge NVChallengeMachinegun UnlockChallenge NVChallengeConditionCritical player.RewardXP 75 end
257ChallengeShootEmUpSCRIPTscn ChallengeShootEmUpSCRIPT begin ScriptEffectStart UnlockChallenge NVChallengeShootemUpAgain UnlockChallenge NVChallengeShotgun player.RewardXP 75 if (GetChallengeCompleted NVChallengeEnergetic) if (GetChallengeCompleted NVChallengeKaboom) if (GetChallengeCompleted NVChallengeUpClose) if (GetChallengeCompleted NVChallengeFistful) ; AddAchievement 23 endif endif endif endif end
258ChallengeSlotsSCRIPTscn ChallengeSlotsSCRIPT begin ScriptEffectStart player.RewardXP 100 AddAchievement 25 end
259ChallengeSpeechSCRIPTscn ChallengeSpeechSCRIPT begin ScriptEffectStart AddAchievement 21 player.rewardxp 50 end
260ChallengeStimHealedSCRIPTscn ChallengeStimHealedSCRIPT begin ScriptEffectStart player.RewardXP 100 AddAchievement 16 end
261ChallengeToughGuySCRIPTscn ChallengeToughGuySCRIPT begin ScriptEffectStart player.addperk SelfLimbDamageChallengePerk showmessage ChallengeMessageToughGuy end
262ChallengeTurboSCRIPTscn ChallengeTurboSCRIPT begin ScriptEffectStart player.addperk TurboChallengePerk showmessage ChallengeMessageFastTimes end
263ChallengeUnarmedPerkSCRIPTscn ChallengeUnarmedPerkSCRIPT begin ScriptEffectStart player.addperk UnarmedChallengePerk showmessage ChallengeMessageUnarmed end
264ChallengeUpCloserSCRIPTscn ChallengeUpCloserSCRIPT begin ScriptEffectStart UnlockChallenge NVChallengeTwoHands UnlockChallenge NVChallengeOneHand UnlockChallenge NVChallengeThisHack UnlockChallenge NVChallengeUsingThat player.RewardXP 75 end
265ChallengeUpCloseSCRIPTscn ChallengeUpCloseSCRIPT begin ScriptEffectStart UnlockChallenge NVChallengeUpCloser UnlockChallenge NVChallengeNotSoClose player.RewardXP 75 if (GetChallengeCompleted NVChallengeShootEmUp) if (GetChallengeCompleted NVChallengeKaboom) if (GetChallengeCompleted NVChallengeEnergetic) if (GetChallengeCompleted NVChallengeFistful) ; AddAchievement 23 endif endif endif endif end
266ChallengeVATSHelperSCRIPTscn ChallengeVATSHelperSCRIPT begin ScriptEffectStart player.addperk VATSHelperChallengePerk showmessage ChallengeMessageFriendlyHelp end
267ChallengeWaterSCRIPTscn ChallengeWaterSCRIPT begin ScriptEffectStart player.addperk WaterChallengePerk showmessage ChallengeMessageWater player.RewardXP 100 end
268CHFSergeantReyesScriptscn CHFSergeantReyesScript begin OnDeath if GetStageDone VMS52 60 == 0 SetStage VMS52 110 endif end
269ChiefHanlonScriptscn ChiefHanlonScript begin OnDeath HanlonSuicideRadioREF.Disable if GetObjectiveDisplayed VMS52 90 == 1 SetObjectiveCompleted VMS52 90 1 SetStage VMS52 100 set VMS52.nHanlonOutcome to 4 elseif (GetStageDone VMS52 60 == 1) ; JSH 11.10.10 - Only fail quest if player was sent to talk to Hanlon. SetStage VMS52 110 endif end
270ChompsLewisTriggerNorthScriptscn ChompsLewisTriggerNorthScript begin OnTriggerEnter player set vFreeformSloan.PlayerFromNorth to 1 Disable MarkForDelete end
271ChrisHaversamScriptscn ChrisHaversamScript int IntercomTime ref ActivatingActor begin OnActivate set ActivatingActor to GetActionREF if ActivatingActor.GetIsReference player if VMS01.NightkinQuest == 3 && GetInCell RocketLabTop ; Do nothing else Activate endif else Activate endif end begin OnDeath if GetStage VMS01 < 50 SetStage VMS01 90 showmessage ChrisHaversamDead endif end begin GameMode if GetIsCurrentPackage REPCONGhoulRocketWalkPACKAGE && GetInCell RocketLabTop == 0 MoveTo ChrisDownstairsInitialMarker Disable endif end
272CloverSCRIPTscn CloverSCRIPT ;Follower Variables short HasBeenHired short WeaponOut short CombatStyleRanged short CombatStyleMelee short IsFollowingDefault short IsFollowingShort short IsFollowingLong short Waiting BEGIN OnCombatEND if ( GetPlayerTeammate == 1 ) resethealth restoreav perceptioncondition 100 restoreav endurancecondition 100 restoreav leftattackcondition 100 restoreav leftmobilitycondition 100 restoreav rightattackcondition 100 restoreav rightmobilitycondition 100 endif END BEGIN OnDeath if ( Followers.CloverHired == 1 ) set Followers.PlayerHasFollower to 0 set Followers.CloverHired to 0 ShowMessage FollowerMessageDeadClover endif END
273ComplexSceneScriptPS3SCRIPTscn ComplexSceneScriptPS3SCRIPT ;All of these default to 0 for off, 1 is on int bReachable int bVisible int bAvoidance int bComplex begin GameMode if (IsPS3 == 0 || vhdBattleController.iBattleState == 0) stopQuest ComplexSceneScriptPS3 return endif if bReachable == 1 setAllReachable 1 endif if bVisible == 1 setallvisible 1 endif if bAvoidance == 1 setNoAvoidance 1 endif if bComplex == 1 setSceneIsComplex 1 endif end
274ComputerPartsQuestScriptscn ComputerPartsQuestScript short GibsonBargain ;1= Player has bargained Old Lady Gibson to half price begin gamemode end
275ControlRumbleScriptscn ControlRumbleScript ;this is a quest script ;===========VARIABLES================================== short debug ;0 = off, 1 = show messages with each stage short initDefaults ;doOnce ;DoOnce Flags short Stage1Fired short Stage2Fired short Stage3Fired short Stage4Fired short Stage5Fired short Stage6Fired short Stage7Fired short Stage8Fired short Stage9Fired short Stage10Fired ;How long each stage lasts: float Stage1FireOnTimerValue float Stage2FireOnTimerValue float Stage3FireOnTimerValue float Stage4FireOnTimerValue float Stage5FireOnTimerValue float Stage6FireOnTimerValue float Stage7FireOnTimerValue float Stage8FireOnTimerValue float Stage9FireOnTimerValue float Stage10FireOnTimerValue ;Strength of left and right rumble float stage1RumbleLeft float stage1RumbleRight float stage2RumbleLeft float stage2RumbleRight float stage3RumbleLeft float stage3RumbleRight float stage4RumbleLeft float stage4RumbleRight float stage5RumbleLeft float stage5RumbleRight float stage6RumbleLeft float stage6RumbleRight float stage7RumbleLeft float stage7RumbleRight float stage8RumbleLeft float stage8RumbleRight float stage9RumbleLeft float stage9RumbleRight float stage10RumbleLeft float stage10RumbleRight ;duration of rumble for each stage ;note: regardless of length they don't stack or overlap with later calls to setRumble regardless of whether the duration has finished or not; each new call to setRumble overrides float Stage1Duration float Stage2Duration float Stage3Duration float Stage4Duration float Stage5Duration float Stage6Duration float Stage7Duration float Stage8Duration float Stage9Duration float Stage10Duration ;timer variables float timerCurrentValue ;timer starts at zero and counts up to timerMaxValue float timerMaxValue ;how long until we completely stop rumble ;turn on rumble variable short RumbleNow ;0 = off, 1 = rumble, -1 done rumbling ;====================GAMEMODE=============== Begin GameMode if initDefaults == 0 setStage ControlRumble 0 set initDefaults to 1 endif if initDefaults == 1 && RumbleNow == 1 if timerCurrentValue < timerMaxValue set timerCurrentValue to timerCurrentValue + getSecondsPassed if Stage1Fired == 0 if timerCurrentValue >= Stage1FireOnTimerValue setRumble stage1RumbleLeft stage1RumbleRight Stage1Duration set stage1Fired to 1 if debug == 1 showwarning "stage 1" endif endif elseif Stage2Fired == 0 if timerCurrentValue >= Stage2FireOnTimerValue setRumble stage2RumbleLeft stage2RumbleRight Stage2Duration set stage2Fired to 1 if debug == 1 showwarning "stage 2" endif endif elseif Stage3Fired == 0 if timerCurrentValue >= Stage3FireOnTimerValue setRumble stage3RumbleLeft stage3RumbleRight Stage3Duration set stage3Fired to 1 if debug == 1 showwarning "stage 3" endif endif elseif Stage4Fired == 0 if timerCurrentValue >= Stage4FireOnTimerValue setRumble stage4RumbleLeft stage4RumbleRight Stage4Duration set stage4Fired to 1 if debug == 1 showwarning "stage 4" endif endif elseif Stage5Fired == 0 if timerCurrentValue >= Stage5FireOnTimerValue setRumble stage5RumbleLeft stage5RumbleRight Stage5Duration set stage5Fired to 1 if debug == 1 showwarning "stage 5" endif endif elseif Stage6Fired == 0 if timerCurrentValue >= Stage6FireOnTimerValue setRumble stage6RumbleLeft stage6RumbleRight Stage6Duration set stage6Fired to 1 if debug == 1 showwarning "stage 6" endif endif elseif Stage7Fired == 0 if timerCurrentValue >= Stage7FireOnTimerValue setRumble stage7RumbleLeft stage7RumbleRight Stage7Duration set stage7Fired to 1 if debug == 1 showwarning "stage 7" endif endif elseif Stage8Fired == 0 if timerCurrentValue >= Stage8FireOnTimerValue setRumble stage8RumbleLeft stage8RumbleRight Stage8Duration set stage8Fired to 1 if debug == 1 showwarning "stage 8" endif endif elseif Stage9Fired == 0 if timerCurrentValue >= Stage9FireOnTimerValue setRumble stage9RumbleLeft stage9RumbleRight Stage9Duration set stage9Fired to 1 if debug == 1 showwarning "stage 9" endif endif elseif Stage10Fired == 0 if timerCurrentValue >= Stage10FireOnTimerValue setRumble stage10RumbleLeft stage10RumbleRight Stage10Duration set stage10Fired to 1 if debug == 1 showwarning "stage 10" endif endif endif elseif timerCurrentValue >= timerMaxValue set RumbleNow to -1 setStage ControlRumble 0 endif endif End
276CookCookScriptscn CookCookScript begin OnDeath if (GetStageDone VMS12 110 == 0) if IsLimbGone 1 AddItem HeadCookCookMangled 1 elseif (IsInCriticalStage GooEnd) || (IsInCriticalStage DisintegrateEnd) AddItem HeadCookCookMangled 1 else AddItem HeadCookCook 1 endif endif set VMS12.bCookCookDead to 1 end
277CorporalBetsyScriptscn CorporalBetsyScript begin OnDeath if (GetStageDone VMS56 100 == 0) SetStage VMS56 110 endif end
278CorporalSterlingScriptscn CorporalSterlingScript begin OnDeath if (GetStageDone VMS56 100 == 0) SetStage VMS56 110 endif end
279CoyoteTobaccoScriptscn CoyoteTobaccoScript int State begin onActivate if State == 0 && GetActionRef == player player.additem NVCoyoteTobaccoFruit 1 set State to 1 playGroup Forward 1 setdestroyed 1 endif end begin onLoad if State == 0 playGroup Backward 1 elseif State == 1 playGroup Forward 1 endif end begin onReset if State == 1 playgroup Backward 1 set State to 0 setdestroyed 0 endif end
280CraftingCampfireRecipesScriptscn CraftingCampfireRecipesScript ; Launches crafting interface for recipes in the "CampfireRecipes" category. ; JES 3.7.10 Ref User Begin OnActivate Set User to GetActionRef If GetActionRef != Player User.Activate Elseif GetActionRef == Player player.showrecipemenu CampfireRecipes Endif End
281CraftingReloadingBenchRecipesScriptscn CraftingReloadingBenchRecipesScript ; Launches crafting interface for recipes in the "ReloadingBenchRecipes" category. ; JES 4.17.10 Ref User Begin OnActivate Set User to GetActionRef If GetActionRef != Player User.Activate Elseif GetActionRef == Player player.showrecipemenu ReloadingBenchRecipes Endif End
282CraftingWorkbenchRecipesScriptscn CraftingWorkbenchRecipesScript ; Launches crafting interface for recipes in the "WorkbenchRecipes" category. ; JES 3.5.10 Ref User Begin OnActivate Set User to GetActionRef If GetActionRef != Player User.Activate Elseif GetActionRef == Player player.showrecipemenu WorkbenchRecipes Endif End
283CrDeathclawEnclaveCageSCRIPTscn CrDeathclawEnclaveCageSCRIPT float timer short doOnce ;**************************************** Begin onPackageEnd DeathclawCAGE01a ;set timer to 20 ;give the Deathclaw enough time to finish his cageExit animation set doOnce to 1 End ;**************************************** Begin onPackageEnd DeathclawCAGE01b ;set timer to 8 ;give the Deathclaw enough time to finish his clawScrape animation set doOnce to 2 End ;**************************************** Begin gameMode if (doOnce == 1) ;if (isLastIdlePlayed DCageExit == 0) if (isIdlePlaying == 0) ;set timer to 20 ;give the Deathclaw enough time to finish his cageExit animation setav variable01 3 evp set doOnce to 3 endif ;if (timer <= 0) ;setav variable01 2 ;evp ;set doOnce to 3 ;else ;set timer to timer - GetSecondsPassed ;endif endif if (doOnce == 2) ;if (isLastIdlePlayed DClawScrape == 0) if (isIdlePlaying == 0) setav variable01 3 evp set doOnce to 3 endif ;if (timer <= 0) ; setav variable01 3 ; evp ; set doOnce to 3 ;else ; set timer to timer - GetSecondsPassed ;endif endif End ;***************
284CrGiantMantisNymphScriptscn CrGiantMantisNymphScript ; Added conditional code to reduce the cost of running the script on every frame. Part of a game-wide revision of scripts - Jorge 03/14/10 int distance Short Alive Begin OnLoad If GetDead != 1 Set Alive to 1 Endif End begin OnDeath ;Disable 1 ;MarkForDelete end begin GameMode If Alive != 1 Return Elseif Alive == 1 If Player.IsInInterior != 1 Return Else if GetDistance player < 50 ; Squish the nymph Kill player Set Alive to 0 endif Endif Endif end
285CrHDDogNCRBuddyScriptscn CrHDDogNCRBuddyScript ; If the player is disguised as a member of NCR and he's detected by a special ; sniffer character, the character sounds the alarm. ref MyHandler short DoOnce begin OnStartCombat Player if (GetQR DisguiseFactionPulseQuest == 1) && (IsSpellTarget DisguiseFactionPulseActorEffect == 1) sendAssaultAlarm Player NCRFactionNV sendAssaultAlarm Player VNCRSnifferFaction set MyHandler to GetLinkedRef if (GetDistance player < 512) && MyHandler != 0 MyHandler.Say NCRSnifferChallengePlayer endif endif end begin GameMode if GetQuestRunning VMQ03a if (GetDistance VHDLegionAssassinBomberREF < 192) && (DoOnce == 0) set DoOnce to 1 ;sayto VHDLegionAssassinBomberREF Hello 1 set VMQ03a.iDogFoundSpy to 1 Look VHDLegionAssassinBomberREF playIdle LooseDogBarkSingleHighPriority elseif (GetDistance VHDLegionSniperREF < 192) && (DoOnce == 0) set DoOnce to 1 Look VHDLegionSniperREF playIdle LooseDogBarkSingleHighPriority endif endif end
286CrimsonCaravanEntranceTriggerScriptscn CrimsonCaravanEntranceTriggerScript short bDoOnce begin OnTriggerEnter player if (VDialogueCrimsonCaravan.bRingoGreetedPlayer == 0) if (GetStageDone VMS16 100) && (bDoOnce == 0) && (RingoRef.GetDead == 0) RingoRef.MoveTo CCRingoMarker RingoRef.RemoveFromFaction GoodspringsRingoFaction RingoRef.RemoveFromFaction GoodspringsRingoAlliesFaction RingoRef.AddToFaction CrimsonCaravanFactionNV 1 RingoRef.AddScriptPackage GSRingoAtCrimsonCaravanDialogue set VFreeformGoodsprings.RingoLeft to 1 set bDoOnce to 1 Disable set VDialogueCrimsonCaravan.bRingoGreetedPlayer to 1 endif endif end
287CrimsonCaravanTraderBrahminScriptscn CrimsonCaravanTraderBrahminScript ; If the trader I'm following is dead, kill myself upon reset. ref LinkedTrader begin OnReset set LinkedTrader to GetLinkedRef if LinkedTrader.GetDead KillActor endif end
288CrNightkinCloakUntilFireScriptscn CrNightkinCloakUntilFireScript short combatcheck short soundcheck float timerEffect int Cloaked ; 0 = Stealth Boy effect not on ; 1 = Stealth Boy effect on ; This var is meant to ensure we never try to remove ; the effect when it's not already on. begin onLoad ModActorValue sneak 100 ; Add the effect, update the flag if Cloaked == 0 addspell StealthBoyInvisibilitySpell set Cloaked to 1 endif set soundcheck to 0 set timerEffect to 0 end begin OnSTARTCombat set combatcheck to 1 end begin OnCombatEND set combatcheck to 0 end begin OnDeath set combatcheck to 0 ; If the nightkin is currently using the Stealth Boy effect, remove it if Cloaked == 1 RemoveSpell StealthBoyInvisibilitySpell set Cloaked to 0 endif end begin GameMode ref refvar set refvar to this ;if GetDetected player ; startcombat player ;endif if combatcheck == 1 ref mytarget set mytarget to refvar.GetCombatTarget endif else if refvar.GetDead == 0 ; addspell StealthBoyInvisibilitySpell set soundcheck to 0 endif endif if GetAnimAction == 2 && Cloaked == 1 ; ShowWarning "Nightkin attacking, decloaking now" RemoveSpell StealthBoyInvisibilitySpell set Cloaked to 0 endif end
289CrNightkinGunScriptscn CrNightkinGunScript short combatcheck short soundcheck float timerEffect int Cloaked ; 0 = Stealth Boy effect not on ; 1 = Stealth Boy effect on ; This var is meant to ensure we never try to remove ; the effect when it's not already on. begin onLoad ModActorValue sneak 100 ; Add the effect, update the flag if Cloaked == 0 addspell StealthBoyInvisibilitySpell set Cloaked to 1 endif set soundcheck to 0 set timerEffect to 0 end begin OnSTARTCombat set combatcheck to 1 end begin OnCombatEND set combatcheck to 0 end begin OnDeath set combatcheck to 0 ; If the nightkin is currently using the Stealth Boy effect, remove it if Cloaked == 1 RemoveSpell StealthBoyInvisibilitySpell set Cloaked to 0 endif end begin GameMode ref refvar set refvar to this ;if GetDetected player ; startcombat player ;endif ;if combatcheck == 1 ; ref mytarget ; set mytarget to refvar.GetCombatTarget ; if timerEffect <= 0 ; Turn stealth back on ; PMS NightkinCloakFXShader .5 ; addspell StealthBoyInvisibilitySpell ; set timerEffect to 5 ; set soundcheck to 0 ; refvar.PlaySound3D OBJStealthBoyActivate ; else ; set timerEffect to (timerEffect - GetSecondsPassed) ; endif ;else ; if refvar.GetDead == 0 && Cloaked == 0 ; PMS NightkinCloakFXShader .5 ; addspell StealthBoyInvisibilitySpell ; set Cloaked to 1 ; set soundcheck to 0 ; endif ;endif if GetAnimAction >= 2 && GetAnimAction <= 6 && Cloaked == 1 RemoveSpell StealthBoyInvisibilitySpell set Cloaked to 0 PMS NightkinCloakFXShader 1 if soundcheck == 0 refvar.PlaySound3D OBJStealthBoyActivate set soundcheck to 1 endif ;if timerEffect <= 0 ; set timerEffect to 1.5 ;endif elseif GetAnimAction < 2 || GetAnimAction > 6 && Cloaked == 0 PMS NightkinCloakFXShader .5 addspell StealthBoyInvisibilitySpell set Cloaked to 1 set soundcheck to 0 endif end
290CrNightkinSCRIPTscn CrNightkinScript short DoOnce short combatcheck short soundcheck float timerEffect int Cloaked ; 0 = Stealth Boy effect not on ; 1 = Stealth Boy effect on ; This var is meant to ensure we never try to remove ; the effect when it's not already on. begin onLoad ModActorValue sneak 100 ; Add the effect, update the flag if Cloaked == 0 addspell StealthBoyInvisibilitySpell ;ShowWarning "Cloaking on load!" set Cloaked to 1 endif set soundcheck to 0 set timerEffect to 0 end begin OnSTARTCombat set combatcheck to 1 end begin OnCombatEND set combatcheck to 0 ; ShowWarning "Combat ending!" end begin OnDeath set combatcheck to 0 ; If the nightkin is currently using the Stealth Boy effect, remove it if Cloaked == 1 RemoveSpell StealthBoyInvisibilitySpell set Cloaked to 0 endif end begin GameMode ref refvar set refvar to this ;if GetDetected player ; startcombat player ;endif ; Backup check to decloak nightkin after death if (GetDead == 1) && (DoOnce == 0) && Cloaked == 1 RemoveSpell StealthBoyInvisibilitySpell set Cloaked to 0 set DoOnce to 1 endif if combatcheck == 1 ref mytarget set mytarget to refvar.GetCombatTarget else ; If not in combat, use Stealth Boy again if refvar.GetDead == 0 && Cloaked == 0 addspell StealthBoyInvisibilitySpell ; ShowWarning "Not in combat, cloaking!" set Cloaked to 1 set soundcheck to 0 endif endif ; Have nightkin decloak when they attack if GetAnimAction == 2 && Cloaked == 1 RemoveSpell StealthBoyInvisibilitySpell set Cloaked to 0 PMS NightkinCloakFXShader 1 if soundcheck == 0 refvar.PlaySound3D OBJStealthBoyActivate set soundcheck to 1 endif endif end
291CrucifiedVictimScriptscn CrucifiedVictimScript short DoOnce begin GameMode ; restrain me once I'm in position if ( DoOnce == 0 ) if ( GetSitting == 3 ) set DoOnce to 1 setRestrained 1 IgnoreCrime 1 endif endif end
292daisyChainOFFTurretSCRIPTscn daisyChainOFFTurretSCRIPT ref myLink short ONflag short damageBrain short init begin onLoad end begin gameMode if init == 0 set init to 1 set myLink to getLinkedRef setUnconscious 1 set ONflag to 0 ; this turret is OFF by default endif if damageBrain == 0 if getAV brainCondition == 0 ; all these checks handle daisy-chain turret systems set damageBrain to 1 myLink.damageAV brainCondition 100 endif endif if ONflag == 1 If getUnconscious == 1 stopCombat myLink.stopCombat myLink.setUnconscious 1 set ONflag to 0 endif elseif ONflag == 0 if getUnconscious == 0 myLink.setUnconscious 0 set ONflag to 1 endif endif end
293daisyChainturretSCRIPTscn daisyChainturretSCRIPT ref myLink short ONflag short damageBrain short init begin gameMode if init == 0 set init to 1 set myLink to getLinkedRef set ONflag to 1 ; this turret is ON by default setUnconscious 0 ; make sure my consciousness matches my ON state endif if damageBrain == 0 if getAV brainCondition == 0 ; all these checks handle daisy-chain turret systems set damageBrain to 1 myLink.damageAV brainCondition 100 endif endif if ONflag == 1 If getUnconscious == 1 stopCombat myLink.stopCombat myLink.setUnconscious 1 set ONflag to 0 endif elseif ONflag == 0 if getUnconscious == 0 myLink.setUnconscious 0 set ONflag to 1 endif endif end
294daynightenablescn daynightenable float Time int State begin onLoad if State == 1 enable else disable endif end begin GameMode set Time to GetCurrentTime if (Time > 20 || Time < 6) && State == 0 enable 0 ;Turn On set state to 1 elseif Time < 20 && Time > 6 && State == 1 disable ;Turn Off set State to 0 endif end
295DeathclawCageDoorGenericSCRIPTscn DeathclawCageDoorGenericSCRIPT short doOnce ref linkedRef ;set to deathclaw in the cage float timer ;used to keep the deathclaw idling for a couple seconds before starting his cageExit anim short doorOpen ; 1 - door has been opened for the first time ;*************************************** Begin gameMode if doOnce == 0 set doOnce to 1 setStage NQlvl 1 set timer to 2 ;the amount of time the Deathclaw remains in his idle animation before doing his cageExit anim set linkedRef to getLinkedRef set doorOpen to 0 lock NQlvl.DeathclawCageDoorLockLvlReq endif ;if the door is unlocked and it's either closed or closing, then open the doors if ( (getLocked == 0) && (doorOpen == 0) ) if ( (getOpenState == 3) || (getOpenState == 4) ) activate player endif set doorOpen to 1 endif if (doorOpen == 1) if ( timer <= 0 ) linkedRef.setav variable01 1 ;condition used in the deathclaw package to get it out of its cage linkedRef.evp set doorOpen to 2 else set timer to (timer - GetSecondsPassed) endif endif End ;***************************************
296DeathclawKnockdownScriptscn DeathclawKnockdownScript ref myself ref mytarget short rnd Begin ScriptEffectStart set rnd to GetRandomPercent if rnd <= 20 set mytarget to GetCombatTarget If mytarget.HasPerk Stonewall != 1 set myself to GetSelf myself.pushactoraway mytarget 20 Else ShowMessage StonewallMessage Endif endif End
297DeathclawStunWeaponSCRIPTscn DeathclawStunWeaponSCRIPT begin onEquip ShowMessage AbilityWellRestedStartMsg end
298Default1xActivateLinkedRefSCRIPTscn Default1xActivateLinkedRefSCRIPT ; a standard, all-purpose script ref myLink short doOnce begin onTriggerEnter player if doOnce == 0 set myLink to getLinkedRef myLink.activate set doOnce to 1 endif end
299DefaultActLinkWhenActSCRIPTscn DefaultActLinkWhenActSCRIPT ; a standard, all-purpose script ref myLink ref myActor begin onActivate set myLink to getLinkedRef set myActor to getActionRef myLink.activate myActor end
300DefaultDisableFastTravelSCRIPTscn DefaultDisableFastTravelSCRIPT ; used on triggers to mark zones in which fast travel is disallowed begin onTriggerEnter if isActionRef player == 1 EnableFastTravel 0 if NQlvl.fastTravelDisabled == 0 set NQlvl.fastTravelDisabled to 1 endif ;messageBox "fast travel disabled" endif end begin onTriggerLeave if isActionRef player == 1 enableFastTravel 1 if NQlvl.fastTravelDisabled == 1 set NQlvl.fastTravelDisabled to 0 endif ;messageBox"fast travel enabled" endif end
301DefaultDisableLinkOnActivateSCRIPTscn DefaultDisableLinkOnActivateSCRIPT ; basic script that enables linked reference on activate short DoOnce ref myLink begin onActivate if doOnce == 0 set myLink to getLinkedRef myLink.disable set doOnce to 1 endif activate end
302DefaultDisableLinkOnSelfTriggerEnterSCRIPTscn DefaultDisableLinkOnSelfTriggerEnterSCRIPT ; basic script that self-disables linked reference on activate short DoOnce ref myLink begin OnTriggerEnter if doOnce == 0 set myLink to getLinkedRef if(IsActionRef myLink) myLink.disable 1 set doOnce to 1 MarkForDelete endif endif end
303DefaultDisableLinkOnTriggerEnterSCRIPTscn DefaultDisableLinkOnTriggerEnterSCRIPT ; basic script that enables linked reference on activate short DoOnce ref myLink begin OnTriggerEnter player if doOnce == 0 set myLink to getLinkedRef myLink.disable set doOnce to 1 MarkForDelete endif end
304DefaultEnableLink1xSCRIPTscn DefaultEnableLink1xSCRIPT ; basic script that enables linked reference short DoOnce ref myLink begin onTriggerEnter if doOnce == 0 set myLink to getLinkedRef myLink.enable set doOnce to 1 endif end
305DefaultEnableLink1xSCRIPTplayerscn DefaultEnableLink1xSCRIPTplayer ; basic script that enables linked reference short DoOnce ref myLink begin onTriggerEnter player if doOnce == 0 set myLink to getLinkedRef myLink.enable set doOnce to 1 endif end
306DefaultEnableLinkOnActivateSCRIPTscn DefaultEnableLinkOnActivateSCRIPT ; basic script that enables linked reference on activate short DoOnce ref myLink begin onActivate if doOnce == 0 set myLink to getLinkedRef myLink.enable set doOnce to 1 endif activate end
307DefaultPlaygroupForwardOnLoadscn DefaultPlaygroupForwardOnLoad short doOnce begin onLoad playgroup idle 0 playgroup forward 0 end begin gameMode if doOnce == 0 if isAnimplaying forward == 0 set doOnce to 1 playgroup left 0 endif endif end
308DemoCrippleBeGoneEffectScriptscn DemoCrippleBeGoneEffectSCRIPT Begin ScriptEffectStart ;heal all body parts Player.restoreav leftmobilitycondition 100 Player.restoreav rightmobilitycondition 100 Player.restoreav rightattackcondition 100 Player.restoreav leftattackcondition 100 Player.restoreav perceptioncondition 100 Player.restoreav endurancecondition 100 End
309DemoProtectronScriptscn DemoProtectronScript short active ; set to 1 to turn on and start moving short talk ; set to 1 to start talking float timer ; used for custom dialogue short turnOn float turnOnTimer short ticketCheck ; 1= ready to ask for tickets ; 2 = player has ticket begin onLoad set ticketCheck to 0 setav bloodymess 1 if active == 0 ; make me unconscious so I don't play sounds setUnconscious 1 set talk to 0 endif end begin gamemode if turnOn == 1 if turnOnTimer >= 0 set turnOnTimer to turnOnTimer - GetSecondsPassed else set turnOn to 2 ;get him to move around setUnconscious 0 set active to 1 evp endif endif if talk == 1 && getDead == 0 if timer > 0 set timer to timer - GetSecondsPassed else if GetIsCurrentPackage DemoProtectron01TicketCheck == 1 SayTo player DemoRobotTopicB 1 set timer to 5 else Say DemoRobotTopicA set timer to 7 endif endif endif ; periodically check if player is in combat with anything -- if so, assume protectron goes into "hostile" mode if getav aggression == 0 if player.isInCombat == 1 && getInSameCell player == 1 set active to 1 ; normal patrol setav aggression 1 ; make aggressive endif endif end begin OnPackageStart DemoProtectron01TicketCheck set talk to 1 set timer to 1 end
310DerekPacionScriptscn DerekPacionScript short talkedAboutSuperheroIdentities ;1 = told the player his suspicions about the supers identities (set and used as condition by MS02 infos)
311DetonatorOnFirescn DetonatorOnFire begin OnFire player.DetonatePlacedExplosives ; Added by Akil Hooper 3/3/10 if vHDBattleController.bGeneratorsActive == 1 ;showwarning "Blow Up the Generators" if player.GetInWorldspace WastelandNV == 1 vHDGenerator01.do 50000 vHDGenerator02.do 50000 vHDGenerator03.do 50000 vHDGenerator04.do 50000 set vHDBattleController.bGeneratorsActive to -1 endif endif ; Added by Charles Staples 03/08/10 if VMQ03b.bWatsonHelmetRigged == 1 if VMQ03b.iWatsonHasHat == 1 VHDPrivateWatsonREF.PlaceAtMe C4ExplosionNoLOS 1 else VHDWatsonsHelmetREF.PlaceAtMe C4ExplosionNoLOS 1 endif rewardkarma -100 set VMQ03b.bWatsonHelmetRigged to -1 Set RadioNewVegas.bKimballMOD to 4 endif end
312DiscoverREPCONTriggerScriptscn DiscoverREPCONTriggerScript ; 5.3.09 JF ; This script runs when the player approaches REPCON. It updates the Come Fly With Me quest if the player has already started it. int DoOnce begin OnTriggerEnter player if DoOnce == 0 if GetObjectiveDisplayed VMS01 5 == 1 SetObjectiveCompleted VMS01 5 1 SetObjectiveDisplayed VMS01 10 1 Set DoOnce to 1 endif endif end
313DisguiseFactionPulseScriptScn DisguiseFactionPulseScript ; This script belongs to a spell effect that removes Faction Sniffers from the "magic" armor faction donned when players use faction disguises. ; The spell is set off intermittently, through a pulse, that filters the appropriate references within its radius. This radius is set to 25 (spell units), currently, and it's ; planned to reach at least 50 units. The pulse is placed on the player every two seconds, timed through a quest script that kicks off/on when players ; equip a faction disguise. ; - Jorge ; Also, the script only addresses NCR relations. It'll eventually consider any faction that has faction disguises. Ref Self Begin ScriptEffectStart If GetIsReference Player == 1 Return Else Set Self to GetSelf If DisguiseFactionPulseQuest.DebugGlow == 1 Self.PMS AlienCritGlowFXShader Endif ;If Player.GetEquipped FactionGearNVNCR == 1 ;************commenting out this if, this was preventing anything other than NCR from working If Self.GetInFaction VNCRSnifferFaction == 1 Self.RemoveFromFaction ArmorNCRFactionNV Elseif Self.GetinFaction VCaesarsLegionSnifferFaction == 1 Self.RemoveFromFaction ArmorVCaesarsLegionFaction Elseif Self.GetinFaction VBOSSnifferFaction == 1 Self.RemoveFromFaction ArmorBrotherhoodSteelFaction Elseif Self.GetinFaction VKhanSnifferFaction == 1 Self.RemoveFromFaction ArmorGreatKhansFactionNV Elseif Self.GetinFaction VPowderGangerSnifferFaction == 1 Self.RemoveFromFaction ArmorPowderGangerFactionNV Endif ;Endif Endif End Begin ScriptEffectUpdate ;Self.PMS AlienCritGlowFXShader End Begin ScriptEffectFinish Set Self to Getself If Self.GetInFaction VNCRSnifferFaction == 1 Self.AddToFaction ArmorNCRFactionNV 0 Elseif Self.GetinFaction VCaesarsLegionSnifferFaction == 1 Self.AddToFaction ArmorVCaesarsLegionFaction 0 Elseif Self.GetinFaction VBOSSnifferFaction == 1 Self.AddToFaction ArmorBrotherhoodSteelFaction 0 Elseif Self.GetinFaction VKhanSnifferFaction == 1 Self.AddToFaction ArmorGreatKhansFactionNV 0 Elseif Self.GetinFaction VPowderGangerSnifferFaction == 1 Self.AddToFaction ArmorPowderGangerFactionNV 0 Endif End
314DisguiseFactionQuestScriptScn DisguiseFactionQuestScript ; This code kicks in whenever players equip any faction disguises. We place an explosion with a custom enchantment on it (scripted spell effect) that filters through ; all the references within its radius. When this pulse finds a Sniffer reference from the appropriate faction, it removes them from the disguise faction and thus potentially turns ; them hostile to players with whom they have less than stellar relations float fTimer Short DebugGlow ;Variable to track reputation clearing while wearing Faction armor short bFactionArmorEquipped ;Adding in Variables to store Reputation for the player float fNCRNegReputation float fNCRPosReputation float fLegionNegReputation float fLegionPosReputation float fBoSNegReputation float fBoSPosReputation float fKhanNegReputation float fKhanPosReputation float fPowderNegReputation float fPowderPosReputation float fWhiteGloveSocietyNegReputation; float fWhiteGloveSocietyPosReputation; Begin GameMode ;DisguiseFactionPulseCasterREF.MoveTo Player ;DisguiseFactionPulseCasterREF.Cast DisguiseFactionPulseActorEffect Player Player.CIOS DisguiseFactionPulseActorEffect if fTimer < 300 set fTimer to fTimer + GetSecondsPassed else ;Display message if (player.GetEquipped FactionGearNVNCR == 1) ShowMessage FactionReminderNCR elseif (player.GetEquipped FactionGearNVBrotherhood == 1) ShowMessage FactionReminderBrotherhood elseif (player.GetEquipped FactionGearNVCaesar == 1) ShowMessage FactionReminderCaesarsLegion elseif (player.GetEquipped FactionGearNVGreatKhans == 1) ShowMessage FactionReminderGreatKhans elseif (player.GetEquipped FactionGearNVPowder == 1) ShowMessage FactionReminderPowderGanger elseif (player.GetEquipped VMS18WhiteGloveMask == 1) && (Player.GetEquipped OutfitFormalWear == 1 || player.GetEquipped ArmorWhiteGloveSociety == 1) ShowMessage FactionReminderWhiteGloveSociety endif ;Reset Timer set fTimer to 0.0 endif End
315DLC03ReaverGlowSpellScriptscn DLC03ReaverGlowSpellScript Begin ScriptEffectStart pms DLC03GhoulFXShader End Begin ScriptEffectFinish sms DLC03GhoulFXShader End
316DLC03TeslaArmorShockScriptscn DLC03TeslaArmorShockScript begin onHit ;AOE at self small shock explosion placeAtMe grenadePulseExplosion 1 end
317DLC03TeslaBombEffectSCRIPTscn DLC03TeslaBombEffectSCRIPT Begin ScriptEffectStart IF IsGoreDisabled == 0 IF getdead == 1 PMS pulseDisableFXShader ENDIF ENDIF END BEGIN ScriptEffectFinish SMS pulseDisableFXShader ;// start the secondary explosion IF getdead == 0 placeAtMe DLC03TeslaCannonExplosionSmall 1 ENDIF END
318DLC03TeslaChainEffectScriptscn DLC03TeslaChainEffectScript Short DeleteMe Short SearchStage Short SearchAngle Short SearchAttempt Short DoOnce Short Init Float randVal ;// vars for vertibird ref triggerActor Begin OnLoad if Init == 0 Set SearchStage to 1 Set SearchAngle to 1 Set SearchAttempt to 1 Set DeleteMe to 0 Set DoOnce to 0 Set randVal to getRandomPercent * 3.6 SetAngle z, randVal playgroup forward 0 Set Init to 1 endif End ;; SearchStage 2 means we have a horizontal location. SearchStage 3 means we have a target vector to fire. Begin OnTrigger if SearchStage == 1 if SearchAngle == 1 Playgroup FastForward 0 elseif SearchAngle == 2 Playgroup FastLeft 0 elseif SearchAngle == 3 Playgroup FastBackward 0 elseif SearchAngle == 4 Playgroup FastRight 0 endif set SearchAttempt to 1 set SearchStage to 2 endif if SearchStage == 2 if SearchAttempt != 100 If GetDestructionStage < 1 Do 50 Set SearchStage to 3 endif endif elseif SearchStage== 3 ;Disabled 6/30 CES FireWeapon DLC03WeapTeslaChainEffect Set SearchStage to 4 endIf End Begin GameMode ;;; Delete me if I am ever disabled If DeleteMe == 0 If getDisabled == 1 MarkForDelete set DeleteMe to 1 endif endif ;;; We know what of the four directions, time to aim more carefully twice. if SearchStage == 2 If SearchAngle == 1 if SearchAttempt ==1 If isAnimPlaying FastForward == 0 playgroup FastForward 0 Set SearchAttempt to 2 endif elseif SearchAttempt == 2 If isAnimPlaying FastForward == 0 Set SearchAttempt to 100 Set DoOnce to 2 endif endif endif ;; If SearchAngle == 2 if SearchAttempt ==1 If isAnimPlaying FastLeft == 0 playgroup FastLeft 0 Set SearchAttempt to 2 endif elseif SearchAttempt == 2 If isAnimPlaying FastLeft == 0 Set SearchAttempt to 100 Set DoOnce to 2 endif endif endif ;; If SearchAngle == 3 if SearchAttempt ==1 If isAnimPlaying FastBackward == 0 playgroup FastLeft 0 Set SearchAttempt to 2 endif elseif SearchAttempt == 2 If isAnimPlaying FastBackward == 0 Set SearchAttempt to 100 Set DoOnce to 2 endif endif endif ;; If SearchAngle == 4 if SearchAttempt ==1 If isAnimPlaying FastRight == 0 playgroup FastLeft 0 Set SearchAttempt to 2 endif elseif SearchAttempt == 2 If isAnimPlaying FastRight == 0 Set SearchAttempt to 100 Set DoOnce to 2 endif endif endif endif ;;; We have no target; we search the four main directions. We do this search 2 times, then we delete ourselves. if SearchStage == 1 if SearchAttempt ==1 If SearchAngle == 1 If isAnimPlaying Forward == 0 playgroup left 0 Set SearchAngle to 2 endif endif If SearchAngle == 2 If isAnimPlaying left == 0 playgroup backward 0 Set SearchAngle to 3 endif endif If SearchAngle == 3 If isAnimPlaying Backward == 0 playgroup right 0 Set SearchAngle to 4 endif endif If SearchAngle == 4 If isAnimPlaying Right == 0 playgroup Forward 0 Set SearchAngle to 1 Set SearchAttempt to 5 endif endif endif ;; if SearchAttempt ==5 If SearchAngle == 1 If isAnimPlaying Forward == 0 playgroup left 0 Set SearchAngle to 2 endif endif If SearchAngle == 2 If isAnimPlaying left == 0 playgroup backward 0 Set SearchAngle to 3 endif endif If SearchAngle == 3 If isAnimPlaying Backward == 0 playgroup right 0 Set SearchAngle to 4 endif endif If SearchAngle == 4 If isAnimPlaying Right == 0 playgroup Forward 0 Set SearchAngle to 1 Set SearchAttempt to 6 Set DoOnce to 2 endif endif endif EndIf If DoOnce == 2 Disable set DoOnce to 3 endif if DoOnce == 3 set DeleteMe to 1 MarkForDelete endif End ;/////////////////////////////////////////////////////// ;// VERTIBIRD EXPLOSION STUFF ;//////////////////////////////////////////////////////// BEGIN ONTRIGGERENTER ;// store who triggered us set triggerActor to getActionRef ;// if its in the vertibird list, blow it up! IF triggerActor.isInList DLC03TeslaExplosionList triggerActor.do 50000 ENDIF END
319DLC03TeslaEffectSCRIPTscn DLC03TeslaEffectSCRIPT Begin ScriptEffectStart ;// apply the electric damage PMS pulseDisableFXShader END BEGIN ScriptEffectFinish SMS pulseDisableFXShader END
320DLC03TeslaExplosionScriptscn DLC03TeslaExplosionScript ref triggerActor short disableTimerInit float disableTimer short spellOnce short targetAcquired BEGIN GAMEMODE ;////////// ;// if we're active but havent hit a vertibird yet, wait a few seconds then disable ;////////// IF getDisabled == 0 IF disableTimerInit == 0 set disableTimer to 2 set disableTimerInit to 1 ENDIF ;// the cleanup timer, if we're around for X seconds without being triggered, disable IF disableTimer > 0 set disableTimer to disableTimer - getSecondsPassed ELSE disable ENDIF ENDIF END BEGIN ONTRIGGERENTER ;// store who triggered us set triggerActor to getActionRef ;// if its in the vertibird list, blow it up! IF triggerActor.isInList DLC03TeslaExplosionList set targetAcquired to 1 triggerActor.do 50000 ENDIF END
321DLC04BeachHoleSCRIPTscn DLC04BeachHoleSCRIPT ref myLinkedRef ref myLinkedRefsRef ;// disable timer short digTimerStart short scaleTimer float digTimer short shovelCheck short dismembererCheck short throwDirt short unequipOnce short dirtExplosion short digTimerRun BEGIN ONLOAD set digTimer to 0 ;// get the links set myLinkedRef to getLinkedRef END BEGIN ONACTIVATE IF ( isActionRef player == 1 ) IF ( player.getItemCount WeapShovel >= 1 ) ;/////////// ;// unequip the weapons and make the timer longer ;/////////// IF ( player.getEquipped WeapShovel == 1 ) player.unequipItem WeapShovel 0 1 set shovelCheck to 1 ENDIF ;// start the anim and the timer activate player set digTimerStart to 1 ELSE showMessage NoShovelMsg ENDIF ENDIF END BEGIN GAMEMODE IF ( digTimerStart == 1 ) IF ( dirtExplosion == 0 && player.GetSitting == 2 ) placeAtMe DLC04ShovelDirtExplosion 1 set digTimer to 7 set dirtExplosion to 1 set digTimerRun to 1 ENDIF IF ( digTimerRun == 1 ) IF ( digTimer > 0 ) set digTimer to digTimer - getSecondsPassed ;// scale the model down to make it go away IF ( scaleTimer == 0 && digTimer < 5 ) set scaleTimer to 1 setScale 0.01 ;// if its the treasure hole, add the treasure ;IF ( getSelf == DLC04BeachTreasureHoleSand ) ; DLC04BeachTreasure.enable 0 ;ENDIF ENDIF ;// have the hole remove itself ; IF ( throwDirt == 0 && digTimer < 2.3 ) ; myLinkedRef.playgroup forward 0 ; set throwDirt to 1 ; ENDIF ELSE enablePlayerControls ;/////////// ;// if the player had a shovel equipped, re-equip it ;/////////// IF ( shovelCheck == 1 ) player.equipItem WeapShovel 0 1 ENDIF set digTimerStart to 2 disable ENDIF ENDIF ENDIF END
322DoctorKempSCRIPTscn DoctorKempSCRIPT short DoOnce ;Script blocker short BeginMedicalServicesBAD ;Used for Sawbones float Timer ;Timer used for animation control int iHealed ;toggled when player healed to change greetings. BEGIN GameMode ;When set to 1, plays medical animations for eight seconds then restarts conversation with the player if ( GetAV Variable01 == 1 ) if ( DoOnce== 0 ) setrestrained 1 disablePlayerControls sayto player VFreeformMcCarranDoctorKempTopic001 set Timer to 8 set DoOnce to 1 PlayIdle LooseDoctorHealPlayer endif set Timer to ( Timer - GetSecondsPassed ) if ( Timer <= 6 ) && ( DoOnce == 1 ) IMod FadeToBlackISFX set DoOnce to 2 endif if ( Timer <= 0 ) && ( IsImagespaceActive FadeToBlackISFX == 0 ) setstage VDoctors 10 setrestrained 0 enablePlayerControls SetAv Variable01 0 ;resetai Set DoOnce to 0 set iHealed to 1 StartConversation player VFreeformMcCarranDoctorKempTopic001 endif endif ;When set to 1, plays medical animations for eight seconds then restarts conversation with the player if ( GetAV Variable01 == 2 ) if ( DoOnce== 0 ) setrestrained 1 disablePlayerControls set Timer to 8 set DoOnce to 1 PlayIdle LooseDoctorHealPlayer endif set Timer to ( Timer - GetSecondsPassed ) if ( Timer <= 6 ) && ( DoOnce == 1 ) IMod FadeToBlackISFX set DoOnce to 2 endif if ( Timer <= 0 ) && ( IsImagespaceActive FadeToBlackISFX == 0 ) setstage VDoctors 20 setrestrained 0 enablePlayerControls SetAv Variable01 0 ;resetai Set DoOnce to 0 set iHealed to 1 StartConversation player VFreeformMcCarranDoctorKempTopic001 endif endif if ( GetAV Variable01 == 3 ) if ( DoOnce== 0 ) setrestrained 1 disablePlayerControls set Timer to 8 set DoOnce to 1 PlayIdle LooseDoctorHealPlayer endif set Timer to ( Timer - GetSecondsPassed ) if ( Timer <= 6 ) && ( DoOnce == 1 ) IMod FadeToBlackISFX set DoOnce to 2 endif if ( Timer <= 0 ) && ( IsImagespaceActive FadeToBlackISFX == 0 ) SetStage VDoctors 30 setrestrained 0 enablePlayerControls SetAv Variable01 0 ;resetai Set DoOnce to 0 set iHealed to 1 StartConversation player VFreeformMcCarranDoctorKempTopic001 endif endif END
323DoctorTemplateSCRIPTscn DoctorTemplateSCRIPT short DoOnce ;Script blocker float Timer ;Timer used for animation control BEGIN GameMode ;When set to 1, plays medical animations for eight seconds then restarts conversation with the player if ( GetAV Variable01 == 1 ) if ( DoOnce== 0 ) disablePlayerControls set Timer to 8 set DoOnce to 1 resetai endif set Timer to ( Timer - GetSecondsPassed ) if ( Timer <= 6 ) && ( DoOnce == 1 ) IMod FadeToBlackISFX set DoOnce to 2 endif if ( Timer <= 0 ) && ( IsImagespaceActive FadeToBlackISFX == 0 ) setstage VDoctors 10 enablePlayerControls SetAv Variable01 3 resetai Set DoOnce to 0 endif endif ;When set to 1, plays medical animations for eight seconds then restarts conversation with the player if ( GetAV Variable01 == 2 ) if ( DoOnce== 0 ) disablePlayerControls set Timer to 10 set DoOnce to 1 resetai endif set Timer to ( Timer - GetSecondsPassed ) if ( Timer <= 6 ) && ( DoOnce == 1 ) IMod FadeToBlackISFX set DoOnce to 2 endif if ( Timer <= 0 ) && ( IsImagespaceActive FadeToBlackISFX == 0 ) setstage VDoctors 20 enablePlayerControls SetAv Variable01 3 resetai Set DoOnce to 0 endif endif END
324DoctorUsanagiScriptscn DoctorUsanagiScript short DoOnce ;Script blocker float Timer ;Timer used for animation control begin OnDeath if (GetStageDone VMS56 100 == 0) SetStage VMS56 110 endif end BEGIN GameMode ;When set to 1, plays medical animations for eight seconds then restarts conversation with the player if ( GetAV Variable01 == 1 ) if ( DoOnce== 0 ) disablePlayerControls set Timer to 8 set DoOnce to 1 resetai endif set Timer to ( Timer - GetSecondsPassed ) if ( Timer <= 6 ) && ( DoOnce == 1 ) IMod FadeToBlackISFX set DoOnce to 2 endif if ( Timer <= 0 ) && ( IsImagespaceActive FadeToBlackISFX == 0 ) setstage VDoctors 10 enablePlayerControls SetAv Variable01 3 resetai Set DoOnce to 0 endif endif ;When set to 1, plays medical animations for eight seconds then restarts conversation with the player if ( GetAV Variable01 == 2 ) if ( DoOnce== 0 ) disablePlayerControls set Timer to 10 set DoOnce to 1 resetai endif set Timer to ( Timer - GetSecondsPassed ) if ( Timer <= 6 ) && ( DoOnce == 1 ) IMod FadeToBlackISFX set DoOnce to 2 endif if ( Timer <= 0 ) && ( IsImagespaceActive FadeToBlackISFX == 0 ) setstage VDoctors 20 enablePlayerControls SetAv Variable01 3 resetai Set DoOnce to 0 endif endif END
325DogmeatSCRIPTscn DogmeatSCRIPT ;Follower Variables short HasBeenHired short WeaponOut short CombatStyleRanged short CombatStyleMelee short IsFollowingDefault short IsFollowingShort short IsFollowingLong short Waiting ;Dogmeat Variables short Find ;0 = not finding, 1 = searching, 2 = found and should now return short FindAmmo short FindChems short FindWeapons short FindFood BEGIN OnStartCombat Player set Followers.DogmeatHired to 0 set Followers.DogmeatFired to 1 ;set DogmeatREF.Waiting to 0 ;DogmeatREF.SetPlayerTeammate 0 ;DogmeatREF.RemoveFromFaction FollowerFaction END BEGIN OnCombatEND if ( GetPlayerTeammate == 1 ) resethealth restoreav perceptioncondition 100 restoreav endurancecondition 100 restoreav leftattackcondition 100 restoreav leftmobilitycondition 100 restoreav rightattackcondition 100 restoreav rightmobilitycondition 100 endif END BEGIN OnDeath if ( Followers.DogmeatHired == 1 || Followers.DogmeatFired == 1 ) set Followers.PlayerHasFollower to 0 set Followers.DogmeatHired to 0 ShowMessage FollowerMessageDeadDogmeat endif END
326DogTagNoteSCRIPTscn DogTagNoteSCRIPT begin onAdd player addnote DogTagFistNote addnote SchematicsDogTagFistNote end
327DonHostetlerScriptscn DonHostetlerScript BEGIN OnDeath if GetObjectiveCompleted VMS46 30 == 0 setStage VMS46 70 endif END
328DoorActivatedByLinkedRefSCRIPTscn DoorActivatedByLinkedRefSCRIPT ; This script tells the door to only be activated by not the player ref LinkedRef Begin onActivate if linkedRef == 0 set LinkedRef to getLinkedRef endif if (IsActionRef player == 1) ShowMessage GenericDoorActivatedElsewhereMsg elseIf (IsActionRef LinkedRef == 1) activate endif End
329DoorCloseLockAvgOnActivatescn DoorCloseLockAvgOnActivate ; ;This script will cause a door to close and lock on activation from a reference other than the player ; ;================================== begin onActivate if isActionRef player == 0 lock 2 setOpenState 0 else activate endif end
330DoorRemoteOpenSCRIPTscn DoorRemoteOpenSCRIPT ; This script tells the door to only be activated by not the player ref activateRef Begin onActivate set activateRef to getActionRef if (IsActionRef player == 1) ShowMessage GenericDoorActivatedElsewhereMsg elseif (activateRef.isActor == 1) ;do nothing else activate endif End
331EastPumpStationTermBrokenScriptscn EastPumpStationTermBrokenScript short Button short bRepaired BEGIN OnActivate player if bRepaired Activate else ShowMessage EastPumpStationTermMsg endif END BEGIN GameMode set Button to GetButtonPressed ; Player repairs the network connection if ( Button == 1 ) ShowMessage EastPumpStationTermRepairedMsg set bRepaired to 1 set VMS10.bEastTerminalRepaired to 1 RewardXP 50 endif if ( Button == 2 ) Activate endif END
332EDERadioBaseEffectSCRIPTscn EDERadioBaseEffectSCRIPT begin ScriptEffectStart if GetDead == 0 SetNPCRadio 1 EDERadioREF endif end begin ScriptEffectFinish SetNPCRadio 0 EDERadioREF end
333EDERepconHQTriggerSCRIPTscn EDERepconHQTriggerSCRIPT begin OnTriggerEnter Player if GetObjectiveDisplayed vDialogueEDE 10 setobjectivecompleted vDialogueEDE 10 1 setobjectivedisplayed vDialogueEDE 12 1 disable endif end
334EDEScriptscn EDEScript int Waiting ; 0 = Not waiting, 1 = Waiting int CombatStyleMelee ; 0 = Not melee, 1= Melee int CombatStyleRanged ; 0 = Not ranged, 1 = Ranged int IsFollowingDefault ; 0 = Not following default, 1 = Is following default range int IsFollowingLong ; 0 = Not following long, 1 = Is following long int FollowerSwitchAggressive ; 0 = Passive (wait on player), 1 = Aggressive (attack when see enemies) float fTimer int OnceOnly int iLogsPlayed ; Count of the number of logs played int iRadioConversation ; ref rLogBlocker ; reference to stop the player from getting logs in the same cell int bSameCell ; Set to 1 if the player is in the same cell as a log blocker. begin OnLoad if OnceOnly == 0 set OnceOnly to 1 endif end begin GameMode if iRadioConversation == 1 && this == EDE1Ref EDERadioREF.enable sayto Player EDEStatic set iRadioConversation to 2 endif if (rLogBlocker != 0 && bSameCell == 0) if (rLogBlocker.GetInSameCell Player) set bSameCell to 1 endif elseif bSameCell == 1 && rLogBlocker.GetInSameCell Player == 0 set bSameCell to 0 endif end begin SayToDone EDEStatic startconversation Player EDERadioConversation end ;--------------------------------------------------------------------------------------------------------------------------------------------- begin OnDeath if VNPCFollowers.bEDEHired == 1 set VNPCFollowers.nCurrentFollowers to VNPCFollowers.nCurrentFollowers - 1; set vNPCFollowers.bCritterinParty to 0 if (VNPCFollowers.nCurrentFollowers == 0) set VNPCFollowers.bPlayerHasFollower to 0 endif set VNPCFollowers.bEDEHired to 0 ShowMessage FollowerMessageDeadEDE player.RemovePerk EnhancedSensors ShowMessage FollowerMessagePerkEDERemove endif set VNPCFollowers.bEDEDead to 1 if GetQuestCompleted vDialogueEDE == 0 setstage vDialogueEDE 100 endif end begin GameMode if OnceOnly == 1 set fTimer to GetSecondsPassed + fTimer if fTimer >= 5 set OnceOnly to 2 set EDE2Ref.OnceOnly to 2 set EDE3Ref.OnceOnly to 2 setrestrained 0 resetai endif endif end ;--------------------------------------------------------------------------------------------------------------------------------------------- begin OnCombatEND if GetPlayerTeammate == 1 resethealth restoreav perceptioncondition 100 restoreav endurancecondition 100 restoreav leftattackcondition 100 restoreav leftmobilitycondition 100 restoreav rightattackcondition 100 restoreav rightmobilitycondition 100 ; JSH 02.04.11 - Reset ED-E if he's frenzied. SetActorValue Aggression 0; RestoreActorValue BrainCondition 100; endif end
335EDEScriptDisabledscn EDEScriptDisabled int Waiting ; 0 = Not waiting, 1 = Waiting int CombatStyleMelee ; 0 = Not melee, 1= Melee int CombatStyleRanged ; 0 = Not ranged, 1 = Ranged int IsFollowingDefault ; 0 = Not following default, 1 = Is following default range int IsFollowingLong ; 0 = Not following long, 1 = Is following long int FollowerSwitchAggressive ; 0 = Passive (wait on player), 1 = Aggressive (attack when see enemies) int iEDEFixed ; 1 = EDE Fixed, 2 = EDE Upgraded int iButton ; Tracks the button presses for EDE's repair menus int iMenu ; Tracks the current menu screen for EDE's repair menus int iRepairState float fTimer begin OnActivate Player if IsActionRef Player set vDialogueEDE.bEDEExamined to 1 if Player.IsInCombat == 1 showmessage EDECombatMessage else showMessage EDERepair00 endif endif end begin OnActivate if IsActionRef Player if Player.IsInCombat == 1 showmessage EDECombatMessage else showMessage EDERepair00 endif endif end begin GameMode if iEDEFixed == 1 set fTimer to GetSecondsPassed + fTimer if fTimer >= 2 set iEDEFixed to 2 EDE1Ref.SetRestrained 1 EDE1REF.enable EDE1Ref.ResetAI disable endif elseif iEDEFixed == 2 disable return endif set iButton to GetButtonPressed if iButton == 0 set iMenu to 0 endif if iMenu == 0 ; EDERepair00 if iButton == 1 showMessage EDERepair01 set iMenu to 1 elseif iButton == 2 ShowMessage EDERepair03 set iMenu to 3 elseif iButton == 3 ShowMessage EDERepair02 set iMenu to 2 endif elseif iMenu == 1 ; EDERepair01 if iButton == 1 imod FadeToBlackAndBackQuickExtendedISFX set iEDEFixed to 1 disableplayercontrols startquest vDialogueEDE set vNPCFollowers.bEDEAvailable to 1 set VNPCFollowers.nRecruited to VNPCFollowers.nRecruited + 1; EDE1Ref.MoveTo NVCompanionEDEDisabledREF elseif iButton == 2 showmessage EDERepair02 set iMenu to 2 elseif iButton == 3 showMessage EDERepair04 set iMenu to 4 endif elseif iMenu == 3 ; EDERepair03 if iButton == 1 imod FadeToBlackAndBackQuickExtendedISFX set iEDEFixed to 1 disableplayercontrols startquest vDialogueEDE set vNPCFollowers.bEDEAvailable to 1 set VNPCFollowers.nRecruited to VNPCFollowers.nRecruited + 1; EDE1Ref.MoveTo NVCompanionEDEDisabledREF elseif iButton == 2 showMessage EDERepair04 set iMenu to 4 endif elseif iMenu == 2 ; EDERepair02 if iButton == 1 showMessage EDERepair01 set iMenu to 1 elseif iButton == 2 set iRepairState to 1 showMessage EDERepair03 set iMenu to 3 endif elseif iMenu == 4 ; EDERepair04 if iButton == 1 player.RemoveItem ScrapElectronics 1 player.RemoveItem SpareParts 3 player.RemoveItem SensorModule 2 imod FadeToBlackAndBackQuickExtendedISFX set iEDEFixed to 1 disableplayercontrols startquest vDialogueEDE set vNPCFollowers.bEDEAvailable to 1 set VNPCFollowers.nRecruited to VNPCFollowers.nRecruited + 1; EDE1Ref.MoveTo NVCompanionEDEDisabledREF elseif iButton == 2 && iRepairState == 0 showMessage EDERepair01 set iMenu to 1 elseif iButton == 2 && iRepairState == 1 showMessage EDERepair03 set iMenu to 3 elseif iButton == 3 showMessage EDERepair02 set iMenu to 2 endif endif end
336EdwardsDeadScriptscn EdwardsDeadScript begin GameMode if EdwardsREF.GetItemCount IrradiatedNCRDogtag != 1 set VMS43.HasEdwardsTag to 1 endif end begin onDeath if EdwardsREF.GetDead == 1 SetStage VMS43a 20 Set VMS43.EdwardsDead to 1 endif end
337EdwardsScorpionAttackScriptscn EdwardsScorpionAttackScript Float iTimer begin GameMode If GetStage VMS43a == 50 && iTimer > 1.5 EdwardsREF.moveto ScorpionAttack EdwardsREF.KillActor elseif GetStage VMS43a == 50 set iTimer to iTimer + GetSecondsPassed endif end
338ElDoradoNCRBarkActivatorSCRIPTscn ElDoradoNCRBarkActivatorSCRIPT int DoOnce BEGIN OnLoad if DoOnce == 0 && vElDoradoSubstationNCRBark.NCRBark == 0 StartQuest vElDoradoSubstationNCRBark set DoOnce to 1 endif END
339ElDoradoReactorSCRIPTscn ElDoradoReactorSCRIPT short Button BEGIN OnActivate if IsActionRef player ShowMessage Lucky38ReactorActiveMsg endif END BEGIN GameMode set Button to GetButtonPressed ; Player turns on the reactor at Lucky 38 via teh ED Substation if ( Button == 1 ) SetDestroyed 1 RewardXP 500 Set VFreeformLucky38.bReactor to 1 SetObjectiveDisplayed vfreeformlucky38 30 1 set vstoryeventlucky38relit to 1 player.removeitem VHDoverridechip 1 StripSteamActivate.Enable ; Alternate power effects in the Strip. AddReputation RepNVNCR 0 3 If GetObjectiveDisplayed VMQHouse7 76 == 1 && GetObjectiveCompleted VMQHouse7 76 == 0 setobjectivecompleted VMQHouse7 76 1 ;setobjectivedisplayed VMQHouse7 77 1 <-- This is the objective to meet the Securitron and watch L38 relight (removed). setobjectivedisplayed VMQHouse7 78 1 endif If GetObjectiveDisplayed VMQYesMan03 80 == 1 && GetObjectiveCompleted VMQYesMan03 80 == 0 setobjectivecompleted VMQYesMan03 80 1 ;setobjectivedisplayed VMQYesMan03 85 1 <-- This is the objective to meet the Securitron and watch L38 relight (removed). setobjectivedisplayed VMQYesMan03 90 1 ; Sets "Report back to Yes Man." objective. If ( VStoryState < 50 ) ; <<< Added 7_2_10 (part of story-state bug pass) -ETB Set VStoryState to 50 ; <<< endif ; <<< If ( VStoryIndependentState < 3 ) ; <<< Set VStoryIndependentState to 3 ; <<< endif ; <<< endif If GetObjectiveDisplayed VMQYesMan03 77 == 1 && GetObjectiveCompleted VMQYesMan03 77 == 0 setobjectivecompleted VMQYesMan03 77 1 ;setobjectivedisplayed VMQYesMan03 85 1 <-- This is the objective to meet the Securitron and watch L38 relight (removed). setobjectivedisplayed VMQYesMan03 90 1 ; Sets "Report back to Yes Man." objective. If ( VStoryState < 50 ) ; <<< Added 7_2_10 (part of story-state bug pass) -ETB Set VStoryState to 50 ; <<< endif ; <<< If ( VStoryIndependentState < 3 ) ; <<< Set VStoryIndependentState to 3 ; <<< endif ; <<< endif ;CES 8/4 ;This is added to Fail the Kimball Assassination if GetQR VMQ03a SetStage VMQ03a 200 Set VStoryEventKimballAssassination to 3 VMQ03RangerPushCollision.enable set VHDBearForceOneRef.Active to 0 Setobjectivedisplayed VMQYesMan03 75 0 ;Disable Assassination Stuff VHDPreBattleFluff.Enable VHDProtectionSetupREF.Disable VHDKimballSetupREF.Disable VHDCaptainGrahamREF.Disable VHDKimballREF.Disable VHDRangerKimballGuard01REF.Disable VHDRangerKimballGuard02REF.Disable VHDRangerBriefing1REF.disable VHDRangerBriefing2REF.disable VHDRangerBriefing3REF.disable set VMQ03a.iMooreLocation to 0 VHDColonelMooreREF.evp StopQuest VHDKimballSpeech StopQuest VMQ03a endif endif END
340ElDoradoSubstationAttackPlayer01scn ElDoradoSubstationAttackPlayer01 int doonce BEGIN OnTrigger if getactionref == player && doonce == 0 if ElDoradoNCRSergeantREF.GetDetected Player || ElDoradoNCRTrooper01REF.GetDetected Player || ElDoradoNCRTrooper02REF.GetDetected Player || ElDoradoNCRTrooper03REF.GetDetected Player || ElDoradoNCRTrooper04REF.GetDetected Player || ElDoradoNCRTrooper05REF.GetDetected Player || ElDoradoNCRTrooper06REF.GetDetected Player || ElDoradoNCRTrooper07REF.GetDetected Player if GetCurrentTime >= 8 && GetCurrentTime < 22 ElDoradoNCRSergeantREF.StartCombat Player ElDoradoNCRTrooper01REF.StartCombat Player ElDoradoNCRTrooper02REF.StartCombat Player ElDoradoNCRTrooper03REF.StartCombat Player endif if GetCurrentTime >= 22 && GetCurrentTime <= 24 ElDoradoNCRTrooper04REF.StartCombat Player ElDoradoNCRTrooper05REF.StartCombat Player ElDoradoNCRTrooper06REF.StartCombat Player ElDoradoNCRTrooper07REF.StartCombat Player endif if GetCurrentTime >= 0 && GetCurrentTime < 8 ElDoradoNCRTrooper04REF.StartCombat Player ElDoradoNCRTrooper05REF.StartCombat Player ElDoradoNCRTrooper06REF.StartCombat Player ElDoradoNCRTrooper07REF.StartCombat Player endif endif endif END BEGIN OnTriggerLeave player set doonce to 0 END
341ElDoradoSubstationAttackPlayer02scn ElDoradoSubstationAttackPlayer02 Short bPlayerFound Short iCount Begin OnLoad If bPlayerFound == 1 Disable MarkForDelete Endif End Begin GameMode If bPlayerFound != 1 If (Player.HasMagicEffect StealthBoyInvis != 1) if GetCurrentTime >= 8 && GetCurrentTime < 22 If ElDoradoNCRTrooper04REF.GetDetected Player == 1 ElDoradoNCRTrooper04REF.StartCombat Player Set bPlayerFound to 1 Endif If ElDoradoNCRTrooper05REF.GetDetected Player == 1 ElDoradoNCRTrooper05REF.StartCombat Player Set bPlayerFound to 1 Endif If ElDoradoNCRTrooper06REF.GetDetected Player == 1 ElDoradoNCRTrooper06REF.StartCombat Player Set bPlayerFound to 1 Endif If ElDoradoNCRTrooper07REF.GetDetected Player == 1 ElDoradoNCRTrooper07REF.StartCombat Player Set bPlayerFound to 1 Endif endif if GetCurrentTime >= 22 && GetCurrentTime <= 24 If ElDoradoNCRSergeantREF.GetDetected Player == 1 ElDoradoNCRSergeantREF.StartCombat Player Set bPlayerFound to 1 Endif If ElDoradoNCRTrooper04REF.GetDetected Player == 1 ElDoradoNCRTrooper04REF.StartCombat Player Set bPlayerFound to 1 Endif endif if GetCurrentTime >= 0 && GetCurrentTime < 8 If ElDoradoNCRSergeantREF.GetDetected Player == 1 ElDoradoNCRSergeantREF.StartCombat Player Set bPlayerFound to 1 Endif If ElDoradoNCRTrooper01REF.GetDetected Player == 1 ElDoradoNCRTrooper01REF.StartCombat Player Set bPlayerFound to 1 Endif If ElDoradoNCRTrooper02REF.GetDetected Player == 1 ElDoradoNCRTrooper02REF.StartCombat Player Set bPlayerFound to 1 Endif If ElDoradoNCRTrooper03REF.GetDetected Player == 1 ElDoradoNCRTrooper03REF.StartCombat Player Set bPlayerFound to 1 Endif endif Endif Endif End
342ElectronChargePackBulkAmmoAddScriptscn ElectronChargePackBulkAmmoAddScript int killme BEGIN OnAdd Player Set killme to 1 END begin GameMode int countofstuff; int numberToAdd; if (killme == 1) Player.AddItem AmmoElectronChargePackBulk 100 RemoveMe endif end
343ElReyMotelRoom01NoteScriptscn ElReyMotelRoom01NoteScript begin onActivate ShowMessage ElReyMotelThreatMsg end
344EmilyOrtalSCRIPTscn EmilyOrtalSCRIPT ; Created to detect Emily's death and fail "vfreeformlucky38" quest (Emily is the quest-giver for that quest). ; Added the same code I used in the Street's NPCs so that the combat state of this location is set to true when Emily is attacked. Short HitOnce Short bEmilyGoSandbox ; (Added 8_5_10) Set to 1 in Emily's "vFreeformLucky38" dialogue and checked here to add a sandbox package. -ETB Short bEmilyTalkedToPC Begin GameMode If ( bEmilyGoSandbox == 1 ) Set bEmilyGoSandbox to 0 Set bEmilyTalkedToPC to 1 AddScriptPackage FollowerEmilyTRAVEL Evp Endif End Begin OnDeath ;if ( GetQuestRunning vfreeformlucky38 ) SetStage vfreeformlucky38 110 ;endif End Begin OnLoad If VStreetFluffNPC.NPCNormal == 1 Set HitOnce to 0 Endif End Begin OnReset If VStreetFluffNPC.NPCNormal == 1 Set HitOnce to 0 Endif End Begin OnStartCombat Player If FollowerEmily.GetInWorldspace TheStripWorldNew == 1 Set VStreetCombat.Wanted to 1 Set VStreetCombat.NPCInCombat to 1 Set VStreetFluffNPC.NPCNormal to 0 Endif End Begin OnHit Player If FollowerEmily.GetInWorldspace TheStripWorldNew == 1 If HitOnce == 1 Return Elseif HitOnce != 1 Set VStreetCombat.Wanted to 1 Set VStreetCombat.NPCInCombat to 1 Set VStreetFluffNPC.NPCNormal to 0 Set VStreetCombat.ForgetTime to GameDaysPassed + 3 VStreetBot01REF.StartCombat Player VStreetBot02REF.StartCombat Player VStreetBot03REF.StartCombat Player VStreetBot04REF.StartCombat Player VStreetBot05REF.StartCombat Player VStreetBot06REF.StartCombat Player VStreetBot07REF.StartCombat Player VStreetBot08REF.StartCombat Player VStreetBot09REF.StartCombat Player VLVBStationBot01REF.StartCombat Player VLVBStationBot02REF.StartCombat Player VLVBStationBot03REF.StartCombat Player Set HitOnce to 1 Endif If VStreetCombat.NPCHit == 1 Return Elseif VStreetCombat.NPCHit != 1 Set VStreetCombat.Wanted to 1 Set VStreetCombat.NPCInCombat to 1 Set VStreetFluffNPC.NPCNormal to 0 Set VStreetCombat.ForgetTime to GameDaysPassed + 3 Set VStreetCombat.NPCHit to 1 Endif Endif End
345EnclaveDeathclawCageOfficerSCRIPTscn EnclaveDeathclawCageOfficerSCRIPT ;this script goes on the deathclaw cage officer ;the officer will run over to the cage and unlock the door if he is in combat with the player or has been hit by the player ref linkedRef ;where you want the officer to stand when he unlocks the door ref deathclawDoor ; the deathclaw door should be the linkedRef of the linkedRef (daisy chain) ref combatRef short doOnce ;********************************* Begin onLoad set doOnce to 0 End ;********************************* Begin onPackageEnd DeathclawCAGEOfficer01a set linkedRef to getLinkedRef set deathclawDoor to linkedRef.getLinkedRef deathclawDoor.unlock setav variable01 2 evp End ;********************************* Begin onHit Player if (doOnce == 0) setav variable01 1 ;condition used for his package to run to the deathclaw cage evp set doOnce to 1 endif End ;********************************* Begin gameMode if (doOnce == 0) if (isInCombat) set combatRef to getCombatTarget if combatRef == player setav variable01 1 ;condition used for his package to run to the deathclaw cage evp set doOnce to 1 endif endif endif End ;*********************************
346EndingTriggerScriptscn EndingTriggerScript short bDoOnce begin OnTriggerEnter player if bDoOnce == 0 PCB; set bDoOnce to 1 set VEnding.bStartSlideShow to 1 NarratorRef.SayTo Player VEndingIntro endif end
347FadeToCreditsTimerScriptscn FadeToCreditsTimerScript short DoOnce ;Script blocker float Timer ;Timer used for animation control short bFadeOutDone BEGIN GameMode if (bFadeOutDone == 1) return endif if ( DoOnce== 0 ) PlaySound QSTEndTransitionStinger PlayMusic EndTransitionStinger set Timer to 7.8 set DoOnce to 1 endif set Timer to ( Timer - GetSecondsPassed ) if ( Timer <= 6 ) && ( DoOnce == 1 ) IMod FadeToBlackPermanent set DoOnce to 2 endif if ( Timer <= 0 ) set bFadeOutDone to 1 ExitGame endif endif END
348FairfaxGasValve01SCRIPTscn FairfaxGasValve01SCRIPT ;--------------------------------------------------------------------------------------------------------------------------------------------- short gasValveRepaired ; 1 = gas valve has been repaired short repairAttempt ; 0 = default 1 = PC wants to try and repair the gas valve short doOnce ; 0 = gas trap has not been enabled yet - we only want the gas trap to appear once 1 = player has already let the gas out short skillNeeded ; repair skill needed to repair the gas valve short button ;--------------------------------------------------------------------------------------------------------------------------------------------- Begin onLoad set skillNeeded to 25 End Begin onActivate if IsActionRef player == 1 if gasValveRepaired== 0 if player.GetAv Repair < skillNeeded ShowMessage GenericGasValveLowSkillMsg skillNeeded endif if player.GetAv Repair >= skillNeeded ShowMessage GenericGasValveSkillMsg set repairAttempt to 1 ; set up to repair endif elseif gasValveRepaired == 1 && doOnce == 0 ;FairfaxGasTrap01REF.enable set doOnce to 1 endif endif End Begin gameMode if repairAttempt == 1 ; procedure for repairing the gas valve set button to getbuttonpressed if button > -1 set repairAttempt to 0 if button == 0 ShowMessage GenericGasValveRepairMsg set gasValveRepaired to 1 ; gas valve has been repaired elseif button == 1 ; don't do anything endif endif endif End
349FakeForceBallOnTriggerEnterScriptscn FakeForceBallOnTriggerEnterScript short doOnce begin onTriggerEnter if doOnce != 1 placeAtMe FakeForce100r25 set doOnce to 1 endif end
350FantasticTransitionScriptscn FantasticTransitionScript begin onLoad if (VMS03.nPowerConfiguration == 1 && VMS03.bArchimedesFired == 0 && GetQuestCompleted VMS03) FantasticRef.Disable FantasticRef2.Enable endif if vStoryEventBoS == 1 && vFreeformHooverDam.BoSArmor == 0 && vHDBattleController.iBattleState == 0 vHDColonelMooreRef.MoveTo vHDBoSvsMooreMarker1 set vFreeformHooverDam.BoSArmor to 1 VHDPaladinREF.Enable elseif vFreeformHooverDam.BoSArmor == -1 VHDPaladinREF.Disable endif end begin onTriggerLeave Player if vFreeformHooverDam.BoSArmor > 0 set vFreeformHooverDam.BoSArmor to -1 SET VFreeformHooverDam.remArmor TO 1 VHDColonelMooreREF.Say vHDPowerArmor2 endif end
351FerociousLoyaltyScriptscn FerociousLoyaltyScript short bFLArcadeActive ; 1 = Yes short bFLBooneActive ; 1 = Yes short bFLCassActive ; 1 = Yes short bFLEDEActive ; 1 = Yes short bFLLilyActive ; 1 = Yes short bFLRaulActive ; 1 = Yes short bFLRexActive ; 1 = Yes short bFLVeronicaActive ; 1 = Yes Begin GameMode ; For Arcade *************************** If Player.GetHealthPercentage < 0.5 && (VNPCFollowers.bPlayerHasFollower) == 1 If (VNPCFollowers.ArcadeHired) == 1 && bFLArcadeActive == 0 ArcadeREF.AddSpell FerociousLoyaltyEffect Set bFLArcadeActive to 1 EndIf EndIf If Player.GetHealthPercentage >= 0.5 && (VNPCFollowers.bPlayerHasFollower) == 1 If (VNPCFollowers.ArcadeHired) == 1 && bFLArcadeActive == 1 ArcadeREF.RemoveSpell FerociousLoyaltyEffect Set bFLArcadeActive to 0 EndIf EndIf ; For Boone *************************** If Player.GetHealthPercentage < 0.5 && (VNPCFollowers.bPlayerHasFollower) == 1 If (VNPCFollowers.bBooneHired) == 1 && bFLBooneActive == 0 CraigBooneREF.AddSpell FerociousLoyaltyEffect Set bFLBooneActive to 1 EndIf EndIf If Player.GetHealthPercentage >= 0.5 && (VNPCFollowers.bPlayerHasFollower) == 1 If (VNPCFollowers.bBooneHired) == 1 && bFLBooneActive == 1 CraigBooneREF.RemoveSpell FerociousLoyaltyEffect Set bFLBooneActive to 0 EndIf EndIf ; For Cass *************************** If Player.GetHealthPercentage < 0.5 && (VNPCFollowers.bPlayerHasFollower) == 1 If (VNPCFollowers.bCassHired) == 1 && bFLCassActive == 0 RoseofSharonCassidyREF.AddSpell FerociousLoyaltyEffect Set bFLCassActive to 1 EndIf EndIf If Player.GetHealthPercentage >= 0.5 && (VNPCFollowers.bPlayerHasFollower) == 1 If (VNPCFollowers.bCassHired) == 1 && bFLCassActive == 1 RoseofSharonCassidyREF.RemoveSpell FerociousLoyaltyEffect Set bFLCassActive to 0 EndIf EndIf ; For ED-E *************************** If Player.GetHealthPercentage < 0.5 && (VNPCFollowers.bPlayerHasFollower) == 1 If (VNPCFollowers.bEDEHired) == 1 && bFLEDEActive == 0 EDE1REF.AddSpell FerociousLoyaltyEffect EDE2REF.AddSpell FerociousLoyaltyEffect EDE3REF.AddSpell FerociousLoyaltyEffect Set bFLEDEActive to 1 EndIf EndIf If Player.GetHealthPercentage >= 0.5 && (VNPCFollowers.bPlayerHasFollower) == 1 If (VNPCFollowers.bEDEHired) == 1 && bFLEDEActive == 1 EDE1REF.RemoveSpell FerociousLoyaltyEffect EDE2REF.RemoveSpell FerociousLoyaltyEffect EDE3REF.RemoveSpell FerociousLoyaltyEffect Set bFLEDEActive to 0 EndIf EndIf ; For Lily *************************** If Player.GetHealthPercentage < 0.5 && (VNPCFollowers.bPlayerHasFollower) == 1 If (VNPCFollowers.bLilyHired) == 1 && bFLLilyActive == 0 LilyREF.AddSpell FerociousLoyaltyEffect Set bFLLilyActive to 1 EndIf EndIf If Player.GetHealthPercentage >= 0.5 && (VNPCFollowers.bPlayerHasFollower) == 1 If (VNPCFollowers.bLilyHired) == 1 && bFLLilyActive == 1 LilyREF.RemoveSpell FerociousLoyaltyEffect Set bFLLilyActive to 0 EndIf EndIf ; For Raul *************************** If Player.GetHealthPercentage < 0.5 && (VNPCFollowers.bPlayerHasFollower) == 1 If (VNPCFollowers.RaulHired) == 1 && bFLRaulActive == 0 RaulREF.AddSpell FerociousLoyaltyEffect Set bFLRaulActive to 1 EndIf EndIf If Player.GetHealthPercentage >= 0.5 && (VNPCFollowers.bPlayerHasFollower) == 1 If (VNPCFollowers.RaulHired) == 1 && bFLRaulActive == 1 RaulREF.RemoveSpell FerociousLoyaltyEffect Set bFLRaulActive to 0 EndIf EndIf ; For Rex *************************** If Player.GetHealthPercentage < 0.5 && (VNPCFollowers.bPlayerHasFollower) == 1 If (VNPCFollowers.RexHired) == 1 && bFLRexActive == 0 RexREF.AddSpell FerociousLoyaltyEffect Set bFLRexActive to 1 EndIf EndIf If Player.GetHealthPercentage >= 0.5 && (VNPCFollowers.bPlayerHasFollower) == 1 If (VNPCFollowers.RexHired) == 1 && bFLRexActive == 1 RexREF.RemoveSpell FerociousLoyaltyEffect Set bFLRexActive to 0 EndIf EndIf ; For Veronica *************************** If Player.GetHealthPercentage < 0.5 && (VNPCFollowers.bPlayerHasFollower) == 1 If (VNPCFollowers.bVeronicaHired) == 1 && bFLVeronicaActive == 0 VeronicaREF.AddSpell FerociousLoyaltyEffect Set bFLVeronicaActive to 1 EndIf EndIf If Player.GetHealthPercentage >= 0.5 && (VNPCFollowers.bPlayerHasFollower) == 1 If (VNPCFollowers.bVeronicaHired) == 1 && bFLVeronicaActive == 1 VeronicaREF.RemoveSpell FerociousLoyaltyEffect Set bFLVeronicaActive to 0 EndIf EndIf End
352FFBaseballSCRIPTscn FFBaseballSCRIPT ref activatron begin onTriggerEnter set activatron to getActionRef if activatron == GrenadeFragProjectile if activatron.isWeaponOut == 1 showwarning "trigenter w/projectile" ;BatterREF.useWeapon weapBaseballBat BatterMarker activatron 1 placeatMe FakeForceBall1000 set NQlvl.ballHit to 1 ;batterREF.evp endif endif end begin onHitwith WeapGrenadeFrag showWarning "onHit" end ;ref enteringObject ; ;begin onHitWith ExplodesGasTrapsOnHit; ; ;ExplodesGasTrapsOnHit is a form list that has every type of weapon fire and explosion that could potentially ignite a gas trap on contact. ; ; do 5 ;end ; ; ;begin onTriggerEnter ;; ; set enteringObject to getActionRef ; if (enteringObject.isWeaponInList ExplodesGasTrapsOnTouch) ; if (enteringObject.isWeaponOut == 1) ; do 5 ; endif ; endif ; ; if (enteringObject.HasMagicEffect FlamerMagicEffect == 1) ; do 5 ; endif ; ;end ;
353FFEDisableMeScriptscn FFEDisableMeScript short loaded begin OnLoad set loaded to loaded + 1 ; if this is the second time I'm being loaded, just disable me if loaded > 1 disable markfordelete endif end
354FFEDoctorSCRIPTscn FFEDoctorSCRIPT short BeginMedicalServices ;Set to 1 in dialog, starts script below. ; replace with getav variable01 == 1 short BeginAddictionServices ;Set to 1 in dialog, starts script below. ; replace with getav variable01 == 2 short DoOnce ;Script blocker float Timer ;Timer used for animation control BEGIN GameMode ;When set to 1, plays medical animations for eight seconds then restarts conversation with the player if ( getav variable01 == 1 ) if ( DoOnce== 0 ) disablePlayerControls evp sayto player MegDocChurchMedicalChatter PlayIdle LooseDoctorHeal set Timer to 8 set DoOnce to 1 endif set Timer to ( Timer - GetSecondsPassed ) if ( Timer <= 6 ) && ( DoOnce == 1 ) IMod FadeToBlackISFX set DoOnce to 2 endif if ( Timer <= 0 ) && ( IsImagespaceActive FadeToBlackISFX == 0 ) setstage Doctors 10 enablePlayerControls addScriptPackage DefaultNPCDialogPlayer endif endif ;When set to 1, plays medical animations for eight seconds then restarts conversation with the player if ( getav variable01 == 2 ) if ( DoOnce== 0 ) disablePlayerControls evp PlayIdle LooseDoctorHeal set Timer to 8 set DoOnce to 1 endif set Timer to ( Timer - GetSecondsPassed ) if ( IsAnimPlaying == 0 ) PlayIdle LooseDoctorHeal endif if ( Timer <= 6 ) && ( DoOnce == 1 ) IMod FadeToBlackISFX set DoOnce to 2 endif if ( Timer <= 0 ) && ( IsImagespaceActive FadeToBlackISFX == 0 ) setstage Doctors 20 enablePlayerControls addScriptPackage DefaultNPCDialogPlayer endif endif ; clear DoOnce when variable has been reset if DoOnce > 0 if getav variable01 == 0 set DoOnce to 0 endif endif END
355FFER02AntSCRIPTscn FFER02AntSCRIPT short startGrow ; set to 1 to start growing float myScale ; current scale float targetScale ; how big do I want to get? begin OnLoad if startGrow == 0 set startGrow to 1 setav aggression 2 set myScale to GetScale set targetScale to myScale * 1.5 endif end begin gamemode if startGrow == 1 if myScale < targetScale set myScale to myScale + .002 setScale myScale else set startGrow to 2 evp endif endif end
356FFER66UncleLeoSCRIPTscn FFER66UncleLeoSCRIPT int attacked ; set to 1 if player attacks me int visits ; increment each time encounter is run int lesson ; increment each time he says a unique greeting int luckChoice ; 1 = player chose bad luck, 2 = player chose good luck int metFawkes ; 1 = talked to player with Fawkes begin OnHit player set attacked to 1 end
357FFER69SlaveScriptscn FFER69SlaveScript begin OnLoad if (GetDistance Player >= 10000) Disable endif End
358FFETriggerQuestSCRIPTscn FFETriggerQuestSCRIPT ; This script is a central holding spot for the active encounter ; -- trigger zone sets these to its markers when activated ; -- quest scripts pull data from here when they start processing the encounter ; references to encounter markers ref marker1 ref marker2 ref marker3 ref marker4 ref marker5 ref marker6 ref marker7 short vertibirdLand ; set to 1 if encounter allows vertibird landing short debug ; set to 1 for debug messages short manual ; set to 1 for manual encounters (trigger zones will initialize variables but not place encounters)
359FFEU07RadioBeaconSCRIPTscn FFEU07RadioBeaconSCRIPT float timer ; intermittently broadcasting radio beacon begin gamemode if GetDestroyed == 0 if timer > 0 set timer to timer - GetSecondsPassed else FFEU07RadioBeaconREF.startRadioConversation set timer to 10 endif endif end
360FFEU08FallingObjectSCRIPTscn FFEU08FallingObjectSCRIPT float timer short runTimer short doOnce begin gamemode if doOnce == 0 placeatme FFEU08SmokeTrail set doOnce to 1 endif if getDisabled == 0 && doOnce == 1 set doOnce to 2 set runTimer to 1 set timer to .1 ; place everything FFEU08Marker2.placeatme AmmoAlienPowerCell 6 FFEU08Marker3.placeatme AmmoAlienPowerCell 6 FFEU08Marker4.placeatme AmmoAlienPowerCell 6 FFEU08Marker5.placeatme AmmoAlienPowerCell 6 ; FFEU08Marker2.placeatme WeapUniqueFirelance endif if runTimer == 1 if timer > 0 set timer to timer - GetSecondsPassed else set runTimer to 2 damageObject 50 endif endif end
361FFEU08SmokeTrailScriptscn FFEU08SmokeTrailScript Short DoOnce Begin OnLoad Set DoOnce to 0 playgroup forward 0 End Begin GameMode if DoOnce == 0 If isAnimPlaying Forward == 0 ; smoke trail finished FFEU08FallingObjectREF.enable ; Placeatme LargeExplosion Set DoOnce to 2 endif EndIf If DoOnce == 2 Disable set DoOnce to 3 endif if DoOnce == 3 MarkForDelete endif End
362FFEU09NPCScriptscn FFEU09NPCScript begin OnLoad if getAV Variable01 == 0 ; force NPC to equip shotgun without ammo until after he speaks to you or goes into combat equipitem WeapShotgunSawedOff 1 endif end begin OnStartCombat equipitem WeapShotgunSawedOff 0 ; no longer forced to have it equipped end
363FFEU12ScavengerSCRIPTscn FFEU12ScavengerSCRIPT begin OnLoad ; clear variable to reenable quest-related dialogue setav variable01 0 end
364FFEU13ChildScriptscn FFEU13ChildScript begin OnLoad if (GetTalkedToPC == 1) Disable endif End
365FFEU18Raider1SCRIPTscn FFEU18Raider1SCRIPT ; this script controls the raider initiation scene short runScene ; set to 1 to start, set to 2 to finish short stage ; tracks whose turn it is to beat on raider5 begin OnLoad if runScene == 0 set runScene to 1 set stage to 1 evp ; FFEU18Raider1REF.evp ; FFEU18Raider2REF.evp ; FFEU18Raider3REF.evp ; FFEU18Raider4REF.evp endif end begin OnStartCombat ; end scene if combat takes place if runScene < 2 set runScene to 2 ; FFEU18Raider1REF.evp ; FFEU18Raider2REF.evp ; FFEU18Raider3REF.evp ; FFEU18Raider4REF.evp endif end
366FFEU20ScavengerSCRIPTscn FFEU20ScavengerSCRIPT ; run a timer then die float timer int runTimer begin OnActivate if runTimer == 0 ; don't activate him while he's dying Activate endif end begin gamemode if runTimer > 0 if timer > 0 set timer to timer - GetSecondsPassed else if runTimer == 1 set runTimer to 2 Say Hit playidle LooseMtHtHeadA set timer to 1.5 elseif runTimer == 2 kill set runTimer to 0 endif endif endif end
367FFEU21EnclaveSCRIPTscn FFEU21EnclaveSCRIPT begin OnStartCombat SetEnemy FFEU21EnclaveFaction Vault101Faction SetEnemy FFEU21EnclaveFaction PlayerFaction end
368FFHitSquadDCRegulatorControlSCRIPTSCN FFHitSquadDCRegulatorControlSCRIPT short DoOnce short PlayerKarma ref MyParent BEGIN OnLoad set PlayerKarma to ( Player.GetAV Karma ) set MyParent to GetParentREF if ( DoOnce == 0 ) if ( PlayerKarma <= KarmaEvil ) && ( Player.GetLevel >= 6 ) ;&& ( Player.HasPerk Lawbringer == 0 ) ;Perk's obsolete. I edited the line so as to take this away from the editor warnings. if ( GetDistance Player <= 4000 ) MyParent.Enable set DoOnce to 1 endif endif endif END
369FFHitSquadDCTalonCompanyControlSCRIPTSCN FFHitSquadDCTalonCompanyControlSCRIPT short DoOnce short PlayerKarma ref MyParent BEGIN OnLoad set PlayerKarma to ( Player.GetAV Karma ) set MyParent to GetParentREF if ( DoOnce == 0 ) if ( PlayerKarma >= KarmaGood ) && ( Player.GetLevel >= 6 ); && ( Player.HasPerk ContractKiller == 0 ) ;Perk's obsolete. I edited the line so as to take this away from the editor warnings. if ( GetDistance Player <= 4000 ) MyParent.Enable set DoOnce to 1 endif endif endif END
370FFHitSquadQuestSCRIPTSCN FFHitSquadQuestSCRIPT short TalonGreeted short RegulatorGreeted
371FFRadioCache05RaiderScriptscn FFRadioCache05RaiderScript short dieRoll short doOnce begin OnTriggerEnter player if doOnce == 0 set dieRoll to GetRandomPercent if dieRoll >= 50 ; FFRadioCache05Raider01.enable ; FFRadioCache05Raider02.enable set doOnce to 1 endif endif end
372FFSuperMutantCamp01SCRIPTscn FFSuperMutantCamp01SCRIPT ; when the player investigates this camp, ; the behemoth mentioned in a note is spawned and heads towards the trigger location short doOnce begin onTriggerEnter player if doOnce == 0 ;FFMutantCampBehemoth.enable ;FFMutantCampBehemoth.moveto FFMutantCampBehemoth ;FFMutantCampBehemoth.evp set doOnce to 1 endif end
373FFSupermutantCampGraveSCRIPTscn FFSupermutantCampGraveSCRIPT begin onActivate if getisID FFMutantCampGrave01 set NQlvl.foundGrave01 to 1 elseif getisID FFMutantCampGrave03 set NQlvl.foundGrave03 to 1 ;FFMutantCampGrave04REF.enable elseif getisID FFMutantCampGrave04 ;FFSupermutantCamp01Marker.enable endif activate end
374FFSupermutantCaptiveSCRIPTSCN FFSupermutantCaptiveSCRIPT Short Freed Short ThankedPlayer Short Button Short DoOnce Float Timer BEGIN OnLoad if ( Freed == 1 ) disable else ( Freed == 0 ) RemoveFromFaction WastelandFreedCaptiveFACTION ; ignore crime so that I won't respond to friendly fire IgnoreCrime 1 ; reset restrained state so I can get back into position after load set DoOnce to 0 setRestrained 0 endif END BEGIN OnActivate if ( GetDead == 0 ) if ( freed == 0 ) if ( IsActionRef player == 1 ) if ( Player.IsInCombat == 0 ) if ( GetIsSex Male == 1 ) ShowMessage FFESupermutantCaptiveMessageBoxM elseif ( GetIsSex Female == 1 ) ShowMessage FFESupermutantCaptiveMessageBoxF endif else ShowMessage FFSupermutantCaptiveNoActivateMessage endif endif endif elseIf ( GetDead == 1 ) Activate endif END BEGIN GameMode ; restrain me once I'm in position if ( DoOnce == 0 ) if ( GetSitting == 3 ) set DoOnce to 1 setRestrained 1 endif endif if ( freed == 0 ) set button to GetButtonPressed if ( button == 1 ) SetRestrained 0 ;Disabled 6/30 CES ModPCMiscStat "Captives Rescued" 1 RemoveFromFaction WastelandCaptiveFaction AddToFaction WastelanderFaction 1 AddToFaction WastelandFreedCaptiveFaction 1 setav Variable02 1 addscriptpackage FFSupermutantCaptiveGreetPlayer set Freed to 1 ; stop ignoring crime ignoreCrime 0 endif set Timer to ( Timer - GetSecondsPassed ) if ( Timer <= 0 ) set Timer to 10 if ( GetRandomPercent <= 50 ) say FFSMCaptiveYellForHelp endif endif endif END
375FiendAmbushTriggerScriptscn FiendAmbushTriggerScript short bDoOnce begin OnTriggerEnter player if bDoOnce == 0 FiendAmbusher01Ref.enable FiendAmbusher02Ref.enable FiendAmbusher03Ref.enable FiendMineRef.enable set bDoOnce to 1 endif end
376FiendDriverNephiScriptscn FiendDriverNephiScript begin OnHit TenofSpadesRef set VMS12.b10ofSpadesHit to 1 end begin OnHit CorporalBetsyRef set VMS12.bCorporalBetsyHit to 1 end begin OnHit CorporalSterlingRef set VMS12.bCorporalSterlingHit to 1 end begin OnHit SergeantBitterRootRef set VMS12.bSergeantBitterRootHit to 1 end begin OnDeath if (GetStageDone VMS12 110 == 0) if IsLimbGone 1 AddItem HeadDriverNephiMangled 1 elseif (IsInCriticalStage GooEnd) || (IsInCriticalStage DisintegrateEnd) AddItem HeadDriverNephiMangled 1 else AddItem HeadDriverNephi 1 endif endif if (GetObjectiveDisplayed VMS12 31) && (GetObjectiveCompleted VMS12 31 == 0) SetObjectiveDisplayed VMS12 31 0 endif set VMS12.bDriverNephiDead to 1 set VMS12.bFirstReconNoSandbox to 0 set VMS12.bGetIntoPosition to 0 end
377FiendTestArmorScriptscn FiendTestArmorScript begin OnEquip Player setAlly FiendFriendFaction PlayerFaction 1 1 showwarning "faction set" end begin OnUnequip Player setenemy playerfaction FiendFriendFaction 1 1 showwarning "faction unset" end
378FiendVioletScriptscn FiendVioletScript begin OnDeath if (GetStageDone VMS12 110 == 0) if IsLimbGone 1 AddItem HeadVioletMangled 1 elseif (IsInCriticalStage GooEnd) || (IsInCriticalStage DisintegrateEnd) AddItem HeadVioletMangled 1 else AddItem HeadViolet 1 endif endif set VMS12.bVioletDead to 1 end
379FireBarrelSwitchingScriptscn FireBarrelSwitchingScript ; This script is attached to object FireBarrelSwitching. It checks the time and enables ; the flaming version of the barrel at night while hiding the unlit one (theoretically linked ; to the parent object), and vice versa during the day. int Lit ; Tracks whether barrel's fire is currently displaying ref UnlitRef ; Reference to unlit version of barrel that lit version is linked to begin GameMode if Lit if GetCurrentTime > 6.0 && GetCurrentTime < 20.0 set UnlitRef to GetLinkedRef Disable 5 UnlitRef.enable 5 set Lit to 0 ;ShowWarning "Daytime!" endif else ; Barrel not currently lit if GetCurrentTime < 6.0 || GetCurrentTime > 20.0 set UnlitRef to GetLinkedRef UnlitRef.disable 5 Enable 5 set Lit to 1 ;ShowWarning "Nighttime!" endif endif end
380FistoFXSCRIPTscn FistoFXSCRIPT float timer int reset begin gamemode if reset == 0 VFSFistoREF.SetRestrained 1 DisablePlayerControls 1 1 1 0 1 1 1 imod FadeToBlack9sISFX set timer to 0 PlaySound AMBAtomicWranglerFisto set reset to 1 endif set timer to timer + getsecondspassed if timer > 9 if VFSFistoREF.iFisto == 1 set VFSFistoREF.iFisto to 2 endif set reset to 0 enableplayercontrols if GameHour <= 23 set GameHour to GameHour + 1 else set GameDaysPassed to GameDaysPassed + 1 set Gamehour to 1 endif if VFSFistoREF.iFisto == 2 VFSFistoREF.StartConversation Player GREETING endif set VFSFistoREF.iWorking to 0 VFSFistoREF.SetRestrained 0 stopquest FistoFX endif end
381FixerEffectSCRIPTscn FixerEffectSCRIPT float timerEffect begin ScriptEffectStart float randomTime set randomTime to 10.0 + 20.0/99.0 * GetRandomPercent set timerEffect to randomTime ShowMessage FixerDizzyMsg end begin ScriptEffectUpdate if timerEffect <= 0 PlaySound FXPoisonStinger ApplyImageSpaceModifier Addiction01ISFX set timerEffect to 10.0 + 20/99.0 *GetRandomPercent else set timerEffect to (timerEffect - GetSecondsPassed) endif end
382FollowersHireFawkesSCRIPTSCN FollowersHireFawkesSCRIPT short FawkesWaitRREntrance short EnclaveSoldierDown
383FollowersHireRL3SCRIPTscn FollowersHireRL3SCRIPT short RL3Sold ;Used to track whether or not RL3 has been sold yet.
384FollowersJerichoQuestSCRIPTSCN FollowersJerichoQuestSCRIPT short PlayerKnowsJerichoPast short PlayerTurnedDownJericho short JerichoAcceptedOffer short JerichoTurnedDownOffer short JerichoMadeOffer short JerichoHired short JerichoFired
385FollowersQuestSCRIPTSCN FollowersQuestSCRIPT short PlayerHasFollower float FollowerWaitingLeaveDay float DogmeatWaitingLeaveDay ;***Charon Variables*** short PlayerOwnsContract ;Set by buying the contract from Ahzrukhal or by killing him. short CharonHired ;Set to 1 when the player hires Charon after obtaining his contract. short CharonFired ;Player has dismissed Charon ;***Fawkes Variables*** short FawkesHired short FawkesFired ;***Jericho Variables*** short JerichoConvince short JerichoHired short JerichoFired ;***Star Paladin Cross Variables*** short CrossDismissedPlayer short StarPaladinCrossHasBeenHired short StarPaladinCrossHired short StarPaladinCrossFired ;***Butch Variables*** short ButchHired short ButchFired ;***RL3 Variables*** short RL3Hired short RL3Fired ;***Clover Variables*** short CloverHired short CloverFired ;***Dogmeat Variables*** short DogmeatHired short DogmeatFired BEGIN GameMode END
386ForgeRepairMainDoorSCRIPTscn ForgeRepairMainDoorSCRIPT ; checks the state of the door and either opens or closes it ref myLink short doOnce ;************************************************ Begin onTriggerEnter set myLink to getLinkedRef if myLink.getOpenState == 3 ; door is closed, so activate it to open myLink.setOpenState 1 ;open door endif End ;************************************************ Begin onTriggerLeave set myLink to getLinkedRef if myLink.getOpenState == 1 ; door is open, so activate it to close myLink.setOpenState 0 ;close door endif End
387FortArrivalTriggerScriptscn FortArrivalTriggerScript short bDoOnce short bChipTransferred begin OnTriggerEnter player set VMS45.bPlayerAtFort to 1 if (VNPCFollowers.ArcadeHired == 1 && VDialogueArcadeGannon.bArcadeQuestionedBeforeCaesar != 1) ArcadeREF.AddScriptPackage ArcadeTriggerBeforeCaesarDialoguePackage EndIf ; If VMQ02 (The Enemy of My Enemy) is active, update the quest to direct the player to go see Caesar when the player first arrives. if (GetStageDone VMQ02 1) SetStage VMQ02 2 set bDoOnce to 1 VVulpesIncultaStripRef.Disable VVulpesIncultaStripRef.MarkForDelete endif if (GetStageDone VMQ02 110 == 0) if FortEquipmentConfiscationQuest.bFortEquipmentStored == 0 FortLegionaryEntranceGreeterRef.AddScriptPackage FortDisarmDialoguePackage endif endif if VStoryEventBennyFled == 1 && bChipTransferred == 0 VFortBennyRef.Enable FortBennyGuardRef.Enable if FortCaesarRef.GetItemCount VPlatinumChip == 0 FortCaesarRef.AddItem VPlatinumChip 1 endif set bChipTransferred to 1 set VStoryChipOwner to 3 endif ; Player was inside inner camp, but fast traveled out. if VFreeformTheFort.bPlayerInside == 1 set VFreeformTheFort.bPlayerInside to 0 FortExteriorNPCParent.Enable FortInteriorNPCParent.Disable endif ; Caesar has revealed his illness, and time is running out! if GetQuestRunning VMS35 if (VMS35.bEnableCaesarComa) && (VFreeformTheFort.bCaesarInComa == 0) ; put Caesar in coma set VFreeformTheFort.bCaesarInComa to 1 FortCaesarRef.IgnoreCrime 1 endif endif end begin OnTriggerEnter VFortBennyRef VFortBennyRef.Disable 1 end
388Fortc02LockedDoorSCRIPTscn Fortc02LockedDoorSCRIPT ; Don't pass a '1' parameter in your terminal's activate script ; This script will not allow NPCs to use the door. ; It's intended for sneaky/hacky players to be able to use the door for gameplay purposes ;********************** Begin onLoad lock 255 ;in case someone forgets to lock the terminal in the editor End ;********************** Begin onActivate if (IsActionRef player == 1) if (player.GetItemCount MS14TedsKey == 1) unlock endif activate endif End
389FortCaesarComaTriggerScriptscn FortCaesarComaTriggerScript short bDoOnce begin OnTriggerEnter FortCaesarRef if (bDoOnce == 0) if (VFreeformTheFort.bCaesarInComa == 1) FortCaesarRef.SetRestrained 1 set bDoOnce to 1 Disable MarkForDelete endif endif end
390FortCaesarScriptscn FortCaesarScript short Button short nPlayerMedicine short nPlayerLuck short nPlayerLuckBonus short nPlayerTotalMedicine short bEndGameButton short bStartedEndGame short bDoOnce Short bSaveGame; Float fSaveTimer; Short nSaveEvent; begin OnHit player if (GetStageDone VMQ02 110 == 0) SetEnemy vCaesarsLegionTheFortFaction PlayerFaction SetStage VMQ02 110 endif if (GetQuestCompleted VMS35 == 0) SetStage VMS35 255 endif end begin OnStartCombat player if (bDoOnce == 0) && (GetStageDone VMQ02 110 == 0) SetEnemy vCaesarsLegionTheFortFaction PlayerFaction SetStage VMQ02 110 set bDoOnce to 1 EnableFastTravel 1 endif end begin OnActivate if IsActionRef player if VFreeformTheFort.bCaesarInComa && (FortCaesarRef.GetDead == 0) if (GetStageDone VMS35 255 == 1) ; Failed state return ; Player doesn't have a Doctor's Bag or Surgical Tools elseif (player.GetItemCount NVDoctorBag == 0) && (player.GetItemCount VMS35SurgicalTools == 0) ShowMessage FortCaesarComaNoToolsNoBagMsg ; Player doesn't have a Doctor's Bag elseif (player.GetItemCount NVDoctorBag == 0) && (player.GetItemCount VMS35SurgicalTools > 0) ShowMessage FortCaesarComaNoBagMsg ; Player doesn't have the Surgical Tools elseif (player.GetItemCount NVDoctorBag > 0) && (player.GetItemCount VMS35SurgicalTools == 0) ShowMessage FortCaesarComaNoToolsMsg ; Player has both a Doctor's Bag and Surgical Tools else ShowMessage FortCaesarComaMsg endif elseif (FortCaesarRef.GetDead == 0) && (player.IsSneaking) && (GetStageDone VMQ02 7 == 0) FortCaesarRef.StartCombat player else Activate endif endif end begin MenuMode 1001 if bEndGameButton == 0 set Button to GetButtonPressed if (Button == 1) VMS35AutoDocRef.SetDestroyed 1 if (player.GetItemCount VMS35AutomaticSurgicalUnit > 0) player.RemoveItem VMS35AutomaticSurgicalUnit 1000 endif player.RemoveItem VMS35SurgicalTools 1000 if player.GetAV Medicine >= 75 ; Caesar cured through Medical skill. set VMS35.nSurgeryStatus to 1 ShowMessage FortCaesarSurgerySuccess set VFreeformTheFort.bCaesarInComa to 0 FortCaesarRef.SetRestrained 0 FortCaesarRef.IgnoreCrime 0 set VStoryEventCaesarCured to 1 SetStage VMS35 100 elseif player.GetAV Medicine < 75 && player.GetAV Medicine >= 25 ; Caesar dies. set VMS35.nSurgeryStatus to 2 ShowMessage FortCaesarSurgeryDeath set VFreeformTheFort.bCaesarInComa to 0 FortCaesarRef.KillActor FortCaesarRef FortLuciusRef.AddScriptPackage FortLuciusConfrontPlayerPackage set VStoryEventCaesarKilled to 2 SetObjectiveDisplayed VMS35 15 0 SetObjectiveCompleted VMS35 20 1 SetObjectiveDisplayed VMS35 25 0 SetObjectiveDisplayed VMS35 30 0 SetObjectiveDisplayed VMS35 35 0 SetObjectiveDisplayed VMS35 40 0 SetObjectiveDisplayed VMS35 50 0 SetStage VMS35 101 else ; Caesar dies violently. set VMS35.nSurgeryStatus to 3 ShowMessage FortCaesarSurgeryDeath set VFreeformTheFort.bCaesarInComa to 0 FortCaesarRef.KillActor FortCaesarRef 1 FortLuciusRef.AddScriptPackage FortLuciusConfrontPlayerPackage set VStoryEventCaesarKilled to 2 SetObjectiveDisplayed VMS35 15 0 SetObjectiveCompleted VMS35 20 1 SetObjectiveDisplayed VMS35 25 0 SetObjectiveDisplayed VMS35 30 0 SetObjectiveDisplayed VMS35 35 0 SetObjectiveDisplayed VMS35 40 0 SetObjectiveDisplayed VMS35 50 0 SetStage VMS35 101 endif elseif (Button == 2) VMS35AutoDocRef.SetDestroyed 1 if (player.GetItemCount VMS35AutomaticSurgicalUnit > 0) player.RemoveItem VMS35AutomaticSurgicalUnit 1000 endif player.RemoveItem VMS35SurgicalTools 1000 if (GetObjectiveDisplayed VMS35 15 == 1) SetObjectiveDisplayed VMS35 15 0 endif SetObjectiveDisplayed VMS35 20 0 SetObjectiveCompleted VMS35 25 1 ; Caesar dies deliberately. set VMS35.nSurgeryStatus to 4 ShowMessage FortCaesarSurgeryDeath FortCaesarRef.KillActor FortCaesarRef set VFreeformTheFort.bCaesarInComa to 0 FortLuciusRef.AddScriptPackage FortLuciusConfrontPlayerPackage SetStage VMS35 101 set VStoryEventCaesarKilled to 2 elseif (Button == 3) VMS35AutoDocRef.SetDestroyed 1 if (player.GetItemCount VMS35AutomaticSurgicalUnit > 0) player.RemoveItem VMS35AutomaticSurgicalUnit 1000 endif player.RemoveItem VMS35SurgicalTools 1000 ; Player succeeded through sheer luck. set VMS35.nSurgeryStatus to 5 ShowMessage FortCaesarSurgerySuccess set VFreeformTheFort.bCaesarInComa to 0 FortCaesarRef.SetRestrained 0 FortCaesarRef.IgnoreCrime 0 set VStoryEventCaesarCured to 1 SetStage VMS35 100 endif endif end begin OnDeath set VStoryEventCaesarKilled to 1 if (VStoryState < 40) Set VStoryState to 40 endif if (GetObjectiveDisplayed VMQ02 90 == 1) SetObjectiveDisplayed VMQ02 90 0 endif if (VNPCFollowers.bBooneHired) set VDialogueCraigBoone.nOpenness to VDialogueCraigBoone.nOpenness + 2; CraigBooneREF.SayTo player VDialogueCraigBooneCaesarDead; set VDialogueCraigBoone.bGreetCaesarDead to 1; endif ; Player killed Caesar before surgery if (VMS35.nSurgeryStatus == 0) SetStage VMQ02 110 ; Player killed Caesar after curing him elseif (VMS35.nSurgeryStatus == 1) || (VMS35.nSurgeryStatus == 5) || (VMS35.nSurgeryStatus == 7) || (VMS35.nSurgeryStatus == 8) SetStage VMQ02 110 endif ; Caesar's bed and throne are now property of the player. Hail, Courier! FortCaesarThroneRef.SetOwnership CaesarBedRef.SetOwnership ; --------------------------------------------------------------------------------------- \/ (10_30_10) Added to fix bug 38597 -ETB if ( FortCaesarRef.GetItemCount VPlatinumChip > 0 ) FortCaesarRef.RemoveItem VPlatinumChip 1000 if ( player.getitemcount vplatinumchip == 0 ) player.additem vplatinumchip 1 if ( GetQuestRunning VMQHouse1 ) SetObjectiveCompleted VMQHouse1 12 1 SetObjectiveDisplayed VMQHouse1 20 1 endif endif endif ; --------------------------------------------------------------------------------------- /\ end BEGIN GameMode ;This code runs the savegame. If (bSaveGame == 1) If (fSaveTimer > 0) Set fSaveTimer to fSaveTimer - GetSecondsPassed Else If (nSaveEvent == 0) SystemSave; Set fSaveTimer to 1.0; Set nSaveEvent to 1; ElseIf (nSaveEvent == 1) EnablePlayerControls; ;Show Message Script ShowMessage VEndGameWarningMsgLegion; Set nSaveEvent to 0; Set bSaveGame to 2; EndIf EndIf EndIf if bEndGameButton == 1 if ( bStartedEndGame == 0 ) set Button to GetButtonPressed if ( Button == 0 ) ;Reset Dialog Options So Caesar Redoes the "Are you ready" stuff. elseif ( Button == 1 ) set bStartedEndGame to 1 ;Start Legion Stuff Set VHDBattleController.iBattleState to 2 VHDLegionLegateCampPreBattleEnableMarker.enable player.MoveTo VHDLegateStartMarker ;Move Companions with the Player if (VNPCFollowers.bBooneHired) CraigBooneREF.MoveTo VHDLegateCampTPCompanionMarker endif if (VNPCFollowers.bCassHired) RoseofSharonCassidyREF.MoveTo VHDLegateCampTPCompanionMarker endif if (VNPCFollowers.bVeronicaHired) VeronicaREF.MoveTo VHDLegateCampTPCompanionMarker endif if (VNPCFollowers.bLilyHired) LilyREF.MoveTo VHDLegateCampTPCompanionMarker endif if (VNPCFollowers.RaulHired) RaulREF.MoveTo VHDLegateCampTPCompanionMarker endif if (VNPCFollowers.ArcadeHired) ArcadeREF.MoveTo VHDLegateCampTPCompanionMarker endif if (VNPCFollowers.bEDEHired) if EDE1Ref.GetDisabled == 0 EDE1Ref.MoveTo VHDLegateCampTPCompanionMarker; elseif EDE2Ref.GetDisabled == 0 EDE2Ref.MoveTo VHDLegateCampTPCompanionMarker; elseif EDE3Ref.GetDisabled == 0 EDE3Ref.MoveTo VHDLegateCampTPCompanionMarker; endif endif if (VNPCFollowers.RexHired) RexREF.MoveTo VHDLegateCampTPCompanionMarker endif ; Disable fast travel EnableFastTravel 0 0 1 ; Reduce the delay in processing the Legion Hoover Dam script SetQuestDelay VHDLegionBattle 0.5 AutoSave endif endif endif END
391FortCaesarTentEntranceScriptscn FortCaesarTentEntranceScript begin OnActivate if IsActionRef player if (FortPraetorianTentGuardRef.GetDead == 0 && GetStageDone VMQ02 110 == 0) if (VNPCFollowers.ArcadeHired) && (ArcadeRef.Waiting == 0) FortPraetorianTentGuardRef.StartConversation player elseif (VNPCFollowers.bLilyHired) && (LilyRef.Waiting == 0) FortPraetorianTentGuardRef.StartConversation player elseif (VNPCFollowers.RexHired) && (RexRef.Waiting == 0) FortPraetorianTentGuardRef.StartConversation player elseif (VNPCFollowers.RaulHired) && (RaulRef.Waiting == 0) FortPraetorianTentGuardRef.StartConversation player elseif (VNPCFollowers.bBooneHired) && (CraigBooneREF.Waiting == 0) FortPraetorianTentGuardRef.StartConversation player elseif (VNPCFollowers.bVeronicaHired) && (VeronicaREF.Waiting == 0) FortPraetorianTentGuardRef.StartConversation player elseif (VNPCFollowers.bEDEHired) && (EDE1REF.Waiting == 0) FortPraetorianTentGuardRef.StartConversation player elseif (VNPCFollowers.bCassHired) && (RoseofSharonCassidyREF.Waiting == 0) FortPraetorianTentGuardRef.StartConversation player else Activate endif else Activate endif elseif ( IsActionRef CraigBooneREF || IsActionRef VeronicaREF || IsActionREF RexREF || IsActionRef LilyREF || IsActionRef ArcadeREF || IsActionRef RaulREF || IsActionRef EDE1Ref || IsActionRef EDE2Ref || IsActionRef EDE3Ref) Activate; endif end
392FortCaesarTentExitTriggerScriptscn FortCaesarTentExitTriggerScript begin OnTriggerEnter player ; Re-enable sneaking ;EnablePlayerControls if (VFreeformTheFort.bBennyGone == 0) if (VFreeformTheFort.bHelpedBennyEscape) set VStoryEventBennyFinalFate to 3 VFortBennyRef.Disable set VFreeformTheFort.bBennyGone to 1 endif endif if (GetStageDone VMQ02 110 == 0) if (GetStageDone VMQ02 5 == 1) && (GetStageDone VMQ02 7 == 0) EnableFastTravel 0 endif endif ; JSH 04/26/11 - Restoration of Arcade rant (obviously he was listening in somehow). If ( VDialogueArcadeGannon.nArcadeRant == 1 ) && ( VNPCFollowers.ArcadeHired == 1 ) Set VDialogueArcadeGannon.nArcadeRant to 2; ArcadeRef.MoveTo ArcadeRantMarkerREF; ArcadeRef.AddScriptPackage ArcadeRantDialogue; EndIf end
393FortCaesarTentTriggerScriptscn FortCaesarTentTriggerScript short bPlayerConfronted short nCurrentHour begin OnTriggerEnter player ; Disable sneaking so player can't pickpocket Caesar. Also, the Praetorians don't like that sort of thing around their boss. ;DisablePlayerControls 0 0 0 0 0 0 1 if GetStageDone VMS35 20 && (bPlayerConfronted == 0) FortLuciusRef.StartConversation player set bPlayerConfronted to 1 endif if (VFreeformTheFort.bCaesarInComa == 1) FortCaesarRef.SetRestrained 1 endif if (VDialogueCaesar.Headache == 1) ;set nCurrentHour to GameHour ;if (nCurrentHour) >= (VFreeformTheFort.nSleepHourStart + 12) ;ShowWarning "Caesar awakens." set VDialogueCaesar.Headache to 2 ;FortCaesarRef.evp ;endif endif if (VDialogueCaesar.Seizure == 1) ;set nCurrentHour to GameHour ;if (nCurrentHour) >= (VFreeformTheFort.nSleepHourStart + 12) ;ShowWarning "Caesar awakens." set VDialogueCaesar.Seizure to 2 ;FortCaesarRef.evp ;endif endif ; JSH 04/26/11 - Set up for Arcade rant against Caesar. If ( FortCaesarRef.GetDead == 0 ) If ( FortCaesarRef.GetTalkedToPC == 1 ) && ( VNPCFollowers.ArcadeHired == 1 ) && ( VDialogueArcadeGannon.nArcadeRant == 0 ) Set VDialogueArcadeGannon.nArcadeRant to 1; EndIf EndIf end
394FortCArmorTerminalSCRIPTscn FortCArmorTerminalSCRIPT ;--------------------------------------------------------------------------------------------------------------------------------------------- short stasisDisabled short hasDownloaded
395FortCTurretHurterSCRIPTscn FortCTurretHurterSCRIPT ; quick script on a dummy object to frenzy its linked REF ref myLink begin onLoad set myLink to getLinkedRef myLink.damageAV brainCondition 100 end
396FortDogBowlScriptscn FortDogBowlScript short Button begin OnActivate if IsActionRef player ShowMessage FortDogBowlMsg endif end begin GameMode set Button to GetButtonPressed if ( Button == 1 ) ; endif end
397FortEquipmentConfiscationQuestScriptscn FortEquipmentConfiscationQuestScript short bFortEquipmentStored short bHoldout short bGimme begin GameMode ; RETURN PLAYER & COMPANION ITEMS SECTION if bFortEquipmentStored == 1 if bGimme == 1 NVCCPlayerStorageREF.RemoveAllTypedItems player 1 1 if VNPCFollowers.ArcadeHired FortHumanoidCompanionContainer.RemoveAllTypedItems ArcadeRef 1 0 elseif VNPCFollowers.bBooneHired FortHumanoidCompanionContainer.RemoveAllTypedItems CraigBooneRef 1 0 elseif VNPCFollowers.bCassHired FortHumanoidCompanionContainer.RemoveAllTypedItems RoseOfSharonCassidyRef 1 0 elseif VNPCFollowers.bLilyHired FortHumanoidCompanionContainer.RemoveAllTypedItems LilyRef 1 0 elseif VNPCFollowers.RaulHired FortHumanoidCompanionContainer.RemoveAllTypedItems RaulRef 1 0 elseif VNPCFollowers.bVeronicaHired FortHumanoidCompanionContainer.RemoveAllTypedItems VeronicaRef 1 0 else ; Check to see if each companion has his/her weapons. If not, assume they were confiscated and give the companion a new set. if (ArcadeRef.GetItemCount NVArcadeWeapons == 0) ArcadeRef.AddItem NVArcadeWeapons 1 endif if (CraigBooneRef.GetItemCount NVBooneWeapons == 0) CraigBooneRef.AddItem NVBooneWeapons 1 endif if (RoseOfSharonCassidyRef.GetItemCount NVCassWeapons == 0) RoseOfSharonCassidyRef.AddItem NVCassWeapons 1 endif if (LilyRef.GetItemCount NVLilyWeapons == 0) LilyRef.AddItem NVLilyWeapons 1 endif if (RaulRef.GetItemCount NVRaulWeapons == 0) RaulRef.AddItem NVRaulWeapons 1 endif if (VeronicaRef.GetItemCount NVVeronicaWeapons == 0) VeronicaRef.AddItem NVVeronicaWeapons 1 endif ; Clear out the humanoid container of any companion weapons. FortHumanoidCompanionContainer.RemoveItem NVCompanionWeapons 1000 ; Give the player the rest of the humanoid companion stuff. FortHumanoidCompanionContainer.RemoveAllTypedItems player 1 1 endif if VNPCFollowers.bEDEHired if (EDE1Ref.GetDisabled == 0) FortCritterCompanionContainer.RemoveAllTypedItems EDE1Ref 1 0 elseif (EDE2Ref.GetDisabled == 0) FortCritterCompanionContainer.RemoveAllTypedItems EDE2Ref 1 0 elseif (EDE3Ref.GetDisabled == 0) FortCritterCompanionContainer.RemoveAllTypedItems EDE3Ref 1 0 endif elseif VNPCFollowers.RexHired FortCritterCompanionContainer.RemoveAllTypedItems RexRef 1 0 else ; Check to see if each companion has his/her weapons. If not, assume they were confiscated and give the companion a new set. if (EDE1REF.GetItemCount EDEZapGun == 0) EDE1REF.AddItem EDEZapGun 1; endif if (EDE2REF.GetItemCount EDEZapGunUpgrade == 0) EDE2REF.AddItem EDEZapGunUpgrade 1; endif if (EDE3REF.GetItemCount EDEZapGun == 0) EDE3REF.AddItem EDEZapGun 1; endif ;if (RexRef.GetItemCount NVRexWeapons == 0) ; RexRef.AddItem NVRexWeapons 1 ;endif ; Clear out the critter container of any companion weapons. FortCritterCompanionContainer.RemoveItem NVCompanionWeapons 1000 ; Give the player the rest of the critter companion stuff. FortCritterCompanionContainer.RemoveAllTypedItems player 1 1 endif set VFreeformTheFort.bEquipmentConfiscated to 0 set bFortEquipmentStored to 0 set bGimme to 0 if player.getincell FortificationHillWeatherStation == 0 ShowMessage FortEquipmentRestoredMsg endif StopQuest FortEquipmentConfiscationQuest elseif (player.GetInCell SecuritronVault) || (player.GetInCell FortificationHillWeatherStation) || (player.GetInWorldspace TheFortWorld) return elseif (IsPlayerInRegion VMapTheFortRegion) || (player.GetDistance TheFortMapMarker < 12288) return else NVCCPlayerStorageREF.RemoveAllTypedItems player 1 1 if VNPCFollowers.ArcadeHired FortHumanoidCompanionContainer.RemoveAllTypedItems ArcadeRef 1 0 elseif VNPCFollowers.bBooneHired FortHumanoidCompanionContainer.RemoveAllTypedItems CraigBooneRef 1 0 elseif VNPCFollowers.bCassHired FortHumanoidCompanionContainer.RemoveAllTypedItems RoseOfSharonCassidyRef 1 0 elseif VNPCFollowers.bLilyHired FortHumanoidCompanionContainer.RemoveAllTypedItems LilyRef 1 0 elseif VNPCFollowers.RaulHired FortHumanoidCompanionContainer.RemoveAllTypedItems RaulRef 1 0 elseif VNPCFollowers.bVeronicaHired FortHumanoidCompanionContainer.RemoveAllTypedItems VeronicaRef 1 0 else ; Check to see if each companion has his/her weapons. If not, assume they were confiscated and give the companion a new set. if (ArcadeRef.GetItemCount NVArcadeWeapons == 0) ArcadeRef.AddItem NVArcadeWeapons 1 endif if (CraigBooneRef.GetItemCount NVBooneWeapons == 0) CraigBooneRef.AddItem NVBooneWeapons 1 endif if (RoseOfSharonCassidyRef.GetItemCount NVCassWeapons == 0) RoseOfSharonCassidyRef.AddItem NVCassWeapons 1 endif if (LilyRef.GetItemCount NVLilyWeapons == 0) LilyRef.AddItem NVLilyWeapons 1 endif if (RaulRef.GetItemCount NVRaulWeapons == 0) RaulRef.AddItem NVRaulWeapons 1 endif if (VeronicaRef.GetItemCount NVVeronicaWeapons == 0) VeronicaRef.AddItem NVVeronicaWeapons 1 endif ; Clear out the humanoid container of any companion weapons. FortHumanoidCompanionContainer.RemoveItem NVCompanionWeapons 1000 ; Give the player the rest of the humanoid companion stuff. FortHumanoidCompanionContainer.RemoveAllTypedItems player 1 1 endif if VNPCFollowers.bEDEHired if (EDE1Ref.GetDisabled == 0) FortCritterCompanionContainer.RemoveAllTypedItems EDE1Ref 1 0 elseif (EDE2Ref.GetDisabled == 0) FortCritterCompanionContainer.RemoveAllTypedItems EDE2Ref 1 0 elseif (EDE3Ref.GetDisabled == 0) FortCritterCompanionContainer.RemoveAllTypedItems EDE3Ref 1 0 endif elseif VNPCFollowers.RexHired FortCritterCompanionContainer.RemoveAllTypedItems RexRef 1 0 else ; Check to see if each companion has his/her weapons. If not, assume they were confiscated and give the companion a new set. if (EDE1REF.GetItemCount EDEZapGun == 0) EDE1REF.AddItem EDEZapGun 1; endif if (EDE2REF.GetItemCount EDEZapGunUpgrade == 0) EDE2REF.AddItem EDEZapGunUpgrade 1; endif if (EDE3REF.GetItemCount EDEZapGun == 0) EDE3REF.AddItem EDEZapGun 1; endif ;if (RexRef.GetItemCount NVRexWeapons == 0) ; RexRef.AddItem NVRexWeapons 1 ;endif ; Clear out the critter container of any companion weapons. FortCritterCompanionContainer.RemoveItem NVCompanionWeapons 1000 ; Give the player the rest of the critter companion stuff. FortCritterCompanionContainer.RemoveAllTypedItems player 1 1 endif set VFreeformTheFort.bEquipmentConfiscated to 0 set bFortEquipmentStored to 0 ShowMessage FortEquipmentRestoredMsg StopQuest FortEquipmentConfiscationQuest endif ; REMOVE PLAYER & COMPANION ITEMS SECTION elseif bFortEquipmentStored == 0 disableplayercontrols ; Make sure Lucullus is at The Fort in case the player fast travels. if VCCLucullusREF.getdead == 0 VCCLucullusREF.moveto LucullusFortMarker set VCCLucullusREF.iGate to 1 endif ; Player didn't speech for meds if VFreeformCottonwoodCove.iFortMedicalChems < 2 EnablePlayerControls if VStoryEventCaesarMeetsPlayer == 0 && player.GetItemCount VPlatinumChip > 0 player.RemoveItem VPlatinumChip 1 ; JSH 8/16 - Making sure Caesar doesn't end up with more than 1 Chip if (FortCaesarRef.GetItemCount VPlatinumChip == 0) FortCaesarRef.AddItem VPlatinumChip 1 endif set VStoryChipOwner to 3 endif if player.GetAV Sneak >= 50 && bHoldout == 1 player.RemoveAllTypedItems NVCCPlayerStorageREF 1 0 40 NVImprovedHoldoutWeapons elseif player.GetAV Sneak < 50 && bHoldout == 1 player.RemoveAllTypedItems NVCCPlayerStorageREF 1 0 40 NVHoldoutWeapons else player.RemoveAllTypedItems NVCCPlayerStorageREF 1 0 40 endif player.RemoveAllTypedItems NVCCPlayerStorageREF 1 0 47 NVLegionChemsList set NVCCBargeREF.iStripped to 1 if VNPCFollowers.ArcadeHired && ArcadeRef.GetInSameCell player if player.GetAV Sneak >= 50 && bHoldout == 1 ArcadeRef.RemoveAllTypedItems FortHumanoidCompanionContainer 1 0 40 NVImprovedHoldoutWeapons elseif player.GetAV Sneak < 50 && bHoldout == 1 ArcadeRef.RemoveAllTypedItems FortHumanoidCompanionContainer 1 0 40 NVHoldoutWeapons else ArcadeRef.RemoveAllTypedItems FortHumanoidCompanionContainer 1 0 40 endif ArcadeRef.RemoveAllTypedItems FortHumanoidCompanionContainer 1 0 47 NVLegionChemsList elseif VNPCFollowers.bBooneHired && CraigBooneRef.GetInSameCell player if player.GetAV Sneak >= 50 && bHoldout == 1 CraigBooneRef.RemoveAllTypedItems FortHumanoidCompanionContainer 1 0 40 NVImprovedHoldoutWeapons elseif player.GetAV Sneak < 50 && bHoldout == 1 CraigBooneRef.RemoveAllTypedItems FortHumanoidCompanionContainer 1 0 40 NVHoldoutWeapons else CraigBooneRef.RemoveAllTypedItems FortHumanoidCompanionContainer 1 0 40 endif CraigBooneRef.RemoveAllTypedItems FortHumanoidCompanionContainer 1 0 47 NVLegionChemsList elseif VNPCFollowers.bCassHired && RoseOfSharonCassidyRef.GetInSameCell player if player.GetAV Sneak >= 50 && bHoldout == 1 RoseOfSharonCassidyRef.RemoveAllTypedItems FortHumanoidCompanionContainer 1 0 40 NVImprovedHoldoutWeapons elseif player.GetAV Sneak < 50 && bHoldout == 1 RoseOfSharonCassidyRef.RemoveAllTypedItems FortHumanoidCompanionContainer 1 0 40 NVHoldoutWeapons else RoseOfSharonCassidyRef.RemoveAllTypedItems FortHumanoidCompanionContainer 1 0 40 endif RoseOfSharonCassidyRef.RemoveAllTypedItems FortHumanoidCompanionContainer 1 0 47 NVLegionChemsList elseif VNPCFollowers.bLilyHired && LilyRef.GetInSameCell player if player.GetAV Sneak >= 50 && bHoldout == 1 LilyRef.RemoveAllTypedItems FortHumanoidCompanionContainer 1 0 40 NVImprovedHoldoutWeapons elseif player.GetAV Sneak < 50 && bHoldout == 1 LilyRef.RemoveAllTypedItems FortHumanoidCompanionContainer 1 0 40 NVHoldoutWeapons else LilyRef.RemoveAllTypedItems FortHumanoidCompanionContainer 1 0 40 endif LilyRef.RemoveAllTypedItems FortHumanoidCompanionContainer 1 0 47 NVLegionChemsList elseif VNPCFollowers.RaulHired && RaulRef.GetInSameCell player if player.GetAV Sneak >= 50 && bHoldout == 1 RaulRef.RemoveAllTypedItems FortHumanoidCompanionContainer 1 0 40 NVImprovedHoldoutWeapons elseif player.GetAV Sneak < 50 && bHoldout == 1 RaulRef.RemoveAllTypedItems FortHumanoidCompanionContainer 1 0 40 NVHoldoutWeapons else RaulRef.RemoveAllTypedItems FortHumanoidCompanionContainer 1 0 40 endif RaulRef.RemoveAllTypedItems FortHumanoidCompanionContainer 1 0 47 NVLegionChemsList elseif VNPCFollowers.bVeronicaHired && VeronicaRef.GetInSameCell player if player.GetAV Sneak >=50 && bHoldout == 1 VeronicaRef.RemoveAllTypedItems FortHumanoidCompanionContainer 1 0 40 NVImprovedHoldoutWeapons elseif player.GetAV Sneak < 50 && bHoldout == 1 VeronicaRef.RemoveAllTypedItems FortHumanoidCompanionContainer 1 0 40 NVHoldoutWeapons else VeronicaRef.RemoveAllTypedItems FortHumanoidCompanionContainer 1 0 40 endif VeronicaRef.RemoveAllTypedItems FortHumanoidCompanionContainer 1 0 47 NVLegionChemsList endif if VNPCFollowers.bEDEHired if player.GetAV Sneak >= 50 && bHoldout == 1 EDE1REF.RemoveAllTypedItems FortCritterCompanionContainer 1 0 40 NVImprovedHoldoutWeapons EDE2REF.RemoveAllTypedItems FortCritterCompanionContainer 1 0 40 NVImprovedHoldoutWeapons EDE3REF.RemoveAllTypedItems FortCritterCompanionContainer 1 0 40 NVImprovedHoldoutWeapons elseif player.GetAV Sneak < 50 && bHoldout == 1 EDE1REF.RemoveAllTypedItems FortCritterCompanionContainer 1 0 40 NVHoldoutWeapons EDE2REF.RemoveAllTypedItems FortCritterCompanionContainer 1 0 40 NVHoldoutWeapons EDE3REF.RemoveAllTypedItems FortCritterCompanionContainer 1 0 40 NVHoldoutWeapons else EDE1REF.RemoveAllTypedItems FortCritterCompanionContainer 1 0 40 EDE2REF.RemoveAllTypedItems FortCritterCompanionContainer 1 0 40 EDE3REF.RemoveAllTypedItems FortCritterCompanionContainer 1 0 40 endif EDE1REF.RemoveAllTypedItems FortCritterCompanionContainer 1 0 47 NVLegionChemsList EDE2REF.RemoveAllTypedItems FortCritterCompanionContainer 1 0 47 NVLegionChemsList EDE3REF.RemoveAllTypedItems FortCritterCompanionContainer 1 0 47 NVLegionChemsList elseif VNPCFollowers.RexHired && RexRef.GetInSameCell player if player.GetAV Sneak >= 50 && bHoldout == 1 RexRef.RemoveAllTypedItems FortCritterCompanionContainer 1 0 40 NVHoldoutWeapons elseif player.GetAV Sneak < 50 && bHoldout == 1 RexRef.RemoveAllTypedItems FortCritterCompanionContainer 1 0 40 NVImprovedHoldoutWeapons else RexRef.RemoveAllTypedItems FortCritterCompanionContainer 1 0 40 endif RexRef.RemoveAllTypedItems FortCritterCompanionContainer 1 0 47 NVLegionChemsList endif set VFreeformTheFort.bEquipmentConfiscated to 1 set bFortEquipmentStored to 1 EnablePlayerControls ; Player used speech for meds else DisablePlayerControls if VStoryEventCaesarMeetsPlayer == 0 && player.GetItemCount VPlatinumChip > 0 player.RemoveItem VPlatinumChip 1 ; JSH 8/16 - Making sure Caesar doesn't end up with more than 1 Chip if (FortCaesarRef.GetItemCount VPlatinumChip == 0) FortCaesarRef.AddItem VPlatinumChip 1 endif set VStoryChipOwner to 3 endif if player.GetAV Sneak >= 50 && bHoldout == 1 player.RemoveAllTypedItems NVCCPlayerStorageREF 1 0 40 NVImprovedHoldoutWeapons elseif player.GetAV Sneak < 50 && bHoldout == 1 player.RemoveAllTypedItems NVCCPlayerStorageREF 1 0 40 NVHoldoutWeapons else player.RemoveAllTypedItems NVCCPlayerStorageREF 1 0 40 endif player.RemoveAllTypedItems NVCCPlayerStorageREF 1 0 47 NVLegionAllButMedsChemsList set NVCCBargeREF.iStripped to 1 if VNPCFollowers.ArcadeHired && ArcadeRef.GetInSameCell player if player.GetAV Sneak >= 50 && bHoldout == 1 ArcadeRef.RemoveAllTypedItems FortHumanoidCompanionContainer 1 0 40 NVImprovedHoldoutWeapons elseif player.GetAV Sneak < 50 && bHoldout == 1 ArcadeRef.RemoveAllTypedItems FortHumanoidCompanionContainer 1 0 40 NVHoldoutWeapons else ArcadeRef.RemoveAllTypedItems FortHumanoidCompanionContainer 1 0 40 endif ArcadeRef.RemoveAllTypedItems FortHumanoidCompanionContainer 1 0 47 NVLegionAllButMedsChemsList elseif VNPCFollowers.bBooneHired && CraigBooneRef.GetInSameCell player if player.GetAV Sneak >= 50 && bHoldout == 1 CraigBooneRef.RemoveAllTypedItems FortHumanoidCompanionContainer 1 0 40 NVImprovedHoldoutWeapons elseif player.GetAV Sneak < 50 && bHoldout == 1 CraigBooneRef.RemoveAllTypedItems FortHumanoidCompanionContainer 1 0 40 NVHoldoutWeapons else CraigBooneRef.RemoveAllTypedItems FortHumanoidCompanionContainer 1 0 40 endif CraigBooneRef.RemoveAllTypedItems FortHumanoidCompanionContainer 1 0 47 NVLegionAllButMedsChemsList elseif VNPCFollowers.bCassHired && RoseOfSharonCassidyRef.GetInSameCell player if player.GetAV Sneak >= 50 && bHoldout == 1 RoseOfSharonCassidyRef.RemoveAllTypedItems FortHumanoidCompanionContainer 1 0 40 NVImprovedHoldoutWeapons elseif player.GetAV Sneak < 50 && bHoldout == 1 RoseOfSharonCassidyRef.RemoveAllTypedItems FortHumanoidCompanionContainer 1 0 40 NVHoldoutWeapons else RoseOfSharonCassidyRef.RemoveAllTypedItems FortHumanoidCompanionContainer 1 0 40 endif RoseOfSharonCassidyRef.RemoveAllTypedItems FortHumanoidCompanionContainer 1 0 47 NVLegionAllButMedsChemsList elseif VNPCFollowers.bLilyHired && LilyRef.GetInSameCell player if player.GetAV Sneak >= 50 && bHoldout == 1 LilyRef.RemoveAllTypedItems FortHumanoidCompanionContainer 1 0 40 NVImprovedHoldoutWeapons elseif player.GetAV Sneak < 50 && bHoldout == 1 LilyRef.RemoveAllTypedItems FortHumanoidCompanionContainer 1 0 40 NVHoldoutWeapons else LilyRef.RemoveAllTypedItems FortHumanoidCompanionContainer 1 0 40 endif LilyRef.RemoveAllTypedItems FortHumanoidCompanionContainer 1 0 47 NVLegionAllButMedsChemsList elseif VNPCFollowers.RaulHired && RaulRef.GetInSameCell player if player.GetAV Sneak >= 50 && bHoldout == 1 RaulRef.RemoveAllTypedItems FortHumanoidCompanionContainer 1 0 40 NVImprovedHoldoutWeapons elseif player.GetAV Sneak < 50 && bHoldout == 1 RaulRef.RemoveAllTypedItems FortHumanoidCompanionContainer 1 0 40 NVHoldoutWeapons else RaulRef.RemoveAllTypedItems FortHumanoidCompanionContainer 1 0 40 endif RaulRef.RemoveAllTypedItems FortHumanoidCompanionContainer 1 0 47 NVLegionAllButMedsChemsList elseif VNPCFollowers.bVeronicaHired && VeronicaRef.GetInSameCell player if player.GetAV Sneak >=50 && bHoldout == 1 VeronicaRef.RemoveAllTypedItems FortHumanoidCompanionContainer 1 0 40 NVImprovedHoldoutWeapons elseif player.GetAV Sneak < 50 && bHoldout == 1 VeronicaRef.RemoveAllTypedItems FortHumanoidCompanionContainer 1 0 40 NVHoldoutWeapons else VeronicaRef.RemoveAllTypedItems FortHumanoidCompanionContainer 1 0 40 endif VeronicaRef.RemoveAllTypedItems FortHumanoidCompanionContainer 1 0 47 NVLegionAllButMedsChemsList endif if VNPCFollowers.bEDEHired if player.GetAV Sneak >= 50 && bHoldout == 1 EDE1REF.RemoveAllTypedItems FortCritterCompanionContainer 1 0 40 NVImprovedHoldoutWeapons EDE2REF.RemoveAllTypedItems FortCritterCompanionContainer 1 0 40 NVImprovedHoldoutWeapons EDE3REF.RemoveAllTypedItems FortCritterCompanionContainer 1 0 40 NVImprovedHoldoutWeapons elseif player.GetAV Sneak < 50 && bHoldout == 1 EDE1REF.RemoveAllTypedItems FortCritterCompanionContainer 1 0 40 NVHoldoutWeapons EDE2REF.RemoveAllTypedItems FortCritterCompanionContainer 1 0 40 NVHoldoutWeapons EDE3REF.RemoveAllTypedItems FortCritterCompanionContainer 1 0 40 NVHoldoutWeapons else EDE1REF.RemoveAllTypedItems FortCritterCompanionContainer 1 0 40 EDE2REF.RemoveAllTypedItems FortCritterCompanionContainer 1 0 40 EDE3REF.RemoveAllTypedItems FortCritterCompanionContainer 1 0 40 endif EDE1REF.RemoveAllTypedItems FortCritterCompanionContainer 1 0 47 NVLegionAllButMedsChemsList EDE2REF.RemoveAllTypedItems FortCritterCompanionContainer 1 0 47 NVLegionAllButMedsChemsList EDE3REF.RemoveAllTypedItems FortCritterCompanionContainer 1 0 47 NVLegionAllButMedsChemsList elseif VNPCFollowers.RexHired && RexRef.GetInSameCell player if player.GetAV Sneak >= 50 && bHoldout == 1 RexRef.RemoveAllTypedItems FortCritterCompanionContainer 1 0 40 NVHoldoutWeapons elseif player.GetAV Sneak < 50 && bHoldout == 1 RexRef.RemoveAllTypedItems FortCritterCompanionContainer 1 0 40 NVImprovedHoldoutWeapons else RexRef.RemoveAllTypedItems FortCritterCompanionContainer 1 0 40 endif RexRef.RemoveAllTypedItems FortCritterCompanionContainer 1 0 47 NVLegionAllButMedsChemsList endif set VFreeformTheFort.bEquipmentConfiscated to 1 set bFortEquipmentStored to 1 EnablePlayerControls endif endif end
398FortGladiatorSlaveScriptscn FortGladiatorSlaveScript begin OnDeath set VMS34.nSlavesKilled to VMS34.nSlavesKilled + 1 if (VMS34.nSlavesKilled == 2) FortOthoRef.SetGhost 0 set VMS34.ArenaDuelEnabled to 0 set VMS34.DefeatedSlaves to 1 FortArenaGateRef.Unlock FortArenaGateRef.SetOpenState 1 AddReputation RepNVCaesarsLegion 1 1 SetEnemy TheFortGladiatorFaction PlayerFaction 0 0 set VMS34.bOthoCongratulations to 1 FortPlayerEquipmentContainerRef.RemoveAllTypedItems player FortGladiatorSlave01Ref.RemoveItem WeapNVMacheteGladiator 1000 FortGladiatorSlave02Ref.RemoveItem WeapNVMacheteGladiator 1000 player.RemoveItem WeapNVMacheteGladiator 1000 player.RemoveItem ArmorLeatherGladiator 1000 ShowMessage FortArenaEquipmentMsg if (VNPCFollowers.ArcadeHired) ArcadeRef.Enable elseif (VNPCFollowers.bLilyHired) LilyRef.Enable elseif (VNPCFollowers.RaulHired) RaulRef.Enable elseif (VNPCFollowers.bBooneHired) CraigBooneRef.Enable elseif (VNPCFollowers.bVeronicaHired) VeronicaRef.Enable elseif (VNPCFollowers.bCassHired) RoseOfSharonCassidyRef.Enable endif if (VNPCFollowers.bEDEHired) if VDialogueEDE.iHVUpgrade != 0 EDE3Ref.Enable elseif VDialogueEDE.iFolUpgrade != 0 EDE2Ref.Enable else EDE1Ref.Enable endif elseif (VNPCFollowers.RexHired) RexRef.Enable endif endif end
399FortHowitzerScriptscn FortHowitzerScript short Button begin OnActivate if IsActionRef player ShowMessage FortHowitzerMsg endif end begin MenuMode 1001 set Button to GetButtonPressed if ( Button == 1 ) ; Player repairs the howitzer player.RemoveItem HowitzerFiringMechanism 1 ShowMessage FortHowitzerRepaired SetDestroyed 1 SetStage VMS32 30 endif end
400FortIndependence02AutoDoorSCRIPTscn FortIndependence02AutoDoorSCRIPT float timer ;********************** Begin onLoad ; make sure door always starts closed SetOpenState 0 End ;********************** Begin onActivate if (IsActionRef player == 1) ShowMessage GenericDoorActivatedElsewhereMsg else ; if I'm currently closed or closing, open and set timer if ((GetOpenState >= 3) || (GetOpenState == 0)) set timer to 5 SetOpenState 1 elseif (GetOpenState == 1) setOpenState 0 endif endif End ;********************** Begin gameMode if GetOpenState == 1 if (timer <= 0) ; close me after timer expires setOpenState 0 else set timer to (timer - GetSecondsPassed) endif endif End
401FortLegionaryPraetorianScriptscn FortLegionaryPraetorianScript ; If the player is disguised as a member of Caesar Legion and he's detected by a special ; sniffer mongrel, the mongrel and its handler sound the alarm. ref MyHandler short DoOnce begin OnStartCombat Player if (GetQR DisguiseFactionPulseQuest == 1) && (IsSpellTarget DisguiseFactionPulseActorEffect == 1) sendAssaultAlarm Player VCaesarsLegionFaction sendAssaultAlarm Player VCaesarsLegionSnifferFaction set MyHandler to GetLinkedRef if (GetDistance player < 512) && MyHandler != 0 MyHandler.Say ChallengePlayer endif endif ; Fail VMQ02 since the Legion is attacking the player if (GetStageDone VMQ02 110 == 0) SetStage VMQ02 110 endif end
402FortLegionaryScriptscn FortLegionaryScript short bDoOnce begin OnStartCombat player if (bDoOnce == 0) && (GetStageDone VMQ02 110 == 0) SetEnemy vCaesarsLegionTheFortFaction PlayerFaction SetStage VMQ02 110 set bDoOnce to 1 EnableFastTravel 1 endif end
403FortLegionMongrelHostileScriptscn FortLegionMongrelHostileScript begin OnDeath set VMS34.nMongrelsKilled to VMS34.nMongrelsKilled + 1 if (VFreeformTheFort.AntonyBarter) if VMS34.nMongrelsKilled == 2 set VMS34.ArenaDuelEnabled to 0 set VMS34.DefeatedMongrels to 1 FortArenaGateRef.Unlock FortArenaGateRef.SetOpenState 1 AddReputation RepNVCaesarsLegion 1 3 SetEnemy TheFortGladiatorFaction PlayerFaction 0 0 FortPlayerEquipmentContainerRef.RemoveAllTypedItems player player.RemoveItem WeapNVMacheteGladiator 1000 ShowMessage FortArenaEquipmentMsg endif else if VMS34.nMongrelsKilled == 4 set VMS34.ArenaDuelEnabled to 0 set VMS34.DefeatedMongrels to 1 FortArenaGateRef.Unlock FortArenaGateRef.SetOpenState 1 AddReputation RepNVCaesarsLegion 1 3 SetEnemy TheFortGladiatorFaction PlayerFaction 0 0 FortPlayerEquipmentContainerRef.RemoveAllTypedItems player player.RemoveItem WeapNVMacheteGladiator 1000 ShowMessage FortArenaEquipmentMsg endif endif end
404FortLuciusScriptscn FortLuciusScript short Button short bEndGameButton short bStartedEndGame Short bSaveGame; Float fSaveTimer; Short nSaveEvent; begin OnStartCombat player if (GetStageDone VMQ02 110 == 0) SetStage VMQ02 110 endif end begin OnDeath if (GetStageDone VMS32 100 == 0) SetStage VMS32 110 endif if (GetStageDone VMQ02 110 == 0) SetStage VMQ02 110 endif end BEGIN GameMode ;This code runs the savegame. If (bSaveGame == 1) If (fSaveTimer > 0) Set fSaveTimer to fSaveTimer - GetSecondsPassed Else If (nSaveEvent == 0) SystemSave; Set fSaveTimer to 1.0; Set nSaveEvent to 1; ElseIf (nSaveEvent == 1) EnablePlayerControls; ;Show Message Script ShowMessage VEndGameWarningMsgLegion; Set nSaveEvent to 0; Set bSaveGame to 2; EndIf EndIf EndIf if bEndGameButton == 1 if ( bStartedEndGame == 0 ) set Button to GetButtonPressed if ( Button == 0 ) ;Reset Dialog Options So Caesar Redoes the "Are you ready" stuff. elseif ( Button == 1 ) set bStartedEndGame to 1 ;Start Legion Stuff Set VHDBattleController.iBattleState to 2 VHDLegionLegateCampPreBattleEnableMarker.enable player.MoveTo VHDLegateStartMarker ;Move Companions with the Player if (VNPCFollowers.bBooneHired) CraigBooneREF.MoveTo VHDLegateCampTPCompanionMarker endif if (VNPCFollowers.bCassHired) RoseofSharonCassidyREF.MoveTo VHDLegateCampTPCompanionMarker endif if (VNPCFollowers.bVeronicaHired) VeronicaREF.MoveTo VHDLegateCampTPCompanionMarker endif if (VNPCFollowers.bLilyHired) LilyREF.MoveTo VHDLegateCampTPCompanionMarker endif if (VNPCFollowers.RaulHired) RaulREF.MoveTo VHDLegateCampTPCompanionMarker endif if (VNPCFollowers.ArcadeHired) ArcadeREF.MoveTo VHDLegateCampTPCompanionMarker endif if (VNPCFollowers.bEDEHired) if EDE1Ref.GetDisabled == 0 EDE1Ref.MoveTo VHDLegateCampTPCompanionMarker; elseif EDE2Ref.GetDisabled == 0 EDE2Ref.MoveTo VHDLegateCampTPCompanionMarker; elseif EDE3Ref.GetDisabled == 0 EDE3Ref.MoveTo VHDLegateCampTPCompanionMarker; endif endif if (VNPCFollowers.RexHired) RexREF.MoveTo VHDLegateCampTPCompanionMarker endif EnableFastTravel 0 0 1 ;Autosave Game Here autosave endif endif endif END
405FortLupaGladiatorScriptscn FortLupaGladiatorScript begin OnDeath FortOthoRef.SetGhost 0 set VMS34.ArenaDuelEnabled to 0 set VMS34.DefeatedLupa to 1 FortArenaGateRef.Unlock FortArenaGateRef.SetOpenState 1 AddReputation RepNVCaesarsLegion 1 3 SetEnemy TheFortGladiatorFaction PlayerFaction 0 0 FortPlayerEquipmentContainerRef.RemoveAllTypedItems player player.RemoveItem WeapNVMacheteGladiator 1000 player.RemoveItem ArmorLeatherGladiator 1000 ShowMessage FortArenaEquipmentMsg if (VNPCFollowers.ArcadeHired) ArcadeRef.Enable elseif (VNPCFollowers.bLilyHired) LilyRef.Enable elseif (VNPCFollowers.RaulHired) RaulRef.Enable elseif (VNPCFollowers.bBooneHired) CraigBooneRef.Enable elseif (VNPCFollowers.bVeronicaHired) VeronicaRef.Enable elseif (VNPCFollowers.bCassHired) RoseOfSharonCassidyRef.Enable endif if (VNPCFollowers.bEDEHired) if VDialogueEDE.iHVUpgrade != 0 EDE3Ref.Enable elseif VDialogueEDE.iFolUpgrade != 0 EDE2Ref.Enable else EDE1Ref.Enable endif elseif (VNPCFollowers.RexHired) RexRef.Enable endif end
406FortMainCampExteriorGateScriptscn FortMainCampExteriorGateScript begin OnActivate if IsActionRef player AutoSave PlaySound DRSGateOasis01Close set VFreeformTheFort.bPlayerInside to 1 EnableLoadingMenu 1 player.MoveTo MainCampInteriorMarker FortExteriorNPCParent.Disable FortInteriorNPCParent.Enable elseif IsActionRef CraigBooneRef CraigBooneRef.MoveTo FortInteriorMarker elseif IsActionRef ArcadeRef ArcadeRef.MoveTo FortInteriorMarker elseif IsActionRef RoseofSharonCassidyRef RoseofSharonCassidyRef.MoveTo FortInteriorMarker elseif IsActionRef RaulRef RaulRef.MoveTo FortInteriorMarker elseif IsActionRef LilyRef LilyRef.MoveTo FortInteriorMarker elseif IsActionRef VeronicaRef VeronicaRef.MoveTo FortInteriorMarker elseif IsActionRef RexRef RexRef.MoveTo FortInteriorMarker elseif IsActionRef EDE1Ref EDE1Ref.MoveTo FortInteriorMarker elseif IsActionRef EDE2Ref EDE2Ref.MoveTo FortInteriorMarker elseif IsActionRef EDE3Ref EDE3Ref.MoveTo FortInteriorMarker elseif IsActionRef VFortBennyRef Activate endif end
407FortMainCampGateScriptscn FortMainCampGateScript begin OnActivate if IsActionRef player AutoSave PlaySound DRSGateOasis01Close set VFreeformTheFort.bPlayerInside to 0 EnableLoadingMenu 1 player.MoveTo MainCampExteriorMarker FortInteriorNPCParent.Disable FortExteriorNPCParent.Enable elseif IsActionRef CraigBooneRef CraigBooneRef.MoveTo FortExteriorMarker elseif IsActionRef ArcadeRef ArcadeRef.MoveTo FortExteriorMarker elseif IsActionRef RoseofSharonCassidyRef RoseofSharonCassidyRef.MoveTo FortExteriorMarker elseif IsActionRef RaulRef RaulRef.MoveTo FortExteriorMarker elseif IsActionRef LilyRef LilyRef.MoveTo FortExteriorMarker elseif IsActionRef VeronicaRef VeronicaRef.MoveTo FortExteriorMarker elseif IsActionRef RexRef RexRef.MoveTo FortExteriorMarker elseif IsActionRef EDE1Ref EDE1Ref.MoveTo FortExteriorMarker elseif IsActionRef EDE2Ref EDE2Ref.MoveTo FortExteriorMarker elseif IsActionRef EDE3Ref EDE3Ref.MoveTo FortExteriorMarker elseif IsActionRef VFortBennyRef Activate endif end
408FortMainGateActivatorScriptscn FortMainGateActivatorScript short PlayerInside ; 0 = Player is outside main camp, 1 = Player is inside main camp
409FortMainGateExteriorTriggerScriptscn FortMainGateExteriorTriggerScript begin OnTriggerEnter player if FortMainGateActivatorRef.PlayerInside ;set FortMainGateRef.PlayerInside to 0 ;FortExteriorNPCParent.Enable ;FortInteriorNPCParent.Disable ;EnableFastTravel 1 endif if (GetStageDone VMQ02 110 == 0) if (GetStageDone VMQ02 5 == 1) && (GetStageDone VMQ02 7 == 0) EnableFastTravel 0 endif endif end
410FortMainGateInteriorTriggerScriptscn FortMainGateInteriorTriggerScript begin OnTriggerEnter player PCB if (GetStageDone VMQ02 110 == 0) if (GetStageDone VMQ02 5 == 1) && (GetStageDone VMQ02 7 == 0) EnableFastTravel 0 endif endif end
411FortMelodyBearScriptscn FortMelodyBearScript begin OnAdd player set VFreeformTheFort.MelodyBearAcquired to 1 end
412FortOthoTriggerScriptscn FortOthoTriggerScript begin OnTriggerEnter player if VMS34.bOthoCongratulations ;FortOthoRef.AddScriptPackage endif end
413FortPotScriptscn FortPotScript short Button begin OnActivate if IsActionRef player ShowMessage FortPotMsg endif end begin GameMode set Button to GetButtonPressed if ( Button == 1 ) ; endif end
414FortSiriScriptscn FortSiriScript begin OnDeath ; something end
415FortWeatherStationGuardScriptscn FortWeatherStationGuardScript short bDoOnce begin OnDeath WeatherStationExteriorDoorRef.Unlock end begin OnStartCombat player if (bDoOnce == 0) SetEnemy vCaesarsLegionTheFortFaction PlayerFaction SetStage VMQ02 110 set bDoOnce to 1 endif end
416FreesideLightsScriptScn FreesideLightsScript Float fTime Short bLightOn Begin OnLoad Set fTime to GetCurrentTime If fTime > 20 && fTime < 23.20 Set bLightOn to 0 Elseif ( fTime > 23.20 || fTime < 20 ) Set bLightOn to 1 Endif End Begin GameMode Set fTime to GetCurrentTime If fTime > 20 && fTime < 23.20 && bLightOn == 0 Enable ;Turn On Set bLightOn to 1 Elseif ( fTime > 23.20 || fTime < 20 ) && bLightOn == 1 Disable ;Turn Off Set bLightOn to 0 Endif End
417FriendOfTheNightQuestScriptscn FriendOfTheNightQuestScript short bFOTNNightInEffect ; toggle for when FOTN is in effect. 1 = yes. short bFOTNInteriorInEffect ; toggle for when FOTN is in effect. 1 = yes. Begin GameMode ; JSH 8/11 Don't do effects if the end slide show is in progress if (player.GetInCell Endgame) return endif If IsImageSpaceActive FriendOfTheNightISFX Set bFOTNNightInEffect to 1 Else Set bFOTNNightInEffect to 0 Endif If IsImageSpaceActive FriendOfTheNightInteriorISFX Set bFOTNInteriorInEffect to 1 Else Set bFOTNInteriorInEffect to 0 Endif If GetCurrentTime >= 20.25 || GetCurrentTime <= 5.75 && Player.HasPerk FriendOfTheNight If Player.IsInInterior == 1 If bFOTNNightInEffect == 1 RemoveImageSpaceModifier FriendOfTheNightISFX Endif If bFOTNInteriorInEffect == 0 ApplyImageSpaceModifier FriendOfTheNightInteriorISFX Endif Else If bFOTNInteriorInEffect == 1 RemoveImageSpaceModifier FriendOfTheNightInteriorISFX Endif If bFOTNNightInEffect == 0 ApplyImageSpaceModifier FriendOfTheNightISFX Endif Endif Else If bFOTNNightInEffect == 1 RemoveImageSpaceModifier FriendOfTheNightISFX Endif If bFOTNInteriorInEffect == 1 RemoveImageSpaceModifier FriendOfTheNightInteriorISFX Endif Endif End
418FXArtilleryStrikeScriptscn FXArtilleryStrikeScript Short DoOnce Begin OnLoad Set DoOnce to 0 playgroup forward 0 End Begin GameMode if DoOnce == 0 If isAnimPlaying Forward == 0 Placeatme LargeExplosion Set DoOnce to 2 endif EndIf If DoOnce == 2 Disable set DoOnce to 3 endif if DoOnce == 3 MarkForDelete endif End
419FXComputerSparksScriptscn FXComputerSparksScript Float Timer Begin OnLoad Playsound OBJComputerTerminalArc Set timer to 1.5 End Begin GameMode if timer > 0 set timer to timer - getsecondspassed else disable markfordelete endif End
420FXHooverDamHowitzerArtilleryStrikeScriptscn FXHooverDamHowitzerArtilleryStrikeScript Short DoOnce Begin OnLoad Set DoOnce to 0 playgroup forward 0 End Begin GameMode if DoOnce == 0 If isAnimPlaying Forward == 0 Placeatme LegionHowitzerExplosion Set DoOnce to 2 endif EndIf If DoOnce == 2 Disable set DoOnce to 3 endif if DoOnce == 3 MarkForDelete endif End
421FXNellisArtilleryStrikeScriptscn FXNellisArtilleryStrikeScript Short DoOnce Begin OnLoad Set DoOnce to 0 playgroup forward 0 End Begin GameMode if DoOnce == 0 If isAnimPlaying Forward == 0 Placeatme NellisArtilleryExplosion Set DoOnce to 2 endif EndIf If DoOnce == 2 Disable set DoOnce to 3 elseif DoOnce == 3 MarkForDelete endif End
422FXSprayJetAnimSCRIPTscn FXSprayJetAnimSCRIPT ;To make me work: Activate once to turn on, again to start turn off, a third time to turn off sound and disable. ;Works best with activators that have a delay worked into the activate parent. See FriendshipMetroUtility for an example ;=================================== short state ;0 = off and disabled, 1 = on, enabled and animating, 2 = disable myself, 3 = activation no longer does anything ref mySelf begin onActivate set mySelf to getSelf if state == 0 ; mySelf.enable playgroup forward 1 ;start animation set state to 1 elseif state == 1 playgroup backward 1 ;stop animation set state to 2 ; elseif state == 2 ; mySelf.disable ;turns off sound. ; set state to 3 endif end
423GameTerminalSCRIPTscn GameTerminalSCRIPT ; clears game variable everytime the terminal is accessed to keep this clean and replayable begin onActivate if IsActionRef player == 1 set NQlvl.gameVar01 to 0 set NQlvl.gameVar02 to 0 set NQlvl.gameVar02a to 0 set NQlvl.gameVar02b to 0 set NQlvl.gameVar03 to 0 set NQlvl.gameVar04 to 0 set NQlvl.gameVar05 to 0 set NQlvl.gameVar06 to 0 set NQlvl.gameVar07 to 0 set NQlvl.gameVar08 to 0 set NQlvl.gameVar09 to 0 set NQlvl.gameVar10 to 0 set NQlvl.gameVarExE2 to 0 set NQlvl.gameVarExE to 0 set NQlvl.gameVarExW to 0 set NQlvl.gameVarExS to 0 activate endif end
424GenericActivateOnLoadScriptscn GenericActivateOnLoadScript begin onLoad activate end
425GenericBipedHeadArmsDismembermentSCRIPTscn GenericBipedHeadArmsDismembermentSCRIPT ; This trigger has a script that will dismember the right leg and right arm of its linkedRef ref linkedRef short doOnce Begin onLoad if doOnce == 0 set linkedRef to getLinkedRef linkedRef.killactor linkedRef 1 ;dismember Head linkedRef.killactor linkedRef 3 ;dismember Left Arm linkedRef.killactor linkedRef 5 ;dismember Right Arm set doOnce to 1 ;Trigger is only set off one time endif End
426GenericBipedHeadArmsLegsDismembermentSCRIPTscn GenericBipedHeadArmsLegsDismembermentSCRIPT ; This trigger has a script that will dismember the right leg and right arm of its linkedRef ref linkedRef short doOnce Begin onLoad if doOnce == 0 set linkedRef to getLinkedRef linkedRef.killactor linkedRef 1 ;dismember Head linkedRef.killactor linkedRef 3 ;dismember Left Arm linkedRef.killactor linkedRef 7 ;dismember Left Leg linkedRef.killactor linkedRef 10 ;dismember Right Leg linkedRef.killactor linkedRef 5 ;dismember Right Arm set doOnce to 1 ;Trigger is only set off one time endif End
427GenericBipedHeadDismembermentSCRIPTscn GenericBipedHeadDismembermentSCRIPT ; This trigger has a script that will dismember the head of its linkedRef ref linkedRef short doOnce Begin onLoad if doOnce == 0 set linkedRef to getLinkedRef linkedRef.killactor linkedRef 1 ;dismember Head set doOnce to 1 ;Trigger is only set off one time endif End
428GenericBipedHeadLegsDismembermentSCRIPTscn GenericBipedHeadLegsDismembermentSCRIPT ; This trigger has a script that will dismember the right leg and right arm of its linkedRef ref linkedRef short doOnce Begin onLoad if doOnce == 0 set linkedRef to getLinkedRef linkedRef.killactor linkedRef 1 ;dismember Head linkedRef.killactor linkedRef 7 ;dismember Left Leg linkedRef.killactor linkedRef 10 ;dismember Right Leg set doOnce to 1 ;Trigger is only set off one time endif End
429GenericBipedLeftArmDismembermentSCRIPTscn GenericBipedLeftArmDismembermentSCRIPT ; This trigger has a script that will dismember the left arm of its linkedRef ref linkedRef short doOnce Begin onLoad if doOnce == 0 set linkedRef to getLinkedRef linkedRef.killactor linkedRef 3 ;dismember Left Arm set doOnce to 1 ;Trigger is only set off one time endif End
430GenericBipedLeftLegDismembermentSCRIPTscn GenericBipedLeftLegDismembermentSCRIPT ; This trigger has a script that will dismember the head of its linkedRef ref linkedRef short doOnce Begin onLoad if doOnce == 0 set linkedRef to getLinkedRef linkedRef.killactor linkedRef 7 ;dismember Left Leg set doOnce to 1 ;Trigger is only set off one time endif End
431GenericBipedLeftLegLeftArmDismembermentSCRIPTscn GenericBipedLeftLegLeftArmDismembermentSCRIPT ; This trigger has a script that will dismember the left leg and left arm of its linkedRef ref linkedRef short doOnce Begin onLoad if doOnce == 0 set linkedRef to getLinkedRef linkedRef.killactor linkedRef 7 ;dismember Left Leg linkedRef.killactor linkedRef 3 ;dismember LeftArm set doOnce to 1 ;Trigger is only set off one time endif End
432GenericBipedRandomMultiDismembermentOnActivateSCRIPTscn GenericBipedRandomMultiDismembermentOnActivateSCRIPT ; This trigger has a script that runs a 50% chance of dismembering each body part of its linkedRef ref linkedRef short doOnce short n Begin onActivate if doOnce == 0 set linkedRef to getLinkedRef set n to getRandomPercent if n > 50 linkedRef.killactor linkedRef 1 ;dismember Head endif set n to getRandomPercent if n < 50 linkedRef.killactor linkedRef 3 ;dismember Left Arm endif set n to getRandomPercent if n < 50 linkedRef.killactor linkedRef 7 ;dismember Left Leg endif set n to getRandomPercent if n > 50 linkedRef.killactor linkedRef 10 ;dismember Right Leg endif set n to getRandomPercent if n > 50 linkedRef.killactor linkedRef 5 ;dismember Right Arm endif set doOnce to 1 ;Trigger is only set off one time endif End
433GenericBipedRandomMultiDismembermentSCRIPTscn GenericBipedRandomMultiDismembermentSCRIPT ; This trigger has a script that runs a 50% chance of dismembering each body part of its linkedRef ref linkedRef short doOnce short n Begin onLoad if doOnce == 0 set linkedRef to getLinkedRef ; if no linked ref, do it to myself if linkedRef == 0 set linkedRef to GetSelf endif set n to getRandomPercent if n > 50 linkedRef.killactor linkedRef 1 ;dismember Head endif set n to getRandomPercent if n < 50 linkedRef.killactor linkedRef 3 ;dismember Left Arm endif set n to getRandomPercent if n < 50 linkedRef.killactor linkedRef 7 ;dismember Left Leg endif set n to getRandomPercent if n > 50 linkedRef.killactor linkedRef 10 ;dismember Right Leg endif set n to getRandomPercent if n > 50 linkedRef.killactor linkedRef 5 ;dismember Right Arm endif set doOnce to 1 ;Trigger is only set off one time endif End
434GenericBipedRightArmDismembermentSCRIPTscn GenericBipedRightArmDismembermentSCRIPT ; This trigger has a script that will dismember the head of its linkedRef ref linkedRef short doOnce Begin onLoad if doOnce == 0 set linkedRef to getLinkedRef linkedRef.killactor linkedRef 5 ;dismember Right Arm set doOnce to 1 ;Trigger is only set off one time endif End
435GenericBipedRightLegDismembermentSCRIPTscn GenericBipedRightLegDismembermentSCRIPT ; This trigger has a script that will dismember the head of its linkedRef ref linkedRef short doOnce Begin onLoad if doOnce == 0 set linkedRef to getLinkedRef linkedRef.killactor linkedRef 10 ;dismember Right Leg set doOnce to 1 ;Trigger is only set off one time endif End
436GenericBipedRightLegRightArmDismembermentSCRIPTscn GenericBipedRightLegRightArmDismembermentSCRIPT ; This trigger has a script that will dismember the right leg and right arm of its linkedRef ref linkedRef short doOnce Begin onLoad if doOnce == 0 set linkedRef to getLinkedRef linkedRef.killactor linkedRef 10 ;dismember Right Leg linkedRef.killactor linkedRef 5 ;dismember Right Arm set doOnce to 1 ;Trigger is only set off one time endif End
437GenericControlPodScriptscn GenericControlPodScript ;See V112 for generic setup. short mode ref myLink begin onActivate if IsActionRef player == 1 set myLink to getLinkedRef ;the linked ref should be the door. if ((myLink.getOpenState == 3) || (myLink.getOpenState == 1)) && mode != 2 ;door closed or open playgroup Forward 0 ;pull handle out set mode to 2 activate myLink ;activate all the things that this is an activate parent of - klaxon light and activator. endif endif end begin gameMode if (mode == 2) if (isAnimPlaying == 0) set myLink to getLinkedRef ;the linked ref should be the door. playgroup Left 1 ;pull handle down set mode to 3 myLink.activate player endif endif end
438GenericDebugEffectSCRIPTscn GenericDebugEffectSCRIPT float count ; effect's job is to simply report when the effect starts and ends begin ScriptEffectStart showwarning "Debug Effect: START" end begin ScriptEffectUpdate set count to ScriptEffectElapsedSeconds + ( getav variable01) setav variable01 count end begin ScriptEffectFinish showwarning "Debug Effect: END" end
439GenericDisableOnNextLoadSCRIPTscn GenericDisableOnNextLoadSCRIPT ; this script disables and marks for deletion after the second load short loadCount begin OnLoad set loadCount to loadCount + 1 if loadCount > 1 disable markfordelete endif end
440GenericDoorOpenedElsewhereSCRIPTscn GenericDoorOpenedElsewhereSCRIPT ; Don't pass a '1' parameter in your terminal's activate script ; This script will not allow NPCs to use the door. ; It's intended for sneaky/hacky players to be able to use the door for gameplay purposes ;********************** Begin onLoad lock 255 ;in case someone forgets to lock the door in the editor End ;********************** Begin onActivate if (IsActionRef player == 1) ShowMessage GenericDoorActivatedElsewhereMsg else Activate endif End
441GenericKillSCRIPTscn GenericKillSCRIPT ; This script will kill its linkedRef ref linkedRef short doOnce Begin onLoad if doOnce == 0 set linkedRef to getLinkedRef if linkedRef == 0 set linkedRef to GetSelf endif linkedRef.kill set doOnce to 1 ;Trigger is only set off one time endif End
442GenericOpenLinkedOnTriggerScriptscn GenericOpenLinkedOnTriggerScript short doOnce ref rLink; begin onTriggerEnter player if doOnce != 1 set rLink to GetLinkedRef; rLink.setOpenState 1; set doOnce to 1; endif end
443GenericProtectronSCRIPTscn GenericProtectronSCRIPT short talk ; set to 1 to start talking short talking ;set while talking float timer ; used for custom dialogue short robotID ; 0 = GenericFactoryProtectron ; 1 = GenericMetroProtectron ; 2 = genericMilitaryMrGutsy ; 3 = genericOfficeProtectron ; 4 = genericPodProtectron ; 5 = genericUtilityProtectron ; 6 = GenericVaultProtectron
444GenericPurgeCellBufferScriptscn GenericPurgeCellBufferScript begin OnTriggerEnter Player pcb end
445GenericSwitchActivateLinkedRefSCRIPTscn GenericSwitchActivateLinkedRefSCRIPT ; This script activates itself and also its LinkedRef when activated ref LinkedRef ref Self Begin onActivate set LinkedRef to getLinkedRef set Self to getSelf activate LinkedRef.activate Self End
446GenericTravelOnActivateScriptscn GenericTravelOnActivateScript ; ;This is to be used on creatures with the GenericTravelOnActivate package ;===================================== begin OnActivate setav variable01 1 ;this variable begins the GenericTravelOnActivate package evp activate end
447GenericTriggerEnableScriptscn GenericTriggerEnableScript ; Link objects to this with this object as the "enable parent" and the "opposite" box checked. When the player enters this trigger the trigger will ; Be disabled so it only fires once, and the objects in question will enable begin OnTriggerEnter Player disable end
448GenericUnlockLinkedRefOnTriggerscn GenericUnlockLinkedRefOnTrigger ref MyLink begin OnTriggerEnter player set myLink to getLinkedRef MyLink.Unlock end
449GenericVertibirdEncounterOnHitSCRIPTscn GenericVertibirdEncounterOnHitSCRIPT Begin onHitWith GenericVertibirdHitWithWeaponsList do 100 End
450GenericVertibirdEncounterSCRIPTscn GenericVertibirdEncounterSCRIPT short active ref landingMarker begin onLoad if active == 0 playgroup forward 0 set active to 1 endif end begin OnActivate if IsActionRef player == 0 ; assume this is my reference marker set landingMarker to GetActionRef ; move soldier drop-off markers FFEDropOffMarkerA.moveto landingMarker 0 -75 0 FFEDropOffMarkerB.moveto landingMarker 0 75 0 endif end begin gameMode if active == 1 if isanimplaying forward == 0 ; landed -- drop off troopers if we have a landing marker if getDestroyed == 0 if landingMarker != 0 ; make sure nothing else has moved the drop off markers -- if so just use the landing marker if FFEDropOffMarkerA.GetDistance landingMarker < 100 FFEDropOffMarkerA.placeLeveledActorAtMe LvlEnclaveVertibirdPatrol else landingMarker.placeLeveledActorAtMe LvlEnclaveVertibirdPatrol endif if FFEDropOffMarkerB.GetDistance landingMarker < 100 FFEDropOffMarkerB.placeLeveledActorAtMe LvlEnclaveVertibirdPatrol else landingMarker.placeLeveledActorAtMe LvlEnclaveVertibirdPatrol endif endif playgroup backward 0 endif set active to 2 endif elseif active == 2 if isanimplaying backward == 0 set active to 3 markfordelete endif endif end
451GenericVertibirdLandingControlSCRIPTscn GenericVertibirdLandingControlSCRIPT ; This trigger enables it's linked ref (a vertibird) and calls its forward animation float timer short doOnce ref linkedRef ref vertibirdLinkedRef short init Begin onHitWith GenericVertibirdHitWithWeaponsList linkedRef.do 100 End ;**************************************** Begin onActivate set doOnce to 1 End ;**************************************** Begin gameMode if init == 0 set init to 1 set linkedRef to getLinkedRef set vertibirdLinkedRef to linkedRef.getLinkedRef endif if (doOnce == 1) linkedRef.enable 0 set timer to 1 set doOnce to 2 elseif (doOnce == 2) if (timer <= 0) if ( linkedRef.HasLoaded3D != 0 ) linkedRef.playgroup Forward 0 set doOnce to 3 endif else set timer to timer - GetSecondsPassed endif elseif (doOnce == 3) if (linkedRef.isAnimPlaying Forward == 0) set timer to 3 ; 3 seconds while vertibird is on ground before it enables its xmarker set doOnce to 4 endif elseif (doOnce == 4) if (timer <= 0) if (linkedRef.getDestroyed == 0) vertibirdLinkedRef.enable ;enables an xmarker whose children are the enclave lists set timer to 2 ; 2 seconds before vertibird will take off set doOnce to 5 else set doOnce to 7 endif else set timer to (timer - GetSecondsPassed) endif elseif (doOnce == 5) if (timer <=0) if (linkedRef.getDestroyed == 0) linkedRef.playgroup backward 0 set doOnce to 6 else set doOnce to 7 endif else set timer to (timer - GetSecondsPassed) endif elseif (doOnce == 6) if (linkedRef.isAnimPlaying Backward == 0) && (getDestroyed == 0) linkedRef.disable ;disable the vertibird when it's done playing its backward animation set doOnce to 7 endif endif End
452GenericWildWastelandTriggerSCRIPTscn GenericWildWastelandTriggerSCRIPT begin OnTriggerEnter Player if Player.HasPerk WildWasteland PlaySound UIWildWasteland showmessage WildWastelandMessage endif disable end
453GeorgetownWildWestExplosionSCRIPTscn GeorgetownWildWestExplosionSCRIPT ref myLink short doOnce begin gameMode if doOnce == 0 ; init thing set myLink to getLinkedRef set doOnce to 1 endif if doOnce == 1 if (myLink.getDead == 1) set doOnce to 2 endif endif end begin onTrigger if doOnce == 2 ; my ref is dead placeatme FakeForce100r1000 ; create a push force from origin endif end begin onTriggerLeave if getActionRef == myLink set doOnce to 3 ; quit when my reference is ejected from the trigger endif end
454GhoulExitTriggerSCRIPTscn GhoulExitTriggerSCRIPT ; 5.4.09 JF ; This script is attached to the hatch in the room overlooking the rocket pad in the REPCON basement. It teleports the ghouls to the tunnel ; leading to the rocket pad and gives them a package to make their way there. ref EnteringActor begin OnTriggerEnter Set EnteringActor to GetActionRef ; Only teleport a creature if it's Jason Bright if EnteringActor.GetIsReference JasonBright == 1 EnteringActor.Disable 1 ; Make Jason fade out EnteringActor.MoveTo JasonEntranceMarker EnteringActor.Enable 1 ; Make Jason fade in Set VMS01.JasonGoodbye to 2 EnteringActor.evp endif ; Or Harland :) if EnteringActor.GetIsReference HarlandREF == 1 EnteringActor.Disable 1 ; Make Jason fade out EnteringActor.MoveTo JasonEntranceMarker EnteringActor.Enable 1 ; Make Jason fade in Set HarlandREF.HarlandState to 1 EnteringActor.evp endif end
455GhoulJasonBrightSCRIPTscn GhoulJasonBrightSCRIPT begin OnDeath setEnemy PlayerFaction REPCONBrightBrotherhoodFaction ; If the player hasn't completed the quest yet, fail it when Jason dies if GetStage VMS01 < 100 SetStage VMS01 102 endif end
456GhoulPrisonerDecloakScriptscn GhoulPrisonerDecloakScript begin OnTriggerEnter HarlandREF Set HarlandREF.HarlandState to 1 HarlandREF.evp end
457GibsonComputerPartsSCRIPTscn GibsonComputerPartsSCRIPT begin OnAdd player ; if GetStage == 10 ; SetStage 20 ; Temporary effect. In reality, it will update the quest to the appropriate stage. ;OldLadyGibsonRef.KillActor end
458GlowingOneGlowSpellScriptscn GlowingOneGlowSpellScript Begin ScriptEffectStart pms GlowingOneFXShader End
459GomorrahCasinoEnterTriggerScriptscn GomorrahCasinoEnterTriggerScript ref Companion1REF ref Companion2REF begin onTriggerEnter ; pcb end begin onActivate ; Checks for followers if VNPCFollowers.bBooneHired == 1 set Companion1REF to CraigBooneREF elseif VNPCFollowers.bCassHired == 1 set Companion1REF to RoseofSharonCassidyREF elseif VNPCFollowers.bVeronicaHired == 1 set Companion1REF to VeronicaREF elseif VNPCFollowers.bLilyHired == 1 set Companion1REF to LilyREF elseif VNPCFollowers.RaulHired == 1 set Companion1REF to RaulREF elseif VNPCFollowers.ArcadeHired == 1 set Companion1REF to ArcadeREF endif if VNPCFollowers.bEDEHired == 1 if EDE1Ref.GetDisabled == 0 set Companion2REF to EDE1REF elseif EDE2Ref.GetDisabled == 0 set Companion2REF to EDE2REF elseif EDE3Ref.GetDisabled == 0 set Companion2REF to EDE3REF endif elseif VNPCFollowers.RexHired == 1 set Companion2REF to RexREF endif if vDialogueGomorrah.iInGomorrah == 1 if Companion1REF != 0 Companion1REF.RemoveAllTypedItems vGOMCompanion1EquipmentContainer 1 0 40 endif if Companion2REF!= 0 Companion2REF.RemoveAllTypedItems vGOMCompanion2EquipmentContainer 1 0 40 endif elseif vDialogueGomorrah.iInGomorrah == 2 if Companion1REF != 0 if Player.GetActorValue Sneak >= 50 Companion1REF.RemoveAllTypedItems vGOMCompanion1EquipmentContainer 1 0 40 NVImprovedHoldoutWeapons else Companion1REF.RemoveAllTypedItems vGOMCompanion1EquipmentContainer 1 0 40 NVHoldoutWeapons endif endif if Companion2REF != 0 if Player.GetActorValue Sneak >= 50 Companion2REF.RemoveAllTypedItems vGOMCompanion2EquipmentContainer 1 0 40 NVImprovedHoldoutWeapons else Companion2REF.RemoveAllTypedItems vGOMCompanion2EquipmentContainer 1 0 40 NVHoldoutWeapons endif endif endif end
460GomorrahElevatorDoorScriptscn GomorrahElevatorDoorScript int Button begin OnActivate ref reffer set reffer to GetActionRef if GetActionRef == player showmessage GomorraElevatorMessage else if reffer.GetPlayerTeammate == 1 reffer.moveto player endif endif end begin GameMode set Button to GetButtonPressed ref rMarker if Button == 1 player.MoveTo GomorrahLLMarker set rMarker to GomorrahLLMarker Autosave elseif Button == 2 player.MoveTo Gomorrah1stMarker set rMarker to Gomorrah1stMarker Autosave elseif Button == 3 player.MoveTo Gomorrah3rdMarker set rMarker to Gomorrah3rdMarker Autosave elseif Button == 4 player.MoveTo GomorrahTopMarker set rMarker to GomorrahTopMarker Autosave endif if (Button == 1 || Button == 2 || Button == 3 || Button == 4) if (VNPCFollowers.bBooneHired) && (CraigBooneREF.Waiting != 1) CraigBooneREF.MoveTo rMarker; endif if (VNPCFollowers.bCassHired) && (RoseofSharonCassidyREF.Waiting != 1) RoseofSharonCassidyREF.MoveTo rMarker; endif if (VNPCFollowers.bVeronicaHired) && (VeronicaREF.Waiting != 1) VeronicaREF.MoveTo rMarker; endif if (VNPCFollowers.bLilyHired) && (LilyREF.Waiting != 1) LilyREF.MoveTo rMarker; endif if (VNPCFollowers.RaulHired) && (RaulREF.Waiting != 1) RaulREF.MoveTo rMarker; endif if (VNPCFollowers.ArcadeHired) && (ArcadeREF.Waiting != 1) ArcadeREF.MoveTo rMarker; endif if (VNPCFollowers.bEDEHired) && (EDE1REF.Waiting != 1) if EDE1Ref.GetDisabled == 0 EDE1Ref.MoveTo rMarker elseif EDE2Ref.GetDisabled == 0 EDE2Ref.MoveTo rMarker elseif EDE3Ref.GetDisabled == 0 EDE3Ref.MoveTo rMarker endif endif if (VNPCFollowers.RexHired) && (RexREF.Waiting != 1) RexREF.MoveTo rMarker; endif endif end
461GomorrahExitTriggerScriptscn GomorrahExitTriggerScript int OnceOnly begin onTriggerEnter if isActionRef Player if VMS21.iTroikeThermite == 1 && OnceOnly == 0 VMS21Container3.disable set OnceOnly to 1 setobjectivecompleted VMS21 58 1 setobjectivedisplayed VMS21 60 1 endif endif end
462GomorrahHotelDoorScriptscn GomorrahHotelDoorScript ref Follower1 ref Follower2 float fTimer int bActivate ref rActor begin onActivate set rActor to GetActionRef if (GetActionRef == Player && (this == vGOMHotelDoor01 || this == vGOMHotelDoor02)) if (vGOMEntranceGuardREF.GetFactionRelation Player != 1 && vGOMEntranceGuardREF.GetDead == 0) disableplayercontrols endif ;Player.MoveTo VGomPlayerEnterMarker ;Autosave Activate Return endif if IsActionRef Player ;showwarning "Interior Door, should only activate when inside" enableplayercontrols set vdialoguegomorrah.iWeaponAlert to 0 set vDialogueGomorrah.bGunsAllowed to 0 if vDialogueGomorrah.iPlayerRemFaction == 1 player.addtofaction OmertaFaction 0 set vDialogueGomorrah.iPlayerRemFaction to 0 endif if vDialogueGomorrah.iInGomorrah == 0 Player.Moveto vGomPortMarker vGOMEntranceGuardREF.ResetAI return endif if vDialogueGomorrah.iInGomorrah >= 1 set vDialogueGomorrah.iInGomorrah to 0 vGOMPlayerEquipmentContainer.removeallitems player set Follower1 to GomorrahCasinoEnterTriggerREF.Follower1 set Follower2 to GomorrahCasinoEnterTriggerREF.Follower2 if Follower1 != 0 vGOMCompanion1EquipmentContainer.RemoveAllItems Follower1 set GomorrahCasinoEnterTriggerREF.Follower1 to 0 endif if Follower2 != 0 vGOMCompanion2EquipmentContainer.RemoveAllItems Follower2 set GomorrahCasinoEnterTriggerREF.Follower2 to 0 endif endif Activate set bActivate to 1 elseif (rActor.GetPlayerTeammate && (this == vGOMHotelDoor01 || this == vGOMHotelDoor02)) rActor.moveto vGomCompanionEnterMarker else Activate endif end begin GameMode if bActivate == 1 set fTimer to fTimer + GetSecondsPassed if fTimer >= 2 set bActivate to 0 set fTimer to 0 if vGomEntrancEGuardRef.GetDead == 0 vGomEntranceGuardRef.MoveTo VGOMEntranceGuardMarker vGOMEntranceGuardREF.ResetAI endif if Follower1 != 0 vGOMCompanion1EquipmentContainer.RemoveAllItems Follower1 set GomorrahCasinoEnterTriggerREF.Follower1 to 0 endif if Follower2 != 0 vGOMCompanion2EquipmentContainer.RemoveAllItems Follower2 set GomorrahCasinoEnterTriggerREF.Follower2 to 0 endif endif endif end
463GomorrahRouletteTableSCRIPTscn GomorrahRouletteTableSCRIPT begin OnActivate if IsActionRef player if vCasinoCompsGomorrah.bFloorManagerIncoming showmessage GomorrahFloorManagerMsg else ShowRouletteMenuParams GomorrahCasinoData 1 200 0 endif else playgroup forward 1 endif end
464GoodspringsJoeCobbScriptscn GoodspringsJoeCobbScript short nDeathCount begin OnDeath if (GetStageDone VMS16b 70 == 0) && (GetStageDone VMS16 70 == 0) SetStage VMS16b 110 endif set VFreeformGoodsprings.bJoeCobbDead to 1 set VMS16.nGangerDeathCount to (VMS16.nGangerDeathCount + 1) set nDeathCount to VMS16.nGangerDeathCount if GetObjectiveDisplayed VMS16 70 if nDeathCount >= 6 SetObjectiveCompleted VMS16 70 1 SetStage VMS16 100 endif endif end
465GoodspringsPowderGangerScriptscn GoodspringsPowderGangerScript short nDeathCount begin OnStartCombat player if (GetQuestRunning VMS16b) SetEnemy GoodspringsPowderGangFaction PlayerFaction SetStage VMS16b 110 endif end begin OnDeath set VMS16.nGangerDeathCount to (VMS16.nGangerDeathCount + 1) set nDeathCount to VMS16.nGangerDeathCount if (GetObjectiveDisplayed VMS16 70) if nDeathCount >= 6 SetObjectiveCompleted VMS16 70 1 SetStage VMS16 100 endif endif end
466GoodspringsRadioScriptscn GoodspringsRadioScript short bFixed ; 1 = Player has repaired the radio. short Button begin OnLoad if (VFreeformGoodsprings.bKnowAboutRadio == 0) && (GetDestroyed == 0) SetDestroyed 1 endif end begin OnActivate player if bFixed Activate else ShowMessage GSBrokenRadioMsg endif end BEGIN GameMode set Button to GetButtonPressed if ( Button == 1 ) set bFixed to 1 ShowMessage GSFixedRadioMsg set VFreeformGoodsprings.bFixedRadio to 1 RewardXP 10 Activate endif endif END
467GoodspringsSchoolhouseSafeScriptscn GoodspringsSchoolhouseSafeScript short DoOnce begin OnOpen if DoOnce == 0 RemoveNote GSSunnyNote set VFreeformGoodsprings.OpenedSafe to 1 set DoOnce to 1 GSSchoolTerminal01Ref.Disable GSSchoolTerminal02Ref.Enable endif end
468GoodspringsSettlerScriptscn GoodspringsSettlerScript begin OnDeath set VMS16.nSettlerDeathCount to VMS16.nSettlerDeathCount + 1 if IsKiller player if (VMS16.bGunfightStart == 1) return else SetEnemy SunnySmilesFaction PlayerFaction SunnyRef.StartCombat player endif endif end
469GraveContScriptscn GraveContScript short Opened begin OnActivate if IsActionRef player if Opened Activate elseif ( player.GetItemCount WeapShovel >= 1 ) Activate set Opened to 1 else showMessage NoShovelMsg endif endif end
470GreatKhansSupplyObjectivesSCN GreatKhansSupplyObjectives BEGIN OnAdd Player if Player.GetInCell 3CBSCave1 set VMS36.Cave1SupplyMarker to 1 elseif Player.GetInCell 3CBSCave2 set VMS36.Cave2SupplyMarker to 1 elseif Player.GetInCell 3CBSCave3 set VMS36.Cave3SupplyMarker to 1 endif if Player.GetItemCount VBSGreatKhanSupplies == 2 && GetStage VMS36 >= 10 SetObjectiveCompleted VMS36 70 1 SetObjectiveDisplayed VMS36 75 1 endif END
471GSBrokenSMGScriptscn GSBrokenSMGScript short Button begin OnActivate if IsActionRef player ShowMessage GSBrokenSMGMsg endif end BEGIN GameMode set Button to GetButtonPressed if ( Button == 1 ) player.AddItemHealthPercent WeapNV9mmSubmachineGun 1 0.40 RewardXP 10 Disable endif endif END
472GSChemistrySetScriptscn GSChemistrySetScript short Button begin OnActivate if IsActionRef player ShowMessage GSChemistrySetMsg endif end BEGIN MenuMode 1001 set Button to GetButtonPressed if ( Button == 1 ) player.AddItem Stimpak 5 SetDestroyed 1 elseif ( Button == 2 ) player.AddItem Psycho 1 player.AddItem Buffout 1 player.AddItem Mentats 1 player.AddItem NVSteadyChem 1 player.AddItem NVReboundChem 1 SetDestroyed 1 endif END
473GSChetScriptscn GSChetScript begin OnDeath if (GetObjectiveDisplayed VMS16 30) && (GetObjectiveCompleted VMS16 30 == 0) SetObjectiveDisplayed VMS16 30 0 endif if (GetObjectiveDisplayed VMS16b 30) && (GetObjectiveCompleted VMS16b 30 == 0) SetObjectiveDisplayed VMS16b 30 0 endif end
474GSDocMitchellDoorScriptscn GSDocMitchellDoorScript begin OnActivate set DocMitchellREF.PlayerLeft to 1 activate end
475GSDocMitchellExitTriggerScriptscn GSDocMitchellExitTriggerScript begin onTriggerEnter player if GetStage VCG01 == 110 SetStage VCG01 115; endif end
476GSDocMitchellScriptscn GSDocMitchellScript short DoOnce ;Script blocker short BeginMedicalServicesBAD ;Used for Sawbones float Timer ;Timer used for animation control ; Copying all of DoctorTemplateSCRIPT into this, and adding a little int PlayerLeft ; 0 = Player's never left Doc's house, 1 = Player left begin onActivate if IsTalking == 0 Activate endif end BEGIN OnHit Player ;shouldn't be possible until player gets the ability to attack, which happens upon the conclusion of VCG01. But just in case. if (GetQuestRunning VCG01) StopCombat; ResetHealth; SetDisposition player 100; endif END BEGIN GameMode ;When set to 1, plays medical animations for eight seconds then restarts conversation with the player if ( GetAV Variable01 == 1 ) if ( DoOnce== 0 ) disablePlayerControls set Timer to 8 set DoOnce to 1 if ( GetIsID Sawbones == 0 && GetFurnitureMarkerID == 0) PlayIdle LooseDoctorHealPlayer endif resetai endif set Timer to ( Timer - GetSecondsPassed ) if ( Timer <= 6 ) && ( DoOnce == 1 ) IMod FadeToBlackISFX set DoOnce to 2 endif if ( Timer <= 0 ) && ( IsImagespaceActive FadeToBlackISFX == 0 ) setstage VDoctors 10 enablePlayerControls SetAv Variable01 3 resetai Set DoOnce to 0 endif endif ;When set to 1, plays medical animations for eight seconds then restarts conversation with the player if ( GetAV Variable01 == 2 ) if ( DoOnce== 0 ) disablePlayerControls set Timer to 10 set DoOnce to 1 if ( GetIsID Sawbones == 0 && GetFurnitureMarkerID == 0) PlayIdle LooseDoctorHealPlayer endif resetai endif set Timer to ( Timer - GetSecondsPassed ) if ( Timer <= 6 ) && ( DoOnce == 1 ) IMod FadeToBlackISFX set DoOnce to 2 endif if ( Timer <= 0 ) && ( IsImagespaceActive FadeToBlackISFX == 0 ) setstage VDoctors 20 enablePlayerControls SetAv Variable01 3 resetai Set DoOnce to 0 endif endif END
477GSDynamiteBoxScriptscn GSDynamiteBoxScript short Button BEGIN OnActivate if IsActionRef player ShowMessage GSDynamiteBoxMsg endif END BEGIN GameMode set Button to GetButtonPressed ; Player repairs the generator if ( Button == 1 ) player.AddItem WeapNVDynamite 3 RewardXP 10 SetDestroyed 1 endif endif END
478GSJoeCobbTriggerScriptscn GSJoeCobbTriggerScript short bDoOnce begin OnTriggerEnter player if bDoOnce == 0 && (GSJoeCobbRef.GetShouldAttack player == 0) set bDoOnce to 1 GSJoeCobbRef.StartConversation TrudyRef, GSJoeCobbIntro GSJoeCobbRef TrudyRef 0 0 set VMS16.bMetJoeCobb to 1 Disable MarkForDelete endif end
479GSPowderGangTriggerScriptscn GSPowderGangTriggerScript short bDoOnce begin OnTriggerEnter player if bDoOnce == 0 && GetStageDone VMS16 70 ShowWarning "Incoming powder gangers." GSPG01Ref.AddScriptPackage GSPGTravelPackage GSPG02Ref.AddScriptPackage GSPGTravelPackage GSPG03Ref.AddScriptPackage GSPGTravelPackage ;GSPG04Ref.AddScriptPackage GSPGTravelPackage GSPG05Ref.AddScriptPackage GSPGTravelPackage GSPG06Ref.AddScriptPackage GSPGTravelPackage set bDoOnce to 1 endif end
480GSRingoDialogueTriggerScriptscn GSRingoDialogueTriggerScript short bDoOnce begin OnTriggerEnter player if bDoOnce == 0 RingoRef.SetAlert 1 RingoRef.AddScriptPackage GSRingoDialoguePackage set bDoOnce to 1 Disable MarkForDelete endif end
481GSRingoScriptscn GSRingoScript begin OnReset ;if (GetQuestCompleted VMS16) ; MoveTo CCRingoMarker ; set VFreeformGoodsprings.RingoLeft to 1 ;endif end begin OnDeath if (GetQuestCompleted VMS16 == 0) AddItem caps001 100 endif ; Ringo is killed before gunfight if (GetStageDone VMS16 70 == 0) SetStage VMS16 110 endif if GetObjectiveDisplayed VMS16b 10 SetObjectiveCompleted VMS16b 10 1 SetObjectiveDisplayed VMS16b 15 1 GoodspringsPowderGangMarker.Enable ForceActiveQuest VMS16b endif end
482GSSaloonExitTriggerScriptscn GSSaloonExitTriggerScript begin OnTriggerEnter player if (VFreeformGoodsprings.bAllowEnableTrudy == 1) GSGasStationDoorRef.Unlock TrudyRef.Enable GSJoeCobbRef.Enable GSJoeCobbTriggerRef.Enable Disable MarkForDelete endif end
483GSSaloonTriggerScriptscn GSSaloonTriggerScript begin OnTriggerEnter player if (VFreeformGoodsprings.bEnableTrudyDone == 0) if (SunnyRef.GetDead == 1) && (VFreeformGoodsprings.bAllowEnableTrudy == 1) GSGasStationDoorRef.Unlock TrudyRef.Enable GSJoeCobbRef.Enable GSJoeCobbTriggerRef.Enable set VFreeformGoodsprings.bEnableTrudyDone to 1 endif endif end
484GSSneakTriggerScriptscn GSSneakTriggerScript short bActive begin OnTrigger player if bActive == 0 if (player.IsSneaking) && (player.GetAV Sneak >= 25) ;ShowWarning "Player is sneaky! Dogs remain unaware." else ShowWarning "Uh oh. Player is not sneaky enough. Here come the dogs!" set bActive to 1 endif endif end begin OnTriggerLeave player set bActive to 0 end
485GSSunnySmilesScriptscn GSSunnySmilesScript begin OnDeath ; Cheyenne will no longer help the player SetEnemy SunnySmilesFaction PlayerFaction 1 1 ; If showdown with Powder Gang hasn't started and Sunny dies, fail VMS16 if (GetStageDone VMS16 70 == 0) SetStage VMS16 110 endif if (GetQuestCompleted VCG02 == 0) SetStage VCG02 100; fail endif if (GetQuestRunning VCG03 && GetQuestCompleted VCG03 == 0) SetStage VCG03 255; fail endif set VFreeformGoodsprings.bAllowEnableTrudy to 1 end
486GSTrudyScriptscn GSTrudyScript begin OnDeath if VFreeformGoodsprings.bArgumentOver == 0 set VFreeformGoodsprings.bArgumentOver to 1 endif ; If player offered to help repair the saloon's radio, he's out of luck now. if GetHasNote GSTrudyNote RemoveNote GSTrudyNote endif if (GetQuestRunning VCG02) && (GetQuestCompleted VCG02 == 0) SetStage VCG02 100 elseif (GetQuestRunning VCG03) && (GetQuestCompleted VCG03 == 0) SetStage VCG03 255 endif end
487GSVictorDisabledScriptscn GSVictorDisabledScript begin OnLoad SetUnconscious 1 IgnoreCrime 1 end begin OnActivate if IsActionRef player ShowMessage GSVictorDisabledMsg endif end
488GunRunnerEnterTriggerScriptscn GunRunnerEnterTriggerScript begin OnTriggerEnter player set vDialogueGunRunner.bPlayerIntruder to 1 end
489GunRunnerExitTriggerScriptscn GunRunnerExitTriggerScript begin OnTriggerEnter player set vDialogueGunRunner.bPlayerIntruder to 0 end
490GunRunnerGuardScriptscn GunRunnerGuardScript ; Added conditional code to reduce the cost of running the script on every frame. Part of a game-wide revision of scripts - Jorge 03/14/10 Short PlayerTarget begin OnDeath set VMS05.bGunRunnerDeath to 1 end Begin OnStartCombat Player Set PlayerTarget to 1 End Begin OnCombatEnd Set PlayerTarget to 0 End begin GameMode if vDialogueGunRunner.bPlayerIntruder == 0 return elseif vDialogueGunRunner.bPlayerIntruder == 1 if PlayerTarget == 1 return else if GetDetected player if VMS05.bGunRunnerAlarm == 0 set VMS05.bGunRunnerAlarm to 1 endif StartCombat player endif endif endif end
491HanlonBalconyTriggerSCRIPTscn HanlonBalconyTriggerSCRIPT BEGIN OnTriggerEnter ChiefHanlonRef set VCampGolfHanlon.bHanlonOnBalcony to 1 END BEGIN OnTriggerlEAVE ChiefHanlonRef set VCampGolfHanlon.bHanlonOnBalcony to 0 END
492HanlonOfficeTriggerSCRIPTscn HanlonOfficeTriggerSCRIPT BEGIN OnTriggerEnter ChiefHanlonRef set VCampGolfHanlon.bHanlonInOffice to 1 END BEGIN OnTriggerlEAVE ChiefHanlonRef set VCampGolfHanlon.bHanlonInOffice to 0 END
493HarlandAggroTriggerScriptscn HarlandAggroTriggerScript begin OnTriggerEnter player if VMS01.PrisonerState < 2 SetEnemy REPCONHarlandFaction PlayerFaction HarlandREF.StartCombat player ; Make optional Harland objectives go away SetObjectiveDisplayed VMS01 63 0 SetObjectiveDisplayed VMS01 64 0 endif end
494HaroldTalkTriggerScriptscn HaroldTalkTriggerScript short playerInTrigger Begin OnTriggerEnter Player set playerInTrigger to 1 End Begin OnTriggerLeave Player set playerInTrigger to 0 End
495HD00InfirmaryScriptscn HD00InfirmaryScript short Done short Button short GoHeal ;Globals used here begin OnActivate if IsActionRef player == 1 ShowMessage HD00InfirmaryMessage set GoHeal to 1 endif end begin gamemode ;This section of the gamemode block handles all of the button presses on the Laboratory kit set Button to GetButtonPressed if ( Button == 0 ) && ( GoHeal == 1 ) Player.RestoreAV Health 1000000 Showmessage HD00InfirmaryHealMessage Set GoHeal to 0 elseif ( Button == 1 ) && ( GoHeal == 1 ) Player.RestoreAV perceptioncondition 100 Player.RestoreAV endurancecondition 100 Player.RestoreAV leftattackcondition 100 Player.RestoreAV leftmobilitycondition 100 Player.RestoreAV rightattackcondition 100 Player.RestoreAV rightmobilitycondition 100 Showmessage HD00InfirmaryLimbsMessage Set GoHeal to 0 elseif ( Button == 2 ) && ( GoHeal == 1 ) player.RestoreAV RadiationRads 1000000 Showmessage HD00InfirmaryRadsMessage Set GoHeal to 0 elseif ( Button == 3 ) && ( GoHeal == 1 ) ;Do nothing Set GoHeal to 0 endif end
496HD00LabScriptscn HD00LabScript short Done short Button short HDLab0 1= The laboratory is now "brewing" a drug float HDLabTime0 x.x= Float for how much time has passed short ProcessButton ;Globals used here begin OnActivate if IsActionRef player == 1 if ( HDLab0 == 0 ) set ProcessButton to 1 ShowMessage HD00LabMessage elseif ( HDLab0 == 1 ) ShowMessage HD00LabMessage01 elseif ( HDLab0 == 2 ) Set HDLab0 to 0 ShowMessage HD00LabMessage02 Player.AddItem LootChemsAll100 1 endif endif end begin gamemode ;This section of the gamemode block handles all of the button presses on the Laboratory kit set Button to GetButtonPressed if Button > -1 if ProcessButton == 1 if ( Button == 0 ) Set HDLab0 to 1 Set HDLabTime0 to GameDaysPassed elseif ( Button == 1 ) Player.RemoveSpell WithdrawalQuantumNukacola Player.RemoveSpell WithdrawalAlcohol Player.RemoveSpell WithdrawalBuffout Player.RemoveSpell WithdrawalJet Player.RemoveSpell WithdrawalMentats Player.RemoveSpell WithdrawalMorphine Player.RemoveSpell WithdrawalPsycho ShowMessage HDLabDetoxify elseif ( Button == 2 ) endif endif ; clear button variable set ProcessButton to 0 endif if ( HDLab0 == 1 ) if ( GameDaysPassed - HDLabTime0 >= 1 ) Set HDLab0 to 2 endif endif end
497HD00RobotQuestScriptscn HD00RobotQuestScript short Water ;1= The Robot needs to recharge it's condensation collectors short WaterGiven ;x= How many (from 1-5) waters have been given to the player short Joke short AlreadyPlayed ;x= The jukebox song has already played, so don't play it twice in a row float WaterTime ;x= How much time has passed since 5th water given float JokeTime ;x= Measures 1 day passed since last joke told begin gamemode ;Handling of the Water Given if ( WaterGiven == 5 ) if ( Water == 0 ) Set WaterTime to GameDaysPassed Set Water to 1 endif endif if Water == 1 if ( GameDaysPassed - WaterTime >= 7 ) Set Water to 0 Set WaterGiven to 0 endif endif ;Handling of the Jokes told if ( Joke == 1 ) Set JokeTime to GameDaysPassed set Joke to 2 endif if ( Joke == 2 ) if ( GameDaysPassed - JokeTime >= 1 ) Set Joke to 0 endif endif end
498HD01HouseItemPurchaseScriptscn HD01HouseItemPurchaseScript ;This small script will reduce the value of the "receipts" to 0 as soon as the Player owns it so you can't sell it back begin OnAdd Player SetItemValue 0 end
499HeadCookCookScriptscn HeadCookCookScript begin OnAdd player ; explode Cook-Cook's head FiendCookCookRef.KillActor player 1 if GetStageDone VMS12 5 if (GetObjectiveDisplayed VMS12 20) SetObjectiveCompleted VMS12 20 1 endif SetObjectiveDisplayed VMS12 50 1 endif end
500HeadDriverNephiScriptscn HeadDriverNephiScript begin OnAdd player ; explode Driver Nephi's head FiendDriverNephiRef.KillActor player 1 if GetQuestRunning VMS12 SetObjectiveCompleted VMS12 30 1 SetObjectiveDisplayed VMS12 60 1 endif end
501HeadshotSCRIPTscn HeadshotSCRIPT ; This trigger has a script that will explode the head of its linkedRef ref linkedRef short doOnce Begin onLoad if doOnce == 0 set linkedRef to getLinkedRef linkedRef.killactor linkedRef 1 ; Explode head set doOnce to 1 ; Trigger is only set off one time endif End
502HeadVioletScriptscn HeadVioletScript begin OnAdd player ; explode Violet's head FiendVioletRef.KillActor player 1 if GetStageDone VMS12 5 if GetObjectiveDisplayed VMS12 10 SetObjectiveCompleted VMS12 10 1 endif SetObjectiveDisplayed VMS12 40 1 endif end
503HectorTriggerScriptscn HectorTriggerScript begin OnTriggerEnter HectorRef set VMS10.bHectorStealingWater to 1 HectorValveLeakRef2.Enable end begin OnTriggerLeave HectorRef set VMS10.bHectorStealingWater to 0 HectorValveLeakRef2.Disable end
504HenryJamisonScriptscn HenryJamisonScript begin OnDeath if IsKiller player RewardKarma -50 endif if (GetObjectiveCompleted VMS05 40 == 0) && (GetObjectiveDisplayed VMS05 40) SetObjectiveCompleted VMS05 40 1 SetObjectiveDisplayed VMS05 45 1 endif end
505HiddenValleyDialogScriptscn HiddenValleyDialogScript ; Big Imporantant Vars int HowPlayerEntered ; 0 = Player hasn't entered yet ; 1 = Player used a patrol password ; 2 = Player came in with Veronica ; 3 = Player snuck in ; 4 = Player used password while in power armor ; 5 = Brought in during endgame sequence int JoinedBrotherhood ; 0 = Player is not considered a member of the BoS ; 1 = Player is considered a member of the BoS int CurrentElder ; 0 = McNamara ; 1 = Hardin int LockdownLifted ; 0 = Not lifted ; 1 = Lifted int HVStore ; 0 = Can't use store ; 1 = Received permission to use store int ConvoState ; Keeps track of conversation progress int MetWithBrotherhood ; Used to track exposure to Brotherhood for Yes Man ; 0 = Haven't met ; 1 = Met int AllNamedKilled ; 0 = Not all named characters killed yet ; 1 = All named characters killed int NumBoSDead ; Tracks how many brothers have been killed ;---------------------------------------------------------------------------------------------------------------------------------------- ; Ranger vars int RangerState ; 0 = Alive ; 1 = Dead ; 2 = Dead and verified alone ; 3 = Left (convinced) ; 4 = Left (radio destroyed) int RangerRadioState ; 0 = Start (broken) ; 1 = Fixed ; 2 = Destroyed ; 3 = Sabotaged int RangerLogRead ; 0 = Didn't read ranger's updated log ; 1 = Read log int MentionedSafehouse ; 0 = Didn't mention safehouse ; 1 = Mentioned safehouse ;---------------------------------------------------------------------------------------------------------------------------------------- ; Reputation Benefit vars float LastTimeAttacked ; Compared with GameDaysPassed to track how ; how long it's been since the player was attacked ;---------------------------------------------------------------------------------------------------------------------------------------- ; Virus vars int VirusWiped ; 0 = Virus not wiped, 1 = Virus wiped ref HostComputer1 ; reference to host computer of 1st virus portion ref HostComputer2 ; reference to host computer of 2nd virus portion ref HostComputer3 ; reference to host computer of 3rd virus portion int Host1LockedDown int Host2LockedDown int Host3LockedDown int Host1Partitioned ; Track whether the hosts have been partitioned, int Host2Partitioned ; which prevents the virus from jumping from them. int Host3Partitioned int TriedVirus ; 0 = Haven't tried to remove the virus ; 1 = Tried to remove virus at least once int HuntingVirus ; 0 = Not hunting virus ; 1 = About to hunt virus ; 2 = Hunting virus int PowerCut ; 0 = Power not cut from terminals ; 1 = Power cut int CurrentTerminalHost1 ; 0 = Not Host 1, 1 = Host 1 int CurrentTerminalHost2 ; 0 = Not Host 2, 1 = Host 2 int CurrentTerminalHost3 ; 0 = Not Host 3, 1 = Host 3 int PartitioningMentioned ; 0 = Not mentioned ; 1 = Mentioned int NumberLockedDown ; Tracks how many terminals have been locked down int NumberPartitioned ; Tracks how many terminals have been partitioned ;---------------------------------------------------------------------------------------------------------------------------------------- int TorresConvinced ; 0 = Not convinced, 1 = Torres will sell to you int MetWatkins ; 0 = Haven't met, 1 = Met int SpyingForSchuler ; 0 = Not spying, 1 = Spying int HelpingTorres ; 0 = Not helping yet ; 1 = Agreed to help, don't know about Stanton yet ; 2 = Talked to shooting range guy, found out about Stanton ; 3 = Talked to Stanton, can find gun now ; 4 = Returned plasma pistol int BunkerIntercomUsed ; 0 = None ; 1 = Brotherhood Bunker ; 2 = Any other bunker int HVState ; 0 = Intruder, Brotherhood members will attack you on sight ; 1 = Visitor, you're taken to see Ramos ; 2 = Vistor, stage 2, you're taken to McNamara ; 3 = Guest, you're given the collar and sent after the ranger ; 4 = Friend, you've proven yourself, time for BoS missions ; 5 = Ally, you're trusted now, here come the important missions int CameInWithVeronica ; 0 = Didn't come in with Veronica ; 1 = Came in with Veronica int GeneratorSetToBlow ; 0 = Not set to blow ; 1 = Set to blow ; 2 = Blown ;---------------------------------------------------------------------------------------------------------------------------------------- ; McNamara Faction quest variables int PatrolsFound ; Reflects the number of patrols discovered int ScoutsFound ; Reflects the number of scouts met int ComponentsFound ; Reflects the number of components found ;---------------------------------------------------------------------------------------------------------------------------------------- ; Hardin takeover vars int DiscoveredLorenzoJournal ; 0 = Not discovered, 1 = Discovered int FoundElderDatastoreTopic ; 0 = Didn't find yet, 1 = Found int FoundChainTopic ; 0 = Didn't find yet, 1 = Found int ToldAboutHolotapes ; 0 = Didn't tell Hardin about the holotapes ; 1 = Told Hardin int ToldAboutChain ; 0 = Didn't tell Hardin about the Chain ; 1 = Told Hardin int ElderTopicUnlocked ; 0 = Not unlocked, 1 = Unlocked int ChainTopicUnlocked ; 0 = Not unlocked, 1 = Unlocked ;--------------------------------------------------------------------------------------------------------------------------------------- int LilyWaiting ; 0 = Not waiting due to HV trigger ; 1 = Waiting due to HV trigger ; Used to tell if Lily is waiting as a result of the player ; descending to the lower level of Hidden Valley. ; If this wasn't tracked, the player could manually tell ; her to wait, then enter one of the triggers upstairs and ; she'd start following again. int PCThirdPerson ; 0 = PC not in third person before push ; 1 = PC in third person before push
506HoneyMesquiteScriptscn HoneyMesquiteScript int State begin onActivate if State == 0 && GetActionRef == player player.additem NVFreshHoneyMesquiteFruit 1 set State to 1 playGroup Forward 1 setdestroyed 1 endif end begin onLoad if State == 0 playGroup Backward 1 elseif State == 1 playGroup Forward 1 endif end begin onReset if State == 1 playgroup Backward 1 set State to 0 setdestroyed 0 endif end
507HooverDamEastEnableTriggerSCRIPTscn HooverDamEastEnableTriggerSCRIPT ; Turns on assets in the eastern half of Hoover Dam and disables those in the western half. ; JSH 03/27/11 BEGIN OnTrigger Player If ( HooverDamMasterParentMarker.GetDisabled == 0 ) HooverDamMasterParentMarker.Disable; EndIf END
508HooverDamWestEnableTriggerSCRIPTscn HooverDamWestEnableTriggerSCRIPT ; Enables assets in the western part of Hoover Dam and disables those in the east. ; JSH 03/27/11 BEGIN OnTrigger Player If ( HooverDamMasterParentMarker.GetDisabled == 1 ) HooverDamMasterParentMarker.Enable; EndIf END
509HouseInnerSecretSCRIPTscn HouseInnerSecretSCRIPT begin OnTriggerEnter player SetEnemy PlayerFaction Lucky38Faction end
510HouseOuterSecret02SCRIPTscn HouseOuterSecret02SCRIPT short warned begin OnTriggerEnter player ;if warned == 0 ;L38Outer2Securitron02REF.addscriptpackage Lucky38SecuritronWarn ;StartConversation Player ;L38Outer2Securitron02REF.evp set warned to 1 set vDialogueMrHouse.WallTermWarn to 1 set vStoryEventMrHousePissed to 1 ;L38Turret01REF.Enable ;L38Turret02REF.Enable ;L38Turret03REF.Enable ;L38Securitron01REF.Enable ;L38Securitron02REF.Enable ;L38Turret04REF.Enable ;endif end
511HowitzerFiringMechanismScriptscn HowitzerFiringMechanismScript short DoOnce begin OnAdd player if (DoOnce == 0) && (GetQuestRunning VMS32) SetStage VMS32 20 set DoOnce to 1 endif end
512Hull12GaAddScriptscn Hull12GaAddScript BEGIN OnAdd Player Player.AddItem Hull12Ga 25 RemoveMe END
513Hull20GaAddScriptscn Hull20GaAddScript BEGIN OnAdd Player Player.AddItem Hull20Ga 25 RemoveMe END
514HV02DebugScriptscn HV02DebugScript begin OnLoad ;SetAlly BrotherhoodSteelFaction PlayerFaction ;Set VDialogueHiddenValley.HVState to 4 end
515HVArmorTalkerScriptscn HVArmorTalkerScript ref WhichArmor
516HVBathroomStallScriptscn HVBathroomStallScript ref DoorREF ref EnteringActor begin onTriggerEnter Set DoorREF to GetLinkedRef DoorREF.SetOpenState 0 Set EnteringActor to GetActionRef EnteringActor.SetPackDuration 1.0 end
517HVBmRadioConsoleScriptscn HVBmRadioConsoleScript int button int screen begin OnLoad ; Only allow the player to use the console if on the quest if GetStage VMS55b != 10 SetDestroyed 1 else SetDestroyed 0 endif end ;--------------------------------------------------------------------------------------------------------------------------------------- begin OnActivate if GetStage VMS55b == 10 ShowMessage HVJoiningConsoleMainMsg endif end ;--------------------------------------------------------------------------------------------------------------------------------------- begin GameMode set button to GetButtonPressed if button == 1 ShowMessage HVJoiningConsoleInstalledMsg SetStage VMS55b 20 SetDestroyed 1 endif end
518HVBrokenArmorScriptscn HVBrokenArmorScript ref ActivatingActor begin onActivate set ActivatingActor to GetActionREF if ActivatingActor.GetIsReference player ; One of the scribes tells you that the item is broken. HVKnightArmorTalker.Say HVBrokenItemLine endif end
519HVBrokenWeaponScriptscn HVBrokenWeaponScript ref ActivatingActor begin onActivate set ActivatingActor to GetActionREF if ActivatingActor.GetIsReference player ; One of the scribes tells you that the item is broken. HVKnightWeaponTalkerREF.Say HVBrokenItemLine endif end
520HVBrotherhoodInitiateTemplateScriptscn HVBrotherhoodInitiateTemplateScript ;------------------------------------------------------------------------------------------------------------- begin OnDeath player SetEnemy BrotherhoodSteelFaction PlayerFaction end ;------------------------------------------------------------------------------------------------------------- begin OnDeath set VDialogueHiddenValley.NumBoSDead to VDialogueHiddenValley.NumBoSDead + 1 end
521HVBrotherhoodOfSteelKnightTemplateScriptscn HVBrotherhoodOfSteelKnightTemplateScript begin OnDeath player SetEnemy BrotherhoodSteelFaction PlayerFaction end ;-------------------------------------------------------------------------------------------------------------------------------------- begin OnDeath set VDialogueHiddenValley.NumBoSDead to VDialogueHiddenValley.NumBoSDead + 1 end
522HVBrotherhoodScribeTeacherScriptscn HVBrotherhoodScribeTeacherScript ; Added conditional code to reduce the cost of running the script on every frame. Part of a game-wide revision of scripts - Jorge 03/14/10 float Timer ref Teacher begin OnDeath player SetEnemy BrotherhoodSteelFaction PlayerFaction end ;------------------------------------------------------------------------------------------------------------- begin OnDeath set VDialogueHiddenValley.NumBoSDead to VDialogueHiddenValley.NumBoSDead + 1 end ;------------------------------------------------------------------------------------------------------------- begin GameMode set Teacher to GetSelf if GetInSameCell Player != 1 Return elseif GetInSameCell Player == 1 && Teacher.IsInCombat == 0 if Timer > 20.0 HVTeacherREF.Say HVTeacherLines Set Timer to 0.0 endif Set Timer to Timer + GetSecondsPassed endif end ;-------------------------------------------------------------------------------------------------------------
523HVBrotherhoodScribeTemplateScriptscn HVBrotherhoodScribeTemplateScript ;------------------------------------------------------------------------------------------------------------- begin OnDeath player SetEnemy BrotherhoodSteelFaction PlayerFaction end ;------------------------------------------------------------------------------------------------------------- begin OnDeath set VDialogueHiddenValley.NumBoSDead to VDialogueHiddenValley.NumBoSDead + 1 end
524HVBunkerDoorToOutsideScriptscn HVBunkerDoorToOutsideScript float Time begin OnActivate set Time to GetCurrentTime ; Only do sandstorm stuff if bunker isn't destroyed if VHiddenValleyDustStorm.BunkerDestroyed == 0 ; Set the weather and storm effects, based on the time if Time > 21.0 || Time < 6.0 SetWeather HVDustStorm 1 set VHiddenValleyDustStorm.WeatherSet to 1 ; Set flag so quest handles weather appropriately set VHiddenValleyDustStorm.PlayerInStorm to 1 set VHiddenValleyDustStorm.sandstormstate to 2 HVSandStormNight01REF.enable HVSandStormNight02REF.enable HVSandStormNight03REF.enable HVSandStormNight04REF.enable HVSandStormNight05REF.enable HVSandStormNight06REF.enable HVSandStormNight07REF.enable HVSandStormNight08REF.enable HVSandStormNight09REF.enable HVSandStormNight10REF.enable HVSandStormNight01REF.PlayGroup SpecialIdle 2 HVSandStormNight02REF.PlayGroup SpecialIdle 2 HVSandStormNight03REF.PlayGroup SpecialIdle 2 HVSandStormNight04REF.PlayGroup SpecialIdle 2 HVSandStormNight05REF.PlayGroup SpecialIdle 2 HVSandStormNight06REF.PlayGroup SpecialIdle 2 HVSandStormNight07REF.PlayGroup SpecialIdle 2 HVSandStormNight08REF.PlayGroup SpecialIdle 2 HVSandStormNight09REF.PlayGroup SpecialIdle 2 HVSandStormNight10REF.PlayGroup SpecialIdle 2 set VHiddenValleyDustStorm.Timer to 0.0 else ForceWeather NVWastelandClear ReleaseWeatherOverride set VHiddenValleyDustStorm.WeatherSet to 0 set VHiddenValleyDustStorm.sandstormstate to 0 ;ShowWarning "Disabling sandstorms!" HVSandStormNight01REF.disable 0 HVSandStormNight02REF.disable 0 HVSandStormNight03REF.disable 0 HVSandStormNight04REF.disable 0 HVSandStormNight05REF.disable 0 HVSandStormNight06REF.disable 0 HVSandStormNight07REF.disable 0 HVSandStormNight08REF.disable 0 HVSandStormNight09REF.disable 0 HVSandStormNight10REF.disable 0 HVSandStormNight01REF.PlayGroup Right 2 HVSandStormNight02REF.PlayGroup Right 2 HVSandStormNight03REF.PlayGroup Right 2 HVSandStormNight04REF.PlayGroup Right 2 HVSandStormNight05REF.PlayGroup Right 2 HVSandStormNight06REF.PlayGroup Right 2 HVSandStormNight07REF.PlayGroup Right 2 HVSandStormNight08REF.PlayGroup Right 2 HVSandStormNight09REF.PlayGroup Right 2 HVSandStormNight10REF.PlayGroup Right 2 set VHiddenValleyDustStorm.Timer to 0.0 endif endif ; Speed quest processing SetQuestDelay VHiddenValleyDustStorm 0.1 Activate end
525HVBunkerExplosionScriptscn HVBunkerExplosionScript int ExplosionState float Timer float Time begin OnTrigger player if VDialogueHiddenValley.GeneratorSetToBlow == 1 if ExplosionState == 0 ; Disable fast travel temporarily so the player must witness the explosion EnableFastTravel 0 if Timer >= 1.0 ; Do explosion HVBunkerExplosionMarker.PlaceAtMe HVBunkerExplosion set VHiddenValleyDustStorm.BunkerDestroyed to 1 ; JSH 7/28 - Remove Explosive Collar if the player still has it player.RemoveItem HVExplosiveCollar 1000 ; Update quests that call for the Brotherhood's destruction if GetObjectiveDisplayed VMQ05 50 == 1 ; If the player was about to report to Colonel Moore that the BoS is ; allying with the NCR, update that if GetObjectiveDisplayed VMQ05 56 == 1 && GetObjectiveCompleted VMQ05 56 == 0 SetObjectiveDisplayed VMQ05 56 0 SetObjectiveDisplayed VMQ05 50 0 SetObjectiveDisplayed VMQ05 50 1 endif SetObjectiveCompleted VMQ05 50 1 SetObjectiveDisplayed VMQ05 55 1 elseif GetObjectiveDisplayed VMQ02 70 == 1 SetObjectiveCompleted VMQ02 70 1 SetObjectiveDisplayed VMQ02 75 1 elseif GetObjectiveDisplayed VMQHouse5 60 == 1 SetObjectiveCompleted VMQHouse5 60 1 SetObjectiveDisplayed VMQHouse5 64 1 ; Yes Man should be handled by setting the Brotherhood global var endif ; Set global state of the Brotherhood to destroyed set VStoryEventBoS to 2 ; vilified with the brotherhood after this. Helps Veronica to react appropriately. addreputation repnvbrotherhood 0 5 addreputation repnvbrotherhood 0 5 ; Lose karma for a dastardly deed player.RewardKarma -100 ; Enable rubble in bunker interior - no more entering Hidden Valley HVBlockingRubbleREF.enable ; Kill everyone in Hidden Valley ; Really, just kill the main guys since they affect quests NolanMcNamaraREF.kill EdgarHardinREF.kill LindaSchulerREF.kill LarsTaggartREF.kill HVKnightEDEREF.kill MelissaWatkinsREF.kill ; Kill any companions that are still inside the bunker, but only when in hardcore mode if player.IsHardcore if RoseOfSharonCassidyREF.GetInCell HiddenValley01 || RoseOfSharonCassidyREF.GetInCell HiddenValley02 RoseOfSharonCassidyREF.SetPlayerTeammate 0 RoseOfSharonCassidyREF.kill elseif LilyREF.GetInCell HiddenValley01 || LilyREF.GetInCell HiddenValley02 LilyREF.SetPlayerTeammate 0 LilyREF.kill elseif ArcadeREF.GetInCell HiddenValley01 || ArcadeREF.GetInCell HiddenValley02 ArcadeREF.SetPlayerTeammate 0 ArcadeREF.kill elseif RaulREF.GetInCell HiddenValley01 || RaulREF.GetInCell HiddenValley02 RaulREF.SetPlayerTeammate 0 RaulREF.kill elseif CraigBooneREF.GetInCell HiddenValley01 || CraigBooneREF.GetInCell HiddenValley02 CraigBooneREF.SetPlayerTeammate 0 CraigBooneREF.kill elseif VeronicaREF.GetInCell HiddenValley01 || VeronicaREF.GetInCell HiddenValley02 VeronicaREF.SetPlayerTeammate 0 VeronicaREF.kill endif if RexREF.GetInCell HiddenValley01 || RexREF.GetInCell HiddenValley02 RexREF.SetPlayerTeammate 0 RexREF.kill elseif EDE1REF.GetInCell HiddenValley01 || EDE1REF.GetInCell HiddenValley02 EDE1REF.SetPlayerTeammate 0 EDE1REF.kill elseif EDE2REF.GetInCell HiddenValley01 || EDE2REF.GetInCell HiddenValley02 EDE2REF.SetPlayerTeammate 0 EDE2REF.kill elseif EDE3REF.GetInCell HiddenValley01 || EDE3REF.GetInCell HiddenValley02 EDE3REF.SetPlayerTeammate 0 EDE3REF.kill endif endif ; Fail the Hidden Valley quests immediately so the player doesn't have ; to wait for gamemode scripts to catch up if GetStage VMS55 < 100 SetStage VMS55 200 endif if GetStage VMS55a < 100 SetStage VMS55a 200 endif if GetStage VMS55b < 100 SetStage VMS55b 200 endif set ExplosionState to 1 ; Intentionally not reseting the Timer here else ; Disable fast travel temporarily so the player must witness the explosion EnableFastTravel 0 set Timer to Timer + GetSecondsPassed endif elseif ExplosionState == 1 if Timer >= 3.5 set Time to GetCurrentTime ; If the sandstorm is currently blowing, turn it off if Time > 21.0 || Time < 6.0 ; Reset the weather ReleaseWeatherOverride set VHiddenValleyDustStorm.WeatherSet to 0 ; Make the sandstorms die down HVSandStormNight01REF.PlayGroup Backward 2 HVSandStormNight02REF.PlayGroup Backward 2 HVSandStormNight03REF.PlayGroup Backward 2 HVSandStormNight04REF.PlayGroup Backward 2 HVSandStormNight05REF.PlayGroup Backward 2 HVSandStormNight06REF.PlayGroup Backward 2 HVSandStormNight07REF.PlayGroup Backward 2 HVSandStormNight08REF.PlayGroup Backward 2 HVSandStormNight09REF.PlayGroup Backward 2 HVSandStormNight10REF.PlayGroup Backward 2 endif set ExplosionState to 2 set Timer to 0.0 else ; Disable fast travel temporarily so the player must witness the explosion EnableFastTravel 0 set Timer to Timer + GetSecondsPassed endif elseif ExplosionState == 2 if Timer > 2.0 ; Enable smoke HVDestroyedSmoke01REF.enable HVDestroyedSmoke02REF.enable HVDestroyedSmoke03REF.enable HVDestroyedSmoke04REF.enable HVDestroyedSmoke05REF.enable HVDestroyedSmoke06REF.enable HVDestroyedSmoke07REF.enable HVDestroyedSmoke08REF.enable HVDestroyedSmoke09REF.enable HVDestroyedSmoke10REF.enable HVDestroyedSmoke11REF.enable set VDialogueHiddenValley.GeneratorSetToBlow to 2 ; Re-enable fast travel EnableFastTravel 1 ; Clean up the dust storm objects HVSandStormNight01REF.disable HVSandStormNight01REF.MarkForDelete HVSandStormNight02REF.disable HVSandStormNight02REF.MarkForDelete HVSandStormNight03REF.disable HVSandStormNight03REF.MarkForDelete HVSandStormNight04REF.disable HVSandStormNight04REF.MarkForDelete HVSandStormNight05REF.disable HVSandStormNight05REF.MarkForDelete HVSandStormNight06REF.disable HVSandStormNight06REF.MarkForDelete HVSandStormNight07REF.disable HVSandStormNight07REF.MarkForDelete HVSandStormNight08REF.disable HVSandStormNight08REF.MarkForDelete HVSandStormNight09REF.disable HVSandStormNight09REF.MarkForDelete HVSandStormNight10REF.disable HVSandStormNight10REF.MarkForDelete else ; Disable fast travel temporarily so the player must witness the explosion EnableFastTravel 0 set Timer to Timer + GetSecondsPassed endif endif endif end
526HVBunkerFirstDoorScriptscn HVBunkerFirstDoorScript int DoOnce begin OnLoad ; Unlock the door the first time we load, since it's only locked to provide the ability ; to lock it and require a key later if DoOnce == 0 unlock set DoOnce to 1 endif end
527HVBunkerGuardDisplayTriggerScriptscn HVBunkerGuardDisplayTriggerScript int EnableGuards float Timer ;------------------------------------------------------------------------------------------------------------------------------------ begin OnTrigger if EnableGuards if Timer > 4.0 PasswordPaladin1.enable PasswordPaladin2.enable PasswordPaladin3.enable set EnableGuards to 0 endif Set Timer to Timer + GetSecondsPassed endif end
528HVBunkerInnerRoomTriggerScriptscn HVBunkerInnerRoomTriggerScript begin onTriggerEnter player set PasswordPaladin1.MoveInside to 1 set PasswordPaladin2.MoveInside to 1 PasswordPaladin1.evp PasswordPaladin2.evp ; Remember to unlock the door to the exterior, since we have to do it somewhere BunkerFirstDoor.unlock BunkerFirstDoor.setOpenState 1 ; Disable this trigger Disable end
529HVBunkerIntercomScriptscn HVBunkerIntercomScript short nVeronicaLinesSpoken BEGIN OnActivate ; override activation so the player can't use it if Veronica is here, since she's on her way. if (IsActionRef Player && VNPCFollowers.bVeronicaHired && VeronicaREF.bIntercomConversationActive) elseif IsActionRef Player SetTalkingActivatorActor RamosREF Set VDialogueHiddenValley.BunkerIntercomUsed to 1 Activate endif END BEGIN SayToDone HVVeronicaEnter set nVeronicaLinesSpoken to nVeronicaLinesSpoken + 1; if nVeronicaLinesSpoken == 2 VeronicaREF.ResetAI; endif END
530HVBunkerToMainDoorScriptscn HVBunkerToMainDoorScript int DoOnce ref ActivatingActor begin onActivate set ActivatingActor to GetActionREF if ActivatingActor.GetIsReference player if DoOnce == 0 PasswordPaladin1.disable PasswordPaladin2.disable PasswordPaladin3.disable BunkerGuard1.disable BunkerGuard2.disable PasswordPaladin1.MarkForDelete PasswordPaladin2.MarkForDelete PasswordPaladin3.MarkForDelete BunkerGuard1.MarkForDelete BunkerGuard2.MarkForDelete Set DoOnce to 1 set HVTeleportToRamosTriggerREF.DoOnce to 1 endif ; If the player is sneaking in for the first time, set Ramos up to catch them if GetStage VMS55 == 0 if RamosREF.RamosState == 0 if VDialogueHiddenValley.HowPlayerEntered == 0 set VDialogueHiddenValley.HowPlayerEntered to 3 SetEnemy PlayerFaction BrotherhoodSteelFaction 1 1 endif set RamosREF.RamosState to 0 RamosREF.evp endif endif ; If the player is currently dealing with the Ranger and snuck back in, make ; the Brotherhood hostile if GetStage VMS55 == 10 if GetObjectiveDisplayed VMS55 5 == 1 && GetObjectiveCompleted VMS55 5 == 0 SetEnemy PlayerFaction BrotherhoodSteelFaction endif endif ; Set cell ownership so when the player returns they're not free to pick up stuff SetCellOwnership HiddenValley02 BrotherhoodSteelFaction endif Activate end
531HVCollarKeyScriptscn HVCollarKeyScript begin OnAdd player ; Remove explosive collar player.unequipitem HVExplosiveCollar 1 1 player.removeItem HVExplosiveCollar 1 0 RemoveMe end
532HVDatastoreElectricalSwitchScriptscn HVDatastoreElectricalSwitchScript ref ActivatingActor int ButtonPressed int SwitchState ; 0 = Not used ; 1 = Cut power begin OnActivate if IsActionRef player == 1 if player.GetAV Repair < 60 ShowMessage HVDatastoreElectricalSwitchNoSkillMsg elseif SwitchState == 0 ShowMessage HVDatastoreElectricalSwitchMainMsg elseif SwitchState == 1 ShowMessage HVDatastoreElectricalSwitchPowerOffMsg endif endif end ;------------------------------------------------------------------------------------------------------------------------------------- begin GameMode set ButtonPressed to GetButtonPressed if SwitchState == 0 if ButtonPressed == 1 ; Cut power ; Cut the power to most of the terminals HVDatastoreTerminal01REF.SetDestroyed 1 HVDatastoreTerminal02REF.SetDestroyed 1 HVDatastoreTerminal03REF.SetDestroyed 1 HVDatastoreTerminal04REF.SetDestroyed 1 HVDatastoreTerminal05REF.SetDestroyed 1 HVDatastoreTerminal06REF.SetDestroyed 1 HVDatastoreTerminal07REF.SetDestroyed 1 HVDatastoreTerminal08REF.SetDestroyed 1 HVDatastoreTerminal09REF.SetDestroyed 1 HVDatastoreTerminal10REF.SetDestroyed 1 ShowMessage HVDatastoreElectricalSwitchPowerCutMsg set SwitchState to 1 endif elseif SwitchState == 1 if ButtonPressed == 1 ; Enable power ; Re-enable the power to the terminals HVDatastoreTerminal01REF.SetDestroyed 0 HVDatastoreTerminal02REF.SetDestroyed 0 HVDatastoreTerminal03REF.SetDestroyed 0 HVDatastoreTerminal04REF.SetDestroyed 0 HVDatastoreTerminal05REF.SetDestroyed 0 HVDatastoreTerminal06REF.SetDestroyed 0 HVDatastoreTerminal07REF.SetDestroyed 0 HVDatastoreTerminal08REF.SetDestroyed 0 HVDatastoreTerminal09REF.SetDestroyed 0 HVDatastoreTerminal10REF.SetDestroyed 0 ShowMessage HVDatastoreElectricalSwitchPowerUpMsg set SwitchState to 0 endif endif end
533HVDatastoreWallTerminalScriptscn HVDatastoreWallTerminalScript ref CurrentTerminal begin OnActivate set CurrentTerminal to GetSelf ; Set flag so proper options appear if CurrentTerminal == VDialogueHiddenValley.HostComputer1 set VDialogueHiddenValley.CurrentTerminalHost1 to 1 set VDialogueHiddenValley.CurrentTerminalHost2 to 0 set VDialogueHiddenValley.CurrentTerminalHost3 to 0 elseif CurrentTerminal == VDialogueHiddenValley.HostComputer2 set VDialogueHiddenValley.CurrentTerminalHost2 to 1 set VDialogueHiddenValley.CurrentTerminalHost1 to 0 set VDialogueHiddenValley.CurrentTerminalHost3 to 0 elseif CurrentTerminal == VDialogueHiddenValley.HostComputer3 set VDialogueHiddenValley.CurrentTerminalHost3 to 1 set VDialogueHiddenValley.CurrentTerminalHost1 to 0 set VDialogueHiddenValley.CurrentTerminalHost2 to 0 else set VDialogueHiddenValley.CurrentTerminalHost1 to 0 set VDialogueHiddenValley.CurrentTerminalHost2 to 0 set VDialogueHiddenValley.CurrentTerminalHost3 to 0 endif Activate end
534HVDeathTrackerScriptscn HVDeathTrackerScript float AlarmTimer int AlarmOnce float FadeTimer begin GameMode if VStoryEventBoS != 2 if TorresREF.GetDead == 1 if RamosREF.GetDead == 1 if LindaSchulerREF.GetDead == 1 if HVKnightEDEREF.GetDead == 1 if LarsTaggartREF.GetDead == 1 if NolanMcNamaraREF.GetDead == 1 if EdgarHardinREF.GetDead == 1 if MelissaWatkinsREF.GetDead == 1 if HVScribeIbsenREF.GetDead == 1 set VDialogueHiddenValley.AllNamedKilled to 1 endif endif endif endif endif endif endif endif endif if VDialogueHiddenValley.AllNamedKilled == 1 && VDialogueHiddenValley.NumBoSDead >= 18 ; Complete various quests that call for dealing with the Brotherhood if GetObjectiveDisplayed VMQ05 50 == 1 SetObjectiveCompleted VMQ05 50 1 SetObjectiveDisplayed VMQ05 55 1 elseif GetObjectiveDisplayed VMQ02 70 == 1 SetObjectiveCompleted VMQ02 70 1 SetObjectiveDisplayed VMQ02 75 1 elseif GetObjectiveDisplayed VMQHouse5 60 == 1 SetObjectiveCompleted VMQHouse5 60 1 SetObjectiveDisplayed VMQHouse5 64 1 ; Yes Man should be handled by setting the Brotherhood global var endif ; Set global state of the Brotherhood to destroyed set VStoryEventBoS to 2 endif endif ; If the self-destruct has been activated, make a klaxon sound every 2 seconds if VDialogueHiddenValley.GeneratorSetToBlow == 1 if AlarmTimer <= 0.0 PlaySound HVSelfDestructKlaxon set AlarmTimer to 2.6 else set AlarmTimer to AlarmTimer - GetSecondsPassed endif endif ; Whenever the Brotherhood goes hostile, hide the objective to report BoS/NCR alliance if NolanMcNamaraREF.GetFactionRelation Player == 1 ; If the player was about to report to Colonel Moore that the BoS is ; allying with the NCR, update that if GetObjectiveDisplayed VMQ05 56 == 1 && GetObjectiveCompleted VMQ05 56 == 0 SetObjectiveDisplayed VMQ05 56 0 SetObjectiveDisplayed VMQ05 50 0 SetObjectiveDisplayed VMQ05 50 1 endif endif ; Handle the fadeout and switch over when the Elder issue is settled if VMS55.ElderSettledState == 1 DisablePlayerControls IMOD FadeToBlackAndBackISFX set VMS55.ElderSettledState to 2 elseif VMS55.ElderSettledState == 2 if FadeTimer > 2.0 ; Do Stuff ; McNamara is Elder if GetStage VMS55 == 100 set VDialogueHiddenValley.LockdownLifted to 1 ; Hardin is Elder elseif GetStage VMS55 == 101 ; Hardin puts on the Elder robe EdgarHardinREF.RemoveItem ArmorPowerBrotherhoodOfSteelT51b 1 EdgarHardinREF.RemoveItem ArmorPowerT51bHelmet 1 EdgarHardinREF.AddItem OutfitElderMcNamara 1 EdgarHardinREF.EquipItem OutfitElderMcNamara 1 ; McNamara gets Knight armor NolanMcNamaraREF.RemoveItem OutfitElderMcNamara 1 NolanMcNamaraREF.AddItem CondReconArmor 1 NolanMcNamaraREF.EquipItem CondReconArmor 1 ; McNamara gets moved to the lab since he's a knight now NolanMcNamaraREF.MoveTo HVLabMarker ; Change around the self-destruct keycards as well ; Hardin gets the Elder keycard if McNamara still had it if NolanMcNamaraREF.GetItemCount HVSelfDestructKeyCard01 == 1 NolanMcNamaraREF.RemoveItem HVSelfDestructKeyCard01 1 EdgarHardinREF.AddItem HVSelfDestructKeyCard01 1 endif ; Ramos gets the Head Paladin keycard if Hardin still had it if EdgarHardinREF.GetItemCount HVSelfDestructKeyCard03 == 1 EdgarHardinREF.RemoveItem HVSelfDestructKeyCard03 1 RamosREF.AddItem HVSelfDestructKeyCard03 1 endif ; Update Hardin, McNamara, and Ramos's names since their titles changed EdgarHardinREF.SetActorFullName HVElderHardinMsg NolanMcNamaraREF.SetActorFullName HVKnightMcNamaraMsg RamosREF.SetActorFullName HVHeadPaladinRamosMsg ; Set var so Hardin and McNamara use new packages set VDialogueHiddenValley.CurrentElder to 1 NolanMcNamaraREF.evp EdgarHardinREF.evp endif set VMS55.ElderSettledState to 3 EnablePlayerControls else set FadeTimer to FadeTimer + GetSecondsPassed endif endif end
535HVDebugPasswordBlockScriptscn HVDebugPasswordBlockScript begin onAdd player ;Disabled 6/30 CES Set VDialogueHiddenValley.HVPassword to 1 end
536HVEvilBenefitFightScriptscn HVEvilBenefitFightScript ref LinkedRef ref Attacker1 ref Attacker2 ref Attacker3 ref Attacker4 ref Attacker5 ref Attacker6 float DaysSinceLastAttack begin OnTriggerEnter player ; If the player is strongly disliked at Hidden Valley, ornery Paladins may attack! if GetReputationThreshold RepNVBrotherhood 2 >= 2 ; Paladins only attack once you've been notified it may happen if HVMainLevelEntryTriggerREF.NotifiedEvilBenefit == 1 set DaysSinceLastAttack to GameDaysPassed - VDialogueHiddenValley.LastTimeAttacked ; Player only gets attacked every couple days if DaysSinceLastAttack > 2.0 ; Only a slight chance of getting attacked if GetRandomPercent < 25 set LinkedRef to GetLinkedRef ; Scale the number of attackers by your reputation if GetReputationThreshold RepNVBrotherhood 2 == 2 set Attacker1 to LinkedRef.PlaceAtMe HVEvilBenefitPaladinAttacker Attacker1.StartCombat player elseif GetReputationThreshold RepNVBrotherhood 2 == 3 set Attacker1 to LinkedRef.PlaceAtMe HVEvilBenefitPaladinAttacker set Attacker2 to LinkedRef.PlaceAtMe HVEvilBenefitPaladinAttacker Attacker1.StartCombat player Attacker2.StartCombat player elseif GetReputationThreshold RepNVBrotherhood 2 == 4 set Attacker1 to LinkedRef.PlaceAtMe HVEvilBenefitPaladinAttacker set Attacker2 to LinkedRef.PlaceAtMe HVEvilBenefitPaladinAttacker set Attacker3 to LinkedRef.PlaceAtMe HVEvilBenefitPaladinAttacker Attacker1.StartCombat player Attacker2.StartCombat player Attacker3.StartCombat player elseif GetReputationThreshold RepNVBrotherhood 2 == 5 set Attacker1 to LinkedRef.PlaceAtMe HVEvilBenefitPaladinAttacker set Attacker2 to LinkedRef.PlaceAtMe HVEvilBenefitPaladinAttacker set Attacker3 to LinkedRef.PlaceAtMe HVEvilBenefitPaladinAttacker set Attacker4 to LinkedRef.PlaceAtMe HVEvilBenefitPaladinAttacker Attacker1.StartCombat player Attacker2.StartCombat player Attacker3.StartCombat player Attacker4.StartCombat player elseif GetReputationThreshold RepNVBrotherhood 2 == 6 set Attacker1 to LinkedRef.PlaceAtMe HVEvilBenefitPaladinAttacker set Attacker2 to LinkedRef.PlaceAtMe HVEvilBenefitPaladinAttacker set Attacker3 to LinkedRef.PlaceAtMe HVEvilBenefitPaladinAttacker set Attacker4 to LinkedRef.PlaceAtMe HVEvilBenefitPaladinAttacker set Attacker5 to LinkedRef.PlaceAtMe HVEvilBenefitPaladinAttacker Attacker1.StartCombat player Attacker2.StartCombat player Attacker3.StartCombat player Attacker4.StartCombat player Attacker5.StartCombat player endif set VDialogueHiddenValley.LastTimeAttacked to GameDaysPassed endif endif endif endif end
537HVExplosiveCollarScriptscn HVExplosiveCollarScript float BombTimer ; Keeps track of how often to beep float Distance ; Keeps track of distance between collar and center int beepwarning ; Flag for whether beep warning has played int fastbeepwarning ; Flag for whether fast beep warning has played int boom ; So we only blow the player up once begin GameMode if player.GetinWorldSpace WastelandNV && boom == 0 Set Distance to GetDistance HiddenValleyCenterMarker ; Reset counters if you go back to a safe, non-beeping distance if Distance < 11000 Set beepwarning to 0 endif ; Intermittently play a warning beep when you go too far if Distance >= 16000 && Distance < 20000 if BombTimer > 2.0 if beepwarning == 0 ShowMessage HVBeepWarning Set beepwarning to 1 endif PlaySound WPNMineTick Set BombTimer to 0.0 endif ; Reset fastbeepwarning Set fastbeepwarning to 0 ; Warning beep gets faster as you go further out elseif Distance >= 20000 && Distance < 25000 if BombTimer > 1.0 if fastbeepwarning == 0 ShowMessage HVFastBeepWarning Set fastbeepwarning to 1 endif PlaySound WPNMineTick Set BombTimer to 0.0 endif ; Go too far, and BOOM! elseif Distance >= 25000 if boom == 0 ;player.PlaceAtMe VMS02FakeLargeExplosion player.PlaceAtMe FakeMediumExplosion player.kill player 1 ;player.kill player 3 ;player.kill player 5 ;player.kill player 7 ;player.kill player 10 set boom to 1 endif endif Set BombTimer to BombTimer + GetSecondsPassed endif end
538HVFastTravelDisableScriptscn HVFastTravelDisableScript begin OnTrigger player if GetStage VMS55 == 10 EnableFastTravel 0 endif end
539HVFilterPart01Scriptscn HVFilterPart01Script begin OnAdd player ; Set the var so Lorenzo and McNamara recognize you have the parts set VDialogueHiddenValley.ComponentsFound to VDialogueHiddenValley.ComponentsFound + 1 ; If the player is looking for the pressure controller, update the quest if GetObjectiveDisplayed VMS55 41 == 1 SetObjectiveCompleted VMS55 41 1 ; If this is the last component the player picked up, send them to Lorenzo if VDialogueHiddenValley.ComponentsFound == 3 SetObjectiveDisplayed VMS55 48 1 endif endif end
540HVFilterPart02Scriptscn HVFilterPart02Script begin OnAdd player ; Set the var so Lorenzo and McNamara recognize you have the parts set VDialogueHiddenValley.ComponentsFound to VDialogueHiddenValley.ComponentsFound + 1 ; If the player is looking for the pulse cleaner, update the quest if GetObjectiveDisplayed VMS55 42 == 1 SetObjectiveCompleted VMS55 42 1 ; If this is the last component the player picked up, send them to Lorenzo if VDialogueHiddenValley.ComponentsFound == 3 SetObjectiveDisplayed VMS55 48 1 endif endif end
541HVFilterPart03Scriptscn HVFilterPart03Script begin OnAdd player if player.GetItemCount HVFilterPart03 == 6 if VMS55.HEPAFiltersFound == 0 set VDialogueHiddenValley.ComponentsFound to VDialogueHiddenValley.ComponentsFound + 1 set VMS55.HEPAFiltersFound to 1 endif endif ; If the player is looking for the cartridge filters, and has six, update the quest if GetObjectiveDisplayed VMS55 43 == 1 if player.GetItemCount HVFilterPart03 == 6 SetObjectiveCompleted VMS55 43 1 ; If this is the last component the player picked up, send them to Lorenzo if VDialogueHiddenValley.ComponentsFound == 3 SetObjectiveDisplayed VMS55 48 1 endif endif endif end
542HVFireScriptscn HVFireScript ; This script makes sure the ranger's fire is only lit while he's there float Time begin GameMode if GetInSameCell player Set Time to GetCurrentTime if Time < 10.0 || Time > 18.0 HVRangerFire.enable HVRangerFireLight.enable else HVRangerFire.disable HVRangerFireLight.disable endif endif end
543HVGoodBenefitContainerScriptscn HVGoodBenefitContainerScript begin OnLoad if GetReputationThreshold RepNVBrotherhood 1 == 3 AddItem HVGoodBenefitAmmoList 1 elseif GetReputationThreshold RepNVBrotherhood 1 == 4 AddItem HVGoodBenefitAmmoList 2 elseif GetReputationThreshold RepNVBrotherhood 1 == 5 AddItem HVGoodBenefitAmmoList 3 elseif GetReputationThreshold RepNVBrotherhood 1 == 6 AddItem HVGoodBenefitAmmoList 4 endif end
544HVHardinScriptscn HVHardinScript int TalkedToPlayer ; 0 = Didn't talk ; 1 = Waiting to talk ; 2 = Talked to player about McNamara int InitialLinePlayed ; 0 = Hasn't played yet ; 1 = Player approached Elder, line said int PlayerListened ; 0 = Player hasn't heard Hardin's proposal ; 1 = Player heard int BecomeElderOnce ; 0 = Haven't become Elder yet ; 1 = Became Elder short bTalking; float DaySucceeded ; Tracks what day Hardin got his evidence float DaysSinceAssumingElder ; Tracks how many days passed since Hardin ; got everything he needed to oust McNamara ref rHardin ;------------------------------------------------------------------------------------------------------------------------------------------ begin OnActivate if IsActionRef player && bTalking == 0 if TalkedToPlayer < 2 && GetDead == 0 && player.IsSneaking == 0 StartConversation player HVHardinSoundsPlayerOut else Activate endif endif end ;------------------------------------------------------------------------------------------------------------------------------------------ begin OnDeath ; If Hardin is killed, hide the objectives to report things to him if GetQuestCompleted VMS55 == 0 SetObjectiveDisplayed VMS55 50 0 SetObjectiveDisplayed VMS55 51 0 SetObjectiveDisplayed VMS55 52 0 SetObjectiveDisplayed VMS55 53 0 SetObjectiveDisplayed VMS55 54 0 SetObjectiveDisplayed VMS55 55 0 SetObjectiveDisplayed VMS55 60 0 SetObjectiveDisplayed VMS55 61 0 endif ; Fail Hardin's quest to join the Brotherhood if GetQuestCompleted VMS55a == 0 SetStage VMS55a 200 endif end ;------------------------------------------------------------------------------------------------------------------------------------------ begin OnLoad Unequipitem ArmorPowerT51bHelmet 1 1 ; Makes actor unequip power armor helm, and not show a message Unequipitem WeapGatlingLaser 1 1 ; Makes actor unequip power armor helm, and not show a message ;set DaysSinceAssumingElder to GameDaysPassed - DaySucceeded ; If Hardin becomes Elder, give him the robe and stuff the next time he loads ;if BecomeElderOnce == 0 && DaysSinceAssumingElder >= 3.0 ; if GetObjectiveCompleted VMS55 50 == 1 ; RemoveItem ArmorPowerBrotherhoodOfSteelT51b 1 ; RemoveItem ArmorPowerT51bHelmet 1 ; AddItem OutfitElderMcNamara 1 ; EquipItem OutfitElderMcNamara 1 ; Change around the self-destruct keycards as well ; if NolanMcNamaraREF.GetItemCount HVSelfDestructKeyCard01 == 1 ; NolanMcNamaraREF.RemoveItem HVSelfDestructKeyCard01 1 ; EdgarHardinREF.AddItem HVSelfDestructKeyCard01 1 ; endif ; if EdgarHardinREF.GetItemCount HVSelfDestructKeyCard03 == 1 ; EdgarHardinREF.RemoveItem HVSelfDestructKeyCard03 1 ; RamosREF.AddItem HVSelfDestructKeyCard03 1 ; endif ; Update Hardin, McNamara, and Ramos's names ; EdgarHardinREF.SetActorFullName HVElderHardinMsg ; NolanMcNamaraREF.SetActorFullName HVKnightMcNamaraMsg ; RamosREF.SetActorFullName HVHeadPaladinRamosMsg ; set var so Hardin uses the Elder's desk (McNamara's taken care of in his own script) ; set VDialogueHiddenValley.CurrentElder to 1 ; NolanMcNamaraREF.evp ; evp ; set BecomeElderOnce to 1 ; endif ;endif end ;------------------------------------------------------------------------------------------------------------------------------------------ begin OnStartCombat EquipItem ArmorPowerT51bHelmet 0 1 ; Makes the actor equip the power armor helm when combat begins EquipItem WeapGatlingLaser 0 1 ; Makes the actor equip his gatling laser when combat begins end ;------------------------------------------------------------------------------------------------------------------------------------------ begin OnCombatEnd if GetDead == 0 Unequipitem ArmorPowerT51bHelmet 1 1 ; Makes actor unequip power armor helm, and not show a message endif end ;------------------------------------------------------------------------------------------------------------------------------------------ BEGIN OnStartCombat ; Fix for 27516 - fail Veronica's quest if the conversation is broken by combat. if (bTalking) SetStage VMS49 255; endif END
545HVHuntingVirusScriptscn HVHuntingVirusScript float VirusTimer int NumberInfected ; Used when determining which terminals are infected int ThirtySaid ; 0 = Not said, 1 = Said int TenSaid ; 0 = Not said, 1 = Said int NumberFixed ; Tracks how many infected terminals have been fixed int Host1Set ; These vars track whether we've already selected int Host2Set ; terminals to serve as hosts 1, 2, & 3 int Host3Set ref Host1Ref ; These vars serve as holders for the HostComputer# ref Host2Ref ; vars found in VDialogHiddenValley, since we can't ref Host3Ref ; call "something.something.GetIsReference" ;------------------------------------------------------------------------------------------------------------------------------------------ begin OnTrigger ; Check for Virus times and make Ibsen call out appropriate barks if VDialogueHiddenValley.HuntingVirus == 2 set VirusTimer to VirusTimer - GetSecondsPassed set NumberFixed to VDialogueHiddenValley.NumberLockedDown + VDialogueHiddenValley.NumberPartitioned if VirusTimer > 0.0 && NumberFixed == 3 ; Ibsen announces virus is gone HVScribeIbsenREF.Say HVIbsenVirusWiped set VDialogueHiddenValley.VirusWiped to 1 set VDialogueHiddenValley.HuntingVirus to 0 ; elseif VirusTimer < 30.0 && ThirtySaid == 0 ; Ibsen gives the 30 second warning ;HVScribeIbsenREF.Say HVIbsenThirtySeconds ;set ThirtySaid to 1 elseif VirusTimer < 10.0 && TenSaid == 0 ; Ibsen gives the 10 second warning HVScribeIbsenREF.Say HVIbsenTenSeconds set TenSaid to 1 elseif VirusTimer < 0.0 ; Time's up, reset everything HVScribeIbsenREF.Say HVIbsenVirusEnd set VDialogueHiddenValley.HuntingVirus to 0 set VDialogueHiddenValley.NumberLockedDown to 0 set VDialogueHiddenValley.Host1LockedDown to 0 set VDialogueHiddenValley.Host2LockedDown to 0 set VDialogueHiddenValley.Host3LockedDown to 0 set VDialogueHiddenValley.CurrentTerminalHost1 to 0 set VDialogueHiddenValley.CurrentTerminalHost2 to 0 set VDialogueHiddenValley.CurrentTerminalHost3 to 0 set NumberFixed to 0 set ThirtySaid to 0 set TenSaid to 0 set NumberInfected to 0 ; Make Ibsen resume sandboxing and scribes come back in HVScribeIbsenREF.evp HVMatrixScribe01REF.evp HVMatrixScribe02REF.evp endif endif end ;--------------------------------------------------------------------------------------------------------------------------------------- begin OnLoad ; Need to randomize the terminals the virus is on this time ; Update number of terminals with the number of partitioned terminals ;set HVHuntingVirusTriggerREF.NumberInfected to VDialogueHiddenValley.NumberPartitioned ; Set up references to old host terminals set Host1Ref to VDialogueHiddenValley.HostComputer1 set Host2Ref to VDialogueHiddenValley.HostComputer2 set Host3Ref to VDialogueHiddenValley.HostComputer3 ; Check to see if Terminal 1 is infected, and possibly partitioned if Host1Ref.GetIsReference HVDatastoreTerminal01REF && VDialogueHiddenValley.Host1Partitioned set Host1Set to 1 set HVHuntingVirusTriggerREF.NumberInfected to HVHuntingVirusTriggerREF.NumberInfected + 1 elseif Host2Ref.GetIsReference HVDatastoreTerminal01REF && VDialogueHiddenValley.Host2Partitioned set Host2Set to 1 set HVHuntingVirusTriggerREF.NumberInfected to HVHuntingVirusTriggerREF.NumberInfected + 1 elseif Host3Ref.GetIsReference HVDatastoreTerminal01REF && VDialogueHiddenValley.Host3Partitioned set Host3Set to 1 set HVHuntingVirusTriggerREF.NumberInfected to HVHuntingVirusTriggerREF.NumberInfected + 1 elseif GetRandomPercent < 10 && VDialogueHiddenValley.PowerCut == 0 ; This terminal has been chosen as a host, just don't use a partitioned terminal if VDialogueHiddenValley.Host1Partitioned == 0 set VDialogueHiddenValley.HostComputer1 to HVDatastoreTerminal01REF elseif VDialogueHiddenValley.Host2Partitioned == 0 set VDialogueHiddenValley.HostComputer2 to HVDatastoreTerminal01REF elseif VDialogueHiddenValley.Host2Partitioned == 0 set VDialogueHiddenValley.HostComputer3 to HVDatastoreTerminal01REF endif ; Worst case scenario is two partitioned terminals, so if this terminal passes ; its GetRandomPercent check, it's going to be a host, unlike the rest. set HVHuntingVirusTriggerREF.NumberInfected to HVHuntingVirusTriggerREF.NumberInfected + 1 endif ; Check to see if Terminal 2 is infected, but first check if it's partitioned if Host1Ref.GetIsReference HVDatastoreTerminal02REF && VDialogueHiddenValley.Host1Partitioned set Host1Set to 1 set HVHuntingVirusTriggerREF.NumberInfected to HVHuntingVirusTriggerREF.NumberInfected + 1 elseif Host2Ref.GetIsReference HVDatastoreTerminal02REF && VDialogueHiddenValley.Host2Partitioned set Host2Set to 1 set HVHuntingVirusTriggerREF.NumberInfected to HVHuntingVirusTriggerREF.NumberInfected + 1 elseif Host3Ref.GetIsReference HVDatastoreTerminal02REF && VDialogueHiddenValley.Host3Partitioned set Host3Set to 1 set HVHuntingVirusTriggerREF.NumberInfected to HVHuntingVirusTriggerREF.NumberInfected + 1 elseif HVHuntingVirusTriggerREF.NumberInfected < 3 ; Since this terminal was not partitioned, it now has a chance to be a new ; host. The reason we don't use a simple "else" at the end of this chain is ; because while NumberInfected might be less than three at this point, ; the remaining terminals could be partitioned ones further down the line. if GetRandomPercent < 10 && VDialogueHiddenValley.PowerCut == 0 if Host1Set == 0 && VDialogueHiddenValley.Host1Partitioned == 0 set VDialogueHiddenValley.HostComputer1 to HVDatastoreTerminal02REF set HVHuntingVirusTriggerREF.NumberInfected to HVHuntingVirusTriggerREF.NumberInfected + 1 elseif Host2Set == 0 && VDialogueHiddenValley.Host2Partitioned == 0 set VDialogueHiddenValley.HostComputer2 to HVDatastoreTerminal02REF set HVHuntingVirusTriggerREF.NumberInfected to HVHuntingVirusTriggerREF.NumberInfected + 1 elseif Host3Set == 0 && VDialogueHiddenValley.Host3Partitioned == 0 set VDialogueHiddenValley.HostComputer3 to HVDatastoreTerminal02REF set HVHuntingVirusTriggerREF.NumberInfected to HVHuntingVirusTriggerREF.NumberInfected + 1 endif endif endif ; Check to see if Terminal 3 is infected, but first check if it's partitioned if Host1Ref.GetIsReference HVDatastoreTerminal03REF && VDialogueHiddenValley.Host1Partitioned set Host1Set to 1 set HVHuntingVirusTriggerREF.NumberInfected to HVHuntingVirusTriggerREF.NumberInfected + 1 elseif Host2Ref.GetIsReference HVDatastoreTerminal03REF && VDialogueHiddenValley.Host2Partitioned set Host2Set to 1 set HVHuntingVirusTriggerREF.NumberInfected to HVHuntingVirusTriggerREF.NumberInfected + 1 elseif Host3Ref.GetIsReference HVDatastoreTerminal03REF && VDialogueHiddenValley.Host3Partitioned set Host3Set to 1 set HVHuntingVirusTriggerREF.NumberInfected to HVHuntingVirusTriggerREF.NumberInfected + 1 elseif HVHuntingVirusTriggerREF.NumberInfected < 3 if GetRandomPercent < 10 && VDialogueHiddenValley.PowerCut == 0 if Host1Set == 0 && VDialogueHiddenValley.Host1Partitioned == 0 set VDialogueHiddenValley.HostComputer1 to HVDatastoreTerminal03REF set HVHuntingVirusTriggerREF.NumberInfected to HVHuntingVirusTriggerREF.NumberInfected + 1 elseif Host2Set == 0 && VDialogueHiddenValley.Host2Partitioned == 0 set VDialogueHiddenValley.HostComputer2 to HVDatastoreTerminal03REF set HVHuntingVirusTriggerREF.NumberInfected to HVHuntingVirusTriggerREF.NumberInfected + 1 elseif Host3Set == 0 && VDialogueHiddenValley.Host3Partitioned == 0 set VDialogueHiddenValley.HostComputer3 to HVDatastoreTerminal03REF set HVHuntingVirusTriggerREF.NumberInfected to HVHuntingVirusTriggerREF.NumberInfected + 1 endif endif endif ; Check to see if Terminal 4 is infected if Host1Ref.GetIsReference HVDatastoreTerminal04REF && VDialogueHiddenValley.Host1Partitioned set Host1Set to 1 set HVHuntingVirusTriggerREF.NumberInfected to HVHuntingVirusTriggerREF.NumberInfected + 1 elseif Host2Ref.GetIsReference HVDatastoreTerminal04REF && VDialogueHiddenValley.Host2Partitioned set Host2Set to 1 set HVHuntingVirusTriggerREF.NumberInfected to HVHuntingVirusTriggerREF.NumberInfected + 1 elseif Host3Ref.GetIsReference HVDatastoreTerminal04REF && VDialogueHiddenValley.Host3Partitioned set Host3Set to 1 set HVHuntingVirusTriggerREF.NumberInfected to HVHuntingVirusTriggerREF.NumberInfected + 1 elseif HVHuntingVirusTriggerREF.NumberInfected < 3 if GetRandomPercent < 33 && VDialogueHiddenValley.PowerCut == 0 if Host1Set == 0 && VDialogueHiddenValley.Host1Partitioned == 0 set VDialogueHiddenValley.HostComputer1 to HVDatastoreTerminal04REF set HVHuntingVirusTriggerREF.NumberInfected to HVHuntingVirusTriggerREF.NumberInfected + 1 elseif Host2Set == 0 && VDialogueHiddenValley.Host2Partitioned == 0 set VDialogueHiddenValley.HostComputer2 to HVDatastoreTerminal04REF set HVHuntingVirusTriggerREF.NumberInfected to HVHuntingVirusTriggerREF.NumberInfected + 1 elseif Host3Set == 0 && VDialogueHiddenValley.Host3Partitioned == 0 set VDialogueHiddenValley.HostComputer3 to HVDatastoreTerminal04REF set HVHuntingVirusTriggerREF.NumberInfected to HVHuntingVirusTriggerREF.NumberInfected + 1 endif endif endif ; Check to see if Terminal 5 is infected if Host1Ref.GetIsReference HVDatastoreTerminal05REF && VDialogueHiddenValley.Host1Partitioned set Host1Set to 1 set HVHuntingVirusTriggerREF.NumberInfected to HVHuntingVirusTriggerREF.NumberInfected + 1 elseif Host2Ref.GetIsReference HVDatastoreTerminal05REF && VDialogueHiddenValley.Host2Partitioned set Host2Set to 1 set HVHuntingVirusTriggerREF.NumberInfected to HVHuntingVirusTriggerREF.NumberInfected + 1 elseif Host3Ref.GetIsReference HVDatastoreTerminal05REF && VDialogueHiddenValley.Host3Partitioned set Host3Set to 1 set HVHuntingVirusTriggerREF.NumberInfected to HVHuntingVirusTriggerREF.NumberInfected + 1 elseif HVHuntingVirusTriggerREF.NumberInfected < 3 if GetRandomPercent < 33 && VDialogueHiddenValley.PowerCut == 0 if Host1Set == 0 && VDialogueHiddenValley.Host1Partitioned == 0 set VDialogueHiddenValley.HostComputer1 to HVDatastoreTerminal05REF set HVHuntingVirusTriggerREF.NumberInfected to HVHuntingVirusTriggerREF.NumberInfected + 1 elseif Host2Set == 0 && VDialogueHiddenValley.Host2Partitioned == 0 set VDialogueHiddenValley.HostComputer2 to HVDatastoreTerminal05REF set HVHuntingVirusTriggerREF.NumberInfected to HVHuntingVirusTriggerREF.NumberInfected + 1 elseif Host3Set == 0 && VDialogueHiddenValley.Host3Partitioned == 0 set VDialogueHiddenValley.HostComputer3 to HVDatastoreTerminal05REF set HVHuntingVirusTriggerREF.NumberInfected to HVHuntingVirusTriggerREF.NumberInfected + 1 endif endif endif ; Check to see if Terminal 6 is infected if Host1Ref.GetIsReference HVDatastoreTerminal06REF && VDialogueHiddenValley.Host1Partitioned set Host1Set to 1 set HVHuntingVirusTriggerREF.NumberInfected to HVHuntingVirusTriggerREF.NumberInfected + 1 elseif Host2Ref.GetIsReference HVDatastoreTerminal06REF && VDialogueHiddenValley.Host2Partitioned set Host2Set to 1 set HVHuntingVirusTriggerREF.NumberInfected to HVHuntingVirusTriggerREF.NumberInfected + 1 elseif Host3Ref.GetIsReference HVDatastoreTerminal06REF && VDialogueHiddenValley.Host3Partitioned set Host3Set to 1 set HVHuntingVirusTriggerREF.NumberInfected to HVHuntingVirusTriggerREF.NumberInfected + 1 elseif HVHuntingVirusTriggerREF.NumberInfected < 3 if GetRandomPercent < 33 && VDialogueHiddenValley.PowerCut == 0 if Host1Set == 0 && VDialogueHiddenValley.Host1Partitioned == 0 set VDialogueHiddenValley.HostComputer1 to HVDatastoreTerminal06REF set HVHuntingVirusTriggerREF.NumberInfected to HVHuntingVirusTriggerREF.NumberInfected + 1 elseif Host2Set == 0 && VDialogueHiddenValley.Host2Partitioned == 0 set VDialogueHiddenValley.HostComputer2 to HVDatastoreTerminal06REF set HVHuntingVirusTriggerREF.NumberInfected to HVHuntingVirusTriggerREF.NumberInfected + 1 elseif Host3Set == 0 && VDialogueHiddenValley.Host3Partitioned == 0 set VDialogueHiddenValley.HostComputer3 to HVDatastoreTerminal06REF set HVHuntingVirusTriggerREF.NumberInfected to HVHuntingVirusTriggerREF.NumberInfected + 1 endif endif endif ; Check to see if Terminal 7 is infected if Host1Ref.GetIsReference HVDatastoreTerminal07REF && VDialogueHiddenValley.Host1Partitioned set Host1Set to 1 set HVHuntingVirusTriggerREF.NumberInfected to HVHuntingVirusTriggerREF.NumberInfected + 1 elseif Host2Ref.GetIsReference HVDatastoreTerminal07REF && VDialogueHiddenValley.Host2Partitioned set Host2Set to 1 set HVHuntingVirusTriggerREF.NumberInfected to HVHuntingVirusTriggerREF.NumberInfected + 1 elseif Host3Ref.GetIsReference HVDatastoreTerminal07REF && VDialogueHiddenValley.Host3Partitioned set Host3Set to 1 set HVHuntingVirusTriggerREF.NumberInfected to HVHuntingVirusTriggerREF.NumberInfected + 1 elseif HVHuntingVirusTriggerREF.NumberInfected < 3 if GetRandomPercent < 33 && VDialogueHiddenValley.PowerCut == 0 if Host1Set == 0 && VDialogueHiddenValley.Host1Partitioned == 0 set VDialogueHiddenValley.HostComputer1 to HVDatastoreTerminal07REF set HVHuntingVirusTriggerREF.NumberInfected to HVHuntingVirusTriggerREF.NumberInfected + 1 elseif Host2Set == 0 && VDialogueHiddenValley.Host2Partitioned == 0 set VDialogueHiddenValley.HostComputer2 to HVDatastoreTerminal07REF set HVHuntingVirusTriggerREF.NumberInfected to HVHuntingVirusTriggerREF.NumberInfected + 1 elseif Host3Set == 0 && VDialogueHiddenValley.Host3Partitioned == 0 set VDialogueHiddenValley.HostComputer3 to HVDatastoreTerminal07REF set HVHuntingVirusTriggerREF.NumberInfected to HVHuntingVirusTriggerREF.NumberInfected + 1 endif endif endif ; Check to see if Terminal 8 is infected if Host1Ref.GetIsReference HVDatastoreTerminal08REF && VDialogueHiddenValley.Host1Partitioned set Host1Set to 1 set HVHuntingVirusTriggerREF.NumberInfected to HVHuntingVirusTriggerREF.NumberInfected + 1 elseif Host2Ref.GetIsReference HVDatastoreTerminal08REF && VDialogueHiddenValley.Host2Partitioned set Host2Set to 1 set HVHuntingVirusTriggerREF.NumberInfected to HVHuntingVirusTriggerREF.NumberInfected + 1 elseif Host3Ref.GetIsReference HVDatastoreTerminal08REF && VDialogueHiddenValley.Host3Partitioned set Host3Set to 1 set HVHuntingVirusTriggerREF.NumberInfected to HVHuntingVirusTriggerREF.NumberInfected + 1 elseif HVHuntingVirusTriggerREF.NumberInfected < 3 if GetRandomPercent < 33 && VDialogueHiddenValley.PowerCut == 0 if Host1Set == 0 && VDialogueHiddenValley.Host1Partitioned == 0 set VDialogueHiddenValley.HostComputer1 to HVDatastoreTerminal08REF set HVHuntingVirusTriggerREF.NumberInfected to HVHuntingVirusTriggerREF.NumberInfected + 1 elseif Host2Set == 0 && VDialogueHiddenValley.Host2Partitioned == 0 set VDialogueHiddenValley.HostComputer2 to HVDatastoreTerminal08REF set HVHuntingVirusTriggerREF.NumberInfected to HVHuntingVirusTriggerREF.NumberInfected + 1 elseif Host3Set == 0 && VDialogueHiddenValley.Host3Partitioned == 0 set VDialogueHiddenValley.HostComputer3 to HVDatastoreTerminal08REF set HVHuntingVirusTriggerREF.NumberInfected to HVHuntingVirusTriggerREF.NumberInfected + 1 endif endif endif ; Check to see if Terminal 9 is infected if Host1Ref.GetIsReference HVDatastoreTerminal09REF && VDialogueHiddenValley.Host1Partitioned set Host1Set to 1 set HVHuntingVirusTriggerREF.NumberInfected to HVHuntingVirusTriggerREF.NumberInfected + 1 elseif Host2Ref.GetIsReference HVDatastoreTerminal09REF && VDialogueHiddenValley.Host2Partitioned set Host2Set to 1 set HVHuntingVirusTriggerREF.NumberInfected to HVHuntingVirusTriggerREF.NumberInfected + 1 elseif Host3Ref.GetIsReference HVDatastoreTerminal09REF && VDialogueHiddenValley.Host3Partitioned set Host3Set to 1 set HVHuntingVirusTriggerREF.NumberInfected to HVHuntingVirusTriggerREF.NumberInfected + 1 elseif HVHuntingVirusTriggerREF.NumberInfected < 3 if GetRandomPercent < 33 && VDialogueHiddenValley.PowerCut == 0 if Host1Set == 0 && VDialogueHiddenValley.Host1Partitioned == 0 set VDialogueHiddenValley.HostComputer1 to HVDatastoreTerminal09REF set HVHuntingVirusTriggerREF.NumberInfected to HVHuntingVirusTriggerREF.NumberInfected + 1 elseif Host2Set == 0 && VDialogueHiddenValley.Host2Partitioned == 0 set VDialogueHiddenValley.HostComputer2 to HVDatastoreTerminal09REF set HVHuntingVirusTriggerREF.NumberInfected to HVHuntingVirusTriggerREF.NumberInfected + 1 elseif Host3Set == 0 && VDialogueHiddenValley.Host3Partitioned == 0 set VDialogueHiddenValley.HostComputer3 to HVDatastoreTerminal09REF set HVHuntingVirusTriggerREF.NumberInfected to HVHuntingVirusTriggerREF.NumberInfected + 1 endif endif endif ; Check to see if Terminal 10 is infected if Host1Ref.GetIsReference HVDatastoreTerminal10REF && VDialogueHiddenValley.Host1Partitioned set Host1Set to 1 set HVHuntingVirusTriggerREF.NumberInfected to HVHuntingVirusTriggerREF.NumberInfected + 1 elseif Host2Ref.GetIsReference HVDatastoreTerminal10REF && VDialogueHiddenValley.Host2Partitioned set Host2Set to 1 set HVHuntingVirusTriggerREF.NumberInfected to HVHuntingVirusTriggerREF.NumberInfected + 1 elseif Host3Ref.GetIsReference HVDatastoreTerminal10REF && VDialogueHiddenValley.Host3Partitioned set Host3Set to 1 set HVHuntingVirusTriggerREF.NumberInfected to HVHuntingVirusTriggerREF.NumberInfected + 1 elseif HVHuntingVirusTriggerREF.NumberInfected < 3 if GetRandomPercent < 33 && VDialogueHiddenValley.PowerCut == 0 if Host1Set == 0 && VDialogueHiddenValley.Host1Partitioned == 0 set VDialogueHiddenValley.HostComputer1 to HVDatastoreTerminal10REF set HVHuntingVirusTriggerREF.NumberInfected to HVHuntingVirusTriggerREF.NumberInfected + 1 elseif Host2Set == 0 && VDialogueHiddenValley.Host2Partitioned == 0 set VDialogueHiddenValley.HostComputer2 to HVDatastoreTerminal10REF set HVHuntingVirusTriggerREF.NumberInfected to HVHuntingVirusTriggerREF.NumberInfected + 1 elseif Host3Set == 0 && VDialogueHiddenValley.Host3Partitioned == 0 set VDialogueHiddenValley.HostComputer3 to HVDatastoreTerminal10REF set HVHuntingVirusTriggerREF.NumberInfected to HVHuntingVirusTriggerREF.NumberInfected + 1 endif endif endif ; Check to see if Terminal 11 is infected if Host1Ref.GetIsReference HVDatastoreTerminal11REF && VDialogueHiddenValley.Host1Partitioned set Host1Set to 1 set HVHuntingVirusTriggerREF.NumberInfected to HVHuntingVirusTriggerREF.NumberInfected + 1 elseif Host2Ref.GetIsReference HVDatastoreTerminal11REF && VDialogueHiddenValley.Host2Partitioned set Host2Set to 1 set HVHuntingVirusTriggerREF.NumberInfected to HVHuntingVirusTriggerREF.NumberInfected + 1 elseif Host3Ref.GetIsReference HVDatastoreTerminal11REF && VDialogueHiddenValley.Host3Partitioned set Host3Set to 1 set HVHuntingVirusTriggerREF.NumberInfected to HVHuntingVirusTriggerREF.NumberInfected + 1 elseif HVHuntingVirusTriggerREF.NumberInfected < 3 if GetRandomPercent < 33 && VDialogueHiddenValley.PowerCut == 0 if Host1Set == 0 && VDialogueHiddenValley.Host1Partitioned == 0 set VDialogueHiddenValley.HostComputer1 to HVDatastoreTerminal11REF set HVHuntingVirusTriggerREF.NumberInfected to HVHuntingVirusTriggerREF.NumberInfected + 1 elseif Host2Set == 0 && VDialogueHiddenValley.Host2Partitioned == 0 set VDialogueHiddenValley.HostComputer2 to HVDatastoreTerminal11REF set HVHuntingVirusTriggerREF.NumberInfected to HVHuntingVirusTriggerREF.NumberInfected + 1 elseif Host3Set == 0 && VDialogueHiddenValley.Host3Partitioned == 0 set VDialogueHiddenValley.HostComputer3 to HVDatastoreTerminal11REF set HVHuntingVirusTriggerREF.NumberInfected to HVHuntingVirusTriggerREF.NumberInfected + 1 endif endif endif ; Check to see if Terminal 12 is infected if Host1Ref.GetIsReference HVDatastoreTerminal12REF && VDialogueHiddenValley.Host1Partitioned set Host1Set to 1 set HVHuntingVirusTriggerREF.NumberInfected to HVHuntingVirusTriggerREF.NumberInfected + 1 elseif Host2Ref.GetIsReference HVDatastoreTerminal12REF && VDialogueHiddenValley.Host2Partitioned set Host2Set to 1 set HVHuntingVirusTriggerREF.NumberInfected to HVHuntingVirusTriggerREF.NumberInfected + 1 elseif Host3Ref.GetIsReference HVDatastoreTerminal12REF && VDialogueHiddenValley.Host3Partitioned set Host3Set to 1 set HVHuntingVirusTriggerREF.NumberInfected to HVHuntingVirusTriggerREF.NumberInfected + 1 elseif HVHuntingVirusTriggerREF.NumberInfected == 0 ; By this point, there's only three left, so we start mandatorily infecting systems if Host1Set == 0 && VDialogueHiddenValley.Host1Partitioned == 0 set VDialogueHiddenValley.HostComputer1 to HVDatastoreTerminal12REF set HVHuntingVirusTriggerREF.NumberInfected to HVHuntingVirusTriggerREF.NumberInfected + 1 elseif Host2Set == 0 && VDialogueHiddenValley.Host2Partitioned == 0 set VDialogueHiddenValley.HostComputer2 to HVDatastoreTerminal12REF set HVHuntingVirusTriggerREF.NumberInfected to HVHuntingVirusTriggerREF.NumberInfected + 1 elseif Host3Set == 0 && VDialogueHiddenValley.Host3Partitioned == 0 set VDialogueHiddenValley.HostComputer3 to HVDatastoreTerminal12REF set HVHuntingVirusTriggerREF.NumberInfected to HVHuntingVirusTriggerREF.NumberInfected + 1 endif elseif HVHuntingVirusTriggerREF.NumberInfected < 3 if GetRandomPercent < 33 && VDialogueHiddenValley.PowerCut == 0 if Host1Set == 0 && VDialogueHiddenValley.Host1Partitioned == 0 set VDialogueHiddenValley.HostComputer1 to HVDatastoreTerminal12REF set HVHuntingVirusTriggerREF.NumberInfected to HVHuntingVirusTriggerREF.NumberInfected + 1 elseif Host2Set == 0 && VDialogueHiddenValley.Host2Partitioned == 0 set VDialogueHiddenValley.HostComputer2 to HVDatastoreTerminal12REF set HVHuntingVirusTriggerREF.NumberInfected to HVHuntingVirusTriggerREF.NumberInfected + 1 elseif Host3Set == 0 && VDialogueHiddenValley.Host3Partitioned == 0 set VDialogueHiddenValley.HostComputer3 to HVDatastoreTerminal12REF set HVHuntingVirusTriggerREF.NumberInfected to HVHuntingVirusTriggerREF.NumberInfected + 1 endif endif endif ; Check to see if Terminal 13 is infected if Host1Ref.GetIsReference HVDatastoreTerminal13REF && VDialogueHiddenValley.Host1Partitioned set Host1Set to 1 set HVHuntingVirusTriggerREF.NumberInfected to HVHuntingVirusTriggerREF.NumberInfected + 1 elseif Host2Ref.GetIsReference HVDatastoreTerminal13REF && VDialogueHiddenValley.Host2Partitioned set Host2Set to 1 set HVHuntingVirusTriggerREF.NumberInfected to HVHuntingVirusTriggerREF.NumberInfected + 1 elseif Host3Ref.GetIsReference HVDatastoreTerminal13REF && VDialogueHiddenValley.Host3Partitioned set Host3Set to 1 set HVHuntingVirusTriggerREF.NumberInfected to HVHuntingVirusTriggerREF.NumberInfected + 1 elseif HVHuntingVirusTriggerREF.NumberInfected < 3 ; Second to last, so if only one host has been assigned, auto-assign this one if HVHuntingVirusTriggerREF.NumberInfected == 1 if Host1Set == 0 && VDialogueHiddenValley.Host1Partitioned == 0 set VDialogueHiddenValley.HostComputer1 to HVDatastoreTerminal13REF set HVHuntingVirusTriggerREF.NumberInfected to HVHuntingVirusTriggerREF.NumberInfected + 1 elseif Host2Set == 0 && VDialogueHiddenValley.Host2Partitioned == 0 set VDialogueHiddenValley.HostComputer2 to HVDatastoreTerminal13REF set HVHuntingVirusTriggerREF.NumberInfected to HVHuntingVirusTriggerREF.NumberInfected + 1 elseif Host3Set == 0 && VDialogueHiddenValley.Host3Partitioned == 0 set VDialogueHiddenValley.HostComputer3 to HVDatastoreTerminal13REF set HVHuntingVirusTriggerREF.NumberInfected to HVHuntingVirusTriggerREF.NumberInfected + 1 endif elseif GetRandomPercent < 33 if Host1Set == 0 && VDialogueHiddenValley.Host1Partitioned == 0 set VDialogueHiddenValley.HostComputer1 to HVDatastoreTerminal13REF set HVHuntingVirusTriggerREF.NumberInfected to HVHuntingVirusTriggerREF.NumberInfected + 1 elseif Host2Set == 0 && VDialogueHiddenValley.Host2Partitioned == 0 set VDialogueHiddenValley.HostComputer2 to HVDatastoreTerminal13REF set HVHuntingVirusTriggerREF.NumberInfected to HVHuntingVirusTriggerREF.NumberInfected + 1 elseif Host3Set == 0 && VDialogueHiddenValley.Host3Partitioned == 0 set VDialogueHiddenValley.HostComputer3 to HVDatastoreTerminal13REF set HVHuntingVirusTriggerREF.NumberInfected to HVHuntingVirusTriggerREF.NumberInfected + 1 endif endif endif ; Check to see if Terminal 14 is infected if Host1Ref.GetIsReference HVDatastoreTerminal14REF && VDialogueHiddenValley.Host1Partitioned set Host1Set to 1 set HVHuntingVirusTriggerREF.NumberInfected to HVHuntingVirusTriggerREF.NumberInfected + 1 elseif Host2Ref.GetIsReference HVDatastoreTerminal14REF && VDialogueHiddenValley.Host2Partitioned set Host2Set to 1 set HVHuntingVirusTriggerREF.NumberInfected to HVHuntingVirusTriggerREF.NumberInfected + 1 elseif Host3Ref.GetIsReference HVDatastoreTerminal14REF && VDialogueHiddenValley.Host3Partitioned set Host3Set to 1 set HVHuntingVirusTriggerREF.NumberInfected to HVHuntingVirusTriggerREF.NumberInfected + 1 elseif HVHuntingVirusTriggerREF.NumberInfected < 3 ; Last one, so if there's any left, automatically assign it if Host1Set == 0 && VDialogueHiddenValley.Host1Partitioned == 0 set VDialogueHiddenValley.HostComputer1 to HVDatastoreTerminal14REF set HVHuntingVirusTriggerREF.NumberInfected to HVHuntingVirusTriggerREF.NumberInfected + 1 elseif Host2Set == 0 && VDialogueHiddenValley.Host2Partitioned == 0 set VDialogueHiddenValley.HostComputer2 to HVDatastoreTerminal14REF set HVHuntingVirusTriggerREF.NumberInfected to HVHuntingVirusTriggerREF.NumberInfected + 1 elseif Host3Set == 0 && VDialogueHiddenValley.Host3Partitioned == 0 set VDialogueHiddenValley.HostComputer3 to HVDatastoreTerminal14REF set HVHuntingVirusTriggerREF.NumberInfected to HVHuntingVirusTriggerREF.NumberInfected + 1 endif endif end
546HVIntercomUselessScriptscn HVIntercomUselessScript ref ThisIntercom begin onActivate SetTalkingActivatorActor RamosREF set ThisIntercom to GetSelf if ThisIntercom.GetIsReference HVBunkerIntercom2 == 1 Set VDialogueHiddenValley.BunkerIntercomUsed to 2 elseif ThisIntercom.GetIsReference HVBunkerIntercom3 == 1 Set VDialogueHiddenValley.BunkerIntercomUsed to 3 elseif ThisIntercom.GetIsReference HVBunkerIntercom4 == 1 Set VDialogueHiddenValley.BunkerIntercomUsed to 4 endif Activate end
547HVKnightEDEScriptscn HVKnightEDEScript ;int iDisabler begin OnDeath if GetObjectiveCompleted VMS55 48 == 0 SetStage VMS55 200 endif if vDialogueEDE.iPlayRadio == 1 && HVBunkerExplosionTriggerREF.ExplosionState == 0 && GetQuestCompleted vDialogueEDE == 0 showmessage KnightLorenzoDead endif if GetObjectiveDisplayed vDialogueEDE 25 == 0 setobjectivedisplayed vDialogueEDE 20 0 setobjectivedisplayed vDialogueEDE 15 0 endif end ;begin GameMode ; if iDisabler == 1 ; set iDisabler to 2 ; disable ; endif ;end
548HVLevel1To2DoorScriptscn HVLevel1To2DoorScript
549HVLevel1ToBunkerDoorScriptscn HVLevel1ToBunkerDoorScript ; This used to be used for Hardin's quest, but due to changes it's no longer needed. ; Keeping in case this door needs some scripting.
550HVLilyFollowAgainScriptscn HVLilyFollowAgainScript begin OnTrigger player ; If Lily is in the party and waiting as a result of the player going downstairs, ; make her begin following again if VNPCFollowers.bLilyHired == 1 && VDialogueHiddenValley.LilyWaiting == 1 ; Make Lily follow again set LilyREF.Waiting to 0 LilyREF.evp endif end
551HVLilyWaitScriptscn HVLilyWaitScript begin OnTrigger player ; If Lily is in the party, make her wait so she doesn't go down to the lower level if VNPCFollowers.bLilyHired == 1 ; Only do this if Lily isn't already waiting if LilyREF.Waiting == 0 ; Set flag so we know Lily is waiting because of the trigger set VDialogueHiddenValley.LilyWaiting to 1 set LilyREF.Waiting to 1 LilyREF.evp set VNPCFollowers.fFollowerWaitingLeaveDay to (GameDaysPassed + FollowerWaitTime) endif endif end
552HVMainLevelEntryTriggerScriptscn HVMainLevelEntryTriggerScript ; This script runs once when the player first enters the bunker under escort and also ; when the first paladin you meet comes back through it after handing you off to Ramos. ; It locks the door behind you when you're escorted in and deletes the paladin. ; Update 5.25.10 JF - Adding script to trigger conversation with Faction Benefits guy int DoOnce int DoDeleteOnce int NotifiedGoodBenefit ; 0 = Player not told yet, 1 = Player told int NotifiedNeutralBenefit ; These should be reset whenever the player int NotifiedEvilBenefit ; switches axes begin onLoad if VDialogueHiddenValley.HVState == 1 && DoOnce == 0 HVEntryDoor.lock 255 set DoOnce to 1 endif if GetObjectiveDisplayed VMS55 9 == 1 && GetObjectiveCompleted VMS55 9 == 0 NolanMcNamaraREF.MoveTo RamosWaitingMarker RamosREF.MoveTo HVOtherWaitingMarker NolanMcNamaraREF.evp RamosREF.evp HVEntranceGuard1.enable HVEntranceGuard2.enable endif end begin onTriggerEnter PasswordPaladin3 if VDialogueHiddenValley.HVState == 2 PasswordPaladin3.disable 1 PasswordPaladin3.MarkForDelete endif end begin OnTriggerEnter player if DoDeleteOnce == 0 PasswordPaladin1.disable PasswordPaladin2.disable BunkerGuard1.disable BunkerGuard2.disable PasswordPaladin1.MarkForDelete PasswordPaladin2.MarkForDelete BunkerGuard1.MarkForDelete BunkerGuard2.MarkForDelete set DoDeleteOnce to 1 endif ; Faction benefits ; Neutral if GetReputationThreshold RepNVBrotherhood 0 > 2 if NotifiedNeutralBenefit == 0 HVNeutralBenefitKnightREF.enable HVNeutralBenefitKnightREF.evp ; Clear other notifications so they'll fire again if the player slides back set NotifiedGoodBenefit to 0 set NotifiedEvilBenefit to 0 ; Hide the good container in case you slide from good to neutral HVGoodBenefitContainerREF.disable 0 endif ; Good elseif GetReputationThreshold RepNVBrotherhood 1 > 2 if NotifiedGoodBenefit == 0 HVGoodBenefitScribeREF.enable HVGoodBenefitContainerREF.enable HVGoodBenefitScribeREF.evp ; Clear other notifications so they'll fire again if the player slides back set NotifiedNeutralBenefit to 0 set NotifiedEvilBenefit to 0 endif ; Evil elseif GetReputationThreshold RepNVBrotherhood 2 > 2 if NotifiedEvilBenefit == 0 HVEvilBenefitPaladinREF.enable HVEvilBenefitPaladinREF.evp ; Clear other notifications so they'll fire again if the player slides back set NotifiedGoodBenefit to 0 set NotifiedNeutralBenefit to 0 ; Hide the good container in case you slide from good to evil (possible?) HVGoodBenefitContainerREF.disable 0 endif endif end
553HVMcNamaraHardinConvoScriptscn HVMcNamaraHardinConvoScript ; Adding code for Veronica's quest as well - EPF 3/31/10 int DoOnce ; 0 = Haven't started convo, 1 = Convo done int OutWithRamos ; 0 = Staying put, 1 = Ramos escorting you out float OutWithRamosTimer ; Helps time the fade out before jumping int HardinTraining ; 0 = Not training ; 1 = Training now ; 2 = Training done int McNamaraTraining ; 0 = Not training ; 1 = Training now ; 2 = Training done int TrainingMoveOnce ; 0 = Haven't moved ; 1 = Moved float TrainingTimer ;--------------------------------------------------------------------------------------------------------------------------------- begin onTriggerEnter player ; if Veronica is returning to Hidden Valley with her quest for the first time. if (GetObjectiveDisplayed VMS49 10 == 1 && GetObjectiveCompleted VMS49 10 == 0 && VNPCFollowers.bVeronicaHired && VeronicaREF.Waiting == 0) set VMS49.bConfrontElder to 1; if(VeronicaREF.GetDistance CommandRoomMarker > 1000 || VeronicaREF.GetInCell HiddenValley02 == 0) VeronicaREF.MoveTo VMS49VeronicaWarpMarkerREF; endif VeronicaREF.ResetAI; if (VDialogueHiddenValley.CurrentElder == 0) Set NolanMcNamaraREF.bTalking to 1; else Set EdgarHardinREF.bTalking to 1; endif set VeronicaREF.bTalking to 1; Set VGenericTimer.fTimer to 20; Set VGenericTimer.nEvent to 11; StartQuest VGenericTimer; ; if any of the 3 return to the elder with technology quest objectives are displayed and incomplete. elseif ((GetObjectiveDisplayed VMS49 80 == 1 || GetObjectiveDisplayed VMS49 110 == 1 || GetObjectiveDisplayed VMS49 140 == 1) && VNPCFollowers.bVeronicaHired && VeronicaREF.Waiting == 0) if (GetObjectiveCompleted VMS49 80 == 0 && GetObjectiveCompleted VMS49 110 == 0 && GetObjectiveCompleted VMS49 140 == 0) if(VeronicaREF.GetDistance CommandRoomMarker > 1000 || VeronicaREF.GetInCell HiddenValley02 == 0) VeronicaREF.MoveTo VMS49VeronicaWarpMarkerREF; endif set VMS49.bConfrontElder to 1; VeronicaREF.ResetAI; if (VDialogueHiddenValley.CurrentElder == 0) Set NolanMcNamaraREF.bTalking to 1; else Set EdgarHardinREF.bTalking to 1; endif set VeronicaREF.bTalking to 1; Set VGenericTimer.fTimer to 20; Set VGenericTimer.nEvent to 12; StartQuest VGenericTimer; endif endif end ;--------------------------------------------------------------------------------------------------------------------------------- begin GameMode if OutWithRamos if OutWithRamosTimer > 1.0 player.MoveTo HVPlayerPushMarker Set OutWithRamos to 0 endif Set OutWithRamosTimer to OutWithRamosTimer + GetSecondsPassed endif if HardinTraining == 1 if TrainingTimer > 4.0 EdgarHardinREF.AddScriptPackage HVHardinPowerArmorTrainingPackage set HardinTraining to 2 elseif TrainingTimer > 2.0 if TrainingMoveOnce == 0 ; Move the player and Hardin into position player.MoveTo PowerArmorTrainingStudentMarker ;player.SetRestrained 1 EdgarHardinREF.MoveTo PowerArmorTrainingTeacherMarker ;EdgarHardinREF.SetRestrained 1 set TrainingMoveOnce to 1 else set TrainingTimer to TrainingTimer + GetSecondsPassed endif else set TrainingTimer to TrainingTimer + GetSecondsPassed endif endif if McNamaraTraining == 1 if TrainingTimer > 4.0 NolanMcNamaraREF.AddScriptPackage HVMcNamaraPowerArmorTrainingPackage set McNamaraTraining to 2 elseif TrainingTimer > 2.0 if TrainingMoveOnce == 0 ; Move the player and Hardin into position player.MoveTo PowerArmorTrainingStudentMarker NolanMcNamaraREF.MoveTo PowerArmorTrainingTeacherMarker set TrainingMoveOnce to 1 else set TrainingTimer to TrainingTimer + GetSecondsPassed endif else set TrainingTimer to TrainingTimer + GetSecondsPassed endif endif end
554HVMissionDisc01Scriptscn HVMissionDisc01Script begin OnAdd player ; Add note to inventory player.AddNote HVPatrolNote01 showMap HiddenValleyMarkerREF ; Update counter to show that a patrol has been found set VDialogueHiddenValley.PatrolsFound to VDialogueHiddenValley.PatrolsFound + 1 ; If the player was sent looking for these by McNamara update the quest if GetObjectiveDisplayed VMS55 20 == 1 && GetObjectiveCompleted VMS55 20 == 0 SetObjectiveCompleted VMS55 20 1 ; If the player has found the other two patrols, send them back to McNamara if GetObjectiveCompleted VMS55 21 == 1 && GetObjectiveCompleted VMS55 22 == 1 SetObjectiveDisplayed VMS55 29 1 endif endif if GetObjectiveDisplayed vDialogueEDE 12 == 1 setobjectivecompleted vDialogueEDE 12 1 setobjectivedisplayed vDialogueEDE 13 1 endif ; Remove the misc item from the player's inventory RemoveMe end
555HVMissionDisc02Scriptscn HVMissionDisc02Script begin OnAdd player ; Add note to inventory player.AddNote HVPatrolNote02 showMap HiddenValleyMarkerREF ; Update counter to show that a patrol has been found set VDialogueHiddenValley.PatrolsFound to VDialogueHiddenValley.PatrolsFound + 1 ; If the player was sent looking for these by McNamara update the quest if GetObjectiveDisplayed VMS55 21 == 1 && GetObjectiveCompleted VMS55 21 == 0 SetObjectiveCompleted VMS55 21 1 ; If the player has found the other two patrols, send them back to McNamara if GetObjectiveCompleted VMS55 20 == 1 && GetObjectiveCompleted VMS55 22 == 1 SetObjectiveDisplayed VMS55 29 1 endif endif ; Remove the misc item from the player's inventory RemoveMe end
556HVMissionDisc03Scriptscn HVMissionDisc03Script begin OnAdd player ; Add note to inventory player.AddNote HVPatrolNote03 showMap HiddenValleyMarkerREF ; Update counter to show that a patrol has been found set VDialogueHiddenValley.PatrolsFound to VDialogueHiddenValley.PatrolsFound + 1 ; If the player was sent looking for these by McNamara update the quest if GetObjectiveDisplayed VMS55 22 == 1 && GetObjectiveCompleted VMS55 22 == 0 SetObjectiveCompleted VMS55 22 1 ; If the player has found the other two patrols, send them back to McNamara if GetObjectiveCompleted VMS55 20 == 1 && GetObjectiveCompleted VMS55 21 == 1 SetObjectiveDisplayed VMS55 29 1 endif endif ; Remove the misc item from the player's inventory RemoveMe end
557HVOuterLockedDoorScriptscn HVOuterLockedDoorScript int PushScene ; Flag to see if we doing the push scene int Pushed ; 0 = Not pushed yet, 1 = Pushed int FadedIn ; 0 = Haven't faded in yet, 1 = Already faded in int LockedOnce ; 0 = Haven't locked door behind player ; 1 = Locked door behind player float PushSceneTimer ; Used to help time events in the push scene begin GameMode if PushScene == 1 ;if FadedIn == 0 ; if Pushed == 0 && PushSceneTimer >= 1.5 ; EnablePlayerControls ; PusherREF.PushActorAway player 5 ; Set Pushed to 1 ; endif if LockedOnce == 0 LockedOuterDoor.SetOpenState 0 LockedOuterDoor.lock 100 Set LockedOnce to 1 endif if PushSceneTimer >= 1.5 ;LockedOuterDoor.SetOpenState 0 ;LockedOuterDoor.lock 100 HVIntercomREF.StartConversation player GREETING Set PushScene to 2 endif Set PushSceneTimer to PushSceneTimer + GetSecondsPassed endif ; if PushScene == 2 ; if PushSceneTimer >= 6.5 ; Maybe switch the following over when we get sound? ;HVIntercomREF.Say HVRamosIntercomGetRanger ; HVIntercomREF.StartConversation player GREETING ; Set PushScene to 0 ; endif ; Set PushSceneTimer to PushSceneTimer + GetSecondsPassed ; endif end begin OnClose ;ShowWarning "Something is closing LockedOuterDoor!" end
558HVOuterRoomScriptscn HVOuterRoomScript int DoOnce begin OnTriggerEnter player ; For VMQYesMan02 - If the player's been told to go back to the bunker, update if GetObjectiveDisplayed VMQYesMan02 101 == 1 && GetObjectiveCompleted VMQYesMan02 101 == 0 SetObjectiveCompleted VMQYesMan02 101 1 SetObjectiveDisplayed VMQYesMan02 103 1 endif ; If the player's been sent after the Brotherhood by one of the factions, ; send the Brotherhood out to get them (if player has not already gained entrance) if GetStage VMS55 == 0 && GetObjectiveDisplayed VMQHouse5 60 == 1 || GetObjectiveDisplayed VMQ02 70 == 1 || GetObjectiveDisplayed VMQ05 50 == 1 || GetObjectiveDisplayed VMQYesMan02 100 ==1 && GetObjectiveCompleted VMQHouse5 60 == 0 && GetObjectiveCompleted VMQ02 70 == 0 && GetObjectiveCompleted VMQ05 50 == 0 && GetObjectiveCompleted VMQYesMan02 100 == 0 if (DoOnce == 0 && (VNPCFollowers.bVeronicaHired == 0 || VeronicaREF.GetInCell HiddenValleyBunker1 == 0 || RamosREF.GetDead)) ; Close entrance door behind player and lock it BunkerFirstDoor.setOpenState 0 BunkerFirstDoor.lock 255 ; Enable the BoS guys beyond the locked door BunkerGuard1.enable BunkerGuard2.enable ;set HVBunkerGuardDisplayTriggerREF.EnableGuards to 1 PasswordPaladin1.enable PasswordPaladin2.enable PasswordPaladin3.enable ; Prevent the player from using the intercom HVIntercomREF.SetDestroyed 1 ; Make player friendly so he/she is not attacked by the brotherhood SetEnemy BrotherhoodSteelFaction PlayerFaction 1 1 ; Set var so Ramos uses the right Greeting later set VDialogueHiddenValley.HowPlayerEntered to 5 set DoOnce to 1 endif endif end
559HVPaladinCharacterHelmetScriptscn HVPaladinCharacterHelmetScript ref Self begin OnLoad set Self to GetSelf ; Make actor unequip power armor helm, and not show a message if Self.GetItemCount ArmorPowerT45DHelmet >= 1 Unequipitem ArmorPowerT45DHelmet 1 1 elseif Self.GetItemCount ArmorPowerT51bHelmet >= 1 Unequipitem ArmorPowerT51bHelmet 1 1 endif end ;------------------------------------------------------------------------------------------------------------- begin OnStartCombat set Self to GetSelf ; Make actor equip power armor helm, and not show a message if Self.GetItemCount ArmorPowerT45DHelmet >= 1 Equipitem ArmorPowerT45DHelmet 0 1 elseif Self.GetItemCount ArmorPowerT51bHelmet >= 1 Equipitem ArmorPowerT51bHelmet 0 1 endif ; Make actor equip power armor, if they're attacked while sleeping if Self.GetItemCount ArmorPowerBrotherhoodOfSteelT51b >= 1 EquipItem ArmorPowerBrotherhoodofSteelT51b 0 1 elseif Self.GetItemCount ArmorPowerBrotherhoodOfSteelT45d >= 1 EquipItem ArmorPowerBrotherhoodOfSteelT45d 0 1 endif end ;------------------------------------------------------------------------------------------------------------- begin OnCombatEnd set Self to GetSelf ; Make actor unequip power armor helm, and not show a message if Self.GetItemCount ArmorPowerT45DHelmet >= 1 Unequipitem ArmorPowerT45DHelmet 1 1 elseif Self.GetItemCount ArmorPowerT51bHelmet >= 1 Unequipitem ArmorPowerT51bHelmet 1 1 endif end ;------------------------------------------------------------------------------------------------------------- begin OnDeath player SetEnemy BrotherhoodSteelFaction PlayerFaction end ;------------------------------------------------------------------------------------------------------------- begin OnDeath set VDialogueHiddenValley.NumBoSDead to VDialogueHiddenValley.NumBoSDead + 1 end
560HVPaladinDecorativeScriptscn HVPaladinDecorativeScript ;------------------------------------------------------------------------------------------------------------- begin OnDeath player ; In case player one-shots him, set flag for Yes Man set VDialogueHiddenValley.MetWithBrotherhood to 1 end ;------------------------------------------------------------------------------------------------------------- begin OnHit player ; Set flag for Yes Man set VDialogueHiddenValley.MetWithBrotherhood to 1 end
561HVPaladinGuardScriptscn HVPaladinGuardScript ; Guards should keep their helmets on, so using a different script for these guys ;------------------------------------------------------------------------------------------------------------- begin OnDeath player SetEnemy BrotherhoodSteelFaction PlayerFaction end ;------------------------------------------------------------------------------------------------------------- begin OnDeath set VDialogueHiddenValley.NumBoSDead to VDialogueHiddenValley.NumBoSDead + 1 end
562HVPaladinHitSquadFollowerScriptscn HVPaladinHitSquadFollowerScript ;-------------------------------------------------------------------------------------------------------------------------------------- begin OnDeath player SetEnemy BrotherhoodSteelFaction PlayerFaction end ;-------------------------------------------------------------------------------------------------------------------------------------- begin OnHit player ; If the player starts shooting first, get the ranger involved and set up to talk ; to the player after the battle SetStage VMS55 200 if HVRangerREF.FoughtBrotherhood == 0 ; Add the paladin hit squad to the Brotherhood faction HVHitSquad1.AddToFaction BrotherhoodSteelFaction 1 HVHitSquad2.AddToFaction BrotherhoodSteelFaction 1 HVHitSquad3.AddToFaction BrotherhoodSteelFaction 1 HVHitSquad4.AddToFaction BrotherhoodSteelFaction 1 HVHitSquad1.StartCombat player HVHitSquad2.StartCombat player HVHitSquad3.StartCombat player HVHitSquad4.StartCombat player SetEnemy PlayerFaction BrotherhoodSteelFaction ; Set the ranger up to talk to you after the fight is done, if he survives set HVRangerREF.FoughtBrotherhood to 1 endif end ;-------------------------------------------------------------------------------------------------------------------------------------- begin OnDeath ; If this npc is spawned, it means you pissed the brotherhood off, so fail their ; quest just in case the player (or someone) blows her away before she gets to talk SetStage VMS55 200 ; Make ranger respond in case you kill her before he joins the combat if HVRangerREF.FoughtBrotherhood == 0 ; Add the paladin hit squad to the Brotherhood faction HVHitSquad1.AddToFaction BrotherhoodSteelFaction 1 HVHitSquad2.AddToFaction BrotherhoodSteelFaction 1 HVHitSquad3.AddToFaction BrotherhoodSteelFaction 1 HVHitSquad4.AddToFaction BrotherhoodSteelFaction 1 HVHitSquad1.StartCombat player HVHitSquad2.StartCombat player HVHitSquad3.StartCombat player HVHitSquad4.StartCombat player SetEnemy PlayerFaction BrotherhoodSteelFaction endif ; Make Ranger talk to you after the fight is done if HVHitSquad1.GetDead && HVHitSquad2.GetDead && HVHitSquad3.GetDead && HVHitSquad4.GetDead set HVRangerREF.FoughtBrotherhood to 2 HVRangerREF.evp endif end
563HVPaladinHitSquadLeaderScriptscn HVPaladinHitSquadLeaderScript ;-------------------------------------------------------------------------------------------------------------------------------------- begin OnStartCombat player ; Fail the Brotherhood quest SetStage VMS55 200 end ;-------------------------------------------------------------------------------------------------------------------------------------- begin OnDeath player SetEnemy BrotherhoodSteelFaction PlayerFaction end ;-------------------------------------------------------------------------------------------------------------------------------------- begin OnHit player ; If the player starts shooting first, get the ranger involved and set up to talk ; to the player after the battle SetStage VMS55 200 if HVRangerREF.FoughtBrotherhood == 0 ; Add the paladin hit squad to the Brotherhood faction HVHitSquad1.AddToFaction BrotherhoodSteelFaction 1 HVHitSquad2.AddToFaction BrotherhoodSteelFaction 1 HVHitSquad3.AddToFaction BrotherhoodSteelFaction 1 HVHitSquad4.AddToFaction BrotherhoodSteelFaction 1 HVHitSquad1.StartCombat player HVHitSquad2.StartCombat player HVHitSquad3.StartCombat player HVHitSquad4.StartCombat player SetEnemy PlayerFaction BrotherhoodSteelFaction ; Set the ranger up to talk to you after the fight is done, if he survives set HVRangerREF.FoughtBrotherhood to 1 ; Fail the Brotherhood quest SetStage VMS55 200 endif end ;-------------------------------------------------------------------------------------------------------------------------------------- begin OnDeath ; If this lady is spawned, it means you pissed the brotherhood off, so fail their ; quest just in case the player (or someone) blows her away before she gets to talk SetStage VMS55 200 ; Make ranger respond in case you kill her before he joins the combat if HVRangerREF.FoughtBrotherhood == 0 ; Add the paladin hit squad to the Brotherhood faction HVHitSquad1.AddToFaction BrotherhoodSteelFaction 1 HVHitSquad2.AddToFaction BrotherhoodSteelFaction 1 HVHitSquad3.AddToFaction BrotherhoodSteelFaction 1 HVHitSquad4.AddToFaction BrotherhoodSteelFaction 1 HVHitSquad1.StartCombat player HVHitSquad2.StartCombat player HVHitSquad3.StartCombat player HVHitSquad4.StartCombat player SetEnemy PlayerFaction BrotherhoodSteelFaction endif ; Make Ranger talk to you after the fight is done if HVHitSquad2.GetDead && HVHitSquad3.GetDead && HVHitSquad4.GetDead set HVRangerREF.FoughtBrotherhood to 2 HVRangerREF.evp endif end
564HVPaladinLockersScriptscn HVPaladinLockersScript ref EnteringActor ref ExitingActor begin OnTriggerEnter Set EnteringActor to GetActionRef if EnteringActor.GetInFaction BrotherhoodSteelFaction == 1 if EnteringActor.GetIsCurrentPackage HVPaladinPatrolSleep == 1 || EnteringActor.GetIsCurrentPackage HVPaladinDaySleep == 1 ;ShowWarning "Someone should be unequipping power armor!" if EnteringActor.GetItemCount ArmorPowerT45DHelmet >= 1 EnteringActor.UnequipItem ArmorPowerBrotherhoodOfSteelT45D 1 1 EnteringActor.UnequipItem ArmorPowerT45DHelmet 1 1 elseif EnteringActor.GetItemCount ArmorPowerT51bHelmet >= 1 EnteringActor.UnequipItem ArmorPowerBrotherhoodofSteelT51b 1 1 EnteringActor.UnequipItem ArmorPowerT51bHelmet 1 1 endif endif endif end ;-------------------------------------------------------------------------------------------------------------------------- begin OnTriggerLeave Set ExitingActor to GetActionRef if ExitingActor.GetInFaction BrotherhoodSteelFaction == 1 if ExitingActor.GetIsCurrentPackage HVPaladinPatrolSleep == 0 && ExitingActor.GetIsCurrentPackage HVPaladinDaySleep == 0 if ExitingActor.GetItemCount ArmorPowerT45DHelmet >= 1 ExitingActor.EquipItem ArmorPowerBrotherhoodOfSteelT45D 1 1 elseif ExitingActor.GetItemCount ArmorPowerT51bHelmet >= 1 ExitingActor.EquipItem ArmorPowerBrotherhoodofSteelT51b 1 1 endif endif endif end
565HVPasswordPaladinFinalGuardTriggerScriptscn HVPasswordPaladinFinalGuardTriggerScript int Paladin1InPosition int Paladin2InPosition begin OnTriggerEnter PasswordPaladin1 if PasswordPaladin1.MoveInside == 1 Set Paladin1InPosition to 1 else LockedOuterDoor.unlock LockedOuterDoor.SetOpenState 1 endif if Paladin1InPosition && Paladin2InPosition ; Lock the door to the inner room, forcing the player to enter the bunker LockedOuterDoor.setOpenState 0 LockedOuterDoor.lock 255 ; Set things up so Ramos meets you downstairs Set VDialogueHiddenValley.HVState to 1 RamosREF.evp Disable endif end ;------------------------------------------------------------------------------------------------------------------------------------ begin OnTriggerEnter PasswordPaladin2 if PasswordPaladin2.MoveInside == 1 Set Paladin2InPosition to 1 else LockedOuterDoor.unlock LockedOuterDoor.SetOpenState 1 endif if Paladin1InPosition && Paladin2InPosition ; Lock the door to the inner room, forcing the player to enter the bunker LockedOuterDoor.setOpenState 0 LockedOuterDoor.lock 255 ; Set things up so Ramos meets you downstairs Set VDialogueHiddenValley.HVState to 1 RamosREF.evp Disable endif end ; There was a call here to make the Paladins go hostile if the player ran into the ; room, but it was written up as a bug since players might run into the room to ; talk to someone, ending in a confusing (albeit glorious) death.
566HVPasswordPaladinFlankScriptscn HVPasswordPaladinFlankScript int MoveInside ; 0 = Stay in outer room, 1 = Move to inner room ;------------------------------------------------------------------------------------------------------------- begin OnDeath player SetEnemy BrotherhoodSteelFaction PlayerFaction ; Fail the Brotherhood quest SetStage VMS55 200 ; In case player one-shots him, set flag for Yes Man set VDialogueHiddenValley.MetWithBrotherhood to 1 end ;------------------------------------------------------------------------------------------------------------- begin OnHit player ; Set flag for Yes Man set VDialogueHiddenValley.MetWithBrotherhood to 1 end
567HVPasswordPaladinTalkScriptscn HVPasswordPaladinTalkScript int following ; 0 = Not following player yet, 1 = following ;------------------------------------------------------------------------------------------------------------- begin OnLoad Unequipitem ArmorPowerT45DHelmet 1 1 ; Makes actor unequip power armor helm, and not show a message end ;------------------------------------------------------------------------------------------------------------- begin OnStartCombat EquipItem ArmorPowerT45DHelmet 0 1 ; Makes the actor equip the power armor helm when combat begins end ;------------------------------------------------------------------------------------------------------------- begin OnDeath player SetEnemy BrotherhoodSteelFaction PlayerFaction ; Fail the Brotherhood Quest SetStage VMS55 200 ; In case player one-shots him, set flag for Yes Man set VDialogueHiddenValley.MetWithBrotherhood to 1 end ;------------------------------------------------------------------------------------------------------------- begin OnHit player ; Set flag for Yes Man set VDialogueHiddenValley.MetWithBrotherhood to 1 end
568HVPatrolOutsideScriptscn HVPatrolOutsideScript ref EnteringActor int Count int DoOnce begin OnTriggerEnter Set EnteringActor to GetActionRef ; Only make patrol lock door behind them if player hasn't started BoS quest if EnteringActor.GetInFaction BrotherhoodSteelFaction && GetStage VMS55 == 0 && VDialogueHiddenValley.HowPlayerEntered != 2 Set Count to Count + 1 if Count == 4 LockedOuterDoor.SetOpenState 0 LockedOuterDoor.Lock 100 endif endif if EnteringActor.GetIsReference player if DoOnce == 0 ; Unlock the door ahead the first time through BunkerFirstDoor.unlock ; Unlock the door further on, too HVBunkerToMainDoorREF.unlock set DoOnce to 1 endif endif end
569HVPlayerEscapingTriggerScriptscn HVPlayerEscapingTriggerScript short bDoOnce begin OnTriggerEnter player ; Player has been captured but is attempting to leave before speaking with McNamara if (GetObjectiveDisplayed VMS55 1 == 1) && (GetObjectiveCompleted VMS55 1 == 0) SetEnemy BrotherhoodSteelFaction PlayerFaction SetStage VMS55 200 ; Fail state set bDoOnce to 1 endif end
570HVPlayerLeavingScriptscn HVPlayerLeavingScript int PlayerTriedToLeave begin Gamemode ; If the player attempts to leave the command room before talking to McNamara, ; the guards go hostile as the player attempts to exit if VDialogueHiddenValley.HVState == 2 && PlayerTriedToLeave == 0 if HVCommandDoorREF.GetOpenState == 1 || HVCommandDoorREF.GetOpenState == 2 SetEnemy BrotherhoodSteelFaction PlayerFaction set PlayerTriedToLeave to 1 endif endif end
571HVRamosScriptscn HVRamosScript int RamosState ; 0 = Waiting for player at entrance ; 1 = Chilling in his office ; 2 = Going to Elder's room begin OnLoad Unequipitem ArmorPowerT51BHelmet 1 1 ; Makes actor unequip power armor helm, and not show a message end ;------------------------------------------------------------------------------------------------------------- begin OnStartCombat EquipItem ArmorPowerT51BHelmet 0 1 ; Makes the actor equip the power armor helm when combat begins end ;------------------------------------------------------------------------------------------------------------- begin OnHit player ; Set flag for Yes Man set VDialogueHiddenValley.MetWithBrotherhood to 1 SetEnemy BrotherhoodSteelFaction PlayerFaction end ;------------------------------------------------------------------------------------------------------------- begin OnDeath SetEnemy BrotherhoodSteelFaction PlayerFaction end
572HVRamosTargetDialogScriptscn HVRamosTargetDialogScript int DoFade ; 0 = No doing fade ; 1 = Doing fade ; 2 = Did fade already float Timer begin OnTrigger player if DoFade == 1 if Timer <= 0.0 EnablePlayerControls ; If player snuck in, remove their items to the container near the intercom player.RemoveAllItems HVStripContainer RamosREF.MoveTo HVRamosAfterEscortMarker Player.MoveTo NolanXMarkerRef set DoFade to 2 ; Update quest based on how you entered if VDialogueHiddenValley.HowPlayerEntered == 3 || VDialogueHiddenValley.HowPlayerEntered == 5 ; Player snuck in SetStage VMS55 1 elseif VDialogueHiddenValley.HowPlayerEntered == 1 ; Player used password SetStage VMS55 2 endif else set Timer to Timer - GetSecondsPassed endif endif end
573HVRangerGoBoomScriptscn HVRangerGoBoomScript int Kaboom ; 0 = Nothing special ; 1 = Blow ranger to bits ; 2 = Done float Timer begin OnTrigger HVRangerREF if Kaboom == 0 if HVRangerREF.GetIsCurrentPackage HVRangerTinkerWithRadioPackage == 1 && VDialogueHiddenValley.RangerRadioState == 3 set Kaboom to 1 set Timer to 3.0 endif endif end ;----------------------------------------------------------------------------------------------------------------------------------------- begin OnTrigger HVRangerREF ; Countdown and blow off ranger's arms when he goes to use the trapped radio If Timer > 0 set Timer to Timer - GetSecondsPassed elseif Timer <= 0 && Kaboom == 1 HVRangerRadioREF.do 5 ; do = DamageObject if IsActionRef HVRangerREF HVRangerREf.kill GSVictorREF 3 HVRangerREF.kill GSVictorREF 5 endif Set Kaboom to 2 endif end
574HVRangerHeadingOutScriptscn HVRangerHeadingOutScript float Time begin OnTriggerEnter HVRangerREF ; If ranger is walking out, hide & delete him if HVRangerREF.HeadingOut HVRangerREF.disable 1 HVRangerREF.MarkForDelete endif end ;--------------------------------------------------------------------------------------------------------------------------------- begin OnTriggerEnter player if HVRangerREF.GetDead == 0 if VDialogueHiddenValley.RangerRadioState == 3 Set Time to GetCurrentTime if Time < 10.0 || Time > 18.0 HVRangerREF.AddScriptPackage HVRangerTinkerWithRadioPackage endif endif endif end
575HVRangerJournalScriptscn HVRangerJournalScript int Button int ScreenNumber ; 0 = First or Second, 1 = Third, 2 = Fourth ;------------------------------------------------------------------------------------------------------------------------------- begin OnActivate if GetStage VMS55 < 10 ShowMessage HVRangerJournalFirst else ShowMessage HVRangerJournalSecond endif end ;------------------------------------------------------------------------------------------------------------------------------- begin GameMode Set Button to GetButtonPressed if ScreenNumber == 0 if Button == 0 ; Put journal down ; Nothing? elseif Button == 1 ; Next page ShowMessage HVRangerJournalThird Set ScreenNumber to 1 endif elseif ScreenNumber == 1 if Button == 0 Set ScreenNumber to 0 elseif Button == 1 ShowMessage HVRangerJournalFourth Set VDialogueHiddenValley.RangerLogRead to 1 Set ScreenNumber to 2 endif elseif ScreenNumber == 2 if Button == 0 Set ScreenNumber to 0 endif endif end
576HVRangerNoteItemScriptscn HVRangerNoteItemScript begin onActivate player.addnote HVRangerNote HVRangerGrenadeTrap1.activate HVRangerGrenadeTrap2.activate HVRangerGrenadeTrap3.activate HVRangerGrenadeTrap4.activate Disable MarkForDelete end
577HVRangerRadioScriptscn HVRangerRadioScript ; This script is attached to the NCR Ranger's radio in cell HiddenValleyBunkers. ; It determines what happens when the player interacts with the radio. int Button int ScreenNumber ; 0 = Main Menu ; 1 = Fixed (CUT) ; 2 = Smashed ; 3 = Sabotaged int Caught ; 0 = Never caught messing with radio, 1 = Caught ;------------------------------------------------------------------------------------------------------------------------------- begin OnDestructionStageChange ; If you destroy the radio while the ranger is there, he attacks if GetDestructionStage == 1 && HVRangerREF.GetInCell HiddenValleyBunker2 == 1 HVRangerREF.Say HVRangerRadioDestroyed HVRangerREF.StartCombat player elseif GetDestructionStage == 1 && HVRangerREF.GetInCell HiddenValleyBunker2 == 0 ; Otherwise, he never comes back, having found his safehouse vandalized set VDialogueHiddenValley.RangerRadioState to 2 HVRangerREF.disable HVRangerREF.MarkForDelete set VDialogueHiddenValley.RangerState to 4 ; Update quest if GetObjectiveDisplayed VMS55 5 == 1 && GetObjectiveCompleted VMS55 55 == 0 SetObjectiveCompleted VMS55 5 1 SetObjectiveDisplayed VMS55 9 1 endif endif end ;------------------------------------------------------------------------------------------------------------------------------- begin OnActivate if HVRangerREF.GetIsCurrentPackage HVRangerTinkerWithRadioPackage HVRangerREF.Say HVRangerRadioDisturbed elseif VDialogueHiddenValley.HVState < 3 ShowMessage HVRadioUnknown elseif IsActionRef player && ScreenNumber == 0 ShowMessage HVRadioMsg elseif ScreenNumber == 1 Activate elseif ScreenNumber == 3 HVRangerRadioREF.do 5 ; do = DamageObject Set ScreenNumber to 2 endif end ;------------------------------------------------------------------------------------------------------------------------------- begin GameMode Set Button to GetButtonPressed if ScreenNumber == 0 if Button == 0 ; Do nothing if HVRangerREF.GetInCell HiddenValleyBunker2 HVRangerREF.StartConversation player HVRangerMessWithRadio endif Set Button to 4 ; This just prevents the conversation from repeating elseif Button == 1 ; Sabotage ShowMessage HVRadioSabotaged Set VDialogueHiddenValley.RangerRadioState to 3 Set ScreenNumber to 3 if HVRangerREF.GetInCell HiddenValleyBunker2 HVRangerREF.StartConversation player HVRangerMessWithRadio endif elseif Button == 2 ; Smash ShowMessage HVRadioDestroyed HVRangerRadioREF.do 5 Set ScreenNumber to 1 endif endif end
578HVRangerScriptscn HVRangerScript ref MyHandler ;For Sniffer script int talkedOnce int discoveredAlone ; 0 = Didn't know Ranger's whereabouts were unknown to NCR ; 1 = Discovered that the Ranger's whereabouts were unknown to NCR int HeadingOut ; 0 = Staying put, 1 = Heading out int HeadingBack ; 0 = Not heading back, 1 = Heading back int HeardSomething ; 0 = Didn't hear paladins coming, 1 = Heard int FoughtBrotherhood ; 0 = Fight hasn't started ; 1 = Fight started ; 2 = Fight is done, ranger should talk to you now ; 3 = Ranger talked to you after the fight ; Condition variable on package to talk after fight float Time begin onDeath if discoveredAlone == 1 Set VDialogueHiddenValley.RangerState to 2 else Set VDialogueHiddenValley.RangerState to 1 endif ; Only update "deal with Ranger objective" if collar still on if player.GetItemCount HVExplosiveCollar == 1 SetObjectiveCompleted VMS55 5 1 SetObjectiveDisplayed VMS55 9 1 endif end ;--------------------------------------------------------------------------------------------------------------------------------- begin OnLoad ; Sometime after the fight with the Brotherhood, he leaves if FoughtBrotherhood == 2 if player.GetInCell HiddenValleyBunker2 == 0 && GetInCell HiddenValleyBunker2 == 1 disable endif endif end ;--------------------------------------------------------------------------------------------------------------------------------- ;Sniffer Script ;--------------------------------------------------------------------------------------------------------------------------------- begin OnStartCombat Player if (GetQR DisguiseFactionPulseQuest == 1) && (IsSpellTarget DisguiseFactionPulseActorEffect == 1) sendAssaultAlarm Player NCRFactionNV sendAssaultAlarm Player VNCRSnifferFaction set MyHandler to GetLinkedRef if (GetDistance player < 512) && MyHandler != 0 MyHandler.Say NCRSnifferChallengePlayer endif endif end
579HVRangerSneakUpScriptscn HVRangerSneakUpScript begin OnTriggerEnter player if HVRangerREF.talkedOnce == 0 if HVRangerREF.GetIsCurrentPackage HVRangerWanderTheWastesPackage == 1 HVRangerREF.AddScriptPackage HVRangerDialogDetectedOutsidePackage set HVRangerREF.talkedOnce to 1 endif endif end
580HVSandStormAudioScriptscn HVSandStormAudioScript ; This script governs the sandstorm Audio float Time int playing ;---------------------------------------------------------------------------------------------------------------------- begin GameMode set Time to GetCurrentTime if Time > 21.0 || Time < 6.0 if playing == 0 PlayGroup Right 0 set playing to 1 endif else if playing == 1 PlayGroup Left 0 set playing to 0 endif endif end
581HVSandStormFastTravelScriptscn HVSandStormFastTravelScript float Time float LastTimeTurnedOn ; Tracks when this trigger last turned on the storm float TimeSinceLastTurnedOn float LastTimeTurnedOff float TimeSinceLastTurnedOff begin OnTriggerEnter player set Time to GetCurrentTime set TimeSinceLastTurnedOn to GameDaysPassed - LastTimeTurnedOn set TimeSinceLastTurnedOff to GameDaysPassed - LastTimeTurnedOff ; Only do sandstorm stuff if bunker isn't destroyed if VHiddenValleyDustStorm.BunkerDestroyed == 0 ; Set the weather and storm effects, based on the time if Time > 21.0 || Time < 6.0 ; Set flag so quest handles weather appropriately set VHiddenValleyDustStorm.PlayerInStorm to 1 ; Speed quest processing SetQuestDelay VHiddenValleyDustStorm 0.5 if TimeSinceLastTurnedOn >= 1.0 if VHiddenValleyDustStorm.WeatherSet == 0 SetWeather HVDustStorm 1 set VHiddenValleyDustStorm.WeatherSet to 1 elseif GetIsCurrentWeather HVDustStorm == 0 ; Backup in case things get out of sync SetWeather HVDustStorm 1 endif set VHiddenValleyDustStorm.sandstormstate to 2 HVSandStormNight01REF.enable HVSandStormNight02REF.enable HVSandStormNight03REF.enable HVSandStormNight04REF.enable HVSandStormNight05REF.enable HVSandStormNight06REF.enable HVSandStormNight07REF.enable HVSandStormNight08REF.enable HVSandStormNight09REF.enable HVSandStormNight10REF.enable HVSandStormNight01REF.PlayGroup SpecialIdle 2 HVSandStormNight02REF.PlayGroup SpecialIdle 2 HVSandStormNight03REF.PlayGroup SpecialIdle 2 HVSandStormNight04REF.PlayGroup SpecialIdle 2 HVSandStormNight05REF.PlayGroup SpecialIdle 2 HVSandStormNight06REF.PlayGroup SpecialIdle 2 HVSandStormNight07REF.PlayGroup SpecialIdle 2 HVSandStormNight08REF.PlayGroup SpecialIdle 2 HVSandStormNight09REF.PlayGroup SpecialIdle 2 HVSandStormNight10REF.PlayGroup SpecialIdle 2 set VHiddenValleyDustStorm.Timer to 0.0 set LastTimeTurnedOn to GameDaysPassed endif else if TimeSinceLastTurnedOff >= 1.0 ReleaseWeatherOverride ForceWeather NVWastelandClear set VHiddenValleyDustStorm.WeatherSet to 0 set VHiddenValleyDustStorm.sandstormstate to 0 HVSandStormNight01REF.disable 0 HVSandStormNight02REF.disable 0 HVSandStormNight03REF.disable 0 HVSandStormNight04REF.disable 0 HVSandStormNight05REF.disable 0 HVSandStormNight06REF.disable 0 HVSandStormNight07REF.disable 0 HVSandStormNight08REF.disable 0 HVSandStormNight09REF.disable 0 HVSandStormNight10REF.disable 0 HVSandStormNight01REF.PlayGroup Right 2 HVSandStormNight02REF.PlayGroup Right 2 HVSandStormNight03REF.PlayGroup Right 2 HVSandStormNight04REF.PlayGroup Right 2 HVSandStormNight05REF.PlayGroup Right 2 HVSandStormNight06REF.PlayGroup Right 2 HVSandStormNight07REF.PlayGroup Right 2 HVSandStormNight08REF.PlayGroup Right 2 HVSandStormNight09REF.PlayGroup Right 2 HVSandStormNight10REF.PlayGroup Right 2 set VHiddenValleyDustStorm.Timer to 0.0 set LastTimeTurnedOff to GameDaysPassed endif endif endif ; Speed quest processing SetQuestDelay VHiddenValleyDustStorm 0.5 end
582HVSandStormNightScriptscn HVSandStormNightScript ; This script governs the sandstorm objects placed in the Hidden Valley Exterior float Time ; Used to check what time it is float Timer ; Used to help time state changes int sandstormstate ; 0 = off, 1 = starting, 2 = on, 3 = ending ;----------------------------------------------------------------------------------------------------------------------
583HVSandstormWeatherAddingScriptscn HVSandstormWeatherAddingScript float Time begin OnTrigger player ; Set flag so dust storm quest knows the player is in the storm set VHiddenValleyDustStorm.PlayerInStorm to 1 ; Speed up the storm quest SetQuestDelay VHiddenValleyDustStorm .5 set Time to GetCurrentTime ; When the player enters the storm area, change the weather to lower visibility if Time > 21.0 || Time < 6.0 SetWeather HVDustStorm 1 set VHiddenValleyDustStorm.WeatherSet to 1 endif end
584HVSandstormWeatherRemovingScriptscn HVSandstormWeatherRemovingScript float Time begin OnTriggerEnter player ; Set flag so dust storm quest doesn't immediately reset the weather set VHiddenValleyDustStorm.PlayerInStorm to 0 ; When the player exits the storm area, reset the weather ForceWeather NVWastelandClear ReleaseWeatherOverride set VHiddenValleyDustStorm.WeatherSet to 0 end
585HVSchulerStandScriptscn HVSchulerStandScript begin OnTriggerEnter player if LindaSchulerREF.GetIsCurrentPackage HVScribeSleep == 0 set LindaSchulerREF.ShouldStand to 1 LindaSchulerREF.evp endif end begin OnTriggerLeave player if LindaSchulerREF.GetIsCurrentPackage HVScribeSleep == 0 set LindaSchulerREF.ShouldStand to 0 LindaSchulerREF.evp endif end
586HVScoutReport01Scriptscn HVScoutReport01Script begin OnAdd player SetObjectiveCompleted VMS55 30 1 ; Update the number of scouts found set VDialogueHiddenValley.ScoutsFound to VDialogueHiddenValley.ScoutsFound + 1 ; Send player back to McNamara if this is the last one if GetObjectiveCompleted VMS55 31 == 1 && GetObjectiveCompleted VMS55 32 == 1 SetObjectiveDisplayed VMS55 39 1 endif end
587HVScoutReport02Scriptscn HVScoutReport02Script begin OnAdd player SetObjectiveCompleted VMS55 31 1 ; Update the number of scouts found set VDialogueHiddenValley.ScoutsFound to VDialogueHiddenValley.ScoutsFound + 1 ; Send player back to McNamara if this is the last one if GetObjectiveCompleted VMS55 30 == 1 && GetObjectiveCompleted VMS55 32 == 1 SetObjectiveDisplayed VMS55 39 1 endif end
588HVScoutReport03Scriptscn HVScoutReport03Script begin OnAdd player SetObjectiveCompleted VMS55 32 1 ; Update the number of scouts found set VDialogueHiddenValley.ScoutsFound to VDialogueHiddenValley.ScoutsFound + 1 ; Send player back to McNamara if this is the last one if GetObjectiveCompleted VMS55 30 == 1 && GetObjectiveCompleted VMS55 31 == 1 SetObjectiveDisplayed VMS55 39 1 endif end
589HVScoutScriptscn HVScoutScript
590HVScribeIbsenScriptscn HVScribeIbsenScript int SpokeToOnce ; 0 = Didn't speak to once yet ; 1 = Spoke to once ; Ibsen won't use his sleep package until you've ; spoken to him at least once. begin OnDeath player SetEnemy BrotherhoodSteelFaction PlayerFaction end
591HVTargetPractice1Scriptscn HVTargetPractice1Script ref CurrentActor ; Used to hold reference to the actor that just entered or left the trigger ref CurrentUser ; Used to hold reference to the actor that's currently firing in this lane int BeingUsed begin OnTrigger Set CurrentActor to GetActionRef if CurrentActor.GetIsCurrentPackage HVBrotherhoodTargetPractice1 == 1 && BeingUsed == 0 Set BeingUsed to 1 Set CurrentUser to GetActionRef ;ShowWarning "New user in range 1" elseif CurrentActor.GetIsCurrentPackage HVBrotherhoodTargetPractice1 == 1 && BeingUsed == 1 CurrentActor.resetAI endif end ; ===================================================================================== begin OnTriggerLeave Set CurrentActor to GetActionRef if CurrentActor.GetIsReference CurrentUser Set BeingUsed to 0 ;ShowWarning "Current user is leaving range 1" endif end
592HVTargetPractice2Scriptscn HVTargetPractice2Script ref CurrentActor ; Used to hold reference to the actor that just entered or left the trigger ref CurrentUser ; Used to hold reference to the actor that's currently firing in this lane int BeingUsed begin OnTrigger Set CurrentActor to GetActionRef if CurrentActor.GetIsCurrentPackage HVBrotherhoodTargetPractice2 == 1 && BeingUsed == 0 Set BeingUsed to 1 Set CurrentUser to GetActionRef ;ShowWarning "Lane 2 has a new user" elseif CurrentActor.GetIsCurrentPackage HVBrotherhoodTargetPractice2 == 1 && BeingUsed == 1 CurrentActor.resetAI endif end ; ===================================================================================== begin OnTriggerLeave Set CurrentActor to GetActionRef if CurrentActor.GetIsReference CurrentUser Set BeingUsed to 0 ;ShowWarning "Lane 2 user leaving" endif end
593HVTargetPractice3Scriptscn HVTargetPractice3Script ref CurrentActor ; Used to hold reference to the actor that just entered or left the trigger ref CurrentUser ; Used to hold reference to the actor that's currently firing in this lane int BeingUsed begin OnTrigger Set CurrentActor to GetActionRef if CurrentActor.GetIsCurrentPackage HVBrotherhoodTargetPractice3 == 1 && BeingUsed == 0 Set BeingUsed to 1 Set CurrentUser to GetActionRef ;ShowWarning "New user in lane 3" elseif CurrentActor.GetIsCurrentPackage HVBrotherhoodTargetPractice3 == 1 && BeingUsed == 1 CurrentActor.resetAI endif end ; ===================================================================================== begin OnTriggerLeave Set CurrentActor to GetActionRef if CurrentActor.GetIsReference CurrentUser Set BeingUsed to 0 ;ShowWarning "Lane 3 user is leaving" endif end
594HVTargetPractice4Scriptscn HVTargetPractice4Script ref CurrentActor ; Used to hold reference to the actor that just entered or left the trigger ref CurrentUser ; Used to hold reference to the actor that's currently firing in this lane int BeingUsed begin OnTrigger Set CurrentActor to GetActionRef if CurrentActor.GetIsCurrentPackage HVBrotherhoodTargetPractice4 == 1 && BeingUsed == 0 Set BeingUsed to 1 Set CurrentUser to GetActionRef ;ShowWarning "New user in lane 4" elseif CurrentActor.GetIsCurrentPackage HVBrotherhoodTargetPractice4 == 1 && BeingUsed == 1 CurrentActor.resetAI ;ShowWarning "Kicking someone out of lane 4" endif end ; ===================================================================================== begin OnTriggerLeave Set CurrentActor to GetActionRef if CurrentActor.GetIsReference CurrentUser Set BeingUsed to 0 ;ShowWarning "Lane 4 user is leaving" endif end
595HVTeleportToRamosScriptscn HVTeleportToRamosScript int TeleportingToRamos int DoOnce float Timer begin GameMode if TeleportingToRamos == 1 if Timer > 2.0 if DoOnce == 0 PasswordPaladin1.disable PasswordPaladin2.disable PasswordPaladin3.disable BunkerGuard1.disable BunkerGuard2.disable PasswordPaladin1.MarkForDelete PasswordPaladin2.MarkForDelete PasswordPaladin3.MarkForDelete BunkerGuard1.MarkForDelete BunkerGuard2.MarkForDelete Set DoOnce to 1 set HVBunkerToMainDoorREF.DoOnce to 1 endif ; If the player is sneaking in for the first time, set Ramos up to catch them if GetStage VMS55 == 0 if RamosREF.RamosState == 0 if VDialogueHiddenValley.HowPlayerEntered == 0 set VDialogueHiddenValley.HowPlayerEntered to 3 SetEnemy PlayerFaction BrotherhoodSteelFaction 1 1 endif set RamosREF.RamosState to 0 RamosREF.evp endif endif ; Lock the door so player can't immediately turn around and leave HVBunkerToMainDoorREF.lock set TeleportingToRamos to 2 Player.MoveTo HVPreRamosTeleportMarker ; Enable the container so the player can get their stuff back if they begin attacking the Brotherhood HVStripContainer.enable else set Timer to Timer + GetSecondsPassed endif endif end
596HVWatkinsScriptscn HVWatkinsScript int waiting ; 0 = Not waiting, 1 = waiting int PostGameTalk ; 0 = Doesn't need to talk, 1 = Will talk about last game float Timer ;------------------------------------------------------------------------------------------------------------------------------ ; Added conditional code to reduce the cost of running the script on every frame. Part of a game-wide revision of scripts - Jorge 03/14/10 begin GameMode If GetInSameCell Player != 1 Return Else if waiting == 1 && Timer < 3.0 set Timer to Timer + GetSecondsPassed elseif waiting == 1 && Timer >= 3 StartConversation player GREETING set waiting to 0 endif Endif end
597HVWeaponsTalkerScriptscn HVWeaponsTalkerScript ref WhichWeapon
598ImplantRegenScriptscn ImplantRegenScript float MicroRegen begin ScriptEffectUpdate set MicroRegen to ScriptEffectElapsedSeconds / 10 RestoreAv Health MicroRegen end
599ImplantTimerQuestScriptscn ImplantTimerQuestScript short DoOnce ;Script blocker float Timer ;Timer used for animation control BEGIN GameMode if ( DoOnce== 0 ) set Timer to 4 set DoOnce to 1 endif set Timer to ( Timer - GetSecondsPassed ) if ( Timer <= 3 ) && ( DoOnce == 1 ) IMod FadeToBlackISFX set DoOnce to 2 endif if ( Timer <= 0 ) && ( IsImagespaceActive FadeToBlackISFX == 0 ) EnablePlayerControls set DoOnce to 0 StopQuest ImplantTimerQuest endif endif END
600InjuredBoomer2SCRIPTSCN InjuredBoomer2SCRIPT short BoomerHealed short Button short MenuDepth short PlayerMayAttempt short SetPlayerChance short MenuLevel short Injured BEGIN OnLoad if ( BoomerHealed == 0 && GetDead == 0 ) setRestrained 1 endif END begin OnDeath set BoomerHealed to 1 end begin OnDeath player set NellisArgyllRef.FindPlayer to 4 set VFreeformNellis.iMedicineManKilled to 1 nellisargyllRef.evp addreputation repnvboomer 0 4 end BEGIN OnActivate if getdead && NellisArgyllREF.GetDead activate elseif VFreeformNellis.iMedicineManKilled == 0 && (VFreeformNellis.iMedicineManActive || NellisArgyllRef.GetDead) if ( isActionRef player == 1 ) && ( BoomerHealed == 0 ) && ( GetDead == 0 ) if ( player.GetAv Medicine < 50 ) ShowMessage InjuredBoomerLowSkill2Msg elseif ( player.GetAv Medicine >= 50 ) set PlayerMayAttempt to 1 ShowMessage InjuredBoomer2Msg endif elseif Injured == 1 showMessage InjuredBoomerWorseCondition else activate endif elseif VFreeformNellis.iMedicineManKilled showMessage InjuredBoomerNoOperate else showMessage InjuredBoomerNoOperateYet endif END BEGIN GameMode if ( BoomerHealed == 0 ) set Button to GetButtonPressed if ( Button > 0 ) if ( Button == 1 ) if ( PlayerMayAttempt == 0 ) && player.GetAV Medicine <= 20 ShowMessage InjuredBoomerKill2Msg set NellisArgyllRef.FindPlayer to 4 InjuredBoomer2REF.kill set VFreeformNellis.iMedicineManKilled to 1 ;NellisArgyllRef.StartConversation Player NellisArgyllPatientKilled nellisargyllRef.evp addreputation repnvboomer 0 4 set BoomerHealed to 1 elseif ( PlayerMayAttempt == 0 ) && player.GetAV Medicine <= 30 ShowMessage InjuredBoomer2LowSkillMsg2 set NellisArgyllRef.FindPlayer to 1 set Injured to 1 set VFreeformNellis.iMedicineManWorsened to VFreeformNellis.iMedicineManWorsened +1 set VFreeformNellis.iMedicineMan to VFreeformNellis.iMedicineMan + 1 ;NellisArgyllRef.StartConversation Player NellisArgyllPatientHarmed nellisargyllRef.evp addreputation repNVBoomer 0 2 set BoomerHealed to 1 elseif ( PlayerMayAttempt == 0 ) && (player.GetAV Medicine < 50) ShowMessage InjuredBoomerNeutralMsg else ShowMessage InjuredBoomerHeal2Msg ;set NellisArgyllRef.FindPlayer to 2 set VFreeformNellis.iMedicineMan to VFreeformNellis.iMedicineMan + 1 ;NellisArgyllRef.StartConversation NellisArgyllRef NellisArgyllPatientHealed NellisArgyllRef.say NellisArgyllPatientHealed ;nellisargyllRef.evp rewardXP 50 addreputation repNVBoomer 1 4 set BoomerHealed to 1 endif elseif Button == 2 showmessage InjuredBoomerHeal2MsgLowInt ;set NellisArgyllRef.FindPlayer to 3 set VFreeformNellis.iMedicineMan to VFreeformNellis.iMedicineMan + 1 NellisArgyllRef.StartConversation NellisArgyllRef NellisArgyllPatientHealedDumb ;nellisargyllRef.evp rewardXP 50 addreputation repNVBoomer 1 4 set BoomerHealed to 1 endif endif endif END
601InjuredBoomer3SCRIPTSCN InjuredBoomer3SCRIPT short BoomerHealed short Button short MenuDepth short PlayerMayAttempt short SetPlayerChance short MenuLevel short Injured BEGIN OnLoad if ( BoomerHealed == 0 && GetDead == 0 ) setRestrained 1 endif END begin OnDeath set BoomerHealed to 1 end begin OnDeath player set NellisArgyllRef.FindPlayer to 4 set VFreeformNellis.iMedicineManKilled to 1 nellisargyllRef.evp addreputation repnvboomer 0 4 end BEGIN OnActivate if getdead && NellisArgyllREF.GetDead activate elseif VFreeformNellis.iMedicineManKilled == 0 && (VFreeformNellis.iMedicineManActive || NellisArgyllRef.GetDead) if ( isActionRef player == 1 ) && ( BoomerHealed == 0 ) && ( GetDead == 0 ) if ( player.GetAv Medicine < 60 ) ShowMessage InjuredBoomerLowSkill3Msg elseif ( player.GetAv Medicine >= 60 ) set PlayerMayAttempt to 1 ShowMessage InjuredBoomer3Msg endif elseif Injured == 1 showMessage InjuredBoomerWorseCondition else activate endif elseif VFreeformNellis.iMedicineManKilled showMessage InjuredBoomerNoOperate else showMessage InjuredBoomerNoOperateYet endif END BEGIN GameMode if ( BoomerHealed == 0 ) set Button to GetButtonPressed if ( Button > 0 ) if ( Button == 1 ) if ( PlayerMayAttempt == 0 ) && player.GetAV Medicine <= 20 ShowMessage InjuredBoomerKill3Msg set NellisArgyllRef.FindPlayer to 4 InjuredBoomer3REF.kill set VFreeformNellis.iMedicineManKilled to 1 ;NellisArgyllRef.StartConversation Player NellisArgyllPatientKilled nellisargyllRef.evp addreputation repnvboomer 0 4 set BoomerHealed to 1 elseif ( PlayerMayAttempt == 0 ) && player.GetAV Medicine <= 40 ShowMessage InjuredBoomer3LowSkillMsg2 set NellisArgyllRef.FindPlayer to 1 set Injured to 1 set VFreeformNellis.iMedicineManWorsened to VFreeformNellis.iMedicineManWorsened +1 set VFreeformNellis.iMedicineMan to VFreeformNellis.iMedicineMan + 1 ;NellisArgyllRef.StartConversation Player NellisArgyllPatientHarmed nellisargyllRef.evp addreputation repNVBoomer 0 2 set BoomerHealed to 1 elseif ( PlayerMayAttempt == 0 ) && (player.GetAV Medicine < 60) ShowMessage InjuredBoomerNeutralMsg else ShowMessage InjuredBoomerHeal3Msg ;set NellisArgyllRef.FindPlayer to 2 ;nellisargyllRef.evp set VFreeformNellis.iMedicineMan to VFreeformNellis.iMedicineMan + 1 ;NellisArgyllRef.StartConversation NellisArgyllRef NellisArgyllPatientHealed NellisArgyllRef.say NellisArgyllPatientHealed 1 rewardXP 60 addreputation repNVBoomer 1 4 set BoomerHealed to 1 endif endif endif endif END
602InjuredBoomerSCRIPTSCN InjuredBoomerSCRIPT short BoomerHealed short Button short MenuDepth short PlayerMayAttempt short SetPlayerChance short MenuLevel short Injured BEGIN OnLoad if ( BoomerHealed == 0 && GetDead == 0 ) setRestrained 1 SetUnconscious 1 endif END begin OnDeath set BoomerHealed to 1 end begin OnDeath player set NellisArgyllRef.FindPlayer to 4 set VFreeformNellis.iMedicineManKilled to 1 nellisargyllRef.evp addreputation repnvboomer 0 4 end BEGIN OnActivate if getdead && NellisArgyllREF.GetDead activate elseif VFreeformNellis.iMedicineManKilled == 0 && (VFreeformNellis.iMedicineManActive || NellisArgyllRef.GetDead) if ( isActionRef player == 1 ) && ( BoomerHealed == 0 ) && ( GetDead == 0 ) if ( player.GetAv Medicine < 40 ) ShowMessage InjuredBoomerLowSkillMsg elseif ( player.GetAv Medicine >= 40 ) set PlayerMayAttempt to 1 ShowMessage InjuredBoomerMsg endif elseif Injured == 1 showMessage InjuredBoomerWorseCondition else activate endif elseif VFreeformNellis.iMedicineManKilled showMessage InjuredBoomerNoOperate else showMessage InjuredBoomerNoOperateYet endif END BEGIN GameMode if ( BoomerHealed == 0 ) set Button to GetButtonPressed if ( Button > 0 ) if ( PlayerMayAttempt == 0 ) && (player.GetAV Medicine <= 20) set NellisArgyllRef.FindPlayer to 4 ShowMessage InjuredBoomerKillMsg InjuredBoomerREF.kill set VFreeformNellis.iMedicineManKilled to 1 ;NellisArgyllRef.StartConversation Player NellisArgyllPatientKilled nellisargyllRef.evp addreputation repnvboomer 0 4 set BoomerHealed to 1 elseif ( PlayerMayAttempt == 0 ) && (player.GetAV Medicine <= 30) set NellisArgyllRef.FindPlayer to 1 ShowMessage InjuredBoomerLowSkillMsg2 set Injured to 1 set VFreeformNellis.iMedicineManWorsened to VFreeformNellis.iMedicineManWorsened +1 set VFreeformNellis.iMedicineMan to VFreeformNellis.iMedicineMan + 1 ;NellisArgyllRef.StartConversation Player NellisArgyllPatientHarmed nellisargyllRef.evp addreputation repNVBoomer 0 2 set BoomerHealed to 1 elseif ( PlayerMayAttempt == 0 ) && (player.GetAV Medicine <= 40) ShowMessage InjuredBoomerNeutralMsg else ;set NellisArgyllRef.FindPlayer to 2 ShowMessage InjuredBoomerHealMsg set VFreeformNellis.iMedicineMan to VFreeformNellis.iMedicineMan + 1 ;NellisArgyllRef.StartConversation NellisArgyllRef NellisArgyllPatientHealed NellisArgyllRef.say NellisArgyllPatientHealed 1 rewardXP 40 ;nellisargyllRef.evp addreputation repNVBoomer 1 4 set BoomerHealed to 1 endif endif endif END
603IntroTriggerSCRIPTscn IntroTriggerSCRIPT short triggered float timer begin OnTriggerEnter if IsActionRef player == 1 if triggered == 0 set triggered to 1 set timer to 10 endif endif end begin gamemode if triggered == 1 if timer > 0 set timer to timer - GetSecondsPassed else ; set variable and trigger BOS guy set triggered to 2 ; message "Trigger BOS guy" ;IntroDude.evp endif endif end
604JacobstownCalamityScriptscn JacobstownCalamityScript begin SayToDone CalamityToDoctorHenry01 VRemDoctorHenryRef.SayTo LilyRef DoctorHenryToLily03 end begin OnDeath ; JSH 11.10.10 - Fail VMS41 if not completed if (GetQuestCompleted VMS41 == 0) SetStage VMS41 110 endif if GetStageDone VMS54 30 SetStage VMS24 110 elseif VRemDoctorHenryRef.GetDead && GetStageDone VMS24 100 == 0 SetStage VMS24 110 endif end
605JacobstownKeeneScriptscn JacobstownKeeneScript begin OnDeath if (GetObjectiveDisplayed VMS41 65 == 0) ; Player is killing Keene unprovoked SetStage VMS41 110 SetPCEnemyOfFaction JacobstownFaction 1 endif end
606JacobstownMarcusScriptscn JacobstownMarcusScript short JacobstownHostile begin OnDeath if (JacobstownHostile == 0) && (IsKiller player) SetEnemy JacobstownFaction PlayerFaction SetEnemy JacobstownNightkinFaction PlayerFaction if (GetQuestCompleted VMS24 == 0) SetStage VMS24 110 endif if (GetQuestCompleted VMS41 == 0) SetStage VMS41 110 endif if (GetQuestCompleted VMS50 == 0) SetStage VMS50 110 endif if (GetQuestCompleted VMS54 == 0) SetStage VMS54 110 endif set JacobstownHostile to 1 endif set vDialogueJacobstown.bMarcusDead to 1 end
607JacobstownMercenaryScriptscn JacobstownMercenaryScript begin OnStartCombat player if (VMS50.MercsHostile == 0) SetEnemy JacobstownMercenaryFaction PlayerFaction SetEnemy JacobstownFaction JacobstownMercenaryFaction SetAlly JacobstownFaction PlayerFaction 1 1 SetEnemy JacobstownNightkinFaction JacobstownMercenaryFaction set VMS50.MercsHostile to 1 if (GetQuestRunning VMS50) if (GetObjectiveDisplayed VMS50 10) && (GetObjectiveCompleted VMS50 10 == 0) SetObjectiveDisplayed VMS50 10 0 SetObjectiveDisplayed VMS50 26 1 endif SetObjectiveDisplayed VMS50 20 0 SetObjectiveDisplayed VMS50 30 0 endif endif if (GetQuestRunning VMS50 == 0) && (MarcusRef.GetDead == 0) StartQuest VMS50 SetObjectiveDisplayed VMS50 26 1 endif end begin OnDeath if (GetQuestRunning VMS50 == 0) && (MarcusRef.GetDead == 0) StartQuest VMS50 SetObjectiveDisplayed VMS50 26 1 set VMS50.MercDeaths to (VMS50.MercDeaths + 1) else set VMS50.MercDeaths to (VMS50.MercDeaths + 1) endif end begin OnReset if (GetStageDone VMS50 100) Disable MarkForDelete endif end
608JacobstownMercenaryTriggerScriptscn JacobstownMercenaryTriggerScript short DoOnce begin OnTriggerEnter player if DoOnce == 0 set vDialogueJacobstown.MercenaryTrouble to 1 JacobstownMercenaryMarker.enable set DoOnce to 1 Disable MarkForDelete endif end
609JacobstownNightstalkerScriptscn JacobstownNightstalkerScript short Initialize short Decloak begin OnLoad if Initialize == 0 AddSpell StealthBoyInvisibilitySpell set Initialize to 1 endif end begin OnHit if Decloak == 0 RemoveSpell StealthBoyInvisibilitySpell set Decloak to 1 endif end begin OnCombatEnd AddSpell StealthBoyInvisibilitySpell set Decloak to 0 end
610JalapenoScriptscn JalapenoScript int State begin onActivate if State == 0 && GetActionRef == player player.additem JalapenoPepper 2 set State to 1 playGroup Forward 1 setdestroyed 1 endif end begin onLoad if State == 0 playGroup Backward 1 elseif State == 1 playGroup Forward 1 endif end begin onReset if State == 1 playgroup Backward 1 set State to 0 setdestroyed 0 endif end
611JarPistolPowderAddScriptscn JarPistolPowderAddScript int killme BEGIN OnAdd Player set killme to 1 END begin GameMode if (killme == 1) Player.AddItem PowderPistol 200 RemoveMe endif end
612JarRiflePowderAddScriptscn JarRiflePowderAddScript int killme BEGIN OnAdd Player set killme to 1 END begin GameMode if (killme == 1) Player.AddItem PowderRifle 200 RemoveMe endif end
613JasonBrightSpeechTriggerSCRIPTscn JasonBrightSpeechTriggerSCRIPT begin onTriggerEnter JasonBright ; Only give the speech when appropriate if VMS01.JasonExodusSpeech == 1 JasonBright.StartConversation JasonBright JasonBrightSpeech1 endif end
614JulesScriptscn JulesScript BEGIN OnDeath if (GetObjectiveCompleted VDialogueVegasNorth 40 == 0) SetStage VDialogueVegasNorth 110 endif END
615KeelyScriptscn KeelyScript begin OnDeath set VFreeformVault22.KeelyState to 7 ; Get rid of all Keely objectives SetObjectiveDisplayed VMS06 30 0 SetObjectiveDisplayed VMS06 40 0 SetObjectiveDisplayed VMS06 50 0 SetObjectiveDisplayed VMS06 60 0 SetObjectiveDisplayed VMS06 70 0 ; If the data's gone when Keely dies, the player is completely screwed if (VFreeformVault22.DataState > 1) && (VFreeformVault22.DataState < 4) SetStage VMS06 33 endif end begin OnActivate ; Fix so the player can't talk to Keely and get the wrong line while she's heading to the ; elevator after being rescued. if VFreeformVault22.KeelyState == 4 && player.GetInCell Vault22e == 1 ; Do nothing else Activate endif end
616KhanFactionOutfitWarningScriptscn KhanFactionOutfitWarningScript float fUpdatedNegNCR float fUpdatedPosNCR float fUpdatedNegCL float fUpdatedPosCL float fUpdatedNegBoS float fUpdatedPosBoS float fUpdatedNegGK float fUpdatedPosGK float fUpdatedNegPG float fUpdatedPosPG Begin OnEquip Player ;Check to see if player was wearing faction armor. if DisguiseFactionPulseQuest.bFactionArmorEquipped == 0 ;Set variable to track wearing faction armor set DisguiseFactionPulseQuest.bFactionArmorEquipped to 1 ;Player was not wearing faction armor - so we store their reputation values, we don't need to clear it here, it'll get cleared below ;Store Reputations set DisguiseFactionPulseQuest.fNCRNegReputation to GetReputation RepNVNCR 0 set DisguiseFactionPulseQuest.fNCRPosReputation to GetReputation RepNVNCR 1 set DisguiseFactionPulseQuest.fLegionNegReputation to GetReputation RepNVCaesarsLegion 0 set DisguiseFactionPulseQuest.fLegionPosReputation to GetReputation RepNVCaesarsLegion 1 set DisguiseFactionPulseQuest.fBoSNegReputation to GetReputation RepNVBrotherhood 0 set DisguiseFactionPulseQuest.fBoSPosReputation to GetReputation RepNVBrotherhood 1 set DisguiseFactionPulseQuest.fKhanNegReputation to GetReputation RepNVGreatKhans 0 set DisguiseFactionPulseQuest.fKhanPosReputation to GetReputation RepNVGreatKhans 1 set DisguiseFactionPulseQuest.fPowderNegReputation to GetReputation RepNVPowderGanger 0 set DisguiseFactionPulseQuest.fPowderPosReputation to GetReputation RepNVPowderGanger 1 else ;Get Current Faction Values and add stored values set DisguiseFactionPulseQuest.fNCRNegReputation to GetReputation RepNVNCR 0 + DisguiseFactionPulseQuest.fNCRNegReputation set DisguiseFactionPulseQuest.fNCRPosReputation to GetReputation RepNVNCR 1+ DisguiseFactionPulseQuest.fNCRPosReputation set DisguiseFactionPulseQuest.fLegionNegReputation to GetReputation RepNVCaesarsLegion 0 + DisguiseFactionPulseQuest.fLegionNegReputation set DisguiseFactionPulseQuest.fLegionPosReputation to GetReputation RepNVCaesarsLegion 1 + DisguiseFactionPulseQuest.fLegionPosReputation set DisguiseFactionPulseQuest.fBoSNegReputation to GetReputation RepNVBrotherhood 0 + DisguiseFactionPulseQuest.fBoSNegReputation set DisguiseFactionPulseQuest.fBoSPosReputation to GetReputation RepNVBrotherhood 1 + DisguiseFactionPulseQuest.fBoSPosReputation set DisguiseFactionPulseQuest.fKhanNegReputation to GetReputation RepNVGreatKhans 0 + DisguiseFactionPulseQuest.fKhanNegReputation set DisguiseFactionPulseQuest.fKhanPosReputation to GetReputation RepNVGreatKhans 1 + DisguiseFactionPulseQuest.fKhanPosReputation set DisguiseFactionPulseQuest.fPowderNegReputation to GetReputation RepNVPowderGanger 0 + DisguiseFactionPulseQuest.fPowderNegReputation set DisguiseFactionPulseQuest.fPowderPosReputation to GetReputation RepNVPowderGanger 1 + DisguiseFactionPulseQuest.fPowderPosReputation endif if VFactionArmorTutorial == 0 ShowMessage VFactionOutfitTutorial set VFactionArmorTutorial to 1 endif ShowMessage KhanFactionOutfitWarning StartQuest DisguiseFactionPulseQuest ;Kicks the pulse placing quest setally ArmorGreatKhansFactionNV PlayerFaction 1 1 player.addtofaction ArmorGreatKhansFactionNVEnemy 0 ;Set NCR Alliance if the GK have joined the NCR if VStoryEventKhans == 1 setally ArmorNCRFactionNVEnemy GreatKhansFactionNV 1 1 setally PlayerFaction ArmorNCRFactionNV 1 1 player.addtofaction ARMORNCRFactionNVEnemy 0 endif ;Clear Reputations SetReputation RepNVNCR 0 0.0 SetReputation RepNVNCR 1 0.0 SetReputation RepNVCaesarsLegion 0 0.0 SetReputation RepNVCaesarsLegion 1 0.0 SetReputation RepNVBrotherhood 0 0.0 SetReputation RepNVBrotherhood 1 0.0 SetReputation RepNVGreatKhans 0 0.0 SetReputation RepNVGreatKhans 1 0.0 SetReputation RepNVPowderGanger 0 0.0 SetReputation RepNVPowderGanger 1 0.0 end Begin OnUnequip Player if Player.GetEquipped FactionGearNVGreatKhans == 0 SetEnemy ArmorGreatKhansFactionNV PlayerFaction 1 1 player.RemoveFromFaction ArmorGreatKhansFactionNVEnemy ShowMessage KhanFactionOutfitWarningOff ;UnSet NCR Alliance if the GK have joined the NCR if VStoryEventKhans == 1 SetEnemy PlayerFaction ArmorNCRFactionNV 1 1 player.RemoveFromFaction ARMORNCRFactionNVEnemy endif ;Restore Factions ;Get Current Values and add stored values set fUpdatedNegNCR to GetReputation RepNVNCR 0 + DisguiseFactionPulseQuest.fNCRNegReputation set fUpdatedPosNCR to GetReputation RepNVNCR 1+ DisguiseFactionPulseQuest.fNCRPosReputation set fUpdatedNegCL to GetReputation RepNVCaesarsLegion 0 + DisguiseFactionPulseQuest.fLegionNegReputation set fUpdatedPosCL to GetReputation RepNVCaesarsLegion 1 + DisguiseFactionPulseQuest.fLegionPosReputation set fUpdatedNegBoS to GetReputation RepNVBrotherhood 0 + DisguiseFactionPulseQuest.fBoSNegReputation set fUpdatedPosBoS to GetReputation RepNVBrotherhood 1 + DisguiseFactionPulseQuest.fBoSPosReputation set fUpdatedNegGK to GetReputation RepNVGreatKhans 0 + DisguiseFactionPulseQuest.fKhanNegReputation set fUpdatedPosGK to GetReputation RepNVGreatKhans 1 + DisguiseFactionPulseQuest.fKhanPosReputation set fUpdatedNegPG to GetReputation RepNVPowderGanger 0 + DisguiseFactionPulseQuest.fPowderNegReputation set fUpdatedPosPG to GetReputation RepNVPowderGanger 1 + DisguiseFactionPulseQuest.fPowderPosReputation endif ;If the player is not wearing ANY faction armor, clear this variable. if (Player.GetEquipped FactionGearNVNCR == 0) && (Player.GetEquipped FactionGearNVCaesar == 0) && (Player.GetEquipped FactionGearNVBrotherhood == 0) && (Player.GetEquipped FactionGearNVGreatKhans == 0) && (Player.GetEquipped FactionGearNVPowder == 0) && (player.GetEquipped VMS18WhiteGloveMask == 0 || (Player.GetEquipped OutfitFormalWear == 0 && player.GetEquipped ArmorWhiteGloveSociety == 0)) ;Clear Wearing Faction Armor Variable set DisguiseFactionPulseQuest.bFactionArmorEquipped to 0 ;Set Reputation Values to Updated SetReputation RepNVNCR 0 fUpdatedNegNCR SetReputation RepNVNCR 1 fUpdatedPosNCR SetReputation RepNVCaesarsLegion 0 fUpdatedNegCL SetReputation RepNVCaesarsLegion 1 fUpdatedPosCL SetReputation RepNVBrotherhood 0 fUpdatedNegBoS SetReputation RepNVBrotherhood 1 fUpdatedPosBoS SetReputation RepNVGreatKhans 0 fUpdatedNegGK SetReputation RepNVGreatKhans 1 fUpdatedPosGK SetReputation RepNVPowderGanger 0 fUpdatedNegPG SetReputation RepNVPowderGanger 1 fUpdatedPosPG endif end ;Restriction on Companions Begin OnAdd CraigBooneREF ShowMessage CompanionFactionArmorMsg DropMe End Begin OnAdd RoseofSharonCassidyREF ShowMessage CompanionFactionArmorMsg DropMe End Begin OnAdd VeronicaREF ShowMessage CompanionFactionArmorMsg DropMe End Begin OnAdd LilyREF ShowMessage CompanionFactionArmorMsg DropMe End Begin OnAdd RaulREF ShowMessage CompanionFactionArmorMsg DropMe End Begin OnAdd ArcadeREF ShowMessage CompanionFactionArmorMsg DropMe End Begin OnAdd EDE1REF ShowMessage CompanionFactionArmorMsg DropMe End Begin OnAdd EDE2REF ShowMessage CompanionFactionArmorMsg DropMe End Begin OnAdd EDE3REF ShowMessage CompanionFactionArmorMsg DropMe End Begin OnAdd RexREF ShowMessage CompanionFactionArmorMsg DropMe End
617KhanSnifferScriptscn KhanSnifferScript ; If the player is disguised as a member of The Khans and he's detected by a special ; sniffer character, the character sounds the alarm. ref MyHandler short DoOnce begin OnStartCombat Player if (GetQR DisguiseFactionPulseQuest == 1) && (IsSpellTarget DisguiseFactionPulseActorEffect == 1) sendAssaultAlarm Player GreatKhansFactionNV sendAssaultAlarm Player VKhanSnifferFaction set MyHandler to GetLinkedRef if (GetDistance player < 512) && MyHandler != 0 MyHandler.Say ChallengePlayer endif endif end
618KlaxonLightScriptscn KlaxonLightScript short state ; 0 = off, 1 = flashing begin OnLoad if state == 1 playgroup left 0 endif end begin onActivate if state == 1 set state to 0 playgroup backward 0 else set state to 1 playgroup forward 1 endif end begin gamemode if state == 1 if isAnimPlaying == 0 playgroup left 0 endif endif end
619KlaxonLightScriptRepconscn KlaxonLightScriptRepcon short state ; 0 = off, 1 = flashing int Alarm1stFloor int Alarm2ndFloor int Alarm3rdFloor begin OnLoad if state == 1 playgroup left 0 endif end begin gamemode set Alarm1stFloor to RepconHQFreeform.1stFloorAlarm set Alarm2ndFloor to RepconHQFreeform.2ndFloorAlarm set Alarm3rdFloor to RepconHQFreeform.3rdFloorAlarm if state == 1 if isAnimPlaying == 0 playgroup left 0 endif endif if GetInCell RepconHQ01 == 1 && Alarm1stFloor != 0 set state to 1 elseif GetInCell RepconHQ02 == 1 && Alarm2ndFloor != 0 set state to 1 elseif GetInCell RepconHQ03 == 1 && Alarm3rdFloor != 0 set state to 1 endif end
620L38Alarmwomanscn L38Alarmwoman Begin saytodone say vDialogueMrHouseRoomBreach END
621L38PlayerPodSCRIPTscn L38PlayerPodSCRIPT begin OnActivate set vdialogueMrHouse.seduction to 3 end
622L38RobcoProtectronSCRIPTscn L38RobcoProtectronSCRIPT begin onLoad if getav variable01 == 0 ; I'm currently "off" ; make me unconscious so I don't play sounds setUnconscious 1 ;else ;setav variable01 4 endif end
623L38SecretDoorSCRIPTscn L38SecretDoorSCRIPT ;begin onactivate ; if player.getitemcount vplatinumchip == 1 ; Lucky38SecretDoorREF.unlock ; Lucky38SecretDoorREF.setopenstate 1 ; setenemy lucky38faction playerfaction ; endif ;end
624L38SecuritronWarnSCRIPTscn L38SecuritronWarnSCRIPT short warned begin gamemode if warned == 0 GetDetected Player StartConversation Player L38Outer2Securitron02REF.evp ;set warned to 1 set vDialogueMrHouse.WallTermWarn to 1 endif end
625L38TimerSCRIPTscn L38TimerSCRIPT short DoOnce ;Script blocker float Timer ;Timer used for animation control short open BEGIN GameMode if ( timer > 0 ) set Timer to ( Timer - GetSecondsPassed ) else set open to 1 StopQuest L38TimerQuest endif endif END
626l38upgradeDisplaycase01SCRIPTscn L38upgradeDisplaycase01SCRIPT begin onadd ;Lucky38UpgradeDisplayCase01REF.enable 1 removeme end
627l38upgradeDisplaycase02SCRIPTscn L38upgradeDisplaycase02SCRIPT begin onadd ;Lucky38UpgradeDisplayCase01REF.enable 1 removeme end
628l38upgradefridgeSCRIPTscn L38upgradefridgeSCRIPT begin onadd L38RefrigeratorWithLiquorNEWREF.enable 1 removeme end
629L38upgradeGuestWardrobe01SCRIPTscn L38upgradeGuestWardrobe01SCRIPT begin onadd Lucky38UpgradeWardrob03REF.enable 1 removeme end
630L38upgradeGuestWardrobe02SCRIPTscn L38upgradeGuestWardrobe02SCRIPT begin onadd Lucky38UpgradeWardrob04REF.enable 1 removeme end
631l38upgradeGunRack01SCRIPTscn L38upgradeGunRack01SCRIPT begin onadd ;Lucky38UpgradeGunRack01REF.enable 1 removeme end
632l38upgradeGunRack02SCRIPTscn L38upgradeGunRack02SCRIPT begin onadd ;Lucky38UpgradeGunRack01REF.enable 1 removeme end
633L38UpgradeLocker01SCRIPTscn L38UpgradeLocker01SCRIPT begin onadd L38UpgradeLocker01REF.enable 1 removeme end
634L38UpgradeLocker02SCRIPTscn L38UpgradeLocker02SCRIPT begin onadd L38UpgradeLocker02REF.enable 1 removeme end
635l38upgrademasterwardrobe01SCRIPTscn L38upgrademasterwardrobe01SCRIPT begin onadd Lucky38UpgradeWardrob01REF.enable 1 removeme end
636l38upgrademasterwardrobe02SCRIPTscn L38upgrademasterwardrobe02SCRIPT begin onadd Lucky38UpgradeWardrob02REF.enable 1 removeme end
637l38upgradessvendingmachineSCRIPTscn L38upgradessvendingmachineSCRIPT begin onadd L38UpgradessVendingmachineREF.enable 1 removeme end
638l38upgradeSuitcase01SCRIPTscn L38upgradeSuitcase01SCRIPT begin onadd Lucky38UpgradeSuitcase01REF.enable 1 removeme end
639l38upgradeSuitcase02SCRIPTscn L38upgradeSuitcase02SCRIPT begin onadd L38UpgradeSuitcase02.enable 1 removeme end
640L38UpgradeTrunk01SCRIPTscn L38UpgradeTrunk01SCRIPT begin onadd L38UpgradeTrunk01REF.enable 1 removeme end
641L38UpgradeTrunk02SCRIPTscn L38UpgradeTrunk02SCRIPT begin onadd L38UpgradeTrunk02REF.enable 1 removeme end
642L38UpgradeWorkBenchSCRIPTscn L38UpgradeWorkBenchSCRIPT begin onadd L38UpgradeWorkBench01REF.enable 1 removeme end
643L38walltermchipSCRIPTscn L38walltermchipSCRIPT Begin onactivate if VStoryChipOwner == 1 Lucky38MrHouseTerminalREF.unlock endif End
644LakelurkCGSCRIPTscn LakelurkCGSCRIPT begin onDeath set vFreeformCampGuardian.iLakelurksdead to vFreeformCampGuardian.iLakelurksdead + 1 if vFreeformCampGuardian.iLakelurksdead == 18 set NVCGHalfordREF.iAllDead to 1 set NVCGHalfordREF.iDialogue to 4 NVCGHalfordREF.evp endif end
645LakeLurkKingSCRIPTscn LakeLurkKingSCRIPT begin onDeath set vfreeformcampguardian.iLakeLurkKingDead to 1 SetEnemy LakelurkFaction LakelurkFaction ;set all lakelurks in campguardiancaves to frenzied end
646LamplightBackGateSCRIPTscn LamplightBackGateSCRIPT BEGIN OnActivate if (isActionRef Player == 0) activate endif END
647LarsTaggartScriptscn LarsTaggartScript
648LaserRifleAmmoRegenscn LaserRifleAmmoRegen ; regen the ammo for the recharger rifle float updateTime begin onEquip player set updateTime to 0 end begin GameMode short delta if player.GetItemCount AmmoMicroFusionCell <= 999 if updateTime <= 0 ; ShowMessage LaserAmmoRegen delta GameHour updateTime player.additem AmmoMicroFusionCell 1 1 set updateTime to 2 else set updateTime to (updateTime - GetSecondsPassed ) endif endif end
649LDScientistBomb01SCRIPTscn LDScientistBomb01SCRIPT short isSequence ; 0 - Means sequence is not running, 1 - Means sequence is happening. short soundStage short doOnce ref myLink float Timer ; This is how long each sequence happens. ;*************************** Begin onLoad set Timer to 1 End ;*************************** Begin onTriggerEnter if (isActionRef player == 1) if (doOnce == 0) set isSequence to 1 set soundStage to 1 set doOnce to 1 endif endif end ;*************************** Begin gameMode if isSequence == 1 if (soundStage == 1) set myLink to getLinkedRef myLink.enable set Timer to 1.5 set soundstage to 2 endif if (soundStage == 2) if (Timer < 0) ;LDFakeExplosion02REF.placeatme LDScientistExplosion 1 set soundStage to 0 set isSequence to 0 else set Timer to (Timer - GetSecondsPassed) endif endif endif End ;*************************** ;Begin onTriggerEnter ; if isActionRef player == 1 ; if doOnce == 0 ; set Timer to 1 ; set myLink to getLinkedRef ; myLink.enable ; if (Timer < 0) ; LDFakeExplosion02REF.placeatme GrenadeFragExplosion 1 ; set doOnce to 1 ; endif ; set Timer to (Timer - GetSecondsPassed) ; endif ; endif ;end
650LDWonderMeatMakerSCRIPTscn LDWonderMeatMakerSCRIPT ;--------------------------------------------------------------------------------------------------------------------------------------------- short hasItems short button short checkButtons ;--------------------------------------------------------------------------------------------------------------------------------------------- Begin onActivate if IsActionRef player == 1 if (player.GetItemCount MoleRatMeat > 0) && (player.GetItemCount WonderGlue > 0) set hasItems to 1 else set hasItems to 0 endif set checkButtons to 1 ShowMessage LDWonderMeatMakerFirstMsg endif End ;--------------------------------------------------------------------------------------------------------------------------------------------- Begin gameMode if (checkButtons == 1) set button to getbuttonpressed if button > -1 if button == 0 if hasItems == 1 ShowMessage LDWonderMeatMakerSuccessMsg player.additem MoleRatWonderMeat 1 player.removeitem MoleRatMeat 1 player.removeitem WonderGlue 1 elseif (hasItems == 0) ShowMessage LDWonderMeatMakerFailMsg endif elseif button == 1 ;don't do anything endif set checkButtons to 0 endif endif End ;---------------------------------------------------------------------------------------------------------------------------------------------
651LeftLegDismemberSCRIPTscn LeftLegDismemberSCRIPT ; This trigger has a script that will explode the head of its linkedRef ref linkedRef short doOnce Begin onLoad if doOnce == 0 set linkedRef to getLinkedRef linkedRef.killactor linkedRef 7 ; Explode head set doOnce to 1 ; Trigger is only set off one time endif End
652LegateCampMongrelCageBrokenScriptscn LegateCampMongrelCageBrokenScript ; - Jorge Begin OnActivate If GetActionRef == player ShowMessage LegateCampMongrelGateBrokenMessage Return Else Activate Endif End
653LegateCampMongrelCageScriptscn LegateCampMongrelCageScript ; - Jorge Short Button Short Closed Short MongrelsSleep Short MessageStart Short FailMessage Short DisplayOnce Begin OnActivate If GetActionRef == player If GetObjectiveDisplayed VMQ02 120 == 1 Activate Return Endif If Closed != 1 && FailMessage != 1 ShowMessage LegateCampMongrelGateMessage Set MessageStart to 1 Set FailMessage to 0 Set DisplayOnce to 0 ; Elseif Closed != 1 && FailMessage == 1 ; ShowMessage LegateCampMongrelGateMessageFail Elseif Closed == 1 Return Endif Else If Closed != 1 Activate Else Return Endif Endif End Begin GameMode ;MenuMode 1001 Set Button to GetButtonPressed If MessageStart == 1 && FailMessage != 1 If Button == 0 Return Set FailMessage to 0 Set DisplayOnce to 0 Elseif Button == 1 If FailMessage != 1 Set FailMessage to 1 Endif Elseif Button == 2 If Closed != 1 Set VLegateShowdown.MongrelSabotaged to 1 RewardXP 75 LegateCampMongrelGateREF.Disable LegateCampMongrelGateBrokenREF.Enable ; LegateCampMongrelGateREF.Lock 255 Set Closed to 1 Endif Elseif Button == 3 Return Set FailMessage to 0 Set DisplayOnce to 0 Endif Elseif MessageStart == 1 && FailMessage == 1 If DisplayOnce != 1 ShowMessage LegateCampMongrelGateMessageFail Set DisplayOnce to 1 Endif Set Button to GetButtonPressed If Button == 0 Return Set FailMessage to 0 Set DisplayOnce to 0 Set MessageStart to 0 Elseif Button == 1 Set FailMessage to 0 Set DisplayOnce to 0 Set MessageStart to 0 Endif Endif End
654LegateKnockdownScriptscn LegateKnockdownScript ; - Jorge Ref Self Begin ScriptEffectStart Set Self to GetSelf If VLegionLegateLaniusREF == Self Return Else If Self.HasPerk Stonewall != 1 VLegionLegateLaniusREF.PushActorAway Self 10 Else ShowMessage StonewallMessage EndIf Endif End
655LegateKnockdownScript2scn LegateKnockdownScript2 ; - Jorge Short Chance Ref Self Begin ScriptEffectStart Set Self to GetSelf Set Chance to GetRandomPercent If VLegionLegateLaniusREF == Self Return Else If Chance <= 15 If Self.HasPerk Stonewall !=1 If Self.IsIdlePlaying != 1 VLegionLegateLaniusREF.PushActorAway Self 10 Endif Else ShowMessage StonewallMessage EndIf Endif Endif End
656LegateKnockdownScript3scn LegateKnockdownScript3 ; - Jorge Short Chance Ref Self Begin ScriptEffectStart Set Self to GetSelf Set Chance to GetRandomPercent If Player == Self Return Else If Chance <= 15 Player.PushActorAway Self 10 Endif Endif End
657LegionaryDeadSeaDialogueSCRIPTscn LegionaryDeadSeaDialogueSCRIPT int doonce int runonce ;DeathItem Trait doesn't allow conditionals. ;Adds death item to NPC's inventory only if vfreeformforlornhope03 is active. BEGIN onDeath ;Added this to only fail the quest if you have it active. -CES if GetStage VDeadSea > 0 setstage vdeadsea 66 endif IF getstage vFreeformForlornHope03 == 10 additem legionear 1 endIF if (CFHMajorPolatliREF.GetDead == 1) && (CFHSergeantReyesREF.GetDead == 1) && (CFHCarlMayesREF.GetDead == 1) && (CFHRichardsREF.GetDead == 1) ;Legion wiped out CFH. Set VStoryEventNelson to 3 else ;Nelson wiped out set VStoryEventNelson to 1 endif END
658LegionDropBoxScriptscn LegionDropBoxScript begin OnReset end
659LegionEarDeathScriptscn LegionEarDeathScript ;DeathItem Trait doesn't allow conditionals. ;Adds death item to NPC's inventory only if vfreeformforlornhope03 is active. BEGIN onDeath IF getstage vFreeformForlornHope03 == 10 additem legionear 1 endIF END
660LegionEarSnifferScriptscn LegionEarSnifferScript ref MyHandler ;DeathItem Trait doesn't allow conditionals. ;Adds death item to NPC's inventory only if vfreeformforlornhope03 is active. BEGIN onDeath IF getstage vFreeformForlornHope03 == 10 additem legionear 1 endIF END begin OnStartCombat Player if (GetQR DisguiseFactionPulseQuest == 1) && (IsSpellTarget DisguiseFactionPulseActorEffect == 1) sendAssaultAlarm Player VCaesarsLegionFaction sendAssaultAlarm Player VCaesarsLegionSnifferFaction set MyHandler to GetLinkedRef if (GetDistance player < 512) && MyHandler != 0 MyHandler.Say ChallengePlayer endif endif end
661LegionExplorerAuraEffectScriptscn LegionExplorerAuraEffectScript ; - Jorge Ref Self Begin ScriptEffectStart If Self.GetInFaction VCaesarsLegionFaction != 1 Return Elseif Self.GetInFaction VCaesarsLegionFaction == 1 Set Self to GetSelf Self.ModActorValue Perception 2 Self.PMS AlienCritGlowFXShader ; ShowWarning "Effect Started." Endif End Begin ScriptEffectUpdate End Begin ScriptEffectFinish If Self.GetInFaction VCaesarsLegionFaction != 1 Return Elseif Self.GetInFaction VCaesarsLegionFaction == 1 Self.ModActorValue Perception -2 Self.PMS GlowingOneFXShader ; ShowWarning "Effect Ended." Endif End
662LegionExplorerAuraTokenScn LegionExplorerAuraToken ; This script runs on an unplayable token in Legion Explorers' inventory. I place this GameMode code in an item so as not to run the script on the Actor entity. ; The token merely kicks in a timer that, when appropriate, makes the Legion Explorer's reference cast on itself (CIOS) an AOE, touch based, spell. This AOE spell is responsible for ; applying the "aura" effects on nearby Legion allies. ; - Jorge Ref LegionDude Float Timer Short Active Begin GameMode If Active != 1 Set LegionDude to GetContainer Set Timer to 2 Set Active to 1 Elseif Active == 1 If LegionDude.GetDead == 1 Return Else If LegionDude.IsInCombat != 1 Return Elseif LegionDude.IsInCombat == 1 Set Timer to (Timer - GetSecondsPassed) If Timer > 0 Return Elseif Timer <= 0 LegionDude.CIOS LegionExplorerAura Set Timer to 11 Set Active to 0 Return Endif Endif Endif Endif End Begin OnLoad Set LegionDude to GetContainer Set Timer to 11 Set Active to 0 End Begin OnReset Set LegionDude to GetContainer Set Timer to 11 Set Active to 0 End
663LegionMongrelHamstringEffectScriptscn LegionMongrelHamstringEffectScript float RandomLeg ref MyTarget short TargetArmorRating short HamstringDamage Begin ScriptEffectStart set MyTarget to GetCombatTarget set RandomLeg to GetRandomPercent set TargetArmorRating to (MyTarget.GetArmorRating * 0.15) set HamstringDamage to (20 - TargetArmorRating) if (HamstringDamage < 0) set HamstringDamage to 1 endif if (RandomLeg > 50) && (MyTarget.GetActorValue LeftMobilityCondition > 0) MyTarget.DamageActorValue LeftMobilityCondition HamstringDamage else MyTarget.DamageActorValue RightMobilityCondition HamstringDamage endif End
664LegionMongrelSnifferLegateScriptscn LegionMongrelSnifferLegateScript ; If the player is disguised as a member of Caesar Legion and he's detected by a special ; sniffer mongrel, the mongrel and its handler sound the alarm. ; - Jorge ref MyHandler short DoOnce begin OnStartCombat Player If VLegateShowdown.LegateYields == 1 Return Else sendAssaultAlarm Player VCaesarsLegionFaction sendAssaultAlarm Player VCaesarsLegionSnifferFaction set MyHandler to GetLinkedRef if (GetDistance player < 512) && MyHandler != 0 MyHandler.Say ChallengePlayer ; endif Endif end
665LegionMongrelSnifferScriptscn LegionMongrelSnifferScript ; If the player is disguised as a member of Caesar Legion and he's detected by a special ; sniffer mongrel, the mongrel and its handler sound the alarm. ref MyHandler short DoOnce begin OnStartCombat Player if (GetQR DisguiseFactionPulseQuest == 1) && (IsSpellTarget DisguiseFactionPulseActorEffect == 1) sendAssaultAlarm Player VCaesarsLegionFaction sendAssaultAlarm Player VCaesarsLegionSnifferFaction set MyHandler to GetLinkedRef if (GetDistance player < 512) && MyHandler != 0 MyHandler.Say ChallengePlayer endif endif end
666LenfantMutantMoveScriptscn LenfantMutantMoveScript ref myLink short doOnce begin OnTriggerEnter Player if doOnce == 0 set myLink to getLinkedRef set doOnce to 1 myLink.setav Variable07 1 endif end
667LieutenantGorobetsScriptscn LieutenantGorobetsScript begin OnDeath if (GetStageDone VMS56 100 == 0) SetStage VMS56 110 endif end
668LilyBlackMountainBarkSCRIPTscn LilyBlackMountainBarkSCRIPT BEGIN OnTriggerEnter LilyREF LilyREF.SayTo Player LilyBlackMountain END
669LilyDogBarkSCRIPTscn LilyDogBarkSCRIPT BEGIN OnTriggerEnter LilyREF LilyREF.SayTo Player LilyDogs END
670LilyMedicineTimerSCRIPTscn LilyMedicineTimerSCRIPT FLOAT fRestTimer ; Checked on starting rest menu to save current time FLOAT fTimer short bDoOnce int bMedicineTime BEGIN GameMode if (fTimer > 0) set fTimer to (fTimer - GetSecondsPassed) else LilyREF.PlaySound3D LilyMedicineBeep set fTimer to 1440 if (VDialogueLily.iLilyUpgrade <= 1) && (bMedicineTime == 0) set bMedicineTime to 1 elseif (VDialogueLily.iLilyUpgrade <= 1) && (bMedicineTime == 1) set bMedicineTime to 0 LilyREF.SayTo LilyREF LilyMedicine elseif (VDialogueLily.iLilyUpgrade == 2) LilyREF.SayTo LilyREF LilyMedicine endif endif if fRestTimer == 0 return elseif (fRestTimer < GetCurrentTime) VLilyGrandkidsRecordingREF.StartRadioConversation RadioHello LilyREF.SetNPCRadio 1 VLilyGrandkidsRecordingREF ; ShowMessage TEMPLilyRecording1 ; TEMP, delete after dialogue export ; ShowMessage TEMPLilyRecording2 ; TEMP, delete after dialogue export ; ShowMessage TEMPLilyRecording3 ; TEMP, delete after dialogue export ; ShowMessage TEMPLilyRecording4 ; TEMP, delete after dialogue export ; ShowMessage TEMPLilyRecording5 ; TEMP, delete after dialogue export ; ShowMessage TEMPLilyRecording6 ; TEMP, delete after dialogue export ; ShowMessage TEMPLilyRecording7 ; TEMP, delete after dialogue export ; set VDialogueLily.LilyHolotape to 7 ; TEMP, delete after dialogue export set fRestTimer to 0 elseif (fRestTimer == GetCurrentTime) set fRestTimer to 0 set bDoOnce to 0 endif END BEGIN MenuMode 1012 if (VDialogueLily.bPsychoticBreak == 2) && (VDialogueLily.bMedicine == 2) && (VDialogueLily.bLeo == 2) && (VDialogueLily.iLilyUpgrade == 0) && (VDialogueLily.LilyHolotape == 0) && (bDoOnce == 0) set fRestTimer to GetCurrentTime set bDoOnce to 1 endif END
671LilyNellisBarkSCRIPTSCN LilyNellisBarkSCRIPT BEGIN OnTriggerEnter LilyREF LilyREF.SayTo Player LilyBoomers END
672LilyNovacBarkSCRIPTscn LilyNovacBarkSCRIPT BEGIN OnTriggerEnter LilyREF LilyREF.SayTo Player LilyNovac END
673LilyScriptscn LilyScript int Waiting ; 0 = Not waiting, 1 = Waiting int CombatStyleMelee ; 0 = Not melee, 1= Melee int CombatStyleRanged ; 0 = Not ranged, 1 = Ranged int IsFollowingDefault ; 0 = Not following default, 1 = Is following default range int IsFollowingLong ; 0 = Not following long, 1 = Is following long int FollowerSwitchAggressive ; 0 = Passive (wait on player), 1 = Aggressive (attack when see enemies) int bBreaking ; Lily is in a psychotic break short LilyReceivedStealthboy ; 0 = No Stealthboy, 1 = Testing Stealthboy Short bCloaked; ; Is Lily Stealthboy-ing? Short SoundCheck; begin SayToDone LilyToDoctorHenry01 VRemDoctorHenryRef.SayTo LilyRef DoctorHenryToLily02 end begin SayToDone LilyToDoctorHenry02 VRemDoctorHenryRef.SayTo JacobstownCalamityRef DoctorHenryToCalamity01 ;VRemDoctorHenryRef.SayTo LilyRef DoctorHenryToLily03 end begin SayToDone LilyToDoctorHenry03 ; "Awww... I liked having it on." VRemDoctorHenryRef.SayTo LilyRef DoctorHenryToLily04 ; "I'll get back to you on that in a moment..." SetStage VMS41 60 end BEGIN OnLoad LilyREF.SetNPCRadio 1 VLilyGrandkidsRecordingREF ;Script to make sure we set the right combat style on loading. If (CombatStyleRanged == 1) LilyREF.SetCombatStyle FollowersCombatStyleRanged; Else LilyREF.SetCombatStyle FollowersCombatStyleMelee; EndIf END ;--------------------------------------------------------------------------------------------------------------------------------------------- begin OnHit if (VdialogueLily.iLilyUpgrade <= 1) if (GetHealthPercentage <= 0.25) && (VDialogueLily.bOncePerCombat == 0) if VDialogueLily.bPsychoticBreak == 0 if (VNPCFollowers.bLilyHired == 1) ShowMessage FollowerMessageLilyBreak endif set VDialogueLily.bPsychoticBreak to 1 endif ; LilyREF.SetPlayerTeammate 0 LilyREF.PlayIdle SB2HAIntimidate Set FollowerSwitchAggressive to 1 LilyREF.RestoreAV Health 100 set bBreaking to 1 StartQuest LilysPsychoticBreaks set VDialogueLily.bOncePerCombat to 1 set LilysPsychoticBreaks.bRunTimer to 1 set LilysPsychoticBreaks.fTimer to 60 endif elseif (VdialogueLily.iLilyUpgrade == 3) if (GetHealthPercentage <= 0.50) && (VDialogueLily.bOncePerCombat == 0) if VDialogueLily.bPsychoticBreak == 0 if (VNPCFollowers.bLilyHired == 1) ShowMessage FollowerMessageLilyBreak endif set VDialogueLily.bPsychoticBreak to 1 endif ; LilyREF.SetPlayerTeammate 0 LilyREF.PlayIdle SB2HAIntimidate Set FollowerSwitchAggressive to 1 LilyREF.RestoreAV Health 150 set bBreaking to 1 StartQuest LilysPsychoticBreaks set VDialogueLily.bOncePerCombat to 1 set LilysPsychoticBreaks.bRunTimer to 1 set LilysPsychoticBreaks.fTimer to 60 endif endif end ;--------------------------------------------------------------------------------------------------------------------------------------------- begin OnDeath if VNPCFollowers.bLilyHired == 1 set VNPCFollowers.nCurrentFollowers to VNPCFollowers.nCurrentFollowers - 1; set VNPCFollowers.bHumanoidInParty to 0 if (VNPCFollowers.nCurrentFollowers == 0) set VNPCFollowers.bPlayerHasFollower to 0 endif set VNPCFollowers.bLilyHired to 0 ShowMessage FollowerMessageDeadLily player.RemovePerk StealthGirl ShowMessage FollowerMessagePerkLilyRemove endif set VNPCFollowers.bLilyDead to 1 end ;--------------------------------------------------------------------------------------------------------------------------------------------- begin OnCombatEND if VNPCFollowers.bLilyHired == 1 set VDialogueLily.bOncePerCombat to 0 if GetPlayerTeammate == 0 SetPlayerTeammate 1 endif endif if GetPlayerTeammate == 1 resethealth restoreav perceptioncondition 100 restoreav endurancecondition 100 restoreav leftattackcondition 100 restoreav leftmobilitycondition 100 restoreav rightattackcondition 100 restoreav rightmobilitycondition 100 endif end ;--------------------------------------------------------------------------------------------------------------------------------------------- BEGIN GameMode if bBreaking == 1 && FollowerSwitchAggressive == 0 set FollowerSwitchAggressive to 1 endif If (VNPCFollowers.bLilyHired == 1) If (Player.IsSneaking == 1) && (bCloaked == 0) PMS NightkinCloakFXShader 1 AddSpell StealthBoyInvisibilitySpell; Set bCloaked to 1; LilyREF.PlaySound3D OBJStealthBoyActivate EndIf If (Player.IsSneaking == 0) && (bCloaked == 1) PMS NightkinCloakFXShader 1 RemoveSpell StealthBoyInvisibilitySpell; Set bCloaked to 0; LilyREF.PlaySound3D OBJStealthBoyActivate; EndIf If (GetAnimAction == 2) && (bCloaked == 1) RemoveSpell StealthBoyInvisibilitySpell; set bCloaked to 0; PMS NightkinCloakFXShader 1; If (SoundCheck == 0) LilyREF.PlaySound3D OBJStealthBoyActivate; set soundcheck to 1; EndIf EndIf EndIf END
674LilysPsychoticBreaksSCRIPTscn LilysPsychoticBreaksSCRIPT short fTimer short bRunTimer BEGIN GameMode if bRunTimer == 0 return else if (fTimer > 0) set ftimer to (ftimer - GetSecondsPassed) else LilyREF.RemoveScriptPackage LilyPsychoticBreakPACKAGE Set bRunTimer to 0 SET LilyREF.bBreaking to 0 LilyREF.SayTo LilyREF LilyBreakEnd endif endif END
675LilyStripBarkSCRIPTscn LilyStripBarkSCRIPT BEGIN OnTriggerEnter LilyREF LilyREF.SayTo Player LilyTheStrip END
676LilyVaultBarkSCRIPTscn LilyVaultBarkSCRIPT BEGIN OnTriggerEnter LilyREF LilyREF.SayTo Player LilyVault END
677LIndaSchulerScriptscn LIndaSchulerScript int ShouldStand ; 0 = Should sit, player not in room ; 1 = Should stand, player in room ;--------------------------COPIED FROM DoctorTemplateSCRIPT--------------------------------------------------------- short DoOnce ;Script blocker float Timer ;Timer used for animation control ;-------------------------------------------------------------------------------------------------------------------------------------------------- BEGIN GameMode ;--------------------------COPIED FROM DoctorTemplateSCRIPT--------------------------------------------------------- ;When set to 1, plays medical animations for eight seconds then restarts conversation with the player if ( GetAV Variable01 == 1 ) if ( DoOnce== 0 ) disablePlayerControls resetai set Timer to 8 set DoOnce to 1 PlayIdle LooseDoctorHealPlayer endif set Timer to ( Timer - GetSecondsPassed ) if ( Timer <= 6 ) && ( DoOnce == 1 ) IMod FadeToBlackISFX set DoOnce to 2 endif if ( Timer <= 0 ) && ( IsImagespaceActive FadeToBlackISFX == 0 ) setstage VDoctors 10 enablePlayerControls SetAv Variable01 3 resetai Set DoOnce to 0 endif endif ;When set to 1, plays medical animations for eight seconds then restarts conversation with the player if ( GetAV Variable01 == 2 ) if ( DoOnce== 0 ) disablePlayerControls resetai set Timer to 8 set DoOnce to 1 PlayIdle LooseDoctorHealPlayer endif set Timer to ( Timer - GetSecondsPassed ) if ( Timer <= 6 ) && ( DoOnce == 1 ) IMod FadeToBlackISFX set DoOnce to 2 endif if ( Timer <= 0 ) && ( IsImagespaceActive FadeToBlackISFX == 0 ) setstage VDoctors 20 enablePlayerControls SetAv Variable01 3 resetai Set DoOnce to 0 endif endif ;-------------------------------------------------------------------------------------------------------------------------------------------------- END
678LittleBusterScriptscn LittleBusterScript begin OnReset if (GetQuestCompleted VMS12 == 1) && (LittleBusterRef.GetDead == 0) Disable LittleBusterDeadRef.Enable endif end begin OnDeath if (GetObjectiveDisplayed VMS12 22 == 1) && (GetObjectiveCompleted VMS12 22 == 0) SetObjectiveDisplayed VMS12 22 0 endif end
679LoganDeadScriptscn LoganDeadScript begin onDeath if LoganREF.GetDead == 1 && GetStage VMS44 < 10 SetStage VMS44 60 LoganREF.additem CampSearchlightPoliceStationKey 1 LoganREF.additem CampSearchlightFireStationKey 1 player.removeitem CampSearchlightRadSuit 1 player.removeitem CampSearchlight10mmPistol 1 player.removeitem CampSearchlight9mmSMG 1 player.removeitem CampSearchlightComputerParts 2 player.removeitem CampSearchlightFragGrenade 3 player.removeitem CampSearchlightGrenadeRifle 1 player.removeitem CampSearchlightRadioParts 2 player.removeitem CampSearchlight10mmPistol 1 player.removeitem CampSearchlight9mmSMG 1 player.removeitem CampSearchlightComputerParts 4 player.removeitem CampSearchlightFragGrenade 2 player.removeitem CampSearchlightRadioParts 2 elseif LoganREF.GetDead == 1 && GetStage VMS44 == 10 SetStage VMS44 60 LoganREF.additem CampSearchlightPoliceStationKey 1 LoganREF.additem CampSearchlightFireStationKey 1 player.removeitem CampSearchlightRadSuit 1 player.removeitem CampSearchlight10mmPistol 1 player.removeitem CampSearchlight9mmSMG 1 player.removeitem CampSearchlightComputerParts 2 player.removeitem CampSearchlightFragGrenade 3 player.removeitem CampSearchlightGrenadeRifle 1 player.removeitem CampSearchlightRadioParts 2 player.removeitem CampSearchlight10mmPistol 1 player.removeitem CampSearchlight9mmSMG 1 player.removeitem CampSearchlightComputerParts 4 player.removeitem CampSearchlightFragGrenade 2 player.removeitem CampSearchlightRadioParts 2 elseif LoganREF.GetDead == 1 && GetStage VMS44 <= 20 SetStage VMS44 55 rewardXP 75 CompleteQuest VMS44 LoganREF.additem CampSearchlightPoliceStationKey 1 LoganREF.additem CampSearchlightFireStationKey 1 player.removeitem CampSearchlightRadSuit 1 player.removeitem CampSearchlight10mmPistol 1 player.removeitem CampSearchlight9mmSMG 1 player.removeitem CampSearchlightComputerParts 2 player.removeitem CampSearchlightFragGrenade 3 player.removeitem CampSearchlightGrenadeRifle 1 player.removeitem CampSearchlightRadioParts 2 player.removeitem CampSearchlight10mmPistol 1 player.removeitem CampSearchlight9mmSMG 1 player.removeitem CampSearchlightComputerParts 4 player.removeitem CampSearchlightFragGrenade 2 player.removeitem CampSearchlightRadioParts 2 elseif LoganREF.GetDead == 1 && GetStage VMS44 <= 35 SetStage VMS44 55 rewardXP 125 CompleteQuest VMS44 LoganREF.additem CampSearchlightFireStationKey 1 player.removeitem CampSearchlightRadSuit 1 player.removeitem CampSearchlight10mmPistol 1 player.removeitem CampSearchlight9mmSMG 1 player.removeitem CampSearchlightComputerParts 2 player.removeitem CampSearchlightFragGrenade 3 player.removeitem CampSearchlightGrenadeRifle 1 player.removeitem CampSearchlightRadioParts 2 player.removeitem CampSearchlight10mmPistol 1 player.removeitem CampSearchlight9mmSMG 1 player.removeitem CampSearchlightComputerParts 4 player.removeitem CampSearchlightFragGrenade 2 player.removeitem CampSearchlightRadioParts 2 elseif LoganREF.GetDead == 1 && GetStage VMS44 <= 45 SetStage VMS44 55 rewardXP 175 CompleteQuest VMS44 player.removeitem CampSearchlight10mmPistol 1 player.removeitem CampSearchlight9mmSMG 1 player.removeitem CampSearchlightComputerParts 2 player.removeitem CampSearchlightFragGrenade 3 player.removeitem CampSearchlightGrenadeRifle 1 player.removeitem CampSearchlightRadioParts 2 player.removeitem CampSearchlight10mmPistol 1 player.removeitem CampSearchlight9mmSMG 1 player.removeitem CampSearchlightComputerParts 4 player.removeitem CampSearchlightFragGrenade 2 player.removeitem CampSearchlightRadioParts 2 elseif LoganREF.GetDead == 1 && GetStage VMS44 == 50 rewardXP 250 CompleteQuest VMS44 player.removeitem CampSearchlight10mmPistol 1 player.removeitem CampSearchlight9mmSMG 1 player.removeitem CampSearchlightComputerParts 2 player.removeitem CampSearchlightFragGrenade 3 player.removeitem CampSearchlightGrenadeRifle 1 player.removeitem CampSearchlightRadioParts 2 player.removeitem CampSearchlight10mmPistol 1 player.removeitem CampSearchlight9mmSMG 1 player.removeitem CampSearchlightComputerParts 4 player.removeitem CampSearchlightFragGrenade 2 player.removeitem CampSearchlightRadioParts 2 endif end
680LoganEvaluatePackagesscn LoganEvaluatePackages begin onTriggerEnter LoganREF.evp CSAdventurer01REF.evp CSAdventurer02REF.evp end
681LonesomeDrifterCampfireScriptscn LonesomeDrifterCampfireScript ; This script is attached to a trigger linked to a fire effect. It hides the fire during the day int Lit ; Tracks whether the fire is currently displaying ref FireREF ; Reference to the linked fire begin GameMode if Lit if GetCurrentTime > 6.0 && GetCurrentTime < 20.0 set FireREF to GetLinkedRef fIREREF.Disable 2 set Lit to 0 endif endif end
682Lucky38BasementTrigger02SCRIPTscn Lucky38BasementTrigger02SCRIPT begin OnTriggerEnter player if getstage vfreeformlucky38 == 11 setstage vfreeformlucky38 12 L38EmilyOrtalQuestMarker02REF.disable 1 L38EmilyOrtalQuestMarker03REF.enable 1 endif end
683Lucky38CasinoTrigger01SCRIPTscn Lucky38CasinoTrigger01SCRIPT Short bVisit38; Short bAssaultTops Short bKilledBenny Short bDoOnce begin OnTriggerEnter player ;showwarning this works ;enters the L38 for the first time If VStoryState < 20 Set vStoryState to 20 Endif If bVisit38 != 1 Set vStoryEventVisitsLucky38 to 1 Set bVisit38 to 1 Endif if VStoryEventAssaultTheTops == 1 If bAssaultTops != 1 If ( NVCRMrHouse01REF.HouseState != 2 && NVCRMrHouse01REF.HouseState!= 3 ) ; (Added 8_4_10) To check and see if House is still "alive" before enabling Emily. -ETB If ( bDoOnce == 0 ) FollowerEmily.enable 1 ActivateEmily.enable Set bDoOnce to 1 Endif Endif Set bAssaultTops to 1 Endif elseif VStoryEventBennyKilledCasino == 1 If bKilledBenny != 1 If ( NVCRMrHouse01REF.HouseState != 2 && NVCRMrHouse01REF.HouseState!= 3 ) ; (Added 8_4_10) To check and see if House is still "alive" before enabling Emily. -ETB If ( bDoOnce == 0 ) FollowerEmily.enable 1 ActivateEmily.enable Set bDoOnce to 1 Endif Endif Set bKilledBenny to 1 endif elseif VStoryEventBennyFLed == 1 If ( NVCRMrHouse01REF.HouseState != 2 && NVCRMrHouse01REF.HouseState!= 3 ) ; (Added 9_14_10) To check and see if Benny Fled beforeenabling Emily. -JRV If ( bDoOnce == 0 ) FollowerEmily.enable 1 ActivateEmily.enable Set bDoOnce to 1 Endif Endif endif If ( FollowerEmily.bEmilyTalkedToPC == 1 ) ActivateEmily.enable Set FollowerEmily.bEmilyTalkedToPC to 0 Endif end
684Lucky38ControlTerminalSCRIPTscn Lucky38ControlTerminalSCRIPT float Timer short bTimerDone; int HouseState short startsterile ;1 - kill ;2 - unplug int iPlayFog float fFogTimer begin Gamemode if (HouseState == 0) if (startsterile == 1) if (Timer <= 3.3 && bTimerDone == 0) set Timer to Timer + GetSecondsPassed else NVCRMrHouse01REF.setrestrained 0 NVCRMrHouse01REF.setghost 0 NVCRMrHouse01REF.kill NVCRMrHouse01REF 1 Set vStoryEventMrHouseNeutralized to 2 set startsterile to 0 set Timer to 0 set bTimerDone to 1; endif endif endif if (iPlayFog == 1) set fFogTimer to fFogtimer + GetSecondsPassed if fFogtimer > .2 set iPlayFog to 2 hChamberGroundFogREF.playgroup Forward 1 endif endif end
685Lucky38ElevatorDoorScriptscn Lucky38ElevatorDoorScript int Button ref ThisElevatorDoor begin OnActivate Set ThisElevatorDoor to GetSelf if IsActionRef Player == 1 if (getStage vdialoguelucky38entrance == 10) || (getStage vdialoguelucky38entrance == 15) || (GetStageDone VMQ02 10) || (ThisElevatorDoor == Lucky38LoungeElevatorDoorREF) ; Added condition "(getStage vdialoguelucky38entrance == 15)" for quest "VMQHouseLockdown" -ETB showmessage Lucky38ElevatorMessage else ;Activate endif else Activate endif end begin GameMode set Button to GetButtonPressed if Button == 5 ; Button 5 = "Basement" Set VMQHouse1.bOnLoungeFloor to 0 ; (8_11_10) To filter out Cocktail Lounge in "Lucky38ElevatorMessage" -ETB Set VMQHouse1.bOnPenthouseFloor to 0 ; (8_11_10) To filter out the Penthouse in "Lucky38ElevatorMessage" -ETB player.MoveTo Lucky38BasementMarker playsound DRSElevatorHotelOpen set VFreeformLucky38.bElevatorTeleport to 1 elseif Button == 4 ; Button 4 = "Casino" Set VMQHouse1.bOnLoungeFloor to 0 ; (8_11_10) To filter out Cocktail Lounge in "Lucky38ElevatorMessage" -ETB Set VMQHouse1.bOnPenthouseFloor to 0 ; (8_11_10) To filter out the Penthouse in "Lucky38ElevatorMessage" -ETB player.MoveTo Lucky38CasinoFloorMarker playsound DRSElevatorHotelOpen set VFreeformLucky38.bElevatorTeleport to 1 elseif Button == 3 ; Button 3 = "Presidential Suite" (aka "High-Roller Suite") Set VMQHouse1.bOnLoungeFloor to 0 ; (8_11_10) To filter out Cocktail Lounge in "Lucky38ElevatorMessage" -ETB Set VMQHouse1.bOnPenthouseFloor to 0 ; (8_11_10) To filter out the Penthouse in "Lucky38ElevatorMessage" -ETB player.MoveTo Lucky38SuiteMarker playsound DRSElevatorHotelOpen set VFreeformLucky38.bElevatorTeleport to 1 elseif Button == 2 ; Button 2 = "Cocktail Lounge" Set VMQHouse1.bOnLoungeFloor to 1 ; (8_11_10) To filter out Cocktail Lounge in "Lucky38ElevatorMessage" -ETB Set VMQHouse1.bOnPenthouseFloor to 0 ; (8_11_10) To filter out the Penthouse in "Lucky38ElevatorMessage" -ETB ; ----------------- Make Followers Wait! ----------------- \/ ; (Added 8_3_10) To keep the Followers from traveling to the Penthouse/Lounge. -ETB if (VNPCFollowers.bBooneHired && CraigBooneREF.Waiting != 1) set VNPCFollowers.fFollowerWaitingLeaveDay to (GameDaysPassed + FollowerWaitTime) set CraigBooneREF.Waiting to 1; CraigBooneREF.evp elseif (VNPCFollowers.bCassHired && RoseofSharonCassidyREF.Waiting != 1) set VNPCFollowers.fFollowerWaitingLeaveDay to (GameDaysPassed + FollowerWaitTime) set RoseofSharonCassidyREF.Waiting to 1; RoseofSharonCassidyREF.evp elseif (VNPCFollowers.bVeronicaHired && VeronicaREF.Waiting != 1) set VNPCFollowers.fFollowerWaitingLeaveDay to (GameDaysPassed + FollowerWaitTime) set VeronicaREF.Waiting to 1; VeronicaREF.evp elseif (VNPCFollowers.bLilyHired && LilyREF.Waiting != 1) set VNPCFollowers.fFollowerWaitingLeaveDay to (GameDaysPassed + FollowerWaitTime) set LilyREF.Waiting to 1; LilyREF.evp elseif (VNPCFollowers.RaulHired && RaulREF.Waiting != 1) set VNPCFollowers.fFollowerWaitingLeaveDay to (GameDaysPassed + FollowerWaitTime) set RaulREF.Waiting to 1; RaulREF.evp elseif (VNPCFollowers.ArcadeHired && ArcadeREF.Waiting != 1) set VNPCFollowers.fFollowerWaitingLeaveDay to (GameDaysPassed + FollowerWaitTime) set ArcadeREF.Waiting to 1 ArcadeREF.evp endif if (VNPCFollowers.bEDEHired && (EDE1REF.Waiting != 1 || EDE2REF.Waiting != 1 || EDE3REF.Waiting != 1)) set VNPCFollowers.fFollowerWaitingLeaveDay to (GameDaysPassed + FollowerWaitTime) set EDE1REF.Waiting to 1; set EDE2REF.Waiting to 1; set EDE3REF.Waiting to 1; EDE1REF.evp EDE2REF.evp EDE3REF.evp elseif (VNPCFollowers.RexHired && RexREF.Waiting != 1) set VNPCFollowers.fFollowerWaitingLeaveDay to (GameDaysPassed + FollowerWaitTime) set RexREF.Waiting to 1; RexREF.evp endif ; ----------------------------------------------------------------------- /\ player.MoveTo Lucky38CocktailMarker playsound DRSElevatorHotelOpen set VFreeformLucky38.bElevatorTeleport to 1 elseif Button == 1 ; Button 1 = "Penthouse" Set VMQHouse1.bOnLoungeFloor to 0 ; (8_11_10) To filter out Cocktail Lounge in "Lucky38ElevatorMessage" -ETB Set VMQHouse1.bOnPenthouseFloor to 1 ; (8_11_10) To filter out the Penthouse in "Lucky38ElevatorMessage" -ETB ; ----------------- Make Followers Wait! ----------------- \/ ; (Added 8_3_10) To keep the Followers from traveling to the Penthouse/Lounge. -ETB if (VNPCFollowers.bBooneHired && CraigBooneREF.Waiting != 1) set VNPCFollowers.fFollowerWaitingLeaveDay to (GameDaysPassed + FollowerWaitTime) set CraigBooneREF.Waiting to 1; CraigBooneREF.evp elseif (VNPCFollowers.bCassHired && RoseofSharonCassidyREF.Waiting != 1) set VNPCFollowers.fFollowerWaitingLeaveDay to (GameDaysPassed + FollowerWaitTime) set RoseofSharonCassidyREF.Waiting to 1; RoseofSharonCassidyREF.evp elseif (VNPCFollowers.bVeronicaHired && VeronicaREF.Waiting != 1) set VNPCFollowers.fFollowerWaitingLeaveDay to (GameDaysPassed + FollowerWaitTime) set VeronicaREF.Waiting to 1; VeronicaREF.evp elseif (VNPCFollowers.bLilyHired && LilyREF.Waiting != 1) set VNPCFollowers.fFollowerWaitingLeaveDay to (GameDaysPassed + FollowerWaitTime) set LilyREF.Waiting to 1; LilyREF.evp elseif (VNPCFollowers.RaulHired && RaulREF.Waiting != 1) set VNPCFollowers.fFollowerWaitingLeaveDay to (GameDaysPassed + FollowerWaitTime) set RaulREF.Waiting to 1; RaulREF.evp elseif (VNPCFollowers.ArcadeHired && ArcadeREF.Waiting != 1) set VNPCFollowers.fFollowerWaitingLeaveDay to (GameDaysPassed + FollowerWaitTime) set ArcadeREF.Waiting to 1 ArcadeREF.evp endif if (VNPCFollowers.bEDEHired && (EDE1REF.Waiting != 1 || EDE2REF.Waiting != 1 || EDE3REF.Waiting != 1)) set VNPCFollowers.fFollowerWaitingLeaveDay to (GameDaysPassed + FollowerWaitTime) set EDE1REF.Waiting to 1; set EDE2REF.Waiting to 1; set EDE3REF.Waiting to 1; EDE1REF.evp EDE2REF.evp EDE3REF.evp elseif (VNPCFollowers.RexHired && RexREF.Waiting != 1) set VNPCFollowers.fFollowerWaitingLeaveDay to (GameDaysPassed + FollowerWaitTime) set RexREF.Waiting to 1; RexREF.evp endif ; ----------------------------------------------------------------------- /\ player.MoveTo Lucky38PenthouseMarker playsound DRSElevatorHotelOpen set VFreeformLucky38.bElevatorTeleport to 1 endif end
686Lucky38EntranceDoorScriptScn Lucky38EntranceDoorScript Begin OnActivate If IsActionRef Player == 1 Activate Else If IsActionRef VStripNCRMPAREF == 1 || IsActionRef VStripNCRMPBREF == 1 || IsActionRef VStripSS1MPAREF == 1 || IsActionRef VStripSS1MPBREF == 1 || IsActionRef VStreetNCREmbassyGuard01REF == 1 || IsActionRef VStripBadRepMP == 1 || IsActionRef VMS23Messenger == 1 VStripNCRMPAREF.StopCombat Player VStripNCRMPBREF.StopCombat Player VStripSS1MPAREF.StopCombat Player VStripSS1MPBREF.StopCombat Player VStreetNCREmbassyGuard01REF.StopCombat Player VStripBadRepMP.StopCombat Player Return Else Activate Endif Endif End
687Lucky38EntranceScriptScn Lucky38EntranceScript ;Begin OnLoad ; if VDialogueLucky38Entrance.L38EntranceOpen == 1 ; playgroup Backward 0 ; else ; Return ; endif ;end ;Begin OnReset ; if VDialogueLucky38Entrance.L38EntranceOpen == 1 ; playgroup Backward 0 ; else ; Return ; endif ;end
688Lucky38HouseComputerConsoleSCRIPTscn Lucky38HouseComputerConsoleSCRIPT begin onload ;Lucky38HouseComputerConsoleREF.SetTalkingActivatorActor MrHouseREF end
689Lucky38LightScriptScn Lucky38LightScript ; Jorge Float Time Begin GameMode if (GetDisabled == 0) Set Time to GetCurrentTime If (Time > 20 || Time < 6) If (IsAnimPlaying Left != 1) PlayGroup Left 0 ;Turn On Endif Elseif Time < 20 && Time > 6 If (IsAnimPlaying Right != 1) PlayGroup Right 0 ;Turn Off Endif Endif Endif End
690Lucky38MainframeSCRIPTscn Lucky38MainframeSCRIPT short Button BEGIN OnActivate if IsActionRef player ;ShowMessage Lucky38MainframeActiveMsg ShowMessage Lucky38MainframeBuggedMsg endif END BEGIN GameMode set Button to GetButtonPressed ; Player bugs the Lucky 38 mainframe if ( Button == 1 ) ;ShowMessage Lucky38MainframeBuggedMsg RewardXP 50 Set VFreeformLucky38.bBuggedTower to 1 SetObjectiveDisplayed vfreeformlucky38 20 1 SetStage vfreeformlucky38 20 SetDestroyed 1 endif endif END
691Lucky38MrHouseElevatorDoorScriptscn Lucky38MrHouseElevatorDoorScript int Button begin OnActivate if ( Lucky38MrHouseElevatorDoorREF.getlocked == 0 && Lucky38ElevatorDoorControlREF.getlocked == 0 ) ; (10_29_10) Add "&&..." for bug 34416 -ETB showmessage Lucky38MrHouseElevatorMessage else Activate endif end begin GameMode set Button to GetButtonPressed if Button == 1 player.MoveTo Lucky38MrHouseElevatorMarker playsound DRSElevatorHotelOpen set VFreeformLucky38.bElevatorTeleport to 1 elseif Button == 2 player.MoveTo Lucky38ControlRoomMarker L38PentAlarmPoint01REF.Disable playsound DRSElevatorHotelOpen set VFreeformLucky38.bElevatorTeleport to 1 endif end
692Lucky38MrHouseElevatorDoorScript2scn Lucky38MrHouseElevatorDoorScript2 int Button begin OnActivate if GetActionRef == player showmessage Lucky38MrHouseElevatorMessage2 else Activate endif end begin GameMode set Button to GetButtonPressed if Button == 0 player.MoveTo Lucky38ControlRoomMarker elseif Button == 1 player.MoveTo Lucky38PenthouseMarker endif end
693Lucky38MrHouseTerminal01SCRIPTscn Lucky38MrHouseTerminal01SCRIPT begin onactivate if getitemcount vplatinumchip >= 1 ; JSH - added check for more than 1 Chip, just in case of weirdness Lucky38SecretDoorREF.setopenstate 1 set vStoryEventMrHousePissed to 1 PlaySound QSTLucky38AlarmLP else activate endif end
694Lucky38MrHouseTerminal02SCRIPTscn Lucky38MrHouseTerminal02SCRIPT ;short Alarmstarted short doonce begin onload if doonce == 0 Lucky38AlarmWomanTAREF.SetTalkingActivatorActor vLucky38AlarmWomanREF set doonce to 1 endif end begin onactivate if getitemcount vplatinumchip == 1 ;PlaySound QSTLucky38AlarmLP ;if ( AlarmStarted == 0 ) ;Lucky38AlarmWomanTAREF.Say VDialogueMrHouseRoomBreach Lucky38AlarmWomanTAREF.say VDialogueMrHouseRoomBreach ;Set AlarmStarted to 1 endif end
695Lucky38MrHouseTerminalCodeSCRIPTscn Lucky38MrHouseTerminalCodeSCRIPT short bFirstTerminalAccess ; First time the Player tries to activate the L38 Penthouse Secret Antechamber Door. short bKeycardObjective ; Player has Keycard objective Begin OnLoad If GetHasNote AWMNotePassword != 1 If Player.GetItemCount vHouseVIPKeycard >= 1 AddNote AWMNotePassword Endif Endif End Begin GameMode if bKeycardObjective == 1 Return else if GetLocked == 2 && getobjectivedisplayed VMQYesMan01 50 == 1 && getobjectivecompleted VMQYesMan01 50 == 0 ; Yes Man Setobjectivedisplayed VMQYesMan01 55 1 set bKeycardObjective to 1 endif ; Caesar�s Legion elseIf GetLocked == 2 && getobjectivedisplayed VMQ02 10 == 1 && getobjectivecompleted VMQ02 10 == 0 Setobjectivedisplayed VMQ02 12 1 set bKeycardObjective to 1 endif ; NCR elseIf GetLocked == 2 && getobjectivedisplayed VMQ05 40 == 1 && getobjectivecompleted VMQ05 40 == 0 Setobjectivedisplayed VMQ05 42 1 set bKeycardObjective to 1 endif endif End Begin OnActivate if (isactionref player && player.getav science >= 75 && GetLocked != 2) Activate elseif isactionref player && player.GetItemCount VPlatinumChip != 1 && player.getav science < 75 || GetLocked != 2; (7_28_10) Added condition for player already having the Chip. -ETB ; Yes Man If getobjectivedisplayed VMQYesMan01 50 == 1 && getobjectivecompleted VMQYesMan01 50 == 0 Setobjectivedisplayed VMQYesMan01 55 1 endif ; Caesar�s Legion If getobjectivedisplayed VMQ02 10 == 1 && getobjectivecompleted VMQ02 10 == 0 Setobjectivedisplayed VMQ02 12 1 endif ; NCR If getobjectivedisplayed VMQ05 40 == 1 && getobjectivecompleted VMQ05 40 == 0 Setobjectivedisplayed VMQ05 42 1 endif Activate else Activate endif End
696Lucky38MrHouseTerminalSCRIPTscn Lucky38MrHouseTerminalSCRIPT short button BEGIN gamemode set Button to GetButtonPressed if ( Button == 1 ) Lucky38SecretDoorREF.setopenstate 1 endif END
697Lucky38MrHouseUnplugSCRIPTscn Lucky38MrHouseUnplugSCRIPT short bUnplugged short nButton BEGIN OnActivate if(IsActionRef player == 1) ShowMessage Lucky38MrHouseUnplugMsg endif END BEGIN GameMode if ( bUnplugged == 0 ) set nButton to GetButtonPressed if ( nButton == 1 ) set bUnplugged to 1 NVCRMrHouse01REF.Playidle MrHouseOpen endif endif END
698Lucky38PCBTeleportTriggerSCRIPTscn Lucky38PCBTeleportTriggerSCRIPT begin OnTriggerEnter Player if (VFreeformLucky38.bElevatorTeleport == 1) pcb set VFreeformLucky38.bElevatorTeleport to 0 endif end
699Lucky38ReactorSCRIPTscn Lucky38ReactorSCRIPT short button short runtimer float Timer ;Timer used for animation control float Stage ;Stage number BEGIN gamemode set Button to GetButtonPressed if ( Button == 1 ) RewardXP 50 NVLucky38ReactorRef.Playgroup Forward 0 endif END
700Lucky38secretdoorSCRIPTscn Lucky38secretdoorSCRIPT BEGIN OnActivate player ;return END
701Lucky38SecuritronSCRIPTscn Lucky38SecuritronSCRIPT ; --------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | Begin OnDeath If IsKiller Player == 1 If Player.GetInCell Lucky38BasementFloorb2 == 1 && ( GetObjectiveDisplayed VMQHouse1 25 == 1 || GetObjectiveDisplayed VMQHouse1 26 == 1 || GetObjectiveDisplayed VMQYesMan01 60 == 1 ) StopCombat Return Endif Endif ; ------------------------------------- Fail House Questline ---------------------------------- \/ ; (7_29_10) Moved from "OnHit" (to "OnDeath") block to comply with intended functionality. -ETB ; (8_5_10) Changed conditions from "GetObjectiveDisplayed == 1 && GetQuestCompleted == 0"... ; ...to "GetQuestRunning" to fix error where some quest did not fail. -ETB ;If IsKiller Player == 1 <---- Commented out to fix "if killed by companion" error. -ETB Set VMQHouse1.RefusedChip to 1 ; (8_10_10) To be used as a universal "house questline fail" variable -ETB If ( GetQuestRunning VMQHouse1 ) SetStage VMQHouse1 66 Endif If ( GetQuestRunning VMQHouse2 ) SetStage VMQHouse2 110 endif If ( GetQuestRunning VMQHouse3 ) SetStage VMQHouse3 200 endif If ( GetQuestRunning VMQHouse4 ) SetStage VMQHouse4 110 endif If ( GetQuestRunning VMQHouse5 ) SetStage VMQHouse5 200 endif If ( GetQuestRunning VMQHouse6 ) SetStage VMQHouse6 200 endif If ( GetQuestRunning VMQHouse7 ) SetStage VMQHouse7 200 endif If ( GetQuestRunning VMQHouse8 ) SetStage VMQHouse8 200 endif If VStoryEventMrHouseNeutralized == 0 SetEnemy Lucky38Faction playerFaction Lucky38MrHouseREF.PlayIdle LooseNVPHMCconnectionLost Lucky38MrHouseREF.SetDestroyed 1 Endif ;Endif ; NOTE: Any changes must be duplicated in: ; "Lucky38VictorEntranceSCRIPT", "Lucky38VictorElevatorScript", "Lucky38SecuritronSCRIPT". ; (A slightly different version exists in VMQHouseFail (quest) result script (it would also need altering)) -ETB ; ----------------------------------------------------------------------------------------------------------- /\ End; ondeath block ; --------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | begin onhit player If Player.GetInCell Lucky38BasementFloorb2 == 1 && ( GetObjectiveDisplayed VMQHouse1 25 == 1 || GetObjectiveDisplayed VMQHouse1 26 == 1 || GetObjectiveDisplayed VMQYesMan01 60 == 1 ) StopCombat Return Else ; ------------------------------------- Fail House Questline ---------------------------------- \/ ; (7_29_10) Moved from "OnHit" (to "OnDeath") block to comply with intended functionality. -ETB ; (8_5_10) Changed conditions from "GetObjectiveDisplayed == 1 && GetQuestCompleted == 0"... ; ...to "GetQuestRunning" to fix error where some quest did not fail. -ETB ; (8_12_10) Copied to "OnHit" (again) to cover errors in talking to House (mainframe) after shooting (but not killing) a Securitron. -ETB ;If IsKiller Player == 1 <---- Commented out to fix "if killed by companion" error. -ETB Set VMQHouse1.RefusedChip to 1 ; (8_10_10) To be used as a universal "house questline fail" variable -ETB If ( GetQuestRunning VMQHouse1 ) SetStage VMQHouse1 66 Endif If ( GetQuestRunning VMQHouse2 ) SetStage VMQHouse2 110 endif If ( GetQuestRunning VMQHouse3 ) SetStage VMQHouse3 200 endif If ( GetQuestRunning VMQHouse4 ) SetStage VMQHouse4 110 endif If ( GetQuestRunning VMQHouse5 ) SetStage VMQHouse5 200 endif If ( GetQuestRunning VMQHouse6 ) SetStage VMQHouse6 200 endif If ( GetQuestRunning VMQHouse7 ) SetStage VMQHouse7 200 endif If ( GetQuestRunning VMQHouse8 ) SetStage VMQHouse8 200 endif If VStoryEventMrHouseNeutralized == 0 SetEnemy Lucky38Faction playerFaction Lucky38MrHouseREF.PlayIdle LooseNVPHMCconnectionLost Lucky38MrHouseREF.SetDestroyed 1 Endif ;Endif ; NOTE: Any changes must be duplicated in: ; "Lucky38VictorEntranceSCRIPT", "Lucky38VictorElevatorScript", "Lucky38SecuritronSCRIPT". ; (A slightly different version exists in VMQHouseFail (quest) result script (it would also need altering)) -ETB ; ----------------------------------------------------------------------------------------------------------- /\ Endif ; [NOTE: The "fail the House questline" stuff that used to be here has moved to the "ondeath" block.] -ETB end; onhit player block ; --------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | begin OnStartCombat player If ( Player.GetInCell Lucky38BasementFloorb2 == 1 && ( GetObjectiveDisplayed VMQHouse1 25 == 1 || GetObjectiveDisplayed VMQHouse1 26 == 1 || GetObjectiveDisplayed VMQYesMan01 60 == 1 ) ); || ( GetPCEnemyOfFaction Lucky38Faction != 1 ) StopCombat Lucky38UpgradeSecuritron03.StopCombatAlarmOnActor ; Securitrons in the pit. Lucky38UpgradeSecuritron04.StopCombatAlarmOnActor ; <<< Lucky38UpgradeSecuritron06.StopCombatAlarmOnActor ; Securitrons on the catwalk. Lucky38UpgradeSecuritron07.StopCombatAlarmOnActor ; <<< Lucky38UpgradeSecuritron08.StopCombatAlarmOnActor ; <<< Lucky38UpgradeSecuritron09.StopCombatAlarmOnActor ; <<< Lucky38UpgradeSecuritron10.StopCombatAlarmOnActor ; <<< Lucky38UpgradeSecuritron11.StopCombatAlarmOnActor ; <<< Lucky38UpgradeSecuritron12.StopCombatAlarmOnActor ; <<< Lucky38UpgradeSecuritron13.StopCombatAlarmOnActor ; <<< Lucky38UpgradeSecuritron14.StopCombatAlarmOnActor ; <<< Lucky38UpgradeSecuritron15.StopCombatAlarmOnActor ; <<< Return Endif if ( GetStage VMQHouseFail == 5 ) ; House is dead/disabled - stop combat on all Securitrons. SetAlly Lucky38Faction playerFaction ; Related factions are now friends (allies). ; ------------------------------------- Lucky 38 Victors ------------------------------------------ \/ Lucky38VictorEntranceREF.StopCombatAlarmOnActor ; Out front of Lucky 38 Lucky38VictorElevatorREF.StopCombatAlarmOnActor ; Casino Floor Lucky38VictorElevatorBasementREF.StopCombatAlarmOnActor ; Basement Lucky38VictorElevatorSuiteREF.StopCombatAlarmOnActor ; Presidential Suite Lucky38VictorElevatorPenthouseREF.StopCombatAlarmOnActor ; Penthouse ; --------------------------- Lucky 38 Basement Securitrons --------------------------- | Lucky38UpgradeSecuritron03.StopCombatAlarmOnActor ; Securitrons in the pit. Lucky38UpgradeSecuritron04.StopCombatAlarmOnActor ; <<< Lucky38UpgradeSecuritron06.StopCombatAlarmOnActor ; Securitrons on the catwalk. Lucky38UpgradeSecuritron07.StopCombatAlarmOnActor ; <<< Lucky38UpgradeSecuritron08.StopCombatAlarmOnActor ; <<< Lucky38UpgradeSecuritron09.StopCombatAlarmOnActor ; <<< Lucky38UpgradeSecuritron10.StopCombatAlarmOnActor ; <<< Lucky38UpgradeSecuritron11.StopCombatAlarmOnActor ; <<< Lucky38UpgradeSecuritron12.StopCombatAlarmOnActor ; <<< Lucky38UpgradeSecuritron13.StopCombatAlarmOnActor ; <<< Lucky38UpgradeSecuritron14.StopCombatAlarmOnActor ; <<< Lucky38UpgradeSecuritron15.StopCombatAlarmOnActor ; <<< ; --------------------------- Lucky 38 Casino Securitrons -------------------------------- | Lucky38DoorSec01REF.StopCombatAlarmOnActor ; Securitron Mk 1 Lucky38DoorSec02REF.StopCombatAlarmOnActor ; <<< Lucky38DoorSec03REF.StopCombatAlarmOnActor ; <<< Lucky38DoorSec04REF.StopCombatAlarmOnActor ; <<< Lucky38DoorSec05REF.StopCombatAlarmOnActor ; <<< VL38CasinoSecuritronMkII01REF.StopCombatAlarmOnActor ; Securitron Mk 2 VL38CasinoSecuritronMkII02REF.StopCombatAlarmOnActor ; <<< VL38CasinoSecuritronMkII03REF.StopCombatAlarmOnActor ; <<< VL38CasinoSecuritronMkII04REF.StopCombatAlarmOnActor ; <<< VL38CasinoSecuritronMkII05REF.StopCombatAlarmOnActor ; <<< ; --------------------------- Lucky 38 Suite Securitrons ----------------------------------- | Lucky38JaneSuiteREF.StopCombatAlarmOnActor ; Jane (Mk 1) Lucky38MarilynSuiteREF.StopCombatAlarmOnActor ; Marilyn (Mk 1) ; --------------------------- Lucky 38 Penthouse Securitrons -------------------------- | Lucky38JaneREF.StopCombatAlarmOnActor ; Jane (Mk 1) Lucky38MarilynREF.StopCombatAlarmOnActor ; Marilyn (Mk 1) ;L38Turret01REF.StopCombatAlarmOnActor ; Secret Room Turrets ;L38Turret01REF.StopCombatAlarmOnActor ; <<< ;L38Turret01REF.StopCombatAlarmOnActor ; <<< L38Securitron01REF.StopCombatAlarmOnActor ; Securitron Mk 1 L38Securitron02REF.StopCombatAlarmOnActor ; <<< L38Securitron03REF.StopCombatAlarmOnActor ; <<< L38Securitron04REF.StopCombatAlarmOnActor ; <<< L38Securitron05REF.StopCombatAlarmOnActor ; <<< L38Outer2Securitron02REF.StopCombatAlarmOnActor ; <<< VL38Outer2SecuritronMkII02REF.StopCombatAlarmOnActor ; Securitron Mk 2 VL38PentSecuritronMkII01REF.StopCombatAlarmOnActor ; <<< VL38PentSecuritronMkII02REF.StopCombatAlarmOnActor ; <<< VL38PentSecuritronMkII03REF.StopCombatAlarmOnActor ; <<< VL38PentSecuritronMkII04REF.StopCombat AlarmOnActor ; <<< VL38PentSecuritronMkII05REF.StopCombat AlarmOnActor ; <<< ; ----------------------------------------------------------------------------------------------------------- /\ endif end; onstartcombat player block
702Lucky38UpgradeSecuritronsSCRIPTscn Lucky38UpgradeSecuritronsSCRIPT short runtimer short bDoneOnce ;Script blocker float Timer ;Timer used for animation control Short Slide ;Stage number ; ---------------------------------------------------------------------------------------------------------------------------------------------- \/ (Added 7_8_10) -ETB short bDoOnce ; Script blocker short bHouseTalk ; Set to 1 if House is to give the VO for sequence short bHouseTalking ; Toggled between 1 and 0 to advance a sayto/saytodone sequence short bYesManTalk ; Set to 1 if Yes Man is to give the VO for sequence short bYesManTalking ; Toggled between 1 and 0 to advance a sayto/saytodone sequence ; ---------------------------------------------------------------------------------------------------------------------------------------------- /\ END (Added 7_8_10) -ETB Short iCount ; To control timing of teleport back to Penthouse. -Jorge Short bDemoFinished ; To control appropriate Mr. House greeting upon return. -Jorge BEGIN gamemode ; ---------------------------------------------------------------------------------------------------------------------------------------------- \/ (Added 7_8_10) -ETB if ( bDoOnce == 0 ) if ( GetStage VMQHouse1 == 25 ) ; Matches the condition checked by "SecuritronTrigger2" (SCRIPT) Set bHouseTalk to 1 ; Used in condition (below) to call Mr. House dialogue topic Lucky38UpgradeSecuritron03.Additem WeapNVSecuritronLaser 1 Lucky38UpgradeSecuritron04.Additem WeapNVSecuritronLaser 1 Lucky38UpgradeSecuritron03.Additem WeapNVSecuritronMissile 1 Lucky38UpgradeSecuritron04.Additem WeapNVSecuritronMissile 1 Lucky38UpgradeSecuritron03.Additem AmmoMicroFusionCellRobot 300 Lucky38UpgradeSecuritron04.Additem AmmoMicroFusionCellRobot 300 Lucky38UpgradeSecuritron03.Additem AmmoMissileRobot 30 Lucky38UpgradeSecuritron04.Additem AmmoMissileRobot 30 Set bDoOnce to 1 elseif ( GetStage VMQYesMan01 == 75 ) ; Matches the condition checked by "SecuritronTrigger2" (SCRIPT) Set bYesManTalk to 1 ; Used in condition (below) to call Yes Man dialogue topic Lucky38UpgradeSecuritron03.Additem WeapNVSecuritronLaser 1 Lucky38UpgradeSecuritron04.Additem WeapNVSecuritronLaser 1 Lucky38UpgradeSecuritron03.Additem WeapNVSecuritronMissile 1 Lucky38UpgradeSecuritron04.Additem WeapNVSecuritronMissile 1 Lucky38UpgradeSecuritron03.Additem AmmoMicroFusionCellRobot 300 Lucky38UpgradeSecuritron04.Additem AmmoMicroFusionCellRobot 300 Lucky38UpgradeSecuritron03.Additem AmmoMissileRobot 30 Lucky38UpgradeSecuritron04.Additem AmmoMissileRobot 30 Set bDoOnce to 1 endif endif ; ---------------------------------------------------------------------------------------------------------------------------------------------- /\ END (Added 7_8_10) -ETB if runtimer == 1 ; ---------------------------------------------------------------------------------------------------------------------------------------------- \/ (Added 7_8_10) -ETB if ( bHouseTalk == 1 && bHouseTalking == 0 ) Lucky38BasementMrHouseREF.SayTo Lucky38BasementMrHouseREF, VDialogueMrHouseSecuritronUpgrade ; (From Quest: "VDialogueMrHouse") Set bHouseTalking to 1 endif ; Since these two dialogues have lines that are all "say once", the conditions'... ; ...variables can be toggled on/off to create a loop that calls the same... if ( Lucky38BasementMrHouseREF.IsTalking != 1 ) ; ...dialogue over-and-over but the lines spoken will advance each time. Set bHouseTalking to 0 ; (Props to Charlie S. for the headache-saving idea.) endif if ( bYesManTalk == 1 && bYesManTalking == 0 ) Lucky38BasementYesManREF.SayTo Lucky38BasementYesManREF, vDialogueYesManSecuritronUpgrade ; (From Quest: "VMQTops") Set bYesManTalking to 1 endif if ( Lucky38BasementYesManREF.IsTalking != 1 ) Set bYesManTalking to 0 endif ; ---------------------------------------------------------------------------------------------------------------------------------------------- /\ END (Added 7_8_10) -ETB if Slide < 5 ;disablePlayerControls Set Timer to Timer + GetSecondsPassed if bDoneOnce != 1 If GetObjectiveDisplayed VMQHouse1 25 == 1 setobjectivecompleted VMQHouse1 25 1 setobjectivedisplayed VMQHouse1 26 1 Endif If GetObjectiveDisplayed VMQYesMan01 30 == 1 SetObjectiveCompleted VMQYesMan01 30 1 SetObjectiveDisplayed VMQYesMan01 34 1 Endif set bDoneOnce to 1; Endif If (Timer >= 1 && Slide == 0) Set Slide to 1 ;laser ;Lucky38UpgradeSecuritron03.UseWeapon WeapNVSecuritronLaser Lucky38UpgradeSecuritron03 UpgradeSecuritronTarget 1 ;Lucky38UpgradeSecuritron03.addscriptpackage lucky38securitronfire1 ;Lucky38UpgradeSecuritron04.addscriptpackage lucky38securitronfire5 ;showwarning "SECURITRON UPGRADE SEQUENCE. Mr. House narrates over intercom while 1 or more Mark I Securitrons fire their weapons, and are then upgraded to Mark II software and demonstrate dramatic enhancements. When the sequence is complete, House directs the player to take the elevator back up to the penthouse." elseif (Timer >= 5 && Slide == 1) Set Slide to 2 ;SMG ;Lucky38UpgradeSecuritron03.UseWeapon WeapNVSecuritronSubmachineGun Lucky38UpgradeSecuritron03 UpgradeSecuritronTarget 5 ;Lucky38UpgradeSecuritron03.addscriptpackage lucky38securitronfire2 ;Lucky38UpgradeSecuritron04.addscriptpackage lucky38securitronfire6 ;showwarning "stage2 works" elseif (Timer >= 10 && Slide == 2) Set Slide to 3 ;SetSecuritronExpression Lucky38UpgradeSecuritron03 Infantry Alert ;SetSecuritronExpression Lucky38UpgradeSecuritron04 Infantry Alert ;SetSecuritronExpression Lucky38UpgradeSecuritron06 Infantry Alert ;SetSecuritronExpression Lucky38UpgradeSecuritron07 Infantry Alert ;SetSecuritronExpression Lucky38UpgradeSecuritron08 Infantry Alert ;SetSecuritronExpression Lucky38UpgradeSecuritron09 Infantry Alert ;SetSecuritronExpression Lucky38UpgradeSecuritron10 Infantry Alert ;showwarning "stage3 works" elseif (Timer >= 15 && Slide == 3) Set Slide to 4 ;missile ;Lucky38UpgradeSecuritron03.UseWeapon WeapNVSecuritronMissile Lucky38UpgradeSecuritron03 UpgradeSecuritronTarget 2 ;Lucky38UpgradeSecuritron03.addscriptpackage lucky38securitronfire3 ;Lucky38UpgradeSecuritron04.addscriptpackage lucky38securitronfire7 ;showwarning "stage4 works" elseif (Timer >= 20 && Slide == 4) Set Slide to 5 ;launcher ;Lucky38UpgradeSecuritron03.UseWeapon WeapNVSecuritronLauncher Lucky38UpgradeSecuritron03 UpgradeSecuritronTarget 2 ;enablePlayerControls ;Lucky38UpgradeSecuritron03.addscriptpackage lucky38securitronfire4 ;Lucky38UpgradeSecuritron04.addscriptpackage lucky38securitronfire8 ;showwarning "stage5 works" ;setobjectivecompleted VMQHouse1 26 1 <-- These have been moved to the Result Script of the last line of "VDialogueMrHouseSecuritronUpgrade" (they were firing too soon here). ;setobjectivedisplayed VMQHouse1 27 1 <-- (Commented-out 7_12_10) -ETB ;if (GetObjectiveDisplayed VMQYesMan01 34) <-- These lines have been move to the Result Script of the last line of "vDialogueYesManSecuritronUpgrade" (Conversation inside "VMQTops"). ;SetObjectiveCompleted VMQYesMan01 34 1 <-- (Commented-out 7_12_10) -ETB ;SetObjectiveDisplayed VMQYesMan01 36 1 <-- ;endif <-- set vstoryeventsecuritronsupgraded to 1 If GetStageDone VMQYesMan01 70 == 1 SetStage VMQYesMan01 80 ; close off the basement option in the elevator message. Endif Set Timer to 0 endif Elseif Slide >= 5 If GetObjectiveDisplayed VMQHouse1 27 == 1 && GetObjectiveCompleted VMQHouse1 27 != 1 && bDemoFinished != 1 Set Timer to ( Timer + GetSecondsPassed ) If iCount < 1 ApplyImageSpaceModifier FadeToBlackAndBackQuickExtendedISFX VStreetBot01MK2REF.Enable VStreetBot02MK2REF.Enable VStreetBot03MK2REF.Enable VStreetBot04MK2REF.Enable VStreetBot05MK2REF.Enable VStreetBot01REF.Disable VStreetBot02REF.Disable VStreetBot03REF.Disable VStreetBot04REF.Disable VStreetBot05REF.Disable Set iCount to 1 Elseif iCount == 1 && Timer >= 3 VStreetBot01REF.MarkForDelete VStreetBot02REF.MarkForDelete VStreetBot03REF.MarkForDelete VStreetBot04REF.MarkForDelete VStreetBot05REF.MarkForDelete Set VStreetFluffNPC.StreetBot01 to VStreetBot01MK2REF Set VStreetFluffNPC.StreetBot02 to VStreetBot02MK2REF Set VStreetFluffNPC.StreetBot03 to VStreetBot03MK2REF Set VStreetFluffNPC.StreetBot04 to VStreetBot04MK2REF Set VStreetFluffNPC.StreetBot05 to VStreetBot05MK2REF Set VStreetCombat.StreetBot01 to VStreetBot01MK2REF Set VStreetCombat.StreetBot02 to VStreetBot02MK2REF Set VStreetCombat.StreetBot03 to VStreetBot03MK2REF Set VStreetCombat.StreetBot04 to VStreetBot04MK2REF Set VStreetCombat.StreetBot05 to VStreetBot05MK2REF Set VStripNorthCodeBox.Bot01 to VStreetBot01MK2REF Set VStripNorthCodeBox.Bot02 to VStreetBot02MK2REF Set VStripNorthCodeBox.Bot03 to VStreetBot03MK2REF Set VStripNorthCodeBox.Bot04 to VStreetBot04MK2REF Set VStripNorthCodeBox.Bot05 to VStreetBot05MK2REF Set VStripMQCodeBox.Bot01 to VStreetBot01MK2REF Set VStripMQCodeBox.Bot02 to VStreetBot02MK2REF Set VStripMQCodeBox.Bot03 to VStreetBot03MK2REF Set VStripMQCodeBox.Bot04 to VStreetBot04MK2REF Set VStripMQCodeBox.Bot05 to VStreetBot05MK2REF Set VStripSouthCodeBox.Bot01 to VStreetBot01MK2REF Set VStripSouthCodeBox.Bot02 to VStreetBot02MK2REF Set VStripSouthCodeBox.Bot03 to VStreetBot03MK2REF Set VStripSouthCodeBox.Bot04 to VStreetBot04MK2REF Set VStripSouthCodeBox.Bot05 to VStreetBot05MK2REF Set VStripDoorMiddle1.Bot01 to VStreetBot01MK2REF Set VStripDoorMiddle1.Bot02 to VStreetBot02MK2REF Set VStripDoorMiddle1.Bot03 to VStreetBot03MK2REF Set VStripDoorMiddle1.Bot04 to VStreetBot04MK2REF Set VStripDoorMiddle1.Bot05 to VStreetBot05MK2REF Set VStripDoorMiddle2.Bot01 to VStreetBot01MK2REF Set VStripDoorMiddle2.Bot02 to VStreetBot02MK2REF Set VStripDoorMiddle2.Bot03 to VStreetBot03MK2REF Set VStripDoorMiddle2.Bot04 to VStreetBot04MK2REF Set VStripDoorMiddle2.Bot05 to VStreetBot05MK2REF Set VStripDoorSouth.Bot01 to VStreetBot01MK2REF Set VStripDoorSouth.Bot02 to VStreetBot02MK2REF Set VStripDoorSouth.Bot03 to VStreetBot03MK2REF Set VStripDoorSouth.Bot04 to VStreetBot04MK2REF Set VStripDoorSouth.Bot05 to VStreetBot05MK2REF Set VStripDoorNorth.Bot01 to VStreetBot01MK2REF Set VStripDoorNorth.Bot02 to VStreetBot02MK2REF Set VStripDoorNorth.Bot03 to VStreetBot03MK2REF Set VStripDoorNorth.Bot04 to VStreetBot04MK2REF Set VStripDoorNorth.Bot05 to VStreetBot05MK2REF Set Slide to 6 Lucky38VictorElevatorBasementREF.Enable Set bDemoFinished to 1 Player.MoveTo VHouseEndGameMarker Endif Elseif GetStageDone VMQYesMan01 100 == 1 && bDemoFinished != 1 Set Timer to ( Timer + GetSecondsPassed ) If iCount < 1 ApplyImageSpaceModifier FadeToBlackAndBackQuickExtendedISFX VStreetBot01MK2REF.Enable VStreetBot02MK2REF.Enable VStreetBot03MK2REF.Enable VStreetBot04MK2REF.Enable VStreetBot05MK2REF.Enable VStreetBot01REF.Disable VStreetBot02REF.Disable VStreetBot03REF.Disable VStreetBot04REF.Disable VStreetBot05REF.Disable Set iCount to 1 Elseif iCount == 1 && Timer >= 3 VStreetBot01REF.MarkForDelete VStreetBot02REF.MarkForDelete VStreetBot03REF.MarkForDelete VStreetBot04REF.MarkForDelete VStreetBot05REF.MarkForDelete Set VStreetFluffNPC.StreetBot01 to VStreetBot01MK2REF Set VStreetFluffNPC.StreetBot02 to VStreetBot02MK2REF Set VStreetFluffNPC.StreetBot03 to VStreetBot03MK2REF Set VStreetFluffNPC.StreetBot04 to VStreetBot04MK2REF Set VStreetFluffNPC.StreetBot05 to VStreetBot05MK2REF Set VStreetCombat.StreetBot01 to VStreetBot01MK2REF Set VStreetCombat.StreetBot02 to VStreetBot02MK2REF Set VStreetCombat.StreetBot03 to VStreetBot03MK2REF Set VStreetCombat.StreetBot04 to VStreetBot04MK2REF Set VStreetCombat.StreetBot05 to VStreetBot05MK2REF Set VStripNorthCodeBox.Bot01 to VStreetBot01MK2REF Set VStripNorthCodeBox.Bot02 to VStreetBot02MK2REF Set VStripNorthCodeBox.Bot03 to VStreetBot03MK2REF Set VStripNorthCodeBox.Bot04 to VStreetBot04MK2REF Set VStripNorthCodeBox.Bot05 to VStreetBot05MK2REF Set VStripMQCodeBox.Bot01 to VStreetBot01MK2REF Set VStripMQCodeBox.Bot02 to VStreetBot02MK2REF Set VStripMQCodeBox.Bot03 to VStreetBot03MK2REF Set VStripMQCodeBox.Bot04 to VStreetBot04MK2REF Set VStripMQCodeBox.Bot05 to VStreetBot05MK2REF Set VStripSouthCodeBox.Bot01 to VStreetBot01MK2REF Set VStripSouthCodeBox.Bot02 to VStreetBot02MK2REF Set VStripSouthCodeBox.Bot03 to VStreetBot03MK2REF Set VStripSouthCodeBox.Bot04 to VStreetBot04MK2REF Set VStripSouthCodeBox.Bot05 to VStreetBot05MK2REF Set VStripDoorMiddle1.Bot01 to VStreetBot01MK2REF Set VStripDoorMiddle1.Bot02 to VStreetBot02MK2REF Set VStripDoorMiddle1.Bot03 to VStreetBot03MK2REF Set VStripDoorMiddle1.Bot04 to VStreetBot04MK2REF Set VStripDoorMiddle1.Bot05 to VStreetBot05MK2REF Set VStripDoorMiddle2.Bot01 to VStreetBot01MK2REF Set VStripDoorMiddle2.Bot02 to VStreetBot02MK2REF Set VStripDoorMiddle2.Bot03 to VStreetBot03MK2REF Set VStripDoorMiddle2.Bot04 to VStreetBot04MK2REF Set VStripDoorMiddle2.Bot05 to VStreetBot05MK2REF Set VStripDoorSouth.Bot01 to VStreetBot01MK2REF Set VStripDoorSouth.Bot02 to VStreetBot02MK2REF Set VStripDoorSouth.Bot03 to VStreetBot03MK2REF Set VStripDoorSouth.Bot04 to VStreetBot04MK2REF Set VStripDoorSouth.Bot05 to VStreetBot05MK2REF Set VStripDoorNorth.Bot01 to VStreetBot01MK2REF Set VStripDoorNorth.Bot02 to VStreetBot02MK2REF Set VStripDoorNorth.Bot03 to VStreetBot03MK2REF Set VStripDoorNorth.Bot04 to VStreetBot04MK2REF Set VStripDoorNorth.Bot05 to VStreetBot05MK2REF Set Slide to 6 Set bDemoFinished to 1 Player.MoveTo VHouseEndGameMarker Endif Endif endif endif end ; GameMode block
703Lucky38VictorElevatorScriptscn Lucky38VictorElevatorScript int Button int DelayCounter int Delay30FramesCounter short bSayOnce ; --------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | begin OnActivate if getdead == 0 if ( GetCombatTarget != playerREF ) ; if ( DelayCounter == 0 ) ; <<< (Added 7_15_10) So Victor will talk to Player before elevator msg. ;StartConversation player GREETING ; <<< (Msg was popping up before dialogue (bad) so added delay counter to fix) AddScriptPackage Lucky38VictorElevatorTalkToPlayer ; <<< (Added package, rather than StartConversation, to avoid kiting Victor around - Jorge) Set DelayCounter to 1 ; <<< (NOTE: Elevator msg is called in "GameMode" block) endif ; <<< - ETB endif endif end; onactivate block ; --------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | begin GameMode ; ------------------------- Elevator Menu Pop-up Msg --------------------------------------- \/ if ( DelayCounter == 2 ) ; <<< (Added 7_15_10) So elevator msg will pop up after dialogue is done. if ( MenuMode 1009 != 1 ) ; <<< -ETB showmessage Lucky38ElevatorMessageVictor ; <<< Set DelayCounter to 0 ; <<< endif ; <<< endif ; <<< ; --------------------------- Elevator Menu Functionality -------------------------------------- | set Button to GetButtonPressed ; --------------------------- Basement Floor (button 1) ------------------------------------------ | if Button == 1 Set VMQHouse1.bOnLoungeFloor to 0 ; (8_11_10) To filter out Cocktail Lounge in "Lucky38ElevatorMessage" -ETB Set VMQHouse1.bOnPenthouseFloor to 0 ; (8_11_10) To filter out the Penthouse in "Lucky38ElevatorMessage" -ETB ;Set VDialogueLucky38Entrance.L38Basement to 1 ; (Commented 7_29_10) NOTE: Victor removed from Basement. -ETB player.MoveTo Lucky38BasementMarker playsound DRSElevatorHotelOpen set VFreeformLucky38.bElevatorTeleport to 1 ; --------------------------- Casino Floor (button 2) ----------------------------------------------- | elseif Button == 2 Set VMQHouse1.bOnLoungeFloor to 0 ; (8_11_10) To filter out Cocktail Lounge in "Lucky38ElevatorMessage" -ETB Set VMQHouse1.bOnPenthouseFloor to 0 ; (8_11_10) To filter out the Penthouse in "Lucky38ElevatorMessage" -ETB Set VDialogueLucky38Entrance.L38Casino to 1 ; (Set back to 0 in Victor's dialogue result script (VDialogueLucky38Entrance GREETING)) player.MoveTo Lucky38CasinoFloorMarker playsound DRSElevatorHotelOpen set VFreeformLucky38.bElevatorTeleport to 1 ; --------------------------- High-Roller Floor (button 3) ---------------------------------------- | elseif Button == 3 ; aka "Presidential Suite" Set VMQHouse1.bOnLoungeFloor to 0 ; (8_11_10) To filter out Cocktail Lounge in "Lucky38ElevatorMessage" -ETB Set VMQHouse1.bOnPenthouseFloor to 0 ; (8_11_10) To filter out the Penthouse in "Lucky38ElevatorMessage" -ETB Set VDialogueLucky38Entrance.L38PresidentialSuite to 1 ; (Set back to 0 in Victor's dialogue result script (VDialogueLucky38Entrance GREETING)) player.MoveTo Lucky38SuiteMarker playsound DRSElevatorHotelOpen set VFreeformLucky38.bElevatorTeleport to 1 ; --------------------------- Cocktail Lounge Floor (button 4) -------------------------------- | elseif Button == 4 ; Cocktail Lounge [NOTE: Lounge and Penthouse are in same worldspace - "Lucky38World".] Set VMQHouse1.bOnLoungeFloor to 1 ; (8_11_10) To filter out Cocktail Lounge in "Lucky38ElevatorMessage" -ETB Set VMQHouse1.bOnPenthouseFloor to 0 ; (8_11_10) To filter out the Penthouse in "Lucky38ElevatorMessage" -ETB ; ----------------- Make Followers Wait! ----------------- \/ ; (Added 8_3_10) To keep the Followers from traveling to the Penthouse/Lounge. -ETB if (VNPCFollowers.bBooneHired && CraigBooneREF.Waiting != 1) set VNPCFollowers.fFollowerWaitingLeaveDay to (GameDaysPassed + FollowerWaitTime) set CraigBooneREF.Waiting to 1; CraigBooneREF.evp elseif (VNPCFollowers.bCassHired && RoseofSharonCassidyREF.Waiting != 1) set VNPCFollowers.fFollowerWaitingLeaveDay to (GameDaysPassed + FollowerWaitTime) set RoseofSharonCassidyREF.Waiting to 1; RoseofSharonCassidyREF.evp elseif (VNPCFollowers.bVeronicaHired && VeronicaREF.Waiting != 1) set VNPCFollowers.fFollowerWaitingLeaveDay to (GameDaysPassed + FollowerWaitTime) set VeronicaREF.Waiting to 1; VeronicaREF.evp elseif (VNPCFollowers.bLilyHired && LilyREF.Waiting != 1) set VNPCFollowers.fFollowerWaitingLeaveDay to (GameDaysPassed + FollowerWaitTime) set LilyREF.Waiting to 1; LilyREF.evp elseif (VNPCFollowers.RaulHired && RaulREF.Waiting != 1) set VNPCFollowers.fFollowerWaitingLeaveDay to (GameDaysPassed + FollowerWaitTime) set RaulREF.Waiting to 1; RaulREF.evp elseif (VNPCFollowers.ArcadeHired && ArcadeREF.Waiting != 1) set VNPCFollowers.fFollowerWaitingLeaveDay to (GameDaysPassed + FollowerWaitTime) set ArcadeREF.Waiting to 1 ArcadeREF.evp endif if (VNPCFollowers.bEDEHired && (EDE1REF.Waiting != 1 || EDE2REF.Waiting != 1 || EDE3REF.Waiting != 1)) set VNPCFollowers.fFollowerWaitingLeaveDay to (GameDaysPassed + FollowerWaitTime) set EDE1REF.Waiting to 1; set EDE2REF.Waiting to 1; set EDE3REF.Waiting to 1; EDE1REF.evp EDE2REF.evp EDE3REF.evp elseif (VNPCFollowers.RexHired && RexREF.Waiting != 1) set VNPCFollowers.fFollowerWaitingLeaveDay to (GameDaysPassed + FollowerWaitTime) set RexREF.Waiting to 1; RexREF.evp endif ; ----------------------------------------------------------------------- /\ ;Set VDialogueLucky38Entrance.L38CocktailLounge to 1 <<< [NOTE: There is no Victor on this floor to talk to the Player, so this doesn't do anything - if a Victor is added here then uncomment this line.] player.MoveTo Lucky38CocktailMarker playsound DRSElevatorHotelOpen set VFreeformLucky38.bElevatorTeleport to 1 ; --------------------------- Penthouse Floor (button 5) ----------------------------------------- | elseif Button == 5 ; Penthouse [NOTE: Lounge and Penthouse are in same worldspace - "Lucky38World".] Set VMQHouse1.bOnLoungeFloor to 0 ; (8_11_10) To filter out Cocktail Lounge in "Lucky38ElevatorMessage" -ETB Set VMQHouse1.bOnPenthouseFloor to 1 ; (8_11_10) To filter out the Penthouse in "Lucky38ElevatorMessage" -ETB ; ----------------- Make Followers Wait! ----------------- \/ ; (Added 8_3_10) To keep the Followers from traveling to the Penthouse/Lounge. -ETB if (VNPCFollowers.bBooneHired && CraigBooneREF.Waiting != 1) set VNPCFollowers.fFollowerWaitingLeaveDay to (GameDaysPassed + FollowerWaitTime) set CraigBooneREF.Waiting to 1; CraigBooneREF.evp elseif (VNPCFollowers.bCassHired && RoseofSharonCassidyREF.Waiting != 1) set VNPCFollowers.fFollowerWaitingLeaveDay to (GameDaysPassed + FollowerWaitTime) set RoseofSharonCassidyREF.Waiting to 1; RoseofSharonCassidyREF.evp elseif (VNPCFollowers.bVeronicaHired && VeronicaREF.Waiting != 1) set VNPCFollowers.fFollowerWaitingLeaveDay to (GameDaysPassed + FollowerWaitTime) set VeronicaREF.Waiting to 1; VeronicaREF.evp elseif (VNPCFollowers.bLilyHired && LilyREF.Waiting != 1) set VNPCFollowers.fFollowerWaitingLeaveDay to (GameDaysPassed + FollowerWaitTime) set LilyREF.Waiting to 1; LilyREF.evp elseif (VNPCFollowers.RaulHired && RaulREF.Waiting != 1) set VNPCFollowers.fFollowerWaitingLeaveDay to (GameDaysPassed + FollowerWaitTime) set RaulREF.Waiting to 1; RaulREF.evp elseif (VNPCFollowers.ArcadeHired && ArcadeREF.Waiting != 1) set VNPCFollowers.fFollowerWaitingLeaveDay to (GameDaysPassed + FollowerWaitTime) set ArcadeREF.Waiting to 1 ArcadeREF.evp endif if (VNPCFollowers.bEDEHired && (EDE1REF.Waiting != 1 || EDE2REF.Waiting != 1 || EDE3REF.Waiting != 1)) set VNPCFollowers.fFollowerWaitingLeaveDay to (GameDaysPassed + FollowerWaitTime) set EDE1REF.Waiting to 1; set EDE2REF.Waiting to 1; set EDE3REF.Waiting to 1; EDE1REF.evp EDE2REF.evp EDE3REF.evp elseif (VNPCFollowers.RexHired && RexREF.Waiting != 1) set VNPCFollowers.fFollowerWaitingLeaveDay to (GameDaysPassed + FollowerWaitTime) set RexREF.Waiting to 1; RexREF.evp endif ; ----------------------------------------------------------------------- /\ Set VDialogueLucky38Entrance.L38Penthouse to 1 ; (Set back to 0 in Victor's dialogue result script (VDialogueLucky38Entrance GREETING)) player.MoveTo Lucky38PenthouseMarker playsound DRSElevatorHotelOpen set VFreeformLucky38.bElevatorTeleport to 1 endif ; --------------------------- Victor Announces Elevator Floors ------------------------------ | ; (Commented-Out 7_29_10) Basement Victor no longer appears. -ETB ;if ( VDialogueLucky38Entrance.L38Basement == 1 ) ; <<< (Added 7_15_10) So Victor would use his "announce floor" lines - ETB ;if ( Delay30FramesCounter >= 30 ) ; (Added 7_29_10) So Victor would delay before announcing floor. ;Set Delay30FramesCounter to 0 ;if ( bSayOnce == 0 ) ;Set bSayOnce to 1 ; "bSayOnce" set to 0 in dialogue result script VDialogueLucky38Entrance, GREETING ;Lucky38VictorElevatorBasementREF.SayTo Lucky38VictorElevatorBasementREF GREETING ; (Commented 7_29_10) NOTE: Victor removed from Basement. -ETB ;endif ;else ;Set Delay30FramesCounter to ( Delay30FramesCounter + 1 ) ;Return ;endif If ( VDialogueLucky38Entrance.L38Penthouse == 1 && MenuMode != 1 ) ; <<< if ( Delay30FramesCounter >= 30 ) Set Delay30FramesCounter to 0 if ( bSayOnce == 0 ) Set bSayOnce to 1 Lucky38VictorElevatorPenthouseREF.SayTo player GREETING ; <<< endif else Set Delay30FramesCounter to ( Delay30FramesCounter + 1 ) Return endif elseif ( VDialogueLucky38Entrance.L38Casino == 1 && MenuMode != 1 ) ; <<< (Added 7_27_10) Conditional check for "player in cell" if ( Delay30FramesCounter >= 30 ) Set Delay30FramesCounter to 0 if ( bSayOnce == 0 ) Set bSayOnce to 1 Lucky38VictorElevatorREF.SayTo player GREETING endif ; <<< else Set Delay30FramesCounter to ( Delay30FramesCounter + 1 ) Return endif elseif ( VDialogueLucky38Entrance.L38PresidentialSuite == 1 && MenuMode != 1 ) ; <<< if ( Delay30FramesCounter >= 30 ) Set Delay30FramesCounter to 0 if ( bSayOnce == 0 ) Set bSayOnce to 1 Lucky38VictorElevatorSuiteREF.SayTo player GREETING ; <<< endif else Set Delay30FramesCounter to ( Delay30FramesCounter + 1 ) Return endif endif ; <<< ; ---------------------------------------------------------------------------------------------------------------- /\ If vStoryEventMrHouseNeutralized == 0 && GetPCEnemyOfFaction Lucky38Faction != 1 && Lucky38VictorEntranceREF.GetDisabled == 1 Lucky38VictorEntranceREF.Enable Set Lucky38VictorEntranceREF.bVictorOff to 0 Endif ; Failsafe from "ondeath" block for "Lucky38VictorElevatorPenthouseREF" (he was not reporting is ondeath correctly). ; --------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- \/ Added to fix issue# 52153. (11_15_10) -ETB If ( Lucky38VictorElevatorPenthouseREF.GetDead == 1 ) setstage vdialoguelucky38entrance 10 ; Unlock the Elevator Door if Victor dies. ; ------------------------------------- Fail House Questline ---------------------------------- \/ Set VMQHouse1.RefusedChip to 1 ; (8_10_10) To be used as a universal "house questline fail" variable -ETB If ( GetQuestRunning VMQHouse1 ) SetStage VMQHouse1 66 Endif If ( GetQuestRunning VMQHouse2 ) SetStage VMQHouse2 110 endif If ( GetQuestRunning VMQHouse3 ) SetStage VMQHouse3 200 endif If ( GetQuestRunning VMQHouse4 ) SetStage VMQHouse4 110 endif If ( GetQuestRunning VMQHouse5 ) SetStage VMQHouse5 200 endif If ( GetQuestRunning VMQHouse6 ) SetStage VMQHouse6 200 endif If ( GetQuestRunning VMQHouse7 ) SetStage VMQHouse7 200 endif If ( GetQuestRunning VMQHouse8 ) SetStage VMQHouse8 200 endif If VStoryEventMrHouseNeutralized == 0 SetEnemy Lucky38Faction playerFaction Lucky38MrHouseREF.PlayIdle LooseNVPHMCconnectionLost Lucky38MrHouseREF.SetDestroyed 1 Endif ; NOTE: Any changes must be duplicated in: ; "Lucky38VictorEntranceSCRIPT", "Lucky38VictorElevatorScript", "Lucky38SecuritronSCRIPT". ; (A slightly different version exists in VMQHouseFail (quest) result script (it would also need altering)) -ETB ; ----------------------------------------------------------------------------------------------------------- /\ Endif ; --------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- /\ End of issue#52153 fix. (11_15_10) -ETB end; GameMode block ; --------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | begin MenuMode 1009 ; <<< (Added 7_15_10) To increment a counter during a menumode event (dialogue). - ETB ; <<< if ( DelayCounter == 1 ) ; <<< Set DelayCounter to 2 ; <<< endif ; <<< ; <<< end; MenuMode 1009 block ; <<< ; --------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | begin onhit player ; [NOTE: The "fail the House questline" stuff that used to be here has moved to the "ondeath" block.] -ETB ; [NOTE: (8_12_10) ...and now it's back.] -ETB ; ------------------------------------- Fail House Questline ---------------------------------- \/ ; (7_29_10) Moved from "OnHit" (to "OnDeath") block to comply with intended functionality. -ETB ; (8_5_10) Changed conditions from "GetObjectiveDisplayed == 1 && GetQuestCompleted == 0"... ; ...to "GetQuestRunning" to fix error where some quest did not fail. -ETB ; (8_12_10) Copied to "OnHit" (again) to cover errors in talking to House (mainframe) after shooting (but not killing) a Securitron. -ETB ;If IsKiller Player == 1 <---- Commented out to fix "if killed by companion" error. -ETB Set VMQHouse1.RefusedChip to 1 ; (8_10_10) To be used as a universal "house questline fail" variable -ETB If ( GetQuestRunning VMQHouse1 ) SetStage VMQHouse1 66 Endif If ( GetQuestRunning VMQHouse2 ) SetStage VMQHouse2 110 endif If ( GetQuestRunning VMQHouse3 ) SetStage VMQHouse3 200 endif If ( GetQuestRunning VMQHouse4 ) SetStage VMQHouse4 110 endif If ( GetQuestRunning VMQHouse5 ) SetStage VMQHouse5 200 endif If ( GetQuestRunning VMQHouse6 ) SetStage VMQHouse6 200 endif If ( GetQuestRunning VMQHouse7 ) SetStage VMQHouse7 200 endif If ( GetQuestRunning VMQHouse8 ) SetStage VMQHouse8 200 endif If VStoryEventMrHouseNeutralized == 0 SetEnemy Lucky38Faction playerFaction Lucky38MrHouseREF.PlayIdle LooseNVPHMCconnectionLost Lucky38MrHouseREF.SetDestroyed 1 Endif ;Endif ; NOTE: Any changes must be duplicated in: ; "Lucky38VictorEntranceSCRIPT", "Lucky38VictorElevatorScript", "Lucky38SecuritronSCRIPT". ; (A slightly different version exists in VMQHouseFail (quest) result script (it would also need altering)) -ETB ; ----------------------------------------------------------------------------------------------------------- /\ end; onhit player block ; --------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | begin ondeath setstage vdialoguelucky38entrance 10 ; Unlock the Elevator Door if Victor dies. ; ------------------------------------- Fail House Questline ---------------------------------- \/ ; (7_29_10) Moved from "OnHit" (to "OnDeath") block to comply with intended functionality. -ETB ; (8_5_10) Changed conditions from "GetObjectiveDisplayed == 1 && GetQuestCompleted == 0"... ; ...to "GetQuestRunning" to fix error where some quest did not fail. -ETB ;If IsKiller Player == 1 <---- Commented out to fix "if killed by companion" error. -ETB Set VMQHouse1.RefusedChip to 1 ; (8_10_10) To be used as a universal "house questline fail" variable -ETB If ( GetQuestRunning VMQHouse1 ) SetStage VMQHouse1 66 Endif If ( GetQuestRunning VMQHouse2 ) SetStage VMQHouse2 110 endif If ( GetQuestRunning VMQHouse3 ) SetStage VMQHouse3 200 endif If ( GetQuestRunning VMQHouse4 ) SetStage VMQHouse4 110 endif If ( GetQuestRunning VMQHouse5 ) SetStage VMQHouse5 200 endif If ( GetQuestRunning VMQHouse6 ) SetStage VMQHouse6 200 endif If ( GetQuestRunning VMQHouse7 ) SetStage VMQHouse7 200 endif If ( GetQuestRunning VMQHouse8 ) SetStage VMQHouse8 200 endif If VStoryEventMrHouseNeutralized == 0 SetEnemy Lucky38Faction playerFaction Lucky38MrHouseREF.PlayIdle LooseNVPHMCconnectionLost Lucky38MrHouseREF.SetDestroyed 1 Endif ;Endif ; NOTE: Any changes must be duplicated in: ; "Lucky38VictorEntranceSCRIPT", "Lucky38VictorElevatorScript", "Lucky38SecuritronSCRIPT". ; (A slightly different version exists in VMQHouseFail (quest) result script (it would also need altering)) -ETB ; ----------------------------------------------------------------------------------------------------------- /\ end; ondeath block
704Lucky38VictorEntranceSCRIPTscn Lucky38VictorEntranceSCRIPT Short bVictorOff Short HitOnce ; Added code akin to Street Securitrons to control aggro state on the Strip if Victor gets attacked by players. Begin OnLoad If VStreetCombat.Wanted != 1 Set HitOnce to 0 Endif End Begin OnReset If VStreetCombat.Wanted != 1 Set HitOnce to 0 Endif End Begin OnStartCombat Player Set VStreetCombat.Wanted to 1 Set VStreetCombat.SecuritronInCombat to 1 Set VStreetFluffNPC.NPCNormal to 0 End ; ------------------------------------------------------------------------ Jorge begin ondeath If VDialogueLucky38Entrance.L38EntranceOpen != 1 Lucky38EntranceDoorActor.SetOpenState 1 Set VDialogueLucky38Entrance.L38EntranceOpen to 1 Endif ; ------------------------------------- Fail House Questline ---------------------------------- \/ ; (7_29_10) Moved from "OnHit" (to "OnDeath") block to comply with intended functionality. -ETB ; (8_5_10) Changed conditions from "GetObjectiveDisplayed == 1 && GetQuestCompleted == 0"... ; ...to "GetQuestRunning" to fix error where some quest did not fail. -ETB ; (8_12_10) Copied to "OnHit" (again) to cover errors in talking to House (mainframe) after shooting (but not killing) a Securitron. -ETB ;If IsKiller Player == 1 <---- Commented out to fix "if killed by companion" error. -ETB Set VMQHouse1.RefusedChip to 1 ; (8_10_10) To be used as a universal "house questline fail" variable -ETB If ( GetQuestRunning VMQHouse1 ) SetStage VMQHouse1 66 Endif If ( GetQuestRunning VMQHouse2 ) SetStage VMQHouse2 110 endif If ( GetQuestRunning VMQHouse3 ) SetStage VMQHouse3 200 endif If ( GetQuestRunning VMQHouse4 ) SetStage VMQHouse4 110 endif If ( GetQuestRunning VMQHouse5 ) SetStage VMQHouse5 200 endif If ( GetQuestRunning VMQHouse6 ) SetStage VMQHouse6 200 endif If ( GetQuestRunning VMQHouse7 ) SetStage VMQHouse7 200 endif If ( GetQuestRunning VMQHouse8 ) SetStage VMQHouse8 200 endif If VStoryEventMrHouseNeutralized == 0 SetEnemy Lucky38Faction playerFaction Lucky38MrHouseREF.PlayIdle LooseNVPHMCconnectionLost Lucky38MrHouseREF.SetDestroyed 1 Endif ;Endif ; NOTE: Any changes must be duplicated in: ; "Lucky38VictorEntranceSCRIPT", "Lucky38VictorElevatorScript", "Lucky38SecuritronSCRIPT". ; (A slightly different version exists in VMQHouseFail (quest) result script (it would also need altering)) -ETB ; ----------------------------------------------------------------------------------------------------------- /\ ;setstage vdialoguelucky38entrance 10 end; ondeath block ; ------------------------------------------------------------------------ | begin onhit player ; Added code akin to Street Securitrons to control aggro state on the Strip if Victor gets attacked by players. If HitOnce == 1 Return Else if HitOnce != 1 Set VStreetCombat.Wanted to 1 Set VStreetCombat.SecuritronInCombat to 1 Set VStreetFluffNPC.NPCNormal to 0 Set VStreetCombat.ForgetTime to GameDaysPassed + 3 VStreetBot01REF.StartCombat Player VStreetBot02REF.StartCombat Player VStreetBot03REF.StartCombat Player VStreetBot04REF.StartCombat Player VStreetBot05REF.StartCombat Player ;VStreetBot06REF.StartCombat Player ;VStreetBot07REF.StartCombat Player ;VStreetBot08REF.StartCombat Player ;VStreetBot09REF.StartCombat Player Set HitOnce to 1 Endif If VStreetCombat.SecuritronHit == 1 Return Elseif VStreetCombat.SecuritronHit != 1 Set VStreetCombat.Wanted to 1 Set VStreetCombat.SecuritronInCombat to 1 Set VStreetFluffNPC.NPCNormal to 0 Set VStreetCombat.ForgetTime to GameDaysPassed + 3 Set VStreetCombat.SecuritronHit to 1 Endif ; ---------------------------------------------- Jorge ; ------------------------------------- Fail House Questline ---------------------------------- \/ ; (7_29_10) Moved from "OnHit" (to "OnDeath") block to comply with intended functionality. -ETB ; (8_5_10) Changed conditions from "GetObjectiveDisplayed == 1 && GetQuestCompleted == 0"... ; ...to "GetQuestRunning" to fix error where some quest did not fail. -ETB ; (8_12_10) Copied to "OnHit" (again) to cover errors in talking to House (mainframe) after shooting (but not killing) a Securitron. -ETB ;If IsKiller Player == 1 <---- Commented out to fix "if killed by companion" error. -ETB Set VMQHouse1.RefusedChip to 1 ; (8_10_10) To be used as a universal "house questline fail" variable -ETB If ( GetQuestRunning VMQHouse1 ) SetStage VMQHouse1 66 Endif If ( GetQuestRunning VMQHouse2 ) SetStage VMQHouse2 110 endif If ( GetQuestRunning VMQHouse3 ) SetStage VMQHouse3 200 endif If ( GetQuestRunning VMQHouse4 ) SetStage VMQHouse4 110 endif If ( GetQuestRunning VMQHouse5 ) SetStage VMQHouse5 200 endif If ( GetQuestRunning VMQHouse6 ) SetStage VMQHouse6 200 endif If ( GetQuestRunning VMQHouse7 ) SetStage VMQHouse7 200 endif If ( GetQuestRunning VMQHouse8 ) SetStage VMQHouse8 200 endif If VStoryEventMrHouseNeutralized == 0 SetEnemy Lucky38Faction playerFaction Lucky38MrHouseREF.PlayIdle LooseNVPHMCconnectionLost Lucky38MrHouseREF.SetDestroyed 1 Endif ;Endif ; NOTE: Any changes must be duplicated in: ; "Lucky38VictorEntranceSCRIPT", "Lucky38VictorElevatorScript", "Lucky38SecuritronSCRIPT". ; (A slightly different version exists in VMQHouseFail (quest) result script (it would also need altering)) -ETB ; ----------------------------------------------------------------------------------------------------------- /\ end; onhit player block ; ------------------------------------------------------------------------ | begin gamemode if ( vStoryEventMrHouseNeutralized > 0 ) && Lucky38VictorEntranceREF.GetDisabled != 1 ; <<< (Added 7_7_10) If Mr. House is "neutralized" in the basement then Victor shouldn't appear in front of the Lucky38. -ETB ; <<< (Added 7/23/10 Some extra conditions here, so that Victor disappears if House is pissed off (entrance Vic), and also conditions so Lucky38VictorEntranceREF.disable ; <<< that the enable/disable function does not run every frame) - Jorge Lucky38VictorEntranceREF.MarkForDelete Set bVictorOff to 1 ; <<< Elseif vStoryEventMrHouseNeutralized == 0 && GetPCEnemyOfFaction Lucky38Faction == 1 && Lucky38VictorEntranceREF.GetDisabled != 1 If VStreetFluffNPC.iPlayerInArea == 1 If GetDead != 1 && GetDistance Player >= 1024 Lucky38VictorEntranceREF.Kill If VDialogueLucky38Entrance.L38EntranceOpen != 1 Lucky38EntranceDoorActor.SetOpenState 1 Set VDialogueLucky38Entrance.L38EntranceOpen to 1 Endif Set bVictorOff to 1 Else If Player.GetInWorldspace TheStripWorldNew != 1 If VDialogueLucky38Entrance.L38EntranceOpen != 1 Lucky38EntranceDoorActor.SetOpenState 1 Set VDialogueLucky38Entrance.L38EntranceOpen to 1 Endif Disable Set bVictorOff to 1 Endif Endif Else If GetDead != 1 If VDialogueLucky38Entrance.L38EntranceOpen != 1 Lucky38EntranceDoorActor.SetOpenState 1 Set VDialogueLucky38Entrance.L38EntranceOpen to 1 Endif Lucky38VictorEntranceREF.Kill Lucky38VictorEntranceREF.disable Set bVictorOff to 1 Endif Endif Elseif vStoryEventMrHouseNeutralized == 0 && GetPCEnemyOfFaction Lucky38Faction != 1 && Lucky38VictorEntranceREF.GetDisabled == 1 Lucky38VictorEntranceREF.Enable Set bVictorOff to 0 Endif end
705LucySCRIPTscn LucySCRIPT short BeginMedicalServices ;Set to 1 in dialog, starts script below. short BeginAddictionServices ;Set to 1 in dialog, starts script below. short DoOnce ;Script blocker float Timer ;Timer used for animation control BEGIN GameMode ;When set to 1, plays medical animations for five seconds then restarts conversation with the player if ( BeginMedicalServices == 1 ) if ( DoOnce== 0 ) disablePlayerControls evp sayto player LLLucyMedicalChatter PlayIdle LooseDoctorHealPlayer set Timer to 6 set DoOnce to 1 endif set Timer to ( Timer - GetSecondsPassed ) if ( Timer <= 6 ) && ( DoOnce == 1 ) IMod FadeToBlackISFX set DoOnce to 2 endif if ( Timer <= 0 ) setstage Doctors 10 enablePlayerControls addScriptPackage DefaultNPCDialogPlayer endif endif ;When set to 1, plays medical animations for eight seconds then restarts conversation with the player if ( BeginAddictionServices == 1 ) if ( DoOnce== 0 ) disablePlayerControls evp PlayIdle LooseDoctorHeal set Timer to 10 set DoOnce to 1 endif set Timer to ( Timer - GetSecondsPassed ) if ( IsAnimPlaying == 0 ) PlayIdle LooseDoctorHeal endif if ( Timer <= 6 ) && ( DoOnce == 1 ) IMod FadeToBlackISFX set DoOnce to 2 endif if ( Timer <= 0 ) setstage Doctors 20 enablePlayerControls addScriptPackage DefaultNPCDialogPlayer endif endif END
706LVLForlornHopeAttackerCleanupSCRIPTscn LVLForlornHopeAttackerCleanupSCRIPT ; CES - 3/08/2011 ; This is a cleanup script to clear up memory issues in CFH. Short bDoOnce; BEGIN GameMode If (bDoOnce == 0) Set bDoOnce to 1; Disable; MarkForDelete; Endif END
707LvlGoodspringsPowderGangerScriptscn LvlGoodspringsPowderGangerScript short bDoOnce begin OnReset if GetStageDone VMS16b 100 Enable set bDoOnce to 1 endif end
708MaizeScriptscn MaizeScript int State begin onActivate if State == 0 && GetActionRef == player player.additem NVFreshMaize 1 set State to 1 playGroup Backward 1 setdestroyed 1 endif end begin onLoad if State == 0 playGroup Forward 1 elseif State == 1 playGroup Backward 1 endif end begin onReset if State == 1 playgroup Forward 1 set State to 0 setdestroyed 0 endif end
709MajorDhatriScriptscn MajorDhatriScript begin OnDeath if (GetStageDone VMS12 100 == 0) SetStage VMS12 110 endif end
710MantisLegScriptscn MantisLegScript ref TempContainer ref MantisContainer begin OnAdd set TempContainer to GetContainer if TempContainer.GetIsCreatureType 2 == 1 set MantisContainer to GetContainer endif end begin OnDrop MantisContainer.kill player 3 MantisContainer.kill player 5 end
711MartinaGroesbeckScriptscn MartinaGroesbeckScript begin OnHit VMS33OmertaThug01Ref KillActor SetStage VMS33 40 VMS33OmertaThug01Ref.SetAlert 0 VMS33OmertaThug02Ref.SetAlert 0 VMS33OmertaThug03Ref.SetAlert 0 VMS33OmertaThug01Ref.AddScriptPackage VMS33ThugLeavePackage VMS33OmertaThug02Ref.AddScriptPackage VMS33ThugLeavePackage VMS33OmertaThug03Ref.AddScriptPackage VMS33ThugLeavePackage end begin OnDeath VMS33OmertaThug01Ref.SetAlert 0 VMS33OmertaThug02Ref.SetAlert 0 VMS33OmertaThug03Ref.SetAlert 0 VMS33OmertaThug01Ref.AddScriptPackage VMS33ThugLeavePackage VMS33OmertaThug02Ref.AddScriptPackage VMS33ThugLeavePackage VMS33OmertaThug03Ref.AddScriptPackage VMS33ThugLeavePackage end
712MaulerKnockdownScriptscn MaulerKnockdownScript ref myself Begin ScriptEffectStart If myself.HasPerk Stonewall != 1 set myself to GetSelf player.pushactoraway myself 15 Else ShowMessage StonewallMessage EndIf End
713McCarranNorthTarmacTriggerScriptscn McCarranNorthTarmacTriggerScript ; Enables NPCs present on the north tarmac and disables those over by the airplanes. short bArcadeVisitedMcCarran begin OnTriggerEnter player if McCarranNorthParentMarker.GetDisabled McCarranNorthParentMarker.Enable McCarranSouthParentMarker.Disable endif if (VNPCFollowers.ArcadeHired == 1) && (bArcadeVisitedMcCarran == 0) ArcadeREF.AddScriptPackage ArcadeMcCarranDialoguePackage set bArcadeVisitedMcCarran to 1 endif end
714McCarranSouthTarmacTriggerScriptscn McCarranSouthTarmacTriggerScript ; Enables NPCs present on the south tarmac and disables those over at the north camp. begin OnTriggerEnter player if McCarranSouthParentMarker.GetDisabled McCarranNorthParentMarker.Disable McCarranSouthParentMarker.Enable endif end
715MeanSonofabitchKnockdownScriptscn MeanSonofabitchKnockdownScript Ref Self Float Random Begin ScriptEffectStart Set Self to GetSelf Set Random to GetRandomPercent If MeanSonOfABitchREF.GetItemCount WeapsuperSledgeMeanie == 1 If Self.GetInFaction PlayerFaction == 1 If Self.HasPerk Stonewall != 1 Set Self to GetSelf If Random <= 30 MeanSonOfABitchREF.PushActorAway Self 10 Endif Else ShowMessage StonewallMessage EndIf Else If Random <= 75 MeanSonOfABitchREF.PushActorAway Self 20 Endif Endif Elseif Player.GetItemCount WeapsuperSledgeMeanie == 1 If Random <= 15 Player.PushActorAway Self 10 Endif Endif End
716MeatOfChampionsScriptscn MeatOfChampionsScript int nChampsEaten ; Increments when The King, Caesar, Mr. House (activator), or Kimball are Cannibalized short bPerkGranted short bKingEatenIncremented ; If The King's Cannibalization has been incremented in script short bCaesarEatenIncremented ; If Caesar's Cannibalization has been incremented in script short bKimballEatenIncremented ; If Caesar's Cannibalization has been incremented in script short bHouseEatenIncremented ; If Mr. House's Cannibalization has been incremented in script Begin GameMode If bCaesarEatenIncremented == 0 && FortCaesarREF.HasBeenEaten Set nChampsEaten to nChampsEaten +1 Set bCaesarEatenIncremented to 1 endif If bKingEatenIncremented == 0 && VFSTheKingREF.HasBeenEaten Set nChampsEaten to nChampsEaten +1 Set bKingEatenIncremented to 1 endif If bKimballEatenIncremented == 0 && VHDKimballREF.HasBeenEaten Set nChampsEaten to nChampsEaten +1 Set bKimballEatenIncremented to 1 endif If bHouseEatenIncremented == 0 && NVCRMrHouse01REF.HasBeenEaten Set nChampsEaten to nChampsEaten +1 Set bHouseEatenIncremented to 1 endif If nChampsEaten == 4 && bPerkGranted == 0 Player.addperk MeatOfChampionsPerk ShowMessage MeatOfChampionsMessage Set bPerkGranted to 1 endif End
717MedicalClinicAutoDocScriptscn MedicalClinicAutoDocScript short Button begin OnActivate if IsActionRef player ShowMessage MedicalClinicAutoDocMsg endif end
718MegatonClinicPatientSCRIPTSCN MegatonClinicPatientSCRIPT BEGIN OnLoad enable SetUnconscious 1 setav health 10 if ( GetRandomPercent <= 33 ) disable endif END BEGIN OnActivate if ( GetDead == 1 ) || ( Player.IsSneaking == 1 ) activate endif END
719MegatonGate01Scriptscn MegatonGate01Script short OpenNow short opened short StayOpen BEGIN OnLoad if ( Opened >= 1 ) set StayOpen to 1 endif END BEGIN GameMode if ( OpenNow == 1 ) if opened == 0 set opened to 1 playgroup Forward 5 endif endif ; Check if the gates are done opening, play 2nd "Left" idle state if opened == 1 && isAnimPlaying == 0 playgroup Left 5 set opened to 2 endif if ( StayOpen == 1 ) playgroup Left 5 set StayOpen to 0 endif END
720MegatonGenericAddBrassLanternPasswordscn MegatonGenericAddBrassLanternPassword begin OnActivate if IsActionRef player == 1 AddNote "MegatonGenericBrassLanternPassword" Disable endif end
721MegatonSettlerSCRIPTscn MegatonSettlerSCRIPT short GiveGift
722MetLightSwitchSCRIPTscn MetLightSwitchSCRIPT ref myLink short state ; 0 == off ; 1 == on short active short animating ;====================================================; begin onActivate if isActionRef player == 1 ; do nothing else set active to 1 endif end ;====================================================; begin gameMode if active == 1 if animating == 0 if state == 0 playgroup forward 1 set animating to 1 else playgroup backward 1 set animating to 1 endif elseif animating == 1 if isAnimPlaying == 1 ; do nothing else set myLink to getLinkedRef if state == 0 myLink.enable set state to 1 set active to 0 set animating to 0 elseif state == 1 myLink.disable set state to 0 set active to 0 set animating to 0 endif endif endif endif end ;====================================================;
723MicrofusionCellBulkAddScriptscn MicrofusionCellBulkAddScript int killme BEGIN OnAdd Player Set killme to 1 END begin GameMode int countofstuff; int numberToAdd; if (killme == 1) Player.AddItem AmmoMicrofusionCellBulk 100 RemoveMe endif end
724MicrofusionCellBulkAmmoAddScriptscn MicrofusionCellBulkAmmoAddScript int killme BEGIN OnAdd Player Set killme to 1 END begin GameMode int countofstuff; int numberToAdd; if (killme == 1) Player.AddItem AmmoMicrofusionCellBulk 100 RemoveMe endif end
725MiloScriptscn MiloScript int BarkOnce Begin OnDeath SetObjectiveDisplayed VNelson 20 1 setstage vnelson 20 endif if (getStage VNelson == 15) SetObjectiveDisplayed VNelson 20 1 setstage vnelson 20 endif end
726MisfitsSCRIPTscn MisfitsSCRIPT BEGIN OnDeath if GetQuestCompleted VFreeformCampGolf == 0 SetStage VFreeformCampGolf 70 endif END
727MkIIPostUpgradeEnableSCRIPTscn MkIIPostUpgradeEnableSCRIPT ; (Added 7_17_10) -ETB ; This script enables all of the MkII Securitrons inside the Lucky38 after... ; ... the Securitron Upgrade Sequence ("Lucky38UpgradeSecuritronsSCRIPT")... ; ... and queues off of "vstoryeventsecuritronsupgraded" being set to 1. short doOnce begin GameMode if ( doOnce == 0 ) if ( vstoryeventsecuritronsupgraded == 1 ) MkIICasinoEnableParentREF.Enable ; [NOTE: The MkII's Enable with is command, but the MkI's are set to... ; "Set Enable State to Opposite of Parent" so they disable at same time.] Set doOnce to 1 endif endif end; GameMode
728MojaveOutpostPlaqueSCRIPTscn MojaveOutpostPlaqueSCRIPT begin onactivate showmessage mojaveoutpostplaquemessage end
729MrHouseDialoguescn MrHouseDialogue int FirstTalk ;0 = player has never before spoken to Mr. House; 1 = player has int terms ;0 = terms haven't been discussed, 1 = terms discussed, 2 = terms accepted int barter ;0 = no barter success for better terms, 1 = barter success for better terms int seduction ;1 = House has expressed interest, 2 = invited to secret area, 3 = has been scanned int FortMission ;1 = player knows he is to take Chip back to Fort, 2 = player knows he is to find hatch, 3 = player has accepted mission ;4 = player has upgraded Fort's secret army (and House knows this), 5 = player destroyed secret army int FortDestroyVow ;1 = player has told House that he's going to blow up Securitrons, 2 = player has relented int BoomerQuest ;1 = knows of quest; 2 = quest accepted, 3 = quest complete int OmertaQuest ;1 = knows of quest; 2 = quest accepted, 3 = quest complete int BoSQuest ;1 = knows of quest; 2 = quest accepted, 3 = quest complete int KimballQuest ;1 = knows of quest; 2 = quest accepted, 3 = quest complete int EldoradoQuest ;1 = knows of quest; 2 = quest accepted, 3 = quest complete int DamQuest ;1 = knows of quest; 2 = quest accepted, 3 = quest complete int FirstTalkBunker ;1 = player's first "face to face" with Mr. House is in Securitron Vault int WallTermWarn ;1=player warned not to use int ElevatorAlert ;1 = Elevator Alert is active int CaesarInvite ;1 = knows Caesar has invited the player to Fortification Hill
730MrHouseSCRIPTscn MrHouseSCRIPT ;this is the computer Mr House, if you are looking for fleshy house, see NVCRMrHouse (and Script) short Button short YesManHouse short bStartedEndGame Short bSaveGame; Float fSaveTimer; Short nSaveEvent; ;this sets the Computer Mr House to unuseable if Fleshy House is dead. ;need to add snow fx screens BEGIN OnActivate player if (getStage Vdialoguemrhouse == 20) elseif vStoryEventSecuritronsFort ==2 elseif getdestroyed == 1 else activate endif endif END Begin OnLoad setignorefriendlyhits 1 End BEGIN GameMode ;This code runs the savegame. If (bSaveGame == 1) If (fSaveTimer > 0) Set fSaveTimer to fSaveTimer - GetSecondsPassed Else If (nSaveEvent == 0) SystemSave; Set fSaveTimer to 1.0; Set nSaveEvent to 1; ElseIf (nSaveEvent == 1) EnablePlayerControls; ;Show Message Script ShowMessage VEndGameWarningMsgHouse; Set nSaveEvent to 0; Set bSaveGame to 2; EndIf EndIf EndIf if ( bStartedEndGame == 0 ) set Button to GetButtonPressed if ( Button == 0 ) ;Reset Dialog Options So House Redoes the "Are you ready" stuff. SetObjectiveDisplayed VMQHouse8 80 1 elseif ( Button == 1 ) set bStartedEndGame to 1 if GetObjectiveDisplayed VMQHouse8 80 == 1 SetObjectiveCompleted VMQHouse8 80 1 endif SetStage VMQHouse8 80 ;Start House Stuff ; Start the Emergency Radio Quest - AH vNCREmergencyRadioTARef.enable StartQuest vNCREmergencyRadio player.moveto VHDHouseIndyBattleStartMarker ;Move Companions with the Player if (VNPCFollowers.bBooneHired) CraigBooneREF.MoveTo VHDHouseIndyCompanionMarker SET CraigBooneREF.Waiting TO 0; CraigBooneREF.evp; endif if (VNPCFollowers.bCassHired) RoseofSharonCassidyREF.MoveTo VHDHouseIndyCompanionMarker SET RoseofSharonCassidyREF.Waiting TO 0; RoseofSharonCassidyREF.evp; endif if (VNPCFollowers.bVeronicaHired) VeronicaREF.MoveTo VHDHouseIndyCompanionMarker SET VeronicaREF.Waiting TO 0; VeronicaREF.evp; endif if (VNPCFollowers.bLilyHired) LilyREF.MoveTo VHDHouseIndyCompanionMarker SET LilyREF.Waiting TO 0; LilyREF.evp; endif if (VNPCFollowers.RaulHired) RaulREF.MoveTo VHDHouseIndyCompanionMarker SET RaulREF.Waiting TO 0; RaulREF.evp; endif if (VNPCFollowers.ArcadeHired) ArcadeREF.MoveTo VHDHouseIndyCompanionMarker SET ArcadeREF.Waiting TO 0; ArcadeREF.evp; endif if (VNPCFollowers.bEDEHired) if EDE1Ref.GetDisabled == 0 EDE1Ref.MoveTo VHDHouseIndyCompanionMarker; SET EDE1Ref.Waiting TO 0; EDE1Ref.evp; elseif EDE2Ref.GetDisabled == 0 EDE2Ref.MoveTo VHDHouseIndyCompanionMarker; SET EDE2Ref.Waiting TO 0; EDE2Ref.evp; elseif EDE3Ref.GetDisabled == 0 EDE3Ref.MoveTo VHDHouseIndyCompanionMarker; SET EDE3Ref.Waiting TO 0; EDE3Ref.evp; endif endif if (VNPCFollowers.RexHired) RexREF.MoveTo VHDHouseIndyCompanionMarker SET RexREF.Waiting TO 0; RexREF.evp; endif setstage VHDHouseBattle 10 VHDIndependentStartTriggerREF.enable set gamehour to 14 ;Autosave Game Here autosave ;disables use if the player has destroyed the fort secs if vStoryEventSecuritronsFort == 2 setdestroyed 1 endif endif endif END
731MuseumTech01TourDoorSCRIPTscn MuseumTech01TourDoorSCRIPT ; checks the state of the door and either opens or closes it ref myLink Begin onTriggerEnter set myLink to getLinkedRef myLink.setOpenState 1 End Begin onTriggerLeave set myLink to getLinkedRef myLink.setOpenState 0 End
732MuseumtechScriptscn MuseumtechScript short Instruments ;1= Instruments Section is being illuminated in the Rocket Gallery short Crew ;1= Crew Section is being illuminated in the Rocket Gallery short Propulsion ;1= Propulsion Instruments is being illuminated in the Rocket Gallery
733MVSRaiderSpawnSCRIPTscn MVSRaiderSpawnSCRIPT short playerTriggered ; set to 1 when player triggers begin onTriggerEnter Player ;if the player hasnt done it before... if playerTriggered == 0 set playerTriggered to 1 ;turn on the pathers ;npcMVSRaiderPatherA.enable ;npcMVSRaiderPatherB.enable endif end
734MVSSuperMutantRuinsSCRIPTscn MVSSuperMutantRuinsSCRIPT short playerTriggered ; set to 1 when player triggers begin onTriggerEnter Player ;if the player hasnt done it before... if playerTriggered == 0 set playerTriggered to 1 ;turn on the pathers ;npcMVSSuperMutantSpawnA.enable ;npcMVSSuperMutantSpawnB.enable endif end
735NarratorScriptscn NarratorScript ; 01 - Introduction begin SayToDone VEndingIntro PlaySound OBJProjectorGOATNext if (VStoryState == 61) SwapTexture OnScreenSlideRef "##GS01:0" "interface\endgame\endscrn_PF05" NarratorRef.SayTo Player VEndingNCR elseif (VStoryState == 62) && (VStoryEventCaesarKilled == 0) SwapTexture OnScreenSlideRef "##GS01:0" "interface\endgame\endscrn_PF01" NarratorRef.SayTo Player VEndingCLCaesarAlive elseif (VStoryState == 62) && (VStoryEventCaesarKilled > 0) SwapTexture OnScreenSlideRef "##GS01:0" "interface\endgame\endscrn_PF02" NarratorRef.SayTo Player VEndingCLCaesarDead elseif (VStoryState == 63) SwapTexture OnScreenSlideRef "##GS01:0" "interface\endgame\endscrn_PF04" NarratorRef.SayTo Player VEndingMrHouse else SwapTexture OnScreenSlideRef "##GS01:0" "interface\endgame\endscrn_PF03" NarratorRef.SayTo Player VEndingIndependent endif end ; 02a - NCR begin SayToDone VEndingNCR PlaySound OBJProjectorGOATNext if GetPCIsSex Male NarratorRef.SayTo Player VEndingCourierMale else NarratorRef.SayTo Player VEndingCourierFemale endif end ; 02b - Legion, Caesar Alive begin SayToDone VEndingCLCaesarAlive PlaySound OBJProjectorGOATNext if GetPCIsSex Male NarratorRef.SayTo Player VEndingCourierMale else NarratorRef.SayTo Player VEndingCourierFemale endif end ; 02c - Legion, Caesar Dead begin SayToDone VEndingCLCaesarDead PlaySound OBJProjectorGOATNext if GetPCIsSex Male NarratorRef.SayTo Player VEndingCourierMale else NarratorRef.SayTo Player VEndingCourierFemale endif end ; 02d - Mr. House begin SayToDone VEndingMrHouse PlaySound OBJProjectorGOATNext if GetPCIsSex Male NarratorRef.SayTo Player VEndingCourierMale else NarratorRef.SayTo Player VEndingCourierFemale endif end ; 02e - Indy Vegas begin SayToDone VEndingIndependent PlaySound OBJProjectorGOATNext if GetPCIsSex Male NarratorRef.SayTo Player VEndingCourierMale else NarratorRef.SayTo Player VEndingCourierFemale endif end ; 03a - Male Courier begin SayToDone VEndingCourierMale PlaySound OBJProjectorGOATNext if (BlackMountainMapMarkerREF.GetMapMarkerVisible == 2) NarratorRef.SayTo Player VEndingBlackMountain elseif VNPCFollowers.RaulAvailable NarratorRef.SayTo Player VEndingRaul else NarratorRef.SayTo Player VEndingBoomers endif end ; 03b - Female Courier begin SayToDone VEndingCourierFemale PlaySound OBJProjectorGOATNext if (BlackMountainMapMarkerREF.GetMapMarkerVisible == 2) NarratorRef.SayTo Player VEndingBlackMountain elseif VNPCFollowers.RaulAvailable NarratorRef.SayTo Player VEndingRaul else NarratorRef.SayTo Player VEndingBoomers endif end ; 05 - Black Mountain begin SayToDone VEndingBlackMountain PlaySound OBJProjectorGOATNext if VNPCFollowers.RaulAvailable NarratorRef.SayTo Player VEndingRaul else NarratorRef.SayTo Player VEndingBoomers endif end ; 06 - Raul begin SayToDone VEndingRaul PlaySound OBJProjectorGOATNext NarratorRef.SayTo Player VEndingBoomers end ; 07 - Boomers begin SayToDone VEndingBoomers PlaySound OBJProjectorGOATNext NarratorRef.SayTo Player VEndingBrotherhood end ; 08 - Brotherhood of Steel begin SayToDone VEndingBrotherhood PlaySound OBJProjectorGOATNext if VNPCFollowers.bVeronicaAvailable NarratorRef.SayTo Player VEndingVeronica else NarratorRef.SayTo Player VEndingFiends endif end ; 09 - Veronica begin SayToDone VEndingVeronica PlaySound OBJProjectorGOATNext NarratorRef.SayTo Player VEndingFiends end ; 10 - Fiends begin SayToDone VEndingFiends PlaySound OBJProjectorGOATNext NarratorRef.SayTo Player VEndingFollowers end ; 11 - Followers of the Apocalypse begin SayToDone VEndingFollowers PlaySound OBJProjectorGOATNext if VNPCFollowers.ArcadeAvailable NarratorRef.SayTo Player VEndingArcade else NarratorRef.SayTo Player VEndingGoodsprings endif end ; 12 - Arcade begin SayToDone VEndingArcade PlaySound OBJProjectorGOATNext NarratorRef.SayTo Player VEndingGoodsprings end ; 13 - Goodsprings begin SayToDone VEndingGoodsprings PlaySound OBJProjectorGOATNext if VNPCFollowers.bCassAvailable if (VDialogueCass.iCassQuestArcTracking == 1) || (VDialogueCass.iCassQuestArcTracking == 2) NarratorRef.SayTo Player VEndingCassQuestEnding set VDialogueCass.iCassQuestArcTracking to 3 ; Added so she won't repeat her quest resolution dialogue else NarratorRef.SayTo Player VEndingCass endif else NarratorRef.SayTo Player VEndingGreatKhans endif end ; 13b - Cass Quest Ending begin SayToDone VEndingCassQuestEnding PlaySound OBJProjectorGOATNext NarratorRef.SayTo Player VEndingCass end ; 14 - Cass begin SayToDone VEndingCass ; NCR victory, Cass isn't dead and hasn't quit if (VStoryState == 61) && (VNPCFollowers.bCassDead == 0) && (VDialogueCass.bGoneForever == 0) NarratorRef.SayTo Player VEndingRoseOfSharonCassidyNCR else PlaySound OBJProjectorGOATNext NarratorRef.SayTo Player VEndingGreatKhans endif end ; 14a - Cass, NCR Victory begin SayToDone VEndingRoseOfSharonCassidyNCR if (VDialogueCass.iCassQuestArcTracking > 0) && (GetPCIsSex Male) NarratorRef.SayTo Player VEndingRoseOfSharonCassidyComplete elseif (VDialogueCass.iCassQuestArcTracking == 0) || (GetPCIsSex Female) NarratorRef.SayTo Player VEndingCassQuestUnresolved else NarratorRef.SayTo Player VEndingGreatKhans endif end ; 14b - Cass, Quest Complete begin SayToDone VEndingRoseOfSharonCassidyComplete PlaySound OBJProjectorGOATNext NarratorRef.SayTo Player VEndingGreatKhans end ; 14c - Cass, Quest Not Complete begin SayToDone VEndingCassQuestUnresolved NarratorRef.SayTo Player VEndingCassHoldingCards end ; 14d - Cass, Courier Holding Cards begin SayToDone VEndingCassHoldingCards PlaySound OBJProjectorGOATNext NarratorRef.SayTo Player VEndingGreatKhans end ; 15 - Great Khans begin SayToDone VEndingGreatKhans PlaySound OBJProjectorGOATNext if (JacobstownMapMarker.GetMapMarkerVisible == 2) NarratorRef.SayTo Player VEndingJacobstown elseif VNPCFollowers.bLilyAvailable NarratorRef.SayTo Player VEndingLily else NarratorRef.SayTo Player VEndingKings endif end ; 16 - Jacobstown begin SayToDone VEndingJacobstown PlaySound OBJProjectorGOATNext if VNPCFollowers.bLilyAvailable NarratorRef.SayTo Player VEndingLily else NarratorRef.SayTo Player VEndingKings endif end ; 17 - Lily begin SayToDone VEndingLily PlaySound OBJProjectorGOATNext NarratorRef.SayTo Player VEndingKings end ; 18 - Kings begin SayToDone VEndingKings PlaySound OBJProjectorGOATNext if VNPCFollowers.RexAvailable NarratorRef.SayTo Player VEndingRex elseif (VFreeformCampGolf.MetMcCredie == 1) NarratorRef.SayTo Player VEndingMisfits else NarratorRef.SayTo Player VEndingNovac endif end ; 19 - Rex begin SayToDone VEndingRex PlaySound OBJProjectorGOATNext if (VFreeformCampGolf.MetMcCredie == 1) NarratorRef.SayTo Player VEndingMisfits else NarratorRef.SayTo Player VEndingNovac endif end ; 20 - Misfits begin SayToDone VEndingMisfits PlaySound OBJProjectorGOATNext NarratorRef.SayTo Player VEndingNovac end ; 21 - Novac begin SayToDone VEndingNovac PlaySound OBJProjectorGOATNext if VNPCFollowers.bBooneAvailable NarratorRef.SayTo Player VEndingBoone elseif (NCRCFMapMarker.GetMapMarkerVisible == 2) NarratorRef.SayTo Player VEndingNCRCF else NarratorRef.SayTo Player VEndingPowderGang endif end ; 22 - Boone begin SayToDone VEndingBoone PlaySound OBJProjectorGOATNext if (NCRCFMapMarker.GetMapMarkerVisible == 2) NarratorRef.SayTo Player VEndingNCRCF else NarratorRef.SayTo Player VEndingPowderGang endif end ; 22 - NCRCF begin SayToDone VEndingNCRCF PlaySound OBJProjectorGOATNext NarratorRef.SayTo Player VEndingPowderGang end ; 23 - Vault 19 Powder Gang begin SayToDone VEndingPowderGang PlaySound OBJProjectorGOATNext NarratorRef.SayTo Player VEndingPrimm end ; 24 - Primm begin SayToDone VEndingPrimm PlaySound OBJProjectorGOATNext if VNPCFollowers.bEDEAvailable NarratorRef.SayTo Player VEndingEDE 1 elseif (VStoryEventHanlon > 0) NarratorRef.SayTo Player VEndingRangers elseif (VStoryEventRemnants > 0) NarratorRef.SayTo Player VEndingRangers else NarratorRef.SayTo Player VEndingConclusion endif end ; 25 - ED-E begin SayToDone VEndingEDE PlaySound OBJProjectorGOATNext if (VStoryEventHanlon > 0) NarratorRef.SayTo Player VEndingRangers elseif (VStoryEventRemnants > 0) NarratorRef.SayTo Player VEndingRangers else NarratorRef.SayTo Player VEndingConclusion endif end ; 26 - Rangers begin SayToDone VEndingRangers PlaySound OBJProjectorGOATNext if (VStoryEventRemnants > 0) NarratorRef.SayTo Player VEndingRemnants else NarratorRef.SayTo Player VEndingConclusion endif end ; 27 - Remnants begin SayToDone VEndingRemnants PlaySound OBJProjectorGOATNext NarratorRef.SayTo Player VEndingConclusion end ; 28 - Conclusion begin SayToDone VEndingConclusion ;PlaySound OBJProjectorGOATNext ;imod FadeToBlackISFX StartQuest FadeToCreditsTimer ;PlaySound QSTEndTransitionStinger ;ExitGame end
736NCRAgentKellerScriptscn NCRAgentKellerScript begin OnStartCombat player set VFreeformMcCarran.iNCRAgent to 7 end begin OnDeath set VFreeformMcCarran.iSuppliesNCRAgentStatus to 3 set VFreeformMcCarran.iNCRAgent to 5 end
737NCRCFCarterScriptscn NCRCFCarterScript short bCarterDisabled begin OnLoad if bCarterDisabled == 0 if GetDeadCount NCRCFEddie == 1 NCRCFCarterREF.disable Set bCarterDisabled to 1 endif endif end
738NCRCFChavezScriptscn NCRCFChavezScript begin OnDeath SetStage VMS02 15 end
739NCRCFEddieDeathScriptscn NCRCFEddieDeathScript begin OnDeath set VFreeformNCRCF.EddieDead to 1 if VFreeformNCRCF.AlliedWithNCR == 0 if GetStageDone VMS02 100 return else SetStage VMS02 110 StopQuest VMS02 NCRCFAlarmREF.disable Set VFreeformNCRCF.EddieDead to 1 endif ; Player killed Eddie. if NCRCFEddieREF.IsKiller player SetEnemy NCRCFPowderGangerFaction PlayerFaction 0 0 endif else if GetStageDone VMS02 50 SetStage VMS02 105 StopQuest VMS02 endif endif end
740NCRCFExplosionScriptscn NCRCFExplosionScript begin OnTriggerEnter player if VFreeformNCRCF.LockdownInitiated == 1 && VFreeformNCRCF.PrisonAttackStarted == 0 Set VFreeformNCRCF.PrisonAttackStarted to 1 NCRCFExplosionMarker01.PlaceAtMe VMS02FakeLargeExplosion VMS02Wall01REF.Disable VMS02BlastedWall01REF.Enable VMS02Trooper01REF.Enable VMS02Trooper02REF.Enable VMS02Trooper03REF.Enable VMS02Trooper04REF.Enable NCRCFExplosionMarker02.PlaceAtMe VMS02FakeLargeExplosion VMS02Wall02REF.Disable VMS02BlastedWall02REF.Enable VMS02Trooper05REF.Enable VMS02Trooper06REF.Enable VMS02Trooper07REF.Enable VMS02Trooper08REF.Enable endif end
741NCRCFGuardTriggerScriptscn NCRCFGuardTriggerScript begin OnTriggerEnter player if VFreeformNCRCF.MetDawes == 0 NCRCFGuardREF.SetAlert 1 Set VFreeformNCRCF.MetDawes to 1 endif end
742NCRCFMeyersSCRIPTscn NCRCFMeyersSCRIPT begin OnDeath if GetQuestCompleted nvPrimmDeputyConv == 0 showmessage PrimmMeyersDead endif if GetObjectiveDisplayed nvPrimmDeputyConv 30 == 1 setobjectivedisplayed nvPrimmDeputyConv 30 0 setobjectivedisplayed nvPrimmDeputyConv 36 0 endif end
743NCRCFPowderGangerScriptscn NCRCFPowderGangerScript begin OnStartCombat player SetEnemy NCRCFPowderGangerFaction PlayerFaction end begin OnDeath Set VFreeformNCRCF.GangersKilled to VFreeformNCRCF.GangersKilled + 1 end
744NCRCFSafeScriptscn NCRCFSafeScript begin OnActivate Activate if GetLocked == 0 ;Disabled 6/30 CES set VFreeformNCRCF.SafeUnlocked to 1 endif end
745NCRCFScramblerScriptscn NCRCFScramblerScript begin OnDeath end
746NCRFactionOutfitWarningScriptscn NCRFactionOutfitWarningScript float fUpdatedNegNCR float fUpdatedPosNCR float fUpdatedNegCL float fUpdatedPosCL float fUpdatedNegBoS float fUpdatedPosBoS float fUpdatedNegGK float fUpdatedPosGK float fUpdatedNegPG float fUpdatedPosPG Begin OnEquip Player ;Check to see if player was wearing faction armor. if DisguiseFactionPulseQuest.bFactionArmorEquipped == 0 ;Set variable to track wearing faction armor set DisguiseFactionPulseQuest.bFactionArmorEquipped to 1 ;Player was not wearing faction armor - so we store their reputation values, we don't need to clear it here, it'll get cleared below ;Store Reputations set DisguiseFactionPulseQuest.fNCRNegReputation to GetReputation RepNVNCR 0 set DisguiseFactionPulseQuest.fNCRPosReputation to GetReputation RepNVNCR 1 set DisguiseFactionPulseQuest.fLegionNegReputation to GetReputation RepNVCaesarsLegion 0 set DisguiseFactionPulseQuest.fLegionPosReputation to GetReputation RepNVCaesarsLegion 1 set DisguiseFactionPulseQuest.fBoSNegReputation to GetReputation RepNVBrotherhood 0 set DisguiseFactionPulseQuest.fBoSPosReputation to GetReputation RepNVBrotherhood 1 set DisguiseFactionPulseQuest.fKhanNegReputation to GetReputation RepNVGreatKhans 0 set DisguiseFactionPulseQuest.fKhanPosReputation to GetReputation RepNVGreatKhans 1 set DisguiseFactionPulseQuest.fPowderNegReputation to GetReputation RepNVPowderGanger 0 set DisguiseFactionPulseQuest.fPowderPosReputation to GetReputation RepNVPowderGanger 1 else ;Get Current Faction Values and add stored values set DisguiseFactionPulseQuest.fNCRNegReputation to GetReputation RepNVNCR 0 + DisguiseFactionPulseQuest.fNCRNegReputation set DisguiseFactionPulseQuest.fNCRPosReputation to GetReputation RepNVNCR 1+ DisguiseFactionPulseQuest.fNCRPosReputation set DisguiseFactionPulseQuest.fLegionNegReputation to GetReputation RepNVCaesarsLegion 0 + DisguiseFactionPulseQuest.fLegionNegReputation set DisguiseFactionPulseQuest.fLegionPosReputation to GetReputation RepNVCaesarsLegion 1 + DisguiseFactionPulseQuest.fLegionPosReputation set DisguiseFactionPulseQuest.fBoSNegReputation to GetReputation RepNVBrotherhood 0 + DisguiseFactionPulseQuest.fBoSNegReputation set DisguiseFactionPulseQuest.fBoSPosReputation to GetReputation RepNVBrotherhood 1 + DisguiseFactionPulseQuest.fBoSPosReputation set DisguiseFactionPulseQuest.fKhanNegReputation to GetReputation RepNVGreatKhans 0 + DisguiseFactionPulseQuest.fKhanNegReputation set DisguiseFactionPulseQuest.fKhanPosReputation to GetReputation RepNVGreatKhans 1 + DisguiseFactionPulseQuest.fKhanPosReputation set DisguiseFactionPulseQuest.fPowderNegReputation to GetReputation RepNVPowderGanger 0 + DisguiseFactionPulseQuest.fPowderNegReputation set DisguiseFactionPulseQuest.fPowderPosReputation to GetReputation RepNVPowderGanger 1 + DisguiseFactionPulseQuest.fPowderPosReputation endif if VFactionArmorTutorial == 0 ShowMessage VFactionOutfitTutorial set VFactionArmorTutorial to 1 endif ;Set NCR Alliance ShowMessage NCRFactionOutfitWarning ;SetEnemy VCaesarsLegionFaction PlayerFaction StartQuest DisguiseFactionPulseQuest ;Kicks the pulse placing quest setally PlayerFaction ArmorNCRFactionNV 1 1 player.addtofaction ARMORNCRFactionNVEnemy 0 ;Set BoS Alliance if they have joined the NCR if VStoryEventBoS == 1 setally ArmorBrotherhoodSteelFactionEnemy NCRFactionNV 1 1 setally ArmorBrotherhoodSteelFaction PlayerFaction 1 1 player.addtofaction ArmorBrotherhoodSteelFactionEnemy 0 endif ;Set GreatKhan Alliance if they have joined the NCR if VStoryEventKhans == 1 setally ArmorGreatKhansFactionNVEnemy NCRFactionNV 1 1 setally ArmorGreatKhansFactionNV PlayerFaction 1 1 player.addtofaction ArmorGreatKhansFactionNVEnemy 0 endif ;Clear Reputations SetReputation RepNVNCR 0 0.0 SetReputation RepNVNCR 1 0.0 SetReputation RepNVCaesarsLegion 0 0.0 SetReputation RepNVCaesarsLegion 1 0.0 SetReputation RepNVBrotherhood 0 0.0 SetReputation RepNVBrotherhood 1 0.0 SetReputation RepNVGreatKhans 0 0.0 SetReputation RepNVGreatKhans 1 0.0 SetReputation RepNVPowderGanger 0 0.0 SetReputation RepNVPowderGanger 1 0.0 end Begin OnUnequip Player ;SetEnemy VCaesarsLegionFaction PlayerFaction 1 1 ;SetEnemy PlayerFaction ArmorNCRFactionNV 1 1 if player.GetEquipped FactionGearNVNCR == 0 ;Unset NCR Alliance StopQuest DisguiseFactionPulseQuest ;Stops the pulse placing quest SetEnemy PlayerFaction ArmorNCRFactionNV 1 1 player.RemoveFromFaction ARMORNCRFactionNVEnemy ShowMessage NCRFactionOutfitWarningOff ;UnSet BoS Alliance if they have joined the NCR if VStoryEventBoS == 1 SetEnemy ArmorBrotherhoodSteelFaction PlayerFaction 1 1 player.RemoveFromFaction ArmorBrotherhoodSteelFactionEnemy endif ;UnSet Khan Alliance if they have joined the NCR if VStoryEventKhans == 1 SetEnemy ArmorGreatKhansFactionNV PlayerFaction 1 1 player.RemoveFromFaction ArmorGreatKhansFactionNVEnemy endif ;Get Current Faction Values and add stored values set fUpdatedNegNCR to GetReputation RepNVNCR 0 + DisguiseFactionPulseQuest.fNCRNegReputation set fUpdatedPosNCR to GetReputation RepNVNCR 1+ DisguiseFactionPulseQuest.fNCRPosReputation set fUpdatedNegCL to GetReputation RepNVCaesarsLegion 0 + DisguiseFactionPulseQuest.fLegionNegReputation set fUpdatedPosCL to GetReputation RepNVCaesarsLegion 1 + DisguiseFactionPulseQuest.fLegionPosReputation set fUpdatedNegBoS to GetReputation RepNVBrotherhood 0 + DisguiseFactionPulseQuest.fBoSNegReputation set fUpdatedPosBoS to GetReputation RepNVBrotherhood 1 + DisguiseFactionPulseQuest.fBoSPosReputation set fUpdatedNegGK to GetReputation RepNVGreatKhans 0 + DisguiseFactionPulseQuest.fKhanNegReputation set fUpdatedPosGK to GetReputation RepNVGreatKhans 1 + DisguiseFactionPulseQuest.fKhanPosReputation set fUpdatedNegPG to GetReputation RepNVPowderGanger 0 + DisguiseFactionPulseQuest.fPowderNegReputation set fUpdatedPosPG to GetReputation RepNVPowderGanger 1 + DisguiseFactionPulseQuest.fPowderPosReputation endif ;If the player is not wearing ANY faction armor, do the following if (Player.GetEquipped FactionGearNVNCR == 0) && (Player.GetEquipped FactionGearNVCaesar == 0) && (Player.GetEquipped FactionGearNVBrotherhood == 0) && (Player.GetEquipped FactionGearNVGreatKhans == 0) && (Player.GetEquipped FactionGearNVPowder == 0) && (player.GetEquipped VMS18WhiteGloveMask == 0 || (Player.GetEquipped OutfitFormalWear == 0 && player.GetEquipped ArmorWhiteGloveSociety == 0)) ;Clear Wearing Faction Armor Variable set DisguiseFactionPulseQuest.bFactionArmorEquipped to 0 ;Update to Proper Reputation Values ;Set Reputation Values to Updated SetReputation RepNVNCR 0 fUpdatedNegNCR SetReputation RepNVNCR 1 fUpdatedPosNCR SetReputation RepNVCaesarsLegion 0 fUpdatedNegCL SetReputation RepNVCaesarsLegion 1 fUpdatedPosCL SetReputation RepNVBrotherhood 0 fUpdatedNegBoS SetReputation RepNVBrotherhood 1 fUpdatedPosBoS SetReputation RepNVGreatKhans 0 fUpdatedNegGK SetReputation RepNVGreatKhans 1 fUpdatedPosGK SetReputation RepNVPowderGanger 0 fUpdatedNegPG SetReputation RepNVPowderGanger 1 fUpdatedPosPG endif end ;Restriction on Companions ;Begin OnAdd CraigBooneREF ; ShowMessage CompanionFactionArmorMsg ; DropMe ;End Begin OnAdd RoseofSharonCassidyREF ShowMessage CompanionFactionArmorMsg DropMe End Begin OnAdd VeronicaREF ShowMessage CompanionFactionArmorMsg DropMe End Begin OnAdd LilyREF ShowMessage CompanionFactionArmorMsg DropMe End Begin OnAdd RaulREF ShowMessage CompanionFactionArmorMsg DropMe End Begin OnAdd ArcadeREF ShowMessage CompanionFactionArmorMsg DropMe End Begin OnAdd EDE1REF ShowMessage CompanionFactionArmorMsg DropMe End Begin OnAdd EDE2REF ShowMessage CompanionFactionArmorMsg DropMe End Begin OnAdd EDE3REF ShowMessage CompanionFactionArmorMsg DropMe End Begin OnAdd RexREF ShowMessage CompanionFactionArmorMsg DropMe End
747NCRPrisonTerminalScriptscn NCRPrisonTerminalScript
748NCRRangerVeteranMojaveSCRIPTscn NCRRangerVeteranMojaveSCRIPT ; begin GameMode if ( VStoryState >= 30 ) ; RangerSpawners.Enable <-- Need to reference each SpawnerREF and enable entire list NCRRangerVeteranMojave01REF.Enable NCRRangerVeteranMojave02REF.Enable NCRRangerVeteranMojave03REF.Enable NCRRangerVeteranMojave04REF.Enable NCRRangerVeteranMojave05REF.Enable endif end
749NCRSnifferScriptscn NCRSnifferScript ; If the player is disguised as a member of NCR and he's detected by a special ; sniffer character, the character sounds the alarm. ref MyHandler short DoOnce begin OnStartCombat Player if (GetQR DisguiseFactionPulseQuest == 1) && (IsSpellTarget DisguiseFactionPulseActorEffect == 1) sendAssaultAlarm Player NCRFactionNV sendAssaultAlarm Player VNCRSnifferFaction set MyHandler to GetLinkedRef if (GetDistance player < 512) && MyHandler != 0 MyHandler.Say NCRSnifferChallengePlayer endif endif end
750NellisArgyllScriptscn NellisArgyllScript int FindPlayer short DoOnce ;Script blocker short BeginMedicalServicesBAD ;Used for Sawbones float Timer ;Timer used for animation control BEGIN OnDeath setstage VMS15 116 end BEGIN GameMode ;When set to 1, plays medical animations for eight seconds then restarts conversation with the player if ( GetAV Variable01 == 1 ) if ( DoOnce== 0 ) disablePlayerControls sayto player NellisArgyllMedicalChatter set Timer to 8 set DoOnce to 1 if ( GetIsID Sawbones == 0 ) PlayIdle LooseDoctorHealPlayer endif resetai endif set Timer to ( Timer - GetSecondsPassed ) if ( Timer <= 6 ) && ( DoOnce == 1 ) IMod FadeToBlackISFX set DoOnce to 2 endif if ( Timer <= 0 ) && ( IsImagespaceActive FadeToBlackISFX == 0 ) setstage Doctors 10 enablePlayerControls SetAv Variable01 3 resetai Set DoOnce to 0 endif endif ;When set to 1, plays medical animations for eight seconds then restarts conversation with the player if ( GetAV Variable01 == 2 ) if ( DoOnce== 0 ) disablePlayerControls set Timer to 10 set DoOnce to 1 if ( GetIsID Sawbones == 0 ) PlayIdle LooseDoctorHealPlayer endif resetai endif set Timer to ( Timer - GetSecondsPassed ) if ( Timer <= 6 ) && ( DoOnce == 1 ) IMod FadeToBlackISFX set DoOnce to 2 endif if ( Timer <= 0 ) && ( IsImagespaceActive FadeToBlackISFX == 0 ) setstage Doctors 20 enablePlayerControls SetAv Variable01 3 resetai Set DoOnce to 0 endif endif END
751NellisArtilleryMissScriptscn NellisArtilleryMissScript begin onTriggerEnter Player set NellisArtilleryActivatorREF.InCover to 1 end begin onTriggerLeave Player set NellisArtilleryActivatorREF.InCover to 0 end
752NellisArtilleryScriptscn NellisArtilleryScript int iArtilleryFiring float pangle float rangle float angle float fRelativePos float fQuestDelayTime float fRandom float timer1 float timer2 int ActorCount ; Tracks the number of actors that have entered the trigger volume int Boom ; Tracks whether to make the shooting sound int Fire ; Tracks whether to shoot int InCover ; This check to see if the player is in cover and make the artillery less accurate int XOffset int YOffset int ZOffset float Drift float ActiveTime ; The amount of the time artillery has been active this cycle float iVariance ref CurrentActor1 ; These are holder variables for actors that enter the volume ref CurrentActor2 ; They get cleared by spawned activators every couple of frames ref CurrentActor3 ; There are 3 in case they don't get cleared before a new actor enters ref SpawnedRef1 ; See NellisTargetPickerScript (Attached to NellisTargetPicker) for more associated scripting ref SpawnedRef2 ref SpawnedRef3 ref LeavingActor1 ref LeavingActor2 ref LeavingActor3 ref rActor ref rTarget int iRandomTarget ; RandomTargetPicker float fArtilleryFireRate ;Time between each shell float fArtilleryFireDuration ;How long the player is shelled for before there is a pause float fArtilleryReloadTime ;How long it takes the artillery to reload begin onLoad set fArtilleryFireRate to 2 set fArtilleryFireDuration to 30 set fArtilleryReloadTime to 15 set Drift to 1.2 end ;; Double comments are for temp fixes Begin OnTriggerEnter set rActor to GetActionRef ; Store the current actor in the trigger if rActor.GetPlayerTeammate == 1 ; Do not run for player teammates return endif if rActor.GetInFaction BoomerFaction ;do Nothing ; ;set iArtilleryFiring to 0 ;ShowWarning "Actor is a Boomer Friend. Don't Fire" ; ;set rTarget to 0 ; ;set ActorCount to ActorCount - 1 return elseif rActor == Player && (GetQuestRunning VMS15 || GetQuestCompleted VMS15) ;Also Do Nothing ;showwarning "Player is on quest. Don't fire" ; ;set iArtilleryFiring to 0 ; ;set rTarget to 0 ; ;set ActorCount to ActorCount - 1 return ;; Exit out for player elseif CurrentActor1 == 0 set CurrentActor1 to GetActionRef ;set SpawnedRef1 to rActor.Placeatme NellisTargetPicker elseif CurrentActor2 == 0 set CurrentActor2 to GetActionRef ;set SpawnedRef2 to rActor.Placeatme NellisTargetPicker elseif CurrentActor3 == 0 set CurrentActor3 to GetActionRef ;set SpawnedRef3 to rActor.Placeatme NellisTargetPicker endif set iArtilleryFiring to 1 ; Sets the artillery to fire set ActorCount to ActorCount +1 ; Track the number of actors in the trigger ;showWarning "Actor Entering" End Begin OnTriggerLeave set rActor to GetActionRef if rActor.GetPlayerTeammate == 1 ; Do not run for player teammates return endif if rActor.GetInFaction BoomerFaction ;do Nothing return elseif rActor == Player && (GetQuestRunning VMS15 || GetQuestCompleted VMS15) ;Also Do Nothing return elseif (CurrentActor1 == rActor) set CurrentActor1 to 0 ;set LeavingActor1 to GetActionRef elseif (CurrentActor2 == rActor) set CurrentActor2 to 0 elseif (CurrentActor3 == rActor) set CurrentActor3 to 0 ;elseif LeavingActor2 == 0 ; set LeavingActor2 to GetActionRef ;elseif LeavingActor3 == 0 ; set LeavingActor3 to GetActionRef endif set ActorCount to ActorCount - 1 if ActorCount <= 0 set iArtilleryFiring to 0 set ActorCount to 0 set rTarget to 0 set ActiveTime to 0 set timer1 to 0 set timer2 to 0 set fire to 0 set boom to 0 endif End Begin GameMode if ActorCount <= 0 && iArtilleryFiring == 1 ; Fallthrough to catch actors dying set iArtilleryFiring to 0 set ActorCount to 0 set rTarget to 0 set ActiveTime to 0 endif if iArtilleryFiring == 0 && (Timer1 || Timer2 || Fire || Boom) set timer1 to 0 set timer2 to 0 set fire to 0 set boom to 0 endif if iArtilleryFiring == 0 set timer1 to -5 set rTarget to 0 elseif iArtilleryFiring ==1 set ActiveTime to GetSecondsPassed + ActiveTime if ActiveTime <= 3 set Drift to 5 elseif ActiveTime <= 10 set Drift to 4 elseif ActiveTime <= 12 set Drift to 3 elseif ActiveTime <= 15 set Drift to 2 elseif ActiveTime <= 30 set Drift to 1 else set Drift to 0 endif set iRandomTarget to GetRandomPercent if iRandomTarget >= 0 && CurrentActor1 != 0 && CurrentActor1.GetDead == 0 set rTarget to CurrentActor1 endif if iRandomTarget >= 33 && CurrentActor2 != 0 && CurrentActor2.GetDead == 0 set rTarget to CurrentActor2 endif if iRandomTarget >= 67 && CurrentActor3 != 0 && CurrentActor3.GetDead == 0 set rTarget to CurrentActor3 endif if rTarget == 0 || rTarget.GetDead set iArtilleryFiring to 0 set ActorCount to 0 set rTarget to 0 set ActiveTime to 0 return endif set timer1 to GetSecondsPassed + timer1 set timer2 to GetSecondsPassed + timer2 if timer2 < fArtilleryFireDuration if boom == 0 set Boom to 1 elseif timer1 >= fArtilleryFireRate && fire == 0 set fire to 1 elseif timer1 > fArtilleryFireRate && fire == 2 set timer1 to 0 set boom to 0 set Fire to 0 endif elseif timer2 > (fArtilleryReloadTime + fArtilleryFireDuration) set timer1 to 0 set timer2 to 0 endif if Boom == 1 set Boom to 2 ArtillerySoundMarkerREF.MoveTo Player ArtillerySoundMarkerREF.playsound FXExplosionArtilleryMortar endif if Fire == 1 && rTarget != 0 set fRandom to GetRandomPercent if fRandom <= 50 set fRandom to getRandomPercent * 3.0 * Drift ; Was 10* drift else set fRandom to getRandomPercent * -3.0 * Drift ; Was 10 * drift endif if rTarget == Player && InCover == 1 set Fire to 2 set fRelativePos to rTarget.GetPos Z + 100 ArtillerySourceMarker.setPos Z fRelativePos set iVariance to getrandompercent set fRandom to fRandom + 1500 if iVariance > 75 set fRelativePos to rTarget.GetPos Y - fRandom ArtillerySourceMarker.setPos Y fRelativePos set fRelativePos to rTarget.GetPos X - fRandom ArtillerySourceMarker.setPos X fRelativePos elseif iVariance > 50 set fRelativePos to rTarget.GetPos Y + fRandom ArtillerySourceMarker.setPos Y fRelativePos set fRelativePos to rTarget.GetPos X - fRandom ArtillerySourceMarker.setPos X fRelativePos elseif iVariance > 25 set fRelativePos to rTarget.GetPos Y - fRandom ArtillerySourceMarker.setPos Y fRelativePos set fRelativePos to rTarget.GetPos X + fRandom ArtillerySourceMarker.setPos X fRelativePos else set fRelativePos to rTarget.GetPos Y + fRandom ArtillerySourceMarker.setPos Y fRelativePos set fRelativePos to rTarget.GetPos X + fRandom ArtillerySourceMarker.setPos X fRelativePos endif set angle to ArtillerySourceMarker.GetHeadingAngle NellisMainGateREF ArtillerySourceMarker.SetAngle Z angle ArtillerySourceMarker.PlaceAtMe FXNellisArtilleryStrike01 else set Fire to 2 set fRelativePos to rTarget.GetPos Z + 100 ArtillerySourceMarker.setPos Z fRelativePos set fRelativePos to rTarget.GetPos Y + fRandom ArtillerySourceMarker.setPos Y fRelativePos set fRelativePos to rTarget.GetPos X - fRandom ArtillerySourceMarker.setPos X fRelativePos set angle to ArtillerySourceMarker.GetHeadingAngle NellisMainGateREF ArtillerySourceMarker.SetAngle Z angle ArtillerySourceMarker.PlaceAtMe FXNellisArtilleryStrike01 endif endif endif End
753NellisBarkscn NellisBark BEGIN OnTriggerEnter LilyREF LilyREF.SayTo Player LilyBoomers END
754NellisBonfireScriptscn NellisBonfireScript ; This script is attached to a trigger linked to a fire effect. It hides the fire during the day int Lit ; Tracks whether the fire is currently displaying ref FireREF ; Reference to the linked fire begin GameMode if Lit if GetCurrentTime > 6.0 && GetCurrentTime < 20.0 set FireREF to GetLinkedRef NellisCampfire1REF.Disable 2 set Lit to 0 endif endif end
755NellisBoomerKidScriptscn NellisBoomerKidScript int GotGift begin OnHit player addreputation repnvboomer 0 5 end
756NellisBrokenArrayScriptscn NellisBrokenArrayScript short ArrayRepaired short Button short MenuDepth short PlayerMayAttempt short SetPlayerChance short MenuLevel ref ThisArray BEGIN OnActivate if ArrayRepaired == 0 if ( isActionRef player == 1 ) if ( player.GetAv Repair >= 65 ) || ( player.getitemcount nellisarrayparts > 0 ) ShowMessage NellisSolarArrayRepairMsg else ShowMessage NellisSolarArrayRepairLowMsg endif endif elseif ArrayRepaired == 1 Activate endif END BEGIN GameMode if ( ArrayRepaired == 0 ) set Button to GetButtonPressed if ( Button > 0 ) if ( Button == 1 ) if ( player.GetAV Repair >= 65 ) && ( player.GetAV Science < 50 ) ShowMessage NellisSolarArrayRepairedMsg set VFreeformNellis.iHandyman to VFreeformNellis.iHandyman + 1 RewardXP 30 if GetIsReference NellisArray1BrokenREF NellisArray1BrokenREF.disable NellisArray1REF.enable elseif GetIsReference NellisArray2BrokenREF NellisArray2BrokenREF.disable NellisArray2REF.enable elseif GetIsReference NellisArray3BrokenREF NellisArray3BrokenREF.disable NellisArray3REF.enable elseif GetIsReference NellisArray4BrokenREF NellisArray4BrokenREF.disable NellisArray4REF.enable elseif GetIsReference NellisArray5BrokenREF NellisArray5BrokenREF.disable NellisArray5REF.enable endif set VFreeFormNellis.iArraysFixed to VFreeFormNellis.iArraysFixed -1 elseif ( player.GetAV Repair >= 65 ) && ( player.GetAV Science >= 50 ) ShowMessage NellisSolarArrayRepairedHighMsg set VFreeformNellis.iHandyman to VFreeformNellis.iHandyman + 2 RewardXP 50 if GetIsReference NellisArray1BrokenREF NellisArray1BrokenREF.disable NellisArray1REF.enable elseif GetIsReference NellisArray2BrokenREF NellisArray2BrokenREF.disable NellisArray2REF.enable elseif GetIsReference NellisArray3BrokenREF NellisArray3BrokenREF.disable NellisArray3REF.enable elseif GetIsReference NellisArray4BrokenREF NellisArray4BrokenREF.disable NellisArray4REF.enable elseif GetIsReference NellisArray5BrokenREF NellisArray5BrokenREF.disable NellisArray5REF.enable endif if vfreeformnellis.ihandyman == 10 setobjectivecompleted nellissunshineboogie 75 1 endif set VFreeFormNellis.iArraysFixed to VFreeFormNellis.iArraysFixed -1 endif elseif ( Button == 2 ) player.removeitem NellisArrayParts 1 if player.GetAV Science < 50 ShowMessage NellisSolarArrayRepairedWSparesMsg set VFreeformNellis.iHandyman to VFreeformNellis.iHandyman + 1 RewardXP 30 if GetIsReference NellisArray1BrokenREF NellisArray1BrokenREF.disable NellisArray1REF.enable elseif GetIsReference NellisArray2BrokenREF NellisArray2BrokenREF.disable NellisArray2REF.enable elseif GetIsReference NellisArray3BrokenREF NellisArray3BrokenREF.disable NellisArray3REF.enable elseif GetIsReference NellisArray4BrokenREF NellisArray4BrokenREF.disable NellisArray4REF.enable elseif GetIsReference NellisArray5BrokenREF NellisArray5BrokenREF.disable NellisArray5REF.enable endif set VFreeFormNellis.iArraysFixed to VFreeFormNellis.iArraysFixed -1 elseif player.GetAV Science >= 50 ShowMessage NellisSolarArrayRepairedHighMsg set VFreeformNellis.iHandyman to VFreeformNellis.iHandyman + 2 RewardXP 50 if GetIsReference NellisArray1BrokenREF NellisArray1BrokenREF.disable NellisArray1REF.enable elseif GetIsReference NellisArray2BrokenREF NellisArray2BrokenREF.disable NellisArray2REF.enable elseif GetIsReference NellisArray3BrokenREF NellisArray3BrokenREF.disable NellisArray3REF.enable elseif GetIsReference NellisArray4BrokenREF NellisArray4BrokenREF.disable NellisArray4REF.enable elseif GetIsReference NellisArray5BrokenREF NellisArray5BrokenREF.disable NellisArray5REF.enable endif set VFreeFormNellis.iArraysFixed to VFreeFormNellis.iArraysFixed -1 endif if vfreeformnellis.ihandyman == 10 setobjectivecompleted nellissunshineboogie 75 1 endif set ArrayRepaired to 1 endif endif endif END
757NellisExplodingAntScriptscn NellisExplodingAntScript ref ant int doonce int antcounter int iLightmyfire begin OnHitWith ExplodesGasTrapsOnHit if GetHealthPercentage <= .5 set iLightmyfire to 1 endif if doonce == 0 && getdead == 0 if GetHealthPercentage <= .1 placeatme NellisAntExplosion set doonce to 1 endif endif end begin OnDeath set vfreeformnellis.iantcount to vfreeformnellis.iantcount + 1 if vfreeformnellis.iantcount == 15 && GetObjectiveCompleted VNellisInfestation 20 == 0 setObjectiveCompleted VNellisInfestation 20 1 if GetObjectiveCompleted VNellisInfestation 15 == 1 set VFreeformNellis.iInfestation to 1 setObjectiveDisplayed VNellisInfestation 45 1 endif if GetObjectiveCompleted VNellisInfestation 35 == 0 setObjectiveDisplayed VNellisInfestation 35 0 endif endif if doonce == 0 && iLightmyfire == 1 placeatme NellisAntExplosion set doonce to 1 endif end
758NellisFrontGateScriptscn NellisFrontGateScript ref CurrentActor Begin OnTriggerEnter Player if VFreeformNellis.iFrontGateInfo == 2 set VFreeformNellis.iFrontGateInfo to 3 BoomerFrontGateGuard1REF.enable 0 BoomerFrontGateGuard1REF.evp else set VFreeformNellis.iFrontGateInfo to 4 BoomerFrontGateGuard1REF.enable 0 BoomerFrontGateGuard1REF.evp endif BoomerFrontGateGuard1REF.setghost 1 NellisEntranceActivatorREF.disable End
759NellisGeneratorAntMoundScriptscn NellisGeneratorAntMoundScript int doonce int AlsoOnce begin OnLoad if AlsoOnce == 0 setDestroyed 1 set AlsoOnce to 1 endif end begin GameMode if player.getitemcount NellisSonicEmitter >= 1 && AlsoOnce == 1 setDestroyed 0 set AlsoOnce to 2 endif end begin OnActivate if Player.GetItemCount NellisSonicEmitter == 1 && doonce == 0 SonicEmitterREF.enable SonicEmitterSpeakersREF.enable player.removeitem NellisSonicEmitter 1 SetDestroyed 1 setObjectiveCompleted VNellisInfestation 40 1 setObjectiveDisplayed VNellisInfestation 42 1 endif end
760NellisGeneratorDoorScriptscn NellisGeneratorDoorScript int OnceOnly begin OnActivate if GetDeadCount NellisAntWorkerExplosive == 15 && GetDeadcount NellisAntSoldierExplosive == 10 && VFreeformNellis.iGeneratorSwitches == 3 set VFreeformNellis.iInfestation to 1 if GetObjectiveDisplayed VNellisInfestation 15 == 1 setObjectiveCompleted VNellisInfestation 15 1 setObjectiveDisplayed VNellisInfestation 45 1 endif endif Activate end
761NellisGeneratorSetupScriptscn NellisGeneratorSetupScript int antcounter int doonce int emitter begin OnTriggerEnter Player if doonce == 0 NellisPowerSwitchMainREF.SetDestroyed 1 NellisGeneratorKlaxon1REF.PlayGroup Left 0 NellisGeneratorKlaxon2REF.PlayGroup Left 0 NellisGeneratorKlaxon3REF.PlayGroup Left 0 set doonce to 1 endif end begin gamemode if getobjectivecompleted vnellisinfestation 20 == 0 && doonce == 1 && nellisraquelref.getdead == 0 if vfreeformnellis.iantcount > 3 && antcounter == 0 NellisAntSoldierExplosive1REF.enable set antcounter to 1 elseif vfreeformnellis.iantcount > 4 && antcounter == 1 NellisAntSoldierExplosive2REF.enable set antcounter to 2 elseif vfreeformnellis.iantcount > 5 && antcounter == 2 NellisAntSoldierExplosive3REF.enable set antcounter to 3 elseif vfreeformnellis.iantcount > 6 && antcounter == 3 NellisAntSoldierExplosive4REF.enable set antcounter to 4 elseif vfreeformnellis.iantcount > 7 && antcounter == 4 NellisAntSoldierExplosive5REF.enable set antcounter to 5 elseif vfreeformnellis.iantcount > 8 && antcounter == 5 NellisAntSoldierExplosive6REF.enable set antcounter to 6 elseif vfreeformnellis.iantcount > 9 && antcounter == 6 NellisAntSoldierExplosive7REF.enable set antcounter to 7 elseif vfreeformnellis.iantcount > 10 && antcounter == 7 NellisAntSoldierExplosive8REF.enable set antcounter to 8 elseif vfreeformnellis.iantcount > 11 && antcounter == 8 NellisAntSoldierExplosive9REF.enable set antcounter to 9 elseif vfreeformnellis.iantcount > 12 && antcounter == 9 NellisAntSoldierExplosive10REF.enable set antcounter to 10 endif endif end
762NellisGeneratorSwitchesScriptscn NellisGeneratorSwitchesScript int phase int single float timer int stoptimer begin OnActivate if GetIsReference NellisPowerSwitchMainREF == 1 && VFreeformNellis.iGeneratorSwitches == 2 set VFreeformNellis.iGeneratorSwitches to VFreeformNellis.iGeneratorSwitches + 1 NellisGeneratorKlaxon3REF.PlayGroup Backward 0 NellisGeneratorSwitchLight3REF.disable Activate setdestroyed 1 endif end begin GameMode if VFreeformNellis.iGeneratorSwitches == 3 if single == 0 set timer to timer + GetSecondsPassed if phase == 0 NellisGeneratorKlaxon3REF.PlayGroup Backward 0 NellisPowerSwitchMainREF.PlaySound OBJSwitchLights2D NellisGeneratorELight01REF.disable NellisGeneratorELight01bREF.enable NellisGeneratorELight02REF.disable NellisGeneratorELight02bREF.enable NellisGeneratorELight03REF.disable NellisGeneratorELight03bREF.enable NellisGeneratorELight04REF.disable NellisGeneratorELight04bREF.enable NellisGeneratorELight05REF.disable NellisGeneratorELight05bREF.enable NellisGeneratorELight06REF.disable NellisGeneratorELight06bREF.enable NellisGeneratorELight07REF.disable NellisGeneratorELight07bREF.enable NellisGeneratorELight08REF.disable NellisGeneratorELight08bREF.enable NellisGeneratorELight09REF.disable NellisGeneratorELight09bREF.enable NellisGeneratorELight1REF.disable NellisGeneratorELight2REF.disable NellisGeneratorELight3REF.disable NellisGeneratorELight4REF.disable NellisGeneratorELight5REF.disable NellisGeneratorELight6REF.disable NellisGeneratorELight7REF.disable NellisGeneratorELight8REF.disable ;NellisPowerSwitch1REF.SetDestroyed 1 ;NellisPowerSwitch2REF.SetDestroyed 1 ;NellisPowerSwitchMainREF.SetDestroyed 1 set phase to 1 elseif phase == 1 && timer > 1.5 NellisGeneratorKlaxon2REF.PlaySound OBJNellisLightSwitch set phase to 2 elseif phase == 2 && timer > 3 NellisPowerSwitchMainREF.PlaySound OBJSwitchLights2D NellisGeneratorKey12REF.enable NellisGeneratorKey16REF.enable NellisGeneratorFill7REF.enable NellisGeneratorKey15REF.enable NellisGeneratorKey13REF.enable NellisGeneratorKey14REF.enable NellisGeneratorKey15REF.enable NellisGeneratorKey13REF.enable NellisGeneratorKey14REF.enable NellisGeneratorKey11REF.enable NellisGeneratorKey17REF.enable NellisGeneratorKey18REF.enable NellisGeneratorFill3REF.enable NellisGeneratorKey3REF.enable NellisGeneratorKey2REF.enable NellisGeneratorFill4REF.enable NellisGeneratorKey1REF.enable ;NellisGeneratorFill1REF.enable NellisGeneratorKey4REF.enable NellisGeneratorKey5REF.enable NellisGeneratorFill2REF.enable NellisGeneratorKey6REF.enable NellisGeneratorKey7REF.enable ;NellisGeneratorFill6REF.enable NellisGeneratorKey10REF.enable NellisGeneratorKey9REF.enable NellisGeneratorFill5REF.enable NellisGeneratorKey8REF.enable NellisGeneratorFill8REF.enable NellisGeneratorFill9REF.enable NellisGeneratorFill10REF.enable NellisGeneratorLight01REF.disable NellisGeneratorLight01bREF.enable NellisGeneratorLight02REF.disable NellisGeneratorLight02bREF.enable NellisGeneratorLight03REF.disable NellisGeneratorLight03bREF.enable NellisGeneratorLight04REF.disable NellisGeneratorLight04bREF.enable NellisGeneratorLight05REF.disable NellisGeneratorLight05bREF.enable NellisGeneratorLight06REF.disable NellisGeneratorLight06bREF.enable NellisGeneratorLight08REF.disable NellisGeneratorLight08bREF.enable NellisGeneratorLight09REF.disable NellisGeneratorLight09bREF.enable NellisGeneratorLight10REF.disable NellisGeneratorLight10bREF.enable NellisGeneratorLight12REF.disable NellisGeneratorLight12bREF.enable NellisGeneratorLight13REF.disable NellisGeneratorLight13bREF.enable NellisGeneratorLight14REF.disable NellisGeneratorLight14bREF.enable NellisGeneratorLight15REF.disable NellisGeneratorLight15bREF.enable NellisGeneratorLight16REF.disable NellisGeneratorLight16bREF.enable NellisGeneratorLight17REF.disable NellisGeneratorLight17bREF.enable NellisGeneratorLight18REF.disable NellisGeneratorLight18bREF.enable NellisGeneratorLight19REF.disable NellisGeneratorLight19bREF.enable NellisGeneratorLight20REF.disable NellisGeneratorLight20bREF.enable NellisGeneratorLight21REF.disable NellisGeneratorLight21bREF.enable NellisGeneratorLight22REF.disable NellisGeneratorLight22bREF.enable NellisGeneratorLight23REF.disable NellisGeneratorLight23bREF.enable NellisGeneratorLight24REF.disable NellisGeneratorLight24bREF.enable NellisGeneratorLight25REF.disable NellisGeneratorLight25bREF.enable NellisGeneratorLight26REF.disable NellisGeneratorLight26bREF.enable NellisGeneratorLight27REF.disable NellisGeneratorLight27bREF.enable NellisGeneratorLight28REF.disable NellisGeneratorLight28bREF.enable NellisGeneratorLight29REF.disable NellisGeneratorLight29bREF.enable NellisGeneratorLight30REF.disable NellisGeneratorLight30bREF.enable NellisGeneratorLight31REF.disable NellisGeneratorLight31bREF.enable NellisGeneratorLight32REF.disable NellisGeneratorLight32bREF.enable NellisGeneratorLight33REF.disable NellisGeneratorLight33bREF.enable NellisGeneratorLight34REF.disable NellisGeneratorLight34bREF.enable NellisGeneratorLight35REF.disable NellisGeneratorLight35bREF.enable NellisGeneratorLight36REF.disable NellisGeneratorLight36bREF.enable NellisGeneratorLight37REF.disable NellisGeneratorLight37bREF.enable setObjectiveCompleted VNellisInfestation 15 1 if GetObjectiveCompleted VNellisInfestation 20 == 1 setobjectivedisplayed vnellisinfestation 45 1 endif NellisArrayNoPowerTerminalREF.disable NellisGateStreetlight1REF.enable NellisGateStreetlight1aREF.disable NellisGateStreetlight1bREF.enable NellisGeneratorExteriorLight1aREF.disable NellisGeneratorExteriorLight1bREF.enable NellisGeneratorExteriorLight1REF.enable NellisGeneratorExteriorLight2aREF.disable NellisGeneratorExteriorLight2bREF.enable NellisGeneratorExteriorLight2REF.enable NellisGeneratorExteriorLight3aREF.disable NellisGeneratorExteriorLight3bREF.enable NellisGeneratorExteriorLight3REF.enable NellisGeneratorExteriorLight4aREF.disable NellisGeneratorExteriorLight4bREF.enable NellisGeneratorExteriorLight4REF.enable NellisGeneratorExteriorLight5aREF.disable NellisGeneratorExteriorLight5bREF.enable NellisGeneratorExteriorLight5REF.enable NellisGeneratorExteriorLight6aREF.disable NellisGeneratorExteriorLight6bREF.enable NellisGeneratorExteriorLight6REF.enable set single to 1 endif endif endif end
763NellisJackSCRIPTscn NellisJackSCRIPT int iJacked BEGIN OnDeath setstage VMS15 120 if getquestcompleted vnellisjack == 0 setstage vnellisjack 0 endif end
764NellisJanetSCRIPTscn NellisJanetSCRIPT int doonce int iKilledByPlayer int bJackConv begin ondeath if getobjectivecompleted vnellisjack 80 == 0 setstage vnellisjack 0 set vfreeformnellis.iJackPouting to 1 endif end begin ondeath player set iKilledByPlayer to 1 end begin gamemode if doonce == 0 if VFreeformNellis.iJackLoveStory == 7 && getdead == 0 if player.GetDistance jackloveinterestref > 3000 jackloveinterestref.moveto JanetMarkerofDeathREF jackloveinterestref.killactor jackloveinterestref 7 jackloveinterestref.playsound FXExplosionArtilleryMortar set doonce to 1 endif endif if VFreeformNellis.iJackLoveStory == 8 && getdead == 0 if player.GetDistance jackloveinterestref > 3000 jackloveinterestref.moveto NellisJackREF set doonce to 1 endif endif endif if (bJackConv == 0) && (JackLoveInterestRef.GetDead == 0) && (NellisJackRef.GetDead == 0) && (vfreeformnellis.ifindjack == 1) if (JackLoveInterestRef.GetDistance NellisJackRef <= 512) && (NellisJackRef.GetDistance Player <= 512) NellisJackRef.StartConversation JackLoveInterestRef Hello; set bJackConv to 1; endif endif end
765NellisLindsayScriptscn NellisLindsayScript int Bear ; Tracks the state of her bear - 0 = not talked to the player, 1= talked with the player, 2 = has the bear begin OnHit player addreputation repnvboomer 0 5 end
766NellisLoyalScriptscn NellisLoyalScript int iPods begin OnDeath showmessage LoyalDeadMessage setstage VMS15 114 if getquestcompleted nellissunshineboogie == 0 setstage NellisSunshineBoogie 0 endif ; JSH 7/27 - Close out objective since it's no longer possible to earn trust for Legion if (GetObjectiveDisplayed VMQ02 20 == 1) && (GetObjectiveCompleted VMQ02 20 == 0) SetObjectiveDisplayed VMQ02 20 0 endif if getobjectivedisplayed VMQHouse3 45 && getobjectivecompleted VMQHouse3 45 == 0 && NellisPearlRef.GetDead == 0 setobjectivedisplayed VMQHouse3 45 0 setobjectivedisplayed VMQHouse3 42 1 endif if NellisPearlRef.GetDead set VStoryEventBoomers to 2 if getobjectivedisplayed VMQHouse3 45 setobjectivedisplayed VMQHouse3 45 0 endif if getobjectivedisplayed VMQHouse3 42 && getobjectivecompleted VMQHouse3 42 == 0 set VStoryEventBoomers to 2 setobjectivecompleted VMQHouse3 40 0 setobjectivedisplayed VMQHouse3 40 0 setobjectivedisplayed VMQHouse3 45 0 setobjectivecompleted VMQHouse3 42 1 setobjectivedisplayed VMQHouse3 47 1 endif endif end
767NellisPearlScriptscn NellisPearlScript begin OnDeath setstage VMS15 112 showmessage PearlDead ; JSH 7/27 - Close out objective since it's no longer possible to earn trust for Legion if (GetObjectiveDisplayed VMQ02 20 == 1) && (GetObjectiveCompleted VMQ02 20 == 0) SetObjectiveDisplayed VMQ02 20 0 endif if (GetObjectiveDisplayed VMQYesMan02 22 == 1) && (GetObjectiveCompleted VMQYesMan02 22 == 0) SetObjectiveDisplayed VMQYesMan02 22 0 endif if getobjectivedisplayed VMQHouse3 45 && getobjectivecompleted VMQHouse3 45 == 0 && NellisLoyalRef.GetDead == 0 setobjectivedisplayed VMQHouse3 45 0 setobjectivedisplayed VMQHouse3 42 1 endif if NellisLoyalRef.GetDead == 1 set VstoryEventBoomers to 2 if getobjectivedisplayed VMQHouse3 45 setobjectivedisplayed VMQHouse3 45 0 endif if getobjectivedisplayed VMQHouse3 42 && getobjectivecompleted VMQHouse3 42 == 0 set VStoryEventBoomers to 2 setobjectivecompleted VMQHouse3 40 0 setobjectivedisplayed VMQHouse3 40 0 setobjectivedisplayed VMQHouse3 45 0 setobjectivecompleted VMQHouse3 42 1 setobjectivedisplayed VMQHouse3 47 1 endif endif if VNellisJack.iJanetEntry !=2 setstage VNellisJack 0 endif end
768NellisPearlSupportTriggerSCRIPTscn NellisPearlSupportTriggerSCRIPT begin ontriggerenter player if VstoryEventBoomers == 1 if vms15.iboomerrequest == 1 set vms15.iboomerrequest to 2 endif endif end
769NellisPeteSCRIPTscn NellisPeteSCRIPT int PetusInterruptus ; 1= Player left midway through the story int PeteTalking ; 1 = Pete is telling the story - don't interrupt! BEGIN OnActivate if PeteTalking Return else Activate endif END begin OnHit setrestrained 0 set vfreeformnellis.ipetelecture to 0 end begin OnHit player addreputation repnvboomer 0 5 end begin SayToDone VFreeformNellisPeteMural01 setrestrained 0 end begin SayToDone VFreeformNellisPeteMural02 if vfreeformnellis.ipetelecture == 1 sayto player VfreeformNellisPeteMural03 1 endif end begin SayToDone VfreeformNellisPeteMural03 setrestrained 0 end begin SayToDone VfreeformNellisPeteMural04 setrestrained 0 end begin SayToDone VfreeformNellisPeteMural05 if vfreeformnellis.ipetelecture == 1 sayto player VfreeformNellisPeteMural06 1 else setrestrained 0 endif end begin SayToDone VfreeformNellisPeteMural06 if vfreeformnellis.ipetelecture == 1 sayto player VfreeformNellisPeteMural07 1 else setrestrained 0 endif end begin SayToDone VfreeformNellisPeteMural07 setrestrained 0 end begin SayToDone VfreeformNellisPeteMural08 if vfreeformnellis.ipetelecture == 1 sayto player VfreeformNellisPeteMural09 1 else setrestrained 0 endif end begin SayToDone VfreeformNellisPeteMural09 if vfreeformnellis.ipetelecture == 1 sayto player VfreeformNellisPeteMural10 1 else setrestrained 0 endif end begin SayToDone VfreeformNellisPeteMural10 setrestrained 0 if VFreeformNellis.iHeardStory == 0 addreputation repNVBoomer 1 1 Set VFreeformNellis.iHeardStory to 1 endif if vfreeformnellis.ipetelecture == 1 set VMS49.nReactionPending to 5; set VMS49.bReactionPending to 1; set VFreeformNellis.iOralTradition to 2 set VFreeformNellis.iPeteLecture to 0 endif nellispeteref.evp end
770NellisPeteStoryActivatorSCRIPTscn NellisPeteStoryActivatorSCRIPT begin onTriggerEnter player if vfreeformnellis.ioraltradition == 1 && nellispeteref.petusinterruptus != 1 addreputation repnvboomer 0 1 set vfreeformnellis.ipetelecture to 0 set nellispeteref.petusinterruptus to 1 SET NellisPeteREF.PeteTalking to 0 nellispeteref.evp NellisPeteREF.SetRestrained 0 else set vfreeformnellis.ipetelecture to 0 SET NellisPeteREF.PeteTalking to 0 nellispeteref.evp NellisPeteREF.SetRestrained 0 endif end
771NellisPowerSwitchScriptscn NellisPowerSwitchScript int position ;1 = on int counter int doonce int time int stoptimer begin OnActivate if GetIsReference NellisPowerSwitch1REF == 1 if doonce == 0 set VFreeformNellis.iGeneratorSwitches to VFreeformNellis.iGeneratorSwitches + 1 NellisGeneratorKlaxon1REF.PlayGroup Forward 0 NellisGeneratorSwitchLight1REF.disable if VFreeformNellis.iGeneratorSwitches == 2 NellisPowerSwitchMainREF.SetDestroyed 0 endif set doonce to 1 Activate NellisGeneratorKlaxon1REF.PlayGroup Backward 0 setDestroyed 1 endif elseif GetIsReference NellisPowerSwitch2REF == 1 if doonce == 0 set VFreeformNellis.iGeneratorSwitches to VFreeformNellis.iGeneratorSwitches + 1 NellisGeneratorKlaxon2REF.PlayGroup Forward 0 NellisGeneratorSwitchLight2REF.disable if VFreeformNellis.iGeneratorSwitches == 2 NellisPowerSwitchMainREF.SetDestroyed 0 endif set doonce to 1 Activate NellisGeneratorKlaxon2REF.PlayGroup Backward 0 setDestroyed 1 endif endif end
772NellisRaquelSCRIPTscn NellisRaquelSCRIPT BEGIN OnDeath setstage VMS15 118 if getquestcompleted vnellisinfestation == 0 setstage vnellisinfestation 0 endif end
773NellisResetMarkerScriptscn NellisResetMarkerScript begin OnReset if GameDaysPassed - VMS15.DateFloated >= 10 && VMS15.PlaneFloated == 3 set VMS15.PlaneFloated to 4 NellisHangar1aDoor1.disable NellisHangar1bDoor1.enable Hangar1bDoor2.enable Hangar1aDoor2.disable VMS15RisingPlaneREF.Disable VMS15RisingPlaneREF.MarkForDelete set VMS15.bDisableOnce to 1 endif end
774NellisSalvageArrayScriptscn NellisSalvageArrayScript short ArraySalvaged short Button short MenuDepth short PlayerMayAttempt short SetPlayerChance short MenuLevel ref ThisArray BEGIN OnActivate if ArraySalvaged == 0 if ( isActionRef player == 1 ) if player.getav repair >= 20 ShowMessage NellisSolarArraySalvageMsg else ShowMessage NellisSolarArraySalvageLowMsg endif endif elseif ArraySalvaged == 1 endif END BEGIN GameMode if ( ArraySalvaged == 0 ) set Button to GetButtonPressed if ( Button > 0 ) if ( Button == 1 ) player.additem NellisArrayParts 1 set vfreeformnellis.ispareparts to vfreeformnellis.ispareparts + 1 if getquestrunning nellissunshineboogie == 1 && vfreeformnellis.ispareparts == 5 setobjectivecompleted nellissunshineboogie 25 1 endif ShowMessage NellisSolarArraySalvagedMsg set ArraySalvaged to 1 disable endif endif endif END
775NellisSonicEmitterKillScriptscn NellisSonicEmitterKillScript int emitterdone float timer int counter begin OnActivate player SetDestroyed 1 set emitterdone to 1 Activate setObjectiveCompleted VNellisInfestation 42 1 setObjectiveCompleted VNellisInfestation 20 1 if GetObjectiveCompleted VNellisInfestation 15 == 1 set VFreeformNellis.iInfestation to 1 setObjectiveDisplayed VNellisInfestation 45 1 endif end Begin GameMode if emitterdone == 1 set timer to timer + GetSecondsPassed if counter == 0 SonicEmitterREF.playsound UIRadioStaticTape set counter to 1 elseif counter ==1 && timer > 3 NellisAntSoldierExplosive1REF.Kill player 1 0 NellisAntSoldierExplosive2REF.Kill player 1 0 NellisAntSoldierExplosive3REF.Kill player 1 0 set counter to 2 elseif counter ==2 && timer > 4 NellisAntSoldierExplosive4REF.Kill player 1 0 NellisAntSoldierExplosive5REF.Kill player 1 0 NellisAntSoldierExplosive6REF.Kill player 1 0 set counter to 3 elseif counter == 3 && timer > 5.5 NellisAntSoldierExplosive7REF.Kill player 1 0 NellisAntSoldierExplosive8REF.Kill player 1 0 NellisAntSoldierExplosive9REF.Kill player 1 0 set counter to 4 elseif counter == 4 && timer > 6.5 NellisAntSoldierExplosive10REF.Kill player 1 0 NellisAntWorkerExplosive1REF.Kill player 1 0 NellisAntWorkerExplosive2REF.Kill player 1 0 set counter to 5 elseif counter == 5 && timer > 8 NellisAntWorkerExplosive3REF.Kill player 1 0 NellisAntWorkerExplosive4REF.Kill player 1 0 NellisAntWorkerExplosive5REF.Kill player 1 0 set emitterdone to 0 endif endif end
776NellisSunshineBoogieSCRIPTscn NellisSunshineBoogieSCRIPT int doonce int iTerminalToggle ; 1 = power + array ; 2 = no power + array ; 3 = power + no array, ; 4 = no power + no array begin gamemode if doonce == 0 if VFreeFormNellis.iArraysFixed == -5 showmessage NellisSolaryArrayFinalMessage setobjectivecompleted nellissunshineboogie 50 1 setobjectivedisplayed nellissunshineboogie 100 1 if getobjectivecompleted nellissunshineboogie 25 == 0 setobjectivedisplayed nellissunshineboogie 25 0 endif if VFreeformNellis.iGeneratorSwitches == 3 NellisArrayBrokenTerminalREF.disable NellisArrayTerminalREF.enable endif set doonce to 1 endif endif ; power restored and array repaired -> enable terminal if GetObjectiveCompleted VNellisInfestation 15 == 1 && VFreeformNellis.iArraysFixed == -5 if iTerminalToggle != 1 NellisArrayBrokenTerminalREF.disable NellisArrayNoPowerTerminalREF.disable NellisArrayTerminalREF.enable set iTerminalToggle to 1 endif endif ; power down and array repaired if GetObjectiveCompleted VNellisInfestation 15 == 0 && VFreeformNellis.iArraysFixed == -5 if iTerminalToggle != 2 NellisArrayBrokenTerminalREF.disable NellisArrayNoPowerTerminalREF.enable NellisArrayTerminalREF.disable set iTerminalToggle to 2 endif endif ; power restored and array not repaired if GetObjectiveCompleted VNellisInfestation 15 == 1 && VFreeformNellis.iArraysFixed != -5 if iTerminalToggle != 3 NellisArrayBrokenTerminalREF.enable NellisArrayNoPowerTerminalREF.disable NellisArrayTerminalREF.disable set iTerminalToggle to 3 endif endif ; power down and array not repaired if GetObjectiveCompleted VNellisInfestation 15 == 0 && VFreeformNellis.iArraysFixed != -5 if iTerminalToggle != 4 NellisArrayBrokenTerminalREF.disable NellisArrayNoPowerTerminalREF.enable NellisArrayTerminalREF.disable set iTerminalToggle to 4 endif endif end
777NellisTargetPickerScriptscn NellisTargetPickerScript ref TargetRef int ArtilleryFiring float Timer1 float Timer2 float ActiveTime ;How long the marker has been active for float fArtilleryFireRate ;Time between each shell float fArtilleryFireDuration ;How long the player is shelled for before there is a pause float fArtilleryReloadTime ;How long it takes the artillery to reload int Boom ;Tracking whether to explode or not int Fire ; Tracking whether to fire or not float Drift ;This makes the artillery more accurate the longer the marker is active for int SetDelete ;This has the marker mark itself for delete the frame after it is disabled. begin onLoad set fArtilleryFireRate to NellisArtilleryActivatorREF.fArtilleryFireRate set fArtilleryFireDuration to NellisArtilleryActivatorREF.fArtilleryFireDuration set fArtilleryReloadTime to NellisArtilleryActivatorREF.fArtilleryReloadTime setScale 0 if NellisArtilleryActivatorREF.SpawnedRef1 == GetSelf set TargetRef to NellisArtilleryActivatorREF.CurrentActor1 set NellisArtilleryActivatorREF.CurrentActor1 to 0 set NellisArtilleryActivatorREF.SpawnedRef1 to 0 elseif NellisArtilleryActivatorREF.SpawnedRef2 == GetSelf set TargetRef to NellisArtilleryActivatorREF.CurrentActor2 set NellisArtilleryActivatorREF.CurrentActor2 to 0 set NellisArtilleryActivatorREF.SpawnedRef2 to 0 elseif NellisArtilleryActivatorREF.SpawnedRef3 == GetSelf set TargetRef to NellisArtilleryActivatorREF.CurrentActor3 set NellisArtilleryActivatorREF.CurrentActor3 to 0 set NellisArtilleryActivatorREF.SpawnedRef3 to 0 endif end begin GameMode set Timer1 to GetSecondsPassed + Timer1 set Timer2 to GetSecondsPassed + Timer2 set ActiveTime to GetSecondsPassed + ActiveTime set ArtilleryFiring to NellisArtilleryActivatorREF.iArtilleryFiring if SetDelete == 1 set SetDelete to 2 disable elseif SetDelete == 2 MarkForDelete elseif NellisArtilleryActivatorREF.LeavingActor1 == TargetRef disable set SetDelete to 1 ;MarkForDelete set NellisArtilleryActivatorREF.LeavingActor1 to 0 elseif NellisArtilleryActivatorREF.LeavingActor2 == TargetRef disable set SetDelete to 1 ; MarkForDelete set NellisArtilleryActivatorREF.LeavingActor2 to 0 elseif NellisArtilleryActivatorREF.LeavingActor3 == TargetRef disable set SetDelete to 1 ; MarkForDelete set NellisArtilleryActivatorREF.LeavingActor3 to 0 endif if TargetRef.GetDead == 1 disable set SetDelete to 1 ; MarkForDelete set NellisArtilleryActivatorREF.ActorCount to NellisArtilleryActivatorREF.ActorCount -1 endif set NellisArtilleryActivatorREF.rTarget to TargetRef if ActiveTime <= 10 set Drift to 1.2 elseif ActiveTime <= 25 set Drift to 1.0 elseif ActiveTime <= 50 set Drift to 0.8 elseif ActiveTime <= 55 set Drift to 0.5 elseif ActiveTime <= 60 set Drift to 0.1 else set Drift to 0 endif set NellisArtilleryActivatorREF.Drift to Drift end
778NellisTLpod01SCRIPTscn NellisTLpod01SCRIPT begin onActivate if ( isActionRef player == 1 ) set vfreeformnellis.iVRPods to 1 showmessage NellisVRPodMsg else Activate endif end
779NelsonDeadSeaTriggerSCRIPTscn NelsonDeadSeaTriggerSCRIPT int Runonce Begin OnTriggerEnter Player if RunOnce == 0 LegionaryDeadSeaREF.addscriptpackage LegionaryDeadSeaDialoguePackage2 LegionaryDeadSeaREF.moveto NelsonDeadSeaXmarker01REF LegionaryDeadSeaREF.StartConversation Player Set Runonce to 1 endif END
780NelsonGenerator01SCRIPTscn NelsonGenerator01SCRIPT short Button short msgshown BEGIN OnActivate if IsActionRef player ShowMessage NelsonGeneratorMsg set msgshown to 1 endif END BEGIN GameMode if msgshown == 1 set Button to GetButtonPressed if ( Button == 1 ) NelsonGeneratorParent01REF.Disable elseif ( Button == 0 ) set msgshown to 0 return endif endif END
781NelsonGenerator02SCRIPTscn NelsonGenerator02SCRIPT short Button short msgshown BEGIN OnActivate if IsActionRef player ShowMessage NelsonGeneratorMsg2 set msgshown to 1 endif END BEGIN GameMode if msgshown == 1 set Button to GetButtonPressed if ( Button == 1 ) NelsonGeneratorParent02REF.disable elseif ( Button == 0 ) set msgshown to 0 return endif endif END
782NelsonPurgeCellBufferTriggerscn NelsonPurgeCellBufferTrigger begin onTriggerEnter player purgecellbuffers end
783NeonFactoryDuke01ShotSCRIPTscn NeonFactoryDuke01ShotSCRIPT begin onTriggerEnter player DukeRef.useWeapon weapNVServiceRifle DukeShootStairsREF FireExtinguisherTrap01REF 4 1 1 0 0 DukeRef.startcombat player end
784NeonFactoryDuke02ShotSCRIPTscn NeonFactoryDuke02ShotSCRIPT begin onTriggerEnter player DukeRef.useWeapon weapNVServiceRifle DukeShootStairsREF FireExtinguisherTrap02REF 4 1 1 0 0 DukeRef.startcombat player end
785NeonFactoryDuke03ShotSCRIPTscn NeonFactoryDuke03ShotSCRIPT begin onTriggerEnter player DukeRef.useWeapon weapNVServiceRifle DukeShootStairsREF FireExtinguisherTrap03REF 4 1 1 0 0 DukeRef.startcombat player end
786NeonFactoryDuke04ShotSCRIPTscn NeonFactoryDuke04ShotSCRIPT begin onTriggerEnter player DukeRef.useWeapon weapNVServiceRifle DukeShootStairsREF FireExtinguisherTrap04REF 4 1 1 0 0 DukeRef.startcombat player end
787NevadaAgaveScriptscn NevadaAgaveScript int State begin onActivate if State == 0 && GetActionRef == player player.additem NevadaAgaveFruit 2 set State to 1 playGroup Forward 1 setdestroyed 1 endif end begin onLoad if State == 0 playGroup Backward 1 elseif State == 1 playGroup Forward 1 endif end begin onReset if State == 1 playgroup Backward 1 set State to 0 setdestroyed 0 endif end
788NewVegasLightScriptscn NewVegasLightScript ; Forward = Initial turn-on/warm-up state ; SpecialIdle = Fully bright, occasional flicker ; Backward = off short bInitialized short bLit ; 1 = Light is on. short bFlicker ; 1 = Light is fully bright and occasionally flickering. float fTimer float fRandomDelay ref LinkedLight begin OnLoad if bInitialized == 0 PlayGroup Backward 1 set bInitialized to 1 endif end begin GameMode if bLit if GetCurrentTime < 20.0 || GetCurrentTime > 23.0 ;ShowWarning "Light turning off." set LinkedLight to GetLinkedRef PlayGroup Backward 1 set bLit to 0 set bFlicker to 0 LinkedLight.disable elseif bFlicker == 0 if fTimer < fRandomDelay set fTimer to fTimer + GetSecondsPassed else ;ShowWarning "Fully bright and flickering." set fTimer to 0 PlayGroup SpecialIdle 1 set bFlicker to 1 endif endif else ;ShowWarning "Light turning on." if GetCurrentTime > 20.0 && GetCurrentTime < 23.0 set LinkedLight to GetLinkedRef PlayGroup Forward 1 ; Light slowly powers on. set bLit to 1 LinkedLight.enable set fRandomDelay to 15 + 10.0/99.0 * GetRandomPercent endif endif end
789NightQuestScriptScn NightQuestScript Begin GameMode If GetCurrentTime >= 21 || GetCurrentTime < 4.30 Set VNight to 1 Else Set VNight to 0 Endif End
790NightstalkerPoisonEffectScriptscn NightstalkerPoisonEffectScript float timerEffect ref myself begin ScriptEffectStart set myself to GetSelf if myself == player float randomTime set randomTime to 5.0 + 20.0/99.0 * GetRandomPercent set timerEffect to randomTime ShowMessage FixerDizzyMsg endif end begin ScriptEffectUpdate set myself to GetSelf if myself == player if timerEffect <= 0 ApplyImageSpaceModifier BarkScorpionPoisonISFX set timerEffect to 5.0 + 20/99.0 *GetRandomPercent else set timerEffect to (timerEffect - GetSecondsPassed) endif endif end
791NiptonCrucifiedVictimScriptscn NiptonCrucifiedVictimScript Begin OnActivate If IsActionRef Player == 1 If GetDead != 1 If GetSitting == 3 ShowMessage NiptonCrucifiedMsg Else Activate Endif Else Activate Endif Else Activate Endif End Begin GameMode If GetDead != 1 If GetIgnoreCrime != 1 IgnoreCrime 1 Else If GetRestrained != 1 If GetSitting == 3 SetRestrained 1 Endif Endif Endif Endif End
792NiptonSurvivorDeathScriptscn NiptonSurvivorDeathScript float timer Short Freed Short DoOnce Short HostageFreedTotal ;Total Hostages freed Short bDisplay Short Button begin OnDeath ;if (getStage VNipton == 25) setStage VNipton 35 ;endif End Begin OnLoad IgnoreCrime 1 If (Freed != 1) If (GetSitting != 3) If (GetRestrained == 1) SetRestrained 0; Endif Endif Endif End BEGIN OnActivate If IsActionRef Player == 1 if ( GetDead == 0 ) if ( freed == 0 ) if ( IsActionRef player == 1 ) if ( Player.IsInCombat == 0 ) ShowMessage TecMineHostageMSG Set bDisplay to 1; endif endif endif elseIf ( GetDead == 1 ) Activate endif Endif END BEGIN GameMode If GetDead != 1 If Freed != 1 If GetIgnoreCrime != 1 IgnoreCrime 1 Endif Endif Endif if DoOnce == 0 if GetSitting == 3 IgnoreCrime 1 setRestrained 1 set DoOnce to 1 endif endif End BEGIN Menumode 1001 If (bDisplay == 1) if ( freed == 0 ) set button to GetButtonPressed If (Button == 0) Set bDisplay to 0; Return; Elseif ( button == 1 ) SetRestrained 0 set VNipton.NumHostages to VNipton.NumHostages + 1 set Freed to 1 ignoreCrime 0 AddScriptPackage vNiptonSurvivorEscape01 ;Addtofaction NCRFactionNV 1 SendAssaultAlarm Player caesarslegionnelsonfaction DamageActorValue LeftMobilityCondition 5 DamageActorValue RightMobilityCondition 5 Set bDisplay to 0; endif endif Endif END
793NiptonSurvivorDeathScript02scn NiptonSurvivorDeathScript02 float timer Short Freed2 Short DoOnce Short HostageFreedTotal ;Total Hostages freed Short bDisplay2 Short Button begin OnDeath ;if (getStage VNipton == 25) setStage VNipton 35 ;endif End Begin OnLoad IgnoreCrime 1 If (Freed2 != 1) If (GetSitting != 3) If (GetRestrained == 1) SetRestrained 0; Endif Endif Endif End BEGIN OnActivate If IsActionRef Player == 1 if ( GetDead == 0 ) if ( freed2 == 0 ) if ( IsActionRef player == 1 ) if ( Player.IsInCombat == 0 ) ShowMessage TecMineHostageMSG Set bDisplay2 to 1; endif endif endif elseIf ( GetDead == 1 ) Activate endif Endif END BEGIN GameMode If GetDead != 1 If Freed2 != 1 If GetIgnoreCrime != 1 IgnoreCrime 1 Endif Endif Endif if DoOnce == 0 if GetSitting == 3 IgnoreCrime 1 setRestrained 1 set DoOnce to 1 endif endif End BEGIN Menumode 1001 If (bDisplay2 == 1) if ( freed2 == 0 ) set button to GetButtonPressed If (Button == 0) Set bDisplay2 to 0; Return; Elseif ( button == 1 ) SetRestrained 0 set VNipton.NumHostages to VNipton.NumHostages + 1 set Freed2 to 1 ignoreCrime 0 AddScriptPackage vNiptonSurvivorEscape ;Addtofaction NCRFactionNV 1 SendAssaultAlarm Player caesarslegionnelsonfaction DamageActorValue LeftMobilityCondition 5 DamageActorValue RightMobilityCondition 5 Set bDisplay2 to 0; endif endif Endif END
794NPCVendorFollowPlayerTriggerScriptscn NPCVendorFollowPlayerTriggerScript ;NOTE: Do not place in areas where lots of actors will be hanging around inside the trigger box, because it is using the OnTrigger block ;This is used to get a linked ref actor to follow the player. ;It sets an actor value which is condition on a package in the actor's stack of packages. short playerIsInMe ;0 = unset, 1 = player in trigger box bounds, -1 equals player has left trigger box bounds ref myLinkedActor ;linked ref short setMyLinkedActorVariable ;0 = unset, 1 = i should set it, 2 = set, -1 = i should unset it ;myLinkedActor.getAV variable03... 0 = unset, 1= follow player, -1 stop following player ;DO NOT CHANGE THE ORDER OF THESE BLOCKS... THE VARIABLES NEED TO BE SET PRIOR TO OnTrigger BLOCK RUNNING -- THANKS!!! Begin OnTriggerEnter player set playerIsInMe to 1 set myLinkedActor to GetLinkedRef End Begin OnTriggerLeave player set playerIsInMe to -1 myLinkedActor.SetAv Variable03 -1 End Begin OnTrigger ;this block will run anytime any actor is in the trigger, but we can test to see if the player is still in it if playerIsInMe == 1 if myLinkedActor.getAV Variable03 != 1 myLinkedActor.SetAv Variable03 1 if myLinkedActor.GetSleeping == 0 && myLinkedActor.GetSitting == 0 myLinkedActor.ResetAI ;force this NPC to re-eval to pick a package that puts him in offers services and must complete so he follows player else myLinkedActor.EVP ;calling resetAI on NPC in furniture causes him to "pop", so EVP -- note is rare cases if he is doing something like continue while PC is near, this won't happen... but that's probably not on a package that would have him in furniture endif endif endif End
795NQlvlSCRIPTscn NQlvlSCRIPT ; script used to provide global variables to levels which do not need a quest of their own. ;Falls Church Variables ;short FallsChurchFromMetro ;Set to 1 if player enters Falls Church from the Metro Station ;short FallsChurchFromLOBE ;Set to 1 if player enters Falls Church from LOBE ;==================================================================================== ;Trap Variables These variables are set when stage NQlvl is set to 1 short TRAPGrenadeBouquetSkillReq ;Skill required to disarm the Grenade Bouquet trap, explosives short TRAPMailboxSkillReq ;Skill required to disarm the mailbox bomb, explosives short TRAPComputerSkillReq ;Skill required to disarm the Computer trap, explosives short TRAPBearSkillReq01 ;Skill required to disarm the Bear Trap, repair short TRAPBearSkillReq02 ;Skill required to rearm the Bear Trap, repair short TRAPMineSkillReq ;Skill required to disarm the Buried Mine, explosives short TRAPPlateSkillReq ;Skill required to disarm a pressure plate, repair short TRAPTripwireSkillReq ;Skill required to disarm a tripwire, repair short TRAPSensorSkillReq ;Skill required to disarm a motion sensor, science short TRAPBabySkillReq ;Skill required to disarm a baby carriage, explosives short TRAPShotgunSkillReq ;Skill required to disarm a shotgun trap, repair short TRAPValveSkillReq ;Skill required to fix a gas valve, repair short TRAPLaserLowRepairSkillReq ;Skill required to disarm the Laser Tripwire with repair skill if the power is turned off short TRAPLaserHighRepairSkillReq ;Skill required to disarm the Laser Tripwire with repair skill if the power is turned on short TRAPLaserScienceSkillReq ;Skill required to disarm the Laser Tripwire with science skill short TRAPToiletSkillReq ;Skill required to disarm the Electrified Toilet trap, repair short TRAPPitchingSkillReq ;Skill required to disable the pitching machine, repair ;==================================================================================== ;Chryslus Building short ChryslusBuildingSlaveDoor0 ;One of the two slave doors short ChryslusBuildingSlaveDoor1 ;One of the two slave doors ;Shalebridge Cavern Vars short enemyColonyKills ; body count, checks to see if player has exterminated aggressive red ant colony short colonyKills ; body count, checked to see if player has exterminated the colony short PCstimulatedEggs ; flag to check if high-medicine player has stimulated egg growth short DayLastSpawned ; stores the most recent day the container spawned ant nectar short InvaderAntActivated ; flag for only displaying message text when activating dead invader ant once ;==================================================================================== ;; FREEFORM RAIDER CAMP VARIABLES short RCamp01 ; state tracker vars - 0 == not visited, 1 == visited short Rcamp01day ; tracker for day last spawned. ;==================================================================================== ;; FREEFORM MUTANT CAMP VARIABLES ; tracking vars for story thread enabling the behemoth camp in wasteland short FoundGrave01 short FoundRangerMSG short FoundGrave03 short FoundGrave04 ;==================================================================================== ;; FREEFORM ENCLAVE CAMP VARIABLES ;Enclave Camp Variables These variables are set when stage NQlvl is set to 1 short DeathclawCageDoorLockLvlReq ; lock level for deathclaw cage doors found in Enclave Camps ;==================================================================================== ;; VARIABLES FOR GAME TERMINAL - FREEFORM ACTIVITY short gameVar01 ; has player examined north area? short gameVar02 ; player has the rough gem short gameVar02a ; player has talked to wizard short gameVar02b ; player has posessed the gem (ever) short gameVar03 ; player has killed zombie short gameVar04 ; player has taken zombie bit short gameVar05 ; player has chapel key short gameVar06 ; player has holy water short gameVar07 ; player has refined gemstone short gameVar08 ; player has magical shard short gameVar09 ; player has magical sword short gameVar10 ; player has won the game short gameVarExE2 ; player has examined east w/key short gameVarExE ; player has examined east short gameVarExW ; player has examined west short gameVarExS ; player has examined south ;==================================================================================== ref playerBed ; bed player is currently sleeping in (used for Well-Rested bonus) ;==================================================================================== ;; VARIABLES FOR TAKOMA PARK WORLDSPACE short artillerySwitchScienceSkillReq ;skill needed to successfully repair the artillery switch in Takoma Park ;==================================================================================== ;==================================================================================== ; VARIABLE TO TRACK FAST TRAVEL DISABLE IN DEFAULTDISABLEFASTTRAVELSCRIPT short FastTravelDisabled ;==================================================================================== ; THIS VARIABLE TRACKS IF THE PLAYER HAS UPLOADED THE SATELLITE LAUNCH CODES AT SATCOMARRAY01 short launchCodesUploaded short launchInView ;==================================================================================== ; THIS VAR USED IN FFBASEBALLSCRIPT short ballHit
796NtlGuardDepot06Switch01RefSCRIPTscn NtlGuardDepot06Switch01RefSCRIPT ; This script activates itself and also its LinkedRef when activated ref LinkedRef ref Self Begin onActivate set LinkedRef to getLinkedRef set Self to getSelf activate LinkedRef.activate Self 1 End
797NTlguardDepotWorldUtlDoor01SCRIPTscn NTlguardDepotWorldUtlDoor01SCRIPT ref LinkedRef Begin onActivate set LinkedRef to getLinkedRef if (IsActionRef player == 1) ShowMessage GenericDoorActivatedElsewhereMsg elseif (IsActionRef LinkedRef == 1) activate endif End
798NukaColaAddCapEffectScriptscn NukaColaAddCapEffectScript begin ScriptEffectStart additem caps001 1 end
799NVCaveInteriorTransitionSCRIPTscn NVCaveInteriorTransitionSCRIPT int cripplehalford ref EnteringRef begin OnTriggerEnter set EnteringRef to getactionref if EnteringRef == player set vCaveTransitionISFX.running to 1 if cripplehalford == 0 NVCGHalfordREF.DamageActorValue LeftMobilityCondition 80 set cripplehalford to 1 endif elseif EnteringRef == NVCGHalfordREF if NVCGHalfordREF.iDialogue == 3 NVCGHalfordREF.disable else set NVCGHalfordREF.iDialogue to 5 NVCGHalfordREF.evp endif endif end begin OnTriggerLeave player if vCaveTransitionISFX.entering == 0 imod NVCaveEnteringEndISFX rimod NVCaveEnteringISFX rimod NVCaveExitISFX rimod NVCaveExitEndISFX rimod NVCaveExitStartISFX set vCaveTransitionISFX.running to 2 set vCaveTransitionISFX.timer to 0 set vCaveTransitionISFX.doonce to 0 set vCaveTransitionISFX.douno to 0 elseif vCaveTransitionISFX.entering == 1 imod NVCaveExitEndISFX rimod NVCaveEnteringISFX rimod NVCaveEnteringEndISFX rimod NVCaveExitISFX rimod NVCaveExitStartISFX set vCaveTransitionISFX.running to 2 set vCaveTransitionISFX.timer to 0 set vCaveTransitionISFX.doonce to 0 set vCaveTransitionISFX.douno to 0 endif end
800NVCaveTransitionControllerSCRIPTscn NVCaveTransitionControllerSCRIPT float timer int doonce int douno int running int entering begin gamemode if running == 1 set timer to timer + getsecondspassed if timer > 0 && doonce == 0 if entering == 0 imod NVCaveEnteringStartISFX set doonce to 1 elseif entering == 1 imod NVCaveExitStartISFX set doonce to 1 endif elseif timer > 3 && douno == 0 if entering == 0 imod NVCaveEnteringISFX set douno to 1 elseif entering == 1 imod NVCaveExitISFX set douno to 1 endif endif elseif running == 2 if entering == 1 rimod NVCaveExitStartISFX rimod NVCaveExitISFX set running to 0 elseif entering == 0 rimod NVCaveEnteringStartISFX rimod NVCaveEnteringISFX set running to 0 set entering to 1 endif endif end
801NVCCAureliusSCRIPTscn NVCCAureliusSCRIPT int iGreeting int iDogTags begin ondeath set vCCEyeforaneye.iDeadCount to vCCEyeforaneye.iDeadCount + 1 if (vCCEyeforaneye.iDeadCount >= 12 && VNPCFollowers.bBooneHired) set VDialogueCraigBoone.nOpenness to VDialogueCraigBoone.nOpenness + 2; CraigBooneREF.SayTo player VDialogueCraigBooneCCComplete; set VDialogueCraigBoone.bGreetCCComplete to 1; endif IF getstage vFreeformForlornHope03 == 10 additem legionear 1 endIF end
802NVCCBargeSCRIPTscn NVCCBargeSCRIPT int iStripped ; variable to check if the player has traveled from CC and needs to be stripped of weapons and chems ref DoorUser begin OnActivate if isactionref player startquest vccmovetothefort endif end
803NVCCBunkerLogBookSCRIPTscn NVCCBunkerLogBookSCRIPT begin OnAdd end
804NVCCBunkerRadroachSCRIPTscn NVCCBunkerRadroachSCRIPT float iTimer begin GameMode if iTimer > 3 set iTimer to 0 PlaceAtMe vGlowingOneRadiationAuraExplosion else set iTimer to iTimer + GetSecondsPassed endif end
805NVCCCanyonRunnerSCRIPTscn NVCCCanyonRunnerSCRIPT int iDialogue int iBartered begin ondeath set vCCEyeforaneye.iDeadCount to vCCEyeforaneye.iDeadCount + 1 if (vCCEyeforaneye.iDeadCount >= 12 && VNPCFollowers.bBooneHired) set VDialogueCraigBoone.nOpenness to VDialogueCraigBoone.nOpenness + 2; CraigBooneREF.SayTo player VDialogueCraigBooneCCComplete; set VDialogueCraigBoone.bGreetCCComplete to 1; endif IF getstage vFreeformForlornHope03 == 10 additem legionear 1 endIF end
806NVCCKennyWeathersSCRIPTscn NVCCKennyWeathersSCRIPT begin onDeath player if VCCLeftMyHeart.iBuySlaves != 3 setenemy playerFaction VCaesarsLegionCCoveFaction endif end begin onDeath if vCCMrsWeathersREF.getdead && vCCSammyWeathersREF.getdead if getquestrunning vCCLeftMyHeart setobjectivecompleted vCCLeftMyHeart 10 1 setobjectivedisplayed vccleftmyheart 50 0 setobjectivecompleted vccleftmyheart 55 1 if vccleftmyheart.imetfrank == 1 setobjectivedisplayed vCCLeftMyHeart 100 1 else setstage vCCLeftMyHeart 0 endif else setstage vCCLeftMyHeart 0 endif endif end
807NVCCLegionaryExplorerSCRIPTscn NVCCLegionaryExplorerSCRIPT int iWoof int RunOnce ref MyHandler begin ondeath set vCCEyeforaneye.iDeadCount to vCCEyeforaneye.iDeadCount + 1 if (vCCEyeforaneye.iDeadCount >= 12 && VNPCFollowers.bBooneHired) set VDialogueCraigBoone.nOpenness to VDialogueCraigBoone.nOpenness + 2; CraigBooneREF.SayTo player VDialogueCraigBooneCCComplete; set VDialogueCraigBoone.bGreetCCComplete to 1; endif IF getstage vFreeformForlornHope03 == 10 additem legionear 1 endIF end begin OnStartCombat Player if (GetQR DisguiseFactionPulseQuest == 1) && (IsSpellTarget DisguiseFactionPulseActorEffect == 1) sendAssaultAlarm Player VCaesarsLegionFaction sendAssaultAlarm Player VCaesarsLegionSnifferFaction set MyHandler to GetLinkedRef if (GetDistance player < 512) && MyHandler != 0 MyHandler.Say ChallengePlayer endif endif end
808NVCCLegionaryGuardAAM2SCRIPTscn NVCCLegionaryGuardAAM2SCRIPT begin onLoad if VStoryState >= 30 && GetQuestCompleted VCCEyeforaneye == 0 && getdead == 0 NVCCLegionaryVeteran7REF.enable endif end begin onDeath set vCCEyeforaneye.iDeadCount to vCCEyeforaneye.iDeadCount + 1 if (vCCEyeforaneye.iDeadCount >= 12 && VNPCFollowers.bBooneHired) set VDialogueCraigBoone.nOpenness to VDialogueCraigBoone.nOpenness + 2; CraigBooneREF.SayTo player VDialogueCraigBooneCCComplete; set VDialogueCraigBoone.bGreetCCComplete to 1; endif IF getstage vFreeformForlornHope03 == 10 additem legionear 1 endIF end
809NVCCLegionaryGuardAM2SCRIPTscn NVCCLegionaryGuardAM2SCRIPT begin onLoad if VStoryState >= 30 && GetQuestCompleted VCCEyeforaneye == 0 && getdead == 0 NVCCLegionaryVeteran5REF.enable endif end begin onDeath set vCCEyeforaneye.iDeadCount to vCCEyeforaneye.iDeadCount + 1 if (vCCEyeforaneye.iDeadCount >= 12 && VNPCFollowers.bBooneHired) set VDialogueCraigBoone.nOpenness to VDialogueCraigBoone.nOpenness + 2; CraigBooneREF.SayTo player VDialogueCraigBooneCCComplete; set VDialogueCraigBoone.bGreetCCComplete to 1; endif IF getstage vFreeformForlornHope03 == 10 additem legionear 1 endIF end
810NVCCLegionaryGuardCM2SCRIPTscn NVCCLegionaryGuardCM2SCRIPT begin onLoad if VStoryState >= 30 && GetQuestCompleted VCCEyeforaneye == 0 && getdead == 0 NVCCLegionaryVeteran4REF.enable endif end begin onDeath set vCCEyeforaneye.iDeadCount to vCCEyeforaneye.iDeadCount + 1 if (vCCEyeforaneye.iDeadCount >= 12 && VNPCFollowers.bBooneHired) set VDialogueCraigBoone.nOpenness to VDialogueCraigBoone.nOpenness + 2; CraigBooneREF.SayTo player VDialogueCraigBooneCCComplete; set VDialogueCraigBoone.bGreetCCComplete to 1; endif IF getstage vFreeformForlornHope03 == 10 additem legionear 1 endIF end
811NVCCLegionaryGuardHM2SCRIPTscn NVCCLegionaryGuardHM2SCRIPT begin onLoad if VStoryState >= 30 && GetQuestCompleted VCCEyeforaneye == 0 && getdead == 0 NVCCLegionaryVeteran8REF.enable endif end begin onDeath set vCCEyeforaneye.iDeadCount to vCCEyeforaneye.iDeadCount + 1 if (vCCEyeforaneye.iDeadCount >= 12 && VNPCFollowers.bBooneHired) set VDialogueCraigBoone.nOpenness to VDialogueCraigBoone.nOpenness + 2; CraigBooneREF.SayTo player VDialogueCraigBooneCCComplete; set VDialogueCraigBoone.bGreetCCComplete to 1; endif IF getstage vFreeformForlornHope03 == 10 additem legionear 1 endIF end
812NVCCLegionarySCRIPTscn NVCCLegionarySCRIPT begin ondeath set vCCEyeforaneye.iDeadCount to vCCEyeforaneye.iDeadCount + 1 if (vCCEyeforaneye.iDeadCount >= 12 && VNPCFollowers.bBooneHired) set VDialogueCraigBoone.nOpenness to VDialogueCraigBoone.nOpenness + 2; CraigBooneREF.SayTo player VDialogueCraigBooneCCComplete; set VDialogueCraigBoone.bGreetCCComplete to 1; endif IF getstage vFreeformForlornHope03 == 10 additem legionear 1 endIF end
813NVCCLegionaryVeteranGuardAAM2SCRIPTscn NVCCLegionaryVeteranGuardAAM2SCRIPT int doonce begin onLoad if doonce == 0 NVCCLegionary7REF.disable set doonce to 1 endif end begin onDeath set vCCEyeforaneye.iDeadCount to vCCEyeforaneye.iDeadCount + 1 if (vCCEyeforaneye.iDeadCount >= 12 && VNPCFollowers.bBooneHired) set VDialogueCraigBoone.nOpenness to VDialogueCraigBoone.nOpenness + 2; CraigBooneREF.SayTo player VDialogueCraigBooneCCComplete; set VDialogueCraigBoone.bGreetCCComplete to 1; endif IF getstage vFreeformForlornHope03 == 10 additem legionear 1 endIF end
814NVCCLegionaryVeteranGuardAM2SCRIPTscn NVCCLegionaryVeteranGuardAM2SCRIPT int doonce begin onLoad if doonce == 0 NVCCLegionary5REF.disable endif end begin onDeath set vCCEyeforaneye.iDeadCount to vCCEyeforaneye.iDeadCount + 1 if (vCCEyeforaneye.iDeadCount >= 12 && VNPCFollowers.bBooneHired) set VDialogueCraigBoone.nOpenness to VDialogueCraigBoone.nOpenness + 2; CraigBooneREF.SayTo player VDialogueCraigBooneCCComplete; set VDialogueCraigBoone.bGreetCCComplete to 1; endif IF getstage vFreeformForlornHope03 == 10 additem legionear 1 endIF end
815NVCCLegionaryVeteranGuardCM2SCRIPTscn NVCCLegionaryVeteranGuardCM2SCRIPT int doonce begin onLoad if doonce == 0 NVCCLegionary4REF.disable endif end begin onDeath set vCCEyeforaneye.iDeadCount to vCCEyeforaneye.iDeadCount + 1 if (vCCEyeforaneye.iDeadCount >= 12 && VNPCFollowers.bBooneHired) set VDialogueCraigBoone.nOpenness to VDialogueCraigBoone.nOpenness + 2; CraigBooneREF.SayTo player VDialogueCraigBooneCCComplete; set VDialogueCraigBoone.bGreetCCComplete to 1; endif IF getstage vFreeformForlornHope03 == 10 additem legionear 1 endIF end
816NVCCLegionaryVeteranGuardHM2SCRIPTscn NVCCLegionaryVeteranGuardHM2SCRIPT int doonce begin onLoad if doonce == 0 NVCCLegionary8REF.disable endif end begin onDeath set vCCEyeforaneye.iDeadCount to vCCEyeforaneye.iDeadCount + 1 if (vCCEyeforaneye.iDeadCount >= 12 && VNPCFollowers.bBooneHired) set VDialogueCraigBoone.nOpenness to VDialogueCraigBoone.nOpenness + 2; CraigBooneREF.SayTo player VDialogueCraigBooneCCComplete; set VDialogueCraigBoone.bGreetCCComplete to 1; endif IF getstage vFreeformForlornHope03 == 10 additem legionear 1 endIF end
817NVCCLegionMongrelSnifferSCRIPTscn NVCCLegionMongrelSnifferSCRIPT ref MyHandler short DoOnce begin ondeath set vCCEyeforaneye.iDeadCount to vCCEyeforaneye.iDeadCount + 1 if (vCCEyeforaneye.iDeadCount >= 12 && VNPCFollowers.bBooneHired) set VDialogueCraigBoone.nOpenness to VDialogueCraigBoone.nOpenness + 2; CraigBooneREF.SayTo player VDialogueCraigBooneCCComplete; set VDialogueCraigBoone.bGreetCCComplete to 1; endif if vCCEyeforaneye.iDeadCount >= 12 && GetQuestRunning vCCEyeforaneye == 1 setObjectiveCompleted vCCEyeforaneye 90 1 setObjectiveDisplayed vCCEyeforaneye 100 1 else endif end ; If the player is disguised as a member of Caesar Legion and he's detected by a special ; sniffer mongrel, the mongrel and its handler sound the alarm. begin OnStartCombat Player if (GetQR DisguiseFactionPulseQuest == 1) && (IsSpellTarget DisguiseFactionPulseActorEffect == 1) sendAssaultAlarm Player VCaesarsLegionFaction sendAssaultAlarm Player VCaesarsLegionSnifferFaction set MyHandler to GetLinkedRef if (GetDistance player < 512) && MyHandler != 0 MyHandler.Say ChallengePlayer endif endif end
818NVCCLegionNotesSCRIPTscn NVCCLegionNotesSCRIPT begin onAdd player addnote NVCCLegionNotesNote if GetQuestRunning vCCEyeforaneye == 1 setObjectiveCompleted vCCEyeforaneye 10 1 endif if GetObjectiveCompleted vCCEyeforaneye 30 setObjectiveDisplayed vCCEyeforaneye 40 1 endif if NVCCAureliusREF.GetDetected Player || VCCSeverusREF.GetDetected Player || VCCCanyonRunnerREF.GetDetected Player SetPCEnemyofFaction VCaesarsLegionFaction 1 endif end
819NVCCLegionPlansSCRIPTscn NVCCLegionPlansSCRIPT begin onAdd addnote NVCCLegionPlansNote if GetQuestRunning vCCEyeforaneye == 1 setObjectiveCompleted vCCEyeforaneye 20 1 endif if GetObjectiveCompleted vCCEyeforaneye 30 == 1 setObjectiveDisplayed vCCEyeforaneye 40 1 endif if NVCCAureliusREF.GetDetected Player || VCCSeverusREF.GetDetected Player || VCCCanyonRunnerREF.GetDetected Player SetPCEnemyofFaction VCaesarsLegionFaction 1 endif end
820NVCCLegionRadioSCRIPTscn NVCCLegionRadioSCRIPT float counter int button int NCRBug int CheckButtons begin OnActivate if player.getitemcount NVCCNCRBug == 1 showmessage NVCCLegionRadioMsg set checkButtons to 1 else Activate endif end Begin gamemode if (CheckButtons == 1) set button to getbuttonpressed if button == 0 showmessage NVCCLegionRadioNCRBugMsg player.removeitem NVCCNCRBug 1 setObjectiveCompleted vCCEyeforaneye 30 1 if GetObjectiveCompleted vCCEyeforaneye 10 == 1 || GetObjectiveCompleted vCCEyeforaneye 20 == 1 setObjectiveDisplayed vCCEyeforaneye 40 1 endif if NVCCAureliusREF.GetDetected Player || VCCSeverusREF.GetDetected Player || VCCCanyonRunnerREF.GetDetected Player SetPCEnemyofFaction VCaesarsLegionFaction 1 if NVCCAureliusREF.GetDead == 0 NVCCAureliusREF.startcombat player endif if VCCSeverusREF.GetDead == 0 VCCSeverusREF.startcombat player endif if VCCCanyonRunnerREF.GetDead == 0 VCCCanyonRunnerREF.startcombat player endif SendAssaultAlarm NVCCAureliusREF VCaesarsLegionFaction endif set NCRBug to 2 set checkButtons to 0 elseif button == 1 set checkButtons to 0 endif endif End
821NVCCLucullusSCRIPTscn NVCCLucullusSCRIPT int iGate ;variable to sequence dialogue for initial trip to The Fort int iTripCounter ; > 1 if player has been to the fort at least once begin OnDeath NVCCBargeStaticREF.disable NVCCBargeREF.enable vCCFortGateREF.enable IF getstage vFreeformForlornHope03 == 10 additem legionear 1 endIF end begin OnDeath player SetReputation RepNVCaesarsLegion 1 0 SetReputation RepNVCaesarsLegion 0 100 SetEnemy VCaesarsLegionFaction PlayerFaction end
822NVCCMrsWeathersSCRIPTscn NVCCMrsWeathersSCRIPT int iBark begin onDeath player if VCCLeftMyHeart.iBuySlaves != 3 setenemy playerFaction VCaesarsLegionCCoveFaction endif end begin onDeath if vCCKennyWeathersREF.getdead && vCCSammyWeathersREF.getdead if getquestrunning vCCLeftMyHeart setobjectivecompleted vCCLeftMyHeart 10 1 setobjectivedisplayed vccleftmyheart 50 0 setobjectivecompleted vccleftmyheart 55 1 if vccleftmyheart.imetfrank == 1 setobjectivedisplayed vCCLeftMyHeart 100 1 else setstage vCCLeftMyHeart 0 endif else setstage vCCLeftMyHeart 0 endif endif end
823NVCCPlayerStorageActivatorScriptscn NVCCPlayerStorageActivatorScript ref Follower1 ref Follower2 begin onActivate ; player.RemoveAllTypedItems NVCCPlayerStorageREF 1 0 EmptyFormList 40 ; player.RemoveAllTypedItems NVCCPlayerStorageREF 1 0 NVHoldoutWeapons 40 if VNPCFollowers.bBooneHired == 1 set Follower1 to CraigBooneREF endif if VNPCFollowers.bCassHired == 1 if Follower1 == 0 set Follower1 to RoseofSharonCassidyREF else set Follower2 to RoseofSharonCassidyREF endif endif if VNPCFollowers.bVeronicaHired == 1 if Follower1 == 0 set Follower1 to VeronicaREF else set Follower2 to VeronicaREF endif endif if VNPCFollowers.bLilyHired == 1 if Follower1 == 0 showWarning "Add Lily's ref ID to GomorrahCasinoEnterTriggerScript" ;set Follower1 to RoseofSharonCassidyREF else showWarning "Add Add Lily's ref ID to GomorrahCasinoEnterTriggerScript" ;set Follower2 to RoseofSharonCassidyREF endif endif ; Commented out because EDE has built in weapons ; if VNPCFollowers.bEDEHired == 1 ; if Follower1 == 0 ; showWarning "Add ED-E ref ID to GomorrahCasinoEnterTriggerScript" ; ;set Follower1 to RoseofSharonCassidyREF ; else ; showWarning "Add Add ED-E ref ID to GomorrahCasinoEnterTriggerScript" ; ;set Follower2 to RoseofSharonCassidyREF ; endif ; endif if VNPCFollowers.RaulHired == 1 if Follower1 == 0 set Follower1 to RaulREF else set Follower2 to RaulREF endif endif if VNPCFollowers.ArcadeHired == 1 if Follower1 == 0 set Follower1 to ArcadeREF else set Follower2 to ArcadeREF endif endif if vDialogueGomorrah.iInGomorrah == 1 if Follower1 != 0 ; Follower1.RemoveAllTypedItems NVCCCompanionStorage1REF 1 0 EmptyFormList 40 endif if Follower2 != 0 ; Follower2.RemoveAllTypedItems NVCCCompanionStorage2REF 1 0 EmptyFormList 40 endif elseif vDialogueGomorrah.iInGomorrah == 2 if Follower1 != 0 ; Follower1.RemoveAllTypedItems NVCCCompanionStorage1REF 1 0 NVHoldoutWeapons 40 endif if Follower2 != 0 ; Follower2.RemoveAllTypedItems NVCCCompanionStorage2REF 1 0 NVHoldoutWeapons 40 endif endif end
824NVCCPlayerStorageScriptscn NVCCPlayerStorageScript ; Make the Legion go hostile since the player is trying to take his weapons back begin OnOpen FortLegionaryEntranceGreeterRef.AddToFaction VCaesarsLegionSnifferFaction 1 SetPCEnemyOfFaction VCaesarsLegionFaction 1 SetStage VMQ02 110 end
825NVCCRadiationDeathActivatorSCRIPTscn NVCCRadiationDeathActivatorSCRIPT ref DeadGuy begin OnTriggerEnter set DeadGuy to GetActionRef if DeadGuy == NVCCLegionary2REF DeadGuy.kill elseif DeadGuy == NVCCLegionary3REF DeadGuy.kill elseif DeadGuy == NVCCLegionary4REF DeadGuy.kill elseif DeadGuy == NVCCLegionary5REF DeadGuy.kill elseif DeadGuy == NVCCLegionary6REF DeadGuy.kill elseif DeadGuy == NVCCLegionary7REF DeadGuy.kill elseif DeadGuy == NVCCLegionary8REF DeadGuy.kill elseif DeadGuy == NVCCLegionary9REF DeadGuy.kill elseif DeadGuy == NVCCExplorerREF DeadGuy.kill elseif DeadGuy == NVCCExplorer2REF DeadGuy.kill elseif DeadGuy == NVCCExplorer3REF DeadGuy.kill elseif DeadGuy == NVCCExplorer4REF DeadGuy.kill elseif DeadGuy == NVCCMongrel1REF DeadGuy.kill elseif DeadGuy == NVCCMongrel2REF DeadGuy.kill elseif DeadGuy == NVCCMongrel3REF DeadGuy.kill elseif DeadGuy == vCCSammyWeathersREF DeadGuy.kill elseif DeadGuy == vCCKennyWeathersREF DeadGuy.kill elseif DeadGuy == vCCMrsWeathersREF DeadGuy.kill endif end
826NVCCSammyWeathersSCRIPTscn NVCCSammyWeathersSCRIPT begin onDeath player if VCCLeftMyHeart.iBuySlaves != 3 setenemy playerFaction VCaesarsLegionCCoveFaction endif end begin onDeath if vCCMrsWeathersREF.getdead && vCCKennyWeathersREF.getdead if getquestrunning vCCLeftMyHeart setobjectivecompleted vCCLeftMyHeart 10 1 setobjectivedisplayed vccleftmyheart 50 0 setobjectivecompleted vccleftmyheart 55 1 if vccleftmyheart.imetfrank == 1 setobjectivedisplayed vCCLeftMyHeart 100 1 else setstage vCCLeftMyHeart 0 endif else setstage vCCLeftMyHeart 0 endif endif end
827NVCCSeverusSCRIPTscn NVCCSeverusSCRIPT int iDogTags ;set to 1 after the player speaks with Severus for the first time about trading tags for stuff int iMines ;set to 1 after player asks about NCR trouble, this allows player to teach Severus about demolitions if skill is high enough begin ondeath set vCCEyeforaneye.iDeadCount to vCCEyeforaneye.iDeadCount + 1 if (vCCEyeforaneye.iDeadCount >= 12 && VNPCFollowers.bBooneHired) set VDialogueCraigBoone.nOpenness to VDialogueCraigBoone.nOpenness + 2; CraigBooneREF.SayTo player VDialogueCraigBooneCCComplete; set VDialogueCraigBoone.bGreetCCComplete to 1; endif IF getstage vFreeformForlornHope03 == 10 additem legionear 1 endIF end
828NVCCSlaveDialogueActivatorSCRIPTscn NVCCSlaveDialogueActivatorSCRIPT int doonce begin onTriggerEnter player if doonce == 0 ; vCCMrsWeathersREF.startconversation player GREETING set vCCMrsWeathersREF.iBark to 1 set doonce to 1 endif end
829NVCCSlaveHeadPopperSCRIPTscn NVCCSlaveHeadPopperSCRIPT begin OnTriggerEnter if IsActionRef vCCMrsWeathersREF && vCCMrsWeathersREF.Getitemcount slavecollar == 1 vCCMrsWeathersREF.PlaceAtMe FakeMediumExplosion vCCMrsWeathersREF.KillActor vCCMrsWeathersREF 1 vCCMrsWeathersREF.removeitem slavecollar 1 elseif IsActionRef vCCSammyWeathersREF && vCCSammyWeathersREF.Getitemcount slavecollar == 1 vCCSammyWeathersREF.PlaceAtMe FakeMediumExplosion vCCSammyWeathersREF.KillActor vCCSammyWeathersREF 1 vCCSammyWeathersREF.removeitem slavecollar 1 elseif IsActionRef vCCKennyWeathersREF && vCCKennyWeathersREF.Getitemcount slavecollar == 1 vCCKennyWeathersREF.PlaceAtMe FakeMediumExplosion vCCKennyWeathersREF.KillActor vCCKennyWeathersREF 1 vCCKennyWeathersREF.removeitem slavecollar 1 endif end
830NVCCTheFortGateSCRIPTscn NVCCTheFortGateSCRIPT begin OnActivate if IsActionRef player ; VMQ02 failed and Legion is mad - let the player out if (GetStageDone VMQ02 110 == 1) startquest vCCmovetothefort set VMS45.bPlayerAtFort to 0 ; Player has the Chip and was asked by Caesar to blow up the Vault, but player is trying to leave elseif player.GetItemCount vPlatinumChip > 0 && (GetStageDone VMQ02 5 == 1) && (GetStageDone VMQ02 7 == 0) if (FortLegionaryEntranceGreeterRef.GetDead == 0) FortLegionaryEntranceGreeterRef.StartConversation player elseif (VCCLucullusREF.GetDead == 0) VCCLucullusREF.StartConversation player else startquest vCCmovetothefort set VMS45.bPlayerAtFort to 0 endif elseif VCCLucullusREF.GetDead == 1 startquest vCCmovetothefort set VMS45.bPlayerAtFort to 0 endif endif end
831NVCCTruckDoorSCRIPTscn NVCCTruckDoorSCRIPT int doonce int iMsgOnce int button int CheckButtons float timer int throwbarrels int iUnlocked int iPunt begin onActivate if iMsgOnce == 0 if iUnlocked == 0 set CheckButtons to 1 ShowMessage NVCCTruckDoorMsg endif endif end begin gamemode if CheckButtons == 1 set button to getbuttonpressed if button == 1 if player.getitemcount lockpick < 1 showmessage NVCCTruckDoorNoToolMsg elseif player.getav lockpick < 50 showmessage NVCCTruckDoorLowSkillMsg elseif player.getitemcount lockpick > 0 && player.getav lockpick >= 50 Activate set iMsgOnce to 1 set throwbarrels to 1 set VCottonwoodCoveRads to 1 set CheckButtons to 0 endif elseif button == 0 endif endif if throwbarrels == 1 set timer to timer + getsecondspassed if timer > 0 && iPunt == 0 setdestroyed 1 NVCCBarrel5REF.placeatme VCCSmallImpulseExplosion vCCRadMarkerREF.enable if GetObjectiveCompleted VCCLeftMyHeart 50 == 0 && GetObjectiveCompleted VCCLeftMyHeart 55 == 0 vccMrsWeathersREF.kill vccSammyWeathersREF.kill vccKennyWeathersREF.kill endif set iPunt to 1 elseif timer > .5 && iPunt == 1 NVCCBarrel7REF.placeatme VCCSmallImpulseExplosion set iPunt to 2 elseif timer > 1 && iPunt == 2 NVCCBarrel1REF.placeatme VCCSmallImpulseExplosion set iPunt to 3 elseif timer > 1.5 && iPunt == 3 NVCCBarrel8REF.placeatme VCCSmallImpulseExplosion set iPunt to 4 elseif timer > 2.5 && iPunt == 4 NVCCBarrel2REF.placeatme VCCSmallImpulseExplosion if NVCCAureliusREF.GetDead == 0 NVCCAureliusREF.kill NVCCAureliusREF.equipitem ArmorNVCLCenturion NVCCAureliusREF.equipitem HelmetNVCLCenturion endif set iPunt to 5 elseif timer > 3 && iPunt == 5 NVCCBarrel9REF.placeatme VCCSmallImpulseExplosion if VCCSeverusREF.GetDead == 0 VCCSeverusREF.kill VCCSeverusREF.equipitem ArmorNVCLPrime VCCSeverusREF.equipitem HelmetNVCLPrimeDecanus endif set iPunt to 6 elseif timer > 3.5 && iPunt == 6 NVCCBarrel10REF.placeatme VCCSmallImpulseExplosion if VCCCanyonRunnerREF.GetDead == 0 VCCCanyonRunnerREF.kill VCCCanyonRunnerREF.equipitem ArmorNVCLExplorer endif set iPunt to 7 elseif timer > 4 && iPunt == 7 NVCCBarrel11REF.placeatme VCCSmallImpulseExplosion set iPunt to 8 elseif timer > 4.5 && iPunt == 8 NVCCBarrel4REF.placeatme VCCSmallImpulseExplosion set iPunt to 9 elseif timer > 5 && iPunt == 9 NVCCBarrel12REF.placeatme VCCSmallImpulseExplosion set iPunt to 10 elseif timer > 5.5 && iPunt == 10 NVCCBarrel3REF.placeatme VCCSmallImpulseExplosion set iPunt to 11 elseif timer > 6 && iPunt == 11 NVCCBarrel16REF.placeatme VCCSmallImpulseExplosion set iPunt to 12 elseif timer > 6.5 && iPunt == 12 NVCCBarrel14REF.placeatme VCCSmallImpulseExplosion set iPunt to 13 elseif timer > 7 && iPunt == 13 NVCCBarrel13REF.placeatme VCCSmallImpulseExplosion NVCCRadiationDeathREF.enable set iPunt to 14 elseif timer > 7.5 && iPunt == 14 NVCCBarrel6REF.placeatme VCCSmallImpulseExplosion if VCCLucullusREF.GetDead == 0 VCCLucullusREF.additem ArmorRadiationSuitAdvanced 1 VCCLucullusREF.equipitem ArmorRadiationSuitAdvanced 1 endif set iPunt to 15 elseif timer > 8 && iPunt == 15 NVCCBarrel15REF.placeatme VCCSmallImpulseExplosion set vCCEyeforaneye.iRadiationKill to 1 if GetObjectiveDisplayed vCCEyeforaneye 90 == 1 && GetObjectiveCompleted vCCEyeforaneye 90 == 0 SetObjectiveCompleted vCCEyeforaneye 90 1; setObjectiveCompleted vCCEyeforaneye 95 1 setObjectiveDisplayed vCCEyeforaneye 100 1 if (VNPCFollowers.bBooneHired) set VDialogueCraigBoone.nOpenness to VDialogueCraigBoone.nOpenness + 2; CraigBooneREF.SayTo player VDialogueCraigBooneCCComplete; set VDialogueCraigBoone.bGreetCCComplete to 1; endif elseif GetObjectiveDisplayed vCCEyeforaneye 90 == 1 && GetObjectiveCompleted vCCEyeforaneye 90 == 1 setObjectiveCompleted vCCEyeforaneye 95 1 endif set iPunt to 16 elseif timer > 9 && iPunt == 16 NVCCBarrelbumperREF.placeatme VCCSmallImpulseExplosion set throwbarrels to throwbarrels + 1 set iPunt to 17 else endif endif end
832NVCGBarkEnableTriggerSCRIPTscn NVCGBarkEnableTriggerSCRIPT int doonce begin onTriggerEnter player if doonce == 0 NVCGBarkScorpionREF.enable set doonce to 1 endif end
833NVCGBlackCaveDoorSCRIPTscn NVCGBlackCaveDoorSCRIPT begin onActivate startquest vCaveTransitionISFX imod NVCaveEnteringISFX set vCaveTransitionISFX.entering to 0 activate end
834NVCGHalfordSCRIPTscn NVCGHalfordSCRIPT int iStatus ; 0=wounded, 1=healed, 2=player ally, 3=heading home int iDialogue ; 0=start, 1=is asked for help, 2=player ally, 3=player escort, 4=heading home int iLeg ; 0=hurt, 1=fixed int iAllDead ; set to 1 when all lakelurks dead, used for conv package begin onDeath NVCGHalfordREF.additem DogTagNoteMisc 1 end
835NVCGInvisibleCaveDoorSCRIPTscn NVCGInvisibleCaveDoorSCRIPT begin onActivate player set vCaveTransitionISFX.entering to 0 stopquest vCaveTransitionISFX rimod NVCaveEnteringISFX rimod NVCaveEnteringEndISFX rimod NVCaveExitEndISFX rimod NVCaveExitStartISFX rimod NVCaveExitISFX Activate end
836NVCGLogBookSCRIPTscn NVCGLogBookSCRIPT int doonce begin onAdd player if doonce == 0 if vFreeformCampGuardian.iNote == 0 addnote NVCGLog7Note elseif vFreeformCampGuardian.iNote == 1 addnote NVCGLog3Note elseif vFreeformCampGuardian.iNote == 2 addnote NVCGLog18Note elseif vFreeformCampGuardian.iNote == 3 addnote NVCGLog12Note elseif vFreeformCampGuardian.iNote == 4 addnote NVCGLog20Note elseif vFreeformCampGuardian.iNote == 5 addnote NVCGLog13Note elseif vFreeformCampGuardian.iNote == 6 addnote NVCGLog5Note elseif vFreeformCampGuardian.iNote == 7 addnote NVCGLog8Note elseif vFreeformCampGuardian.iNote == 8 addnote NVCGLog15Note elseif vFreeformCampGuardian.iNote == 9 addnote NVCGLog19Note elseif vFreeformCampGuardian.iNote == 10 addnote NVCGLog14Note endif set vFreeformCampGuardian.iNote to vFreeformCampGuardian.iNote + 1 endif set doonce to 1 end
837NVCGRadioActivatorSCRIPTscn NVCGRadioActivatorSCRIPT int iOff int iStopped begin onActivate player if iStopped == 0 if iOff == 0 NVCGRadioREF.SetBroadcastState 0 set iOff to 1 activate elseif iOff == 1 NVCGRadioREF.SetBroadcastState 1 set iOff to 0 activate endif elseif iStopped == 1 if iOff == 0 set iOff to 1 activate elseif iOff == 1 set iOff to 0 activate endif endif end
838NVCGRatEnableTriggerSCRIPTscn NVCGRatEnableTriggerSCRIPT int doonce begin onTriggerEnter player if doonce == 0 NVCGcampRat1REF.enable set doonce to 1 endif end
839NVCGScorpionEnableTriggerSCRIPTscn NVCGScorpionEnableTriggerSCRIPT int doonce begin onTriggerEnter player if doonce == 0 NVCGScorpionREF.enable set doonce to 1 endif end
840NVCrGiantMantisScriptscn NVCrGiantMantisScript ref ActivatingRef ref ThisCreature int DoOnce int LeftLegGone int RightLegGone begin OnHit set ThisCreature to GetSelf ; Check if left arm gone; if not, add a leg to pick up if ThisCreature.IsLimbGone 3 == 1 && LeftLegGone == 0 if ThisCreature.GetItemCount MantisLeg >= 1 ThisCreature.RemoveItem MantisLeg 1 set LeftLegGone to 1 endif endif ; Check if right arm gone; if not, add a leg to pick up if ThisCreature.IsLimbGone 5 == 1 && RightLegGone == 0 if ThisCreature.GetItemCount MantisLeg >= 1 ThisCreature.RemoveItem MantisLeg 1 set RightLegGone to 1 endif endif if ThisCreature.GetAV Health <= 0 if DoOnce == 0 if ThisCreature.IsLimbGone 5 == 0 AddItem MantisLeg 1 endif if ThisCreature.IsLimbGone 3 == 0 AddItem MantisLeg 1 endif set DoOnce to 1 endif endif end
841NVCRMrHouseSCRIPTscn NVCRMrHouseSCRIPT ;this is fleshy mrhouse, if you are looking for the comp, use MrHouse ; TLS 05/04/2011 - Added DoOnce calls on all of Mr House's GameMode scripting. Short HouseState ; 0 = Normal, can be spoken to ; 1 = Closed ; 2 = Unplugged ; 3 = electrocuted short bDoneOnce; short bEulogyDone ; (Added 8_5_10) So House's Obit and karma hit only happen once. -ETB short bHouseStateDoOnce; BEGIN OnLoad if (bDoneOnce == 0) Set HouseState to 1; setrestrained 1 setghost 1 playidle MRHouseSleepingLoop set bDoneOnce to 1; endif END ;begin gamemode ; set HouseState to 1 ; setrestrained 1 ; setghost 1 ; playidle MRHouseSleepingLoop ;end begin gamemode if (HouseState == 2) && (bHouseStateDoOnce == 0) playidle MrHouseCloseUnplugged ;Enable Elevator, and get rid of Victors: ; <<< (Added 7_26_10) to address bug#28492 (Player can't access elevator to bring Yes Man to L38) -ETB setstage vdialoguelucky38entrance 10 ; <<< ;Turns off House Comp ; <<< (Added 7_9_10) to address bug#25092 (Player can talk to House MainFrame after House is dead) -ETB Lucky38MrHouseREF.Setdestroyed 1 ; <<< if GetObjectiveDisplayed VMQYesMan01 10 || GetObjectiveDisplayed VMQYesMan01 15 || GetObjectiveDisplayed VMQYesMan01 50 SetObjectiveCompleted VMQYesMan01 50 1 SetObjectiveDisplayed VMQYesMan01 36 1 ; Added 7_1_10 to address bug# 23169 -ETB (there is a dup of this in the ondeath block below) endif Set bHouseStateDoOnce to 1; endif ; ------------------------------------------------------------------------------------------------------------------------------- \/ (Added 10_29_10) to address bug# 40561 (No objective to return to YesMan after electrocuting House). -ETB If (HouseState == 3) && (bHouseStateDoOnce == 0) If GetObjectiveDisplayed VMQYesMan01 10 || GetObjectiveDisplayed VMQYesMan01 15 || GetObjectiveDisplayed VMQYesMan01 50 SetObjectiveCompleted VMQYesMan01 50 1 If ( GetObjectiveCompleted VMQYesMan01 36 ) SetObjectiveCompleted VMQYesMan01 36 0 ; "Uncompletes" objective Elseif ( GetObjectiveDisplayed VMQYesMan01 36 ) SetObjectiveDisplayed VMQYesMan01 36 0 ; "Undisplays" objective Endif SetObjectiveDisplayed VMQYesMan01 36 1 Endif Set bHouseStateDoOnce to 1; Endif ; ------------------------------------------------------------------------------------------------------------------------------- /\ ; ------------------------------------------------------------------------------------------------------------------------------- \/ (Added 8_5_10) for JGonzales to add Obituary Note and Karma hit. -ETB If ( ( NVCRMrHouse01REF.GetDead ==1 || HouseState == 2 || HouseState == 3 ) && bEulogyDone == 0 ) Player.AddNote VObituaryMrHouse ;If ( HouseState == 3 && bEulogyDone == 0 ) ; <<< (Commented-out 9_21_10) to address bug#35985 (XP not awarded unless House is electrocuted) - ETB Rewardkarma -50 Set bEulogyDone to 1 RewardXP 500 ;Endif ; <<< (Commented-out 9_21_10 cont.) -ETB ;Set bEulogyDone to 1 ; <<< (test comment 9_23_10...AGAIN!) Endif ; ------------------------------------------------------------------------------------------------------------------------------- /\ end Begin onactivate if housestate == 0 activate endif end BEGIN onDeath set vStoryEventMrHouseNeutralized to 2 ;Turns off Terminal Lucky38ControlTerminalREF.setdestroyed 1 ;Turns off House Comp Lucky38MrHouseREF.Setdestroyed 1 ;Prevents Vats setghost 1 ; Turns off Go Hostile Triggers ;Houseoutersecret01REF.disable 1 HouseOUterSecretTrigger03REF.disable 1 HouseInnerSecretTrigger01REF.disable 1 L38ControlAlarmPoint01REF.Disable L38ControlAlarmPoint02REF.Disable L38PentAlarmPoint01REF.Disable Lucky38JaneREF.Disable Lucky38MarilynREF.Disable ;Enable Elevator, and get rid of Victors: setstage vdialoguelucky38entrance 10 Lucky38ElevatorDoorControlREF.Lock 0 ; (11_7_10) Bug#50976 Fix -ETB Lucky38ElevatorDoorControlREF.Unlock ; <<< ; Update VMQ02 if Caesar sent the player to kill Mr. House if (GetObjectiveDisplayed VMQ02 10) setstage VMQ02 15 endif ; Update NCR quest is applicable if GetStage VMQ05 == 40 SetObjectiveCompleted VMQ05 40 1 SetObjectiveDisplayed VMQ05 45 1 endif ;disables Emily Ortal outside the L38 ActivateEmily.disable FollowerEmily.disable 1 ; (Added 8_4_10) To disable the NPC Emily ("ActivateEmily" is the Trigger/Activator). -ETB If (GetStage VFreeformLucky38 >= 10 && GetQC VFreeformLucky38 != 1) ; (Added 9_15_10) To properly fail Emily's quest SetStage VFreeformLucky38 110; Endif ;setstage VMQHouse1 66 setstage vdialoguemrhouse 20 setally lucky38faction playerfaction if (player.getitemcount vplatinumchip == 0) && (VStoryEventBennyKilledCasino == 1) || (getobjectivecompleted vmq02 5 == 1) player.additem vplatinumchip 1 if NVCRMrHouse01REF.HouseState == 3 hChamberAfterEffectREF.enable 1 endif endif if GetObjectiveDisplayed VMQYesMan01 10 || GetObjectiveDisplayed VMQYesMan01 15 || GetObjectiveDisplayed VMQYesMan01 50 SetObjectiveCompleted VMQYesMan01 50 1 SetObjectiveDisplayed VMQYesMan01 36 1 ; Added 7_1_10 to address bug# 23169 -ETB (there is a dup of this in the gamemode block above) endif ;Fail the House Questline SetObjectiveDisplayed VMQHouseFail 5 1 SetObjectiveCompleted VMQHouseFail 5 1 SetStage VMQHouseFail 1 If GetObjectiveDisplayed VMQ05 40 setobjectivecompleted vmq05 40 1 setobjectivedisplayed vmq05 45 1 endif end
842NVCrSentryBotToyBrokenScriptscn NVCrSentryBotToyBrokenScript ref ActivatingObject begin OnActivate set ActivatingObject to GetActionRef if ActivatingObject.GetIsReference player NVSentryBotToyBrokenREF.MoveTo NVSentryBotToyMarker player.additem NVSentryBotToyItemBroken 1 endif end
843NVCrSentryBotToyScriptscn NVCrSentryBotToyScript int Following ref ActivatingObject ref SentryBot ref SpawningObject begin OnActivate set ActivatingObject to GetActionRef set SentryBot to GetSelf ; If the sentry bot is healthy, pick it up if ActivatingObject.GetIsReference player && SentryBot.GetDead == 0 NVSentryBotToyREF.MoveTo NVSentryBotToyMarker player.additem NVSentryBotToyItem 1 ; Otherwise, player picks up a broken version elseif ActivatingObject.GetIsReference player && SentryBot.GetDead == 1 ; Place broken sentry bot in player's inventory NVSentryBotToyREF.MoveTo NVSentryBotToyMarker player.additem NVSentryBotToyItemBroken 1 endif ; Make toy stop following set Following to 0 NVSentryBotToyREF.evp end
844NVCRTumbleweedRadSCRIPTscn NVCRTumbleweedRadSCRIPT int iDead float iTimer float iTimer2 ref rWeed Begin OnHit set rWeed to this kill rWeed 0 rWeed.disable end Begin OnStartCombat set rWeed to this kill rWeed 0 rWeed.disable end begin onDeath set iDead to 1 disable end begin GameMode if iDead == 0 if iTimer2 > 1 RestoreActorValue Health 2 set iTimer2 to 0 else set iTimer2 to iTimer2 + GetSecondsPassed endif if iTimer > 3 set iTimer to 0 PlaceAtMe vGlowingOneRadiationAuraExplosion else set iTimer to iTimer + GetSecondsPassed endif endif end
845NVCRTumbleweedScriptscn NVCRTumbleweedScript ref rWeed Begin OnHit set rWeed to this kill rWeed 0 end Begin OnStartCombat set rWeed to this kill rWeed 0 end Begin OnDeath disable end
846NVDogTagScriptscn NVDogTagScript ;OLD AUTO ADD SCRIPTING, moved to Camp Guardian on Halford ;begin OnAdd ; if VDogTagFistActivatorREF.iOnce == 0 && player.getitemcount NCRDogtag >= 20 ; VDogTagFistActivatorREF.moveto player ; set VDogTagFistActivatorREF.checkButtons to 1 ; set VDogTagFistActivatorREF.iOnce to 1 ; endif ;end
847NVEcvDoorBG01SCRIPTscn NVEcvDoorBG01SCRIPT ref rUser ;This script is to prevent AI from following you between HiddenValley02 and HiddenValley01 so we don't overload on NPCs. Begin OnActivate set rUser to GetActionRef if (rUser == Player) Activate else ;Only check the door between HiddenValley01 and 02 if (GetSelf == vHVLevel02MainDoorREF) || (GetSelf == vHVLevel01DownstairsDoorREF) ;Check if they are in combat if (rUser.IsInCombat) ;If they are, stop combat and don't let them use the door. rUser.StopCombat return else ;They aren't, so let them go. activate endif else Activate endif endif End ;OnActivate
848NVEmergencyRadioSCRIPTscn NVEmergencyRadioSCRIPT ; VEFR01NCRGood2EmergencyRadio Faction Reputation Benefit - This makes the radio work (as a food item): Player "ingests" radio to activate it ; (hack job to get some hooks into an inventory item) Begin ScriptEffectStart Set VEFR01NCRGood2EmergencyRadio.bUsingRadio to 1 player.AddItem NVVEFR01NCRGood2Radio 1 1 End Begin ScriptEffectUpdate ; <<< Not Used >>> End Begin ScriptEffectFinish ; <<< Not Used >>> End
849NVGrindingWheelActivatorScriptscn NVGrindingWheelActivatorScript ; Removed GameMode code to reduce the cost of running the script on every frame - it wasn't in use. Part of a game-wide revision of scripts - Jorge 03/14/10 ;begin GameMode ;if IsAnimPlaying Forward == 0 ;PlayGroup Forward 0 ;endif ;end begin OnLoad PlayGroup Forward 2 end
850NVHooverDamTowerDoorInteriorSCRIPTscn NVHooverDamTowerDoorInteriorSCRIPT ; Script to handle enabling/disabling Hoover Dam assets. ; JSH 03/27/11 BEGIN OnActivate If ( IsActionRef Player == 1 ) If ( GetIsReference VHDTowerDoorInt03REF == 1 ) If ( HooverDamMasterParentMarker.GetDisabled == 0 ) HooverDamMasterParentMarker.Disable; EndIf EndIf Activate; Else Activate; EndIf END
851NVMcCarranSignActivatorScriptscn NVMcCarranSignActivatorScript ; Forward = Initial turn-on/warm-up state ; SpecialIdle = Fully bright, occasional flicker ; Backward = off short bInitialized short bLit ; 1 = Light is on. short bFlicker ; 1 = Light is fully bright and occasionally flickering. float fTimer float fRandomDelay ref LinkedLight begin OnLoad if bInitialized == 0 PlayGroup Backward 1 set bInitialized to 1 endif end begin GameMode if bLit if GetCurrentTime < 20.0 || GetCurrentTime > 23.0 ;ShowWarning "Light turning off." ;set LinkedLight to GetLinkedRef PlayGroup Backward 1 set bLit to 0 set bFlicker to 0 ;LinkedLight.disable elseif bFlicker == 0 if fTimer < fRandomDelay set fTimer to fTimer + GetSecondsPassed else ;ShowWarning "Fully bright and flickering." set fTimer to 0 PlayGroup SpecialIdle 1 set bFlicker to 1 endif endif else ;ShowWarning "Light turning on." if GetCurrentTime > 20.0 && GetCurrentTime < 23.0 ;set LinkedLight to GetLinkedRef PlayGroup Forward 1 ; Light slowly powers on. set bLit to 1 ;LinkedLight.enable set fRandomDelay to 15 + 10.0/99.0 * GetRandomPercent endif endif end
852NVMissFortuneGunScriptScn NVMissFortuneGunScript ;This script runs on Miss Fortune's gun. It governs the chance and type of unlucky events that her targets suffer. ; - Jorge Ref UnluckyDude Short Fortune Short StrikesBack Short Cripples Begin OnHit Set UnluckyDude to GetOwnerLastTarget Set Fortune to GetRandomPercent If Fortune <= 35 UnluckyDude.CIOS MissFortuneKnockdownSpell If UnluckyDude.GetDistance Player >= 512 If UnluckyDude.GetItemCount WeapGrenadeFrag >= 1 || UnluckyDude.GetItemCount WeapNVDynamite >= 1 || UnluckyDude.GetItemCount WeapMineBottleCap >= 1 UnluckyDude.PlaceAtMe 40mmGrenadeExplosion 1 Elseif UnluckyDude.GetItemCount WeapGrenadePlasma >= 1 || UnluckyDude.GetItemCount WeapMinePlasma >= 1 UnluckyDude.PlaceAtMe GrenadePlasmaExplosion 1 Endif Endif Elseif Fortune > 35 && Fortune <= 65 If UnluckyDude.GetWeaponAnimType >= 2 If UnluckyDude.GetDistance Player >= 512 If UnluckyDude.GetItemCount WeapFlamer >= 1 || UnluckyDude.GetItemCount WeapHeavyIncinerator >= 1 || UnluckyDude.GetItemCount WeapNVIncinerator >= 1 UnluckyDude.PlaceAtMe ExplosionFlamerCriteffect 1 Elseif UnluckyDude.GetItemCount WeapNVGrenadeLauncher >= 1 || UnluckyDude.GetItemCount WeapNVGrenadeRifle >= 1 || UnluckyDude.GetItemCount WeapNVGrenadeLauncher >= 1 UnluckyDude.PlaceAtMe 40mmGrenadeExplosion 1 Elseif UnluckyDude.GetItemCount WeapGrenadeFrag >= 1 || UnluckyDude.GetItemCount WeapNVDynamite >= 1 || UnluckyDude.GetItemCount WeapMineBottleCap >= 1 UnluckyDude.PlaceAtMe 40mmGrenadeExplosion 1 Elseif UnluckyDude.GetItemCount WeapGrenadePlasma >= 1 || UnluckyDude.GetItemCount WeapMinePlasma >= 1 ;|| UnluckyDude.GetItemCount WeapNVPlasmaCannon >= 1 UnluckyDude.PlaceAtMe GrenadePlasmaExplosion 1 Elseif UnluckyDude.GetItemCount WeapPlasmaPistol >= 1 || UnluckyDude.GetItemCount WeapPlasmaRifle >= 1 UnluckyDude.PlaceAtMe GrenadePlasmaExplosion 1 Elseif UnluckyDude.GetItemCount WeapMissileLauncher >= 1 ;|| UnluckyDude.GetItemCount WeapNVHeavyRailCannon >= 1 || UnluckyDude.GetItemCount WeapNVLightRailCannon >= 1 UnluckyDude.PlaceAtMe 40mmGrenadeExplosion 1 Endif Endif UnluckyDude.DamageActorValue RightAttackCondition 100 UnluckyDude.ModWeaponHealthPerc -100 Elseif UnluckyDude.GetWeaponAnimType <= 1 Set StrikesBack to GetRandomPercent If StrikesBack < 50 UnluckyDude.CIOS MissFortuneKnockdownSpell If UnluckyDude.GetDistance Player >= 512 If UnluckyDude.GetItemCount WeapGrenadeFrag >= 1 || UnluckyDude.GetItemCount WeapNVDynamite >= 1 || UnluckyDude.GetItemCount WeapMineBottleCap >= 1 UnluckyDude.PlaceAtMe 40mmGrenadeExplosion 1 Elseif UnluckyDude.GetItemCount WeapGrenadePlasma >= 1 || UnluckyDude.GetItemCount WeapMinePlasma >= 1 UnluckyDude.PlaceAtMe GrenadePlasmaExplosion 1 Endif Endif Elseif StrikesBack >= 50 Set Cripples to GetRandomPercent If Cripples <= 10 && UnluckyDude.GetActorValue PerceptionCondition > 0 UnluckyDude.DamageActorValue PerceptionCondition 100 Elseif Cripples > 10 && Cripples <= 25 && UnluckyDude.GetActorValue LeftAttackCondition > 0 UnluckyDude.DamageActorValue LeftAttackCondition 100 Elseif Cripples > 25 && Cripples <= 40 && UnluckyDude.GetActorValue RightAttackCondition > 0 UnluckyDude.DamageActorValue RightAttackCondition 100 Elseif Cripples > 40 && Cripples <= 55 && UnluckyDude.GetActorValue LeftMobilityCondition > 0 UnluckyDude.DamageActorValue LeftMobilityCondition 100 Elseif Cripples > 55 && Cripples <= 70 && UnluckyDude.GetActorValue RightMobilityCondition > 0 UnluckyDude.DamageActorValue RightMobilityCondition 100 Elseif Cripples > 70 && UnluckyDude.GetActorValue EnduranceCondition > 0 UnluckyDude.DamageActorValue EnduranceCondition 100 Else UnluckyDude.CIOS MissFortuneParalysisSpell Endif Endif Endif Elseif Fortune > 65 Set Cripples to GetRandomPercent If Cripples <= 10 && UnluckyDude.GetActorValue PerceptionCondition > 0 UnluckyDude.DamageActorValue PerceptionCondition 100 Elseif Cripples > 10 && Cripples <= 25 && UnluckyDude.GetActorValue LeftAttackCondition > 0 UnluckyDude.DamageActorValue LeftAttackCondition 100 UnluckyDude.ModWeaponHealthPerc -100 Elseif Cripples > 25 && Cripples <= 40 && UnluckyDude.GetActorValue RightAttackCondition > 0 UnluckyDude.DamageActorValue RightAttackCondition 100 UnluckyDude.ModWeaponHealthPerc -100 Elseif Cripples > 40 && Cripples <= 55 && UnluckyDude.GetActorValue LeftMobilityCondition > 0 UnluckyDude.DamageActorValue LeftMobilityCondition 100 Elseif Cripples > 55 && Cripples <= 70 && UnluckyDude.GetActorValue RightMobilityCondition > 0 UnluckyDude.DamageActorValue RightMobilityCondition 100 Elseif Cripples > 70 && UnluckyDude.GetActorValue EnduranceCondition > 0 UnluckyDude.DamageActorValue EnduranceCondition 100 Else UnluckyDude.CIOS MissFortuneParalysisSpell Endif Endif End
853NVMissFortuneGunSpellScriptScn NVMissFortuneGunSpellScript ; This spell effect is a test to turn Miss Fortune's script into an AOE. I'm merely changing my earlier code to run on a spell rather than on the gun itself. ; Also, this is a test-base for AOE effects applied to ranged weapons. We can then use them for a variety of situations simply linking them to Object Effects, rather than more elaborate methods. ; Jorge. Ref UnluckyDude Short Fortune Short StrikesBack Short Cripples Begin ScriptEffectStart Set UnluckyDude to GetSelf ;UnluckyDude.PMS AlienCritGlowFXShader ; Debug effect to gauge distance of AOE effect given in the Object Effect. If ( UnluckyDude == Player || UnluckyDude.GetInFaction FollowerFaction == 1 ) Return Endif Set Fortune to GetRandomPercent If Fortune <= 35 UnluckyDude.CIOS MissFortuneKnockdownSpell If UnluckyDude.GetItemCount WeapNVGrenadeIncendiary >= 1 If UnluckyDude.GetDistance Player >= 451 UnluckyDude.PlaceAtMe 40mmGrenadeExplosionInc 1 Endif Elseif UnluckyDude.GetItemCount WeapGrenadeFrag >= 1 || UnluckyDude.GetItemCount WeapNVDynamite >= 1 || UnluckyDude.GetItemCount WeapMineBottleCap >= 1 If UnluckyDude.GetDistance Player >= 751 UnluckyDude.PlaceAtMe 40mmGrenadeExplosion 1 Endif Elseif UnluckyDude.GetItemCount WeapGrenadePlasma >= 1 || UnluckyDude.GetItemCount WeapMinePlasma >= 1 If UnluckyDude.GetDistance Player >= 451 UnluckyDude.PlaceAtMe GrenadePlasmaExplosion 1 Endif Elseif UnluckyDude.GetItemCount WeapGrenadePulse >= 1 || UnluckyDude.GetItemCount WeapMinePulse >= 1 If UnluckyDude.GetDistance Player >= 451 UnluckyDude.PlaceAtMe GrenadePulseExplosion 1 Endif Endif Elseif Fortune > 35 && Fortune <= 65 If UnluckyDude.GetWeaponAnimType >= 2 If UnluckyDude.GetItemCount WeapFlamer >= 1 || UnluckyDude.GetItemCount WeapHeavyIncinerator >= 1 || UnluckyDude.GetItemCount WeapNVIncinerator >= 1 || UnluckyDude.GetItemCount WeapNVGrenadeIncendiary >= 1 If UnluckyDude.GetDistance Player >= 451 UnluckyDude.PlaceAtMe 40mmGrenadeExplosionInc 1 Endif Elseif UnluckyDude.GetItemCount WeapNVGrenadeLauncher >= 1 || UnluckyDude.GetItemCount WeapNVGrenadeRifle >= 1 || UnluckyDude.GetItemCount WeapNVGrenadeMachinegun >= 1 If UnluckyDude.GetDistance Player >= 751 UnluckyDude.PlaceAtMe 40mmGrenadeExplosion 1 Endif Elseif UnluckyDude.GetItemCount WeapGrenadeFrag >= 1 || UnluckyDude.GetItemCount WeapNVDynamite >= 1 || UnluckyDude.GetItemCount WeapMineBottleCap >= 1 If UnluckyDude.GetDistance Player >= 751 UnluckyDude.PlaceAtMe 40mmGrenadeExplosion 1 Endif Elseif UnluckyDude.GetItemCount WeapGrenadePlasma >= 1 || UnluckyDude.GetItemCount WeapMinePlasma >= 1 || UnluckyDude.GetItemCount WeapNVRechargerPistol >= 1 || UnluckyDude.GetItemCount WeapNVRechargerRifle >= 1 If UnluckyDude.GetDistance Player >= 451 UnluckyDude.PlaceAtMe GrenadePlasmaExplosion 1 Endif Elseif UnluckyDude.GetItemCount WeapPlasmaPistol >= 1 || UnluckyDude.GetItemCount WeapPlasmaRifle >= 1 || UnluckyDude.GetItemCount WeapNVMultiPlasRifle >= 1 || UnluckyDude.GetItemCount WeapNVPlasmaCaster >= 1 || UnluckyDude.GetItemCount WeapNVPlasmaDefender >= 1 || UnluckyDude.GetItemCount WeapNVPulseGun >= 1 If UnluckyDude.GetDistance Player >= 451 UnluckyDude.PlaceAtMe GrenadePlasmaExplosion 1 Endif Elseif UnluckyDude.GetItemCount WeapMissileLauncher >= 1 || UnluckyDude.GetItemCount WeapNVSecuritronMissile >= 1 If UnluckyDude.GetDistance Player >= 751 UnluckyDude.PlaceAtMe 40mmGrenadeExplosion 1 Endif Elseif UnluckyDude.GetItemCount WeapNVPulseGun >= 1 If UnluckyDude.GetDistance Player >= 451 UnluckyDude.PlaceAtMe GrenadePulseExplosion 1 Endif Endif UnluckyDude.DamageActorValue RightAttackCondition 100 UnluckyDude.ModWeaponHealthPerc -100 Elseif UnluckyDude.GetWeaponAnimType <= 1 Set StrikesBack to GetRandomPercent If StrikesBack < 50 UnluckyDude.CIOS MissFortuneKnockdownSpell If UnluckyDude.GetItemCount WeapNVGrenadeIncendiary >= 1 If UnluckyDude.GetDistance Player >= 451 UnluckyDude.PlaceAtMe 40mmGrenadeExplosionInc 1 Endif Elseif UnluckyDude.GetItemCount WeapGrenadeFrag >= 1 || UnluckyDude.GetItemCount WeapNVDynamite >= 1 || UnluckyDude.GetItemCount WeapMineBottleCap >= 1 If UnluckyDude.GetDistance Player >= 751 UnluckyDude.PlaceAtMe 40mmGrenadeExplosion 1 Endif Elseif UnluckyDude.GetItemCount WeapGrenadePlasma >= 1 || UnluckyDude.GetItemCount WeapMinePlasma >= 1 If UnluckyDude.GetDistance Player >= 451 UnluckyDude.PlaceAtMe GrenadePlasmaExplosion 1 Endif Elseif UnluckyDude.GetItemCount WeapGrenadePulse >= 1 || UnluckyDude.GetItemCount WeapMinePulse >= 1 If UnluckyDude.GetDistance Player >= 451 UnluckyDude.PlaceAtMe GrenadePulseExplosion 1 Endif Endif Elseif StrikesBack >= 50 Set Cripples to GetRandomPercent If Cripples <= 10 && UnluckyDude.GetActorValue PerceptionCondition > 0 UnluckyDude.DamageActorValue PerceptionCondition 100 Elseif Cripples > 10 && Cripples <= 25 && UnluckyDude.GetActorValue LeftAttackCondition > 0 UnluckyDude.DamageActorValue LeftAttackCondition 100 Elseif Cripples > 25 && Cripples <= 40 && UnluckyDude.GetActorValue RightAttackCondition > 0 UnluckyDude.DamageActorValue RightAttackCondition 100 Elseif Cripples > 40 && Cripples <= 55 && UnluckyDude.GetActorValue LeftMobilityCondition > 0 UnluckyDude.DamageActorValue LeftMobilityCondition 100 Elseif Cripples > 55 && Cripples <= 70 && UnluckyDude.GetActorValue RightMobilityCondition > 0 UnluckyDude.DamageActorValue RightMobilityCondition 100 Elseif Cripples > 70 && UnluckyDude.GetActorValue EnduranceCondition > 0 UnluckyDude.DamageActorValue EnduranceCondition 100 Else UnluckyDude.CIOS MissFortuneParalysisSpell Endif Endif Endif Elseif Fortune > 65 Set Cripples to GetRandomPercent If Cripples <= 10 && UnluckyDude.GetActorValue PerceptionCondition > 0 UnluckyDude.DamageActorValue PerceptionCondition 100 Elseif Cripples > 10 && Cripples <= 25 && UnluckyDude.GetActorValue LeftAttackCondition > 0 UnluckyDude.DamageActorValue LeftAttackCondition 100 UnluckyDude.ModWeaponHealthPerc -100 Elseif Cripples > 25 && Cripples <= 40 && UnluckyDude.GetActorValue RightAttackCondition > 0 UnluckyDude.DamageActorValue RightAttackCondition 100 UnluckyDude.ModWeaponHealthPerc -100 Elseif Cripples > 40 && Cripples <= 55 && UnluckyDude.GetActorValue LeftMobilityCondition > 0 UnluckyDude.DamageActorValue LeftMobilityCondition 100 Elseif Cripples > 55 && Cripples <= 70 && UnluckyDude.GetActorValue RightMobilityCondition > 0 UnluckyDude.DamageActorValue RightMobilityCondition 100 Elseif Cripples > 70 && UnluckyDude.GetActorValue EnduranceCondition > 0 UnluckyDude.DamageActorValue EnduranceCondition 100 Else UnluckyDude.CIOS MissFortuneParalysisSpell Endif Endif End
854NVMissFortuneKnockdownScriptScn NVMissFortuneKnockdownScript ; - Jorge Ref Self Begin ScriptEffectStart If Self.HasPerk Stonewall != 1 Set Self to GetSelf Player.PushActorAway Self 20 Else ShowMessage StonewallMessage EndIf End
855NVMissFortunePlasmaBlowsUpScriptScn NVMissFortunePlasmaBlowsUpScript ; - Jorge Ref Self Begin ScriptEffectStart Set Self to GetSelf Self.PlaceAtMe GrenadePlasmaExplosion End
856NVMissFortunePowderBlowsUpScriptScn NVMissFortunePowderBlowsUpScript ; - Jorge Ref Self Begin ScriptEffectStart Set Self to GetSelf Self.PlaceAtMe 40mmGrenadeExplosion End
857nvNelsonExplorerBarkQuestSCRIPTscn nvNelsonExplorerBarkQuestSCRIPT short talkedto Begin GameMode if talkedto == 1 DisablePlayerControls Player.moveto NelsonBarracksDeadSeaMarkerREF EnablePlayerControls setquestdelay nvnelsonexplorerbark 5 setstage nvnelsonexplorerbark 100 set talkedto to 0 ;elseif (nEvent == 1) ;Run this on Faded In ;set nEvent to nEvent + 1 ;set bRunTimer to 0 endif END
858nvNelsonExplorerBarkSCRIPTscn nvNelsonExplorerBarkSCRIPT int RunOnce ref MyHandler begin GameMode If GetStage VDeadSea < 10 if RunOnce == 0 GetDetected Player StartConversation Player NVNelsonExplorer01REF.evp NVNelsonExplorer02REF.evp NVNelsonExplorer03REF.evp NVNelsonExplorer04REF.evp NVNelsonExplorer05REF.evp NVNelsonExplorer06REF.evp set RunOnce to 1 endif Endif END begin OnStartCombat Player if (GetQR DisguiseFactionPulseQuest == 1) && (IsSpellTarget DisguiseFactionPulseActorEffect == 1) sendAssaultAlarm Player VCaesarsLegionFaction sendAssaultAlarm Player VCaesarsLegionSnifferFaction set MyHandler to GetLinkedRef if (GetDistance player < 512) && MyHandler != 0 MyHandler.Say ChallengePlayer endif endif end
859NVPoisonScorpionScriptScn NVPoisonScorpionScript ; This script serves as a safeguard against being able to use Oblivion-style poisons in ranged weapons (guns, flame-throwers, etc). Begin ScriptEffectStart ;ShowWarning "I'm equipped" ;If Player.IsWeaponInList VPoisonWeapons != 1 ShowMessage NVPoisonFailure AddItem NVPoisonGreaseScorpionDummy 1 1 Return ;Else ; AddItem NVPoisonGreaseScorpion 1 1 ; EquipItem NVPoisonGreaseScorpion 0 1 ;Endif End Begin ScriptEffectUpdate End Begin ScriptEffectFinish End
860NVRouletteDealerScriptscn NVRouletteDealerScript int iRoulette ref iLink ref iLinkB ref Actor float fTimer float fStarter begin OnLoad if iLink == 0 || iLinkB == 0 set iLink to GetLinkedRef set iLinkB to iLink.GetLinkedRef set Actor to GetSelf endif end begin GameMode if GetAv Variable01 == 2 set fTimer to fTimer + GetSecondsPassed if fTimer >= 60 setAV Variable01 0 set fTimer to 0 evp endif elseif GetAV Variable01 == 1 set fStarter to fStarter + GetSecondsPassed if fStarter >= 3 set fStarter to 0 setAV Variable01 2 addscriptpackage RouletteDealerPackage1 endif endif end begin OnPackageStart RouletteDealerPackage0 setAV Variable01 0 end begin OnPackageDone RouletteDealerPackage0 setAV Variable01 1 set fStarter to 0 end begin OnPackageStart RouletteDealerPackage1 setAV Variable01 2 iLinkB.Activate Actor 1 set fTimer to 0 end
861NVRouletteDealerScript2scn NVRouletteDealerScript2 int iRoulette ref iLink ref iLinkB ref Actor float fTimer float fStarter int iStarter begin OnLoad if iLink == 0 || iLinkB == 0 set iLink to GetLinkedRef set iLinkB to iLink.GetLinkedRef set Actor to GetSelf endif if iStarter == 0 set iStarter to 1 endif end begin GameMode if iStarter == 1 set fStarter to fStarter + GetSecondsPassed if fStarter >= 10 if (GetInCell ULMembersOnly == 0) addscriptpackage RouletteDealerPackage0 endif set iStarter to 2 set fStarter to 0 endif elseif iStarter == 2 set fStarter to fStarter + GetSecondsPassed if fStarter >= 10 set iStarter to 3 set fStarter to 0 setAV Variable01 2 if (GetInCell ULMembersOnly == 0) addscriptpackage RouletteDealerPackage1 endif endif endif if GetAv Variable01 == 2 set fTimer to fTimer + GetSecondsPassed if fTimer >= 60 setAV Variable01 0 set fTimer to 0 set iStarter to 1 evp endif endif end begin OnPackageStart RouletteDealerPackage1 iLinkB.Activate Actor 1 set fTimer to 0 end
862NVRouletteTableScriptscn NVRouletteTableScript int activated ref Actor begin OnActivate playgroup forward 1 end
863NVSentryBotToyItemBrokenScriptscn NVSentryBotToyItemBrokenScript begin OnDrop player NVSentryBotToyBrokenREF.MoveTo player disable end
864NVSentryBotToyItemScriptscn NVSentryBotToyItemScript begin OnDrop player NVSentryBotToyREF.MoveTo player ; Make toy start following set NVSentryBotToyREF.Following to 1 NVSentryBotToyREF.evp disable end
865NVStarBottleCapScriptscn NVStarBottleCapScript begin onAdd player if VFreeformSSHQ.FirstCap == 0 ; If this is the first cap the player found, spawn Malcolm Holmes SSHQMalcolmHolmesREF.MoveTo SSHQMalcolmHolmesMarker SSHQMalcolmHolmesREF.enable SSHQMalcolmHolmesREF.evp ; Show Jacklyn and Tomas as well SSHQTomasREF.enable SSHQJacklynREF.enable set VFreeformSSHQ.FirstCap to 1 elseif GetStage VMS09a == 100 player.additem caps001 1 RemoveMe endif end
866NVTechatticupRenoldsDialogueScriptscn NVTechatticupRenoldsDialogueScript Begin OnTriggerEnter Player If GetStage VTechatticup < 10 NVTecNCRRenoldsREF.AddScriptPackage TechaticupNCRRenoldsDialoguePackage Endif End
867NVTechNCRRenoldsSCRIPTscn NVTechNCRRenoldsSCRIPT ;Set Vtechatticup to Fail State if NCR Renolds dies. Begin OnDeath NVTecNCRRenoldsREF SetStage VTechatticup 110 END
868OblivionSpawnTestScriptScn OblivionSpawnTestScript Short bDead Begin OnDeath ;ShowWarning "I am dead." End Begin OnStartCombat ;ShowWarning "I am fighting." End Begin OnLoad ;ShowWarning "I am loaded." Kill SetDestroyed 1 Set bDead to 1 ;MoveTo VVoidCreatureMarker01 ;ResetCell VDoNotDelete End ;Begin GameMode ; If GetDead != 1 ; Kill ; SetDestroyed 1 ; Endif ;End
869OldLadyGibsonScriptscn OldLadyGibsonScript short BarterSuccess short SpeechSuccess short KnowAboutParts short HalfPrice
870OmertaBouncerScriptscn OmertaBouncerScript ref Link float Timer int opened float fDiff ;begin GameMode ; if Link == 0 ; set Link to GetLinkedRef ; endif ; if GetDead == 0 ; if (Link.GetLocked == 0 && Link != 0) ; set Timer to Timer + GetSecondsPassed ; if Timer >= 5 && Link.GetOpenState == 1 ; Link.setOpenState 0 ; set fDiff to Timer ; elseif Link.GetOpenState == 3 && fDiff == 0 ; set fDiff to Timer ; elseif Timer - fDiff >= 2 && Link.GetOpenState == 3 ; set Timer to 0 ; set fDiff to 0 ; Link.Lock ; endif ; endif ; endif ;end
871OnDeathEnableLinkedRefscn OnDeathEnableLinkedRef ref linkedRef begin onDeath set linkedRef to getLinkedRef linkedRef.enable end
872OurLadyHopeMutantMineTriggerSCRIPTscn OurLadyHopeMutantMineTriggerSCRIPT ; This trigger only gets triggered once. ref linkedRef short doOnce Begin onTriggerEnter Player if doOnce == 0 set doOnce to 1 ;Trigger is only set off one time set linkedRef to getLinkedRef linkedRef.evp endif End
873P04CompanionFireQuestSCRIPTscn P04CompanionFireQuestSCRIPT ; Fires all companions. ; JSH 05/19/11 Short bFireCompanions; ; 1 = Go ahead and fire all companions. BEGIN GameMode ; Fire humanoid follower. If (VNPCFollowers.bBooneHired == 1) Set VNPCFollowers.bHumanoidInParty to 0; CraigBooneREF.SetPlayerTeammate 0; CraigBooneREF.RemoveFromFaction FollowerFaction; CraigBooneREF.SetActorValue Assistance 0; CraigBooneREF.RemovePerk CompanionSuite; Set CraigBooneREF.Waiting to 0; Set VNPCFollowers.bBooneHired to 0; Set VNPCFollowers.bBooneFired to 1; Set VNPCFollowers.bBooneL38 to 0; CraigBooneREF.MoveTo BooneHomeMarkerREF; ; Remove Player from Boone's faction so Legion isn't automatically hostile. Player.RemoveFromFaction VBooneFaction; Player.RemovePerk Spotting; ShowMessage FollowerMessagePerkBooneRemove; ShowMessage FollowerMessageLeaveBoone; ElseIf (VNPCFollowers.ArcadeHired == 1) Set VNPCFollowers.bHumanoidInParty to 0; ArcadeREF.SetPlayerTeammate 0; ArcadeREF.RemoveFromFaction FollowerFaction; ArcadeREF.SetActorValue Assistance 0; ArcadeREF.RemovePerk CompanionSuite; Set ArcadeREF.Waiting to 0; Set VNPCFollowers.ArcadeHired to 0; Set VNPCFollowers.ArcadeFired to 1; Set VNPCFollowers.bArcadeL38 to 0; Player.RemovePerk BetterHealing; ShowMessage FollowerMessagePerkArcadeRemove; ShowMessage FollowerMessageLeaveArcade; ArcadeREF.MoveTo ArcadeHomeMarker; ElseIf (VNPCFollowers.bCassHired == 1) Set VNPCFollowers.bHumanoidInParty to 0; RoseofSharonCassidyREF.SetPlayerTeammate 0; RoseofSharonCassidyREF.RemoveFromFaction FollowerFaction; RoseofSharonCassidyREF.SetActorValue Assistance 0; RoseofSharonCassidyREF.RemovePerk CompanionSuite; Set RoseofSharonCassidyREF.Waiting to 0; Set VNPCFollowers.bCassHired to 0; Set VNPCFollowers.bCassFired to 1; Set VNPCFollowers.bCassL38 to 0; Player.RemovePerk WhiskeyRose; ShowMessage FollowerMessagePerkCassRemove; ShowMessage FollowerMessageLeaveCass; RoseofSharonCassidyREF.MoveTo CassHomeMarkerREF; StopQuest vCassTimer; ElseIf (VNPCFollowers.bLilyHired == 1) Set VNPCFollowers.bHumanoidInParty to 0; LilyREF.SetPlayerTeammate 0; LilyREF.RemoveFromFaction FollowerFaction; LilyREF.SetActorValue Assistance 0; LilyREF.RemovePerk CompanionSuite; Set LilyREF.Waiting to 0; Set VNPCFollowers.bLilyHired to 0; Set VNPCFollowers.bLilyFired to 1; Set VNPCFollowers.bLilyL38 to 0; LilyREF.MoveTo LilyJacobstownMarker; Player.RemovePerk StealthGirl; ShowMessage FollowerMessagePerkLilyRemove; ShowMessage FollowerMessageLeaveLily; StopQuest LilysMedicineTimer; ElseIf (VNPCFollowers.bVeronicaHired == 1) Set VNPCFollowers.bHumanoidInParty to 0; VeronicaREF.SetPlayerTeammate 0; VeronicaREF.RemoveFromFaction FollowerFaction; VeronicaREF.SetActorValue Assistance 0; VeronicaREF.RemovePerk CompanionSuite; Set VeronicaREF.Waiting to 0; Set VNPCFollowers.bVeronicaHired to 0; Set VNPCFollowers.bVeronicaFired to 1; Set VNPCFollowers.bVeronicaL38 to 0; Player.RemovePerk ScribeAssistant; ShowMessage FollowerMessagePerkVeronicaRemove; ShowMessage FollowerMessageLeaveVeronica; VeronicaREF.MoveTo VeronicaHomeMarkerREF; ElseIf (VNPCFollowers.RaulHired == 1) Set VNPCFollowers.bHumanoidInParty to 0; RaulREF.SetPlayerTeammate 0; RaulREF.RemoveFromFaction FollowerFaction; RaulREF.SetActorValue Assistance 0; RaulREF.RemovePerk CompanionSuite; Set RaulREF.Waiting to 0; Set VNPCFollowers.RaulHired to 0; Set VNPCFollowers.RaulFired to 1; Set VNPCFollowers.bRaulL38 to 0; Player.RemovePerk RegularMaintenance; ShowMessage FollowerMessagePerkRaulRemove; ShowMessage FollowerMessageLeaveRaul; ShowMap RaulsShackMarkerREF 1; RaulREF.MoveTo RaulHomeMarker; EndIf ; Fire Rex or ED-E If (VNPCFollowers.RexHired == 1) Set VNPCFollowers.bCritterInParty to 0; RexREF.SetPlayerTeammate 0; RexREF.RemoveFromFaction FollowerFaction; RexREF.SetActorValue Assistance 0; RexREF.RemovePerk CompanionSuite; Set RexREF.Waiting to 0; Set VNPCFollowers.RexHired to 0; Set VNPCFollowers.RexFired to 1; Set VNPCFollowers.bRexL38 to 0; Player.RemovePerk SearchAndMark; ShowMessage FollowerMessagePerkRexRemove; ShowMessage FollowerMessageLeaveRex; RexREF.MoveTo RexHomeMarker; ElseIf (VNPCFollowers.bEDEHired == 1) Set VNPCFollowers.bCritterInParty to 0; EDE1REF.SetPlayerTeammate 0; EDE1REF.RemoveFromFaction FollowerFaction; EDE1REF.SetActorValue Assistance 0; EDE1REF.RemovePerk CompanionSuite; EDE2REF.SetPlayerTeammate 0; EDE2REF.RemoveFromFaction FollowerFaction; EDE2REF.SetActorValue Assistance 0; EDE2REF.RemovePerk CompanionSuite; EDE3REF.SetPlayerTeammate 0; EDE3REF.RemoveFromFaction FollowerFaction; EDE3REF.SetActorValue Assistance 0; EDE3REF.RemovePerk CompanionSuite; Set EDE1REF.Waiting to 0; Set EDE2REF.Waiting to 0; Set EDE3REF.Waiting to 0; Set VNPCFollowers.bEDEHired to 0; Set VNPCFollowers.bEDEFired to 1; Set VNPCFollowers.bEDEL38 to 0; ; Reset ED-E's aggresion in case he got frenzied. EDE1REF.SetActorValue Aggression 0; EDE2REF.SetActorValue Aggression 0; EDE3REF.SetActorValue Aggression 0; Player.RemovePerk EnhancedSensors; ShowMessage FollowerMessagePerkEDERemove; ShowMessage FollowerMessageLeaveEDE; EDE1REF.MoveTo EDEHomeMarker; EDE2Ref.MoveTo EDEHomeMarker; EDE3Ref.MoveTo EDEHomeMarker; EndIf Set VNPCFollowers.bPlayerHasFollower to 0; Set VNPCFollowers.nCurrentFollowers to 0; StopQuest P04CompanionFireQuest; END
874ParkingMeter01SCRIPTscn ParkingMeter01SCRIPT ; Parking Meter expired tab rolls down and needle pops up when activated float timer short on begin onLoad set on to 0 end begin onActivate if on == 0 playgroup Forward 0 set on to 1 endif end
875Patch04Quest00SCRIPTscn Patch04Quest00SCRIPT ; This Script is run whenever a DLC is uninstalled to fix any issues like control locks or radios not being reset. ; CES 4/21/11 Ref rCountryRadio; ;Reference variable to track the Country Radio Station BEGIN GameMode If (MenuMode) ; Wait until we are out of MM Else ; Check to see if controls are locked. If (GetPlayerControlsDisabled == 1) EnablePlayerControls; EndIf ; Enable FNV Radio Stations. RNVTARef.Enable; ;Enable Radio New Vegas RadioBlackMountainTAREF.Enable; ;Enable Black Mountain Radio set rCountryRadio to Patch04CountryRadioREF.GetLinkedRef; ;Country Radio has no ref name, so getlinked rCountryRadio.Enable; ;Disable Country Radio ;Resume NCR/Legion Reaction Quests. StartQuest VEFR01LegionGood2CaesarsFavor; StartQuest VEFR00LegionMix2CaesarsHire; StartQuest VEFR02LegionBad2CaesarsFoe; StartQuest VEFR00NCRMixed2LimitedAccess; StartQuest VEFR02NCRBad2MostWanted; ;Stop this quest from running. StopQuest Patch04Quest00; EndIf END ; GameMode
876PinkertonDoorUnlockSwitchScriptscn PinkertonDoorUnlockSwitchScript ref MyLink short wasActivated ;sets game mode block to run begin OnActivate if IsActionRef player == 1 set myLink to getLinkedRef activate myLink set wasActivated to 1 endif end begin gameMode if wasActivated == 1 if isAnimPlaying == 0 ;has the lever stopped moving? set myLink to getLinkedRef if myLink.getLocked > 0 MyLink.Unlock else MyLink.Lock 4 endif myLink.playsound3d DRSRivetCitySmallUnlock set wasActivated to 0 endif endif end
877PintoScriptscn PintoScript int State begin onActivate if State == 0 && GetActionRef == player player.additem PintoBeanPod 2 set State to 1 playGroup Forward 1 setdestroyed 1 endif end begin onLoad if State == 0 playGroup Backward 1 elseif State == 1 playGroup Forward 1 endif end begin onReset if State == 1 playgroup Backward 1 set State to 0 setdestroyed 0 endif end
878PipboyLightTutorialTriggerScriptscn PipboyLightTutorialTriggerScript short DoOnce ref LinkedTrigger begin OnTriggerEnter player if DoOnce == 0 set LinkedTrigger to GetLinkedRef ShowMessage CGTutorialPipboyLight set DoOnce to 1 Disable MarkForDelete LinkedTrigger.Disable LinkedTrigger.MarkForDelete endif end
879PlayerBedSCRIPTscn PlayerBedSCRIPT short playerSleep begin OnActivate if isActionRef player == 1 ; set playerBed ref variable to me set playerSleep to 1 endif Activate end begin menumode ; player has activated me and is sleeping if playerSleep == 1 && IsPCSleeping == 1 set playerSleep to 2 endif end begin gamemode if playerSleep > 0 if playerSleep == 2 ; player has actually slept in this bed ; give player Well-Rested spell and then clear variable player.CastImmediateOnSelf WellRestedSpell endif ; clear variable set playerSleep to 0 endif end
880PoisonRemovalEffectScriptscn PoisonRemovalEffectScript ; 5.25.10 JES - This will remove all currently extant poison effects in the game (excluding Bleak Venom). ; Note: if more poison effects are added to the game, this script must be updated. begin ScriptEffectStart RemoveSpell BarkScorpionPoison RemoveSpell CazadorPoison RemoveSpell DeathClawPoison RemoveSpell DLC03FeralGhoulPoison RemoveSpell DLC03RadScorpion3Poison RemoveSpell NightstalkerPoison RemoveSpell RadScorpion1Poison RemoveSpell RadScorpion2Poison ShowMessage PoisonRemovalMsg end
881PortaShelter01Scriptscn PortaShelter01Script ; Shelter door opens on activate, stopping idle. Idle resumes when door is closed. float timer short on begin onLoad set on to 0 end begin onActivate if on == 0 if (isAnimPlaying Backward == 0) playgroup Forward 0 set on to 1 endif elseif on == 1 if (isAnimPlaying Forward == 0) playgroup Backward 0 set on to 0 endif endif end begin GameMode if on == 0 && isAnimPlaying == 0 playgroup SpecialIdle 0 set on to 0 endif end
882PowderGangerCamp01SCRIPTscn PowderGangerCamp01SCRIPT begin onActivate ShowMessage PowderGangerCampMsg01 end
883PowderGangerCamp02SCRIPTscn PowderGangerCamp02SCRIPT begin onActivate ShowMessage PowderGangerCampMsg02 end
884PowderGangerCamp03SCRIPTscn PowderGangerCamp03SCRIPT begin onActivate ShowMessage PowderGangerCampMsg03 end
885PowderGangerSnifferScriptscn PowderGangerSnifferScript ; If the player is disguised as a member of The Khans and he's detected by a special ; sniffer character, the character sounds the alarm. ref MyHandler short DoOnce begin OnStartCombat Player if (GetQR DisguiseFactionPulseQuest == 1) && (IsSpellTarget DisguiseFactionPulseActorEffect == 1) sendAssaultAlarm Player PowderGangerFactionNV sendAssaultAlarm Player VPowderGangerSnifferFaction set MyHandler to GetLinkedRef if (GetDistance player < 512) && MyHandler != 0 MyHandler.Say ChallengePlayer endif endif end
886PowderGangOutfitWarningScriptscn PowderGangOutfitWarningScript float fUpdatedNegNCR float fUpdatedPosNCR float fUpdatedNegCL float fUpdatedPosCL float fUpdatedNegBoS float fUpdatedPosBoS float fUpdatedNegGK float fUpdatedPosGK float fUpdatedNegPG float fUpdatedPosPG Begin OnEquip Player ;Check to see if player was wearing faction armor. if DisguiseFactionPulseQuest.bFactionArmorEquipped == 0 ;Set variable to track wearing faction armor set DisguiseFactionPulseQuest.bFactionArmorEquipped to 1 ;Player was not wearing faction armor - so we store their reputation values, we don't need to clear it here, it'll get cleared below ;Store Reputations set DisguiseFactionPulseQuest.fNCRNegReputation to GetReputation RepNVNCR 0 set DisguiseFactionPulseQuest.fNCRPosReputation to GetReputation RepNVNCR 1 set DisguiseFactionPulseQuest.fLegionNegReputation to GetReputation RepNVCaesarsLegion 0 set DisguiseFactionPulseQuest.fLegionPosReputation to GetReputation RepNVCaesarsLegion 1 set DisguiseFactionPulseQuest.fBoSNegReputation to GetReputation RepNVBrotherhood 0 set DisguiseFactionPulseQuest.fBoSPosReputation to GetReputation RepNVBrotherhood 1 set DisguiseFactionPulseQuest.fKhanNegReputation to GetReputation RepNVGreatKhans 0 set DisguiseFactionPulseQuest.fKhanPosReputation to GetReputation RepNVGreatKhans 1 set DisguiseFactionPulseQuest.fPowderNegReputation to GetReputation RepNVPowderGanger 0 set DisguiseFactionPulseQuest.fPowderPosReputation to GetReputation RepNVPowderGanger 1 else ;Get Current Faction Values and add stored values set DisguiseFactionPulseQuest.fNCRNegReputation to GetReputation RepNVNCR 0 + DisguiseFactionPulseQuest.fNCRNegReputation set DisguiseFactionPulseQuest.fNCRPosReputation to GetReputation RepNVNCR 1+ DisguiseFactionPulseQuest.fNCRPosReputation set DisguiseFactionPulseQuest.fLegionNegReputation to GetReputation RepNVCaesarsLegion 0 + DisguiseFactionPulseQuest.fLegionNegReputation set DisguiseFactionPulseQuest.fLegionPosReputation to GetReputation RepNVCaesarsLegion 1 + DisguiseFactionPulseQuest.fLegionPosReputation set DisguiseFactionPulseQuest.fBoSNegReputation to GetReputation RepNVBrotherhood 0 + DisguiseFactionPulseQuest.fBoSNegReputation set DisguiseFactionPulseQuest.fBoSPosReputation to GetReputation RepNVBrotherhood 1 + DisguiseFactionPulseQuest.fBoSPosReputation set DisguiseFactionPulseQuest.fKhanNegReputation to GetReputation RepNVGreatKhans 0 + DisguiseFactionPulseQuest.fKhanNegReputation set DisguiseFactionPulseQuest.fKhanPosReputation to GetReputation RepNVGreatKhans 1 + DisguiseFactionPulseQuest.fKhanPosReputation set DisguiseFactionPulseQuest.fPowderNegReputation to GetReputation RepNVPowderGanger 0 + DisguiseFactionPulseQuest.fPowderNegReputation set DisguiseFactionPulseQuest.fPowderPosReputation to GetReputation RepNVPowderGanger 1 + DisguiseFactionPulseQuest.fPowderPosReputation endif if VFactionArmorTutorial == 0 ShowMessage VFactionOutfitTutorial set VFactionArmorTutorial to 1 endif ShowMessage PowderGangerFactionOutfitWarning StartQuest DisguiseFactionPulseQuest ;Kicks the pulse placing quest setally ArmorPowderGangerFactionNV PlayerFaction 1 1 player.addtofaction ArmorPowderGangerFactionNVEnemy 0 ;Clear Reputations SetReputation RepNVNCR 0 0.0 SetReputation RepNVNCR 1 0.0 SetReputation RepNVCaesarsLegion 0 0.0 SetReputation RepNVCaesarsLegion 1 0.0 SetReputation RepNVBrotherhood 0 0.0 SetReputation RepNVBrotherhood 1 0.0 SetReputation RepNVGreatKhans 0 0.0 SetReputation RepNVGreatKhans 1 0.0 SetReputation RepNVPowderGanger 0 0.0 SetReputation RepNVPowderGanger 1 0.0 end Begin OnUnequip Player if Player.GetEquipped FactionGearNVPowder == 0 SetEnemy ArmorPowderGangerFactionNV PlayerFaction 1 1 player.RemoveFromFaction ArmorPowderGangerFactionNVEnemy ShowMessage PowderGangerFactionOutfitWarningOff ;Restore Factions ;Get Current Values and add stored values set fUpdatedNegNCR to GetReputation RepNVNCR 0 + DisguiseFactionPulseQuest.fNCRNegReputation set fUpdatedPosNCR to GetReputation RepNVNCR 1+ DisguiseFactionPulseQuest.fNCRPosReputation set fUpdatedNegCL to GetReputation RepNVCaesarsLegion 0 + DisguiseFactionPulseQuest.fLegionNegReputation set fUpdatedPosCL to GetReputation RepNVCaesarsLegion 1 + DisguiseFactionPulseQuest.fLegionPosReputation set fUpdatedNegBoS to GetReputation RepNVBrotherhood 0 + DisguiseFactionPulseQuest.fBoSNegReputation set fUpdatedPosBoS to GetReputation RepNVBrotherhood 1 + DisguiseFactionPulseQuest.fBoSPosReputation set fUpdatedNegGK to GetReputation RepNVGreatKhans 0 + DisguiseFactionPulseQuest.fKhanNegReputation set fUpdatedPosGK to GetReputation RepNVGreatKhans 1 + DisguiseFactionPulseQuest.fKhanPosReputation set fUpdatedNegPG to GetReputation RepNVPowderGanger 0 + DisguiseFactionPulseQuest.fPowderNegReputation set fUpdatedPosPG to GetReputation RepNVPowderGanger 1 + DisguiseFactionPulseQuest.fPowderPosReputation endif ;If the player is not wearing ANY faction armor, clear this variable. if (Player.GetEquipped FactionGearNVNCR == 0) && (Player.GetEquipped FactionGearNVCaesar == 0) && (Player.GetEquipped FactionGearNVBrotherhood == 0) && (Player.GetEquipped FactionGearNVGreatKhans == 0) && (Player.GetEquipped FactionGearNVPowder == 0) && (player.GetEquipped VMS18WhiteGloveMask == 0 || (Player.GetEquipped OutfitFormalWear == 0 && player.GetEquipped ArmorWhiteGloveSociety == 0)) ;Clear Wearing Faction Armor Variable set DisguiseFactionPulseQuest.bFactionArmorEquipped to 0 ;Set Reputation Values to Updated SetReputation RepNVNCR 0 fUpdatedNegNCR SetReputation RepNVNCR 1 fUpdatedPosNCR SetReputation RepNVCaesarsLegion 0 fUpdatedNegCL SetReputation RepNVCaesarsLegion 1 fUpdatedPosCL SetReputation RepNVBrotherhood 0 fUpdatedNegBoS SetReputation RepNVBrotherhood 1 fUpdatedPosBoS SetReputation RepNVGreatKhans 0 fUpdatedNegGK SetReputation RepNVGreatKhans 1 fUpdatedPosGK SetReputation RepNVPowderGanger 0 fUpdatedNegPG SetReputation RepNVPowderGanger 1 fUpdatedPosPG endif end Begin OnAdd PrimmDeputyRef ShowMessage CompanionFactionArmorMsg DropMe End ;Restriction on Companions Begin OnAdd CraigBooneREF ShowMessage CompanionFactionArmorMsg DropMe End Begin OnAdd RoseofSharonCassidyREF ShowMessage CompanionFactionArmorMsg DropMe End Begin OnAdd VeronicaREF ShowMessage CompanionFactionArmorMsg DropMe End Begin OnAdd LilyREF ShowMessage CompanionFactionArmorMsg DropMe End Begin OnAdd RaulREF ShowMessage CompanionFactionArmorMsg DropMe End Begin OnAdd ArcadeREF ShowMessage CompanionFactionArmorMsg DropMe End Begin OnAdd EDE1REF ShowMessage CompanionFactionArmorMsg DropMe End Begin OnAdd EDE2REF ShowMessage CompanionFactionArmorMsg DropMe End Begin OnAdd EDE3REF ShowMessage CompanionFactionArmorMsg DropMe End Begin OnAdd RexREF ShowMessage CompanionFactionArmorMsg DropMe End
887PowderGangRanchNoteScriptscn PowderGangRanchNoteScript begin onActivate ShowMessage BoulderCityMsg end
888PressDemoQuestScriptscn PressDemoQuestScript short GoodspringsComplete short PrimmComplete short NovacComplete short TheTopsComplete short nRaidersKilled ; 3 total int BlackMountainComplete short ForlornHopeToHelios float timer begin GameMode if GoodspringsComplete == 1 ; Warping player to Primm if timer < 1 set timer to timer + GetSecondsPassed else set GoodspringsComplete to 2 Set GameHour to 14 player.moveto PressDemoPrimmMarker SetStage PressDemoQuest 20 player.removeallitems player.setlevel 6 player.AddItemHealthPercent ArmorLeatherReinforced 1 0.90 1 player.AddItemHealthPercent WeapNVGrenadeLauncher 1 0.85 1 player.AddItem Ammo40mmGrenade 50 player.AddItemHealthPercent WeapNVCaravanShotgun 1 0.85 1 player.AddItem Ammo20Ga 100 player.AddItemHealthPercent WeapNVCowboyRepeater 1 0.85 1 player.AddItem ModNVCowboyRepeaterCustomAction 1 player.AddItem ModNVCowboyRepeaterLongTube 1 player.AddItem Ammo357Magnum 100 endif elseif PrimmComplete == 1 ; Warp player to Novac if timer < 1 set timer to timer + GetSecondsPassed else set PrimmComplete to 2 Set GameHour to 7 player.moveto PressDemoNovacMarker player.removeallitems player.AddItemHealthPercent ArmorMetalReinforced 1 0.90 1 player.AddItemHealthPercent ArmorFiendHelmet01 1 0.90 1 player.AddItemHealthPercent WeapNVHuntingShotgun 1 0.85 1 player.AddItem Ammo12Ga 100 MannyVargasREF.ResetAI CraigBooneREF.ResetAI JeannieMayCrawfordREF.ResetAI; CliffBriscoeREF.REsetAI; set timer to 0 endif elseif NovacComplete == 1 ; Warp player to Black Mountain if timer < 1 set timer to timer + GetSecondsPassed else set NovacComplete to 2 Set GameHour to 18 player.moveto BlackMountainStartMarker player.removeallitems player.setlevel 14 player.setav strength 6 player.setav perception 5 player.setav endurance 5 player.setav charisma 7 player.setav intelligence 7 player.setav agility 5 player.setav luck 5 player.setav speech 75 player.setav science 75 player.setav explosives 65 player.setav repair 70 player.setav guns 70 player.setav meleeweapons 70 player.setav energyweapons 30 player.addperk blackwidow player.addperk swiftlearner player.addperk childatheart player.addperk educated player.addperk entomologist player.addperk commando player.addperk nerdrage player.addperk roboticsexpert player.addperk bettercriticals player.AddItemHealthPercent WeapNVAntiMaterielRifle 1 0.85 1 player.AddItemHealthPercent WeapNVPlasmaCaster 1 0.85 1 player.AddItem Ammo50MG 100 player.AddItem AmmoMicroFusionCell 100 player.AddItem WeapNVC4PlasticExplosive 5 player.AddItem WeapNVDetonator 1 player.additemhealthpercent weapminigun 1 0.85 1 player.additemhealthpercent weapnvgrenademachinegun 1 0.88 1 player.additemhealthpercent weapnvmarksmancarbineunique 1 0.80 1 player.additemhealthpercent WeapNVLightMachineGun 1 0.85 1 player.additemhealthpercent armorcombat 1 0.90 1 player.additemhealthpercent armorcombathelmet 1 0.80 1 player.additemhealthpercent ArmorNVNCRRangerPatrol 1 0.90 1 player.additem modnvminigunhighspeedmotor 1 1 player.additem modnvminigundampedsubframe 1 1 player.additem modnvgrenademachinegunhskit 1 1 player.additem magazinenvguns 2 1 player.additem magazinenvexplosives 2 1 player.additem magazinenvscience 2 1 player.additem magazinenvmedicine 2 1 player.additem magazinenvspeech 2 1 player.additem weapnvdynamite 5 1 player.additem weapgrenadefrag 2 1 player.additem stimpak 30 1 player.additem nvdoctorbag 15 1 player.additem radaway 5 1 player.additem waterpurified 8 1 player.additem radx 5 1 player.additem ammo5mm 2500 1 player.additem ammo556mm 1000 1 player.additem ammo25mmgrenade 300 1 player.additem StealthBoy 10 1 set timer to 0 endif elseif BlackMountainComplete == 1 ; Warp player to HELIOS One if timer < 1 set timer to timer + GetSecondsPassed else ; Remove Raul so he doesn't jump with you set VNPCFollowers.RaulHired to 0 set VNPCFollowers.RaulFired to 1 set VNPCFollowers.nCurrentFollowers to VNPCFollowers.nCurrentFollowers - 1 if VNPCFollowers.nCurrentFollowers == 0 set VNPCFollowers.bPlayerHasFollower to 0 endif RaulREF.SetPlayerTeammate 0 RaulREF.ResetAI ; Run Helios bat file contents set BlackMountainComplete to 2 player.MoveTo PressDemoHeliosONEStartMarker Set GameHour to 11 imod FadeInFromBlack4sISFX player.removeallitems player.setlevel 1 player.setav barter 10 player.setav energyweapons 10 player.setav explosives 10 player.setav lockpick 10 player.setav medicine 10 player.setav meleeweapons 10 player.setav repair 10 player.setav science 10 player.setav guns 10 player.setav sneak 10 player.setav speech 10 player.setav unarmed 10 player.ResetHealth player.setlevel 10 ; Add decent faction reputation with both the NCR and BoS AddReputationExact RepNVNCR 1 50.0 AddReputationExact RepNVBrotherhood 1 20.0 player.setav strength 6 player.setav perception 5 player.setav endurance 5 player.setav charisma 7 player.setav intelligence 7 player.setav agility 5 player.setav luck 5 player.setav speech 75 player.setav science 75 player.setav explosives 65 player.setav repair 70 player.setav guns 70 player.setav meleeweapons 70 player.setav energyweapons 30 player.addperk blackwidow player.addperk swiftlearner player.addperk childatheart player.addperk educated player.addperk entomologist player.addperk commando player.addperk nerdrage player.addperk roboticsexpert player.addperk bettercriticals player.additemhealthpercent weapnvservicerifle 1 0.85 1 player.additemhealthpercent weapnvtrailcarbine 1 0.77 1 player.additemhealthpercent weapnvleveractionshotgun 1 0.88 1 ; No such gun ;player.additemhealthpercent weapnv357magnumunique 1 0.95 player.additemhealthpercent armormetal 1 0.90 1 player.additemhealthpercent armorcombathelmet 1 0.80 1 player.additem modnvtrailcarbinescope 1 1 player.additem modnvgrenademachinegunhskit 1 1 player.additem magazinenvguns 2 1 player.additem magazinenvexplosives 2 1 player.additem magazinenvscience 2 1 player.additem magazinenvmedicine 2 1 player.additem magazinenvspeech 2 1 player.additem weapnvdynamite 5 1 player.additem weapgrenadefrag 2 1 player.additem stimpak 30 1 player.additem nvdoctorbag 15 1 player.additem radaway 5 1 player.additem waterpurified 8 1 player.additem radx 5 1 player.additem ammo44magnum 350 1 player.additem ammo556mm 1000 1 player.additem ammo357magnum 300 1 player.additem ammo20ga 320 1 set timer to 0 endif elseif TheTopsComplete == 1 if timer < 1 set timer to timer + GetSecondsPassed else set TheTopsComplete to 2 Set GameHour to 7 CraigBooneREF.AddToFaction FollowerFaction 1 CraigBooneREF.SetPlayerTeammate 1 CraigBooneREF.SetFactionRank TeammateFaction 1 CraigBooneREF.SetIgnoreFriendlyHits 1; set VNPCFollowers.bPlayerHasFollower to 1 set VNPCFollowers.bBooneHired to 1 set VNPCFollowers.bBooneAvailable to 1 Player.AddToFaction VBooneFaction 0; set VNPCFollowers.nCurrentFollowers to (VNPCFollowers.nCurrentFollowers + 1) set VBooneCLRepInitial to GetReputationThreshold RepNVCaesarsLegion 1 CraigBooneREF.EquipItem WeapBooneSniperRifle; set CraigBooneREF.FollowerSwitchAggressive to 1 Player.MoveTo VNelsonBattlefieldMarker4 CraigBooneREF.MoveTo VNelsonBattlefieldMarker3 ;player.moveto PressDemoNovacMarker ;player.removeallitems ;player.setlevel 6 ;player.additemhealthpercent ArmorLeatherReinforced 1 0.35 1 player.additemhealthpercent WeapNVTrailCarbine 1 0.40 1 player.additemhealthpercent WeapNVPlasmaDefender 1 0.45 1 player.additemhealthpercent WeapNVPlasmaCaster 1 0.40 1 player.additemhealthpercent WeapNVGrenadeLauncher 1 0.45 1 player.additemhealthpercent WeapNVMultiplasRifle 1 0.50 1 player.additemhealthpercent weapnvlightmachinegun 1 0.60 1 player.additemhealthpercent WeapNVLeverActionShotgun 1 0.30 1 player.additemhealthpercent WeapNVAntiMaterielRifle 1 0.40 1 player.additemhealthpercent WeapBladedGauntlet 1 0.80 1 player.additemhealthpercent WeapNV9Iron 1 0.40 1 player.additem ammo556mm 350 1 player.additem Ammo44Magnum 100 1 player.additem Ammo44MagnumSWCHandLoad 50 1 player.additem Ammo308 100 1 player.additem Ammo50MG 50 1 player.additem Ammo10mm 100 1 player.additem AmmoMicroFusionCell 200 1 player.additem AmmoSmallEnergyCell 200 1 player.additem Ammo20Ga 70 1 player.additem Ammo20GaSlug 20 1 player.additem Ammo40mmGrenade 20 1 player.additem Ammo40mmGrenadeIncendiary 20 player.additem WeapNVC4PlasticExplosive 5 1 player.additem WeapNVDetonator 1 1 player.additem WeapNVGrenadeIncendiary 6 1 player.additem Caps001 1800 1 ;MannyVargasREF.ResetAI ;CraigBooneREF.ResetAI ;JeannieMayCrawfordREF.ResetAI; ;CliffBriscoeREF.REsetAI; set timer to 0 endif elseif ForlornHopeToHelios == 1 if timer < 1 set timer to timer + GetSecondsPassed else set ForlornHopeToHelios to 2 Player.MoveTo VPressDemoHelios1MarkerA CraigBooneREF.MoveTo VPressDemoHelios1MarkerB set timer to 0 endif endif if BlackMountainComplete == 0 if TabithaREF.GetDead == 1 && BMTabithaFightNightkin02REF.GetDead == 1 && BMTabithaFightNightkin03REF.GetDead == 1 && BMTabithaFightNightkin04REF.GetDead == 1 && BMTabithaFightMutant01REF.GetDead == 1 && BMTabithaFightMutant02REF.GetDead == 1 && BMTabithaFightMutant03REF.GetDead == 1 Set BlackMountainComplete to 1 imod FadeToBlack5sISFX endif endif end
889PressDemoRaiderScriptscn PressDemoRaiderScript begin OnDeath set PressDemoQuest.nRaidersKilled to (PressDemoQuest.nRaidersKilled + 1) if (PressDemoQuest.nRaidersKilled == 3) ApplyImageSpaceModifier FadeToBlackAndBackISFX set PressDemoQuest.PrimmComplete to 1 SetObjectiveDisplayed PressDemoQuest 20 0 endif end
890PricklyPearCactusScriptscn PricklyPearCactusScript int State begin onActivate if State == 0 && GetActionRef == player player.additem PricklyPearCactusFruit 2 set State to 1 playGroup Forward 1 setdestroyed 1 endif end begin onLoad if State == 0 playGroup Backward 1 elseif State == 1 playGroup Forward 1 endif end begin onReset if State == 1 playgroup Backward 1 set State to 0 setdestroyed 0 endif end
891Primer50MGAddScriptscn Primer50MGAddScript int killme BEGIN OnAdd Player Set killme to 1 END begin GameMode int countofstuff; int numberToAdd; if (killme == 1) ; set countofstuff to (player.GetItemCount BoxPrimers50MG) ; set numberToAdd to countofstuff*25 Player.AddItem Primer50MG 25 RemoveMe endif end
892PrimerLargePistolAddScriptscn PrimerLargePistolAddScript int killme BEGIN OnAdd Player set killme to 1 END begin GameMode ; int countofstuff; ; int numberToAdd; if (killme == 1) ; set countofstuff to (player.GetItemCount BoxPrimersLargePistol) ; set numberToAdd to countofstuff*25 Player.AddItem PrimerLargePistol 25 RemoveMe endif end
893PrimerLargeRifleAddScriptscn PrimerLargeRifleAddScript int killme BEGIN OnAdd Player set killme to 1 END begin GameMode ; int countofstuff; ; int numberToAdd; if (killme == 1) ; set countofstuff to (player.GetItemCount BoxPrimersLargeRifle) ; set numberToAdd to countofstuff*25; Player.AddItem PrimerLargeRifle 25 RemoveMe endif end
894PrimerShotshellAddScriptscn PrimerShotshellAddScript int killme BEGIN OnAdd Player ; int countofstuff; ; int numberToAdd; ; set countofstuff to (player.GetItemCount BoxPrimersShotshell) ; set numberToAdd to countofstuff*25; set killme to 1 END begin GameMode if (killme == 1) Player.AddItem PrimerShotshell 25 RemoveMe endif end
895PrimerSmallPistolAddScriptscn PrimerSmallPistolAddScript int killme BEGIN OnAdd Player ; int countofstuff; ; int numberToAdd; ; set countofstuff to (player.GetItemCount BoxPrimersSmallPistol) ; set numberToAdd to countofstuff*25 set killme to 1 END begin GameMode if (killme == 1) Player.AddItem PrimerSmallPistol 25 RemoveMe endif end
896PrimerSmallRifleAddScriptscn PrimerSmallRifleAddScript int killme BEGIN OnAdd Player ; int countofstuff; ; set countofstuff to (player.GetItemCount BoxPrimersSmallRifle) set killme to 1 END begin GameMode if (killme == 1) Player.AddItem PrimerSmallRifle 25 RemoveMe endif end
897PrimmCorporalHayesSCRIPTscn PrimmCorporalHayesSCRIPT begin OnDeath showmessage PrimmHayesDead if (GetObjectiveDisplayed VMS04 45) && (GetObjectiveCompleted VMS04 45 == 0) SetObjectiveDisplayed VMS04 45 0 endif if (GetQuestRunning VMS04) && (QJMelissaRef.GetDead) SetStage VMS04 110 endif if (GetObjectiveDisplayed VMS02 36 == 1) && (GetObjectiveCompleted VMS02 36 == 0) SetObjectiveDisplayed VMS02 36 0 endif if GetObjectiveDisplayed nvPrimmDeputyConv 34 == 1 setobjectivedisplayed nvPrimmDeputyConv 34 0 setobjectivedisplayed nvPrimmDeputyConv 37 0 endif end
898PrimmDeputyQuestScriptscn PrimmDeputyQuestScript int BeagleCaptured ; 0 = captured, 1 = freed and leaving the building, 2 = free and in Primm, 3 = player agreed to find a sheriff ; 4 = sheriff found, 5 = new sheriff died, 6 = new sheriff died & new sheriff in place int NCRSheriffState ; 0 = no NCR sheriff, 1 = NCR Sheriff, 2 = NCR Sheriff Dead int MeyerSheriffState ; 0 = no Meyer Sheriff, 1 = Meyers Sheriff, 2 = Meyers Sheriff Dead int McGeeConversation ; 0 = Haven't spoken to McGee, 1 = McGee agrees to be sheriff int HayesConversation ; 0 = Haven't spoken to Hayes; 1 = Have spoken to Hayes; 2 = Have spoken to Hayes about Primm int BisonSteveRaiders ; 0 = Raiders still alive, 1 = PC killed raiders, 2 = New sheriff killed raiders int DeputyHostage ; 0 = PC doesn't know deputy is hostage; 1 = player told deputy is hostage int NCRSheriffCon ; Increments as McGee and Hayes have their conversation int HayesToMcGee ; 1 = Hayes finished his conversation with McGee int MeyersSpeech ; Increments for Meyer's speech int EddieConvinced ; 1 = Eddie convinced to let Meyers sheriff Primm in peace ref SpeakingCitizen ; The current ref that the player is talking to int DeadCitizenCount ; The number of citizens that have died in Primm int PetitionActive ; 1 = Petition Active, 2 = Petition has 5 signatures, 3 = Petition given to Hayes int NoteNumber ; int OnceOnly ; int TalkVariable ; This is set to 1 at the beginning of the conversation and to 0 after the NPC sets itself as already spoken int BeagleFollow ; 0 Unfollow, 1 Follow 2 done following int PrimmSlimSheriffState ; 0 = no Primm Slim Sheriff, 1 = Primm Slim Sheriff, 2 = PrimmSlim Sheriff Dead int NCRPetition ; 0 = Player doesn't have NCR Petition, 1 = Player has incomplete petition, 2 = player has completed petition int PrimmState ; 1 = McGee is Shariff int iBeagleDead ; 1 = Beagle Died int iTownState ; 0 = Unaltered, 1 = Town freed, 2 = town wiped out int iNashCasualTalk ; Whether Nash will talk about casual type stuff 0 = no 1 = yes int bNashBullied ; Bullied Nash into giving the player information about the chip int bDeputyFreed ; Deputy Freed int iPrimmResidentCount ; Number of residents in Primm int iPrimmPlayerDisguise ; 1 = The player approached Beagle dressed as a powder ganger int iTeleportOnce begin GameMode If getobjectivedisplayed nvprimmdeputyconv 31 == 1 && NCRCFEddieRef.GetDead Setobjectivecompleted nvprimmdeputyconv 31 1 Setobjectivedisplayed nvprimmdeputyconv 33 1 endif if GetDeadCount PrimmDeputy > 0 && iBeagleDead == 0 set iBeagleDead to 1 endif if iBeagleDead == 1 && getStage nVPrimmDeputyConv < 26 set iBeagleDead to 2 endif if iBeagleDead == 2 && (getObjectiveDisplayed nvPrimmDeputyConv 10 == 1 || getObjectiveDisplayed nvPrimmDeputyConv 15 == 1) setobjectivedisplayed nVPrimmDeputyConv 21 1 setobjectivedisplayed nVPrimmDeputyConv 10 0 setobjectivedisplayed nVPrimmDeputyConv 15 0 endif if (GetStage nvPrimmDeputyConv < 100) if (NCRCFMeyersREF.GetDead && (PrimmHayesREF.GetDead || PrimmMcGeeREF.GetDead || vMOMajorKnightREF.GetDead) && (PrimmSlimREF.GetDead || GetObjectiveDisplayed nvPrimmDeputyConv 25 == 0)) || PrimmJohnsonNashRef.GetDead setstage nvPrimmDeputyConv 100 endif if vMOMajorKnightREF.GetDead == 1 && (GetObjectiveDisplayed nvPrimmDeputyConv 25 == 0 || PrimmSlimREF.GetDead) && (GetObjectiveCompleted nvPrimmDeputyConv 37 == 0 || GetObjectiveCompleted nvPrimmDeputyConv 36 == 0) setstage nvPRimmDeputyConv 100 endif if (PrimmHayesREF.GetDead || PrimmMcGeeREF.GetDead || vMOMajorKnightREF.GetDead) && NCRCFMeyersREF.GetDead && GetObjectiveDisplayed nvPrimmDeputyConv 25 == 1 setobjectivedisplayed nvPrimmDeputyConv 37 0 setobjectivedisplayed nvPrimmDeputyConv 36 0 setobjectivedisplayed nvPrimmDeputyConv 30 0 setobjectivedisplayed nvPrimmDeputyConv 34 0 setobjectivedisplayed nvPrimmDeputyConv 20 0 endif endif if PrimmDeputyRef.GetIsCurrentPackage PrimmDeputyLeaveBison && Player.GetInCell VikkiAndVance && PrimmDeputyRef.GetInSameCell Player == 0 && iTeleportOnce == 0 primmDeputyRef.MoveToFade PrimmDeputyExitMarker set iTeleportOnce to 1 endif if VFreeformNCRCF.bMeyersBecameSheriff && NCRCFMeyersRef.GetInCell NCRPrisonVisitorsCenter && NCRCFMeyersRef.GetInSameCell Player == 0 NCRCFMeyersRef.MoveTo MeyersPrimmArrivalMarker endif ; JSH 05/06/11 - Clear out Major Knight objective if he's dead. If ( vMOMajorKnightREF.GetDead == 1 ) && ( GetObjectiveDisplayed nVPrimmDeputyConv 34 == 1 ) SetObjectiveDisplayed nVPrimmDeputyConv 34 0; EndIf end
899PrimmDeputyScriptscn PrimmDeputyScript ; This on activate block as well as the onDeath blocks are in both PrimmDeputyScript as well as PrimmResidentScript ; Be sure to change both for the sheriff quest to function int doOnce int GMOnce ref SpeakingCitizen int NoteNum int Waiting int iFirstSpawn begin OnLoad if iFirstSpawn == 0 set nVPrimmDeputyConv.iPrimmResidentCount to nVPrimmDeputyConv.iPrimmResidentCount +1 set iFirstSpawn to 1 setrestrained 1 endif end ;begin onActivate ; if getActionRef == player && nVPrimmDeputyConv.PetitionActive == 1 ; set nVPrimmDeputyConv.SpeakingCitizen to getSelf ; endif ; Activate ;end begin GameMode if GetInFaction PrimmPetitionFaction == 0 && GMOnce == 0 set GMOnce to 1 removenote PrimmSheriffPetition0 removenote PrimmSheriffPetition1 removenote PrimmSheriffPetition2 removenote PrimmSheriffPetition3 removenote PrimmSheriffPetition4 set NoteNum to nvPrimmDeputyConv.NoteNumber if NoteNum == 0 addnote PrimmSheriffPetition1 set nvPrimmDeputyConv.NoteNumber to 1 elseif NoteNum == 1 addnote PrimmSheriffPetition2 set nvPrimmDeputyConv.NoteNumber to 2 elseif NoteNum == 2 addnote PrimmSheriffPetition3 set nvPrimmDeputyConv.NoteNumber to 3 elseif NoteNum == 3 addnote PrimmSheriffPetition4 set nvPrimmDeputyConv.NoteNumber to 4 elseif NoteNum == 4 addnote PrimmSheriffPetition5 set nvPrimmDeputyConv.NoteNumber to 5 set nVPrimmDeputyConv.PetitionActive to 2 setobjectivedisplayed nvPrimmDeputyConv 47 1 setobjectivecompleted nvPrimmDeputyConv 45 1 endif endif end begin onLoad if nVPrimmDeputyConv.BeagleCaptured == 2 && doOnce == 0 PrimmDeputyRef.RemoveFromFaction RaiderFaction set doOnce to 1 endif end begin onDeath set nVPrimmDeputyConv.DeadCitizenCount to nVPrimmDeputyConv.DeadCitizenCount + 1 if nVPrimmDeputyConv.iPrimmResidentCount == nVPrimmDeputyConv.DeadCitizenCount set VStoryEventPrimm to 2 endif if GetObjectiveCompleted VMQ01 34 == 0 && GetObjectiveDisplayed VMQ01 40 == 0 && VMQ01.bPrimmClosed == 0 setobjectivedisplayed VMQ01 34 0 setobjectivedisplayed VMQ01 36 1 endif end
900PrimmLanceCorporalMcGeeSCRIPTscn PrimmLanceCorporalMcGeeSCRIPT begin OnDeath showmessage PrimmMcGeeDead end
901PrimmMuseumPlaqueScriptscn PrimmMuseumPlaqueScript begin onActivate showmessage PrimmMuseumPlaqueMessage if nVPrimmVanceGun.VanceGunCase == 0 set nVPrimmVanceGun.VanceGunCase to 1 addtopic PrimmSlimGun endif end
902PrimmPowderGangerScriptscn PrimmPowderGangerScript begin OnLoad if GetDead == 1 disable elseif nvPrimmDeputyConv.iTownState == 1 kill endif end
903PrimmResidentScriptscn PrimmResidentScript ; This on activate block as well as the onDeath blocks are in both PrimmDeputyScript as well as PrimmResidentScript ; Be sure to change both for the sheriff quest to function int onceonly int GMOnce ref SpeakingCitizen int NoteNum int iFirstSpawn begin OnLoad if iFirstSpawn == 0 set nVPrimmDeputyConv.iPrimmResidentCount to nVPrimmDeputyConv.iPrimmResidentCount +1 set iFirstSpawn to 1 endif end begin onActivate if getActionRef == player && nVPrimmDeputyConv.PetitionActive == 1 && OnceOnly == 0 set SpeakingCitizen to GetSelf set nVPrimmDeputyConv.SpeakingCitizen to SpeakingCitizen set OnceOnly to 1 endif Activate end begin GameMode if GetInFaction PrimmPetitionFaction == 0 && GMOnce == 0 set GMOnce to 1 removenote PrimmSheriffPetition0 removenote PrimmSheriffPetition1 removenote PrimmSheriffPetition2 removenote PrimmSheriffPetition3 removenote PrimmSheriffPetition4 set NoteNum to nvPrimmDeputyConv.NoteNumber if NoteNum == 0 addnote PrimmSheriffPetition1 set nvPrimmDeputyConv.NoteNumber to 1 elseif NoteNum == 1 addnote PrimmSheriffPetition2 set nvPrimmDeputyConv.NoteNumber to 2 elseif NoteNum == 2 addnote PrimmSheriffPetition3 set nvPrimmDeputyConv.NoteNumber to 3 elseif NoteNum == 3 addnote PrimmSheriffPetition4 set nvPrimmDeputyConv.NoteNumber to 4 elseif NoteNum == 4 addnote PrimmSheriffPetition5 set nvPrimmDeputyConv.NoteNumber to 5 set nVPrimmDeputyConv.PetitionActive to 2 setobjectivedisplayed nvPrimmDeputyConv 47 1 setobjectivecompleted nvPrimmDeputyConv 45 1 endif endif end begin onDeath set nVPrimmDeputyConv.DeadCitizenCount to nVPrimmDeputyConv.DeadCitizenCount + 1 if nVPrimmDeputyConv.iPrimmResidentCount == nVPrimmDeputyConv.DeadCitizenCount set VStoryEventPrimm to 2 endif if GetIsId PrimmJohnsonNash showmessage PrimmNashDead if GetObjectiveDisplayed VMQ01 34 == 0 if GetObjectiveDisplayed VMQ01 36 == 0 && VMQ01.bPrimmClosed == 0 setObjectiveDisplayed VMQ01 34 1 endif if GetObjectiveCompleted VMQ01 30 == 0 setobjectiveCompleted VMQ01 30 1 endif endif endif end
904PrimmSergeantLeeScriptscn PrimmSergeantLeeScript begin OnReset if GetQuestCompleted VMS02 Disable MarkForDelete endif end begin OnDeath if (GetObjectiveDisplayed VMS02 40 == 1) && (GetObjectiveCompleted VMS02 40 == 0) SetObjectiveDisplayed VMS02 40 0 SetStage VMS02 110 endif end
905PrimmSlimSCRIPTscn PrimmSlimSCRIPT begin OnDeath showmessage PrimmSlimDead setobjectivedisplayed nVPrimmDeputyConv 25 0 end
906PrimmVanceGunScriptscn PrimmVanceGunScript int VanceGunCase ; 0 = the empty display case hasn't been found, 1 = case found, 2 = Hacked File Found, 3 = Quest complete int SammyPauline ; 0 = they have the gun, 1 = she wants player to take gun, 2 = safe unlocked short bMetPrimmSlim;
907ProtectronPod01Scriptscn ProtectronPod01Script ref myActionRef Begin OnActivate if IsActionRef player == 0 set myActionRef to getActionRef if myActionRef.getav variable01 == 0 setopenstate 0 else setopenstate 1 endif endif End
908PurityGrateSCRIPTscn PurityGrateSCRIPT ref myActor begin onActivate set myActor to getActionRef if myActor.getInFaction supermutantFaction == 1 ; then do nothing! else activate ; everyone else allowed through endif end
909QJChemsScriptscn QJChemsScript begin OnAdd player SetStage VMS04 40 end
910QJDeathclawAlphaMaleScriptscn QJDeathclawAlphaMaleScript begin OnCombatEnd ResetAI end begin OnDeath set VFreeformSloan.bDeathclawAlphaDead to 1 if VFreeformSloan.bDeathclawMotherDead set VFreeformSloan.bDeathclawLeadersDead to 1 BoulderCityWorkerParent.Enable endif end
911QJDeathclawBabyScriptscn QJDeathclawBabyScript begin OnCombatEnd ResetAI end begin OnDeath if VFreeformQuarryJunction.bDeathclawMotherEnraged == 0 && QJDeathclawMotherRef.GetDead == 0 set VFreeformQuarryJunction.bDeathclawMotherEnraged to 1 ;ShowWarning "Baby Deathclaw killed!" ShowMessage QJDeathclawMotherMessage ;QJDeathclawMotherRef.Say Murder 1 QJDeathclawMother ;00022A7D ;QJDeathclawMotherRef.PlaySound VOCHaroldScream2D QJDeathclawMotherRef.AddPerk PsychoPerk QJDeathclawMotherRef.AddPerk AdamantiumSkeleton QJDeathclawMotherRef.AddPerk BetterCriticals endif end
912QJDeathclawMotherScriptscn QJDeathclawMotherScript begin OnCombatEnd ResetAI end begin OnDeath set VFreeformSloan.bDeathclawMotherDead to 1 if VFreeformSloan.bDeathclawAlphaDead set VFreeformSloan.bDeathclawLeadersDead to 1 BoulderCityWorkerParent.Enable endif end
913QJDeathclawScriptscn QJDeathclawScript begin OnCombatEnd ResetAI end
914QJGeneratorScriptscn QJGeneratorScript short Button BEGIN OnActivate if IsActionRef player ShowMessage QJGeneratorActiveMsg endif END BEGIN MenuMode 1001 set Button to GetButtonPressed ; Player repairs the generator if ( Button == 1 ) ShowMessage QJGeneratorRepairedMsg RemoveNote VFreeformQJChompsNote RewardXP 25 Set VFreeformSloan.QJGeneratorRepaired to 1 QJGeneratorSoundRef.Enable QJGeneratorPowerMarker.Enable QJMessHallLight01Ref.Enable QJMessHallLightFixtureONRef.Enable QJMessHallLightFixtureOFFRef.Disable QJStorageLightRef.Enable QJStorageLightFixtureONRef.Enable QJStorageLightFixtureOFFRef.Disable QJBarracksLightRef.Enable QJBarracksLightFixtureONRef.Enable QJBarracksLightFixtureOFFRef.Disable SetDestroyed 1 endif if ( Button == 2 ) RemoveNote VFreeformQJChompsNote SetDestroyed 1 player.AddItem SpareParts 5 player.AddItem Conductor 1 player.AddItem SensorModule 1 endif endif END
915QJHawkinsScriptscn QJHawkinsScript begin OnReset if VFreeformQuarryJunction.bHawkinsLeaving == 1 QJHawkinsRef.Disable QJHawkinsRef.MarkForDelete endif end
916QJJasWilkinsScriptscn QJJasWilkinsScript begin OnDeath if ( GetHasNote VFreeformQJJasNote ) RemoveNote VFreeformQJJasNote endif end begin OnReset if ( VFreeformQuarryJunction.bJasLeaving == 1 ) QJJasWilkinsRef.Disable endif end
917QJJasWilkinsTriggerScriptscn QJJasWilkinsTriggerScript begin OnTriggerEnter QJJasWilkinsRef ; if Jas is leaving QJ ; make her disappear when she hits the trigger end
918QJMelissaScriptscn QJMelissaScript short DoOnce begin OnReset ; Melissa goes back to Red Rock once she's got her chemicals. if (DoOnce == 0) && ( GetQuestCompleted VMS04 ) QJGreatKhanAAMRef.Disable QJGreatKhanHMRef.Disable ;QJMelissaRef.Disable set DoOnce to 1 endif end begin OnDeath if (GetStageDone VMS04 40 == 0) SetStage VMS04 110 endif if (GetStageDone VMS04 40) && (GetStageDone VMS04 100 == 0) ; Player has started VMS04, but has not yet completed it. if (GetObjectiveDisplayed VMS04 40) ; Player has objective to return to Melissa with chemical supplies SetObjectiveDisplayed VMS04 40 0 ; Hide the objective since it's no longer valid. endif if (GetObjectiveDisplayed VMS04 45 == 1) && (GetObjectiveCompleted VMS04 45 == 0) SetObjectiveDisplayed VMS04 45 0 SetObjectiveDisplayed VMS04 46 1 endif if PrimmHayesREF.GetDead SetStage VMS04 110 endif endif if GetObjectiveCompleted VMS45 40 == 0 SetStage VMS45 60 endif end
919QJSnufflesCrippleTriggerScriptScn QJSnufflesCrippleTriggerScript ; Moved code from VFreeformQuarryJunction to this OnLoad block so as to lighten GameMode use. Part of a game-wide revision of scripts - Jorge 03/14/10 Short DoOnce Begin OnLoad If DoOnce != 1 QJSnufflesRef.SetActorValue LeftMobilityCondition 0 Set VFreeformQuarryJunction.bCrippleSnuffles to 1 Set DoOnce to 1 Endif End
920QJSuitCaseScriptscn QJSuitCaseScript short bDoOnce begin OnActivate if bDoOnce == 0 set VFreeformQuarryJunction.bOpenedSuitcase to 1 set bDoOnce to 1 endif if GetStageDone VMS04 10 SetStage VMS04 20 SetObjectiveDisplayed VMS04 20 1 endif Activate end
921RadPackSCRIPTscn RadPackSCRIPT short OnStage short DoOnce BEGIN OnDeath set VMSTopsPerformances.RadPack to VMSTopsPerformances.RadPack - 1 END BEGIN OnHit Player if OnStage == 1 RadPackRadioREF.SetBroadcastState 0 set VMSTopsPerformances.RadPackOnStage to 0 TommyToriniREF.PlayIdle LooseDefensiveIdleA TommyToriniREF.evp TommyToriniREF.setrestrained 0 set TommyToriniREF.OnStage to 0 RadPack1REF.PlayIdle LooseDefensiveIdleA RadPack1REF.evp RadPack1REF.setrestrained 0 set RadPack1REF.OnStage to 0 RadPack2REF.PlayIdle LooseDefensiveIdleA RadPack2REF.evp RadPack2REF.setrestrained 0 set RadPack2REF.OnStage to 0 RadPack3REF.PlayIdle LooseDefensiveIdleA RadPack3REF.evp RadPack3REF.setrestrained 0 set RadPack3REF.OnStage to 0 else set VMSTopsPerformances.RadPackOnStage to 0 endif END BEGIN OnStartCombat if OnStage == 1 RadPackRadioREF.SetBroadcastState 0 set VMSTopsPerformances.RadPackOnStage to 0 PlayIdle LooseDefensiveIdleA evp setrestrained 0 set OnStage to 0 else set VMSTopsPerformances.RadPackOnStage to 0 endif END BEGIN OnActivate if (VMSTopsPerformances.RadPackOnStage >= 1) && (GetDead == 0) Return else Activate endif END BEGIN GameMode ; if (GameHour < 18) || (GameHour > 19) ; if OnStage == 1 ; PlayIdle LooseSmokingStanding ; evp ; setrestrained 0 ; set OnStage to 0 ; endif ; endif ; ; if (VMSTopsPerformances.RadPackOnStage >= 1) ; if (GameHour < 18) || (GameHour > 19) ; set VMSTopsPerformances.IsShowOn to 0 ; RadPackRadioREF.SetBroadcastState 0 ; set VMSTopsPerformances.RadPackOnStage to 0 ; evp ; endif ; endif END
922RaiderCamp13WastelanderScriptscn RaiderCamp13WastelanderScript short runTimer short counter short maxCounts float checkDistDelay float failsafeTime float checkDistTimer float minDistance ref chasingRaider begin onLoad cios SpellFlamerEffect set checkDistDelay to 0.25 set failsafeTime to 15 set maxCounts to failsafeTime / checkDistDelay set minDistance to 350 set runTimer to 1 set checkDisttimer to checkDistDelay end begin gameMode if runTimer == 1 if checkDistTimer > 0 set checkDistTimer to checkDistTimer - getSecondsPassed else if counter < maxCounts && getDistance Player > minDistance set counter to counter + 1 set checkDistTimer to checkDistDelay else kill set chasingRaider to getLinkedRef chasingRaider.setAV variable01 1 chasingRaider.evp set runTimer to 0 endif endif endif end
923RaiderRaceControlScriptTriggerSCRIPTscn RaiderRaceControlScriptTriggerSCRIPT short raceStage ;0 - race has not begun 1 - Moles go up to line #1 2 - starter fires gun 3 - race one has begun 4 - race one has finished short ratsToLine ;counter for number of molerats to be at the starting line short ratsToEnd ;counter for number of molerats to finish the race short ratsFinished ;molerats have finished the race short ratsReady ;1 - rats are to the line short doOnce ref actionRef float timer ;************************************* Begin onTriggerEnter set actionRef to getActionRef if (doOnce == 0) if (actionRef == Player) set raceStage to 1 ; RaiderRaceMolerat01REF.evp ; RaiderRaceMolerat02REF.evp set doOnce to 1 endif endif End ;************************************* Begin gameMode if (raceStage == 1) if (ratsToLine == 2) set ratsReady to 1 endif if (ratsReady == 1) ;if all the molerats are to the line start the race set ratsReady to 0 set ratsToLine to 0 set raceStage to 2 ;RaiderRaceStarter01REF.evp endif elseif (raceStage == 3) if (ratsToEnd == 2) set ratsFinished to 1 endif if (ratsFinished == 1) set timer to 5 set ratsToEnd to 0 set ratsFinished to 0 set raceStage to 4 endif elseif (raceStage == 4) if (timer <= 0) set raceStage to 1 ;RaiderRaceMolerat01REF.evp ; RaiderRaceMolerat02REF.evp else set timer to (timer - GetSecondsPassed) endif endif End ;*************************************
924RangerMoralesDeadscriptscn RangerMoralesDeadscript int doonce begin onLoad if doonce == 0 ProperBurialCorpseREF.KillActor ProperBurialCorpseREF 3 endif end
925RangerThomasDeadscriptscn RangerThomasDeadscript ;begin onLoad ; ProperBurialCorpse2ref.Kill ProperBurialFiend3ref:ref DismemberLimb:2 CauseOfDeath:2 ;end
926RaulAndyConversationSCRIPTscn RaulAndyConversationSCRIPT Begin OnTriggerEnter Player if VNPCFollowers.RaulHired == 1 && VDialogueRaul.MetRangerAndy == 1 && VDialogueRaul.RangerAndyDiscussed == 0 set VDialogueRaul.RangerAndyBark to 1 RaulREF.StartConversation Player RaulRangerAndy Disable MarkForDelete endif END
927RaulScriptscn RaulScript int Waiting ; 0 = Not waiting, 1 = Waiting int CombatStyleMelee ; 0 = Not melee, 1= Melee int CombatStyleRanged ; 0 = Not ranged, 1 = Ranged int IsFollowingDefault ; 0 = Not following default, 1 = Is following default range int IsFollowingLong ; 0 = Not following long, 1 = Is following long int FollowerSwitchAggressive ; 0 = Passive (wait on player), 1 = Aggressive (attack when see enemies) ;--------------------------------------------------------------------------------------------------------------------------------------------- begin OnDeath if VNPCFollowers.RaulHired == 1 set VNPCFollowers.nCurrentFollowers to VNPCFollowers.nCurrentFollowers - 1; if (VNPCFollowers.nCurrentFollowers == 0) set VNPCFollowers.bPlayerHasFollower to 0 endif set VNPCFollowers.RaulHired to 0 ShowMessage FollowerMessageDeadRaul if VDialogueRaul.RaulUpgrade != 1 player.RemovePerk RegularMaintenance ShowMessage FollowerMessagePerkRaulRemove elseif VDialogueRaul.RaulUpgrade == 1 player.RemovePerk FullMaintenance ShowMessage FollowerMessagePerkRaulRemoveUpgrade endif set VNPCFollowers.bHumanoidInParty to 0 endif set VNPCFollowers.bRaulDead to 1 end ;--------------------------------------------------------------------------------------------------------------------------------------------- begin OnCombatEND if GetPlayerTeammate == 1 resethealth restoreav perceptioncondition 100 restoreav endurancecondition 100 restoreav leftattackcondition 100 restoreav leftmobilitycondition 100 restoreav rightattackcondition 100 restoreav rightmobilitycondition 100 endif end ;--------------------------------------------------------------------------------------------------------------------------------------------- BEGIN OnLoad ;Script to make sure we set the right combat style on loading. If (CombatStyleMelee == 1) RaulREF.SetCombatStyle FollowersCombatStyleMelee; Else RaulREF.SetCombatStyle FollowersCombatStyleRanged; EndIf END
928RavenRockCrDeathClawEnclave01SCRIPTscn RavenRockCrDeathClawEnclave01SCRIPT float timer short doOnce ;**************************************** Begin onPackageEnd DeathclawCAGE01a set timer to 20 ;give the Deathclaw enough time to finish his cageExit animation set doOnce to 1 End ;**************************************** Begin gameMode if (doOnce == 1) if (timer <= 0) setav variable01 2 evp set doOnce to 3 else set timer to timer - GetSecondsPassed endif endif End ;****************************************
929RavenRockExteriorVertibirdTakingOffControlSCRIPTscn RavenRockExteriorVertibirdTakingOffControlSCRIPT ; This trigger enables a vertibird outside RR and plays it's backward animation once conditions are met float timer short doOnce ref linkedRef ref vertibirdLinkedRef short takeOffBegin short init Begin onHitWith GenericVertibirdHitWithWeaponsList linkedRef.do 100 End ;**************************************** Begin onActivate set doOnce to 1 End ;**************************************** Begin gameMode if (init == 0) set init to 1 set linkedRef to getLinkedRef set vertibirdLinkedRef to linkedRef.getLinkedRef endif if (doOnce == 1) linkedRef.enable 0 set timer to 1 set doOnce to 2 elseif (doOnce == 2) if (timer <= 0) linkedRef.enable 0 linkedRef.playgroup Forward 0 set timer to 1 set doOnce to 3 else set timer to timer - GetSecondsPassed endif elseif (doOnce == 3) if (timer <= 0) if ( linkedRef.HasLoaded3D != 0 ) linkedRef.playgroup Left 1 set doOnce to 4 endif else set timer to timer - GetSecondsPassed endif elseif (doOnce == 4) if (linkedRef.isAnimPlaying Forward == 0) vertibirdLinkedRef.enable ;enables an xmarker whose children are the enclave lists set doOnce to 5 endif elseif (doOnce == 5) && (takeOffBegin == 1) if (timer <= 0) set timer to 2 ; 2 seconds before vertibird will take off set takeOffBegin to 0 set doOnce to 6 else set timer to (timer - GetSecondsPassed) endif elseif (doOnce == 6) if (timer <=0) if (linkedRef.getDestroyed == 0) linkedRef.playgroup backward 1 set doOnce to 7 else set doOnce to 8 endif else set timer to (timer - GetSecondsPassed) endif elseif (doOnce == 7) if (linkedRef.isAnimPlaying Backward == 0) && (getDestroyed == 0) linkedRef.disable ;disable the vertibird when it's done playing its backward animation set doOnce to 8 endif endif End
930RavenRockTrapLaserEmitterSCRIPTscn RavenRockTrapLaserEmitterSCRIPT short armed short skillPassed short button ref linkedRef short rewardXPOnce short XPForDisarm ;******************************************************* Begin OnLoad setStage NQlvl 1 set armed to 1 set skillPassed to 0 set linkedRef to getLinkedRef End ;******************************************************* Begin onActivate if armed == 1 ;is the trap already activated/disarmed? if isActionRef player == 1 ;can the player disarm the trap? if player.getAV Repair >= NQlvl.TRAPLaserHighRepairSkillReq || player.getAv Science >= NQlvl.TRAPLaserScienceSkillReq ;Do if player has sufficient skill ShowMessage TrapLaserOnDisarmDetectMsg NQlvl.TRAPLaserHighRepairSkillReq NQlvl.TRAPLaserScienceSkillReq set skillPassed to 1 else ;Player does not have sufficient skill ShowMessage TrapLowSkillLaserMsg NQlvl.TRAPLaserHighRepairSkillReq NQlvl.TRAPLaserScienceSkillReq endIf endif endif End ;******************************************************* Begin gameMode if skillPassed == 1 ;don't run stuff in game mode unless recently activated set button to getButtonPressed ;grab the button state, you don't know when this will be set if button > -1 ;if a valid response is received start doing stuff if button == 1 ShowMessage TrapTripwireDisarmMsg set armed to 0 ;disarm the trap if rewardXPOnce == 0 if NQlvl.TRAPLaserHighRepairSkillReq< getGS iLockLevelMaxVeryEasy set XPForDisarm to 0 elseif NQlvl.TRAPLaserHighRepairSkillReq< getGS iLockLevelMaxEasy set XPForDisarm to TrapXPRewardVeryEasy elseif NQlvl.TRAPLaserHighRepairSkillReq< getGS iLockLevelMaxAverage set XPForDisarm to TrapXPRewardEasy elseif NQlvl.TRAPLaserHighRepairSkillReq< getGS iLockLevelMaxHard set XPForDisarm to TrapXPRewardAverage elseif NQlvl.TRAPLaserHighRepairSkillReq< getGS iLockLevelMaxVeryHard set XPForDisarm to TrapXPRewardHard else set XPForDisarm to TrapXPRewardVeryHard endif set rewardXPOnce to 1 rewardXP XPforDisarm endif if linkedRef != 0 linkedRef.Disable linkedRef.activate endif endif set skillPassed to 0 ;stop running stuff endif endif End ;*******************************************************
931RavenRockTrapLaserTripwireSCRIPTscn RavenRockTrapLaserTripwireSCRIPT ref flameEmitter ;Where the flame comes from - most likely an xmarkerheading so you can point it wherever you want ref flameCloud ;Where the gas trap is placed - most likely an xmarker near the flameEmitter short trapTripped ;1 when the tripwire is triggered float timer ref actionRef ;********************************************** Begin onLoad set flameEmitter to getLinkedRef ;The linkedRef is the xmarkerheading you want the flame to come from set flameCloud to flameEmitter.getLinkedRef ;The linkedRef of the xmarkerheading where the flame comes from is the xmarker where you want to spawn a gas cloud End ;********************************************** Begin onTriggerEnter set actionRef to getActionRef if (actionRef.hasPerk LightStep == 0) playsound3D TRPTripwireLaser if flameCloud != 0 flameCloud.placeatme TrapGasFire01 1 ;Place a gas trap here endif set timer to 1 ;Allows one second before the flame emits and ignites the gas trap set trapTripped to 1 endif End ;********************************************** Begin gameMode if (trapTripped == 1) if (timer <= 0) activate if flameEmitter != 0 flameEmitter.FireWeapon weapFlamer ;Shoots a flame that ignites the gas trap endif set trapTripped to 0 ;Set it back to 0 so the trapped can be triggered again else set timer to timer - GetSecondsPassed endif endif End ;**********************************************
932RavenRockTriggerEnableNotInCombatSCRIPTscn RavenRockTriggerEnableNotInCombatSCRIPT ref linkedRef short doOnce Begin onTriggerEnter Player if (doOnce == 0) && (player.isInCombat == 0) set linkedRef to getLinkedRef linkedRef.enable set doOnce to 1 ;Trigger is only set off one time endif End
933RCExBridge1SCRIPTscn RCExBridge1SCRIPT ;After the RC Bridge is finished extending, enable the navmesh there short doOnce short bForceOpen Begin gameMode ; if (doOnce == 1) ; if (isAnimPlaying Forward == 0) ; ; Jean: Had to change the name of the navmesh to its formID because in ; ; release final, editor IDs are not saved and I can't find the navmesh by its editor ID ; ; However, I'm leaving the old calls just so that things don't completely break in the interim ; enableNavmesh BE880 ; enableNavmesh BE87F ; enableNavmesh RCBridgeOpen01 ; enableNavmesh RCBridgeOpen02 ; set doOnce to 0 ; endif ; endif if ( bForceOpen == 1 && HasLoaded3D == 1 ) ;start anim and set flag so next frame we start waiting for anim to finish PlayGroup Forward 1 set doOnce to 1 set bForceOpen to 2 elseif (doOnce == 1) if (isAnimPlaying Forward == 0) ; Jean: Had to change the name of the navmesh to its formID because in ; release final, editor IDs are not saved and I can't find the navmesh by its editor ID ; However, I'm leaving the old calls just so that things don't completely break in the interim enableNavmesh BE880 enableNavmesh BE87F enableNavmesh RCBridgeOpen01 enableNavmesh RCBridgeOpen02 set doOnce to 0 endif endif End
934RecipesBrahminWellingtonScriptscn RecipesBrahminWellingtonScript short AddOnce begin OnAdd player player.addNote RecipesBrahminWellingtonNote removeme end
935RecipesCookCooksFiendStewScriptscn RecipesCookCooksFiendStewScript short AddOnce begin OnAdd player player.addNote RecipesCookCooksFiendStewNote removeme end
936RecipesRubysSpicyCasseroleScriptscn RecipesRubysSpicyCasseroleScript short AddOnce begin OnAdd player player.addNote RecipesRubysSpicyCasseroleNote removeme end
937RegulatorSCRIPTSCN RegulatorSCRIPT BEGIN OnLoad RemoveItem ArmorLeather 99 RemoveItem ArmorCombat 99 RemoveItem ArmorMetal 99 if ( GetItemCount RegulatorDuster == 0 ) AddItem ConRegulatorDuster 1 EquipItem RegulatorDuster AddItem HitSquadNoteGoodGuys 1 endif END
938RepairKitEffectSCRIPTscn RepairKitEffectSCRIPT ;Most code taken directly from the DLC05AlienEpoxyEffectScript. ;Values have been adjusted slightly (-5 across the board), now includes a +30 bonus for having Repair 100 ;7.6.10 JES float WeapHealth BEGIN ScriptEffectStart ;// get the current health percent and add 25 set WeapHealth to player.getWeaponHealthPerc ;// run through the player's repair skill and augment appropriately IF ( player.getAV Repair < 25 ) set WeapHealth to WeapHealth + 10 ELSEIF ( player.getAV Repair >= 25 && player.getAV Repair < 50 ) set WeapHealth to WeapHealth + 15 ELSEIF ( player.getAV Repair >= 50 && player.getAV Repair < 75 ) set WeapHealth to WeapHealth + 20 ELSEIF ( player.getAV Repair >= 75 && player.getAV Repair < 100 ) set WeapHealth to WeapHealth + 25 ELSEIF ( player.getAV Repair >= 100 ) set WeapHealth to WeapHealth + 30 ENDIF ;// set the weapons new health percent player.setWeaponHealthPerc WeapHealth END
939REPCONBasementExitSCRIPTscn REPCONBasementExitSCRIPT ; 5.5.09 JF ; This script is attached to a trigger near the entrance to the REPCON basement. It causes any nightkin that are leaving and enter it to ; disappear, and sets a variable on Harland when he passes through it. ref EnteringActor begin OnTriggerEnter Set EnteringActor to GetActionRef ; Case for Nightkin if VMS01.LookingForStealthBoys == 3 && EnteringActor.GetInFaction REPCONNightkinFaction == 1 && EnteringActor.IsInCombat == 0 EnteringActor.Disable 1 ; Case for Davison elseif VMS01.LookingForStealthBoys == 3 && EnteringActor.GetInFaction REPCONDavisonFaction == 1 && EnteringActor.IsInCombat == 0 EnteringActor.Disable 1 ; Case for Harland elseif EnteringActor.GetIsReference HarlandREF == 1 && VMS01.PrisonerState == 2 Set VMS01.GhoulState to 2 endif end
940REPCONBasementFoundStairsScriptscn REPCONBasementFoundStairsScript int FoundStairs ; 0 = Player hasn't gotten to the stairs when Jason is downstairs ; 1 = Player reached the stairs, update quest marker begin OnTriggerEnter player if GetObjectiveDisplayed VMS01 21 == 1 && GetObjectiveCompleted VMS01 21 == 0 set FoundStairs to 1 endif end
941REPCONBasementShortcutScriptscn REPCONBasementShortcutScript ; 5.6.09 JF ; This script is attached to a trigger volume covering the ladder in the REPCON basement. ; When the player enters the trigger, it unlocks the ladder (door) so that player can exit to the exterior using it. ; Using the ladder will set a flag that causes it to stay unlocked, since we have to cover the case of the player approaching the ladder ; but not using it. ; This script also causes Chris Haversam to port to Novac if he's decided to do so. ; ======================================================================== int HatchUnlocked begin OnTriggerEnter player if REPCONBasementShortcutLadderREF.GetLocked REPCONBasementShortcutLadderREF.unlock endif end ; OnTriggerEnter (player) ; ======================================================================== begin OnTriggerLeave player if REPCONBasementShortcutLadderREF.GetLocked == 0 && HatchUnlocked == 0 REPCONBasementShortcutLadderREF.lock endif end ; OnTriggerLeave (player) ; ======================================================================== begin OnActivate player Set REPCONBasementShortcutTriggerREF.HatchUnlocked to 1 ; Adding code to hide nightkin in case they're leaving and the player uses this exit if VMS01.LookingForStealthBoys == 3 DavisonREF.disable 1 Nightkin1.disable 1 Nightkin3.disable 1 Nightkin4.disable 1 Nightkin5.disable 1 Nightkin6.disable 1 endif ; If Chris sabotaged the rockets, he kills himself when you leave, how emo! if GetStage VMS01 == 101 && GetObjectiveCompleted VMS01 80 == 1 KillActor ChrisHaversamREF endif activate end ; OnActivate (player) ; ======================================================================== begin OnTriggerEnter ChrisHaversamREF ; Swapped in the new ChrisNovacState var for the old ChrisBetrayal one - 11.9.10 JF if VMS01.ChrisNovacState == 1 ChrisHaversamREF.MoveTo XMarkerVargasOutsideToHomeREF Set VMS01.ChrisNovacState to 2 ChrisHaversamREF.evp endif end ; OnTriggerEnter (Chris Haversam)
942REPCONBasementToMidDoorScriptscn REPCONBasementToMidDoorScript ; 5.7.09 JF ; This script is attached to the door leading from the REPCON basement to the middle section. ; If the player uses the door while the nightkin are in the process of leaving, this will make them disappear. This is done since moving to another cell ; cuts off their scripts, leaving them at the locations they were at when you left the area, stuck. begin onActivate Player if VMS01.LookingForStealthBoys == 3 DavisonREF.disable 1 Nightkin1.disable 1 Nightkin3.disable 1 Nightkin4.disable 1 Nightkin5.disable 1 Nightkin6.disable 1 endif ; If Chris sabotaged the rockets, he kills himself when you leave, how emo! if GetStage VMS01 == 101 && GetObjectiveCompleted VMS01 80 == 1 KillActor ChrisHaversamREF endif ; Make nightkin-checking quest script run slowly again SetQuestDelay VMS01Nightkin 60.0 activate end ; OnActivate
943REPCONChrisHavFinalIntercomScriptscn REPCONChrisHavFinalIntercomScript ; 5.6.09 JF ; This script is attached to a trigger by an intercom in the rocket observation room of REPCON. ; When the player completes all the tasks required to fix the rockets, this causes Chris to tell Jason ; the rockets are ready, initiating Jason's final speech and the end of the quest. int DoOnce begin OnTrigger ChrisHaversamREF if VMS01.JasonExodusSpeech == 0 ChrisHaversamREF.Say ChrisHavTellsJasonReady 1 REPCONObservationDoorREF.unlock endif end ; OnTriggerEnter
944REPCONDavisonDialogScriptscn REPCONDavisonDialogScript int TalkedOnce int Davison_Incensed float antler_x float antler_y float antler_z begin OnTriggerEnter Set antler_x to AntlerREF.GetPos x Set antler_y to AntlerREF.GetPos y Set antler_z to AntlerREF.GetPos z end begin GameMode float current_antler_x float current_antler_y float current_antler_z Set current_antler_x to AntlerREF.GetPos x Set current_antler_y to AntlerREF.GetPos y Set current_antler_z to AntlerREF.GetPos z if Davison_Incensed == 0 if current_antler_x != antler_x || current_antler_y != antler_y || current_antler_z != antler_z ;DavisonREF.Say DavisonAntlerTouched Set Davison_Incensed to 1 ;ShowWarning "You touched Antler!!!" DavisonREF.StartCombat player endif endif end
945REPCONDavisonSCRIPTscn REPCONDavisonSCRIPT ; 5.6.09 JF ; This script determines how Davison acts and reacts in the game. ; In combat, he should stealth immediately, and unstealth for 5 seconds after being hit. float timer begin OnStartCombat addspell StealthBoyInvisibilitySpell end ; OnStartCombat begin OnHit RemoveSpell StealthBoyInvisibilitySpell Set timer to 0 end ; OnHit begin OnDeath set VMS01.NightkinDeathToll to VMS01.NightkinDeathToll + 1 if VMS01.NightkinDeathToll == 6 if GetObjectiveDisplayed VMS01 60 == 1 SetObjectiveCompleted VMS01 60 1 ; Complete "Deal with the Nightkin" objective SetObjectiveDisplayed VMS01 62 1 ; Show "Return to Jason and tell him the Nightkin are dead" objective endif ; Set the "Nightkin are all dead variable" so we can check if you do this before getting the quest if VMS01.NightkinQuest < 2 Set VMS01.NightkinQuest to 2 endif endif ; Get rid of optional objectives that can no longer be completed SetObjectiveDisplayed VMS01 61 0 ; Hide the optional stealth boy objective if it's being shown SetObjectiveDisplayed VMS01 65 0 SetObjectiveDisplayed VMS01 69 0 RemoveSpell StealthBoyInvisibilitySpell end ; OnDeath begin GameMode ; Added conditional code to reduce the cost of running the script on every frame. Part of a game-wide revision of scripts - Jorge 03/14/10 If DavisonREF.IsInCombat != 1 Return Else ref refvar Set refvar to this if refvar.IsInCombat if timer < 1.5 Set timer to timer + GetSecondsPassed else AddSpell StealthBoyInvisibilitySpell Set timer to 0 endif endif Endif end ; GameMode
946REPCONEnterScriptscn REPCONEnterScript int talkedOnce ; 0 = Haven't spoken over intercom, 1 = Spoke at least once over intercom ref rIntercom ; Reference variable for which intercom to activate begin OnTriggerEnter player ; Completed "Head to REPCON" obj, switching to "Investigate rumors of ghoul activity" if GetObjectiveDisplayed VMS01 10 == 1 SetObjectiveCompleted VMS01 10 1 endif if GetStage VMS01 < 15 SetStage VMS01 15 endif ; Script to make the intercom ghoul talk to you on entering for the first time if talkedOnce == 0 Set rIntercom to GetSelf ; Figure out which intercom you're using if rIntercom.GetIsReference REPCONLobbyEntranceTrigger ;ShowWarning "Using the lobby intercom" REPCONLobbyIntercom.setTalkingActivatorActor ChrisHaversamREF REPCONLobbyIntercom.activate player elseif rIntercom.GetIsReference REPCONBackDoorEntranceTrigger ;ShowWarning "Using the back door intercom" REPCONBackDoorIntercom.setTalkingActivatorActor ChrisHaversamREF REPCONBackDoorIntercom.activate player endif set talkedOnce to 1 endif end
947REPCONEntranceIntercomScriptscn REPCONEntranceIntercomScript int UsingUpstairsIntercom ; 0 = Haven't used upstairs intercom, 1 = Used upstairs intercom, 2 = Finished talking on upstairs com int CurrentIntercom ; 0 = Not set, 1 = Basement intercom ref rThisIntercom Begin OnActivate player Set rThisIntercom to GetSelf ; Check to see if we're speaking to Chris from the intercom just outside the door to the top floor if rThisIntercom.GetIsReference REPCONMidToTopDoorIntercom set UsingUpstairsIntercom to 1 ; Chris's dialog will detect this variable and make him open the door for you elseif rThisIntercom.GetIsReference ObservationIntercom set CurrentIntercom to 1 endif if ChrisHaversamREF.GetDead == 0 setTalkingActivatorActor ChrisHaversamREF activate else SetTalkingActivatorActor ;activate endif End Begin OnLoad End
948REPCONGhoulQuestScriptscn REPCONGhoulQuestScript int NightkinDeathToll ; # = How many nightkin you've killed (max 10, including leader) int GhoulState ; 0 = Still there, 1 = Dead, 2 = Escaped, 3 = Done int PrisonerState ; 0 = Undiscovered, 1 = Found Dead, 2 = Told Harland she's dead and he's now leaving int LookingForStealthBoys ; 0 = Not yet looking, 1 = Looking, 2 = Found, 3 = Done int ToldToFindPrisoner ; 0 = Haven't been told, 1 = Told int ChrisAfterJason ; 0 = Haven't talked to Jason, 1 = Jason told you to talk to Chris int ChrisRocketBomb ; 0 = No sabotage, 1 = Convinced Chris to sabotage, 2 = Gave Chris Sugar Bombs int ChrisGhoulUnlocked ; 0 = Chris thinks he's a ghoul, 1 = Convinced Chris he's not a ghoul int ChrisRocketPartsUnlocked ; 0 = Haven't heard what parts needed, 1 = Heard what parts you need int ChrisBetrayal ; 0 = No info, 1 = Jason's betrayal revealed, 2 = You told Chris about it, 3 = Chris talked out of betrayal, 4 = Chris helped blow up rockets int ChrisNovacState ; 0 = Chris not going to Novac, 1 = Chris on his way to Novac, 2 = Chris in Novac int FuelStatus ; 0 = Need Fuel, 1 = Have Fuel, 2 = Fuel turned in int PartsStatus ; 0 = Need Parts, 1 = Have Parts, 2 = Parts turned in int NightkinQuest ; 0 = Don't have, 1 = Have quest, 2 = Nightkin gone OR dead, 3 = Told Jason about Nightkin int JasonExodusSpeech ; 0 = Jason hasn't given speech yet, 1 = Jason giving speech, 2 = Jason gave speech int TalkedAboutSouvenir ; 0 = Haven't talked yet, 1 = Chris told you the tiny rocket has fuel in it, 2 = You bought all the rockets int KnowAboutSouvenirs ; 0 = Never talked to Cliff about souvenirs, 1 = Cliff told you about the souvenirs int KnowAboutHarland ; 0 = Have not been told about Harland, 1 = Chris told you Harland knows where to find parts int CurrentTask ; 0 = None yet, 1 = Fuel, 2 = Parts, 3 = Mutants int TasksCompleted ; # = How many tasks you've completed (max 3) int JasonGoodbye ; 0 = Jason is around, 1 = Jason is heading for the rocket pad, 2 = Jason reached the rocket pad int NovacVsGhouls ; 0 = No info, 1 = You heard about REPCON ghouls in Novac, 2 = Told of reward for killing them int bOnPlatform ; 1 = Player on the rocket launch platform begin GameMode ; if GetObjectiveDisplayed VMS01 100 == 1 ; RepconRadioRef.SetBroadcastState 1 ; else ; RepconRadioRef.SetBroadcastState 0 ; endif end
949REPCONGhoulRocketWalkScriptscn REPCONGhoulRocketWalkScript ref EnteringActor begin OnTriggerEnter Set EnteringActor to GetActionRef if EnteringActor.GetIsReference Player == 0 && EnteringActor.GetPlayerTeammate == 0 if VMS01.NightkinQuest == 3 if EnteringActor.GetIsReference ChrisHaversamREF EnteringActor.MoveTo ChrisDownstairsInitialMarker EnteringActor.Disable ; Hide Chris until you talk to Jason ; We don't evp Chris since we want him to stay put elseif EnteringActor.GetIsReference JasonBright EnteringActor.MoveTo JasonBrightDialogMarker EnteringActor.evp else if EnteringActor.GetIsSex Male == 1 EnteringActor.AddItem ArmorNVSpaceSuit 1 EnteringActor.AddItem HelmetNVSpaceSuit 1 EnteringActor.EquipItem ArmorNVSpaceSuit 1 EnteringActor.EquipItem HelmetNVSpaceSuit 1 endif EnteringActor.MoveToFade REPCONRocketPadDestinationMarker EnteringActor.evp endif endif endif end
950RepconGhoulSCRIPTscn RepconGhoulSCRIPT int OnceOnly ;begin GameMode ; if GetIsCurrentPackage REPCONGhoulRocketPadPackage && GetItemCount ArmorNVSpaceSuit == 0 ; AddItem ArmorNVSpaceSuit 1 ; AddItem HelmetNVSpaceSuit 1 ; EquipItem ArmorNVSpaceSuit 1 ; EquipItem HelmetNVSpaceSuit 1 ; endif ;end begin OnPackageStart REPCONGhoulRocketPadPackage if GetItemCount ArmorNVSpaceSuit == 0 AddItem ArmorNVSpaceSuit 1 AddItem HelmetNVSpaceSuit 1 EquipItem ArmorNVSpaceSuit 1 EquipItem HelmetNVSpaceSuit 1 endif if OnceOnly == 0 moveto REPCONRocketPadDestinationMarker set OnceOnly to 1 endif end begin OnPackageEND REPCONGhoulRocketPadPackage if GetItemCount ArmorNVSpaceSuit == 0 AddItem ArmorNVSpaceSuit 1 AddItem HelmetNVSpaceSuit 1 EquipItem ArmorNVSpaceSuit 1 EquipItem HelmetNVSpaceSuit 1 endif if OnceOnly == 0 moveto REPCONRocketPadDestinationMarker set OnceOnly to 1 endif end begin OnPackageStart REPCONGhoulSpeechListeningPACKAGE if GetItemCount ArmorNVSpaceSuit == 0 AddItem ArmorNVSpaceSuit 1 AddItem HelmetNVSpaceSuit 1 EquipItem ArmorNVSpaceSuit 1 EquipItem HelmetNVSpaceSuit 1 endif if GetPos Z > 7360.0000 movetofade REPCONRocketPadDestinationMarker endif end
951REPCONHarlandResetSCRIPTscn REPCONHarlandResetSCRIPT ; This script is attached to a trigger just outside of Harland's room. Its purpose is to reset his dialog package when the player leaves ; so the next time the player enters the room he speaks again. begin onTriggerEnter player HarlandREF.resetai Set HarlandDialogTrigger.HarlandTalked to 0 end
952REPCONHarlandScriptscn REPCONHarlandScript int HarlandState ; 0 = Still imprisoned, 1 = Free upstairs begin OnDeath set VMS01.GhoulState to 1 if GetObjectiveDisplayed VMS01 63 && GetObjectiveCompleted VMS01 63 == 0 SetObjectiveDisplayed VMS01 63 0 endif if GetObjectiveDisplayed VMS01 64 && GetObjectiveCompleted VMS01 64 == 0 SetObjectiveDisplayed VMS01 64 0 endif end ;--------------------------------------------------------------------------------------------------------------------------------------
953REPCONHarlandTriggerScriptscn REPCONHarlandTriggerScript int HarlandTalked begin OnTriggerEnter player Set HarlandTalked to 1 end ;------------------------------------------------------------------------------------------------------------------------------------ begin OnTrigger player if HarlandREF.IsInCombat == 0 if HarlandTalked == 1 && VMS01.PrisonerState != 2 HarlandREF.evp endif endif end
954RepconHQFreeformScriptscn RepconHQFreeformScript int 1stFloorDetect int 2ndFloorDetect int 3rdFloorDetect int InRepcon int HasBadge int 1stFloorAlarm int 2ndFloorAlarm int 3rdFloorAlarm float AlarmTimer1 float AlarmTimer2 float AlarmTimer3 float clock float timer int WarningCounter int WarningActive int 1stFloorID int 2ndFloorID int 3rdFloorID float CurTime int Klaxon1stFloor int Klaxon2ndFloor int Klaxon3rdFloor int REPHQTour int DisableRobots float DetectTimer1 float DetectTimer2 float DetectTimer3 ; Tour Variables ; 0 = Tour Not Started, 1 = Beginning Intro, 2 = Talk about radiactive bar, 3 & 4 = Talk about fuel ; 5 & 6 = Talk about waste, 7 & 8 = Talk about Rocket Lab, 9 Removed, 10 = Talk about older rockets ; 11 & 12 = Old Robot Models, 13 & 14 & 15 = talk about solar system begin GameMode if AlarmTimer1 > 0 && Player.GetInCell RepconHQ01 set AlarmTimer1 to GetSecondsPassed + AlarmTimer1 if AlarmTimer1 >= 30 set AlarmTimer1 to -1 REPHQ1stFloorEnabler.enable set RepconHQFreeform.1stFloorAlarm to 1 endif elseif AlarmTimer1 > 0 && Player.GetinCell RepconHQ01 == 0 set AlarmTimer1 to 0 set RepconHQFreeform.1stFloorDetect to 0 elseif AlarmTimer2 > 0 && Player.GetInCell RepconHQ02 set AlarmTimer2 to GetSecondsPassed + AlarmTimer2 if AlarmTimer2 >= 30 set AlarmTimer2 to -1 REPHQ2ndFloorEnabler.enable set RepconHQFreeform.2ndFloorAlarm to 1 endif elseif AlarmTimer2 > 0 && Player.GetinCell RepconHQ02 == 0 set AlarmTimer2 to 0 set RepconHQFreeform.2ndFloorDetect to 0 elseif AlarmTimer3 > 0 && Player.GetInCell RepconHQ03 set AlarmTimer3 to GetSecondsPassed + AlarmTimer3 if AlarmTimer3 >= 30 set AlarmTimer3 to -1 REPHQ3rdFloorEnabler.enable set RepconHQFreeform.3rdFloorAlarm to 1 endif elseif AlarmTimer3 > 0 && Player.GetinCell RepconHQ03 == 0 set AlarmTimer3 to 0 set RepconHQFreeform.3rdFloorDetect to 0 endif if WarningCounter >= 1 set timer to GetSecondsPassed + timer endif if RepconHQFreeform.1stFloorDetect == 2 && DetectTimer1 < 120 set DetectTimer1 to DetectTimer1 + GetSecondsPassed elseif RepconHQFreeform.1stFloorDetect == 2 && DetectTimer1 >= 120 set DetectTimer1 to 0 set RepconHQFreeform.1stFloorDetect to 0 endif if RepconHQFreeform.2ndFloorDetect == 2 && DetectTimer2 < 120 set DetectTimer2 to DetectTimer2 + GetSecondsPassed elseif RepconHQFreeform.2ndFloorDetect == 2 && DetectTimer2 >= 120 set DetectTimer2 to 0 set RepconHQFreeform.2ndFloorDetect to 0 endif if RepconHQFreeform.3rdFloorDetect == 2 && DetectTimer3 < 120 set DetectTimer3 to DetectTimer3 + GetSecondsPassed elseif RepconHQFreeform.3rdFloorDetect == 2 && DetectTimer3 >= 120 set DetectTimer3 to 0 set RepconHQFreeform.3rdFloorDetect to 0 endif if WarningCounter == 1 && timer >= 60 set WarningActive to 1 set WarningCounter to 2 set timer to 60.1 elseif WarningCounter == 2 && timer >= 120 set WarningCounter to 3 set WarningActive to 1 endif set CurTime to GetCurrentTime if CurTime > 10 && CurTime < 17 set WarningActive to 0 set WarningCounter to 0 set timer to 0 endif end
955REPCONHQRobotScriptscn REPCONHQRobotScript int OnceOnly int WarningActive int PackageOn int DebugOnce int HasBadge float CurTime int Floor2Detect float CombatTimer int CombatAlarm int Unconscious int UnconsciousOnce begin GameMode set HasBadge to REPCONHQFreeform.HasBadge set Unconscious to REPCONHQFreeform.DisableRobots if Unconscious == 1 && UnconsciousOnce == 0 setUnconscious 1 set UnconsciousOnce to 1 endif if GetInCell RepconHQ01 == 1 if REPCONHQFreeform.1stFloorAlarm == 1 set OnceOnly to 1 setav Aggression 2 endif set CurTime to GetCurrentTime if CurTime <= 10 || CurTime >= 17 if DebugOnce == 0 ;showWarning "Time Check!" set DebugOnce to 1 endif set WarningActive to RepconHQFreeform.WarningActive if GetDetected Player == 1 && (WarningActive == 0 || WarningActive == 1) && PackageOn == 0 && HasBadge == 0 ResetAI AddScriptPackage REPCON1stFloorDialoguePackage evp Set PackageOn to 1 Set RepconHQFreeform.WarningActive to 1 endif If WarningActive == 2 && PackageOn == 1 Set PackageOn to 0 RemoveScriptPackage REPCON1stFloorDialoguePackage endif endif elseif GetinCell RepconHQ02 == 1 set Floor2Detect to REPCONHQFreeform.2ndFloorDetect if REPCONHQFreeform.2ndFloorAlarm == 1 set OnceOnly to 1 setav Aggression 2 endif if Floor2Detect == 0 && GetDetected Player == 1 && PackageOn == 0 set REPCONHQFreeform.2ndFloorDetect to 1 ResetAI AddScriptPackage REPCON2ndFloorDialoguePackage evp set PackageOn to 1 endif ; if CurTime <= 60 && Floor2Detect == 2 ; set CurTime to getSecondsPassed + Curtime ; elseif Floor2Detect == 2 ; set PackageOn to 0 ; set REPCONHQFreeform.2ndFloorDetect to 0 ; endif endif if isincombat == 1 && combattimer < 3 && CombatAlarm == 0 set combattimer to getsecondspassed + combattimer elseif isincombat == 1 && combattimer >= 3 && combatalarm == 0 set combatalarm to 1 if GetInCell RepconHQ01 == 1 set RepconHQFreeform.1stFloorAlarm to 1 REPHQ1stFloorEnabler.enable elseif GetInCell RepconHQ02 == 1 set RepconHQFreeform.2ndFloorAlarm to 1 REPHQ2ndFloorEnabler.enable set RepconHQFreeform.2ndFloorAlarm to 1 elseif GetInCell RepconHQ03 == 1 set RepconHQFreeform.3rdFloorAlarm to 1 REPHQ3rdFloorEnabler.enable set RepconHQFreeform.3rdFloorAlarm to 1 endif endif end
956REPCONHQSecurityDoorsscn REPCONHQSecurityDoors ref RefID int OnceOnly int UnlockOnce int Button int Jammed int DestroyOpen begin onLoad if OnceOnly == 0 setDestroyed 1 endif end begin onActivate set RefID to getactionref if Refid != player Activate elseif player.getav perception >= 8 && Jammed == 0 showmessage REPCONDoorSabotage endif end begin GameMode set Button to getButtonPressed if GetInCell RepconHQ01 == 1 && REPCONHQFreeform.1stFloorAlarm == 1 && Jammed == 0 setDestroyed 0 setOpenState 1 set Jammed to 2 elseif GetInCell RepconHQ02 == 1 && REPCONHQFreeform.2ndFloorAlarm == 1 && Jammed == 0 setDestroyed 0 setOpenState 1 set Jammed to 2 elseif GetInCell RepconHQ03 == 1 && REPCONHQFreeform.3rdFloorAlarm == 1 && Jammed == 0 setDestroyed 0 setOpenState 1 set Jammed to 2 endif if player.getav perception >= 8 && Jammed == 0 setDestroyed 0 elseif player.getav perception < 8 && Jammed == 0 setDestroyed 1 endif if GetOpenState == 1 && Jammed == 2 && DestroyOpen == 0 setDestroyed 1 set DestroyOpen to 1 endif if Button == 1 rewardxp 45 lock set Jammed to 1 setDestroyed 1 endif end
957REPCONHQSentryBotScriptscn REPCONHQSentryBotScript int Unconscious int OnceOnly begin GameMode set Unconscious to REPCONHQFreeform.DisableRobots if Unconscious == 1 && OnceOnly == 0 set OnceOnly to 1 setunconscious 1 endif end
958REPCONNMidToBasementDoorScriptscn REPCONNMidToBasementDoorScript begin onActivate SetQuestDelay VMS01Nightkin 2.0 Activate end
959REPCONNTopToMidDoorScriptscn REPCONNTopToMidDoorScript ref ActivatingActor begin OnActivate set ActivatingActor to GetActionREF ; If the player uses the door before Jason leaves to go to the basement, ; warp Jason down there immediately if ActivatingActor.GetIsReference player if JasonBright.GetIsCurrentPackage REPCONGhoulRocketWalkPackage if JasonBright.GetInCell RocketLabBasement == 0 JasonBright.MoveTo JasonBrightDialogMarker JasonBright.evp endif endif if ChrisHaversamREF.GetIsCurrentPackage REPCONGhoulRocketWalkPackage ChrisHaversamREF.MoveTo ChrisDownstairsInitialMarker ChrisHaversamREF.Disable endif endif Activate end
960REPCONRocketPadReachedScriptscn REPCONRocketPadReachedScript ; 5.4.09 ; This script is attached to the trigger in the cylindrical rocket pad that the player can only view through a window. ref EnteringObject begin OnTriggerEnter Set EnteringObject to GetActionRef end
961REPCONSabotageTerminalScriptscn REPCONSabotageTerminalScript int Button int ScreenNumber ; 0 = Main Menu (normal), 1 = Screen with just an "OK" button, 2 = Fix Trajectory Menu, 3 = Dumb Menu int ChangeMade int MashCounter begin OnActivate if IsActionRef player == 1 if ChangeMade == 0 if Player.GetActorValue Intelligence < 4 ShowMessage REPCONSabotageTerminalDumb1Msg Set ScreenNumber to 3 elseif Player.GetActorValue Science >= 55 ShowMessage REPCONSabotageTerminalMessage else ShowMessage REPCONSabotageTerminalAvgMsg Set ScreenNumber to 1 endif else ShowMessage REPCONSabotageDoneTerminalMessage endif endif end ; OnActivate begin GameMode Set Button to GetButtonPressed if ChangeMade == 1 && Button == 0 Return endif if ScreenNumber == 0 ; At this level, show the main menu if Button == 0 ; Examine further ShowMessage REPCONSabotageTerminalSuperHighIntMsg Set ScreenNumber to 2 elseif Button == 1 ; Sabotage ShowMessage REPCONSabotageTerminalCrashMsg RewardXP 55 RewardKarma -50 Set ChangeMade to 1 SetObjectiveCompleted VMS01 90 1 ; Complete Sabotage Objective Set ScreenNumber to 1 ; Next box just has an OK button endif elseif ScreenNumber == 1 ; This level is for those prompts with a default "OK" button if Button == 0 Set ScreenNumber to 0 ; You hit the OK button, reset so main menu appears next use endif elseif ScreenNumber == 2 ; This level is for showing the two "Fix the trajectory" options if Button == 0 ; Fix trajectory ShowMessage REPCONSabotageTerminalImprovedPathMsg RewardXP 55 RewardKarma 50 Set ChangeMade to 1 Set ScreenNumber to 1 elseif Button == 1 ; Do nothing Set ScreenNumber to 0 endif elseif ScreenNumber == 3 ; Dumb terminal, can only mash on keys if Button == 0 if MashCounter >= 4 PlaySound OBJForceFieldShutdown ShowMessage REPCONSabotageTerminalDumbBrokenMsg Set ChangeMade to 1 RewardKarma -50 else ShowMessage REPCONSabotageTerminalDumb2Msg endif Set MashCounter to MashCounter + 1 Set ScreenNumber to 1 ; Next box just has an OK button elseif Button == 1 Set ScreenNumber to 0 endif endif end ; GameMode
962REPCONSuperMutantNightkinSCRIPTscn REPCONSuperMutantNightkinSCRIPT short combatcheck short soundcheck float timerEffect ;float timerTaunt begin onLoad ModActorValue sneak 100 addspell StealthBoyInvisibilitySpell set soundcheck to 0 set timerEffect to 0 ; set timerTaunt to 10 end begin OnSTARTCombat set combatcheck to 1 end begin OnCombatEND set combatcheck to 0 end begin OnDeath set combatcheck to 0 RemoveSpell StealthBoyInvisibilitySpell set VMS01.NightkinDeathToll to VMS01.NightkinDeathToll + 1 if VMS01.NightkinDeathToll == 6 if GetObjectiveDisplayed VMS01 60 == 1 SetObjectiveCompleted VMS01 60 1 ; Complete "Deal with the Nightkin" objective SetObjectiveDisplayed VMS01 62 1 ; Show "Return to Jason and tell him the Nightkin are dead" objective if GetObjectiveDisplayed VMS01 61 == 1 SetObjectiveDisplayed VMS01 61 0 ; Hide the optional stealth boy objective if it's being shown endif endif ; Set the "Nightkin are all dead variable" so we can check if you do this before getting the quest if VMS01.NightkinQuest < 2 Set VMS01.NightkinQuest to 2 endif endif end begin GameMode ref refvar set refvar to this if combatcheck == 1 ref mytarget set mytarget to refvar.GetCombatTarget refvar.SetForceSneak 0 if refvar.GetDistance mytarget < 400 RemoveSpell StealthBoyInvisibilitySpell if soundcheck == 0 PMS NightkinCloakFXShader 1 ; set timerEffect to GetSecondsElapsed refvar.PlaySound3D OBJStealthBoyActivate set soundcheck to 1 endif endif else if refvar.GetDead == 0 refvar.SetForceSneak 1 refvar.ModActorValue sneak 100 ; PMS pulseDisableFXShader addspell StealthBoyInvisibilitySpell set soundcheck to 0 endif ; if (timerTaunt <= 0) ; refvar.Say LostIdle ; set timerTaunt to 10 ; endif ; set timerTaunt to (timerTaunt - GetSecondsPassed) endif end
963REPCONTourGuideScriptscn REPCONTourGuideScript begin OnStartCombat setrestrained 0 end begin SayToDone REPCONHQTour00 set RepconHQFreeform.REPHQTour to 2 setrestrained 0 end begin SayToDone REPCONHQTour01 set RepconHQFreeform.REPHQTour to 3 setrestrained 0 end begin SayToDone REPCONHQTour02 if RepconHQFreeform.REPHQTour == 3 set RepconHQFreeform.REPHQTour to 4 sayto player RepconHQTour02 else set RepconHQFreeform.REPHQTour to 5 setrestrained 0 endif end begin SayToDone REPCONHQTour03 if RepconHQFreeform.REPHQTour == 5 set RepconHQFreeform.REPHQTour to 6 sayto player RepconHQTour03 else set RepconHQFreeform.REPHQTour to 7 setrestrained 0 endif end begin SayToDone REPCONHQTour04 if RepconHQFreeform.REPHQTour == 7 set RepconHQFreeform.REPHQTour to 8 sayto player RepconHQTour04 else set RepconHQFreeform.REPHQTour to 10 setrestrained 0 endif end begin SayToDone REPCONHQTour05 set RepconHQFreeform.REPHQTour to 11 setrestrained 0 end begin SayToDone REPCONHQTour06 if RepconHQFreeform.REPHQTour == 11 set RepconHQFreeform.REPHQTour to 12 sayto player RepconHQTour06 else set RepconHQFreeform.REPHQTour to 13 setrestrained 0 endif end begin SayToDone REPCONHQTour07 if RepconHQFreeform.REPHQTour == 13 set RepconHQFreeform.REPHQTour to 14 sayto player RepconHQTour07 elseif RepconHQFreeform.REPHQTour == 14 set RepconHQFreeform.REPHQTour to 15 sayto player RepconHQTour07 else set RepconHQFreeform.REPHQTour to 16 setrestrained 0 endif end
964REPEyebotScriptscn REPEyebotScript int onceonly1stfloor int onceonly2ndfloor int onceonly3rdfloor float ResetTimer int InRepcon int Alarm1stFloor int Alarm2ndFloor int Alarm3rdFloor float CombatTimer int CombatAlarm int Unconscious int UnconsciousOnce int FirstFloorDetect int SecondFloorDetect int ThirdFloorDetect begin Gamemode set Alarm1stFloor to REPCONHQFreeform.1stFloorAlarm set Alarm2ndFloor to REPCONHQFreeform.2ndFloorAlarm set Alarm3rdFloor to REPCONHQFreeform.3rdFloorAlarm set InRepcon to repconHQFreeform.InRepcon set Unconscious to REPCONHQFreeform.DisableRobots set FirstFloorDetect to RepconHQFreeform.1stFloorDetect set SecondFloorDetect to RepconHQFreeform.2ndFloorDetect set ThirdFloorDetect to RepconHQFreeform.3rdFloorDetect if Unconscious == 1 && UnconsciousOnce == 0 setUnconscious 1 set UnconsciousOnce to 1 endif if getdetected player == 1 && this == REPHQEyebotSecret && onceonly1stfloor == 0 && GetInCell RepconHQ01 == 1 && Alarm1stFloor == 0 && FirstFloorDetect == 0 set onceonly1stfloor to 1 set repconhqfreeform.1stfloordetect to 1 resetAI AddScriptPackage REPCONHQEyebotDialoguePackage4 evp elseif getdetected player == 1 && onceonly1stfloor == 0 && InRepcon == 1 && GetInCell RepconHQ01 == 1 && Alarm1stFloor == 0 && FirstFloorDetect == 0 ;set onceonly1stfloor to 1 set repconhqfreeform.1stfloordetect to 1 ResetAI AddScriptPackage REPCONHQEyebotDialoguePackage evp elseif getdetected player == 1 && onceonly2ndfloor == 0 && GetInCell RepconHQ02 == 1 && Alarm2ndFloor == 0 && SecondFloorDetect == 0 ;set onceonly2ndfloor to 1 set repconhqfreeform.2ndfloordetect to 1 ResetAI AddScriptPackage REPCONHQEyebotDialoguePackage2 evp elseif getdetected player == 1 && onceonly3rdfloor == 0 && GetInCell RepconHQ03 == 1 && Alarm3rdFloor == 0 && ThirdFloorDetect == 0 ;set onceonly3rdfloor to 1 set repconhqfreeform.3rdfloordetect to 1 ResetAI AddScriptPackage REPCONHQEyebotDialoguePackage3 evp endif if OnceOnly1stFloor == 1 || OnceOnly2ndFloor == 1 || OnceOnly3rdFloor == 1 set ResetTimer to ResetTimer + GetSecondsPassed if ResetTimer >= 60 set ResetTimer to 0 set OnceOnly1stFloor to 0 set OnceOnly2ndFloor to 0 set OnceOnly3rdFloor to 0 endif endif if isincombat == 1 && combattimer < 3 && CombatAlarm == 0 set combattimer to getsecondspassed + combattimer elseif isincombat == 1 && combattimer >= 3 && combatalarm == 0 set combatalarm to 1 if GetInCell RepconHQ01 == 1 set RepconHQFreeform.1stFloorAlarm to 1 REPHQ1stFloorEnabler.enable elseif GetInCell RepconHQ02 == 1 set RepconHQFreeform.2ndFloorAlarm to 1 REPHQ2ndFloorEnabler.enable set RepconHQFreeform.2ndFloorAlarm to 1 elseif GetInCell RepconHQ03 == 1 set RepconHQFreeform.3rdFloorAlarm to 1 REPHQ3rdFloorEnabler.enable set RepconHQFreeform.3rdFloorAlarm to 1 endif endif end begin onpackagechange REPCONHQEyebotDialoguePackage removescriptpackage REPCONHQEyebotDialoguePackage if RepconHQFreeform.AlarmTimer1 > 0 addscriptpackage REPCONHQEyebotFollow evp endif end begin onpackagechange REPCONHQEyebotDialoguePackage2 removescriptpackage REPCONHQEyebotDialoguePackage2 if RepconHQFreeform.AlarmTimer2 > 0 addscriptpackage REPCONHQEyebotFollow evp endif end begin onpackagechange REPCONHQEyebotDialoguePackage3 removescriptpackage REPCONHQEyebotDialoguePackage3 if RepconHQFreeform.AlarmTimer3 > 0 addscriptpackage REPCONHQEyebotFollow evp endif end begin onpackagechange REPCONHQEyebotDialoguePackage4 removescriptpackage REPCONHQEyebotDialoguePackage4 if RepconHQFreeform.AlarmTimer1 > 0 addscriptpackage REPCONHQEyebotFollow evp endif end begin onpackagechange REPCONHQEyebotFollow removescriptpackage REPCONHQEyebotFollow end begin onstartcombat player if GetInCell RepconHQ01 == 1 && RepconHQFreeform.AlarmTimer1 > 0 set RepconHQFreeform.1stFloorAlarm to 1 REPHQ1stFloorEnabler.enable say REPCONHQAlarm elseif GetInCell RepconHQ02 == 1 && RepconHQFreeform.AlarmTimer2 > 0 REPHQ2ndFloorEnabler.enable set RepconHQFreeform.2ndFloorAlarm to 1 say REPCONHQAlarm elseif GetInCell RepconHQ03 == 1 && RepconHQFreeform.AlarmTimer1 > 0 REPHQ3rdFloorEnabler.enable set RepconHQFreeform.3rdFloorAlarm to 1 say REPCONHQAlarm endif end
965REPHQDialogueActivatorScriptscn REPHQDialogueActivatorScript begin onActivate if this == rephqdialactivator1 elseif this == rephqdialactivator2 elseif this == rephqdialactivator3 endif end
966REPHQEnterTriggerScriptscn REPHQEnterTriggerScript begin onTriggerEnter if IsActionRef Player set repconhqfreeform.inRepcon to 1 endif end
967REPHQExitTriggerScriptscn REPHQExitTriggerScript begin onTriggerEnter if IsActionRef Player set repconhqfreeform.inRepcon to 0 set RepconHQFreeform.AlarmTimer1 to 0 REPEyebotRef1.removescriptpackage REPCONHQEyebotFollow REPEyebotRef1.evp endif end
968REPHQKeyCardScript01scn REPHQKeyCardScript01 begin onAdd Player set REPCONHQFreeform.HasBadge to 1 end
969REPHQKeyCardScript02scn REPHQKeyCardScript02 begin onAdd Player set REPCONHQFreeform.HasBadge to 2 end
970REPHQKeyCardScript03scn REPHQKeyCardScript03 begin onAdd Player set REPCONHQFreeform.HasBadge to 3 end
971RepHQTourSignScriptscn RepHQTourSignScript begin onActivate if GetActionRef == Player If GetIsID REPHQTourSign02 ShowMessage REPCONHQTourMessage01 elseif GetIsID REPHQTourSign01 ShowMessage REPCONHQTourMessage02 elseif GetIsID REPHQTourSign03 ShowMessage REPCONHQTourMessage03 elseif GetIsID REPHQTourSign04 ShowMessage REPCONHQTourMessage04 elseif GetIsID REPHQTourSign05 ShowMessage REPCONHQTourMessage05 elseif GetIsID REPHQTourSign06 ShowMessage REPCONHQTourMessage06 elseif GetIsID REPHQTourSign07 ShowMessage REPCONHQTourMessage07 elseif GetIsID REPHQTourSign08 ShowMessage REPCONHQTourMessage08 elseif GetIsID REPHQTourSign09 ShowMessage REPCONHQTourMessage09 elseif GetIsID REPHQTourSign10 ShowMessage REPCONHQTourMessage10 elseif GetIsID REPHQTourSign11 ShowMessage REPCONHQTourMessage11 elseif GetIsID REPHQTourSign12 ShowMessage REPCONHQTourMessage12 elseif GetIsID REPHQTourSign13 ShowMessage REPCONHQTourMessage13 elseif GetIsID REPHQTourSign14 ShowMessage REPCONHQTourMessage14 endif Activate endif end
972RestoreAllBodyPartsSCRIPTscn RestoreAllBodyPartsSCRIPT begin ScriptEffectStart RestoreActorValue PerceptionCondition 100 RestoreActorValue EnduranceCondition 100 RestoreActorValue LeftAttackCondition 100 RestoreActorValue RightAttackCondition 100 RestoreActorValue LeftMobilityCondition 100 RestoreActorValue RightMobilityCondition 100 end begin ScriptEffectUpdate RestoreActorValue PerceptionCondition 100 RestoreActorValue EnduranceCondition 100 RestoreActorValue LeftAttackCondition 100 RestoreActorValue RightAttackCondition 100 RestoreActorValue LeftMobilityCondition 100 RestoreActorValue RightMobilityCondition 100 end begin ScriptEffectFinish RestoreActorValue PerceptionCondition 100 RestoreActorValue EnduranceCondition 100 RestoreActorValue LeftAttackCondition 100 RestoreActorValue RightAttackCondition 100 RestoreActorValue LeftMobilityCondition 100 RestoreActorValue RightMobilityCondition 100 end
973RexBiteKnockdownScriptscn RexBiteKnockdownScript ref Myself ref MyTarget begin ScriptEffectStart set MyTarget to GetCombatTarget ; JSH 11.10.10 - Added additional armor-piercing damage bonus if Rey's brain is installed. if (VMS24.nTransplantResult == 1) MyTarget.DamageActorValue Health 25 endif if GetRandomPercent < 15.0 If MyTarget.HasPerk Stonewall != 1 set Myself to GetSelf Myself.pushactoraway MyTarget 3 Else ShowMessage StonewallMessage EndIf endif end
974RexSCRIPTscn RexSCRIPT ; Follower Variables short CombatStyleRanged short CombatStyleMelee short DoOnce short FollowerSwitchAggressive short IsFollowingDefault short IsFollowingShort short IsFollowingLong short Waiting ; Getting Rex variables int LearnedAboutDocHenry ; 0 = Didn't talk to Julie, 1 = Talked to Julie int TalkedToKingAboutRex ; 0 = Didn't talk, 1 = Did talk ; Rex's brain transplant variables short ReceivedTransplant ; 0 = No transplant, 1 = Doctor Henry (or Calamity) swapped out Rex's old brain for a new one ;--------------------------------------------------------------------------------------------------------------------------------------------- begin OnCombatEnd if GetPlayerTeammate == 1 resethealth restoreav perceptioncondition 100 restoreav endurancecondition 100 restoreav leftattackcondition 100 restoreav leftmobilitycondition 100 restoreav rightattackcondition 100 restoreav rightmobilitycondition 100 endif end ;--------------------------------------------------------------------------------------------------------------------------------------------- begin OnDeath if VNPCFollowers.RexHired == 1 set VNPCFollowers.nCurrentFollowers to VNPCFollowers.nCurrentFollowers - 1 ; <<< (Added 7_10_10) To update "nCurrentFollowers" properly -ETB if (VNPCFollowers.nCurrentFollowers == 0) ; <<< set VNPCFollowers.bPlayerHasFollower to 0 ; <<< endif ; <<< set VNPCFollowers.RexHired to 0 set VNPCFollowers.bCritterInParty to 0 ShowMessage FollowerMessageDeadRex ; Remove Rex's companion perk from player player.RemovePerk SearchAndMark ShowMessage FollowerMessagePerkRexRemove endif if (GetStageDone VMS24 100 == 0) SetStage VMS24 110 endif set VNPCFollowers.bRexDead to 1 end ;--------------------------------------------------------------------------------------------------------------------------------------------- begin GameMode if GetQuestRunning VMQ03a if (GetDistance VHDLegionAssassinBomberREF < 192) && (DoOnce == 0) set DoOnce to 1 ;sayto VHDLegionAssassinBomberREF Hello 1 set VMQ03a.iDogFoundSpy to 1 Look VHDLegionAssassinBomberREF playIdle LooseDogBarkSingleHighPriority elseif (GetDistance VHDLegionSniperREF < 192) && (DoOnce == 0) set DoOnce to 1 Look VHDLegionSniperREF playIdle LooseDogBarkSingleHighPriority endif endif end
975RHSProtectronSCRIPTscn RHSProtectronSCRIPT short talk ; set to 1 to start talking float timer ; used for custom dialogue ; variable01: ; 0: off ; 1-2: turning on ; >= 3: patrolling ; 4: will force greet player ; 9: done with force greet short playerDetected ; set to 1 if player has been detected begin onLoad if getav variable01 == 0 ; I'm currently "off" set talk to 0 ; make me unconscious so I don't play sounds setUnconscious 1 endif end begin OnActivate if isActionRef player == 0 if getav variable01 == 0 ; I'm currently "off" set timer to 1.5 set talk to 1 setav variable01 1 ; turn on setUnconscious 0 ; not unconscious any more Activate ; tell pod to open else setav variable01 0 ; turn off set talk to 0 evp endif else Activate endif end begin gamemode ; update my packages if player is detected (to activate force greet package) if playerDetected == 0 && getav variable01 == 4 if getDetected player == 1 evp set playerDetected to 1 endif endif if talk == 1 && getDead == 0 if timer > 0 set timer to timer - GetSecondsPassed else Say MetroRobotTalk ;roosevelt greeting set talk to 0 endif endif end begin OnPackageEnd ProtectronNotActive if getav variable01 == 0 Activate ; tell pod to open ; make me unconscious setUnconscious 1 endif end
976RHSSuperMutantGrenadierScriptscn RHSSuperMutantGrenadierScript ; Calls evp on Grenadier mutant so he's forced out of his Guard package when hes out of ammo short runTimer float timer begin OnLoad set runTimer to 1 set timer to 0.1 end begin GameMode if runTimer == 1 if timer > 0 set timer to timer - GetSecondsPassed else if getItemCount WeapGrenadeFrag == 0 stopcombat evp set runTimer to 0 endif endif endif end
977RobcoCeilingTurretScriptscn RobcoCeilingTurretScript begin onLoad stopCombat setUnconscious 1 end begin OnActivate if isActionRef player == 1 activate else setUnconscious 0 endif end
978RobcoProtectronSCRIPTscn RobcoProtectronSCRIPT begin onLoad if getav variable01 == 0 ; I'm currently "off" ; make me unconscious so I don't play sounds setUnconscious 1 else setav variable01 4 endif end begin OnActivate if isActionRef player == 0 if getav variable01 == 0 ; I'm currently "off" setav variable01 1 ; turn on setUnconscious 0 ; not unconscious any more Activate ; tell pod to open else setav variable01 0 ; turn off evp endif else Activate endif end begin OnPackageEnd ProtectronNotActive if getav variable01 == 0 Activate ; to get pod to close behind me ; make me unconscious setUnconscious 1 endif end
979RoseofSharonCassidyScriptscn RoseofSharonCassidyScript int Waiting int CombatStyleMelee int CombatStyleRanged int IsFollowingDefault int IsFollowingLong int FollowerSwitchAggressive ;--------------------------------------------------------------------------------------------------------------------------------------------- begin OnDeath if VNPCFollowers.bCassHired == 1 set VNPCFollowers.nCurrentFollowers to VNPCFollowers.nCurrentFollowers - 1; if (VNPCFollowers.nCurrentFollowers == 0) set VNPCFollowers.bPlayerHasFollower to 0 endif set VNPCFollowers.bCassHired to 0 set VNPCFollowers.bHumanoidInParty to 0 ShowMessage FollowerMessageDeadCass player.RemovePerk WhiskeyRose ShowMessage FollowerMessagePerkCassRemove endif ; If you're on Cass' companion quest, update the quest to fail If getstage vCassCompanion >= 0 SetStage VCassCompanion 110 endif ; If you've been tasked with killing Cass, update the quest if GetObjectiveDisplayed VMS29a 40 == 1 && GetObjectiveCompleted VMS29a 40 == 0 SetObjectiveCompleted VMS29a 40 1 SetObjectiveDisplayed VMS29a 46 1 endif ; If the player has not gone to see Alice McLafferty and asked where Cass is, ; hide that objective if GetObjectiveDisplayed VMS29a 41 == 1 && GetObjectiveCompleted VMS29a 41 == 0 SetObjectiveDisplayed VMS29a 41 0 endif ; VMS05 - player was sent by Alice McLafferty to negotation with Cass if (GetObjectiveDisplayed VMS05 30) && (GetObjectiveCompleted VMS05 30 == 0) SetObjectiveDisplayed VMS05 30 0 SetObjectiveDisplayed VMS05 36 1 endif set VNPCFollowers.bCassDead to 1 end ;--------------------------------------------------------------------------------------------------------------------------------------------- begin OnCombatEND if GetPlayerTeammate == 1 resethealth restoreav perceptioncondition 100 restoreav endurancecondition 100 restoreav leftattackcondition 100 restoreav leftmobilitycondition 100 restoreav rightattackcondition 100 restoreav rightmobilitycondition 100 endif end ;--------------------------------------------------------------------------------------------------------------------------------------------- begin OnHit VFSJeanBaptisteCuttingREF ; If the player has the objective to bring Cass back to Jean-Baptiste, when he shoots ; her she disintegrates if GetObjectiveDisplayed VMS29a 45 == 1 || GetObjectiveDisplayed VMS29a 36 == 1 && VFSJeanBaptisteCuttingREF.IsInCombat == 0 ; Removing Cass from factions so she actually dies in non-hardcore mode RoseOfSharonCassidyREF.RemoveFromAllFactions RoseOfSharonCassidyREF.SetPlayerTeammate 0 ; Kill Cass, and disintegrate her kill CIOS LaserDisintegrationFXSpell ; Update quest SetObjectiveCompleted VMS29a 36 1 ; In case player had Cass already SetObjectiveCompleted VMS29a 45 1 ; If the player tried to defend Cass, Jean-Baptiste attacks after killing Cass if VMS29a.JeanBaptistePissed == 1 SetEnemy VanGraffFaction PlayerFaction EnablePlayerControls else ; Need to pause to let Cass disintegrate before JB talks to the player set VFSSilverRushCassKillingTriggerREF.CassKilled to 1 ;VFSJeanBaptisteCuttingREF.StartConversation player endif endif end BEGIN OnLoad ;Script to make sure we set the right combat style on loading. If (CombatStyleMelee == 1) RoseofSharonCassidyREF.SetCombatStyle FollowersCombatStyleMelee; Else RoseofSharonCassidyREF.SetCombatStyle FollowersCombatStyleRanged; EndIf END
980RouletteDealerMarkerScriptscn RouletteDealerMarkerScript int iTrigger int iEnter begin onTrigger set iTrigger to iTrigger + 1 end begin onTriggerEnter set iEnter to iEnter +1 end
981RouletteTableAtomicWranglerScriptscn RouletteTableAtomicWranglerScript begin OnActivate if IsActionRef player if VCasinoCompsAtomicWrangler.Banned ShowMessage AtomicWranglerSlotsMsg else ShowRouletteMenuParams AtomicWranglerCasinoData 1 200 0 endif else playgroup forward 1 endif end
982RouletteTableTheTopsScriptscn RouletteTableTheTopsScript begin OnActivate playgroup forward 1 if IsActionRef player if VCasinoCompsTheTops.bFloorManagerIncoming ShowMessage TheTopsFloorManagerMsg else ShowRouletteMenuParams TheTopsCasinoData 1 200 0 endif endif end
983RouletteTableUltraLuxeScriptscn RouletteTableUltraLuxeScript ; this is what happens when you need a new static and text is locked so you can't give it a name. BEGIN OnLoad RouletteTableUltraLuxeStatic1REF.SetDestroyed 1; RouletteTableUltraLuxeStatic2REF.SetDestroyed 1; RouletteTableUltraLuxeStatic3REF.SetDestroyed 1; END begin OnActivate playgroup forward 1 if IsActionRef player if VCasinoCompsUltraLuxe.bFloorManagerIncoming ShowMessage UltraLuxeFloorManagerMsg else ShowRouletteMenuParams UltraLuxeCasinoData 1 200 0 endif endif end
984RR01EcvDoorBg01SCRIPTscn RR01EcvDoorBg01SCRIPT Begin onActivate if IsActionRef player == 1 showmessage RR01BarricadeDoor01Msg endif End
985RRExtMainEntranceDoor01SCRIPTscn RRExtMainEntranceDoor01SCRIPT Begin onActivate if (IsActionRef Player == 1) showmessage GenericDoorActivatedElsewhereMsg ;elseif (IsActionRef RRExteriorStage1TriggerREF == 1) ; activate endif End
986RRExtMainEntranceDoor02SCRIPTscn RRExtMainEntranceDoor02SCRIPT Begin onLoad DamageObject 2 End
987RSAlphaCastilloScriptscn RSAlphaCastilloScript begin OnDeath VMS52RadioAlphaRef.SetDestroyed 0 end
988RSBravoTildenScriptscn RSBravoTildenScript begin OnDeath VMS52RadioBravoRef.SetDestroyed 0 end
989RSCharlieQuestScriptscn RSCharlieQuestScript begin OnTrigger player ; Set variable to mark that player has seen the carnage ; Update quest if the player has the quest to investigate the place from Ranger Andy ; Update the quest if the player does the optional parts of the investigation ; if getStage if player.getHasNote RSCharlieAudioLog02 && VFreeformNovac.nRangerStationCharlieStage < 30 set VFreeformNovac.nRangerStationCharlieStage to 30 endif end
990RSCharlieStepinacScriptscn RSCharlieStepinacScript begin OnDeath VMS52RadioCharlieRef.SetDestroyed 0 end
991RSDeltaSchefferScriptscn RSDeltaSchefferScript begin OnDeath VMS52RadioDeltaRef.SetDestroyed 0 end
992RSEchoGreenScriptscn RSEchoGreenScript begin OnDeath VMS52RadioEchoRef.SetDestroyed 0 end
993RSFoxtrotLenkScriptscn RSFoxtrotLenkScript begin OnDeath VMS52RadioFoxtrotRef.SetDestroyed 0 end
994RSRadioUpdatedCheckSCRIPTscn RSRadioUpdatedCheckSCRIPT ;check to see if all stations updated begin OnActivate ;Disabled 6/30 CESif getStage VMSRSFoxtrotQuest == 20 && getStage VMSRSAlphaQuest == 20 && getStage VMSRSBravoQuest == 20 && getStage VMSRSCharlieQuest == 20 && getStage VMSRSDeltaQuest == 20 && getStage VMSRSEchoQuest == 20 ;setObjectiveCompleted VMSRSGlobalCommBreakdown 10 1 ;setObjectiveDisplayed VMSRSGlobalCommBreakdown 21 0 ;setObjectiveDisplayed VMSRSGlobalCommBreakdown 22 0 ;setObjectiveDisplayed VMSRSGlobalCommBreakdown 23 0 ;setObjectiveDisplayed VMSRSGlobalCommBreakdown 24 0 ;setObjectiveDisplayed VMSRSGlobalCommBreakdown 25 0 ;setObjectiveDisplayed VMSRSGlobalCommBreakdown 26 0 ;Disabled 6/30 CES setStage VMSRSGlobalCommBreakdown 20 ;Disabled 6/30 CES ShowMessage BMRadioHelloMsg ;Disabled 6/30 CESendif end
995SafehouseBoS01scn SafehouseBoS01 Begin onTriggerEnter SatoREF if vSafehouse.SatoGoToSleep == 1 SatoREF.moveto SatoSleep SatoREF.setunconscious 1 elseif vSafehouse.SatoWakeUp == 1 Set vSafehouse.SatoToBunker to 1 SatoREF.evp endif End
996SafehouseBoS02scn SafehouseBoS02 Begin onTriggerEnter SatoREF SatoREF.moveto SatoDoor End
997SafehouseBoS03scn SafehouseBoS03 Begin onTriggerEnter SatoREF Set vSafehouse.SatoGoSandbox to 1 Set vSafehouse.SatoToBunker to 0 SatoREF.evp End
998SafehouseFollowers01scn SafehouseFollowers01 Begin onTriggerEnter WeirREF if vSafehouse.WeirGoToSleep == 1 WeirREF.moveto WeirSleep WeirREF.setunconscious 1 elseif vSafehouse.WeirWakeUp == 1 Set vSafehouse.WeirGoSandbox to 1 WeirREF.evp endif End
999SafehouseFollowers02scn SafehouseFollowers02 Begin onTriggerEnter WeirREF WeirREF.moveto WeirDoor End
1000SafehouseFollowersTimerScriptscn SafehouseFollowersTimerScript Float iTimer short doOnce begin GameMode if GetDayOfWeek == 1 && doOnce == 0 set doOnce to 1 set vSafehouse.WeirStim to 0 elseif GetDayOfWeek == 4 && doOnce == 0 set doOnce to 1 set vSafehouse.WeirStim to 0 elseif GetDayOfWeek == 0 || GetDayOfWeek == 2 || GetDayOfWeek == 3 || GetDayOfWeek == 5 || GetDayOfWeek == 6 set doOnce to 0 endif end
1001SafehouseFridgeResetScriptscn SafehouseFridgeResetScript begin GameMode if GetDayOfWeek == 1 || GetDayOfWeek == 4 SFRefrig01REF.ResetInventory SFRefrig02REF.ResetInventory endif end
1002SafehouseLegion01scn SafehouseLegion01 Begin onTriggerEnter AtticusREF if vSafehouse.AtticusGoToSleep == 1 AtticusREF.moveto AtticusSleep AtticusREF.setunconscious 1 elseif vSafehouse.AtticusWakeUp == 1 Set vSafehouse.AtticusGoSandbox to 1 AtticusREF.evp endif End
1003SafehouseLegion02scn SafehouseLegion02 Begin onTriggerEnter AtticusREF AtticusREF.moveto AtticusDoor End
1004SafehouseLegionTimerScriptscn SafehouseLegionTimerScript Float iTimer short doOnce begin GameMode if GetDayOfWeek == 2 && doOnce == 0 set doOnce to 1 set vSafehouse.AtticusMisc to 0 elseif GetDayOfWeek == 5 && doOnce == 0 set doOnce to 1 set vSafehouse.AtticusMisc to 0 elseif GetDayOfWeek == 0 || GetDayOfWeek == 1 || GetDayOfWeek == 3 || GetDayOfWeek == 4 || GetDayOfWeek == 6 set doOnce to 0 endif end
1005SafehouseNCR01scn SafehouseNCR01 Begin onTriggerEnter GomezREF if vSafehouse.GomezGoToSleep == 1 GomezREF.moveto GomezSleep GomezREF.setunconscious 1 elseif vSafehouse.GomezWakeUp == 1 Set vSafehouse.GomezToBuilding to 1 GomezREF.evp endif End
1006SafehouseNCR02scn SafehouseNCR02 Begin onTriggerEnter GomezREF GomezREF.moveto GomezDoor End
1007SafehouseNCR03scn SafehouseNCR03 Begin onTriggerEnter GomezREF Set vSafehouse.GomezGoSandbox to 1 Set vSafehouse.GomezToBuilding to 0 GomezREF.evp End
1008SafehouseNCRTimerScriptscn SafehouseNCRTimerScript Float iTimer short doOnce begin GameMode if GetDayOfWeek == 3 && doOnce == 0 set doOnce to 1 set vSafehouse.GomezAmmo to 0 elseif GetDayOfWeek == 6 && doOnce == 0 set doOnce to 1 set vSafehouse.GomezAmmo to 0 elseif GetDayOfWeek == 0 || GetDayOfWeek == 1 || GetDayOfWeek == 2 || GetDayOfWeek == 4 || GetDayOfWeek == 5 set doOnce to 0 endif end
1009SafehouseQuestScriptscn SafehouseQuestScript ;BoS variables SHORT SatoGoSandbox SHORT SatoWakeUp SHORT SatoToBunker SHORT SatoGoToSleep ;Followers variables SHORT WeirGoSandbox SHORT WeirWakeUp SHORT WeirGoToSleep SHORT WeirStim ;Legion variables SHORT AtticusGoSandbox SHORT AtticusWakeUp SHORT AtticusGoToSleep SHORT AtticusMisc ;NCR variables SHORT GomezGoSandbox SHORT GomezWakeUp SHORT GomezToBuilding SHORT GomezGoToSleep SHORT GomezAmmo Begin GameMode if GetDayOfWeek == 0 ;BoS SatoREF.SetUnconscious 0 Set SatoWakeUp to 1 Set SatoGoToSleep to 0 SatoREF.evp ;Followers Set WeirGoSandbox to 0 Set WeirWakeUp to 0 Set WeirGoToSleep to 1 WeirREF.evp ;Legion Set AtticusGoSandbox to 0 Set AtticusWakeUp to 0 Set AtticusGoToSleep to 1 AtticusREF.evp ;NCR Set GomezGoSandbox to 0 Set GomezWakeUp to 0 Set GomezGoToSleep to 1 GomezREF.evp elseif GetDayOfWeek == 1 ;BoS Set SatoGoSandbox to 0 Set SatoWakeUp to 0 Set SatoGoToSleep to 1 SatoREF.evp ;Followers WeirREF.SetUnconscious 0 Set WeirWakeUp to 1 Set WeirGoToSleep to 0 WeirREF.evp ;Set WeirStim to 0 ;Legion Set AtticusGoSandbox to 0 Set AtticusWakeUp to 0 Set AtticusGoToSleep to 1 AtticusREF.evp ;NCR Set GomezGoSandbox to 0 Set GomezWakeUp to 0 Set GomezGoToSleep to 1 GomezREF.evp elseif GetDayOfWeek == 2 ;BoS Set SatoGoSandbox to 0 Set SatoWakeUp to 0 Set SatoGoToSleep to 1 SatoREF.evp ;Followers Set WeirGoSandbox to 0 Set WeirWakeUp to 0 Set WeirGoToSleep to 1 WeirREF.evp ;Legion AtticusREF.SetUnconscious 0 Set AtticusWakeUp to 1 Set AtticusGoToSleep to 0 AtticusREF.evp ;Set AtticusMisc to 0 ;NCR Set GomezGoSandbox to 0 Set GomezWakeUp to 0 Set GomezGoToSleep to 1 GomezREF.evp elseif GetDayOfWeek == 3 ;BoS SatoREF.SetUnconscious 0 Set SatoWakeUp to 1 Set SatoGoToSleep to 0 SatoREF.evp ;Followers Set WeirGoSandbox to 0 Set WeirWakeUp to 0 Set WeirGoToSleep to 1 WeirREF.evp ;Legion Set AtticusGoSandbox to 0 Set AtticusWakeUp to 0 Set AtticusGoToSleep to 1 AtticusREF.evp ;NCR GomezREF.SetUnconscious 0 Set GomezWakeUp to 1 Set GomezGoToSleep to 0 GomezREF.evp ;Set GomezAmmo to 0 elseif GetDayOfWeek == 4 ;BoS Set SatoGoSandbox to 0 Set SatoWakeUp to 0 Set SatoGoToSleep to 1 SatoREF.evp ;Followers WeirREF.SetUnconscious 0 Set WeirWakeUp to 1 Set WeirGoToSleep to 0 WeirREF.evp ;Set WeirStim to 0 ;Legion Set AtticusGoSandbox to 0 Set AtticusWakeUp to 0 Set AtticusGoToSleep to 1 AtticusREF.evp ;NCR Set GomezGoSandbox to 0 Set GomezWakeUp to 0 Set GomezGoToSleep to 1 GomezREF.evp elseif GetDayOfWeek == 5 ;BoS Set SatoGoSandbox to 0 Set SatoWakeUp to 0 Set SatoGoToSleep to 1 SatoREF.evp ;Followers Set WeirGoSandbox to 0 Set WeirWakeUp to 0 Set WeirGoToSleep to 1 WeirREF.evp ;Legion AtticusREF.SetUnconscious 0 Set AtticusWakeUp to 1 Set AtticusGoToSleep to 0 AtticusREF.evp ;Set AtticusMisc to 0 ;NCR Set GomezGoSandbox to 0 Set GomezWakeUp to 0 Set GomezGoToSleep to 1 GomezREF.evp elseif GetDayOfWeek == 6 ;BoS Set SatoGoSandbox to 0 Set SatoWakeUp to 0 Set SatoGoToSleep to 1 SatoREF.evp ;Followers Set WeirGoSandbox to 0 Set WeirWakeUp to 0 Set WeirGoToSleep to 1 WeirREF.evp ;Legion Set AtticusGoSandbox to 0 Set AtticusWakeUp to 0 Set AtticusGoToSleep to 1 AtticusREF.evp ;NCR GomezREF.SetUnconscious 0 Set GomezWakeUp to 1 Set GomezGoToSleep to 0 GomezREF.evp ;Set GomezAmmo to 0 endif End
1010SantiagoFXSCRIPTscn SantiagoFXSCRIPT float timer int reset int bump begin gamemode if reset == 0 VFSAngeloREF.SetRestrained 1 DisablePlayerControls 1 1 1 0 1 1 1 imod FadeToBlack9sISFX set timer to 0 set bump to 0 set reset to 1 endif set timer to timer + getsecondspassed if timer > 1.5 && bump == 0 PlaySound NPCIdleScratchShoulder set bump to 1 endif elseif timer > 2.5 && bump == 1 PlaySound NPCIdleScratchSelf set bump to 2 endif elseif timer > 3.5 && bump == 2 PlaySound NPCIdleScratchSelf set bump to 3 endif elseif timer > 4.5 && bump == 3 PlaySound NPCIdleScratchSelf set bump to 4 endif elseif timer > 5.5 && bump == 4 PlaySound CWaterExplosionSplash set bump to 5 endif if timer > 9 set reset to 0 enableplayercontrols if GameHour <= 23 set GameHour to GameHour + 1 else set GameDaysPassed to GameDaysPassed + 1 set Gamehour to 1 endif set VFSAngeloREF.iWorking to 0 VFSAngeloREF.SetRestrained 0 VFSAngeloREF.evp stopquest SantiagoFX endif end
1011SarahBedClothingScriptscn SarahBedClothingScript ; Simple script to unequip clothes upon entering a trigger while using a sleep package. ; - Jorge Begin OnTriggerEnter SarahWeintraubREF If SarahWeintraubREF.GetCurrentAIPackage != 4 SarahWeintraubREF.UnEquipItem OutfitPrewarNegligee SarahWeintraubREF.EquipItem VaultSuit21 Return Else SarahWeintraubREF.UnEquipItem VaultSuit21 SarahWeintraubREF.EquipItem OutfitPrewarNegligee Endif End
1012SarahRoomSexScriptScn SarahRoomSexScript ; Script to govern Sarah's behaviors while in her room - mainly used for her "seduction" scenes. ; - Jorge Short bDoOnce Short bSarahTalks Short bBedReady Short bSexScene Short bSarahLeaves Short bSexOnce Short iCount Float fTimer Float fTimeSinceLay Float fSexTimer Begin GameMode If VFreeformTheStreet01.SexIntro == 1 If bSexScene == 1 Set fSexTimer to fSexTimer + GetSecondsPassed If iCount < 1 ApplyImageSpaceModifier FadeToBlackPermanent ;AndBackISFX12 ;Player.SetRestrained 1 Set iCount to 1 Return Elseif iCount == 1 && fSexTimer >= 5 PlaySound AMBGomorrahProstSleep ApplyImageSpaceModifier BlackSexISFX Set iCount to 2 Return Elseif iCount == 2 && fSexTimer >= 11 PlaySound AMBGomorrahProstSleep ;ApplyImageSpaceModifier FadeToBlackAndBackQuickExtendedISFX Set iCount to 3 Return Elseif iCount == 3 && fSexTimer >= 17 RemoveImageSpaceModifier BlackSexISFX ApplyImageSpaceModifier FadeInFromBlack4sISFX EnablePlayerControls Set GameHour to GameHour + 3 Player.CIOS WellRestedSpell Set fSexTimer to 0 Set iCount to 0 Set bSexOnce to 1 Set VFreeformTheStreet01.GotRide to 1 Set bSexScene to 0 Return Endif Endif If VFreeformTheStreet01.GotRide != 1 If VFreeformTheStreet01.Coming == 1 If bDoOnce != 1 Set fTimeSinceLay to GameDaysPassed Set bSarahLeaves to 0 Set bDoOnce to 1 Else If bSarahTalks != 1 Set fTimer to fTimer + GetSecondsPassed If iCount < 1 && fTimer >= 0.1 SarahWeintraubREF.Disable Set iCount to 1 Return Elseif iCount == 1 && fTimer >= 0.4 SarahWeintraubREF.MoveTo VSarahSexPort01Marker Set iCount to 2 Return Elseif iCount == 2 && fTimer >= 0.6 SarahWeintraubREF.Enable Set VFreeformTheStreet01.SarahTalks to 1 ; Redundant, but what the hell. Set iCount to 3 Return Elseif iCount == 3 && fTimer >= 0.7 SarahWeintraubREF.ResetAI Set iCount to 0 Set fTimer to 0 Set bSarahTalks to 1 Return Endif Else If bSexOnce != 1 If VFreeformTheStreet01.SarahTalks >= 1 && VFreeformTheStreet01.SarahTalks < 3 If SarahWeintraubREF.GetSleeping == 3 Set bSexScene to 1 Set VFreeformTheStreet01.SarahTalks to 3 If V21PlayerRoomDoorREF.GetOpenState >= 1 && V21PlayerRoomDoorREF.GetOpenState < 3 V21PlayerRoomDoorREF.SetOpenState 0 Endif Set bSexOnce to 1 Endif Endif Endif Endif Endif Endif Else If ( GameDaysPassed >= ( fTimeSinceLay + 0.4 ) ) && bSarahLeaves != 1 SarahWeintraubREF.ResetAI SarahWeintraubREF.UnEquipItem OutfitPrewarNegligee SarahWeintraubREF.EquipItem VaultSuit21 Set bSarahLeaves to 1 Set bSexOnce to 0 Set VFreeformTheStreet01.Coming to 0 Set VFreeformTheStreet01.SexIntro to 0 Set VFreeformTheStreet01.SarahTalks to 0 Set bSarahTalks to 0 Set bDoOnce to 0 Return Endif Endif Endif End
1013SarahSceneStartTriggerScriptscn SarahSceneStartTriggerScript ; This trigger kicks off the sex scene with Sarah. I'm using here a different method than what I worked out for Red Lucy and Joana. In this case, Sarah does not reach the room on her own, and players ; are locked while the scene takes place. Ideally, this would follow the other examples, but this was not advisable in at this point. ; - Jorge Begin OnTriggerEnter Player If VFreeformTheStreet01.Coming == 1 && VFreeformTheStreet01.GotRide != 1 && SarahWeintraubREF.GetDead != 1 && SarahWeintraubREF.GetDisabled != 1 Set VFreeformTheStreet01.SexIntro to 1 Set VFreeformTheStreet01.SarahTalks to 1 DisablePlayerControls Elseif VFreeformTheStreet01.GotRide == 1 Set VFreeformTheStreet01.SexIntro to 0 Endif End
1014SarahWeintraubScriptScn SarahWeintraubScript ; - Jorge Short Attacked Begin OnDeath Set VFreeformTheStreet01.SarahDead to 1 End
1015SatCom01DoorSCRIPTscn SatCom01DoorSCRIPT ; simple activate blocker. Don't let members of Talon Company get below this hatch. ref myActor begin onActivate set myActor to getActionRef if myActor.getInFaction TalonCompany == 1 ; do nothing else activate endif end
1016SatComDelaySCRIPTscn SatComDelaySCRIPT ; this script is attached to a trigger that we use to get a better guess on the player's chance to see the bombs fall. begin onTriggerLeave if NQlvl.launchCodesUploaded == 1 if NQlvl.launchInView == 0 set NQlvl.launchInView to 1 endif endif end
1017SchematicsBottlecapMineItemSCRIPTscn SchematicsBottlecapMineItemSCRIPT short AddOnce ;Do Once variable BEGIN OnAdd player if (AddOnce == 0) ;If the player already has a copy of the schematic, getting another improves the quality of the created item and updates the note. ;Second Improvement if (player.gethasnote SchematicsBottlecapMineNote10 == 1) ;Increment a variable for number of times this schematic has been gotten. set countBottlecapBonus to 1.25 ;Show message of quality improvement. ShowMessage SchematicsImprovedMsg player.removeNote SchematicsBottlecapMineNote10 player.addNote SchematicsBottlecapMineNote20 ;Remove this item from inventory set AddOnce to 1 removeme ;First Improvement elseif (player.gethasnote SchematicsBottlecapMineNote == 1) ;Increment a variable for number of times this schematic has been gotten. set countBottlecapBonus to 1 ;Show message of quality improvement. ShowMessage SchematicsImprovedMsg player.removeNote SchematicsBottlecapMineNote player.addNote SchematicsBottlecapMineNote10 ;Remove this item from inventory set AddOnce to 1 removeme ;Otherwise, just add the note elseif (player.gethasnote SchematicsBottlecapMineNote20 == 0) ;Add the Schematic Note player.addNote SchematicsBottlecapMineNote ;Remove this item from inventory set AddOnce to 1 removeme endif endif END
1018SchematicsDartGunItemSCRIPTscn SchematicsDartGunItemSCRIPT short AddOnce BEGIN OnAdd player if (AddOnce == 0) ;If the player already has a copy of the schematic, getting another improves the quality of the created item. ;Second Improvement if (player.gethasnote SchematicsDartGunNote10 == 1) ;Increment a variable for number of times this schematic has been gotten. set countDartgunBonus to 1.25 ;Show message of quality improvement. ShowMessage SchematicsImprovedMsg player.removeNote SchematicsDartGunNote10 player.addNote SchematicsDartGunNote20 ;Remove this item from inventory set AddOnce to 1 removeme ;First Improvement elseif (player.gethasnote SchematicsDartGunNote == 1) ;Increment a variable for number of times this schematic has been gotten. set countDartGunBonus to 1 ;Show message of quality improvement. ShowMessage SchematicsImprovedMsg player.removeNote SchematicsDartGunNote player.addNote SchematicsDartGunNote10 ;Remove this item from inventory set AddOnce to 1 removeme ;Otherwise, just add the note elseif (player.gethasnote SchematicsDartGunNote20 == 0) ;Add the Schematic Note player.addNote SchematicsDartGunNote ;Remove this item from inventory set AddOnce to 1 removeme endif endif END
1019SchematicsDeathclawGauntletItemSCRIPTscn SchematicsDeathclawGauntletItemSCRIPT short AddOnce BEGIN OnAdd player if (AddOnce == 0) ;If the player already has a copy of the schematic, getting another improves the quality of the created item. ;Second Improvement if (player.gethasnote SchematicsDeathclawGauntletNote10 == 1) ;Increment a variable for number of times this schematic has been gotten. set countDeathclawBonus to 1.25 ;Show message of quality improvement. ShowMessage SchematicsImprovedMsg player.removeNote SchematicsDeathclawGauntletNote10 player.addNote SchematicsDeathclawGauntletNote20 ;Remove this item from inventory set AddOnce to 1 removeme ;First Improvement elseif (player.gethasnote SchematicsDeathclawGauntletNote == 1) ;Increment a variable for number of times this schematic has been gotten. set countDeathclawBonus to 1 ;Show message of quality improvement. ShowMessage SchematicsImprovedMsg player.removeNote SchematicsDeathclawGauntletNote player.addNote SchematicsDeathclawGauntletNote10 ;Remove this item from inventory set AddOnce to 1 removeme ;Otherwise, just add the note elseif (player.gethasnote SchematicsDeathclawGauntletNote20 == 0) ;Add the Schematic Note player.addNote SchematicsDeathclawGauntletNote ;Remove this item from inventory set AddOnce to 1 removeme endif endif END
1020SchematicsMantisScythetemScriptscn SchematicsMantisScythetemScript short AddOnce begin OnAdd player if (AddOnce == 0) ;If the player already has a copy of the schematic, getting another improves the quality of the created item. ;Second Improvement if (player.gethasnote SchematicsDeathclawGauntletNote10 == 1) ;Increment a variable for number of times this schematic has been gotten. set countDeathclawBonus to 1.25 ;Show message of quality improvement. ShowMessage SchematicsImprovedMsg player.removeNote SchematicsDeathclawGauntletNote10 player.addNote SchematicsDeathclawGauntletNote20 ;Remove this item from inventory set AddOnce to 1 removeme ;First Improvement elseif (player.gethasnote SchematicsDeathclawGauntletNote == 1) ;Increment a variable for number of times this schematic has been gotten. set countDeathclawBonus to 1 ;Show message of quality improvement. ShowMessage SchematicsImprovedMsg player.removeNote SchematicsDeathclawGauntletNote player.addNote SchematicsDeathclawGauntletNote10 ;Remove this item from inventory set AddOnce to 1 removeme ;Otherwise, just add the note elseif (player.gethasnote SchematicsDeathclawGauntletNote20 == 0) ;Add the Schematic Note player.addNote SchematicsDeathclawGauntletNote ;Remove this item from inventory set AddOnce to 1 removeme endif endif end
1021SchematicsNukaCocktailItemSCRIPTscn SchematicsNukaCocktailItemSCRIPT short AddOnce BEGIN OnAdd player if (AddOnce == 0) ;If the player already has a copy of the schematic, getting another improves the quality of the created item. ;Second Improvement if (player.gethasnote SchematicsNukaCocktailNote10 == 1) ;Increment a variable for number of times this schematic has been gotten. set countNukaBonus to 1.25 ;Show message of quality improvement. ShowMessage SchematicsImprovedMsg player.removeNote SchematicsNukaCocktailNote10 player.addNote SchematicsNukaCocktailNote20 ;Remove this item from inventory set AddOnce to 1 removeme ;First Improvement elseif (player.gethasnote SchematicsNukaCocktailNote == 1) ;Increment a variable for number of times this schematic has been gotten. set countNukaBonus to 1 ;Show message of quality improvement. ShowMessage SchematicsImprovedMsg player.removeNote SchematicsNukaCocktailNote player.addNote SchematicsNukaCocktailNote10 ;Remove this item from inventory set AddOnce to 1 removeme ;Otherwise, just add the note elseif (player.gethasnote SchematicsNukaCocktailNote20 == 0) ;Add the Schematic Note player.addNote SchematicsNukaCocktailNote ;Remove this item from inventory set AddOnce to 1 removeme endif endif END
1022SchematicsPowderChargeScriptscn SchematicsPowderChargeScript short AddOnce begin OnAdd player player.addNote SchematicsPowderChargeNote removeme end
1023SchematicsRailwayRifleItemSCRIPTscn SchematicsRailwayRifleItemSCRIPT short AddOnce BEGIN OnAdd player if (AddOnce == 0) ;If the player already has a copy of the schematic, getting another improves the quality of the created item. ;Second Improvement if (player.gethasnote SchematicsRailwayRifleNote10 == 1) ;Increment a variable for number of times this schematic has been gotten. set countRailwayBonus to 1.25 ;Show message of quality improvement. ShowMessage SchematicsImprovedMsg player.removeNote SchematicsRailwayRifleNote10 player.addNote SchematicsRailwayRifleNote20 ;Remove this item from inventory set AddOnce to 1 removeme ;First Improvement elseif (player.gethasnote SchematicsRailwayRifleNote == 1) ;Increment a variable for number of times this schematic has been gotten. set countRailwayBonus to 1 ;Show message of quality improvement. ShowMessage SchematicsImprovedMsg player.removeNote SchematicsRailwayRifleNote player.addNote SchematicsRailwayRifleNote10 ;Remove this item from inventory set AddOnce to 1 removeme ;Otherwise, just add the note elseif (player.gethasnote SchematicsRailwayRifleNote20 == 0) ;Add the Schematic Note player.addNote SchematicsRailwayRifleNote ;Remove this item from inventory set AddOnce to 1 removeme endif endif END
1024SchematicsRockItLauncherItemSCRIPTscn SchematicsRockItLauncherItemSCRIPT short AddOnce BEGIN OnAdd player if (AddOnce == 0) ;If the player already has a copy of the schematic, getting another improves the quality of the created item. ;Second Improvement if (player.gethasnote SchematicsRockItLauncherNote10 == 1) ;Increment a variable for number of times this schematic has been gotten. set countRockItBonus to 1.25 ;Show message of quality improvement. ShowMessage SchematicsImprovedMsg player.removeNote SchematicsRockItLauncherNote10 player.addNote SchematicsRockItLauncherNote20 ;Remove this item from inventory set AddOnce to 1 removeme ;First note -> first Improvement elseif (player.gethasnote SchematicsRockItLauncherNote == 1) ;Increment a variable for number of times this schematic has been gotten. set countRockItBonus to 1 ;Show message of quality improvement. ShowMessage SchematicsImprovedMsg player.removeNote SchematicsRockItLauncherNote player.addNote SchematicsRockItLauncherNote10 ;Remove this item from inventory set AddOnce to 1 removeme ;Otherwise, just add the note elseif (player.gethasnote SchematicsRockItLauncherNote20 == 0) ;Add the Schematic Note player.addNote SchematicsRockItLauncherNote ;Remove this item from inventory set AddOnce to 1 removeme endif endif END
1025SchematicsShishkebabItemSCRIPTscn SchematicsShishkebabItemSCRIPT short AddOnce BEGIN OnAdd player if (AddOnce == 0) ;If the player already has a copy of the schematic, getting another improves the quality of the created item. ;Second Improvement if (player.gethasnote SchematicsShishkebabNote10 == 1) ;Increment a variable for number of times this schematic has been gotten. set countShishkebabBonus to 1.25 ;Show message of quality improvement. ShowMessage SchematicsImprovedMsg player.removeNote SchematicsShishkebabNote10 player.addNote SchematicsShishkebabNote20 ;Remove this item from inventory set AddOnce to 1 removeme ;First Improvement elseif (player.gethasnote SchematicsShishkebabNote == 1) ;Increment a variable for number of times this schematic has been gotten. set countShishkebabBonus to 1 ;Show message of quality improvement. ShowMessage SchematicsImprovedMsg player.removeNote SchematicsShishkebabNote player.addNote SchematicsShishkebabNote10 ;Remove this item from inventory set AddOnce to 1 removeme ;Otherwise, just add the note elseif (player.gethasnote SchematicsShishkebabNote20 == 0) ;Add the Schematic Note player.addNote SchematicsShishkebabNote ;Remove this item from inventory set AddOnce to 1 removeme endif endif END
1026ScorpionBurrowDeadScriptScn ScorpionBurrowDeadScript Short bQueenDead Short bNewMonsters Float fDayQueenDied Begin GameMode If bQueenDead == 1 && bNewMonsters != 1 If GameDaysPassed >= ( fDayQueenDied + 6 ) BurrowQueenDeadMarker.Enable Set bNewMonsters to 1 Endif Else If bQueenDead != 1 If VScorpionBurrowQueenREF.GetDead == 1 Set bQueenDead to 1 Set fDayQueenDied to GameDaysPassed Endif EndIf Endif End
1027ScorpionBurrowQueenScriptScn ScorpionBurrowQueenScript Short bDoOnce Begin OnTriggerEnter Player If bDoOnce != 1 VScorpionBurrowQueenREF.AddScriptPackage ScorpionBurrowQueenPackage Set bDoOnce to 1 Endif End
1028SDOHandlerScriptscn SDOHandlerScript ;This small script handles the disable of the SDO after successful transaction short DoneStuff begin gamemode if ( DoneStuff == 0 ) ;Disabled 6/30 CES if ( DialogueMSMini.SDODone == 1 ) if ( GetInSameCell Player == 0 ) Disable set DoneStuff to 1 endif ;Disabled 6/30 CES endif endif end
1029SecuritronTrigger2scn SecuritronTrigger2 short bDoneOnce; Begin OnTriggerEnter Player if (getstage vmqhouse1 == 25 || GetStage VMQYesMan01 == 75) && bDoneOnce != 1 Set UpgradeSecuritronsObjectREF.Runtimer to 1 Set VstoryEventSecuritronsUpgraded to 1 Set bDoneOnce to 1 endif End
1030SecuritronVaultExplodeQuestScriptscn SecuritronVaultExplodeQuestScript short DoOnce float Timer begin GameMode if (VMQ02.RegulatorsDestroyed == 3) if DoOnce == 0 set Timer to 1 set DoOnce to 1 endif if Timer > 0 set Timer to Timer - GetSecondsPassed else SVRumbleRef.Enable player.PlaySound3D EMTSecuritronVaultMetalGroan player.PlaySound3D EMTSecuritronVaultCeilingCrumble SVVaultDestructionMarker.Enable SVLowRadiationMarker.Disable SVHighRadiationMarker.Enable ShowMessage SVPowerAlert2 SVExplosionMarker01.PlaceAtMe BusNukeExplosion SVInitialExplosionMarker02.PlaceAtMe BusNukeExplosion SecuritonConsoleMarker.Enable SVSecuritron02Ref.KillActor FortCaesarRef 1 0 if (GetObjectiveDisplayed VMQ02 5) SetObjectiveCompleted VMQ02 5 1 SetStage VMQ02 7 endif if (GetObjectiveDisplayed VMQYesMan01a 48 == 1) && (GetObjectiveCompleted VMQYesMan01a 48 == 0) SetObjectiveCompleted VMQYesMan01a 48 1 SetStage VMQYesMan01a 110 endif if (GetObjectiveDisplayed VMQYesMan01a 45 == 1) && (GetObjectiveCompleted VMQYesMan01a 45 == 0) SetObjectiveCompleted VMQYesMan01a 45 0 endif SetStage VMQHouse1 110 SetStage VMQHouse2 110 set VStoryEventSecuritronsFort to 2 ; Mr. House forced to accept NCR governance. set VStoryEventMrHousePissed to 2 set VFreeformTheFort.bHelpedCaesar to 1 SetEnemy Lucky38Faction PlayerFaction ;SetEnemy VStreetSecuritronFaction playerFaction ; (Added 7_19_10) -ETB ; Removed 7/23/10 - Jorge Lucky38VictorElevatorPenthouseREF.disable Lucky38VictorElevatorSuiteREF.disable Lucky38VictorElevatorBasementREF.disable Lucky38VictorElevatorREF.disable SetStage VDialogueLucky38Entrance 10 Lucky38VictorEntranceREF.disable ; (Added 7/27/10 - Jorge) Set Lucky38VictorEntranceREF.bVictorOff to 1 If VDialogueLucky38Entrance.L38EntranceOpen != 1 Lucky38EntranceDoorActor.SetOpenState 1 Set VDialogueLucky38Entrance.L38EntranceOpen to 1 Endif ;------------------------------------- Lucky38MrHouseREF.playidle LooseNVPHMCconnectionLost ; (Sets mainframe face to "Connection Lost...") (Added 7_19_10) -ETB Lucky38MrHouseREF.SetDestroyed 1 ; (So Player cannot start dialogue with House) <<< StopQuest SecuritronVaultExplodeQuest endif endif end
1031SergeantBitterRootScriptscn SergeantBitterRootScript begin OnDeath if (GetStageDone VMS56 100 == 0) SetStage VMS56 110 endif end
1032SgtMcCredieScriptscn SgtMcCredieScript BEGIN OnDeath if GetQuestCompleted VFreeformCampGolf == 0 SetStage VFreeformCampGolf 70 endif If GetObjectiveCompleted VMS36 20 == 0 SetStage VMS36 40 endif END
1033ShalebridgeCompostHeapSCRIPTscn ShalebridgeCompostHeapSCRIPT ; this container does cool stuff. short active ; flag to run gameMode block short HighSci short AvgSci short LowSci short delayMod short seenQueenMsg ;========================================; begin onActivate if IsActionRef player == 1 ;-----------------------To Do: Set to kill queen ant instead----------------------------------------- if NQlvl.enemyColonyKills >= 1 ; must equal the number of ants in opposing colony! set delayMod to 3 ; if player has exterminated opposing colony, respawn two days faster endif set active to 1 if avgSci == 1 && NQlvl.enemyColonyKills >= 1 && seenQueenMsg == 0 ShowMessage ShalebridgeCompostHeapQueenMsg set seenQueenMsg to 1 endif if player.getAV science >= 40 && HighSci == 0 ShowMessage ShalebridgeCompostHeapSmartMsg set HighSci to 1 set avgSci to 1 elseif player.getAV science < 40 && player.getAV science >= 20 && AvgSci == 0 ShowMessage ShalebridgeCompostHeapAveMsg Set avgSci to 1 elseif player.getAV science < 20 && LowSci == 0 ShowMessage ShalebridgeCompostHeapStupidMsg set lowSci to 1 endif endif end ;========================================; begin gameMode if active == 1 if NQlvl.DayLastSpawned < 1 ; must be my first time being spawned set NQlvl.DayLastSpawned to gameDaysPassed ; save the current day to test when to respawn additem AntNectar 2 ; add initial freebie nectars else if gameDaysPassed >= ( NQlvl.DayLastSpawned + (7 - delayMod )) ; default spawn rate is 1x/week, delayMod can shorten this additem AntNectar 1 ; we're ready to respawn, so add nectar if NQlvl.PCstimulatedEggs >= 1 additem AntNectar 1 ; bonus dose if player cultured egg pile w/stimpak set NQlvl.PCstimulatedEggs to 0 endif set NQlvl.DayLastSpawned to gameDaysPassed ; and set this as the new spawn date endif endif if player.getAV science >= 20 ; blocks conditionalized for player access to contents activate player endif set active to 0 ; we're done, turn off the gameMode block. endif end
1034ShalebridgeEggPileSCRIPTscn ShalebridgeEggPileSCRIPT short button short active ;----------------------------------------------------------------------------------- begin onActivate if NQlvl.PCstimulatedEggs == 0 if player.getAV medicine >= 40 || player.getAV science >= 70 || player.getav intelligence == 8 if player.getItemCount stimpak > 0 ShowMessage ShalebridgeEggPileMsg set active to 1 else ShowMessage ShalebridgeEggPileNoStimMsg endif elseif player.getAV intelligence <= 3 ShowMessage ShalebridgeEggPileStupidMsg else ShowMessage ShalebridgeEggPileNoSkillMsg endif endif end ;----------------------------------------------------------------------------------- begin gameMode if active != 0 set button to getButtonPressed set active to 0 if button > -1 if button == 1 ;Message "You have injected the eggs to stimulate future growth" ShowMessage ShalebridgeEggPileStimMsg set NQlvl.PCstimulatedEggs to 1 if player.getItemCount stimpak > 0 player.removeItem stimpak 1 endif elseif button == 0 ; leave it alone. endif endif endif end ;-----------------------------------------------------------------------------------
1035ShalebridgeInvaderAntScriptscn ShalebridgeInvaderAntScript short button ref myself begin onActivate set myself to getSelf if (isactionref player == 1) if NQlvl.InvaderAntActivated < 1 set NQlvl.InvaderAntActivated to 1 showMessage ShalebridgeInvaderAntMsg elseif NQlvl.InvaderAntActivated == 2 activate endif endif end begin gameMode if NQlvl.InvaderAntActivated == 1 set button to getbuttonpressed if button > -1 activate set NQlvl.InvaderAntActivated to 2 ;disables message endif endif end
1036SlaveScriptscn SlaveScript begin OnLoad Setactorvalue LeftMobilityCondition 0 Setactorvalue RightMobilityCondition 0 end
1037SleepytimeDogTreatBaseEffectScriptscn SleepytimeDogTreatBaseEffectScript ; Inflicts Fatigue damage on the consumer to temporarily knock it out. ; Effect-level logic should only apply this effect to CreatureType 0. ; Non-animals receive a different negative effect. ; JES Ref SleepytimeTarget Begin ScriptEffectStart Set SleepytimeTarget to GetSelf SleepyTimeTarget.damageav Fatigue 300 End
1038SLGoldMine01VERT3ReturnSCRIPTscn SLGoldMine01VERT3ReturnSCRIPT Begin OnTriggerEnter Player If VERT3ViperGoldMine04REF.GetDead == 1 VERT3ViperGoldMine08REF.Enable Endif End
1039SlotMachineTheTopsScriptscn SlotMachineTheTopsScript begin OnActivate if IsActionRef player if VCasinoCompsTheTops.bFloorManagerIncoming ShowMessage TheTopsFloorManagerMsg else ShowSlotMachineMenuParams TheTopsCasinoData 1 75 0 endif endif end
1040SlotMachineWranglerScriptscn SlotMachineWranglerScript begin OnActivate if IsActionRef player if vCasinoCompsAtomicWrangler.Banned == 1 ShowMessage AtomicWranglerSlotsMsg else ShowSlotMachineMenuParams AtomicWranglerCasinoData 1 40 0 endif endif end
1041SLRemnantsBunkerPanelScriptscn SLRemnantsBunkerPanelScript short Button begin OnActivate if IsActionRef player ShowMessage SLRemnantsBunkerPanelMsg endif end begin MenuMode 1001 set Button to GetButtonPressed if (Button == 1) SLRemnantsBunkerDoor01Ref.Unlock SLRemnantsBunkerDoor02Ref.Unlock VRemJudahKregerRef.Disable VRemJudahKregerBunkerRef.Enable VRemCannibalJohnsonRef.MoveTo VRemCannibalJohnsonMarker VRemDaisyWhitmanRef.MoveTo VRemDaisyWhitmanMarker VRemDoctorHenryRef.MoveTo VRemDoctorHenryMarker VRemOrionMorenoRef.MoveTo VRemOrionMorenoMarker SLRemnantsBunkerDoorRef.Unlock SLRemnantsBunkerDoorRef.SetOpenState 1 SetDestroyed 1 SetStage VMS54 30 endif end
1042SmallEnergyCellBulkAmmoAddScriptscn SmallEnergyCellBulkAmmoAddScript int killme BEGIN OnAdd Player Set killme to 1 END begin GameMode int countofstuff; int numberToAdd; if (killme == 1) Player.AddItem AmmoSmallEnergyCellBulk 100 RemoveMe endif end
1043SporeCarrierBurstScriptscn SporeCarrierBurstScript begin ScriptEffectStart ; Make spore carrier explode! PlaceAtMe SporeCarrierBurstExplode kill player 0 ;kill player 1 ;kill player 3 ;kill player 5 ;kill player 7 ;kill player 10 end
1044SprungBearTrapScriptscn SprungBearTrapScript ;XXXXXXXXXXXXXXXXXXXXX To Do XXXXXXXXXXXXXXXXXXXXXXX ; ; ; Use DamageActorValue to cause damage ; When picked up and dropped, bear trap returns to open state ; ; Decrease trigger radius, or set up to check distance when player is close enough short skillPassed short damageVictim short disarmed ref trapVictim short legHealth short button short justActivated short rewardXPOnce01 ;short rewardXPOnce02 short XPforDisarm ;///////////////////////////////////// ; ON ENTER CELL ;///////////////////////////////////// begin OnLoad ;get the name of this trap setStage NQlvl 1 ;init trap skill requirements ; set justActivated to 0 ; set disarmed to 0 ; Start trap out as closed set disarmed to 1 playgroup Forward 1 end ;///////////////////////////////////// ; ON ACTIVATE ;///////////////////////////////////// begin onActivate if IsActionRef player == 1 ;Check to see if the trap has been triggered if disarmed == 1 ShowMessage TrapBearRearmMsg set justActivated to 1 else ; check the player's science skill to see if they can disarm the trap if player.GetAV Repair >= NQlvl.TRAPBearSkillReq01 ShowMessage TrapBearDetectMsg set justActivated to 1 ;disarmed == 0, justActivated == 1 else ShowMessage TrapLowSkillRepairMsg NQlvl.TRAPBearSkillReq01 set justActivated to 0 endIf endif endif end ;///////////////////////////////////// ; GAMEMODE ;///////////////////////////////////// BEGIN gameMode if justActivated == 1 ;Don't run anything in gameMode unless the player just activated it set button to getbuttonpressed if button > -1 set justActivated to 0 ;stop running stuff if disarmed == 1 ;Button was pressed, trap was disarmed. if button == 1 ;if they choose to rearm if player.GetAV Repair >= NQlvl.TRAPBearSkillReq02 ;Check the player's repair skill ShowMessage TrapRearmMsg ;Message "You have rearmed the trap!" set disarmed to 0 ;reset the bear trap playgroup Backward 1 ; set rewardXPOnce01 to 1 ;make sure we dont give xp twice else ShowMessage TrapLowSkillRepairMsg NQlvl.TRAPBearSkillReq02 set justActivated to 0 endIf elseif button == 0 ;do nothing endif else ;disarmed == 0, check to see if the player wants to disarm it if button == 1 ShowMessage TrapDisarmMsg set disarmed to 1 playgroup Forward 1 if rewardXPOnce01 == 0 if NQlvl.TRAPBearSkillReq01< getGS iLockLevelMaxVeryEasy set XPForDisarm to 0 elseif NQlvl.TRAPBearSkillReq01< getGS iLockLevelMaxEasy set XPForDisarm to TrapXPRewardVeryEasy elseif NQlvl.TRAPBearSkillReq01< getGS iLockLevelMaxAverage set XPForDisarm to TrapXPRewardEasy elseif NQlvl.TRAPBearSkillReq01< getGS iLockLevelMaxHard set XPForDisarm to TrapXPRewardAverage elseif NQlvl.TRAPBearSkillReq01< getGS iLockLevelMaxVeryHard set XPForDisarm to TrapXPRewardHard else set XPForDisarm to TrapXPRewardVeryHard endif set rewardXPOnce01 to 1 rewardXP XPforDisarm endif endif endif endif endif END ;///////////////////////////////////// ; When hit ;///////////////////////////////////// begin onHit if disarmed == 0 set disarmed to 1 ;open up the trap playgroup Forward 1 set rewardXPOnce01 to 1 endif end ;///////////////////////////////////// ; ON ACTOR ENTER ;///////////////////////////////////// begin onTriggerEnter ; find out who triggered the trap set trapVictim to getActionRef if trapVictim.hasPerk lightStep == 0 if disarmed == 0 set disarmed to 1 set rewardXPOnce01 to 1 playgroup Forward 1 ;trap close animation ;drop the target's health by 50 and display it trapVictim.DamageAV health 45 trapVictim.do 45 ;or damage object if not an actor ;random for which leg to disable short legToDisable set legToDisable to 1 + 0.02 * GetRandompercent if (legToDisable == 1) trapVictim.damageAV LeftMobilityCondition 50 elseif (legToDisable == 2) trapVictim.damageAV RightMobilityCondition 50 endif trapVictim.say Hit endif endif ;light step perk endif end
1045SSAddCapEffectScriptscn SSAddCapEffectScript begin ScriptEffectStart if GetRandomPercent < 95 additem caps001 1 else additem NVStarBottleCap 1 endif end
1046SSCapScriptscn SSCapScript begin OnAdd player player.AddItem Caps001 1 1 RemoveMe end
1047SSHQAllenMarksTriggerScriptscn SSHQAllenMarksTriggerScript int QuestFinished begin OnTriggerEnter player ;SetObjectiveCompleted VMS09a 10 1 ;SetStage VMS09a 20 SetObjectiveCompleted VMS09 30 1 end begin OnTrigger player if QuestFinished == 0 if player.GetHasNote SSHQAllenMarksHolo == 1 ;SetStage VMS09 30 SetObjectiveCompleted VMS09a 10 1 SetStage VMS09a 100 set QuestFinished to 1 endif endif end
1048SSHQFestusScriptscn SSHQFestusScript int FestusState ; 0 = Normal, can be spoken to ; 1 = Waiting to tell the Legend of the Star ; 2 = Telling the Legend of the Star ; 3 = Waiting to say complaint notice ; 4 = Talking about complaint notice float Timer ;------------------------------------------------------------------------------------------------------------------------------------- begin OnActivate if FestusState == 0 Activate endif end ;------------------------------------------------------------------------------------------------------------------------------------- begin Gamemode if FestusState == 1 if Timer < 2.0 set Timer to Timer + GetSecondsPassed else FestusREF.StartConversation FestusREF SSHQFestusLOS1 set FestusState to 2 set Timer to 0 endif elseif FestusState == 3 if Timer < 10.0 set Timer to Timer + GetSecondsPassed else FestusREF.StartConversation FestusREF SSHQFestusAddendum1 set FestusState to 4 set Timer to 0 endif endif end ;------------------------------------------------------------------------------------------------------------------------------------- begin OnStartCombat StopCombat end
1049SSHQJacklynScriptscn SSHQJacklynScript float Timer int AttackingPlayer ; 0 = Not attacking player yet ; 1 = Attacking player int LootingTomas ; 0 = Not looting ; 1 = Currently looting ; 2 = Done looting ;--------------------------------------------------------------------------------------------------------------- begin OnHit player set VFreeformSSHQ.PlayerAttackedJacklyn to 1 end ;--------------------------------------------------------------------------------------------------------------- begin OnLoad Say SSHQJacklynHelp 1 set Timer to 5.0 end ;--------------------------------------------------------------------------------------------------------------- begin GameMode if IsInCombat && VFreeformSSHQ.JacklynState == 0 && SSHQTomasREF.GetDead != 1 if Timer <= 0.0 Say SSHQJacklynHelp 1 set Timer to 5.0 else set Timer to Timer - GetSecondsPassed endif endif ; If the player let Jacklyn know he has or knows what Star Caps are, she'll ; attack when he turns away if VFreeformSSHQ.JacklynWillAttack == 1 && AttackingPlayer == 0 if player.GetHeadingAngle SSHQJacklynREF > 90 || player.GetHeadingAngle SSHQJacklynREF < -90 set AttackingPlayer to 1 Say SSHQJacklynSucker 1 StartCombat player endif endif if LootingTomas == 1 && Timer < 0.0 SSHQJacklynREF.AddScriptPackage DefaultTalkToPlayerPackage set LootingTomas to 2 elseif LootingTomas == 1 set Timer to Timer - GetSecondsPassed endif end ;--------------------------------------------------------------------------------------------------------------- begin OnDeath if VFreeformSSHQ.PlayerAttackedTomas == 0 SSHQTomasREF.AddScriptPackage DefaultTalkToPlayerPackage endif if LootingTomas == 0 SSHQTomasREF.AddItem NVStarBottleCap 7 endif end
1050SSHQMrJanitorScriptscn SSHQMrJanitorScript int Cleaning ; 0 = On standby, 1 = Out cleaning float Timer int DumpedItems int InitialOff begin OnLoad if InitialOff == 0 SetUnconscious 1 set InitialOff to 1 endif end
1051SSHQRandomEncounterTestTriggerScriptscn SSHQRandomEncounterTestTriggerScript int DoOnce int Encounter ; 0 = Tomas & Theresa ; 1 = Malcolm Holmes ref Marker1 ref Marker2 ref Marker3 ref Marker4 ref Marker5 ; Temporary References ref TempRef1 ref TempRef2 begin OnTriggerEnter player if Encounter == 1 ; Malcolm Holmes encounter if DoOnce == 0 set Marker1 to SSHQEncMarker1 SSHQMalcolmHolmesREF.enable SSHQMalcolmHolmesREF.MoveTo Marker1 set DoOnce to 1 endif elseif Encounter == 2 ; Jacklyn & Tomas encounter if DoOnce == 0 set Marker1 to SSHQEncMarker1 set Marker2 to SSHQEncMarker2 SSHQTomasREF.enable SSHQTomasREF.MoveTo Marker1 SSHQJacklynREF.enable SSHQJacklynREF.MoveTo Marker2 SSHQTomasREF.StartCombat SSHQJacklynREF SSHQJacklynREF.StartCombat SSHQTomasREF set DoOnce to 1 endif endif end
1052SSHQTomasScriptscn SSHQTomasScript ref TomasRef int SpawnedNecklace ;--------------------------------------------------------------------------------------------------------------- begin OnActivate if GetDead == 1 endif Activate end ;--------------------------------------------------------------------------------------------------------------- begin OnHit player set VFreeformSSHQ.PlayerAttackedTomas to 1 end ;--------------------------------------------------------------------------------------------------------------- begin OnDeath if VFreeformSSHQ.PlayerAttackedJacklyn == 0 ;SSHQJacklynREF.AddScriptPackage DefaultTalkToPlayerPackage ; Move the looting marker to the site of Tomas's corpse ; We do this because his location isn't reliable if he's disintegrated set TomasRef to GetSelf SSHQTomasLootingMarker.MoveTo TomasRef ; Make Jacklyn head to the corpse and loot it SSHQJacklynREF.AddScriptPackage SSHQJacklynLootsTomasPackage endif set VFreeformSSHQ.JacklynState to 1 end ;---------------------------------------------------------------------------------------------------------------
1053StarPaladinCrossSCRIPTscn StarPaladinCrossSCRIPT short HasBeenHired short WeaponOut short CombatStyleRanged short CombatStyleMelee short IsFollowingDefault short IsFollowingShort short IsFollowingLong short Waiting short DoOnce BEGIN OnCombatEND if ( GetPlayerTeammate == 1 ) resethealth restoreav perceptioncondition 100 restoreav endurancecondition 100 restoreav leftattackcondition 100 restoreav leftmobilitycondition 100 restoreav rightattackcondition 100 restoreav rightmobilitycondition 100 endif END BEGIN OnDeath if ( Followers.StarPaladinCrossHired == 1 ) set Followers.PlayerHasFollower to 0 set Followers.StarPaladinCrossHired to 0 ShowMessage FollowerMessageDeadStarPaladinCross endif END
1054StasisProtectronSCRIPTscn StasisProtectronSCRIPT short talk ; set to 1 to start talking short talking ;set while talking float timer ; used for custom dialogue short robotID ; 0 = GenericFactoryProtectron ; 1 = GenericMetroProtectron ; 2 = genericMilitaryMrGutsy ; 3 = genericOfficeProtectron ; 4 = genericPodProtectron ; 5 = genericUtilityProtectron ; 6 = GenericVaultProtectron
1055SteadyChemEffectSCRIPTscn SteadyChemEffectSCRIPT begin ScriptEffectStart AddPerk NVSteadyChemPerk end begin ScriptEffectFinish RemovePerk NVSteadyChemPerk end
1056SteelMillHotSteelScriptscn SteelMillHotSteelScript begin onTriggerEnter player player.DamageActorValue Health 20 ApplyImageSpaceModifier TrapToiletShockISFX player.Say Hit end
1057SteelMillHotSteelScript02scn SteelMillHotSteelScript02 begin onTriggerEnter player player.Kill ApplyImageSpaceModifier TrapToiletShockISFX player.Say Death end
1058StonewallMessageScriptscn StonewallMessageScript Begin ScriptEffectStart ShowMessage StonewallMessage End
1059StripLightsScriptscn StripLightsScript ;short bLit ;1 = Light is on. ; ;begin GameMode ; ; if bLit ; if GetCurrentTime < 19.50 && GetCurrentTime > 6.0 ; Disable 0 ; set bLit to 0 ; ;showwarning "Lights Off" ; endif ; ; else ; if GetCurrentTime > 19.50 || GetCurrentTime < 6.0 ; Enable 0 ; set bLit to 1 ; ;showwarning "Lights On" ; endif ; endif ; ;end
1060StripReputationSCRIPTscn StripReputationSCRIPT short bAwardStripRepOnce Begin OnTriggerEnter Player If ( vStoryEventVisitsLucky38 == 1 ) If ( bAwardStripRepOnce == 0 ) Set bAwardStripRepOnce to 1 Player.AddReputation RepNVTheStrip 1 2 ; (8_9_10) After the Player comes out of the Lucky 38 for the first time the people of the Strip are impressed. -ETB StripReputationTRIGGERREF.Disable Endif Endif End
1061SunsetSarsparillaAddCapEffectScriptscn SunsetSarsparillaAddCapEffectScript begin ScriptEffectStart additem caps001 1 end
1062SuperDuperMartEmptyActivateSCRIPTscn SuperDuperMartEmptyActivateSCRIPT begin onActivate end
1063SuperStimpakEffectSCRIPTscn SuperStimpakEffectSCRIPT begin ScriptEffectStart CastImmediateOnSelf SuperStimpakDebuffEffect end begin ScriptEffectFinish ApplyImageSpaceModifier Addiction01ISFX end
1064SVComputerRoomDoor02Scriptscn SVComputerRoomDoor02Script short Button begin OnActivate if IsActionRef player ShowMessage SVComputerRoomDoor02Msg endif end
1065SVEntranceTriggerScriptscn SVEntranceTriggerScript short bDisableHouse short bNameChanged begin OnTriggerEnter player if (GetObjectiveDisplayed VMQYesMan01a 40 == 1) && (GetObjectiveCompleted VMQYesMan01a 40 == 0) SetObjectiveCompleted VMQYesMan01a 40 1 SetObjectiveDisplayed VMQYesMan01a 43 1 endif if (GetGlobalValue VStoryEventMrHouseNeutralized > 0) && (bDisableHouse == 0) SVMrHouseRef.SetDestroyed 1 ;SVMrHouseRef.Disable ;SVMrHouseOFFLINERef.Enable SVMrHouseRef.PlayIdle LooseNVPHMCconnectionLost set bDisableHouse to 1 endif if (VMQYesMan01.bUploaded == 1) && (bNameChanged == 0) SVMrHouseRef.SetActorFullName NamedActorYesMan set bNameChanged to 1 endif end
1066SVGalleryTriggerScriptscn SVGalleryTriggerScript short bShowOptionalObjective begin OnTriggerEnter player ;if (GetQuestRunning VMQ02) && (bShowOptionalObjective == 0) ; SetObjectiveDisplayed VMQ02 6 1 ; set bShowOptionalObjective to 1 ;endif if (GetObjectiveDisplayed VMQYesMan01a 43 == 1) && (GetObjectiveCompleted VMQYesMan01a 43 == 0) SetObjectiveCompleted VMQYesMan01a 43 1 SetObjectiveDisplayed VMQYesMan01a 45 1 SetObjectiveDisplayed VMQYesMan01a 48 1 endif end
1067SVJunctionBoxScriptscn SVJunctionBoxScript ref MyLink short Button short Rewired short DoorOpen begin OnActivate if IsActionRef player if VFreeformTheFort.SentryBotDoorHacked set MyLink to GetLinkedRef if DoorOpen SetOpenState 0 MyLink.SetOpenState 0 set DoorOpen to 0 else SetOpenState 1 MyLink.SetOpenState 1 set DoorOpen to 1 endif else ShowMessage SVJunctionBoxMsg endif endif end begin GameMode set Button to GetButtonPressed if ( Button == 1 ) set MyLink to GetLinkedRef MyLink.SetOpenState 1 set VFreeformTheFort.SentryBotDoorHacked to 1 SetOpenState 1 endif end
1068SVKlaxonLightScriptscn SVKlaxonLightScript short state ; 0 = off, 1 = flashing begin OnLoad if state == 1 playgroup left 0 endif end begin onActivate if state == 1 set state to 0 playgroup backward 0 else set state to 1 playgroup forward 1 endif end begin gamemode if isAnimPlaying == 0 playgroup left 1 endif end
1069SVMainConsoleScriptscn SVMainConsoleScript short Button begin OnActivate if IsActionRef player ShowMessage SVMainConsoleMsg endif end begin MenuMode 1001 set Button to GetButtonPressed if ( Button == 1 ) ;ShowWarning "Upgrading Securitrons!" SetSecuritronExpression SVSecuritron01Ref Infantry Neutral SetSecuritronExpression SVSecuritron02Ref Infantry Neutral SetSecuritronExpression SVSecuritron03Ref Infantry Neutral SetSecuritronExpression SVSecuritron04Ref Infantry Neutral SetSecuritronExpression SVSecuritron05Ref Infantry Neutral SetSecuritronExpression SVSecuritron06Ref Infantry Neutral PlaySound QSTSecuritronUpgrade ; 0 = Left Alone, 1 = Upgraded, 2 = Destroyed set VStoryEventSecuritronsFort to 1 if ( VStoryEventMrHouseNeutralized == 0 ) if ( GetObjectiveDisplayed VMQHouse2 32 ) ; <<< Added 8_23_10 -ETB setobjectivecompleted VMQHouse2 32 1 ; <<< ( <-- this line was here already - just added conditional check around it ) endif ; <<< if ( GetObjectiveDisplayed VMQHouse2 33 ) ; <<< setobjectivecompleted VMQHouse2 33 1 ; <<< endif ; <<< setobjectivedisplayed VMQHouse2 36 1 if ( VStoryState < 30 ) ; <<< Added 7_2_10 -ETB set VStoryState to 30 ; <<< endif ; <<< if ( VStoryHouseState < 1 ) ; <<< set VStoryHouseState to 1 ; <<< endif ; <<< endif if (GetObjectiveDisplayed VMQYesMan01a 45 == 1) SetObjectiveCompleted VMQYesMan01a 45 1 SetStage VMQYesMan01a 100 if ( VStoryState < 30 ) ; <<< Added 7_2_10 -ETB set VStoryState to 30 ; <<< endif ; <<< if ( VStoryIndependentState < 1 ) ; <<< set VStoryIndependentState to 1 ; <<< endif ; <<< endif ShowMessage SVSecuritronsUpgradedMsg SetDestroyed 1 if (GetObjectiveDisplayed VMQ02 5 == 1) SetObjectiveDisplayed VMQ02 5 0 SetStage VMQ02 7 endif RewardXP 250 SVUpgradePulseRef.Enable endif end
1070SVPowerRegulatorScriptscn SVPowerRegulatorScript float Timer ref MyLink ref Myself short bRegulator01Destroyed short bRegulator02Destroyed short bRegulator03Destroyed begin OnActivate if IsActionRef player ShowMessage SVPowerRegulatorMsg endif end begin OnDestructionStageChange set Myself to GetSelf if Myself == SVPowerRegulator01Ref && bRegulator01Destroyed == 1 return elseif Myself == SVPowerRegulator02Ref && bRegulator02Destroyed == 1 return elseif Myself == SVPowerRegulator03Ref && bRegulator03Destroyed == 1 return endif if GetDestructionStage >= 3 ;7/3 CES Updated to >= instead of == since we were bypassing this and jumping to 4. if Myself == SVPowerRegulator01Ref && bRegulator01Destroyed == 0 set bRegulator01Destroyed to 1 elseif Myself == SVPowerRegulator02Ref && bRegulator02Destroyed == 0 set bRegulator02Destroyed to 1 elseif Myself == SVPowerRegulator03Ref && bRegulator03Destroyed == 0 set bRegulator03Destroyed to 1 endif ; Turn off nearby electric arc fx. set MyLink to GetLinkedRef MyLink.Disable ;if (GetObjectiveDisplayed VMQ02 6) && (GetObjectiveCompleted VMQ02 6 == 0) ; set VFreeformTheFort.bHelpedHouse to 1 ; SetObjectiveCompleted VMQ02 6 1 ; SetStage VMQ02 7 ;endif set VMQ02.RegulatorsDestroyed to (VMQ02.RegulatorsDestroyed +1) if (VMQ02.RegulatorsDestroyed == 1) StartQuest SecuritronVaultExplodeQuest if (VFreeformTheFort.SentryBotDoorHacked == 0) ShowMessage SVSecurityAlertMsg set VMQ02.VaultSecurityAlerted to 1 SetEnemy PlayerFaction SVSentryBotFaction SVSentryBotDoorRef.SetOpenState 1 endif elseif (VMQ02.RegulatorsDestroyed == 2) ShowMessage SVPowerAlert1 endif endif end
1071SVPumpControlScriptscn SVPumpControlScript short Button short Opened begin OnActivate if IsActionRef player ShowMessage SVPumpControlMsg endif end begin GameMode set Button to GetButtonPressed if ( Button == 1 ) SVPumpControlMarker.Disable ;Disabled 6/30 CES set VFreeformTheFort.PumpsActivated to 1 SetDestroyed 1 endif end
1072SVSabotageTrigger01Scriptscn SVSabotageTrigger01Script ref MyLink begin OnTriggerEnter player if (VStoryEventSecuritronsFort == 2) set MyLink to GetLinkedRef MyLink.KillActor FortCaesarRef 1 0 SVExplosionMarker01.PlaceAtMe BusNukeExplosion Disable MarkForDelete endif end
1073SVSabotageTrigger02Scriptscn SVSabotageTrigger02Script ref MyLink begin OnTriggerEnter player if (VStoryEventSecuritronsFort == 2) set MyLink to GetLinkedRef MyLink.KillActor FortCaesarRef 1 0 SVExplosionMarker02.PlaceAtMe BusNukeExplosion Disable MarkForDelete endif end
1074SVSabotageTrigger03Scriptscn SVSabotageTrigger03Script begin OnTriggerEnter player if (VStoryEventSecuritronsFort == 2) SVSecuritron03Ref.KillActor FortCaesarRef 1 SVSecuritron05Ref.KillActor FortCaesarRef 1 SVSecuritron06Ref.KillActor FortCaesarRef 1 SVExplosionMarker03.PlaceAtMe BusNukeExplosion Disable MarkForDelete endif end
1075SVSabotageTrigger04Scriptscn SVSabotageTrigger04Script ref MyLink begin OnTriggerEnter player if (VStoryEventSecuritronsFort == 2) ;set MyLink to GetLinkedRef ;MyLink.KillActor FortCaesarRef 1 0 SVExplosionMarker04.PlaceAtMe BusNukeExplosion Disable MarkForDelete endif end
1076SVSecuritronTriggerScriptscn SVSecuritronTriggerScript short DoOnce begin OnTriggerEnter player ; Player has been asked by House to upgrade the Securitron Army if (GetObjectiveDisplayed VMQHouse2 31) Setobjectivecompleted VMQHouse2 31 1 SetObjectiveDisplayed VMQHouse2 32 1 SecuritronVaultDoorRef.Unlock SecuritronVaultDoorRef.SetOpenState 1 endif if DoOnce == 0 if GetGlobalValue VStoryEventMrHouseNeutralized > 0 SecuritronVaultDoorRef.Unlock SecuritronVaultDoorRef.SetOpenState 1 endif SetEnemy SVProtectronFaction PlayerFaction SetEnemy SVTurretFaction PlayerFaction set DoOnce to 1 endif end
1077SVSentryBotScriptscn SVSentryBotScript short DoOnce begin OnLoad if DoOnce == 0 SetUnconscious 1 set DoOnce to 1 endif end
1078SVTestTriggerScriptscn SVTestTriggerScript ref MyLink begin OnTriggerEnter set MyLink to GetLinkedRef MyLink.KillActor player 1 MyLink.PlaceAtMe MinePulseExplosion end
1079TalonHitSquadSCRIPTSCN TalonHitSquadSCRIPT short doOnce BEGIN OnLoad if doOnce == 0 set doOnce to 1 AddItem HitSquadNoteBadGuys 1 endif END
1080TecMineHostagescn TecMineHostage Short Freed Short Button Short DoOnce Short HostageFreedTotal ;Total Hostages freed ref hostage BEGIN OnLoad if ( Freed == 1 ) disable else ( Freed == 0 ) IgnoreCrime 1 setRestrained 1 set DoOnce to 0 setRestrained 0 endif set hostage to GetSelf END BEGIN OnActivate if ( GetDead == 0 ) if ( freed == 0 ) if ( IsActionRef player == 1 ) if ( Player.IsInCombat == 0 ) ShowMessage TecMineHostageMSG endif else ShowMessage FFSupermutantCaptiveNoActivateMessage endif endif endif elseIf ( GetDead == 1 ) Activate endif END BEGIN OnDeath setStage VTechatticup 110 set VTechatticup.HostagesDead to 1 END Begin OnDeath player if freed == 0 AddReputation RepNVNCR 0 3 endif END BEGIN GameMode ; Added conditional code to reduce the cost of running the script on every frame - unclear if these NPCs will run low-level processing. Part of a game-wide revision of scripts - Jorge 03/14/10 If GetInSameCell Player != 1 Return Else if ( DoOnce == 0 ) if ( GetSitting == 3 ) set DoOnce to 1 setRestrained 1 endif endif if ( freed == 0 ) set button to GetButtonPressed if ( button == 1 ) SetRestrained 0 SayTo player GREETING set Freed to 1 ignoreCrime 0 AddToFaction NCRFactionNV 0 AddScriptPackage TecMineHostageEscape set VTechatticup.NumHostages to VTechatticup.NumHostages + 1 SendAssaultAlarm Player CaesarsLegionTechMineFaction endif endif Endif END
1081TecMineLegionaryDeathscn TecMineLegionaryDeath ;REF legionary INT doOnce begin OnHit IF doOnce == 0 IF GetHealthPercentage <= .1 SET doOnce to 1 endIF endIF END begin OnDeath IF GetDeadCount TecLegionaryRaider == 14 && GetDeadCount TecLegionMongrel == 4 showWarning DEBUG_Alldead endIF IF getstage vFreeformForlornHope03 == 10 additem legionear 1 endIF END
1082TecMineLegionGateScriptscn TecMineLegionGateScript Short GateState1 ;is DoorMine01Ref open. 1= open 2= opening Short GateState2 ;is DoorMine02Ref open. 1= open 2= opening Short SayOnce1 ;Guard1 Warned the player Short SayOnce2 ;Guard2 Warned the player Begin GameMode If Player.GetInCell TechatticupMineInterior != 1 Return Elseif (SayOnce1 !=1) && (DLCPittScfDoorMine01REF.GetOpenState == 1 || DLCPittScfDoorMine01REF.GetOpenState == 2) TecLegionaryRaiderGuard1REF.SayTo player playerinironsites 1 Set SayOnce1 to 1 Elseif (SayOnce2 !=1) && (DLCPittScfDoorMine02REF.GetOpenState == 1 || DLCPittScfDoorMine02REF.GetOpenState == 2) TecLegionaryRaiderGuard2REF.SayTo player playerinironsites 1 Set SayOnce2 to 1 Elseif SayOnce1 ==1 && DLCPittScfDoorMine01REF.GetOpenState == 3 Set SayOnce1 to 0 Elseif SayOnce2 ==1 && DLCPittScfDoorMine02REF.GetOpenState == 3 Set SayOnce2 to 0 Endif End
1083TenOfSpadesScriptscn TenOfSpadesScript begin OnDeath if (GetStageDone VMS56 100 == 0) SetStage VMS56 110 endif end
1084TenpennyGateScriptscn TenpennyGateScript ;This script handles opening and closing of the Tenpenny Tower gate. These variables are set in dialog (through the intercom) and by the TenpennyTerminal short IsGateOpen ;0 = not open/opening, 1 = opened short OpenGate ;0 = don't open gate, 1 = open gate short CloseGate ;0= don't close, 1 = close gate float GateTimer ;timer Begin OnActivate ;do nothing handled in GameMode block End Begin GameMode if IsGateOpen == 0 if OpenGate == 1 setopenstate 1 set IsGateOpen to 1 set OpenGate to 0 endif elseif IsGateOpen == 1 if CloseGate == 1 setopenstate 0 set IsGateOpen to 0 set CloseGate to 0 else ;close the Gate if the player walks away if GetDistance Player > 3000 set CloseGate to 1 endif endif endif End
1085TenpennyResidentSCRIPTscn TenpennyResidentSCRIPT ;This is used to give generic Tenpenny Residents various random sandbox packages more or less every hour when they update float lastGameHour float DieRoll ;Variable05 ;1 = Urban Apparel ;2 = Boutique Le Chic ;3 = Cafe ;4 = Lounge Begin GameMode if GameHour - lastGameHour >= 1 set lastGameHour to GameHour Set DieRoll to GetRandomPercent if DieRoll <= 25 setav Variable05 1 elseif DieRoll <= 50 setav Variable05 2 elseif DieRoll <= 75 setav Variable05 3 else ; <= 100 setav Variable05 4 endif endif End
1086TerrifyingPresenceScriptScn TerrifyingPresenceScript Ref Self Begin ScriptEffectStart Set Self to GetSelf Self.StopCombat Self.AddScriptPackage VTerrifyingPresencePackage End Begin ScriptEffectUpdate End Begin ScriptEffectFinish Self.StopCombat Player Self.EVP End
1087TestJasonSpeechscn TestJasonSpeech begin onTriggerEnter player JasonBright.StartConversation JasonBright JasonBrightSpeech1 end
1088TestMaskScriptscn TestMaskScript short doOnce ;puts the player into the Feral Ghoul Faction so they don't attack him Begin OnEquip Player if doOnce == 0 ;this clears the crime flag incase the player has gotten into combat with Feral Ghouls before ;this flag is cleared via the MS12Fin quest script whenever the player is not in combat ;So if a player attacks a ghoul, even while wearing the mask they will fight him, but if he drops out of combat, and wears the mask, they will again not be hostile until he attacks them again ClearFactionPlayerEnemyFlag RaiderFaction set doOnce to 1 endif setAlly playerFaction RaiderFaction 1 1 ;FRIEND End Begin OnUnEquip Player setEnemy playerFaction RaiderFaction ;ENEMY End
1089TheBigOneSCRIPTscn TheBigOneSCRIPT int doonce int iMsgOnce int button int CheckButtons float timer int throwbarrels int spawner begin onLoad if Player.HasPerk WildWasteland == 0 && spawner == 0 TheBigOneSoundREF.disable disable endif end begin onActivate player if iMsgOnce == 0 set CheckButtons to 1 ShowMessage TheBigOneMsg endif end begin gamemode if CheckButtons == 1 set button to getbuttonpressed if button == 1 if player.getav science < 60 showmessage TheBigOneLowSkillMsg set checkbuttons to 0 elseif player.getav science > 60 showmessage TheBIgOneSalvagedMsg player.additem ammosmallenergycell 150 player.additem ammomicrofusioncell 50 player.additem sensormodule 2 ;Disabled 6/30 CES player.additem ammofatman 1 set iMsgOnce to 1 set CheckButtons to 0 endif elseif button == 0 endif endif end
1090TheBigOneSoundActivatorSCRIPTscn TheBigOneSoundActivatorSCRIPT int doonce begin OnTriggerEnter Player if Player.HasPerk WildWasteland && doonce == 0 PlaySound UIWildWasteland showmessage WildWastelandMessage set doonce to 1 endif end
1091TheFortTransitionScriptscn TheFortTransitionScript short bInitiateTransition float timer begin GameMode if bInitiateTransition if timer < 1 set timer to timer + GetSecondsPassed else set bInitiateTransition to 0 set timer to 0 endif endif end
1092TheTopsBigScriptscn TheTopsBigScript
1093TheTopsBlackjackTable01StoolScriptscn TheTopsBlackjackTable01StoolScript begin OnActivate set vTopsBlackjackDealer01Ref.nPlayersAtTable to (vTopsBlackjackDealer01Ref.nPlayersAtTable + 1) Activate end
1094TheTopsHugeScriptscn TheTopsHugeScript
1095TheTopsMaxedScriptscn TheTopsMaxedScript
1096TheTopsSmallScriptscn TheTopsSmallScript short DoOnce begin GameMode if DoOnce == 0 ShowWarning "Small Fry at The Tops!" set DoOnce to 1 endif end
1097ThomasHildernScriptscn ThomasHildernScript begin OnDeath if (GetObjectiveDisplayed VMS05 10) && (GetObjectiveCompleted VMS05 10 == 0) SetStage VMS05 110 endif if GetStage VMS06 < 30 SetStage VMS06 200 endif end
1098TopsCombatSCRIPTSCN TopsCombatSCRIPT BEGIN OnStartCombat Player SetEnemy VTopsBennysGoonFaction PlayerFaction if VMQTops.SwankHelp < 2 SetEnemy VTopsChairmenFaction PlayerFaction endif IF VStoryEventAssaultTheTops == 0 set VStoryEventAssaultTheTops to 1 ; if VStoryEventBennyFled == 0 && BennyREF.GetDead == 0 ; set VMQTops.BennyFleeing to 1 ; BennyREF.AddScriptPackage VTopsBennyFlee ; set VMQTops.BennyGoToPresidential to 0 ; endif endif END
1099TopsExteriorDoorSCRIPTscn TopsExteriorDoorSCRIPT ref refActor begin OnActivate set refActor to GetActionREF if (IsActionRef Player == 1) && (VMQTops.SwankHelp < 2) StartQuest VTopsSecurity ; TS 10/26 - If Lily is in the party and not set to wait, move her so she doesn't clip through the player. if VNPCFollowers.bLilyHired == 1 && LilyREF.Waiting == 0 LilyREF.MoveTo TopsLilyTeleportMarker endif ; JSH 8/7 - Unfrisk player if this variable is still set to 1 since it'll lock the player controls permanently if (VDialogueTops.PlayerFrisked == 1) set VDialogueTops.PlayerFrisked to 0 endif Activate if (VTopsGreeter1REF.GetDead == 0) && (VTopsGreeter1REF.GetActorFactionPlayerEnemy == 0) && (VTopsGreeter1REF.GetFactionRelation Player != 1) DisablePlayerControls endif elseif (IsActionRef Player == 1) && (VMQTops.SwankHelp >= 2) ; TS 10/26 - If Lily is in the party and not set to wait, move her so she doesn't clip through the player. if VNPCFollowers.bLilyHired == 1 && LilyREF.Waiting == 0 LilyREF.MoveTo TopsLilyTeleportMarker endif ; JSH 8/7 - Unfrisk player if this variable is still set to 1 since it'll lock the player controls permanently if (VDialogueTops.PlayerFrisked == 1) set VDialogueTops.PlayerFrisked to 0 endif Activate if (VStoryEventBennyFled == 1) && (GetObjectiveDisplayed VMQTops 40 == 0) SetObjectiveDisplayed VMQTops 40 1 endif elseif refActor.GetInFaction FollowerFaction Activate elseif refActor.GetInFaction vTopsPerformerFaction || refActor.GetInFaction vTopsBennysGoonFaction Activate endif end
1100TopsFriskingHoldoutTriggerScriptscn TopsFriskingHoldoutTriggerScript ref Companion1REF ref Companion2REF Begin OnActivate ; if activator is Chairman greeter, remove all weapons if IsActionRef VTopsGreeter1REF ;Remove all weapons except holdouts. if Player.GetActorValue Sneak >= 50 player.RemoveAllTypedItems TopsWeaponLockerREF 1 0 40 NVImprovedHoldoutWeapons else player.RemoveAllTypedItems TopsWeaponLockerREF 1 0 40 NVHoldoutWeapons endif ; Checks for followers if VNPCFollowers.bBooneHired == 1 set Companion1REF to CraigBooneREF elseif VNPCFollowers.bCassHired == 1 set Companion1REF to RoseofSharonCassidyREF elseif VNPCFollowers.bVeronicaHired == 1 set Companion1REF to VeronicaREF elseif VNPCFollowers.bLilyHired == 1 set Companion1REF to LilyREF elseif VNPCFollowers.RaulHired == 1 set Companion1REF to RaulREF elseif VNPCFollowers.ArcadeHired == 1 set Companion1REF to ArcadeREF endif if VNPCFollowers.bEDEHired == 1 if EDE1Ref.GetDisabled == 0 set Companion2REF to EDE1REF elseif EDE2Ref.GetDisabled == 0 set Companion2REF to EDE2REF elseif EDE3Ref.GetDisabled == 0 set Companion2REF to EDE3REF endif elseif VNPCFollowers.RexHired == 1 set Companion2REF to RexREF endif ;Remove companion weapons except holdouts if Player.GetActorValue Sneak >= 50 if Companion1REF != 0 Companion1REF.RemoveAllTypedItems TopsCompanionLocker1REF 1 0 40 NVImprovedHoldoutWeapons endif if Companion2REF != 0 Companion2REF.RemoveAllTypedItems TopsCompanionLocker2REF 1 0 40 NVImprovedHoldoutWeapons endif else if Companion1REF != 0 Companion1REF.RemoveAllTypedItems TopsCompanionLocker1REF 1 0 40 NVHoldoutWeapons endif if Companion2REF != 0 Companion2REF.RemoveAllTypedItems TopsCompanionLocker2REF 1 0 40 NVHoldoutWeapons endif endif endif ; Give weapons back on exit. if IsActionRef Player == 1 ; Gives the player back their weapons after they leave. TopsWeaponLockerREF.RemoveAllItems Player 1 1 ;Check Companion 1, if no companion, give stuff back to player if Companion1REF == ArcadeRef TopsCompanionLocker1REF.RemoveAllTypedItems ArcadeRef 1 0 elseif Companion1REF == CraigBooneRef TopsCompanionLocker1REF.RemoveAllTypedItems CraigBooneRef 1 0 elseif Companion1REF == RoseOfSharonCassidyRef TopsCompanionLocker1REF.RemoveAllTypedItems RoseOfSharonCassidyRef 1 0 elseif Companion1REF == LilyRef TopsCompanionLocker1REF.RemoveAllTypedItems LilyRef 1 0 elseif Companion1REF == RaulRef TopsCompanionLocker1REF.RemoveAllTypedItems RaulRef 1 0 elseif Companion1REF == VeronicaRef TopsCompanionLocker1REF.RemoveAllTypedItems VeronicaRef 1 0 else TopsCompanionLocker1REF.RemoveAllTypedItems player 1 1 endif ;Check Companion 2, if no companion, give stuff back to player if Companion2REF == RexRef TopsCompanionLocker2REF.RemoveAllTypedItems RexRef 1 0 elseif Companion2REF == EDE1Ref TopsCompanionLocker2REF.RemoveAllTypedItems EDE1Ref 1 0 elseif Companion2REF == EDE2Ref TopsCompanionLocker2REF.RemoveAllTypedItems EDE2Ref 1 0 elseif Companion2REF == EDE3Ref TopsCompanionLocker2REF.RemoveAllTypedItems EDE3Ref 1 0 else TopsCompanionLocker2REF.RemoveAllTypedItems player 1 1 endif ; Clears Companion REFs for safety set Companion1REF to 0 set Companion2REF to 0 set VDialogueTops.Holdout to 0 endif end BEGIN OnTriggerEnter Player VTopsGreeter1REF.EVP END
1101TopsFriskingTriggerScriptscn TopsFriskingTriggerScript ref Companion1REF ref Companion2REF Begin OnActivate ; if activator is Chairman greeter, remove all weapons if IsActionRef VTopsGreeter1REF ; Removes all Player weapons player.RemoveAllTypedItems TopsWeaponLockerREF 1 0 40 ; Checks for followers if VNPCFollowers.bBooneHired == 1 set Companion1REF to CraigBooneREF elseif VNPCFollowers.bCassHired == 1 set Companion1REF to RoseofSharonCassidyREF elseif VNPCFollowers.bVeronicaHired == 1 set Companion1REF to VeronicaREF elseif VNPCFollowers.bLilyHired == 1 set Companion1REF to LilyREF elseif VNPCFollowers.RaulHired == 1 set Companion1REF to RaulREF elseif VNPCFollowers.ArcadeHired == 1 set Companion1REF to ArcadeREF endif if VNPCFollowers.bEDEHired == 1 if EDE1Ref.GetDisabled == 0 set Companion2REF to EDE1REF elseif EDE2Ref.GetDisabled == 0 set Companion2REF to EDE2REF elseif EDE3Ref.GetDisabled == 0 set Companion2REF to EDE3REF endif elseif VNPCFollowers.RexHired == 1 set Companion2REF to RexREF endif if Companion1REF != 1 Companion1REF.RemoveAllTypedItems TopsCompanionLocker1REF 1 0 40 endif if Companion2REF != 1 Companion2REF.RemoveAllTypedItems TopsCompanionLocker2REF 1 0 40 endif endif ; Give weapons back on exit. if IsActionRef Player == 1 ; Gives the player back their weapons after they leave. TopsWeaponLockerREF.RemoveAllItems Player 1 1 ;Check Companion 1, if no companion, give stuff back to player if Companion1REF == ArcadeRef TopsCompanionLocker1REF.RemoveAllTypedItems ArcadeRef 1 0 elseif Companion1REF == CraigBooneRef TopsCompanionLocker1REF.RemoveAllTypedItems CraigBooneRef 1 0 elseif Companion1REF == RoseOfSharonCassidyRef TopsCompanionLocker1REF.RemoveAllTypedItems RoseOfSharonCassidyRef 1 0 elseif Companion1REF == LilyRef TopsCompanionLocker1REF.RemoveAllTypedItems LilyRef 1 0 elseif Companion1REF == RaulRef TopsCompanionLocker1REF.RemoveAllTypedItems RaulRef 1 0 elseif Companion1REF == VeronicaRef TopsCompanionLocker1REF.RemoveAllTypedItems VeronicaRef 1 0 else TopsCompanionLocker1REF.RemoveAllTypedItems player 1 1 endif ;Check Companion 2, if no companion, give stuff back to player if Companion2REF == RexRef TopsCompanionLocker2REF.RemoveAllTypedItems RexRef 1 0 elseif Companion2REF == EDE1Ref TopsCompanionLocker2REF.RemoveAllTypedItems EDE1Ref 1 0 elseif Companion2REF == EDE2Ref TopsCompanionLocker2REF.RemoveAllTypedItems EDE2Ref 1 0 elseif Companion2REF == EDE3Ref TopsCompanionLocker2REF.RemoveAllTypedItems EDE3Ref 1 0 else TopsCompanionLocker2REF.RemoveAllTypedItems player 1 1 endif ; Clears Companion REFs for safety set Companion1REF to 0 set Companion2REF to 0 set VDialogueTops.Holdout to 0 endif end BEGIN OnTriggerEnter Player VTopsGreeter1REF.EVP END
1102TopsInteriorDoorScriptscn TopsInteriorDoorScript ref refActor begin OnActivate set refActor to GetActionREF if IsActionRef Player == 1 if VDialogueTops.Holdout == 0 TopsFriskingTriggerREF.Activate Player 1 else TopsFriskingHoldoutTriggerREF.Activate Player 1 endif Activate set VDialogueTops.PlayerFrisked to 0 set VDialogueTops.Unarmed to 0 VTopsGreeter1REF.ResetAI if GetQuestRunning VTopsSecurity == 1 StopQuest VTopsSecurity set VMQTops.StoleWeaponsBack to 0 endif if VMQTops.BennyFleeing == 1 if BennyREF.GetDead == 1 set VMQTops.BennyFleeing to 0 else setObjectiveDisplayed VMQTops 40 1 BennySuiteDoorREF.Unlock if VStoryState < 20 Set VStoryState to 20 endif if GetObjectiveDisplayed VMQTops 18 SetObjectiveDisplayed VMQTops 18 0 endif if GetObjectiveDisplayed VMQTops 42 SetObjectiveDisplayed VMQTops 42 0 endif if GetObjectiveDisplayed VMQTops 10 && GetObjectiveCompleted VMQTops 10 == 0 SetObjectiveDisplayed VMQTops 10 0 endif if GetObjectiveDisplayed VMQTops 5 && GetObjectiveCompleted VMQTops 5 == 0 SetObjectiveDisplayed VMQTops 5 0 endif set VStoryEventBennyFled to 1 BennyREF.Disable VFortBennyREF.Enable if vLegionaryVulpesIncultaREF.GetDead == 0 && GetStageDone VMQ02 110 != 1 VVulpesIncultaStripRef.Enable vLegionaryVulpesIncultaREF.Disable else If GetStageDone VMQ02 110 != 1 AlerioRef.Enable Endif endif endif endif if GetObjectiveDisplayed VMQTops 30 setObjectiveCompleted VMQTops 30 1 if VStoryEventBennyFled == 1 SetStage VMQTops 40 SetObjectiveDisplayed VMQTops 40 1 else SetStage VMQTops 42 SetObjectiveDisplayed VMQTops 42 1 endif Set VStoryEventSurvivedTrap to 1 set VMQTops.StoleWeaponsBack to 0 endif elseif refActor.GetInFaction FollowerFaction Activate endif end
1103TopsLonesomeDrifterTeleportTriggerSCRIPTscn TopsLonesomeDrifterTeleportTriggerSCRIPT BEGIN OnTriggerEnter LonesomeDrifterREF if VMSTopsTalentPool.DrifterRecruited == 1 LonesomeDrifterREF.MoveTo TopsDrifterMarkerREF endif END
1104TopsPerformerActivatorSCRIPTscn TopsPerformerActivatorSCRIPT short HadrianStarted short BillyStarted short BruceStarted short RadPackStarted short DrifterStarted BEGIN GameMode if Player.GetInCell TOPSAcesTheater && Player.IsInCombat Return elseif VMSTopsPerformances.IsShowOn == 1 Return ; Hadrian performance control------------------------------------------------------------------------------------------------------------------------- elseif VMSTopsPerformances.HadrianOverride == 1 ; Override to change shows if VMSTopsPerformances.HadrianPerforming == 0 set VMSTopsPerformances.HadrianPerforming to 1 ; Get the increment started for the show starting, see markers for increments and setrestrained HadrianREF.evp ; Get your butt on stage! endif if HadrianStarted == 1 ; Hadrian hasn't started moving to stage yet? set VMSTopsPerformances.IsShowOn to 1 ; A show is on stage HadrianREF.StartConversation HadrianREF TopsHadrianPerformanceStrings HadrianREF.SetRestrained 1 ; Don't go anywhere. set VMSTopsPerformances.HadrianOverride to 0 ; stop the loop endif elseif (HadrianREF.GetInCell TopsAcesTheater == 1) && (GameHour >= 13) && (GameHour <= 13.75) && VMSTopsPerformances.HadrianPerforming == 0 set VMSTopsPerformances.HadrianOverride to 1 ; Use the override loop to start the show ; Billy Knight performance control------------------------------------------------------------------------------------------------------------------------- elseif VMSTopsPerformances.BillyOverride == 1 ; Override to change shows if VMSTopsPerformances.BillyPerforming == 0 set VMSTopsPerformances.BillyPerforming to 1 ; Get the increment started for the show starting, see markers for increments and setrestrained BillyKnightREF.evp ; Get your butt on stage! endif if BillyStarted == 1 ; Bruce hasn't started moving to stage yet? set VMSTopsPerformances.IsShowOn to 1 ; A show is on stage BillyKnightREF.StartConversation BillyKnightREF TopsBillyKnightPerformanceStrings BillyKnightREF.SetRestrained 1 ; Don't go anywhere. set VMSTopsPerformances.BillyOverride to 0 ; stop the loop endif elseif (BillyKnightREF.GetInCell TopsAcesTheater == 1) && (GameHour >= 16) && (GameHour <= 17) && VMSTopsPerformances.BillyPerforming == 0 set VMSTopsPerformances.BillyOverride to 1 ; Use the override loop to start the show ; Bruce Isaac performance control------------------------------------------------------------------------------------------------------------------------- elseif VMSTopsPerformances.BruceOverride == 1 ; Override to change shows if VMSTopsPerformances.BrucePerforming == 0 set VMSTopsPerformances.BrucePerforming to 1 ; Get the increment started for the show starting, see markers for increments and setrestrained BruceIsaacREF.evp ; Get your butt on stage! endif if BruceStarted == 1 ; Bruce hasn't started moving to stage yet? ;BruceRadioREF.SetBroadcastState 1 set VMSTopsPerformances.IsShowOn to 1 ; A show is on stage BruceIsaacREF.PlayIdle SpecialIdleSinging ; Sing, Bruce! BruceRadioREF.StartRadioConversation RadioHello BruceIsaacREF.SetRestrained 1 ; Don't go anywhere. set VMSTopsPerformances.BruceOverride to 0 ; stop the loop endif elseif (BruceIsaacREF.GetInCell TopsAcesTheater == 1) && (GameHour >= 20) && (GameHour <= 20.5) && VMSTopsPerformances.BrucePerforming == 0 set VMSTopsPerformances.BruceOverride to 1 ; Use the override loop to start the show ; Rad Pack performance control------------------------------------------------------------------------------------------------------------------------- elseif VMSTopsPerformances.RadPackOverride == 1 ; Override to change shows if RadPackStarted == 0 ; Rad Pack hasn't started moving to stage yet? set VMSTopsPerformances.RadPackOnStage to 1 ; Get the increment started for the show starting, see markers for increments and setrestrained TommyToriniREF.evp ; get your butts on stage RadPack1REF.evp RadPack2REF.evp RadPack3REF.evp set RadPackStarted to 1 ; Rad pack moves to the stage, lock-out if from looping endif if TommyToriniREF.OnStage && RadPack1REF.OnStage && RadPack2REF.OnStage && RadPack3REF.OnStage ;RadPackRadioREF.SetBroadcastState 1 RadPackRadioREF.StartRadioConversation RadioHello ; Start audio TommyToriniREF.PlayIdle SpecialIdleNVTapDance ; Dance Tommy dance! TommyToriniREF.setrestrained 1 ;dead can't dance if RadPack1REF.GetDead == 0 RadPack1REF.PlayIdle SpecialIdleNVTapDance RadPack1REF.setrestrained 1 endif if RadPack2REF.GetDead == 0 RadPack2REF.PlayIdle SpecialIdleNVTapDance RadPack2REF.setrestrained 1 endif if RadPack3REF.GetDead == 0 RadPack3REF.PlayIdle SpecialIdleNVTapDance RadPack3REF.setrestrained 1 endif set VMSTopsPerformances.RadPackOnStage to 2 set VMSTopsPerformances.IsShowOn to 1 ; A show is on stage set RadPackStarted to 0 set VMSTopsPerformances.RadPackOverride to 0 ; Stop the override loop endif elseif (TommyToriniREF.GetInCell TopsAcesTheater == 1) && (TommyToriniREF.GetDead == 0) && (GameHour >= 18) && (GameHour <= 18.5) && VMSTopsPerformances.IsShowOn == 0 set VMSTopsPerformances.RadPackOverride to 1 ; Use the override loop to start the show ; Lonesome Drifter performance control------------------------------------------------------------------------------------------------------------------ elseif VMSTopsPerformances.DrifterOverride == 1 if VMSTopsPerformances.DrifterPerforming == 0 set VMSTopsPerformances.DrifterPerforming to 1 LonesomeDrifterREF.evp endif if DrifterStarted == 1 ;DrifterRadioREF.SetBroadcastState 1 set VMSTopsPerformances.DrifterPerforming to 1 set VMSTopsPerformances.IsShowOn to 1 LonesomeDrifterREF.PlayIdle SpecialIdleNVGuitar LonesomeDrifterREF.setrestrained 1 DrifterRadioREF.StartRadioConversation RadioHello set VMSTopsPerformances.DrifterOverride to 0 endif elseif (LonesomeDrifterREF.GetInCell TopsAcesTheater == 1) && (GameHour >= 22) && (GameHour <= 22.5) set VMSTopsPerformances.DrifterOverride to 1 endif END
1105TopsPlayersSuiteTriggerSCRIPTscn TopsPlayersSuiteTriggerSCRIPT BEGIN OnTriggerEnter Player CompleteAllObjectives VCasinoCompsTheTops CompleteQuest VCasinoCompsTheTops StopQuest VCasinoCompsTheTops END
1106TopsRadioQuestSCRIPTscn TopsRadioQuestSCRIPT int iLastSong1 int iLastSong2 int iLastSong3
1107TopsReturnWeaponsTriggerSCRIPTscn TopsReturnWeaponsTriggerSCRIPT ;Begin OnTriggerEnter ;if IsActionRef Player == 1 ; TopsFriskingTriggerREF.Activate TopsReturnWeaponsTriggerREF 1 ; set VDialogueTops.PlayerFrisked to 0 ; VTopsGreeter1REF.evp ;endif ;end
1108TranqFlickerEffectScriptscn TranqFlickerEffectScript ;this script is to test the Tranquility Lane flicker Image space. Float FlickerTimerOne Float FlickerTimerTwo Float FlickerTimerThree Begin OnLoad Set FlickerTimerOne to 8 Set FlickerTimerOne to 11 Set FlickerTimerThree to 20 End Begin GameMode If FlickerTimerOne > 0 Set FlickerTimerOne to FlickerTimerOne - GetSecondsPassed else IMOD TranquilityLaneFlicker01steadyFX set FlickerTimerOne to 27 endif If FlickerTimerTwo > 0 Set FlickerTimerTwo to FlickerTimerTwo - GetSecondsPassed else IMOD TranquilityLaneFlicker02steadyFX set FlickerTimerTwo to 32 endif If FlickerTimerThree > 0 Set FlickerTimerThree to FlickerTimerThree - GetSecondsPassed else IMOD TranquilityLaneFlicker01ISFX set FlickerTimerThree to 45 endif End
1109TrapBabyCarriageSCRIPTscn TrapBabyCarriageSCRIPT ;--------------------------------------------------------------------------------------------------------- ; The Trap should start it's timer when the player is a certain distance away since this is a proximity trap. ; Should have an audible beep, ending with a higher pitched beep. ; The player can run up and activate the trap having the option to disarm it. ; If disarmed, the player can activate it again and have the option to rearm it, which automatically starts the timer again b/c the trap is a proximity trap. ;--------------------------------------------------------------------------------------------------------- short trapTriggered ;0 = default 1 = trap has been triggered 2 = trap is being rearmed as a proximity trap 3 = trap is being rearmed as a timed trap 4=trap is about to explode short trapDisarmed ;0 = trap active 1 = trap has been disarmed 2 = trap has exploded short interactAttempt ;0 = default 1 = Attempt to Disarm 2 = Rearm short PCExplosivesSkill ;short neededExplosivesSkill ; how high we want the PC explosive skill to be in order to disarm trap. short button float timer float bufferTimer float soundTimer float timerMax ; set to timed trap maximum (10 currently) short rewardXPOnce short XPForDisarm ;--------------------------------------------------------------------------------------------------------- Begin onLoad setStage NQlvl 1 End ;--------------------------------------------------------------------------------------------------------- Begin onActivate if IsActionRef player == 1 setVatsTarget 1 if getDestroyed == 0 set PCExplosivesSkill to player.getAV explosives if PCExplosivesSkill > NQlvl.TRAPBabySkillReq if (trapDisarmed == 0) ;ask player if he wants to disarm it ;messagebox "This baby carriage is rigged with an explosive.", "Attempt to Disarm", "Leave it Alone" ShowMessage TrapBabyCarriageWarnMsg set interactAttempt to 1 elseif (trapDisarmed == 1) ;ask player if he wants to rearm it ;messagebox "This baby carriage has been disarmed.", "Rearm as a Proximity Trap.", "Rearm as a Timed Trap (10 seconds)", "Leave it Alone" ShowMessage TrapBabyCarriageRearmMsg set interactAttempt to 2 endif else ShowMessage TrapLowSkillExplosivesMsg NQlvl.TRAPBabySkillReq endif endif endif End ;==================================================== Begin onTriggerEnter player if (trapTriggered == 0 && trapDisarmed == 0) playSound3D OBJMegatonBombTamperArm set trapTriggered to 1 set timer to 1 endif End ;==================================================== ;--------------------------------------------------------------------------------------------------------- Begin gamemode if (interactAttempt == 1) ;attempts to disarm set interactAttempt to 0 set button to getButtonPressed if (button > -1) if (button == 1) if (PCExplosivesSkill >= NQlvl.TRAPBabySkillReq) ;message "You successfully disarm the trap." ShowMessage TrapDisarmMsg set trapDisarmed to 1 set trapTriggered to 5 ;trap has been disarmed if rewardXPOnce == 0 if NQlvl.TRAPBabySkillReq< getGS iLockLevelMaxVeryEasy set XPForDisarm to 0 elseif NQlvl.TRAPBabySkillReq< getGS iLockLevelMaxEasy set XPForDisarm to TrapXPRewardVeryEasy elseif NQlvl.TRAPBabySkillReq< getGS iLockLevelMaxAverage set XPForDisarm to TrapXPRewardEasy elseif NQlvl.TRAPBabySkillReq< getGS iLockLevelMaxHard set XPForDisarm to TrapXPRewardAverage elseif NQlvl.TRAPBabySkillReq< getGS iLockLevelMaxVeryHard set XPForDisarm to TrapXPRewardHard else set XPForDisarm to TrapXPRewardVeryHard endif set rewardXPOnce to 1 rewardXP XPforDisarm endif else ;message "You fail to disarm the trap." ;set timer of trap to explode after leaving dialog ShowMessage TrapDisarmFailMsg set trapDisarmed to 0 endif elseif (button == 0) ;don't do anything endif endif endif ;*********************************** if (interactAttempt == 2) ;rearming trap set interactAttempt to 0 set button to getButtonPressed if (button > -1) if (button == 2) ;player wants to rearm as a proximity trap ;message "You rearm as a proximity trap." ShowMessage TrapRearmProximityMsg set trapTriggered to 2 ;trap is rearmed so start buffer timer set trapDisarmed to 0 set bufferTimer to 10 elseif (button == 1) ;message "You rearm as a timed trap (10 seconds)." set timerMax to 7 ShowMessage TrapRearmTimerMsg timerMax set trapTriggered to 3 ;trap is rearmed as a timed trap set trapDisarmed to 0 elseif (button ==0) ;do nothing endif endif endif ;*********************************** if (trapDisarmed == 0) if (trapTriggered == 1) if (timer >0) set timer to (timer - GetSecondsPassed) elseif (timer<0) playSound3D WPNRifleLaserReloadInOut playsound3D QSTBabyCry set trapTriggered to 4 set timer to 3 endif endif if (trapTriggered == 2) ;trap has been rearmed as proximity so start buffer timer if (bufferTimer > 0) set bufferTimer to (bufferTimer - GetSecondsPassed) elseif (bufferTimer < 0) set trapTriggered to 0 ;buffer time is up, trap is now rearmed endif endif if (trapTriggered == 3) set timer to timerMax ;trap is now a timed trap and will explode in 10 seconds set trapTriggered to 1 endif if (trapTriggered == 4) if (timer > 0) set timer to (timer - GetSecondsPassed) elseif (timer < 0) do 50 ;let damage stages handle explosion. set trapDisarmed to 2 ;trap has exploded endif endif endif End
1110trapBearTrapScriptscn trapBearTrapScript ;XXXXXXXXXXXXXXXXXXXXX To Do XXXXXXXXXXXXXXXXXXXXXXX ; ; ; Use DamageActorValue to cause damage ; When picked up and dropped, bear trap returns to open state ; ; Decrease trigger radius, or set up to check distance when player is close enough short skillPassed short damageVictim short disarmed ref trapVictim short legHealth short button short justActivated short rewardXPOnce01 ;short rewardXPOnce02 short XPforDisarm ;///////////////////////////////////// ; ON ENTER CELL ;///////////////////////////////////// begin OnLoad ;get the name of this trap setStage NQlvl 1 ;init trap skill requirements ; set justActivated to 0 ; set disarmed to 0 end ;///////////////////////////////////// ; ON ACTIVATE ;///////////////////////////////////// begin onActivate if IsActionRef player == 1 ;Check to see if the trap has been triggered if disarmed == 1 ShowMessage TrapBearRearmMsg set justActivated to 1 else ; check the player's science skill to see if they can disarm the trap if player.GetAV Repair >= NQlvl.TRAPBearSkillReq01 ShowMessage TrapBearDetectMsg set justActivated to 1 ;disarmed == 0, justActivated == 1 else ShowMessage TrapLowSkillRepairMsg NQlvl.TRAPBearSkillReq01 set justActivated to 0 endIf endif endif end ;///////////////////////////////////// ; GAMEMODE ;///////////////////////////////////// BEGIN gameMode if justActivated == 1 ;Don't run anything in gameMode unless the player just activated it set button to getbuttonpressed if button > -1 set justActivated to 0 ;stop running stuff if disarmed == 1 ;Button was pressed, trap was disarmed. if button == 1 ;if they choose to rearm if player.GetAV Repair >= NQlvl.TRAPBearSkillReq02 ;Check the player's repair skill ShowMessage TrapRearmMsg ;Message "You have rearmed the trap!" set disarmed to 0 ;reset the bear trap playgroup Backward 1 ; set rewardXPOnce01 to 1 ;make sure we dont give xp twice else ShowMessage TrapLowSkillRepairMsg NQlvl.TRAPBearSkillReq02 set justActivated to 0 endIf elseif button == 0 ;do nothing endif else ;disarmed == 0, check to see if the player wants to disarm it if button == 1 ShowMessage TrapDisarmMsg set disarmed to 1 playgroup Forward 1 if rewardXPOnce01 == 0 if NQlvl.TRAPBearSkillReq01< getGS iLockLevelMaxVeryEasy set XPForDisarm to 0 elseif NQlvl.TRAPBearSkillReq01< getGS iLockLevelMaxEasy set XPForDisarm to TrapXPRewardVeryEasy elseif NQlvl.TRAPBearSkillReq01< getGS iLockLevelMaxAverage set XPForDisarm to TrapXPRewardEasy elseif NQlvl.TRAPBearSkillReq01< getGS iLockLevelMaxHard set XPForDisarm to TrapXPRewardAverage elseif NQlvl.TRAPBearSkillReq01< getGS iLockLevelMaxVeryHard set XPForDisarm to TrapXPRewardHard else set XPForDisarm to TrapXPRewardVeryHard endif set rewardXPOnce01 to 1 rewardXP XPforDisarm endif endif endif endif endif END ;///////////////////////////////////// ; When hit ;///////////////////////////////////// begin onHit if disarmed == 0 set disarmed to 1 ;open up the trap playgroup Forward 1 set rewardXPOnce01 to 1 endif end ;///////////////////////////////////// ; ON ACTOR ENTER ;///////////////////////////////////// begin onTriggerEnter ; find out who triggered the trap set trapVictim to getActionRef if trapVictim.hasPerk lightStep == 0 if disarmed == 0 set disarmed to 1 set rewardXPOnce01 to 1 playgroup Forward 1 ;trap close animation ;drop the target's health by 50 and display it trapVictim.DamageAV health 45 trapVictim.do 45 ;or damage object if not an actor ;random for which leg to disable short legToDisable set legToDisable to 1 + 0.02 * GetRandompercent if (legToDisable == 1) trapVictim.damageAV LeftMobilityCondition 50 elseif (legToDisable == 2) trapVictim.damageAV RightMobilityCondition 50 endif trapVictim.say Hit endif endif ;light step perk endif end
1111TrapComputerFaceSCRIPTscn TrapComputerFaceSCRIPT ; This script should be placed on the front piece of the computer trap. It will activate the back piece if the front piece takes enough damage. ;;=======================================================;; ref myLink ;;=======================================================;; begin onActivate set myLink to getLinkedRef myLink.activate mylink 1 end ;======================================================== begin onHit set myLink to getLinkedRef mylink.activate myLink 1 end
1112TrapComputerSCRIPTscn TrapComputerSCRIPT ; a computer terminal rigged with explosives. interaction with keyboard detonates the trap ; while interacting with the back of it allows the player to disarm the trap and loot components ; this script lives on the "trapComputerBack" object ;;=======================================================;; short XPforDisarm short rewardXPOnce short PCskill ; store player's explosives skill short button float timer short tripped ; states for device ; 0 = default state 1 = going to explode 2 = exploded short defuse ; states ; 0 = default 1 = attempting defuse 2 = defused 3 = re-arming 4 = re-arming stage 2 short gType ; tracks type of damage this trap should do ; 1 = frag 2 = pulse 3 = plasma ref myLink ;This points to the computer face short init ;;=======================================================;; begin onLoad if init == 0 set init to 1 set gType to 1 ; by default, trap uses a frag type grenade setStage NQlvl 1 set myLink to getLinkedRef endif end ;;=======================================================;; begin onActivate set myLink to getLinkedRef myLink.setVatsTarget 1 ;Front component now targetable in VATS if tripped == 0 && defuse == 0 ; trap is not currently or in the process of being exploded or defused if isActionRef player == 1 set PCskill to player.getAV explosives ; "The computer has been rigged to explode. It could be possible to disarm and remove the grenade. [explosives, %0.f]", PCchance, "Attempt to defuse", "Leave it Alone" if PCSkill < NQlvl.TRAPComputerSkillReq ShowMessage TrapLowSkillExplosivesMsg NQlvl.TRAPComputerSkillReq else ShowMessage TrapComputerDetectMsg ;PCchance set defuse to 1 ; set up to defuse endif else set tripped to 1 ; set up to explode placeatme FXComputerSparks set timer to 1.5 endif elseif tripped == 0 && defuse == 2 ; trap is not exploded or exploding, and has been disarmed if getActionRef == player ;"The trap could be re-armed with a grenade", "Re-arm trap","Leave it Alone" if player.getItemCount weapGrenadeFrag > 0 || player.getItemCount weapGrenadePulse > 0 || player.getItemCount weapGrenadePlasma > 0 ShowMessage TrapComputerRearmHasGrenadeMsg set defuse to 3 ; set up to re-arm else ShowMessage TrapComputerRearmNoGrenadeMsg endif else ShowMessage TrapComputerDisarmedMsg ;;not activated by the player endif elseif tripped == 0 && defuse == 3 ; trap is not exploded and being disarmed. if getActionRef == player set defuse to 4 endif endif end ;======================================================== begin onHit set myLink to getLinkedRef activate myLink 1 ;blow up if shot end ;;=======================================================;; begin gameMode if myLink == 0 set myLink to getLinkedRef endif if defuse == 1 ; procedure for dis-arming the trap set defuse to 0 set button to getbuttonpressed if button > -1 if button == 1 ;"You disarm and remove the grenade" ShowMessage TrapComputerDisarmMsg set defuse to 2 if gType == 1 player.additem weapGrenadeFrag 1 elseif gType == 2 player.additem weapGrenadePulse 1 elseif gType == 3 player.additem weapGrenadePlasma 1 endif if rewardXPOnce == 0 if NQlvl.TRAPComputerSkillReq< getGS iLockLevelMaxVeryEasy set XPForDisarm to 0 elseif NQlvl.TRAPComputerSkillReq< getGS iLockLevelMaxEasy set XPForDisarm to TrapXPRewardVeryEasy elseif NQlvl.TRAPComputerSkillReq< getGS iLockLevelMaxAverage set XPForDisarm to TrapXPRewardEasy elseif NQlvl.TRAPComputerSkillReq< getGS iLockLevelMaxHard set XPForDisarm to TrapXPRewardAverage elseif NQlvl.TRAPComputerSkillReq< getGS iLockLevelMaxVeryHard set XPForDisarm to TrapXPRewardHard else set XPForDisarm to TrapXPRewardVeryHard endif set rewardXPOnce to 1 rewardXP XPforDisarm endif elseif button == 0 ; don't do anything endif endif elseif defuse == 3 ; procedure for re-arming the trap set button to getButtonPressed if button > -1 if button == 1 ;"What type of grenade will you use to re-arm the trap?", "Frag","Pulse","Plasma","Leave it Alone" ShowMessage TrapComputerRearmGrenadeTypeMsg set defuse to 4 else ; don't do anything but ensure it stays defused set defuse to 2 endif endif endif if defuse == 4 set button to getButtonPressed if button > -1 if button == 1 if player.getItemCount WeapGrenadeFrag >= 1 player.removeItem weapGrenadeFrag 1 set gType to 1 set defuse to 0 else ;no Frag Grenades to use ShowMessage TrapNoGrenadeFragMsg set defuse to 3 endif elseif button == 2 if player.getItemCount WeapGrenadePulse >= 1 player.removeItem weapGrenadePulse 1 set gType to 2 set defuse to 0 else ;You have no Pulse Grenades to use ShowMessage TrapNoGrenadePulseMsg set defuse to 3 endif elseif button == 3 if player.getItemCount WeapGrenadePlasma >= 1 player.removeItem weapGrenadePlasma 1 set gType to 3 set defuse to 0 else ;no Plasma Grenades to use ShowMessage TrapNoGrenadePlasmaMsg set defuse to 3 endif elseif button == 0 ; do nothing set defuse to 2 endif endif endif if tripped == 1 if timer > 0 set timer to timer - getsecondspassed else if gType == 1 placeatme GrenadeFragExplosion 1, 70, 0 do 1000 elseif gType == 2 placeAtMe GrenadePulseExplosion 1, 70, 0 do 1000 elseif gType == 3 placeAtMe GrenadePlasmaExplosion 1, 70, 0 do 1000 endif set tripped to 2 endif endif end ;=======================================================- begin OnDestructionStageChange set myLink to getLinkedRef myLink.disable end
1113TrapCorpseSCRIPTscn TrapCorpseSCRIPT ;--------------------------------------------------------------------------------------------------------- ; The Trap should start it's timer when the player is a certain distance away since this is a proximity trap. ; Should have an audible beep, ending with a higher pitched beep. ; The player can run up and activate the trap having the option to disarm it. ; If disarmed, the player can activate it again and have the option to rearm it, which automatically starts the timer again b/c the trap is a proximity trap. ; NOTE: Activation messages will only work if scripted NPC is dead... ;--------------------------------------------------------------------------------------------------------- short trapTriggered ;0 = default 1 = trap has been triggered 2 = trap is being rearmed as a proximity trap 3 = trap is being rearmed as a timed trap 4=trap is about to explode short trapDisarmed ;0 = trap active 1 = trap has been disarmed 2 = trap has exploded short interactAttempt ;0 = default 1 = Attempt to Disarm 2 = Rearm ; NOTE: actor value variable01 is used to track the state of a trapped (live) NPC: ; * It is set in GREETING to 1, which allows you to get the Message box the next time you activate him ; * If you successfully disarm the bomb, it is set to 2 ; * If you talk to him again, you get a one time greeting and then it is set to 3 short PCExplosivesSkill short neededExplosivesSkill ; how high we want the PC explosive skill to be in order to disarm trap. short button ref mySelf float timer float bufferTimer float soundTimer float timerMax ; set to timed trap maximum (10 currently) ;--------------------------------------------------------------------------------------------------------- Begin onLoad set mySelf to getSelf set neededExplosivesSkill to 75 End ;--------------------------------------------------------------------------------------------------------- Begin onActivate if IsActionRef player == 1 set PCExplosivesSkill to player.getAV explosives if getDead == 1 if (trapDisarmed == 0) ;ask player if he wants to disarm it ShowMessage TrapCorpseWarnMsg set interactAttempt to 1 elseif (trapDisarmed == 1) ;ask player if he wants to rearm it ShowMessage TrapCorpseRearmMsg set interactAttempt to 2 else ; trap has already gone off -- let player loot corpse Activate endif ; if I've spoken to a live NPC, variable01 is set to 1 by greeting so I can attempt to disarm the bomb elseif trapDisarmed == 0 ;ShowMessage DefaultDebugIncrement01 ;ask player if he wants to disarm it ShowMessage TrapCorpseWarnMsgLive set interactAttempt to 1 else Activate endif endif End ;--------------------------------------------------------------------------------------------------------- Begin gamemode if (interactAttempt == 3) ; triggered by dialogue, just pop the message ;ask player if he wants to disarm it ShowMessage TrapCorpseWarnMsgLive set interactAttempt to 1 endif if (interactAttempt == 1) ;attempts to disarm set button to getButtonPressed if (button > -1) set interactAttempt to 0 if (button == 0) if (PCExplosivesSkill >= neededExplosivesSkill) ;message "You successfully disarm the trap." ShowMessage TrapDisarmMsg set trapDisarmed to 1 set trapTriggered to 5 ;trap has been disarmed setav variable01 2 ; mark NPC as having been disarmed (for dialogue conditions) else ;message "You fail to disarm the trap." ;set timer of trap to explode after leaving dialog ShowMessage TrapDisarmFailMsg set trapDisarmed to 0 endif elseif (button == 1) ;don't do anything endif endif endif ;*********************************** if (interactAttempt == 2) ;rearming trap set button to getButtonPressed if (button > -1) set interactAttempt to 0 if (button == 0) ;player wants to rearm as a proximity trap ShowMessage TrapRearmProximityMsg set trapTriggered to 2 ;trap is rearmed so start buffer timer set trapDisarmed to 0 set bufferTimer to 10 elseif (button == 1) set timerMax to 10 ShowMessage TrapRearmTimerMsg timerMax set trapTriggered to 3 ;trap is rearmed as a timed trap set trapDisarmed to 0 elseif (button ==2) ;loot body Activate player elseif (button ==3) ;do nothing endif endif endif ;*********************************** if (trapDisarmed == 0) if (trapTriggered == 0) if (getdistance Player <= 400) mySelf.playSound OBJMegatonBombTamperArm set trapTriggered to 1 set timer to 1 endif endif if (trapTriggered == 1) if (timer >0) set timer to (timer - GetSecondsPassed) elseif (timer<0) mySelf.playSound WPNRifleLaserReloadInOut set trapTriggered to 4 set timer to 4 endif endif if (trapTriggered == 2) ;trap has been rearmed as proximity so start buffer timer if (bufferTimer > 0) set bufferTimer to (bufferTimer - GetSecondsPassed) elseif (bufferTimer < 0) set trapTriggered to 0 ;buffer time is up, trap is now rearmed endif endif if (trapTriggered == 3) set timer to timerMax ;trap is now a timed trap and will explode in 10 seconds set trapTriggered to 1 endif if (trapTriggered == 4) if (timer > 0) set timer to (timer - GetSecondsPassed) elseif (timer < 0) mySelf.placeatme GrenadeFragExplosion 1 ; kill me bloodily kill mySelf 1 kill mySelf 3 kill mySelf 5 kill mySelf 7 kill mySelf 10 set trapDisarmed to 2 ;trap has exploded endif endif endif End
1114TrapGasCloudTriggerSCRIPTscn TrapGasCloudTriggerSCRIPT ref obj begin onTriggerEnter set obj to GetActionRef if obj.isInList TrapGasCloudList == 1 ShowWarning "Got Hit" do 100 else ShowWarning "no go" endif end
1115TrapGasSCRIPTscn TrapGasSCRIPT ref enteringObject begin onHitWith ExplodesGasTrapsOnHit ;ExplodesGasTrapsOnHit is a form list that has every type of weapon fire and explosion that could potentially ignite a gas trap on contact. do 5 end begin onTriggerEnter set enteringObject to getActionRef if (enteringObject.isWeaponInList ExplodesGasTrapsOnTouch) if (enteringObject.isWeaponOut == 1) do 5 endif endif if (enteringObject.HasMagicEffect FlamerMagicEffect == 1) do 5 endif end
1116TrapGenericGasValveSCRIPTscn TrapGenericGasValveSCRIPT ;--------------------------------------------------------------------------------------------------------------------------------------------- short gasValveRepaired ; 1 = gas valve has been repaired short repairAttempt ; 0 = default 1 = PC wants to try and repair the gas valve short doOnce ; 0 = gas trap has not been enabled yet - we only want the gas trap to appear once 1 = player has already let the gas out short skillNeeded ; repair skill needed to repair the gas valve short button ;--------------------------------------------------------------------------------------------------------------------------------------------- Begin onLoad if skillNeeded == 0 set skillNeeded to 35 endif set doOnce to 0 End Begin onActivate if IsActionRef player == 1 if gasValveRepaired== 0 if IsActionRef player == 1 if player.GetAv Repair < skillNeeded ShowMessage TrapLowSkillRepairMsg skillNeeded else ;ShowMessage MS10GasValveSkillMsg set repairAttempt to 1 ; set up to repair endif endif elseif gasValveRepaired == 1 && doOnce == 0 ; MS10AbandonedSewer02GasTrap01REF.enable set doOnce to 1 endif endif End Begin gameMode if repairAttempt == 1 ; procedure for repairing the gas valve set repairAttempt to 0 set button to getbuttonpressed if button > -1 if button == 0 ;ShowMessage MS10GasValveRepairMsg set gasValveRepaired to 1 ; gas valve has been repaired elseif button == 1 ; don't do anything endif endif endif End
1117TrapGenericPressurePlateSCRIPTscn TrapGenericPressurePlateSCRIPT ; ; ; This script is for a generic pressure plate activator ; It should update state given whether or not an actor is standing on it ;++++++++++++++++++++++++++++++++++++++++ short armed short button short skillPassed float timer short justPressed short init ref actionRef short rewardXPOnce short XPForDisarm ;==================================================== begin OnLoad if init == 0 setStage NQlvl 1 set armed to 1 set timer to 1 set init to 1 endif end ;==================================================== ;==================================================== begin onActivate if armed == 1 ;is the trap already activated/disarmed? if isActionRef player == 1 ;can the player disarm the trap? if player.getAV Repair >= NQlvl.TRAPPlateSkillReq ShowMessage TrapPlateDetectMsg set skillPassed to 1 else ;Message "Your Repair skill is not high enough to disarm this trap." ShowMessage TrapLowSkillRepairMsg NQlvl.TRAPPlateSkillReq endIf else endif endif end ;==================================================== ;==================================================== begin onTriggerEnter set actionRef to getActionRef if armed == 1 && justPressed == 0 && (actionRef.hasPerk LightStep == 0) playgroup Forward 1 set justPressed to 1 activate endif end ;==================================================== ;==================================================== begin gameMode if skillPassed == 1 ;don't run stuff in game mode unless recently activated set button to getButtonPressed ;grab the button state, you don't know when this will be set if button > -1 ;if a valid response is received start doing stuff if button == 1 ShowMessage TrapPlateDisarmMsg set armed to 0 ;disarm the trap if rewardXPOnce == 0 if NQlvl.TRAPPlateSkillReq< getGS iLockLevelMaxVeryEasy set XPForDisarm to 0 elseif NQlvl.TRAPPlateSkillReq< getGS iLockLevelMaxEasy set XPForDisarm to TrapXPRewardVeryEasy elseif NQlvl.TRAPPlateSkillReq< getGS iLockLevelMaxAverage set XPForDisarm to TrapXPRewardEasy elseif NQlvl.TRAPPlateSkillReq< getGS iLockLevelMaxHard set XPForDisarm to TrapXPRewardAverage elseif NQlvl.TRAPPlateSkillReq< getGS iLockLevelMaxVeryHard set XPForDisarm to TrapXPRewardHard else set XPForDisarm to TrapXPRewardVeryHard endif set rewardXPOnce to 1 rewardXP XPforDisarm endif endif set skillPassed to 0 ;stop running stuff endif endif ;Timer so that you can't reactivate the plate too quickly if justPressed == 1 if timer > 0 set timer to timer - getSecondsPassed else set justPressed to 0 set timer to 1 endif endif end
1118TrapGenericTripwireSCRIPTscn TrapGenericTripwireSCRIPT ; ; ; This script is for a generic tripwire activator ; ;++++++++++++++++++++++++++++++++++++++++ ref self ref actionRef short armed short skillPassed short button short init short rewardXPOnce short XPForDisarm ;==================================================== begin OnLoad if init == 0 setStage NQlvl 1 set armed to 1 set skillPassed to 0 set init to 1 endif end ;==================================================== begin onHit set self to GetSelf if armed == 1 playgroup Forward 1 Activate self set armed to 0 endif end ;==================================================== begin onActivate setVatsTarget 1 if armed == 1 ;is the trap already activated/disarmed? if isActionRef player == 1 ;can the player disarm the trap? if player.getAV Repair >= NQlvl.TRAPPlateSkillReq ShowMessage TrapTripwireDetectMsg set skillPassed to 1 else ;Message "Your Repair skill is not high enough to disarm this trap." ShowMessage TrapLowSkillRepairMsg NQlvl.TRAPPlateSkillReq endIf else ;linkTarget.activate endif endif end ;==================================================== ;==================================================== begin onTriggerEnter set self to GetSelf set actionRef to getActionRef if armed == 1 && (actionRef.hasPerk LightStep == 0) playgroup Forward 1 activate self set armed to 0 endif end ;==================================================== ==================================================== begin gameMode if skillPassed == 1 ;don't run stuff in game mode unless recently activated set button to getButtonPressed ;grab the button state, you don't know when this will be set if button > -1 ;if a valid response is received start doing stuff if button == 1 ShowMessage TrapTripwireDisarmMsg set armed to 0 ;disarm the trap playgroup Forward 1 if rewardXPOnce == 0 if NQlvl.TRAPPlateSkillReq< getGS iLockLevelMaxVeryEasy set XPForDisarm to 0 elseif NQlvl.TRAPPlateSkillReq< getGS iLockLevelMaxEasy set XPForDisarm to TrapXPRewardVeryEasy elseif NQlvl.TRAPPlateSkillReq< getGS iLockLevelMaxAverage set XPForDisarm to TrapXPRewardEasy elseif NQlvl.TRAPPlateSkillReq< getGS iLockLevelMaxHard set XPForDisarm to TrapXPRewardAverage elseif NQlvl.TRAPPlateSkillReq< getGS iLockLevelMaxVeryHard set XPForDisarm to TrapXPRewardHard else set XPForDisarm to TrapXPRewardVeryHard endif set rewardXPOnce to 1 rewardXP XPforDisarm endif endif set skillPassed to 0 ;stop running stuff endif endif end
1119TrapGrenadeBunchSCRIPTscn TrapGrenadeBunchSCRIPT ; a bundle grenades tied to a tripwire short detected ;check to see if the player has activated the trap. 1=activated, 0=not activated short button ;0 = disarm, 1 = don't disarm short trapDiff ;difficulty of the trap. If the player's skill is higher, they beat the trap. ref grenade short doOnce short rewardXPOnce short XPForDisarm ;======================================== begin onLoad setStage NQlvl 1 set detected to 0 end ;======================================== begin onTrigger if doOnce != 1 set doOnce to 1 playsound3D TRPGrenadeBouquet do 5 ;damage for 5 points endIf end ;======================================== begin onActivate if getActionRef == player setVatsTarget 1 if getDestructionStage <= 1 ;this is so the player can't pick up an activated grenade and disarm if player.getAV explosives >= NQlvl.TRAPGrenadeBouquetSkillReq ;This var is set when the NQlvl stage is set to 1 ShowMessage TrapGrenadeDetectMsg ;do you want to take the grenades? set detected to 1; else ShowMessage TrapGrenadeClusterActivateLowSkillMsg NQlvl.TRAPGrenadeBouquetSkillReq endif endif elseif getActionRef != player if doOnce != 1 set doOnce to 1 playsound3D TRPGrenadeBouquet do 5 ;damage for 5 points endIf endif end ;============================================ begin onHit playsound3D TRPGrenadeBouquet end ;============================================ begin gameMode if detected == 1 ;don't run stuff in game mode unless recently activated set button to getButtonPressed ;grab the button state, you don't know when this will be set if button > -1 ;if a valid response is received start doing stuff if button == 1 ShowMessage TrapGrenadeHarvest ;player chose to get grenades and deactivate trap player.additem weapGrenadeFrag 3 disable if rewardXPOnce == 0 if NQlvl.TRAPGrenadeBouquetSkillReq< getGS iLockLevelMaxVeryEasy set XPForDisarm to 0 elseif NQlvl.TRAPGrenadeBouquetSkillReq< getGS iLockLevelMaxEasy set XPForDisarm to TrapXPRewardVeryEasy elseif NQlvl.TRAPGrenadeBouquetSkillReq< getGS iLockLevelMaxAverage set XPForDisarm to TrapXPRewardEasy elseif NQlvl.TRAPGrenadeBouquetSkillReq< getGS iLockLevelMaxHard set XPForDisarm to TrapXPRewardAverage elseif NQlvl.TRAPGrenadeBouquetSkillReq< getGS iLockLevelMaxVeryHard set XPForDisarm to TrapXPRewardHard else set XPForDisarm to TrapXPRewardVeryHard endif set rewardXPOnce to 1 rewardXP XPforDisarm endif endif set detected to 0 ;stop running stuff endif endif end
1120TrapGrenadeDuctSCRIPTscn TrapGrenadeDuctSCRIPT ;This Script should cause the duct to make a noise when activated. ; ; ;====================================== short doOnce begin onActivate if isActionRef player == 0 && doOnce == 0 set doOnce to 1 playsound3D TRPGrenadeChute endif end
1121TrapLaserTripwireBeamSCRIPTscn TrapLaserTripwireBeamSCRIPT ref actionRef ;begin onActivate ; showWarning "This is being activated" ; enterTrigger player ;end begin onTriggerEnter set actionRef to getActionRef if actionRef.hasPerk LightStep == 0 activate playsound3D TRPTripwireLaser endif end
1122TrapLaserTripwireEmitterSCRIPTscn TrapLaserTripwireEmitterSCRIPT ; ;This controls the laser tripwire by enabling/disabling it. ;It links to the laser beam ;If activated, a skilled player can disable the beam(mid-high science skill and/or very high repair skill?) ;If damaged, it will activate the beam, thus activating the trap ;Once the player has control over it, they may reactivate the laser beam ;Activation from a remote source will toggle the emitter between an on and off state ;If the emitter is off, the beam is disabled and the player cannot turn the beam on. ;If the player tries to interact with an off emitter, they are able to disable it with a significantly lower repair skill. ; They can also rig the trap to go off when the power is turned back on. ;Damaging the emitter in the off state will result in disabling the beam ;Should be able to reactivate from remote source as well ;======================================================= ;-------------------------------------References ref beam ;This is the laser beam reference. This emitter should be linked to the associated beam ;-------------------------------------Short short hasPower ;This determines whether the emitter has power. Will be toggled when activated from remote devices like terminals short isBroken ;This gets set if the emitter takes damage. It should activate the beam, then permanently remove it. short isArmed ;This gets set to 0 if the player uses their skill to deactivate it. The player can set this back to 1 by passing a skill check again. short skillPassed ;If the player has passed the skill check, look for button press when in the game mode block. short isActive ;If this is set to 0, the emitter will never function again. short button ;button var for menus short isRigged ;If set to 1, the trap will activate the next time that the power is turned on. short init short rewardXPOnce short XPForDisarm ;======================================================= ;======================================================= begin OnLoad if init == 0 setStage NQlvl 1 ;Init global difficulty values for disarm set hasPower to 1 ;Start turned on set isBroken to 0 ;Start not broken set beam to getLinkedRef set isActive to 1 set isArmed to 1 set isRigged to 0 set init to 1 endif end ;======================================================= ;======================================================= begin onActivate if isActive == 1 if isRigged == 0 if isActionRef player == 0 ;if not broken and not activated by player, toggle power ; toggle power if hasPower == 0 set hasPower to 1 if isArmed == 1 beam.enable endif else set hasPower to 0 beam.disable endif else if hasPower == 0 ; set up low skill repair scenario if player.getAV Repair >= NQlvl.TRAPLaserLowRepairSkillReq || player.getAv Science >= NQlvl.TRAPLaserScienceSkillReq ;Do if player has sufficient skill if isArmed == 0 ShowMessage TrapLaserOffArmDetectMsg NQlvl.TRAPLaserLowRepairSkillReq NQlvl.TRAPLaserScienceSkillReq else ShowMessage TrapLaserOffDisarmDetectMsg NQlvl.TRAPLaserLowRepairSkillReq NQlvl.TRAPLaserScienceSkillReq endif set skillPassed to 1 else ;Player does not have sufficient skill ShowMessage TrapLowSkillLaserMsg NQlvl.TRAPLaserLowRepairSkillReq NQlvl.TRAPLaserScienceSkillReq endIf else ; set up high skill repair/sci scenario if player.getAV Repair >= NQlvl.TRAPLaserHighRepairSkillReq || player.getAv Science >= NQlvl.TRAPLaserScienceSkillReq ;Do if player has sufficient skill if isArmed == 0 ShowMessage TrapLaserOnArmDetectMsg NQlvl.TRAPLaserHighRepairSkillReq NQlvl.TRAPLaserScienceSkillReq else ShowMessage TrapLaserOnDisarmDetectMsg NQlvl.TRAPLaserHighRepairSkillReq NQlvl.TRAPLaserScienceSkillReq endif set skillPassed to 1 else ;Player does not have sufficient skill ShowMessage TrapLowSkillLaserMsg NQlvl.TRAPLaserHighRepairSkillReq NQlvl.TRAPLaserScienceSkillReq endIf endif endif elseif isRigged == 1 && hasPower == 0 ;if it's rigged, it can still be activated with the power off if isActionRef player == 0 ; set up for one-off explosion set hasPower to 1 beam.enable do 5 else ; show message to player that turning the power back on would trigger the trap ShowMessage TrapLaserRiggedMsg endif endif endif end ;==================================================== ;==================================================== begin onDestructionStageChange ; if hasPower == 1 ; if getDestructionStage < 2 ; beam.enable ; beam.activate player ; endif ; beam.disable ; set isActive to 0 ; endif ; set isBroken to 1 if getDestructionStage == 2 ;totally broken when it reaches stage two set isActive to 0 beam.disable ShowMessage TrapLaserDestroyed endif end ;==================================================== ;==================================================== begin gameMode if skillPassed == 1 ;don't run stuff in game mode unless recently activated set button to getButtonPressed ;grab the button state, you don't know when this will be set if button > -1 ;if a valid response is received start doing stuff if button == 1 if isArmed == 1 ShowMessage TrapLaserDisabled beam.disable set isArmed to 0 if rewardXPOnce == 0 if NQlvl.TRAPLaserHighRepairSkillReq< getGS iLockLevelMaxVeryEasy set XPForDisarm to 0 elseif NQlvl.TRAPLaserHighRepairSkillReq< getGS iLockLevelMaxEasy set XPForDisarm to TrapXPRewardVeryEasy elseif NQlvl.TRAPLaserHighRepairSkillReq< getGS iLockLevelMaxAverage set XPForDisarm to TrapXPRewardEasy elseif NQlvl.TRAPLaserHighRepairSkillReq< getGS iLockLevelMaxHard set XPForDisarm to TrapXPRewardAverage elseif NQlvl.TRAPLaserHighRepairSkillReq< getGS iLockLevelMaxVeryHard set XPForDisarm to TrapXPRewardHard else set XPForDisarm to TrapXPRewardVeryHard endif set rewardXPOnce to 1 rewardXP XPforDisarm endif else ShowMessage TrapLaserEnabled beam.enable set isArmed to 1 endif set isRigged to 0 ;In case player disables rigging elseif button == 2 && hasPower == 0 ;button 1 is pressed when power is off, player wants to rig trap set isRigged to 1 ;Trap is rigged to explode when power gets turned on ShowMessage TrapLaserRiggedMsg endif set skillPassed to 0 ;stop running stuff endif endif end ;===================================================
1123TrapMaceSCRIPTscn TrapMaceSCRIPT ; this is a generic swinging mace trap script ;========================================================; short doOnce float fTrapDamage float fTrapPushBack float fTrapMinVelocity float bTrapContinuous short isActive float timer short bTrapHasHit short maceType ;To prevent lots of GetIsID calls. ; 1 = TrapBrahminCorpse01 ; 2 = TrapBrahminCorpse02 ; 3 = TrapSwingingEngine01 ; 4 = TrapSwingingIBeam01 ; 5 = TrapSwingingIBeam02 ; 6 = TrapSwingingLog01 ;========================================================; begin onLoad ; set fTrapDamage to 40 ; set fTrapPushBack to 900 ; set fTrapMinVelocity to 180 ; set bTrapContinuous to 0 ;------------Init Mace Type if GetIsID TrapBrahminCorpse01 == 1 set maceType to 1 elseif GetIsID TrapBrahminCorpse02 == 1 set maceType to 2 elseif GetIsID TrapSwingingEngine01 == 1 set maceType to 3 elseif GetIsID TrapSwingingIBeam01 == 1 set maceType to 4 elseif GetIsID TrapSwingingIBeam02 == 1 set maceType to 5 elseif GetIsID TrapSwingingLog01 == 1 set maceType to 6 endif end ;========================================================; begin onActivate set bTrapHasHit to 0 set fTrapDamage to 40 set fTrapPushBack to 800 set fTrapMinVelocity to 120 set bTrapContinuous to 0 if doOnce == 0 playgroup unequip 1 set doOnce to 1 set isActive to 1 set timer to 6 endif end begin gameMode if isActive > 0 trapUpdate if timer > 0 set timer to timer - getSecondsPassed elseif isActive == 1 set fTrapDamage to 5 set fTrapPushBack to 100 set isActive to 2 endif if bTrapHasHit == 1 if MaceType == 1 playsound3D FXMeleeTrapImpact elseif MaceType == 2 playsound3D FXMeleeTrapImpact elseif MaceType == 3 playsound3D FXMeleeTrapImpact elseif MaceType == 4 playsound3D FXMeleeTrapImpact elseif MaceType == 5 playsound3D FXMeleeTrapImpact elseif MaceType == 6 playsound3D FXMeleeTrapImpact endif set bTrapHasHit to 0 endif endif end
1124TrapMailboxSCRIPTscn TrapMailboxSCRIPT ;--------------------------------------------------------------------------------------------------------- ; The Trap should start it's timer when the player is a certain distance away since this is a proximity trap. ; Should have an audible beep, ending with a higher pitched beep. ; The player can run up and activate the trap having the option to disarm it. ; If disarmed, the player can activate it again and have the option to rearm it, which automatically starts the timer again b/c the trap is a proximity trap. ;--------------------------------------------------------------------------------------------------------- short trapTriggered ;0 = default 1 = trap has been triggered 2 = trap is being rearmed as a proximity trap 3 = trap is being rearmed as a timed trap 4=trap is about to explode short trapDisarmed ;0 = trap active 1 = trap has been disarmed 2 = trap has exploded short interactAttempt ;0 = default 1 = Attempt to Disarm 2 = Rearm short PCExplosivesSkill ;short neededExplosivesSkill ; how high we want the PC explosive skill to be in order to disarm trap. short button float timer float bufferTimer float soundTimer float timerMax ; set to timed trap maximum (10 currently) short rewardXPOnce short XPForDisarm ;--------------------------------------------------------------------------------------------------------- Begin onLoad setStage NQlvl 1 End ;--------------------------------------------------------------------------------------------------------- Begin onActivate if IsActionRef player == 1 setVatsTarget 1 ;now vats targetable if getDestroyed == 0 set PCExplosivesSkill to player.getAV explosives if PCExplosivesSkill > NQlvl.TRAPMailboxSkillReq if (trapDisarmed == 0) ;ask player if he wants to disarm it ;messagebox "This baby carriage is rigged with an explosive.", "Attempt to Disarm", "Leave it Alone" ShowMessage TrapMailboxWarnMsg set interactAttempt to 1 elseif (trapDisarmed == 1) ;ask player if he wants to rearm it ;messagebox "This baby carriage has been disarmed.", "Rearm as a Proximity Trap.", "Rearm as a Timed Trap (10 seconds)", "Leave it Alone" ShowMessage TrapMailboxRearmMsg set interactAttempt to 2 endif else ShowMessage TrapLowSkillExplosivesMsg NQlvl.TRAPMailboxSkillReq endif endif endif End ;==================================================== Begin onTriggerEnter player if (trapTriggered == 0 && trapDisarmed == 0) playSound3D OBJMegatonBombTamperArm set trapTriggered to 1 set timer to 1 endif End ;==================================================== ;--------------------------------------------------------------------------------------------------------- Begin gamemode if (interactAttempt == 1) ;attempts to disarm set interactAttempt to 0 set button to getButtonPressed if (button > -1) if (button == 1) if (PCExplosivesSkill >= NQlvl.TRAPMailboxSkillReq) ;message "You successfully disarm the trap." ShowMessage TrapDisarmMsg set trapDisarmed to 1 set trapTriggered to 5 ;trap has been disarmed if rewardXPOnce == 0 if NQlvl.TRAPMailboxSkillReq< getGS iLockLevelMaxVeryEasy set XPForDisarm to 0 elseif NQlvl.TRAPMailboxSkillReq< getGS iLockLevelMaxEasy set XPForDisarm to TrapXPRewardVeryEasy elseif NQlvl.TRAPMailboxSkillReq< getGS iLockLevelMaxAverage set XPForDisarm to TrapXPRewardEasy elseif NQlvl.TRAPMailboxSkillReq< getGS iLockLevelMaxHard set XPForDisarm to TrapXPRewardAverage elseif NQlvl.TRAPMailboxSkillReq< getGS iLockLevelMaxVeryHard set XPForDisarm to TrapXPRewardHard else set XPForDisarm to TrapXPRewardVeryHard endif set rewardXPOnce to 1 rewardXP XPforDisarm endif else ;message "You fail to disarm the trap." ;set timer of trap to explode after leaving dialog ShowMessage TrapDisarmFailMsg set trapDisarmed to 0 endif elseif (button == 0) ;don't do anything endif endif endif ;*********************************** if (interactAttempt == 2) ;rearming trap set interactAttempt to 0 set button to getButtonPressed if (button > -1) if (button == 2) ;player wants to rearm as a proximity trap ;message "You rearm as a proximity trap." ShowMessage TrapRearmProximityMsg set trapTriggered to 2 ;trap is rearmed so start buffer timer set trapDisarmed to 0 set bufferTimer to 10 elseif (button == 1) ;message "You rearm as a timed trap (10 seconds)." set timerMax to 7 ShowMessage TrapRearmTimerMsg timerMax set trapTriggered to 3 ;trap is rearmed as a timed trap set trapDisarmed to 0 elseif (button ==0) ;do nothing endif endif endif ;*********************************** if (trapDisarmed == 0) if (trapTriggered == 1) if (timer >0) set timer to (timer - GetSecondsPassed) elseif (timer<0) playSound3D WPNRifleLaserReloadInOut set trapTriggered to 4 set timer to 3 endif endif if (trapTriggered == 2) ;trap has been rearmed as proximity so start buffer timer if (bufferTimer > 0) set bufferTimer to (bufferTimer - GetSecondsPassed) elseif (bufferTimer < 0) set trapTriggered to 0 ;buffer time is up, trap is now rearmed endif endif if (trapTriggered == 3) set timer to timerMax ;trap is now a timed trap and will explode in 10 seconds set trapTriggered to 1 endif if (trapTriggered == 4) if (timer > 0) set timer to (timer - GetSecondsPassed) elseif (timer < 0) do 50 set trapDisarmed to 2 ;trap has exploded endif endif endif End
1125trapMineBuriedSCRIPTscn trapMineBuriedSCRIPT ; ; short skillPassed ;check to see if the player has activated the trap. 1=activated, 0=not activated short detonated short button ;======================================================; begin onLoad setStage NQlvl 1 set skillPassed to 0 end ;======================================================; begin onTriggerEnter do 1 end ;======================================================; begin onActivate if isActionRef player == 1 if player.GetAV Explosives >= NQlvl.TRAPMineSkillReq ShowMessage TrapMineDetectMsg ;do you want to take the mine? set skillPassed to 1; else ShowMessage TrapLowSkillExplosivesMsg NQlvl.TRAPMineSkillReq endif else do 1 endif end ;======================================================; begin gameMode if detonated == 0 if getDistance player <= 16 do 1 set detonated to 1 endif endif if skillPassed == 1 ;don't run stuff in game mode unless recently activated set button to getButtonPressed ;grab the button state, you don't know when this will be set if button > -1 ;if a valid response is received start doing stuff if button == 0 ShowMessage TrapMineHarvest ;player chose to deactivate and harvest the mine disable player.addItem weapMineFrag 1 endif set skillPassed to 0 ;stop running stuff endif endif end ;======================================================;
1126TrapMotionSensorSCRIPTscn TrapMotionSensorSCRIPT ; ; ; This script is for a motion sensor. ; It will activate whenever the player is in the trigger zone, probably on a timer. ; It can be deactivated and removed, loot is a microfusion cell (about 12 rounds) ; ;++++++++++++++++++++++++++++++++++++++++ ;XXXXXXXXXXXXXXXXXXXXxxxx To Do xxxxXXXXXXXXXXXXXXXXXX ; Figure out how to show that wire has been tripped ; Set up trigger on hit short armed short skillPassed short button ;==================================================== begin OnLoad setStage NQlvl 1 set armed to 1 set skillPassed to 0 end ;==================================================== ;==================================================== begin onActivate if armed == 1 ;is the trap already activated/disarmed? if isActionRef player == 1 ;can the player disarm the trap? if player.getAV Science >= NQlvl.TRAPSensorSkillReq ShowMessage TrapSensorDetectMsg set skillPassed to 1 else ;Message "Your Repair skill is not high enough to disarm this trap." ShowMessage TrapLowSkillScienceMsg NQlvl.TRAPSensorSkillReq endIf else ;linkTarget.activate endif endif end ;==================================================== ;==================================================== begin onTriggerEnter if armed == 1 ; playgroup Forward 1 activate set armed to 0 endif end ;==================================================== ==================================================== begin gameMode if skillPassed == 1 ;don't run stuff in game mode unless recently activated set button to getButtonPressed ;grab the button state, you don't know when this will be set if button > -1 ;if a valid response is received start doing stuff if button == 0 ShowMessage TrapSensorDisarmMsg set armed to 0 ;disarm the trap playgroup Forward 1 endif set skillPassed to 0 ;stop running stuff endif endif end
1127TRAPPitchingMachineScriptscn TRAPPitchingMachineScript ;This script runs the pitching machine. short skillPassed ;check to see if the player has activated the trap. 1=activated, 0=not activated short button ;0 = disarm, 1 = don't disarm short isArmed short isFiring short rewardXPOnce short XPForDisarm float fireInterval short ballcount short windUp ;check to see if it is starting up short init ;======================================== begin onLoad if init == 0 setStage NQlvl 1 set skillPassed to 0 set isFiring to 0 set isArmed to 1 set ballcount to 12 ;number of balls to shoot -12 set fireInterval to 0.50 ;about 20 frames set init to 1 endif end ;======================================== ;======================================== begin onActivate if isArmed == 1 if getActionRef == player if player.getAV repair >= NQlvl.TRAPPitchingSkillReq ;This var is set when the NQlvl stage is set to 1 ShowMessage TrapPitchingDetectMsg ;do you want to take the grenades? set skillPassed to 1; else ShowMessage TrapLowSkillRepairMsg NQlvl.TRAPPitchingSkillReq endif else set isFiring to 1 set isArmed to 0 playgroup left 1 ;startup animation ; set windup to 1 endIf endif end ;============================================ begin gameMode if skillPassed == 1 ;don't run stuff in game mode unless recently activated set button to getButtonPressed ;grab the button state, you don't know when this will be set if button > -1 ;if a valid response is received start doing stuff if button == 1 ShowMessage TrapDisarmMsg set isArmed to 0 ;disarm the trap if rewardXPOnce == 0 if NQlvl.TRAPPitchingSkillReq< getGS iLockLevelMaxVeryEasy set XPForDisarm to 0 elseif NQlvl.TRAPPitchingSkillReq< getGS iLockLevelMaxEasy set XPForDisarm to TrapXPRewardVeryEasy elseif NQlvl.TRAPPitchingSkillReq< getGS iLockLevelMaxAverage set XPForDisarm to TrapXPRewardEasy elseif NQlvl.TRAPPitchingSkillReq< getGS iLockLevelMaxHard set XPForDisarm to TrapXPRewardAverage elseif NQlvl.TRAPPitchingSkillReq< getGS iLockLevelMaxVeryHard set XPForDisarm to TrapXPRewardHard else set XPForDisarm to TrapXPRewardVeryHard endif set rewardXPOnce to 1 rewardXP XPforDisarm endif endif set skillPassed to 0 ;stop running stuff endif endif if isFiring == 1 if ballcount > 0 ;check to make sure there are enough balls ;wait, fire if fireInterval > 0 set fireInterval to fireInterval - GetSecondsPassed else playgroup forward 0 ;looping run animation set ballcount to ballcount -1 FireWeapon TrapBaseball set fireInterval to 0.5 endif else set isFiring to 0 playgroup right 0 ;end animation, ends looping sound. endif endif end
1128TrapShotgunSCRIPTscn TrapShotgunSCRIPT ; ;This script runs the shotgun trap. If activated by a remote source, it shoud fire indefinitely. ;The player can loot some shotgun shells if able to deactivate it. ; ;VVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVV ;Commented out combat shotgun reward. short armed short button short skillPassed short init short doOnce short rewardXPOnce short XPForDisarm ;==================================================== begin OnLoad setStage NQlvl 1 if init == 0 set armed to 1 set init to 1 endif end ;==================================================== ;==================================================== begin onActivate if armed == 1 ;is the trap already activated/disarmed? if isActionRef player == 1 ;can the player disarm the trap? if player.getAV Repair >= NQlvl.TRAPShotgunSkillReq ShowMessage TrapShotgunDetectMsg set skillPassed to 1 else ;Message "Your Repair skill is not high enough to disarm this trap." ShowMessage TrapLowSkillRepairMsg NQlvl.TRAPShotgunSkillReq endIf else if doOnce == 0 fireWeapon WeapNVSingleShotgun set doOnce to 1 endif endif endif end ;==================================================== ;==================================================== begin gameMode if skillPassed == 1 ;don't run stuff in game mode unless recently activated set button to getButtonPressed ;grab the button state, you don't know when this will be set if button > -1 ;if a valid response is received start doing stuff if button == 1 ShowMessage TrapDisarmMsg set armed to 0 ;disarm the trap if rewardXPOnce == 0 if NQlvl.TRAPShotgunSkillReq< getGS iLockLevelMaxVeryEasy set XPForDisarm to 0 elseif NQlvl.TRAPShotgunSkillReq< getGS iLockLevelMaxEasy set XPForDisarm to TrapXPRewardVeryEasy elseif NQlvl.TRAPShotgunSkillReq< getGS iLockLevelMaxAverage set XPForDisarm to TrapXPRewardEasy elseif NQlvl.TRAPShotgunSkillReq< getGS iLockLevelMaxHard set XPForDisarm to TrapXPRewardAverage elseif NQlvl.TRAPShotgunSkillReq< getGS iLockLevelMaxVeryHard set XPForDisarm to TrapXPRewardHard else set XPForDisarm to TrapXPRewardVeryHard endif set rewardXPOnce to 1 rewardXP XPforDisarm endif placeatme shotgunTrapShell01 1 ;player.additemHealthpercent WeapNVSingleShotgun 1 0.3 player.additem Ammo20Ga 1 disable endif set skillPassed to 0 ;stop running stuff endif endif end
1129TrapSidewalkGrateSCRIPTscn TrapSidewalkGrateSCRIPT ; this grate swings open when stepped on or activated. ;========================================================; short doOnce ;========================================================; begin onTriggerEnter if doOnce == 0 playgroup unequip 1 playsound3D TRPTrapdoor set doOnce to 1 endif end ;========================================================; begin onActivate if doOnce == 0 playgroup unequip 1 playsound3D TRPTrapdoor set doOnce to 1 endif end
1130TrapToiletSCRIPTscn TrapToiletSCRIPT ; ;This script runs the electrified toilet trap. ;The player should get shocked a few seconds after activating this ; ;VVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVV float timer short armed short triggered short skillPassed ; set if the player passes skill check. short button ; pressed button short init short rewardXPOnce short XPForDisarm ;==================================================== begin OnLoad if init == 0 setStage NQlvl 1 set armed to 1 set triggered to 0 set timer to 1 set init to 1 endif end ;==================================================== ;==================================================== begin onActivate if armed == 1 ;is the trap already activated/disarmed? if isActionRef player != 1 set triggered to 1 activate ; playSound3D TRPToilet else if player.getAV repair < NQlvl.TRAPToiletSkillReq ShowMessage TrapLowSkillRepairMsg NQlvl.TRAPToiletSkillReq else ShowMessage TrapToiletDetectMsg set skillPassed to 1 ; set up to defuse endif endif endif end ;==================================================== ;==================================================== begin gameMode if triggered == 1 ;shock the player after time has passed. if timer > 0 set timer to timer - GetSecondsPassed else player.damageAV health 25 player.say Hit playSound3D TRPToilet imod TrapToiletShockISFX ; player.pushactoraway player 1 set triggered to 0 set timer to 1 endif endif if skillPassed == 1 ;don't run stuff in game mode unless recently activated set button to getButtonPressed ;grab the button state, you don't know when this will be set if button > -1 ;if a valid response is received start doing stuff if button == 1 ShowMessage TrapDisarmMsg set armed to 0 ;disarm the trap player.additem ammoMicroFusionCell 35 disable if rewardXPOnce == 0 if NQlvl.TRAPToiletSkillReq< getGS iLockLevelMaxVeryEasy set XPForDisarm to 0 elseif NQlvl.TRAPToiletSkillReq< getGS iLockLevelMaxEasy set XPForDisarm to TrapXPRewardVeryEasy elseif NQlvl.TRAPToiletSkillReq< getGS iLockLevelMaxAverage set XPForDisarm to TrapXPRewardEasy elseif NQlvl.TRAPToiletSkillReq< getGS iLockLevelMaxHard set XPForDisarm to TrapXPRewardAverage elseif NQlvl.TRAPToiletSkillReq< getGS iLockLevelMaxVeryHard set XPForDisarm to TrapXPRewardHard else set XPForDisarm to TrapXPRewardVeryHard endif set rewardXPOnce to 1 rewardXP XPforDisarm endif endif set skillPassed to 0 ;stop running stuff endif endif end
1131TrigPlayerDisableSCRIPTscn TrigPlayerDisableSCRIPT ; This trigger is triggered by the player only and enables its Linked ref. ; This trigger only gets triggered once. ref targetREF short doOnce Begin onTriggerEnter Player if doOnce == 0 set targetREF to getLinkedRef targetREF.disable set doOnce to 1 ;Trigger is only set off one time endif End
1132TrigPlayerEnableSCRIPTscn TrigPlayerEnableSCRIPT ; This trigger is triggered by the player only and enables its Linked ref. ; This trigger only gets triggered once. ref targetREF short doOnce Begin onTriggerEnter Player if doOnce == 0 set targetREF to getLinkedRef targetREF.enable set doOnce to 1 ;Trigger is only set off one time endif End
1133TrigRHSSettlerDeathScriptscn TrigRHSSettlerDeathScript ; This trigger is triggered by the player only and enables its Linked ref. ; This trigger only gets triggered once. ref targetREF short trigOnce short runTimer short stage float timer begin onTriggerEnter Player if trigOnce == 0 set trigOnce to 1 set targetREF to getLinkedRef targetREF.enable targetREF.PlaySound3D WPNRifleHuntingFire3D set timer to 0.35 set runTimer to 1 endif end begin GameMode if runTimer == 1 if timer > 0 set timer to timer - GetSecondsPassed else if stage == 0 targetREF.kill set timer to 0.4 set stage to 1 elseif stage == 1 targetREF.PlaySound3D WPNRifleHuntingFire3D set runTimer to 0 endif endif endif end
1134TurretFrenzySCRIPTscn TurretFrenzySCRIPT ; frenzies turret on load begin onLoad damageAV brainCondition 100 end
1135UltraLuxeBlackjackTable01StoolScriptscn UltraLuxeBlackjackTable01StoolScript begin OnActivate ;set vTopsBlackjackDealer01Ref.nPlayersAtTable to (vTopsBlackjackDealer01Ref.nPlayersAtTable + 1) Activate end
1136UnderpassWaterValveSCRIPTscn UnderpassWaterValveSCRIPT short Button BEGIN OnActivate if IsActionRef player ShowMessage UnderpassWaterActiveMsg endif END BEGIN GameMode set Button to GetButtonPressed ; Player repairs the Water Purifier if ( Button == 1 ) ShowMessage UnderpassWaterRepairedMsg ; RemoveNote VFreeformUnderpassNote RewardXP 25 Set VFreeformUnderpass.bFixedWaterPurifier to 1 SetDestroyed 1 endif if ( Button == 2 ) ShowMessage UnderpassWaterSciencedMsg ; RemoveNote VFreeformUnderpassNote RewardXP 25 Set VFreeformUnderpass.bFixedWaterPurifier to 1 SetDestroyed 1 endif endif END
1137UtlDoorBigSciencePassScriptscn UtlDoorBigSciencePassScript ; If the player has 67% Science ability, they can get through the door short passSkill Begin onActivate set passSkill to 67 ;change this number to change the skill requirement if (IsActionRef player == 1) if player.getav science >= passSkill ;change science to something else for a different skill pass ShowMessage DoorOpenedScienceMsg passSkill ;be sure to make new messages if changing the required skill activate else ShowMessage DoorOpenFailedScienceMsg passSkill endif endif End
1138V03BryceAndersCleanUpTriggerScn V03BryceAndersCleanUpTrigger Short KillOnce Begin OnTriggerEnter Player If KillOnce != 1 If V03BryceAndersRef.GetDead != 1 If V03BryceAndersRef.GetIsCurrentPackage V03BryceDiePackage If V03BryceAndersRef.GetInSameCell Player == 0 V03BryceAndersRef.KillActor V03BryceAndersREF 1 2 Set KillOnce to 1 Endif Endif Endif Endif End
1139V03BryceAndersSCRIPTscn V03BryceAndersSCRIPT int DieOnce ref Opp ; Removed GameMode code to reduce the cost of running the script on every frame - its function is now handled by a trigger volume near Vault 3's exit (V03BryceAndersCleanUpTrigger) ; Part of a game-wide revision of scripts - Jorge 03/14/10 ;begin GameMode ; if GetIsCurrentPackage V03BryceDiePackage && DieOnce == 0 ; if GetInSameCell Player == 0 ; killActor V03BryceAndersREF 1 2 ; set DieOnce to 1 ; endif ; endif ;end begin OnHit set Opp to GetCombatTarget if DieOnce == 0 && Opp.GetInFaction FiendsFactionNV killActor Opp 1 2 set DieOnce to 1 endif end begin OnDeath set VMS07.BryceFollowing to 4 Set DieOnce to 1 end
1140V03ControlPodScriptscn V03ControlPodScript short mode ref myLink int V3State begin onActivate if IsActionRef player == 1 set V3State to VMS07.iVault3Entrance set myLink to getLinkedRef ;the linked ref should be the door. if ((myLink.getOpenState == 3) || (myLink.getOpenState == 1)) && mode != 2 ;door closed or open playgroup Forward 0 ;pull handle out set mode to 2 activate myLink ;activate all the things that this is an activate parent of - klaxon light and activator. if player.GetInCell Vault3a == 0 && V3State == 2 setAlly PlayerFaction FiendsFactionNV ;showwarning "Making player an ally of fiend faction" else setEnemy PlayerFaction FiendsFactionNV ;showwarning "Making Player an enemy of fiend faction" endif endif endif end begin gameMode if (mode == 2) if (isAnimPlaying == 0) set myLink to getLinkedRef ;the linked ref should be the door. playgroup Left 1 ;pull handle down set mode to 3 myLink.activate player endif endif end
1141V03EntranceFiendScriptscn V03EntranceFiendScript ;int OnceOnly ; Removed GameMode code to reduce the cost of running the script on every frame - moved its function to VMS07's quest script. Part of a game-wide revision of scripts - Jorge 03/14/10 ;begin GameMode ; if VMS07.iVault3Entrance == 1 && OnceOnly == 0 ; set OnceOnly to 1 ; setAV Aggression 2 ; endif ;end
1142V03EntranceTriggerScriptscn V03EntranceTriggerScript int OnceOnly int OnceOnlyMR begin onTrigger player if OnceOnly == 0 && V03FiendShootREF.GetDetected Player && VMS07.iVault3Entrance != 1 V03FiendShootREF.AddScriptPackage V03EntranceDialoguePackage V03FiendShootREF.evp ;V03FiendShootREF.startconversation Player VMS07Greeting ;showwarning "Trigger is Triggered" set OnceOnly to 1 elseif OnceOnlyMR == 0 && (V03MotorRunnerREF.GetDetected Player || V3DonnieREF.GetDetected Player || V3MarieRef.GetDetected Player) ;V03MotorRunnerRef.startconversation Player VMS07Greeting V03MotorRunnerRef player 1 0 V03MotorRunnerRef.AddScriptPackage V03EntranceDialoguePackage V03MotorRunnerRef.evp set OnceOnlyMR to 1 ;showwarning "Motor Runner trying to talk" endif end
1143V03ExitTriggerScriptscn V03ExitTriggerScript begin OnTriggerEnter Player if VMS07.iVault3Entrance != 2 V03EntranceFiendGun1.setAV Aggression 2 V03EntranceFiendGun2.setAV Aggression 2 V03EntranceFiendGun3.setAV Aggression 2 V03FiendShootREF.setAV Aggression 2 endif end
1144V03FiendShooterScriptscn V03FiendShooterScript int OnceOnly begin GameMode if GetTalkedToPC && OnceOnly == 0 && VMS07.iVault3Entrance == 2 set OnceOnly to 1 startConversation V03FiendShootREF VMS07FiendRadio endif end begin OnPackageEnd V03EntranceDialoguePackage ; removescriptPackage V03EntranceDialoguePackage end
1145V03MotorRunnerScriptscn V03MotorRunnerScript begin OnDeath if GetInSameCell V03BryceAndersRef && (VMS07.BryceFollowing == 1 || VMS07.BryceFollowing == 2) V03BryceAndersRef.AddScriptPackage V03EntranceDialoguePackage V03BryceAndersRef.evp set VMS07.BryceFollowing to 5 endif set VMS07.MotorRunnerState to 1 if GetObjectiveCompleted VMS46 20 == 0 setStage VMS46 70 endif end
1146V22AdditiveSporeCarrierScriptscn V22AdditiveSporeCarrierScript int DoOnce ref LinkedRef begin onTriggerEnter end
1147V22AngelaWilliamsTalkScriptscn V22AngelaWilliamsTalkScript begin OnTrigger player if AngelaWilliamsREF.GetIsCurrentPackage V22WilliamsTalkToPlayerPackage == 1 && AngelaWilliamsREF.GetDead == 0 DisablePlayerControls endif end
1148V22AttackMantisScriptscn V22AttackMantisScript begin OnLoad StartCombat player end
1149V22BathroomScareDoorScriptscn V22BathroomScareDoorScript ref DoorOpener begin onActivate set DoorOpener to GetActionREF if DoorOpener.GetIsReference player V22BathroomScareSporeCarrier1.SetActorsAI 1 V22BathroomScareSporeCarrier1.StartCombat player Activate endif end
1150V22BathroomScareSporeCarrierScriptscn V22BathroomScareSporeCarrierScript begin onLoad SetActorsAI 0 end
1151V22Cave2DoorBusterTrapScriptscn V22Cave2DoorBusterTrapScript ref enteringObject ref LinkedTrap begin onHitWith ExplodesGasTrapsOnHit ;ExplodesGasTrapsOnHit is a form list that has every type of weapon fire and explosion that could potentially ignite a gas trap on contact. set LinkedTrap to GetLinkedRef LinkedTrap.enable 0 do 5 end begin onMagicEffectHit FlamerMagicEffect set LinkedTrap to GetLinkedRef LinkedTrap.enable 0 do 5 end begin onTriggerEnter set enteringObject to getActionRef if (enteringObject.isWeaponInList ExplodesGasTrapsOnTouch) if (enteringObject.isWeaponOut == 1) set LinkedTrap to GetLinkedRef LinkedTrap.enable 0 do 5 endif endif if (enteringObject.HasMagicEffect FlamerMagicEffect == 1) set LinkedTrap to GetLinkedRef LinkedTrap.enable 0 do 5 endif end begin onDestructionStageChange if GetDestructionStage == 1 || GetDestructionStage == 2 set LinkedTrap to GetLinkedRef LinkedTrap.enable 0 ; Only blow the door if it's closed when the flames reach it if V22eCaveLab2EntranceDoor.GetOpenState > 1 ; 1 = Open ; There's an explosion at the door when the flames reach it V22eCaveLab2EntranceDoor.PlaceAtMe MediumExplosion ; Only blow the door if we haven't yet if V22eCaveLab2EntranceDoor.BlowDoor == 0 set V22eCaveLab2EntranceDoor.BlowDoor to 1 endif endif endif end
1152V22Cave2DoorScriptscn V22Cave2DoorScript int BlowDoor float Timer begin GameMode if BlowDoor == 1 if Timer > 1.0 ; Wait a second after the explosion, then show a blown door V22eCaveLab2EntranceDoor.disable V22eCaveLab2EntranceBrokenDoor.enable 0 V22CaveLab2BrokenFloorDoor.enable 0 set BlowDoor to 2 else set Timer to Timer + GetSecondsPassed endif endif end
1153V22cMushroomMantisScareScriptscn V22cMushroomMantisScareScript int DoOnce int StartExodus float Timer begin OnTriggerEnter player set StartExodus to 1 end begin GameMode if StartExodus == 1 if DoOnce == 0 && Timer > 2.0 V22cMushroomMantis1.AddScriptPackage V22MantisTravelPackage V22cMushroomMantis2.AddScriptPackage V22MantisTravelPackage V22cMushroomMantis3.AddScriptPackage V22MantisTravelPackage Set DoOnce to 1 else set Timer to Timer + GetSecondsPassed endif endif end
1154V22DeadSporeCarrierScriptscn V22DeadSporeCarrierScript begin onLoad SetUnconscious 1 SetGhost 1 end
1155V22DoorIsLockedScriptscn V22DoorIsLockedScript begin OnTriggerEnter player if VFreeformVault22.KeelyState > 3 set VFreeformVault22.DoorIsLocked to 1 endif end
1156V22ElevatorDoorScriptscn V22ElevatorDoorScript ; TLS 05/03/2011 - Conditionalizing teleports against companions waiting. int Button int ScreenNumber ; 0 = No skill page ; 1 = Fixing possible page ; 2 = Floor selection page int ShouldSave ; 0 = Shouldn't save ; 1 = Should autosave ref DoorOpener begin onActivate set DoorOpener to GetActionREF if DoorOpener.GetIsReference player if VFreeformVault22.ElevatorRepaired == 0 if player.getav Repair >= 50 ShowMessage V22ElevatorBrokenMsg set ScreenNumber to 1 elseif player.getav Repair < 50 ShowMessage V22ElevatorBrokenNoSkillMsg set ScreenNumber to 0 endif elseif VFreeformVault22.ElevatorRepaired == 1 ShowMessage V22ElevatorWorkingMsg set ScreenNumber to 2 endif ; Safety script to handle the player using the elevator before Keely leaves if VFreeformVault22.KeelyState == 2 || VFreeformVault22.KeelyState == 3 set VFreeformVault22.KeelyTeleporting to 1 set VFreeformVault22.ElevatorRepaired to 1 set VFreeformVault22.KeelyState to 4 ; Slow Keely down again KeelyREF.setav speedmult 100 ; Close and lock door to entrance V22aOpeningAreaDoor.setopenstate 0 V22aOpeningAreaDoor.lock 255 KeelyREF.disable ; Open the doors leading to the lab on level 2 since Keely would have ; gone through them V22bLabDoor01.setOpenState 1 V22bLabDoor02.setOpenState 1 V22bLabDoor03.setOpenState 1 endif endif end ;-------------------------------------------------------------------------------------------------------------------------- begin GameMode set Button to GetButtonPressed if Button == 0 ; Do nothing elseif Button == 1 if ScreenNumber == 1 set VFreeformVault22.ElevatorRepaired to 1 ShowMessage V22ElevatorWorkingMsg set ScreenNumber to 2 player.rewardxp 100 elseif ScreenNumber == 2 player.MoveTo V22Elevator1FMarker if VNPCFollowers.bBooneHired && CraigBooneREF.Waiting == 0 CraigBooneRef.MoveTo V22Elevator1FFollowerMarker elseif VNPCFollowers.ArcadeHired && ArcadeREF.Waiting == 0 ArcadeRef.MoveTo V22Elevator1FFollowerMarker elseif VNPCFollowers.bCassHired && RoseOfSharonCassidyREF.Waiting == 0 RoseofSharonCassidyRef.MoveTo V22Elevator1FFollowerMarker elseif VNPCFollowers.RaulHired && RaulREF.Waiting == 0 RaulRef.MoveTo V22Elevator1FFollowerMarker elseif VNPCFollowers.bLilyHired && LilyREF.Waiting == 0 LilyRef.MoveTo V22Elevator1FFollowerMarker elseif VNPCFollowers.bVeronicaHired && VeronicaREF.Waiting == 0 VeronicaRef.MoveTo V22Elevator1FFollowerMarker endif if VNPCFollowers.RexHired && RexREF.Waiting == 0 RexRef.MoveTo V22Elevator1FRobotMarker elseif VNPCFollowers.bEDEHired if EDE1Ref.GetDisabled == 0 && EDE1REF.Waiting == 0 EDE1Ref.MoveTo V22Elevator1FRobotMarker; elseif EDE2Ref.GetDisabled == 0 && EDE2REF.Waiting == 0 EDE2Ref.MoveTo V22Elevator1FRobotMarker; elseif EDE3Ref.GetDisabled == 0 && EDE3REF.waiting == 0 EDE3Ref.MoveTo V22Elevator1FRobotMarker; endif endif endif set ShouldSave to 1 elseif Button == 2 player.MoveTo V22Elevator2FMarker if VNPCFollowers.bBooneHired && CraigBooneREF.Waiting == 0 CraigBooneRef.MoveTo V22Elevator2FFollowerMarker elseif VNPCFollowers.ArcadeHired && ArcadeREF.Waiting == 0 ArcadeRef.MoveTo V22Elevator2FFollowerMarker elseif VNPCFollowers.bCassHired && RoseOfSharonCassidyREF.Waiting == 0 RoseofSharonCassidyRef.MoveTo V22Elevator2FFollowerMarker elseif VNPCFollowers.RaulHired && RaulREF.Waiting == 0 RaulRef.MoveTo V22Elevator2FFollowerMarker elseif VNPCFollowers.bLilyHired && LilyREF.Waiting == 0 LilyRef.MoveTo V22Elevator2FFollowerMarker elseif VNPCFollowers.bVeronicaHired && VeronicaREF.Waiting == 0 VeronicaRef.MoveTo V22Elevator2FFollowerMarker endif if VNPCFollowers.RexHired && RexREF.Waiting == 0 RexRef.MoveTo V22Elevator2FRobotMarker elseif VNPCFollowers.bEDEHired if EDE1Ref.GetDisabled == 0 && EDE1REF.Waiting == 0 EDE1Ref.MoveTo V22Elevator2FRobotMarker; elseif EDE2Ref.GetDisabled == 0 && EDE2REF.Waiting == 0 EDE2Ref.MoveTo V22Elevator2FRobotMarker; elseif EDE3Ref.GetDisabled == 0 && EDE3REF.Waiting == 0 EDE3Ref.MoveTo V22Elevator2FRobotMarker; endif endif if VFreeformVault22.KeelyTeleporting == 1 KeelyREF.MoveTo V22KeelySecondLevelLabMarker KeelyREF.enable KeelyREF.evp set VFreeformVault22.KeelyTeleporting to 2 ; Add the computer password to Keely's inventory KeelyREF.additem V22KeelyPassword 1 ; Lock the computer upstairs V22bKeelyTerminalREF.lock 255 endif set ShouldSave to 1 elseif Button == 3 player.MoveTo V22Elevator3FMarker if VNPCFollowers.bBooneHired && CraigBooneREF.Waiting == 0 CraigBooneRef.MoveTo V22Elevator3FFollowerMarker elseif VNPCFollowers.ArcadeHired && ArcadeREF.Waiting == 0 ArcadeRef.MoveTo V22Elevator3FFollowerMarker elseif VNPCFollowers.bCassHired && RoseOfSharonCassidyREF.Waiting == 0 RoseofSharonCassidyRef.MoveTo V22Elevator3FFollowerMarker elseif VNPCFollowers.RaulHired && RaulREF.Waiting == 0 RaulRef.MoveTo V22Elevator3FFollowerMarker elseif VNPCFollowers.bLilyHired && LilyREF.Waiting == 0 LilyRef.MoveTo V22Elevator3FFollowerMarker elseif VNPCFollowers.bVeronicaHired && VeronicaREF.Waiting == 0 VeronicaRef.MoveTo V22Elevator3FFollowerMarker endif if VNPCFollowers.RexHired && RexREF.Waiting == 0 RexRef.MoveTo V22Elevator3FRobotMarker elseif VNPCFollowers.bEDEHired if EDE1Ref.GetDisabled == 0 && EDE1REF.Waiting == 0 EDE1Ref.MoveTo V22Elevator3FRobotMarker; elseif EDE2Ref.GetDisabled == 0 && EDE2REF.Waiting == 0 EDE2Ref.MoveTo V22Elevator3FRobotMarker; elseif EDE3Ref.GetDisabled == 0 && EDE3REF.Waiting == 0 EDE3Ref.MoveTo V22Elevator3FRobotMarker; endif endif set ShouldSave to 1 elseif Button == 4 player.MoveTo V22Elevator4FMarker if VNPCFollowers.bBooneHired && CraigBooneREF.Waiting == 0 CraigBooneRef.MoveTo V22Elevator4FFollowerMarker elseif VNPCFollowers.ArcadeHired && ArcadeREF.Waiting == 0 ArcadeRef.MoveTo V22Elevator4FFollowerMarker elseif VNPCFollowers.bCassHired && RoseOfSharonCassidyREF.Waiting == 0 RoseofSharonCassidyRef.MoveTo V22Elevator4FFollowerMarker elseif VNPCFollowers.RaulHired && RaulREF.Waiting == 0 RaulRef.MoveTo V22Elevator4FFollowerMarker elseif VNPCFollowers.bLilyHired && LilyREF.Waiting == 0 LilyRef.MoveTo V22Elevator4FFollowerMarker elseif VNPCFollowers.bVeronicaHired && VeronicaREF.Waiting == 0 VeronicaRef.MoveTo V22Elevator4FFollowerMarker endif if VNPCFollowers.RexHired && RexREF.Waiting == 0 RexRef.MoveTo V22Elevator4FRobotMarker elseif VNPCFollowers.bEDEHired if EDE1Ref.GetDisabled == 0 && EDE1REF.Waiting == 0 EDE1Ref.MoveTo V22Elevator4FRobotMarker; elseif EDE2Ref.GetDisabled == 0 && EDE2REF.Waiting == 0 EDE2Ref.MoveTo V22Elevator4FRobotMarker; elseif EDE3Ref.GetDisabled == 0 && EDE3REF.Waiting == 0 EDE3Ref.MoveTo V22Elevator4FRobotMarker; endif endif set ShouldSave to 1 elseif Button == 5 player.MoveTo V22Elevator5FMarker if VNPCFollowers.bBooneHired && CraigBooneREF.Waiting == 0 CraigBooneRef.MoveTo V22Elevator5FFollowerMarker elseif VNPCFollowers.ArcadeHired && ArcadeREF.Waiting == 0 ArcadeRef.MoveTo V22Elevator5FFollowerMarker elseif VNPCFollowers.bCassHired && RoseOfSharonCassidyREF.Waiting == 0 RoseofSharonCassidyRef.MoveTo V22Elevator5FFollowerMarker elseif VNPCFollowers.RaulHired && RaulREF.Waiting == 0 RaulRef.MoveTo V22Elevator5FFollowerMarker elseif VNPCFollowers.bLilyHired && LilyREF.Waiting == 0 LilyRef.MoveTo V22Elevator5FFollowerMarker elseif VNPCFollowers.bVeronicaHired && VeronicaREF.Waiting == 0 VeronicaRef.MoveTo V22Elevator5FFollowerMarker endif if VNPCFollowers.RexHired && RexREF.Waiting == 0 RexRef.MoveTo V22Elevator5FRobotMarker elseif VNPCFollowers.bEDEHired if EDE1Ref.GetDisabled == 0 && EDE1REF.Waiting == 0 EDE1Ref.MoveTo V22Elevator5FRobotMarker; elseif EDE2Ref.GetDisabled == 0 && EDE2REF.Waiting == 0 EDE2Ref.MoveTo V22Elevator5FRobotMarker; elseif EDE3Ref.GetDisabled == 0 && EDE3REF.Waiting == 0 EDE3Ref.MoveTo V22Elevator5FRobotMarker; endif endif set ShouldSave to 1 endif if ShouldSave == 1 AutoSave set ShouldSave to 0 endif end
1157V22FemaleMantisScriptscn V22FemaleMantisScript begin OnHit AddScriptPackage V22MantisFemaleAttackPackage end
1158V22InitialAttackMantisScriptscn V22InitialAttackMantisScript begin OnLoad end ;-------------------------------------------------------------------------------------------------------------------------- begin OnDeath V22MantisEnableParentREF.enable end
1159V22KeelyElevatorConversationScriptscn V22KeelyElevatorConversationScript begin onTriggerEnter player if VFreeformVault22.KeelyState == 3 KeelyREF.setav speedmult 150 KeelyREF.StartConversation player GREETING endif end
1160V22KeelyElevatorScriptscn V22KeelyElevatorScript begin OnTriggerEnter KeelyREF ; Update state so she talks to you about the elevator next if VFreeformVault22.KeelyState == 2 set VFreeformVault22.KeelyState to 3 endif ; After the conversation with Keely near the elevator, KeelyTeleporting is set ; to 1 and Keely is sent running back to the elevator. When she enters the ; trigger, this script disables her and sets KeelyTeleporting to 2, which ; other scripts check before moving her to the second floor lab if VFreeformVault22.KeelyTeleporting == 1 KeelyREF.disable ; Open the doors leading to the lab on level 2 since Keely would have ; gone through them V22bLabDoor01.setOpenState 1 V22bLabDoor02.setOpenState 1 V22bLabDoor03.setOpenState 1 endif end
1161V22KochScriptscn V22KochScript int Ghosted int RepairedState int Button int TalkedToPlayer begin onLoad ; Ghosting Koch when he first loads so you can blow him to pieces if Ghosted == 0 SetGhost 1 set Ghosted to 1 endif end ;---------------------------------------------------------------------------------------------------------------------- begin onActivate if RepairedState == 0 ; If Koch's still broken, show a message allowing the player to fix her if player.getav Repair >= 60 ShowMessage V22KochBrokenMsg else ShowMessage V22KochBrokenNoSkillMsg endif else Activate endif end ;--------------------------------------------------------------------------------------------------------------------------------------------------- begin GameMode Set Button to GetButtonPressed if Button == 0 ; Normally, do nothing elseif Button == 1 ; Fix Koch ShowMessage V22KochFixedMsg V22KochREF.resurrect 1 V22KochREF.SetActorFullName V22KochNameMsg V22KochREF.setav Health 500 set RepairedState to 1 V22KochREF.evp ;StartConversation player V22KochGreeting endif endif end
1162V22MantisEnableScriptscn V22MantisEnableScript ref LinkedRef int DoOnce begin OnTriggerEnter player if DoOnce == 0 set LinkedRef to GetLinkedRef ;V22MantisEnableParentREF.enable LinkedRef.enable set DoOnce to 1 endif end
1163V22MantisOothecaScriptscn V22MantisOothecaScript begin OnDestructionStageChange if GetDestructionStage == 1 || GetDestructionStage == 2 PlaceAtMe NVCrGiantMantisNymph 3 1 0 PlaceAtMe NVCrGiantMantisNymph 3 1 1 PlaceAtMe NVCrGiantMantisNymph 3 1 2 PlaceAtMe NVCrGiantMantisNymph 3 1 3 endif end begin OnActivate activate end
1164V22MushroomDoor01Scriptscn V22MushroomDoor01Script int BlowDoor float Timer begin GameMode if BlowDoor == 1 if Timer > 1.0 ; Wait a second after the explosion, then show a blown door V22MushroomDoor01.disable V22MushroomBrokenDoor01.enable 0 V22MushroomBrokenFloorDoor01.enable 0 set BlowDoor to 2 else set Timer to Timer + GetSecondsPassed endif endif end
1165V22MushroomDoor02Scriptscn V22MushroomDoor02Script int BlowDoor float Timer begin GameMode if BlowDoor == 1 if Timer > 1.0 ; Wait a second after the explosion, then show a blown door V22MushroomDoor02.disable V22MushroomBrokenDoor02.enable 0 V22MushroomBrokenFloorDoor02.enable 0 set BlowDoor to 2 else set Timer to Timer + GetSecondsPassed endif endif end
1166V22MushroomDoorBusterTrap01Scriptscn V22MushroomDoorBusterTrap01Script ref enteringObject ref LinkedTrap begin onHitWith ExplodesGasTrapsOnHit ;ExplodesGasTrapsOnHit is a form list that has every type of weapon fire and explosion that could potentially ignite a gas trap on contact. set LinkedTrap to GetLinkedRef LinkedTrap.enable 0 do 5 end begin onMagicEffectHit FlamerMagicEffect set LinkedTrap to GetLinkedRef LinkedTrap.enable 0 do 5 end begin onTriggerEnter set enteringObject to getActionRef if (enteringObject.isWeaponInList ExplodesGasTrapsOnTouch) if (enteringObject.isWeaponOut == 1) set LinkedTrap to GetLinkedRef LinkedTrap.enable 0 do 5 endif endif if (enteringObject.HasMagicEffect FlamerMagicEffect == 1) set LinkedTrap to GetLinkedRef LinkedTrap.enable 0 do 5 endif end begin onDestructionStageChange if GetDestructionStage == 1 || GetDestructionStage == 2 set LinkedTrap to GetLinkedRef LinkedTrap.enable 0 ; Only blow the door if it's closed when the flames reach it if V22MushroomDoor01.GetOpenState > 1 ; 1 = Open ; There's an explosion at the door when the flames reach it V22MushroomDoor01.PlaceAtMe MediumExplosion ; Only blow the door if we haven't yet if V22MushroomDoor01.BlowDoor == 0 set V22MushroomDoor01.BlowDoor to 1 endif endif ; Set off the gas traps in the mushroom room V22MushroomPath1GasREF.do 5 V22MushroomPath2GasREF.do 5 V22MushroomPath3GasREF.do 5 endif end
1167V22MushroomDoorBusterTrap02Scriptscn V22MushroomDoorBusterTrap02Script ref enteringObject ref LinkedTrap begin onHitWith ExplodesGasTrapsOnHit ;ExplodesGasTrapsOnHit is a form list that has every type of weapon fire and explosion that could potentially ignite a gas trap on contact. set LinkedTrap to GetLinkedRef LinkedTrap.enable 0 do 5 end begin onMagicEffectHit FlamerMagicEffect set LinkedTrap to GetLinkedRef LinkedTrap.enable 0 do 5 end begin onTriggerEnter set enteringObject to getActionRef if (enteringObject.isWeaponInList ExplodesGasTrapsOnTouch) if (enteringObject.isWeaponOut == 1) set LinkedTrap to GetLinkedRef LinkedTrap.enable 0 do 5 endif endif if (enteringObject.HasMagicEffect FlamerMagicEffect == 1) set LinkedTrap to GetLinkedRef LinkedTrap.enable 0 do 5 endif end begin onDestructionStageChange if GetDestructionStage == 1 || GetDestructionStage == 2 set LinkedTrap to GetLinkedRef LinkedTrap.enable 0 ; Only blow the door if it's closed when the flames reach it if V22MushroomDoor02.GetOpenState > 1 ; 1 = Open ; There's an explosion at the door when the flames reach it V22MushroomDoor02.PlaceAtMe MediumExplosion ; Only blow the door if we haven't yet if V22MushroomDoor02.BlowDoor == 0 set V22MushroomDoor02.BlowDoor to 1 endif endif endif end
1168V22ScareMantisScriptscn V22ScareMantisScript ref LinkedRef begin OnTriggerEnter player set LinkedRef to GetLinkedRef LinkedRef.enable end
1169V22SporeCarrierFDScriptscn V22SporeCarrierFDScript int Risen ; 0 = Hasn't risen yet, 1 = Rising, 2 = Risen float RiseTimer ; Used to tell when they're done getting up short bDoOnce int Healing ;--------------------------------------------------------------------------------------------------------------------------------------- begin onLoad if bDoOnce == 0 SetUnconscious 1 set bDoOnce to 1 endif end ;--------------------------------------------------------------------------------------------------------------------------------------- begin OnDeath sms GlowingOneFXShader RemoveSpell SporeCarrierRegen end ;--------------------------------------------------------------------------------------------------------------------------------------- begin onHit if Risen == 0 set Risen to 1 playidle SCGetUpFaceDown pms GlowingOneFXShader endif ; If the spore carrier is below 50% health, switch to suicide combat style if GetHealthPercentage < .5 SetCombatStyle CSSporeCarrierSuicide endif ; Spore carrier starts regenerating on first hit if Healing == 0 CIOS SporeCarrierRegen set Healing to 1 endif end ;--------------------------------------------------------------------------------------------------------------------------------------- begin GameMode ; Added conditional code to reduce the cost of running the script on every frame. Part of a game-wide revision of scripts - Jorge 03/14/10 if GetInSameCell Player != 1 Return else ; This will need to be done for all companions as well! if GetDistance player < 200 && Risen == 0 set Risen to 1 playidle SCGetUpFaceDown pms GlowingOneFXShader endif ; Set timer to wake up the spore carrier after it's finished getting up if Risen == 1 if RiseTimer > 2.87 SetUnconscious 0 set Risen to 2 else set RiseTimer to RiseTimer + GetSecondsPassed endif endif endif end
1170V22SporeCarrierFUScriptscn V22SporeCarrierFUScript int Risen ; 0 = Hasn't risen yet, 1 = Rising, 2 = Risen float RiseTimer ; Used to tell when they're done getting up short bDoOnce int Healing ;--------------------------------------------------------------------------------------------------------------------------------------- begin onLoad if bDoOnce == 0 SetUnconscious 1 set bDoOnce to 1 endif end ;--------------------------------------------------------------------------------------------------------------------------------------- begin OnDeath sms GlowingOneFXShader RemoveSpell SporeCarrierRegen end ;--------------------------------------------------------------------------------------------------------------------------------------- begin onHit if Risen == 0 set Risen to 1 playidle SCGetUpFaceUp pms GlowingOneFXShader endif ; If the spore carrier is below 50% health, switch to suicide combat style if GetHealthPercentage < .5 SetCombatStyle CSSporeCarrierSuicide endif ; Spore carrier starts regenerting on first hit if Healing == 0 CIOS SporeCarrierRegen set Healing to 1 endif end ;--------------------------------------------------------------------------------------------------------------------------------------- begin GameMode ; Added conditional code to reduce the cost of running the script on every frame. Part of a game-wide revision of scripts - Jorge 03/14/10 If GetInSameCell Player != 1 Return Else ; This will need to be done for all companions as well! if GetDistance player < 200 && Risen == 0 set Risen to 1 playidle SCGetUpFaceUp pms GlowingOneFXShader endif ; Set timer to wake up the spore carrier after it's finished getting up if Risen == 1 if RiseTimer > 2.73 SetUnconscious 0 set Risen to 2 else set RiseTimer to RiseTimer + GetSecondsPassed endif endif Endif end
1171V22SporeCarrierResurrectTriggerScriptscn V22SporeCarrierResurrectTriggerScript ref LinkedRef begin OnTriggerEnter player set LinkedRef to GetLinkedRef LinkedRef.resurrect 1 end
1172V22SporeCarrierScriptscn V22SporeCarrierScript int Risen ; 0 = Hasn't risen yet, 1 = Rising, 2 = Risen float RiseTimer ; Used to tell when they're done getting up begin onLoad SetUnconscious 1 end begin onHit if Risen == 0 playidle SCGetUpFaceDown set Risen to 1 endif end begin GameMode ; This will need to be done for all companions as well! if GetDistance player < 400 && Risen == 0 playidle SCGetUpFaceDown set Risen to 1 endif ; Set timer to wake up the spore carrier after it's finished getting up if Risen == 1 if RiseTimer > 3.67 SetUnconscious 0 set Risen to 2 else set RiseTimer to RiseTimer + GetSecondsPassed endif endif end
1173V22TestRadDustScriptscn V22TestRadDustScript begin OnTriggerEnter player end
1174V22ThreeUpToTwoDoorScriptscn V22ThreeUpToTwoDoorScript begin onActivate ; Safety script to handle the player using the elevator before Keely leaves if VFreeformVault22.KeelyState == 2 || VFreeformVault22.KeelyState == 3 set VFreeformVault22.KeelyTeleporting to 1 set VFreeformVault22.ElevatorRepaired to 1 set VFreeformVault22.KeelyState to 4 ; Slow Keely down again KeelyREF.setav speedmult 100 ; Close and lock door to entrance V22aOpeningAreaDoor.setopenstate 0 V22aOpeningAreaDoor.lock 255 KeelyREF.disable ; Open the doors leading to the lab on level 2 since Keely would have ; gone through them V22bLabDoor01.setOpenState 1 V22bLabDoor02.setOpenState 1 V22bLabDoor03.setOpenState 1 endif ; In case the player talked to Keely by the elevator and then took the stairs, ; teleport Keely as the player goes to the second floor if VFreeformVault22.KeelyTeleporting == 1 KeelyREF.MoveTo V22KeelySecondLevelLabMarker KeelyREF.enable KeelyREF.evp set VFreeformVault22.KeelyTeleporting to 2 endif Activate end
1175V22TrapGasSCRIPTscn V22TrapGasSCRIPT ref enteringObject ref LinkedTrap ref ThisTrap begin onHitWith ExplodesGasTrapsOnHit ;ExplodesGasTrapsOnHit is a form list that has every type of weapon fire and explosion that could potentially ignite a gas trap on contact. set LinkedTrap to GetLinkedRef LinkedTrap.enable 0 do 5 end begin onMagicEffectHit FlamerMagicEffect set LinkedTrap to GetLinkedRef LinkedTrap.enable 0 do 5 end begin onTriggerEnter set enteringObject to getActionRef if (enteringObject.isWeaponInList ExplodesGasTrapsOnTouch) if (enteringObject.isWeaponOut == 1) set LinkedTrap to GetLinkedRef LinkedTrap.enable 0 do 5 endif endif if (enteringObject.HasMagicEffect FlamerMagicEffect == 1) set LinkedTrap to GetLinkedRef LinkedTrap.enable 0 do 5 endif end begin onDestructionStageChange if GetDestructionStage == 1 || GetDestructionStage == 2 set LinkedTrap to GetLinkedRef LinkedTrap.enable 0 ; Need to manually enable all special sections v22gastrapfirstintersection.enable 0 V22KeelyRoomGasStartRef.enable 0 V22MushroomGasStartRef.enable 0 V22Cave2RoomGasStartRef.enable 0 V22Cave1RoomGasStartRef.enable 0 ; Special case gas traps set ThisTrap to GetSelf if ThisTrap.GetIsReference V22GasTrapFirstIntersection V22FirstBranchGasTrapREF.do 5 endif if ThisTrap.GetIsReference V22Cave2RoomGasStartRef V22Cave2RoomPath1GasREF.do 5 V22Cave2RoomPath2GasREF.do 5 V22Cave2RoomPath3GasREF.do 5 endif if ThisTrap.GetIsReference V22eSecondTrapREF V22Cave1RoomGasStartRef.do 5 V22Cave1RoomPath1GasREF.do 5 V22Cave1RoomPath2GasREF.do 5 V22Cave1RoomPath3GasREF.do 5 V22Cave1RoomLeftPathGasREF.do 5 V22Cave1RoomRightPathGasREF.do 5 endif ; Hide the spores since they're supposedly destroyed V22PlantSpores01.disable V22PlantSpores02.disable V22PlantSpores03.disable V22PlantSpores04.disable V22PlantSpores05.disable V22PlantSpores06.disable V22PlantSpores07.disable V22PlantSpores08.disable V22PlantSpores09.disable V22PlantSpores10.disable V22PlantSpores11.disable V22PlantSpores12.disable ; Spore purge has been done, update quest SetObjectiveCompleted VMS06 50 1 SetObjectiveDisplayed VMS06 60 1 Set VFreeformVault22.KeelyState to 5 KeelyREF.evp endif end
1176V22TrapGasSpecial01Scriptscn V22TrapGasSpecial01Script ref enteringObject ref LinkedTrap begin onHitWith ExplodesGasTrapsOnHit ;ExplodesGasTrapsOnHit is a form list that has every type of weapon fire and explosion that could potentially ignite a gas trap on contact. set LinkedTrap to GetLinkedRef LinkedTrap.enable 0 V22KeelyRoomGasStartRef.enable 0 do 5 end begin onMagicEffectHit FlamerMagicEffect set LinkedTrap to GetLinkedRef LinkedTrap.enable 0 V22KeelyRoomGasStartRef.enable 0 do 5 end begin onTriggerEnter set enteringObject to getActionRef if (enteringObject.isWeaponInList ExplodesGasTrapsOnTouch) if (enteringObject.isWeaponOut == 1) set LinkedTrap to GetLinkedRef LinkedTrap.enable 0 V22KeelyRoomGasStartRef.enable 0 do 5 endif endif if (enteringObject.HasMagicEffect FlamerMagicEffect == 1) set LinkedTrap to GetLinkedRef LinkedTrap.enable 0 V22KeelyRoomGasStartRef.enable 0 do 5 endif end begin onDestructionStageChange if GetDestructionStage == 1 || GetDestructionStage == 2 set LinkedTrap to GetLinkedRef LinkedTrap.enable 0 V22KeelyRoomGasStartRef.enable 0 endif end
1177v34F2GhoulDoorSCN v34F2GhoulDoor INT doOnce; BEGIN onTriggerLeave player IF doOnce == 0 playSound FXExplosionGrenadeFragHigh; playSound FXExplosionImpactMetal; v34F2GhoulDoorLocked.disable; v34F2GhoulDoorBroken01.enable; v34F2GhoulDoorBroken02.enable; v34F2CagedGhoul01REF.moveTo v34Loc01REF -32 32 0; v34F2CagedGhoul02REF.moveTo v34Loc01REF; v34F2CagedGhoul03REF.moveTo v34Loc01REF 32 -32 0; v34F2CagedGhoul01REF.startCombat player; v34F2CagedGhoul02REF.startCombat player; v34F2CagedGhoul03REF.startCombat player; SET doOnce to 1; ENDIF END
1178v34F3GhoulDoorSCN v34F3GhoulDoor INT doOnce; BEGIN onTriggerLeave player IF doOnce == 0 playSound FXExplosionGrenadeFragHigh; v34F3GhoulDoorLocked.disable; v34F3GhoulDoorBroken.enable; v34F3GhoulDoorRubble.enable; v34F3CagedGhoul01REF.moveTo v34Loc02REF -64 64 0; v34F3CagedGhoul02REF.moveTo v34Loc02REF -64 0 0; v34F3CagedGhoul01REF.startCombat player; v34F3CagedGhoul02REF.startCombat player; SET doOnce to 1; ENDIF END
1179V34KeycardsSCN V34Keycards INT doOnce; BEGIN onTriggerEnter Player IF doOnce == 0 v34Floater01REF.addItem V34F3Keycard 1; v34Floater02REF.addItem V34F2Keycard 1; SET doOnce to 1 ENDIF END
1180V34MorganBlakeScriptScn V34MorganBlakeScript Begin OnDeath If ( GetStageDone VES34Vault 50 != 1 || GetStageDone VES34Vault 60 != 1 ) SetStage VES34Vault 70 Endif End
1181v34ReactorAmbushSCN v34ReactorAmbush INT doOnce; BEGIN onTriggerEnter player IF doOnce == 0 V34ReactorRearDoor.SetOpenState 1 playSound WPNBreak; playSound FXBulletImpactGlass playSound FXBulletImpactGlass playSound FXBulletImpactGlass V34Window.disable; V34WindowBroken.enable; v34ReactorGhoul03REF.enable; v34ReactorGhoul04REF.enable; v34ReactorGhoul03REF.startCombat player; v34ReactorGhoul04REF.startCombat player; SET doOnce to 1; ENDIF END
1182V3JailCellScriptscn V3JailCellScript int OnceOnly ref Actor begin GameMode if GetOpenState == 1 && OnceOnly == 0 ;showwarning "Door Activated By Player" set OnceOnly to 1 if V3Prisoner01Ref.GetDead == 0 set Actor to V3Prisoner01Ref elseif V3Prisoner02Ref.GetDead == 0 set Actor to V3Prisoner02Ref elseif V3Prisoner03Ref.GetDead == 0 set Actor to V3Prisoner03Ref endif if Actor.GetDead == 0 ;Actor.startConversation Player VMS07Greeting Actor.AddScriptPackage V03EntranceDialoguePackage set VMS07.Prisoners to 1 V3Prisoner01Ref.evp V3Prisoner02Ref.evp V3Prisoner03Ref.evp RewardKarma 50 RewardXP 100 endif endif end
1183V3PrisonerScriptscn V3PrisonerScript begin OnLoad if VMS07.Prisoners != 0 disable endif end Begin OnDeath Set VMS07.DeadPrisoners to VMS07.DeadPrisoners + 1 End
1184VanceOutfitNoteScriptscn VanceOutfitNoteScript begin onActivate showmessage PrimmVanceOutfitMessage end
1185vault19GeckoDeathscn vault19GeckoDeath BEGIN onDeath IF (GetDeadCount NVCrV19FireGeckoRanged >=4 && GetDeadCount NVCrV19FireGecko >= 7) Set VMS42.geckosDead TO 1; IF (VMS42.cookeGoKillGeckos == 1) SetObjectiveCompleted VMS42 10 1; SetObjectiveDisplayed VMS42 30 1; ENDIF ENDIF END
1186Vault21LightScriptScn Vault21LightScript float Time float TimerOn float TimerOff int On int Off int State begin onLoad if State == 1 PlayGroup Backward 0 else PlayGroup Right 0 endif end begin GameMode set Time to GetCurrentTime if (Time > 18 || Time < 6) && State == 0 set TimerOff to 0 if (TimerOn < 1) set TimerOn to TimerOn + GetSecondsPassed if (On == 0) PlayGroup Forward 0 set On to 1 endif else PlayGroup Backward 0 set state to 1 set Off to 0 endif elseif (Time < 18 && Time > 6) && State == 1 set TimerOn to 0 if (TimerOff < 1) set TimerOff to TimerOff + GetSecondsPassed if (Off == 0) PlayGroup Left 0 set Off to 1 endif else PlayGroup Right 0 set State to 0 set On to 0 endif endif end
1187Vault22CrewDoorsCloserSCRIPTscn Vault22CrewDoorsCloserSCRIPT BEGIN OnTriggerEnter Player V22CrewQuartersDoor.SetOpenState 0 V22CrewQuartersDoor1.SetOpenState 0 V22CrewQuartersDoor2.SetOpenState 0 V22CrewQuartersDoor3.SetOpenState 0 V22CrewQuartersDoor4.SetOpenState 0 V22CrewClinicDoor.SetOpenState 0 V22UtilityDoor.SetOpenState 0 end
1188Vault22EmScriptscn Vault22EmScript float Time begin GameMode set Time to GetCurrentTime if Time > 18.0 || Time < 6.0 PlayGroup Backward 1 else PlayGroup Forward 1 endif end
1189Vault87TrapGasSCRIPTscn Vault87TrapGasSCRIPT ref enteringObject begin onHitWith ExplodesGasTrapsOnHit ;ExplodesGasTrapsOnHit is a form list that has every type of weapon fire and explosion that could potentially ignite a gas trap on contact. do 5000 end begin onTriggerEnter set enteringObject to getActionRef if (enteringObject.isWeaponInList ExplodesGasTrapsOnTouch) if (enteringObject.isWeaponOut == 1) do 5000 endif endif if (enteringObject.HasMagicEffect FlamerMagicEffect == 1) do 5000 endif end
1190VaultDoorSCRIPTscn VaultDoorSCRIPT begin onActivate if (IsActionRef player == 1) ShowMessage GenericDoorActivatedElsewhereMsg else Activate endif end
1191VaultSecuritronScriptscn VaultSecuritronScript short Activated begin OnLoad if Activated == 0 SetUnconscious 1 endif end
1192VAutomaticDoorCloseScriptSCN VAutomaticDoorCloseScript REF myLink; FLOAT iTimer; INT exitBool; BEGIN onTriggerEnter player SET iTimer TO 0; SET myLink to getLinkedRef; END BEGIN onTriggerLeave player IF (myLink.getLocked == 0) SET myLink to getLinkedRef; SET exitBool TO 1; IF (myLink.getOpenState ==1) myLink.Activate player 1; SET exitBool TO 0; myLink.Lock 255 ENDIF; ENDIF; END BEGIN GameMode IF (exitBool ==1) SET myLink to getLinkedRef; IF (myLink.getOpenState !=3) SET iTimer TO iTimer + getSecondsPassed; IF (iTimer > 1) myLink.Activate player 1; SET exitBool TO 0; myLink.Lock 255 ENDIF ENDIF ENDIF END
1193VAutomaticDoorScriptSCN VAutomaticDoorScript REF myLink; FLOAT iTimer; INT exitBool; BEGIN onTriggerEnter player SET iTimer TO 0; SET myLink to getLinkedRef; IF (myLink.getOpenState ==3) myLink.Activate player 1; ENDIF; END BEGIN onTriggerLeave player SET myLink to getLinkedRef; SET exitBool TO 1; IF (myLink.getOpenState ==1) myLink.Activate player 1; SET exitBool TO 0; ENDIF; END BEGIN GameMode IF (exitBool ==1) SET myLink to getLinkedRef; IF (myLink.getOpenState !=3) SET iTimer TO iTimer + getSecondsPassed; IF (iTimer > 2) myLink.Activate player 1; SET exitBool TO 0; ENDIF ENDIF ENDIF END
1194VBallisticFistScriptSpellScn VBallisticFistScriptSpell Begin ScriptEffectStart Player.CIOS VBallisticFistSelfEffect End
1195vBennySexTimerScriptscn vBennySexTimerScript float fTimer; short bRunTimer; ref rTarget; short bSexSceneDone short bSexTalk ;prevents startconversation and ISFX from spamming BEGIN GameMode if (vStoryEventBennyFled == 1) && (BennyREF.GetDisabled == 0) BennyREF.Disable VFortBennyREF.Enable if vLegionaryVulpesIncultaREF.GetDead == 0 && GetStageDone VMQ02 110 != 1 VVulpesIncultaStripRef.Enable vLegionaryVulpesIncultaREF.Disable else If GetStageDone VMQ02 110 != 1 AlerioRef.Enable Endif endif if VStoryState < 20 Set VStoryState to 20 endif BennySuiteDoorREF.Unlock if GetObjectiveDisplayed VMQTops 18 SetObjectiveDisplayed VMQTops 18 0 endif if GetObjectiveDisplayed VMQTops 42 SetObjectiveDisplayed VMQTops 42 0 endif endif if (bRunTimer) set fTimer to fTimer + GetSecondsPassed; if (fTimer >=1) && (bSexSceneDone == 0) && (bSexTalk == 0) ApplyImageSpaceModifier MQ08AllBlackedOutISFX BennyREF.StartConversation Player VDialogueBennyBennySexScene set bSexTalk to 1 elseif (fTimer >=1) && (bSexSceneDone == 1) RemoveImageSpaceModifier MQ08AllBlackedOutISFX ApplyImageSpaceModifier FadeInFromBlack2sISFX EnablePlayerControls if VMQTops.BennySeduce == 2 Player.AddNote vBennyLoveNote SetObjectiveDisplayed VMQTops 40 1 endif set bRunTimer to 0; StopQuest VBennySexTimer endif endif END
1196VBSCaptainGillesSCRIPTSCN VBSCaptainGillesSCRIPT BEGIN OnDeath if GetQuestCompleted VMS36 == 0 SetStage VMS36 40 endif if GetQuestCompleted VMS37 == 0 SetStage VMS37 30 endif if GetObjectiveDisplayed VMS36 30 == 0 SetStage VMS40 30 endif END
1197VBSCave1NightStalkerTriggerSCRIPTSCN VBSCave1NightStalkerTriggerSCRIPT Begin OnTriggerEnter if IsActionRef Player vBSCaveNightStalker1REF.AddScriptPackage VBSCave1NightStalkerAmbushPACKAGE vBSCaveNightStalker2REF.AddScriptPackage VBSCave1NightStalkerAmbushPACKAGE vBSCaveNightStalker3REF.AddScriptPackage VBSCave1NightStalkerAmbushPACKAGE vBSCaveNightStalker4REF.AddScriptPackage VBSCave1NightStalkerAmbushPACKAGE vBSCaveNightStalker5REF.AddScriptPackage VBSCave1NightStalkerAmbushPACKAGE endif end
1198VBSDirtySuppliesScriptSCN VBSDirtySuppliesScript BEGIN OnAdd Player ShowMessage VMS36RadioActiveSupplies END
1199VBSLtMarklandSCRIPTSCN VBSLtMarklandSCRIPT short DoOnce ;Script blocker float Timer ;Timer used for animation control BEGIN GameMode ;When set to 1, plays medical animations for eight seconds then restarts conversation with the player if ( GetAV Variable01 == 1 ) if ( DoOnce== 0 ) disablePlayerControls set Timer to 8 set DoOnce to 1 resetai endif set Timer to ( Timer - GetSecondsPassed ) if ( Timer <= 6 ) && ( DoOnce == 1 ) IMod FadeToBlackISFX set DoOnce to 2 endif if ( Timer <= 0 ) && ( IsImagespaceActive FadeToBlackISFX == 0 ) setstage VDoctors 10 enablePlayerControls SetAv Variable01 3 resetai Set DoOnce to 0 endif endif ;When set to 1, plays medical animations for eight seconds then restarts conversation with the player if ( GetAV Variable01 == 2 ) if ( DoOnce== 0 ) disablePlayerControls set Timer to 10 set DoOnce to 1 resetai endif set Timer to ( Timer - GetSecondsPassed ) if ( Timer <= 6 ) && ( DoOnce == 1 ) IMod FadeToBlackISFX set DoOnce to 2 endif if ( Timer <= 0 ) && ( IsImagespaceActive FadeToBlackISFX == 0 ) setstage VDoctors 20 enablePlayerControls SetAv Variable01 3 resetai Set DoOnce to 0 endif endif END BEGIN OnDeath if GetQuestCompleted VMS40 == 0 SetStage VMS40 30 endif END
1200VBSOscarVelascoSCRIPTSCN VBSOscarVelascoSCRIPT Short RunOnce short bTryingToSpeak ;BEGIN GameMode ; ; if (GetInSameCell Player && GetDetected Player && RunOnce == 0 && bTryingtoSpeak == 0) ; set RunOnce to 1 ; Set bTryingToSpeak to 1 ; StartConversation Player GREETING ; endif ; ;END BEGIN OnDeath if GetObjectiveDisplayed VMS37 10 setObjectiveCompleted VMS37 10 1 SetObjectiveDisplayed VMS37 20 1 if (VNPCFollowers.bBooneHired) CraigBooneREF.SayTo player VDialogueCraigBooneOscarVelascoReact; endif endif VBSOscarMine1REF.SetOwnership VBSOscarMine2REF.SetOwnership VBSOscarMine3REF.SetOwnership VBSOscarMine4REF.SetOwnership VBSOscarMine5REF.SetOwnership VOscarFoodBoxREF.SetOwnership VOscarFootlockerREF.SetOwnership VOscarAmmoBox01REF.SetOwnership VOscarAmmoBox02REF.SetOwnership END
1201VBSOscarVelascoTeleportTriggerSCRIPTSCN VBSOscarVelascoTeleportTriggerSCRIPT BEGIN OnTrigger VBSOscarVelascoREF if VMS37.OscarToRedRockCanyon == 1 VBSOscarVelascoREF.MoveTo VBSOscarVelascoRRCMarkerREF elseif VMS37.OscarAttackMcCarran == 1 VBSOscarVelascoREF.MoveTo VBSOscarVelascoMcCarranMarkerREF endif END
1202VBSPediatricsBookSCRIPTSCN VBSPediatricsBookSCRIPT BEGIN OnAdd Player if GetStage VMS40 >= 10 SetObjectiveCompleted VMS40 40 1 SetObjectiveDisplayed VMS40 50 1 endif END
1203VBSPsychologyBookSCRIPTSCN VBSPsychologyBookSCRIPT BEGIN OnAdd Player if GetStage VMS40 >= 10 SetObjectiveCompleted VMS40 20 1 SetObjectiveDisplayed VMS40 30 1 endif END
1204VBSRefugeeSCRIPTSCN VBSRefugeeSCRIPT short CrippleRandomizer short bIsCrippled BEGIN OnLoad if bIsCrippled == 0 set CrippleRandomizer to GetRandomPercent if CrippleRandomizer <= 25 SetActorValue LeftMobilityCondition 0 set bIsCrippled to 1 elseif CrippleRandomizer > 25 && CrippleRandomizer <=50 SetActorValue RightMobilityCondition 0 set bIsCrippled to 1 endif endif END
1205VCampGoldLoudspeakerScriptscn VCampGoldLoudspeakerScript int DoOnce int HanlonDead ref mySelf ;-------------------------------------------------------------------------------------------------------------- begin onLoad if DoOnce == 0 set mySelf to getSelf activate mySelf set DoOnce to 1 endif end ;-------------------------------------------------------------------------------------------------------------- begin onActivate activate end ;--------------------------------------------------------------------------------------------------------------
1206VCampGolfHanlonScriptscn VCampGolfHanlonScript short NumCluesFound ; Sets the number of clues found about Hanlon's treachery short HanlonSuicide ; 1 = Hanlon committed suicide short bHanlonInOffice ; 1 = Hanlon is in his office short bHanlonOnBalcony ; 1 = Hanlon is on his balcony. short iHanlonRadioCounter Short iHanlonToldGrahamDefeat
1207vCaravanQuestScriptscn vCaravanQuestScript short iMayesCaravanGames int iLaceyCaravanGames int iNashCaravanGames
1208vCasinoCompsAtomicWranglerScriptscn vCasinoCompsAtomicWranglerScript short SmallFry short BigWinner short Whale short Banned int doonce begin GameMode if GetCasinoWinningsLevel AtomicWranglerCasinoData == 1 && SmallFry == 0 PlaySound GAMESlotsWinSmall Player.AddItem Beer 1 set SmallFry to 1 elseif GetCasinoWinningsLevel AtomicWranglerCasinoData == 2 && BigWinner == 0 PlaySound GAMESlotsWinMed Player.AddItem Whiskey 1 Player.AddItem CondNCRGamblerHat 1 set BigWinner to 1 elseif GetCasinoWinningsLevel AtomicWranglerCasinoData == 3 && Whale == 0 PlaySound GAMESlotsWinJackpot Player.AddItem RumNukaCola 1 Player.AddItem Absinthe 1 Player.AddItem CondNCRGamblerOutfit 1 set Whale to 1 elseif GetCasinoWinningsLevel AtomicWranglerCasinoData == 4 && Banned == 0 PlaySound GAMESlotsLose set Banned to 1 if doonce == 0 ShowMessage AtomicWranglerSlotsMsg endif endif end
1209vCasinoCompsGomorrahSCRIPTscn vCasinoCompsGomorrahSCRIPT short bFloorManagerIncoming short SmallFry short BigWinner short Whale short Banned begin GameMode if GetCasinoWinningsLevel GomorrahCasinoData == 1 && SmallFry == 0 vFloorManagerGomorrahREF.AddScriptPackage GomorrahFloorManagerDialoguePackage vFloorManagerGomorrahREF.evp set SmallFry to 1 elseif GetCasinoWinningsLevel GomorrahCasinoData == 2 && BigWinner == 0 vFloorManagerGomorrahREF.AddScriptPackage GomorrahFloorManagerDialoguePackage vFloorManagerGomorrahREF.evp set BigWinner to 1 elseif GetCasinoWinningsLevel GomorrahCasinoData == 3 && Whale == 0 vFloorManagerGomorrahREF.AddScriptPackage GomorrahFloorManagerDialoguePackage vFloorManagerGomorrahREF.evp set Whale to 1 elseif GetCasinoWinningsLevel GomorrahCasinoData == 4 && Banned == 0 ; Achievement - The Courier Who Broke the Bank if (vCasinoCompsTheTops.Banned == 1) && (vCasinoCompsUltraLuxe.Banned == 1) AddAchievement 29 endif set Banned to 1 vFloorManagerGomorrahREF.AddScriptPackage GomorrahFloorManagerDialoguePackage vFloorManagerGomorrahREF.evp endif end
1210vCasinoCompsTheTopsScriptscn vCasinoCompsTheTopsScript short bFloorManagerIncoming short SmallFry short BigWinner short Whale short Banned begin GameMode if GetCasinoWinningsLevel TheTopsCasinoData == 1 && SmallFry == 0 vFloorManagerTheTopsRef.AddScriptPackage TheTopsFloorManagerDialoguePackage set SmallFry to 1 elseif GetCasinoWinningsLevel TheTopsCasinoData == 2 && BigWinner == 0 vFloorManagerTheTopsRef.AddScriptPackage TheTopsFloorManagerDialoguePackage set BigWinner to 1 elseif GetCasinoWinningsLevel TheTopsCasinoData == 3 && Whale == 0 vFloorManagerTheTopsRef.AddScriptPackage TheTopsFloorManagerDialoguePackage set Whale to 1 elseif GetCasinoWinningsLevel TheTopsCasinoData == 4 && Banned == 0 ; Achievement - The Courier Who Broke the Bank if (vCasinoCompsUltraLuxe.Banned == 1) && (vCasinoCompsGomorrah.Banned == 1) AddAchievement 29 endif vFloorManagerTheTopsRef.AddScriptPackage TheTopsFloorManagerDialoguePackage set Banned to 1 endif end
1211vCasinoCompsUltraLuxeScriptscn vCasinoCompsUltraLuxeSCRIPT short bFloorManagerIncoming short SmallFry short BigWinner short Whale short Banned begin GameMode if GetCasinoWinningsLevel UltraLuxeCasinoData == 1 && SmallFry == 0 VMS18WhiteGloveFloorManagerREF.AddScriptPackage UltraLuxeFloorManagerDialoguePackage set SmallFry to 1 elseif GetCasinoWinningsLevel UltraLuxeCasinoData == 2 && BigWinner == 0 VMS18WhiteGloveFloorManagerREF.AddScriptPackage UltraLuxeFloorManagerDialoguePackage set BigWinner to 1 elseif GetCasinoWinningsLevel UltraLuxeCasinoData == 3 && Whale == 0 VMS18WhiteGloveFloorManagerREF.AddScriptPackage UltraLuxeFloorManagerDialoguePackage set Whale to 1 elseif GetCasinoWinningsLevel UltraLuxeCasinoData == 4 && Banned == 0 ; Achievement - The Courier Who Broke the Bank if (vCasinoCompsTheTops.Banned == 1) && (vCasinoCompsGomorrah.Banned == 1) AddAchievement 29 endif VMS18WhiteGloveFloorManagerREF.AddScriptPackage UltraLuxeFloorManagerDialoguePackage set Banned to 1 endif end
1212vCasinoCompsVikkiAndVanceSCRIPTscn vCasinoCompsVikkiAndVanceSCRIPT short bFloorManagerIncoming short SmallFry short BigWinner short Whale short Banned begin GameMode if GetCasinoWinningsLevel VikkiVanceCasinoData == 1 && SmallFry == 0 VikkiAndVanceFloorManagerREF.AddScriptPackage VikkiVanceFloorManagerDialoguePackage set SmallFry to 1 elseif GetCasinoWinningsLevel VikkiVanceCasinoData == 2 && BigWinner == 0 VikkiAndVanceFloorManagerREF.AddScriptPackage VikkiVanceFloorManagerDialoguePackage set BigWinner to 1 elseif GetCasinoWinningsLevel VikkiVanceCasinoData == 3 && Whale == 0 VikkiAndVanceFloorManagerREF.AddScriptPackage VikkiVanceFloorManagerDialoguePackage set Whale to 1 elseif GetCasinoWinningsLevel VikkiVanceCasinoData == 4 && Banned == 0 VikkiAndVanceFloorManagerREF.AddScriptPackage VikkiVanceFloorManagerDialoguePackage set Banned to 1 endif end
1213VCassCaravnScriptSCN VCassCaravnScript REF myLink BEGIN onTriggerEnter Player if RoseofSharonCassidyREF.Waiting Return ELSEIF (VNPCFollowers.bCassHired == 1 && VCassCompanion.iCaravanQuestStages == 1 && VDialogueCass.iCassCaravanFound==0) SET VDialogueCass.iCassCaravanFound TO 1; SET VCassCompanion.iCaravanQuestStages TO 2; SetObjectiveCompleted VCassCompanion 10 1 CaravanSacked02Trigger.enable RoseofSharonCassidyREF.AddScriptPackage VCassCaravanDialoguePackage; RoseofSharonCassidyREF.evp; SET myLink TO get