Fallout New Vegas: Ultimate Edition



250 Results For SCPT:SCTX 250 Max
; !!!!!!!!!!!!!!!!!!!!! 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.
; 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
; 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
; 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
; 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
; 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
scn 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
scn 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
scn 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
scn 1ELoadedDiceScript begin OnAdd Player set VDialogueVegasEast2.LoadedDiceFound to 1 AddNote VDialogueVegasEastDiceNote RemoveNote VDialogueVegasEastKeithNote end
Scn 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
scn 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
scn 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
scn 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
scn 223AmmoAddScript int killme BEGIN OnAdd Player Set killme to 1 END begin GameMode if (killme == 1) Player.AddItem Ammo223 20 RemoveMe endif end
scn 22LRPlinkingAmmoAddScript int killme BEGIN OnAdd Player Set killme to 1 END begin GameMode if (killme == 1) Player.AddItem Ammo22LRPlinking 100 RemoveMe endif end
scn 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
scn 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
scn 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
scn 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
scn ActivateEdwardsCamp begin onTriggerEnter EdwardsREF SetStage VMS43a 35 EdwardsFireREF.enable End
scn ActivateEdwardsEchoSandbox begin onTriggerEnter EdwardsREF SetStage VMS43a 30 End
scn 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
scn 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
scn ActivateStartLinkedCombat ref creature begin OnActivate set creature to getLinkedRef creature.startCombat player activate end
scn AddDrainedSmallEnergyCellEffectScript begin ScriptEffectStart if GetRandomPercent < 50 additem DrainedSmallEnergyCell 1 1 else endif end
scn 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
Scn 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
scn 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
SCN ambushVolume BEGIN onTriggerEnter player REF myLink SET myLink to getLinkedRef myLink.enable mylink.startCombat player END
scn 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
scn AntivenomEffectSCRIPT begin ScriptEffectStart Dispel BarkScorpionPoison Dispel CazadorPoison Dispel DeathClawPoison Dispel DLC03FeralGhoulPoison Dispel DLC03RadScorpion3Poison Dispel NightstalkerPoison Dispel RadScorpion1Poison Dispel RadScorpion2Poison ShowMessage PoisonRemovalMsg end
scn 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
scn ArcadeBitterSpringsConversationScript short bDoOnce Begin OnTriggerEnter Player If (VNPCFollowers.ArcadeHired == 1 && bDoOnce !=1) ArcadeREF.Say ArcadeBitterSprings Set bDoOnce to 1 Disable MarkForDelete EndIf End
scn ArcadeGettingArmorTriggerScript begin OnTriggerEnter ArcadeRef ;ArcadeRef.MoveToMarkerWithFade end
scn ArcadeGoodbyeTriggerScript short bDoOnce begin OnTriggerEnter player if (VDialogueArcadeGannon.nArcadeGoForTeslaEK > 0) && (bDoOnce == 0) ArcadeRef.AddScriptPackage ArcadeGoodbyeDialoguePackage set bDoOnce to 1 Disable endif end
scn 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
scn 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
scn 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
scn 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
scn 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
scn 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
scn 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
scn ArmoredVaultSuitMountedSCRIPT BEGIN OnActivate if IsActionRef player == 1 player.additem MS03VaultSuit21Armored 1 1 disable endif END
scn 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
scn 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
scn 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
scn 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
scn 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
scn 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
scn 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
scn 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
scn BarkScorpionDropTrigger01Script begin onTriggerEnter Player BarkScorpionDrop01.enable 0 BarkScorpionDrop01.StartCombat Player end
scn BarkScorpionDropTrigger02Script begin onTriggerEnter Player BarkScorpionDrop02.enable 0 BarkScorpionDrop02.StartCombat Player end
scn BarkScorpionDropTrigger03Script begin onTriggerEnter Player BarkScorpionDrop03.enable 0 BarkScorpionDrop03.StartCombat Player end
scn BarkScorpionDropTrigger04Script begin onTriggerEnter Player BarkScorpionDrop04.enable 0 BarkScorpionDrop04.StartCombat Player end
scn 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
scn 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
scn BCGreatKhanExitTriggerScript ref EnteringObjectRef begin OnTriggerEnter ;set EnteringObjectRef to GetActionRef ;if GetInFaction EnteringObjectRef BoulderCityGreatKhanFaction ; EnteringObjectRef.Disable ;endif end
scn 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
scn 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
scn 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
scn BCPrivateKowalskiScript begin OnReset Disable MarkForDelete end
scn 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
scn 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
scn 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
scn 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
SCN BennyIdleTriggerSCRIPT BEGIN OnTriggerEnter BennyREF set VMQTops.BennyAtTable to 1 TopsBodyguardGoon1REF.evp TopsBodyguardGoon2REF.evp TopsBodyguardGoon3REF.evp TopsBodyguardGoon4REF.evp END
scn 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
scn BennyTeleportTriggerSCRIPT BEGIN OnTriggerEnter if IsActionRef BennyREF == 1 BennyREF.MoveTo BennyDoorCheatMarkerREF endif END
scn 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
scn 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
scn 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
scn 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
scn 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
scn BisonSteveRaiderScript int onceonly begin gamemode if nVPrimmDeputyConv.BeagleCaptured >= 4 && onceonly == 0 ;KillActor CG01DadREF set onceonly to 1 endif end
Scn 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
scn BlackjackTableAtomicWranglerScript begin OnActivate if IsActionRef player if VCasinoCompsAtomicWrangler.Banned ShowMessage AtomicWranglerSlotsMsg else ShowBlackjackMenuParams AtomicWranglerCasinoData 1 200 0 endif endif end
scn BlackjackTableTheTopsScript begin OnActivate if IsActionRef player if VCasinoCompsTheTops.bFloorManagerIncoming ShowMessage TheTopsFloorManagerMsg else ShowBlackjackMenuParams TheTopsCasinoData 1 200 0 endif endif end
scn 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
scn 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
SCN 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
scn BlakeSCRIPT BEGIN OnDeath if GetQuestCompleted VMS40 == 0 && GetDeadCount VFSArcadeGannon == 1 SetStage VMS40 30 endif END
scn 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
scn 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
scn 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
scn 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
scn 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
scn 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
scn BMIntercom01Script
scn 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
scn 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
scn 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
scn BMNeilTalkScript begin onTriggerEnter player NeilREF.AddScriptPackage BMNeilDialogPackage end
scn BMNeilTalkTriggerScript int DoOnce begin onTriggerEnter player if DoOnce == 0 set NeilREF.ReadyToTalk to 1 NeilREF.evp set DoOnce to 1 endif end
scn BMNightkinAmbushTriggerScript int DoOnce ref LinkedNightkin begin OnTriggerEnter player if DoOnce == 0 set LinkedNightkin to GetLinkedRef LinkedNightkin.enable set DoOnce to 1 endif end
scn 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
scn 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
scn 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
scn 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
scn BMRadioScript int LastSongPlayed int LastSongPlayed2 int LastSongPlayed3 int LastSegmentPlayed int LastSegmentPlayed2 int LastSegmentPlayed3 int LastGreeting int LastGreeting2 int SegmentVar int SegmentNum int testvar
scn 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
scn 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
scn BMRockslide3Script int DoOnce begin onTriggerEnter player if DoOnce == 0 BMRockslide3Rock1.enable BMRockslide3Rock2.enable BMRockslide3Rock3.enable BMRockslide3Marker.PlaceAtMe FakeForceBallNudge set DoOnce to 1 endif end
scn 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
scn 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
scn 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
scn 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
scn 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
scn 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 ;--------------------------------------------------------------------------------------------------------------
scn BMWarningNoteActivatorScript begin onActivate ShowMessage BMWarningNoteMessage end
scn 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
scn 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
scn 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
scn 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
scn 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
scn 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
scn 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
scn 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
scn 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
scn 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
scn 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
scn 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
scn 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
scn 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
scn 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
scn 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
scn 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
scn 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
scn 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
scn 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
scn 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
SCN BoSBackStoryScript short MutantKnown
scn 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
scn 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
scn BoulderCityNoteScript begin onActivate ShowMessage PowderGangRanchMsg end
scn 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
scn 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
scn 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
scn 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
scn 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
scn 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
scn 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
scn 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
scn BruceIsaacTeleportTriggerSCRIPT BEGIN OnTriggerEnter BruceIsaacREF if VMSTopsTalentPool.BruceRecruited == 1 BruceIsaacREF.MoveTo TopsBruceMarkerREF endif END
scn 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
scn 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
scn CaesarDialogueTriggerScript short bDoOnce begin OnTriggerEnter player if (bDoOnce == 0) ;FortCaesarRef.AddScriptPackage CaesarInitialDialoguePackage set bDoOnce to 1 Disable MarkForDelete endif end
scn 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
scn CaesarTentFlapInteriorScript begin OnActivate if IsActionRef player ;if VStoryEventCaesarKilled > 0 ;FortCaesarTentGuardRef.StartConversation player ;else Activate ;endif else Activate endif end
scn 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
scn CampGolfRanger1Script short bHeardHanlonSuicide
scn CampGolfScoreTerminalUnlockedSCRIPT BEGIN OnActivate if IsActionRef Player ChiefHanlonREF.SendTrespassAlarm Player AddReputation RepNVNCR 0 1 RewardKarma -5 Activate endif END
scn 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
scn 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
scn 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
scn 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
Scn CampSearchlightCaveEnter Begin onTriggerEnter Player if GetStage VMS44 == 15 CSRadSuitLockerREF.enable endif End
scn CampSearchlightDogTagPickup begin OnAdd if getstage vms43 == 10 set VMS43.DogTagCollected to (VMS43.DogTagCollected +1) endif end
scn 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
scn CampSearchlightEdwardsFindsAstorScript SHORT doOnce Begin onTriggerEnter EdwardsREF if VMS43a.EdwardsToAstor == 1 && doOnce == 0 SetStage VMS43a 21 Set doOnce to 1 EdwardsREF.evp Endif End
scn 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
Scn CampSearchlightLoganSearchFire Begin onTriggerEnter LoganREF if GetStage VMS44 == 40 setStage VMS44 45 set VMS44.LoganFollow to 0 FireLoot.enable LoganREF.ResetHealth endif End
Scn CampSearchlightLoganSearchFire01 Begin onTriggerEnter Player if GetStage VMS44 == 40 setStage VMS44 45 Set VMS44.LoganFollow to 0 endif End
Scn CampSearchlightLoganSearchPolice Begin onTriggerEnter LoganREF if GetStage VMS44 == 30 SetStage VMS44 35 Set VMS44.LoganFollow to 0 PoliceLoot.enable LoganREF.ResetHealth endif End
scn CampSearchlightLootPickups begin OnAdd set VMS44.HasLoot to (VMS44.HasLoot +1) end
scn CampSearchlightPlayerInChurch begin onTriggerEnter set VMS44.PlayerInSearchlight to 1 end
scn 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
scn CampSearchlightScorpions begin onDeath if GetDeadCount CampSearchlightRadscorpionLarge == 3 Set VMS43a.ScorpionsGone to 1 endif end
scn CaptainParkerScript begin OnDeath if (GetQuestCompleted VMS13 == 0) SetStage VMS13 110 endif end
scn CaravanDeckScript short bDoOnce begin OnAdd player if bDoOnce == 0 CaravanSpareDeckRef.RemoveAllItems player set bDoOnce to 1 endif end
scn 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
scn 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
scn Case10mmAddScript BEGIN OnAdd Player Player.AddItem Case10mm 25 RemoveMe END
scn Case127mmAddScript BEGIN OnAdd Player Player.AddItem Case127mm 25 RemoveMe END
scn Case308AddScript BEGIN OnAdd Player Player.AddItem Case308 25 RemoveMe END
scn Case357MagnumAddScript BEGIN OnAdd Player Player.AddItem Case357Magnum 25 RemoveMe END
scn Case44MagnumAddScript BEGIN OnAdd Player Player.AddItem Case44Magnum 25 RemoveMe END
scn Case4570GovtAddScript BEGIN OnAdd Player Player.AddItem Case4570Govt 25 RemoveMe END
scn Case50MGAddScript BEGIN OnAdd Player Player.AddItem Case50MG 25 RemoveMe END
scn Case556mmAddScript BEGIN OnAdd Player Player.AddItem Case556mm 25 RemoveMe END
scn Case5mmAddScript BEGIN OnAdd Player Player.AddItem Case5mm 25 RemoveMe END
scn Case9mmAddScript BEGIN OnAdd Player Player.AddItem Case9mm 25 RemoveMe END
Scn CasinoBaseLightScript begin onLoad PlayGroup Left 0 end Begin GameMode If IsAnimPlaying Left != 1 PlayGroup Left 0 Endif End
scn CassLeaveForeverTriggerScript begin OnTriggerEnter RoseOfSharonCassidyRef if (VDialogueCass.bGoneForever == 1) RoseOfSharonCassidyRef.Disable 1 RoseOfSharonCassidyRef.MarkForDelete Disable MarkForDelete endif end
scn CateyeEffect begin ScriptEffectStart ApplyImageSpaceModifier CatEyeISFX player.setav Nighteye 1 end begin ScriptEffectFinish RemoveImageSpaceModifier CatEyeISFX ApplyImageSpaceModifier CatEyeFadeOutISFX player.setav Nighteye 0 end
scn 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
scn 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
scn 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
scn 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
scn 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
scn 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
scn 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
scn 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
scn 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
scn 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
scn 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
scn 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
scn 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
scn 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
scn CG02RadroachSCRIPT ; update CG02 when player kills me begin OnDeath setstage CG02 70 end
scn 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
scn 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
scn 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
SCN 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
scn 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
scn 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
scn 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
scn 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
scn 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
scn ChallengeArtfulSCRIPT begin ScriptEffectStart AddAchievement 20 player.rewardxp 50 end
scn ChallengeAtALossSCRIPT begin ScriptEffectStart ; AddAchievement 15 end
scn ChallengeBarterSCRIPT begin ScriptEffectStart player.RewardXP 100 AddAchievement 11 end
scn ChallengeBlackjackSCRIPT begin ScriptEffectStart player.RewardXP 100 AddAchievement 27 end
scn ChallengeBlasterMasterSCRIPT begin ScriptEffectStart AddAchievement 12 player.RewardXP 50 end
scn 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
scn ChallengeCannibalSCRIPT begin ScriptEffectStart int rank; set rank to player.HasPerk CannibalChallengePerk if (rank == 0) player.addperk CannibalChallengePerk showmessage ChallengeMessageDine endif UnlockChallenge NVChallengeDevourer end
scn ChallengeCaravanMasterSCRIPT begin ScriptEffectStart AddAchievement 28 player.rewardxp 50 end
scn ChallengeCaravanWinSCRIPT begin ScriptEffectStart player.RewardXP 100 AddAchievement 24 UnlockChallenge NVChallengeCaravanMaster end
scn ChallengeChallengeSCRIPT begin ScriptEffectStart player.RewardXP 100 end
scn ChallengeCraftySCRIPT begin ScriptEffectStart UnlockChallenge NVChallengeCraftyVet AddAchievement 6 end
scn 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
scn ChallengeDisintAchieve begin ScriptEffectStart AddAchievement 1 end
scn ChallengeDismemberScript begin ScriptEffectStart player.RewardXP 50 end
scn 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
scn ChallengeEnergyCritPerk begin ScriptEffectStart player.addperk SetLasersForFunPerk end
scn ChallengeExploreSCRIPT begin ScriptEffectStart AddAchievement 8 UnlockChallenge NVChallengeMojaveMaster end
scn 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
scn ChallengeFoodHealedSCRIPT begin ScriptEffectStart player.RewardXP 100 AddAchievement 22 end
scn ChallengeHappySCRIPT begin ScriptEffectStart player.RewardXP 50 end
scn ChallengeHealthyGlowSCRIPT begin ScriptEffectStart UnlockChallenge NVChallengeHax player.RewardXP 50 AddAchievement 19 end
scn ChallengeHighXPSCRIPT begin ScriptEffectStart player.RewardXP 100 end
scn ChallengeKaboomPowSCRIPT begin ScriptEffectStart UnlockChallenge NVChallengeAimingOptional UnlockChallenge NVChallengeGrenade player.RewardXP 75 end
scn 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
scn ChallengeLeadDealSCRIPT begin ScriptEffectStart AddAchievement 14 player.RewardXP 50 end
scn ChallengeLethalWeaponSCRIPT begin ScriptEffectStart UnlockChallenge NVChallengeGutCheck UnlockChallenge NVChallengeStarts player.RewardXP 50 end
scn ChallengeLieSCRIPT begin ScriptEffectStart player.rewardxp 25 end
scn ChallengeLimberJackSCRIPT begin ScriptEffectStart UnlockChallenge NVChallengePerception UnlockChallenge NVChallengeHeart UnlockChallenge NVChallengeLefty Player.RewardXP 50 end
scn ChallengeLordDeathSCRIPT begin ScriptEffectStart UnlockChallenge NVChallengeMurder player.addperk LordDeathChallengePerk showmessage ChallengeMessageLordDeath player.RewardXP 100 end
scn ChallengeLoveBombSCRIPT begin ScriptEffectStart AddAchievement 13 player.RewardXP 50 end
scn ChallengeLowTechSCRIPT begin ScriptEffectStart ;UnlockChallenge NVChallengeLocks player.RewardXP 50 AddAchievement 15 end
scn ChallengeLowXPSCRIPT begin ScriptEffectStart player.RewardXP 50 end
scn ChallengeMediumXPSCRIPT begin ScriptEffectStart player.RewardXP 75 end
scn 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
scn ChallengeModderSCRIPT begin ScriptEffectStart player.RewardXP 50 AddAchievement 7 end
scn ChallengeMojaveSCRIPT begin ScriptEffectStart AddAchievement 9 end
scn ChallengeMoreEnergeticSCRIPT begin ScriptEffectStart UnlockChallenge NVChallengeCriticalReaction UnlockChallenge NVChallengeLetsGetCritical player.RewardXP 75 end
scn ChallengeMurderScript begin ScriptEffectStart UnlockChallenge NVChallengeApocalypse player.addperk LordDeathChallengePerk player.RewardXP 100 end
scn 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
scn ChallengeOldTymeSCRIPT begin ScriptEffectStart AddAchievement 23 player.RewardXP 50 end




I find your lack of faith disturbing.

Incendar.com, Incendar, Incendar Gaming, Incendium, Incendius, Incendara, Incendario, MINcendar
© Incendar 2004-2020

Sitemap  Media  Contact Discord