Fallout 3: GOTY Game of the year edition



250 Results For SCPT:SCTX 250 Max
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 87bGalleyRushLeftSCRIPT ;this is the trigger on the left side that causes the mutants on the right to rush in ;only do this once short playerTriggered begin onTriggerEnter Player ;if the player hasnt done it before... if playerTriggered == 0 set playerTriggered to 1 ;spawn the SuperMutants and open the doors on the right side mrk87bSuperMutantR01.enable door87bSMGalley01Right.setOpenState 1 mrk87bSuperMutantR02.enable door87bSMGalley02Right.setOpenState 1 ;turn off the other one trig87bGalleyRushRight.disable endif end
scn 87bGalleyRushRightSCRIPT ;this is the trigger on the right side that causes the mutants on the left to rush in 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 SuperMutants and open the doors on the left side mrk87bSuperMutantL01.enable door87bSMGalley01Left.setOpenState 1 mrk87bSuperMutantL02.enable door87bSMGalley02Left.setOpenState 1 ;turn off the other one trig87bGalleyRushLeft.disable endif end
scn 87bLabScareSCRIPT 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 mrk87bSMLabScare.enable endif end
scn 87bRoachRushSCRIPT 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 mrk87bRoachRush01.enable mrk87bRoachRush02.enable mrk87bRoachRush03.enable mrk87bRoachRush04.enable mrk87bRoachRush01.moveTo mrk87bRoachRush01 mrk87bRoachRush02.moveTo mrk87bRoachRush02 mrk87bRoachRush03.moveTo mrk87bRoachRush03 mrk87bRoachRush04.moveTo mrk87bRoachRush04 endif end
scn ActivateStartLinkedCombat ref creature begin OnActivate set creature to getLinkedRef creature.startCombat player activate end
scn AgathaScript ;This script is used primarily to track a daily response in dialog and death begin OnDeath if ( GetStage MS17 >= 10 ) && ( Player.GetItemCount MS17SoilStrad >= 1 ) SetObjectiveCompleted MS17 20 1 SetObjectiveCompleted MS17 30 1 SetObjectiveCompleted MS17 50 1 SetObjectiveDisplayed MS17 60 1 endif if ( GetStage MS17 < 10 ) SetQuestObject MS17SoilStrad 0 MS17SSCaseRef.SetItemValue 100 endif end
SCN AhzrukhalSCRIPT short CharonKilledAhzrukhal BEGIN OnActivate if ( CharonREF.CharonKillAhzrukhalSceneStart == 1 ) && ( GetDead == 0 ) if ( IsActionRef CharonREF == 1 ) activate endif else activate endif END BEGIN OnDeath set DialogueUnderworld.AhzrukhalDead to 1 if ( CharonREF.CharonKillAhzrukhalSceneKill == 1 ) CharonREF.EVP set DialogueUnderworld.CharonKilledAhzrukhal to 1 set CharonREF.CharonKillAhzrukhalSceneStart to -1 UnderworldGhoul06REF.AddScriptPackage FollowersCharonUnderworldGhoul06Watch UnderworldGhoul07REF.AddScriptPackage FollowersCharonUnderworldGhoul07Watch UnderworldGhoul08REF.AddScriptPackage FollowersCharonUnderworldGhoul08Watch UnderworldGhoul09REF.AddScriptPackage FollowersCharonUnderworldGhoul09Watch 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 AllistairTenpennyScript Begin OnDeath set MS12.CountDead to MS12.CountDead + 1 If GetStage MS14 >= 10 && GetStage MS14 < 100 ; if MS14 is running, this completes an objective SetObjectiveCompleted MS14 10 1 SetObjectiveDisplayed MS14 50 1 Set MS14.TenpennyShot to 1 If GetKillingBlowLimb == 1 ; If killed by blow to the head Set MS14.TenpennyHead to 1 EndIf SetObjectiveDisplayed MS14 90 0 ; Shut off objectives if Tenpenny dies before completion SetObjectiveDisplayed MS14 100 0 ElseIf GetStage MS14 < 100 Set MS14.TenpennyDeadEarly to 1 EndIf End
scn AmataSCRIPT begin OnDeath if getStage MS16 > 10 && getstage MS16 < 100 set MS16.AmataKilled to 1 if getDeadCount Overseer == 0 setStage MS16 160 elseif getDeadCount Vault101Security01 == 0 setStage MS16 162 elseif getDeadCount AllenMack == 0 setStage MS16 164 endif endif ;If player was reporting to her about stopping the Overseer and kills her, fail MS16 if getStage MS16 == 140 setStage MS16 200 endif end
SCN AndaleResidentSCRIPT short DoOnce BEGIN OnDeath set DialogueAndale.AndaleDeathCount to ( DialogueAndale.AndaleDeathCount + 1 ) END BEGIN GameMode if DoOnce == 0 if ( IsCombatTarget Player == 1 ) if ( DialogueAndale.AndaleCombat == 0 ) JennyWilsonREF.RemoveFromFaction AndaleResidentFaction JuniorSmithREF.RemoveFromFaction AndaleResidentFaction SetEnemy AndaleResidentFaction PlayerFaction set DialogueAndale.AndaleCombat to 1 set DoOnce to 1 endif endif endif END
scn AndyStahlSCRIPT BEGIN OnDeath set DialogueMegaton.AndyStahlDead to 1 END
scn AntAgonizerScript ;used with MS02 short greetPlayer ;1 = greeted player (used as condition on package, set in MS02 dialog) short sideKick ;1 = player is his sidekick, and he will follow the player to kill his enemy short followingPlayer ;1 = following player, -1 = waiting because player told him to, -2 = he stopped following/waiting because player waited to long, or took him to cells he wasn't going to keep following in float waitUntil ;set in dialog == GetGameDaysPassed + HowEverLongToWait when did the player tell him to wait... used as a condition on wait pack, if he's waiting too long he will go back to his lair Begin GameMode ;If AntAgonizer is fleeing after the battle, and gets away from the player, complete the MS02AntAgonizerEscape package if MS02.battleDone == 1 && MS02.AntAgonizerEscaped == 0 if (getIsCurrentPackage MS02AntAgonizerEscape == 1 || getCurrentAIProcedure == 16) if getDead == 0 if getDistance player >= 2000 set MS02.antAgonizerEscaped to 1 AntAgonizerRef.moveto xMS02AntAgonizerEscapeToHere ;AntAgonizerRef.removeFromFaction MS02TemporaryFriends AntAgonizerRef.setAV Aggression MS02.AntAgonizerAggresion AntAgonizerRef.setAV Confidence MS02.AntAgonizerConfidence AntAgonizerRef.setAV Assistance MS02.AntAgonizerAssistance ;AntAgonizerRef.setAV DamageResist MS02.AntAgonizerDamageResist removeScriptPackage MS02AndAgonizerEscape evp endif endif endif endif if MS02.AntAgonizerRetired !=0 if getDisabled == 0 if getIsCurrentPackage MS02AntAgonizerWanderWasteland == 1 if getInSameCell player == 0 disable endif endif endif endif End Begin OnHit if (AntAgonizerREF.getInCell LairAntAgonizer03) MS02AntAttack1REF.enable MS02AntAttack2REF.enable MS02AntAttack1REF.startcombat player MS02AntAttack2REF.startcombat player endif END Begin OnStartCombat if (AntAgonizerREF.getInCell LairAntAgonizer03) MS02AntAttack1REF.enable MS02AntAttack2REF.enable MS02AntAttack1REF.startcombat player MS02AntAttack2REF.startcombat player endif END Begin OnDeath ;If killed during the mexican standoff at the beginning: if (MS02.BattleDone == 0) MS02BattleAnt1Ref.startcombat player MS02BattleAnt2Ref.startcombat player MS02BattleAnt3Ref.startcombat player MS02BattleAnt4Ref.startcombat player MS02BattleRobot1Ref.addscriptpackage MS02BattleRobotFlee MS02BattleRobot2Ref.addscriptpackage MS02BattleRobotFlee set Ms02.bailedOut to 1 set MS02.battle to 2 set MS02.KilledBefore to 1 endif ;Otherwise if (getStage MS02 > 0) setStage MS02 90 endif if (getObjectiveDisplayed MS02 75 == 1) setObjectiveCompleted MS02 75 1 endif setEnemy MS02BattleAntFaction PlayerFaction if (AntAgonizerREF.IsKiller Player == 1 && AntAgonizerREF.getItemCount MS02SuitAntAgonizer >= 1) player.RemoveFromFaction MS02AntSidekickFaction setEnemy MS02AntFaction PlayerFaction endif End
scn AnthonyLingScript Begin OnDeath ;set variables on MS12Script that this resident has been "dealt with" set MS12.AL to 2 set MS12.CountDealtWith to MS12.CountDealtWith + 1 set MS12.CountDead to MS12.CountDead + 1 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 ArkansasScript Begin onDeath setstage MS13 11 End
scn ArlingtonLibraryBathroomScript short doOnce begin onTriggerEnter player if doOnce != 1 ArlingtonLibraryBathroomFakeForce.placeAtMe FakeForce100r25 set doOnce to 1 endif end
scn ArlingtonLibraryBoSScript01 ;starts innitial BoS attack short doOnce begin OnTriggerEnter player if doOnce == 0 set doOnce to 1 ArlingtonLibraryBoS01Trig01REF01.disable ArlingtonLibraryBoS01Trig01REF02.disable ArlingtonLibraryBoS01REF.setav variable01 2 ArlingtonLibraryBoS02REF.setav variable01 2 ArlingtonLibraryBoS01REF.evp ArlingtonLibraryBoS02REF.evp ArlingtonLibraryRaider01REF.setav variable01 1 ArlingtonLibraryRaider02REF.setav variable01 1 ArlingtonLibraryRaider03bREF.setav variable01 1 ArlingtonLibraryRaider01REF.evp ArlingtonLibraryRaider02REF.evp ArlingtonLibraryRaider03bREF.evp endif end
scn ArlingtonLibraryBoSScript02 ;if player gets through door first and BoS should walk through, force BoS through door ;otherwise they go into low level processing and may take a while. ;if BoS are dead, spawn in new BoS float moveTimer short runMoveTimer begin onTriggerEnter player disable if ArlingtonLibraryBoS01REF.getDead == 1 if ArlingtonLibraryBoS05REF.getDisabled == 1 || ArlingtonLibraryBoS05REF.getDead == 1 ArlingtonLibraryBoS03REF.enable ArlingtonLibraryBoS03REF.setav variable01 3 ArlingtonLibraryBoS03REF.evp endif endif if ArlingtonLibraryBoS02REF.getDead == 1 if ArlingtonLibraryBoS06REF.getDisabled == 1 || ArlingtonLibraryBoS06REF.getDead == 1 ArlingtonLibraryBoS04REF.enable ArlingtonLibraryBoS04REF.setav variable01 3 ArlingtonLibraryBoS04REF.evp endif endif if ArlingtonLibraryBoS01REF.getAV variable01 == 3 ;BoS should be heading to door now set moveTimer to 1.5 set runMoveTimer to 1 endif end begin gameMode if runMoveTimer == 1 if moveTimer > 0 set moveTimer to moveTimer - getSecondsPassed else if ArlingtonLibraryBoS01REF.getDead == 0 if ArlingtonLibraryBoS01REF.GetInCell ArlingtonLibrary02 == 0 ArlingtonLibraryBoS01REF.moveTo ArlingtonLibraryBoS01Door01Pos endif endif if ArlingtonLibraryBoS02REF.getDead == 0 if ArlingtonLibraryBoS02REF.GetInCell ArlingtonLibrary02 == 0 ArlingtonLibraryBoS02REF.moveTo ArlingtonLibraryBoS02Door01Pos endif endif set runMoveTimer to 0 endif endif end
scn ArlingtonLibraryBoSScript03 ;used to trigger raider ambush in ArlingtonLibrary03 float timer short runTimer short stage begin onTriggerEnter disable ArlingtonLibraryPitcher01REF.activate ArlingtonLibraryBoSTrig3REF 1 set timer to 5 set runTimer to 1 set stage to 1 ; update variable01 and evp incase 05 or 06 are enabled at this point ArlingtonLibraryBoS05REF.setav variable01 11 ArlingtonLibraryBoS06REF.setav variable01 11 ArlingtonLibraryBoS05REF.evp ArlingtonLibraryBoS06REF.evp end begin gameMode if runTimer == 1 if timer > 0 set timer to timer - getSecondsPassed else if stage == 1 ArlingtonLibraryRaider11REF.setAV variable01 1 ArlingtonLibraryRaider11REF.evp set timer to 1.5 set stage to 2 elseif stage == 2 ArlingtonLibraryRaider09REF.setAV variable01 1 ArlingtonLibraryRaider09REF.evp set timer to 2 set stage to 3 elseif stage == 3 ArlingtonLibraryRaider10REF.setAV variable01 1 ArlingtonLibraryRaider10REF.evp set runTimer to 0 endif endif endif end
scn ArlingtonLibraryBoSScript04 ;enables last raiders and turrets in ArlingtonLibrary03 short doOnce begin onTriggerEnter if doOnce == 0 set doOnce to 1 ArlingtonLibraryRaider12REF.setav variable01 1 ArlingtonLibraryRaider13REF.setav variable01 1 ArlingtonLibraryRaider12REF.evp ArlingtonLibraryRaider13REF.evp ArlingtonLibraryTurret01.enable ArlingtonLibraryTurret02.enable endif end
scn ArlingtonLibraryBoSScript05 ;BoS rushes in towards last raiders and turrets in ArlingtonLibrary03 short doOnce begin onTriggerEnter if doOnce == 0 set doOnce to 1 ArlingtonLibraryBoS07REF.setav variable01 1 ArlingtonLibraryBoS07REF.evp endif end
scn ArlingtonLibraryBoSScript06 ;if player gets through door first and BoS should walk through, force BoS through door ;otherwise they go into low level processing and may take a while. float moveTimer short runMoveTimer begin onTriggerEnter player if ArlingtonLibraryBoS01REF.getAV variable01 == 8 || ArlingtonLibraryBoS02REF.getAV variable01 == 8 || ArlingtonLibraryBoS03REF.getAV variable01 == 8 || ArlingtonLibraryBoS04REF.getAV variable01 == 8 disable set moveTimer to 1.5 set runMoveTimer to 1 endif end begin gameMode if runMoveTimer == 1 if moveTimer > 0 set moveTimer to moveTimer - getSecondsPassed else if ArlingtonLibraryBoS01REF.getDead == 0 if ArlingtonLibraryBoS01REF.GetInCell ArlingtonLibrary01 == 0 ArlingtonLibraryBoS01REF.moveTo ArlingtonLibraryBoS01Door02Pos endif elseif ArlingtonLibraryBoS03REF.getDead == 0 if ArlingtonLibraryBoS03REF.GetInCell ArlingtonLibrary01 == 0 ArlingtonLibraryBoS03REF.moveTo ArlingtonLibraryBoS01Door02Pos endif endif if ArlingtonLibraryBoS02REF.getDead == 0 if ArlingtonLibraryBoS02REF.GetInCell ArlingtonLibrary01 == 0 ArlingtonLibraryBoS02REF.moveTo ArlingtonLibraryBoS02Door02Pos endif elseif ArlingtonLibraryBoS04REF.getDead == 0 if ArlingtonLibraryBoS04REF.GetInCell ArlingtonLibrary01 == 0 ArlingtonLibraryBoS04REF.moveTo ArlingtonLibraryBoS02Door02Pos endif endif set runMoveTimer to 0 endif endif end
scn ArlingtonLibraryBoSScript07 ;if player gets through door first and BoS should walk through, force BoS through door ;otherwise they go into low level processing and may take a while. ;if BoS are dead, spawn in new BoS float moveTimer short runMoveTimer begin onTriggerEnter player disable if ArlingtonLibraryBoS01REF.getDead == 1 if ArlingtonLibraryBoS03REF.getDisabled == 1 || ArlingtonLibraryBoS03REF.getDead == 1 ArlingtonLibraryBoS05REF.enable endif endif if ArlingtonLibraryBoS02REF.getDead == 1 if ArlingtonLibraryBoS04REF.getDisabled == 1 || ArlingtonLibraryBoS04REF.getDead == 1 ArlingtonLibraryBoS06REF.enable endif endif if ArlingtonLibraryBoS01REF.getAV variable01 == 9 || ArlingtonLibraryBoS02REF.getAV variable01 == 9 || ArlingtonLibraryBoS03REF.getAV variable01 == 9 || ArlingtonLibraryBoS04REF.getAV variable01 == 9 ;BoS should be heading to door now set moveTimer to 1.5 set runMoveTimer to 1 endif end begin gameMode if runMoveTimer == 1 if moveTimer > 0 set moveTimer to moveTimer - getSecondsPassed else if ArlingtonLibraryBoS01REF.getDead == 0 if ArlingtonLibraryBoS01REF.GetInCell ArlingtonLibrary03 == 0 ArlingtonLibraryBoS01REF.moveTo ArlingtonLibraryBoS01Door03Pos endif elseif ArlingtonLibraryBoS03REF.getDead == 0 if ArlingtonLibraryBoS03REF.GetInCell ArlingtonLibrary03 == 0 ArlingtonLibraryBoS03REF.moveTo ArlingtonLibraryBoS01Door03Pos endif endif if ArlingtonLibraryBoS02REF.getDead == 0 if ArlingtonLibraryBoS02REF.GetInCell ArlingtonLibrary03 == 0 ArlingtonLibraryBoS02REF.moveTo ArlingtonLibraryBoS02Door03Pos endif elseif ArlingtonLibraryBoS04REF.getDead == 0 if ArlingtonLibraryBoS04REF.GetInCell ArlingtonLibrary03 == 0 ArlingtonLibraryBoS04REF.moveTo ArlingtonLibraryBoS02Door03Pos endif endif set runMoveTimer to 0 endif endif end
scn ArlingtonLibraryBoSScript08 short doOnce begin onTriggerEnter if doOnce == 0 set doOnce to 1 ArlingtonLibraryRaider14REF.setav variable01 1 ArlingtonLibraryRaider14REF.evp endif end
scn ArlingtonLibraryRaiderDeathScript ;This script is used by raiders in arlington library to update the packages on the BoS ref BoSRef; begin onDeath ; set BoSRef to a live BoS, fixes cases where not all raiders may have been killed, ; new BoS spawned in with higher variable01 value but ArlingtonLibraryBoS01REF ; may still be set to a lower variable01 stage. if ArlingtonLibraryBoS01REF.getDead == 0 && ArlingtonLibraryBoS01Ref.getDisabled == 0 set BoSRef to ArlingtonLibraryBoS01REF elseif ArlingtonLibraryBoS02REF.getDead == 0 && ArlingtonLibraryBoS02REF.getDisabled == 0 set BoSRef to ArlingtonLibraryBoS02REF elseif ArlingtonLibraryBoS03REF.getDead == 0 && ArlingtonLibraryBoS03REF.getDisabled == 0 set BoSRef to ArlingtonLibraryBoS03REF elseif ArlingtonLibraryBoS04REF.getDead == 0 && ArlingtonLibraryBoS04REF.getDisabled == 0 set BoSRef to ArlingtonLibraryBoS04REF elseif ArlingtonLibraryBoS05REF.getDead == 0 && ArlingtonLibraryBoS05REF.getDisabled == 0 set BoSRef to ArlingtonLibraryBoS05REF elseif ArlingtonLibraryBoS06REF.getDead == 0 && ArlingtonLibraryBoS06REF.getDisabled == 0 set BoSRef to ArlingtonLibraryBoS06REF endif if BoSRef.getav variable01 < 3 if ArlingtonLibraryRaider03REF.getDead == 1 && ArlingtonLibraryRaider03bREF.getDead == 1 && ArlingtonLibraryRaider04REF.getDead == 1 ;go to start of ArlingtonLibrary02 ArlingtonLibraryBoS01REF.setav variable01 3 ArlingtonLibraryBoS02REF.setav variable01 3 endif elseif BoSRef.getav variable01 < 4 if ArlingtonLibraryRaider05REF.getDead == 1 && ArlingtonLibraryRaider06REF.getDead == 1 ;continue further into ArlingtonLibrary02 ArlingtonLibraryBoS01REF.setav variable01 4 ArlingtonLibraryBoS02REF.setav variable01 4 ArlingtonLibraryBoS03REF.setav variable01 4 ArlingtonLibraryBoS04REF.setav variable01 4 endif elseif BoSRef.getav variable01 < 6 if ArlingtonLibraryRaider07REF.getDead == 1 && ArlingtonLibraryRaider08REF.getDead == 1 ;start walk to exit while looking at hole in ceiling ArlingtonLibraryBoS01REF.setav variable01 6 ArlingtonLibraryBoS02REF.setav variable01 6 ArlingtonLibraryBoS03REF.setav variable01 6 ArlingtonLibraryBoS04REF.setav variable01 6 endif elseif BoSRef.getav variable01 < 12 if ArlingtonLibraryRaider09REF.getDead == 1 && ArlingtonLibraryRaider10REF.getDead == 1 && ArlingtonLibraryRaider11REF.getDead == 1 ;start walk towards stairs ArlingtonLibraryBoS01REF.setav variable01 12 ArlingtonLibraryBoS02REF.setav variable01 12 ArlingtonLibraryBoS03REF.setav variable01 12 ArlingtonLibraryBoS04REF.setav variable01 12 ArlingtonLibraryBoS05REF.setav variable01 12 ArlingtonLibraryBoS06REF.setav variable01 12 endif elseif BoSRef.getav variable01 < 15 if ArlingtonLibraryRaider12REF.getDead == 1 && ArlingtonLibraryRaider13REF.getDead == 1 ;tell BoS to rush in to fight turrets ArlingtonLibraryBoS01REF.setav variable01 15 ArlingtonLibraryBoS02REF.setav variable01 15 ArlingtonLibraryBoS03REF.setav variable01 15 ArlingtonLibraryBoS04REF.setav variable01 15 ArlingtonLibraryBoS05REF.setav variable01 15 ArlingtonLibraryBoS06REF.setav variable01 15 endif elseif BoSRef.getav variable01 < 16 if ArlingtonLibraryTurret01.getDead == 1 && ArlingtonLibraryTurret02.getDead == 1 ;tell BoS to start patrol back to Arlington Library entry way ArlingtonLibraryBoS01REF.setav variable01 16 ArlingtonLibraryBoS02REF.setav variable01 16 ArlingtonLibraryBoS03REF.setav variable01 16 ArlingtonLibraryBoS04REF.setav variable01 16 ArlingtonLibraryBoS05REF.setav variable01 16 ArlingtonLibraryBoS06REF.setav variable01 16 endif endif ArlingtonLibraryBoS01REF.evp ArlingtonLibraryBoS02REF.evp ArlingtonLibraryBoS03REF.evp ArlingtonLibraryBoS04REF.evp ArlingtonLibraryBoS05REF.evp ArlingtonLibraryBoS06REF.evp end
scn ArlingtonLibraryTurretScript ref myLink short ONflag short doOnce begin gameMode ; initialize if doOnce == 0 set doOnce to 1 set myLink to getLinkedRef set ONflag to 1 ; this turret is ON by default endif if getAV brainCondition == 0 ; all these checks handle daisy-chain turret systems myLink.damageAV brainCondition 100 endif If getUnconscious == 1 && ONflag == 1 stopCombat myLink.stopCombat myLink.setUnconscious 1 set ONflag to 0 ;tell BoS to start patrol back to Arlington Library entry way if ArlingtonLibraryBoS01REF.getav variable01 < 16 ArlingtonLibraryBoS01REF.setav variable01 16 ArlingtonLibraryBoS02REF.setav variable01 16 ArlingtonLibraryBoS03REF.setav variable01 16 ArlingtonLibraryBoS04REF.setav variable01 16 ArlingtonLibraryBoS05REF.setav variable01 16 ArlingtonLibraryBoS06REF.setav variable01 16 ArlingtonLibraryBoS01REF.evp ArlingtonLibraryBoS02REF.evp ArlingtonLibraryBoS03REF.evp ArlingtonLibraryBoS04REF.evp ArlingtonLibraryBoS05REF.evp ArlingtonLibraryBoS06REF.evp endif endif if getUnconscious == 0 && ONflag == 0 myLink.setUnconscious 0 set ONflag to 1 endif end begin onDeath ;tell BoS to start patrol back to Arlington Library entry way if ArlingtonLibraryBoS01REF.getav variable01 < 16 ArlingtonLibraryBoS01REF.setav variable01 16 ArlingtonLibraryBoS02REF.setav variable01 16 ArlingtonLibraryBoS03REF.setav variable01 16 ArlingtonLibraryBoS04REF.setav variable01 16 ArlingtonLibraryBoS05REF.setav variable01 16 ArlingtonLibraryBoS06REF.setav variable01 16 ArlingtonLibraryBoS01REF.evp ArlingtonLibraryBoS02REF.evp ArlingtonLibraryBoS03REF.evp ArlingtonLibraryBoS04REF.evp ArlingtonLibraryBoS05REF.evp ArlingtonLibraryBoS06REF.evp endif end
scn ArmoredVaultSuitMountedSCRIPT BEGIN OnActivate if IsActionRef player == 1 player.additem MS03VaultSuit101Armored 1 1 disable endif END
scn AutomatScript01 short opened begin onActivate if opened == 0 set opened to 1 activate 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 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 BessieLynnScript Begin GameMode if IsInCombat == 1 if GetCombatTarget == player RoyPhillipsRef.addToFaction MS12GhoulsHostileFaction 0 BessieLynnRef.addToFaction MS12GhoulsHostileFaction 0 MichaelMastersRef.addToFaction MS12GhoulsHostileFaction 0 endif endif End Begin OnDeath set MS12.countGhoulsDead to MS12.countGhoulsDead + 1 if MS12.countGhoulsDead >= 3 set MS12.allGhoulsDead to 1 setStage MS12 20 endif if GetStage MS12 >= 250 if MS12.GhoulsOk >= 5 ;spawn her vendor key on her corpse addItem BessieLynnVendorKey 1 endif 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 BigTownResidentSCRIPT short dieRoll Begin GameMode ; simulate Big Town being wiped out by mutants if getStageDone MS01 251 == 1 && getDead == 0 ; dismember? set dieRoll to GetRandomPercent/10 + 1 kill RedREF dieRoll endif ;make him sneak when the player is "teaching" Big Town in MS01 if MS01.sneak == 1 if player.IsSneaking == 1 if GetForceSneak == 0 SetForceSneak 1 endif else if GetForceSneak == 1 SetForceSneak 0 endif endif elseif GetForceSneak == 1 SetForceSneak 0 endif End begin OnDeath set DialogueBigTown.DeadCount to DialogueBigTown.DeadCount + 1 if DialogueBigTown.DeadCount >= BigTownMaxDead setstage MS01 180 endif end
scn BigtownSentryScript short greetPlayer ;1 = finished dialog package with player (used as condition) short doWarn ;1 = shout warning short talking ;used as condition for SAY function float warningTimer ;set in results of MS01Sentry topic short startCombatCheck ; set to 1 so StartCombat block only runs once Begin GameMode ; simulate Big Town being wiped out by mutants if getStageDone MS01 251 == 1 if GetDead == 0 kill endif endif if doWarn == 1 && getDead == 0 if talking == 0 if warningTimer > 0 set warningTimer to warningTimer - getSecondsPassed else set talking to 1 say MS01Sentry endif endif endif end Begin OnStartCombat if MS01.mutants == 1 && doWarn == 0 && startCombatCheck == 0 ; he never said his warning set startCombatCheck to 1 stopcombat evp endif End Begin SayToDone set talking to 0 End begin OnDeath set DialogueBigTown.DeadCount to DialogueBigTown.DeadCount + 1 if DialogueBigTown.DeadCount >= BigTownMaxDead ; quest failed, everybody in Big Town is dead setstage MS01 180 endif end
scn BillyCreelSCRIPT BEGIN OnDeath set DialogueMegaton.BillyCreelDead to 1 END
scn BloodyMessScriptEffectSCRIPT Begin ScriptEffectStart kill MQ11LdPrimeREF 0 ; tell victim to be gibbed by Prime kill MQ11LdPrimeREF 1 kill MQ11LdPrimeREF 2 ; tell victim to be gibbed by Prime kill MQ11LdPrimeREF 3 ; tell victim to be gibbed by Prime kill MQ11LdPrimeREF 4 ; tell victim to be gibbed by Prime kill MQ11LdPrimeREF 5 ; tell victim to be gibbed by Prime kill MQ11LdPrimeREF 6 ; tell victim to be gibbed by Prime 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) 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) 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) 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) 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 BobbleheadDisplayMegatonScript begin OnActivate if IsActionRef player == 1 if BH01.Carrying == 1 Set BH01.Carrying to 0 if ( BH01.HaveAGL == 1 ) MEGAGLRef.Enable Player.RemoveItem BobbleheadAGL 1 endif if ( BH01.HaveBART == 1 ) MEGBarterRef.Enable Player.RemoveItem BobbleheadBART 1 endif if ( BH01.HaveBGUN == 1 ) MEGBigGunsRef.Enable Player.RemoveItem BobbleheadBGUN 1 endif if ( BH01.HaveCHA == 1 ) MEGCHARef.Enable Player.RemoveItem BobbleheadCHA 1 endif if ( BH01.HaveEND == 1 ) MEGENDRef.Enable Player.RemoveItem BobbleheadEND 1 endif if ( BH01.HaveERGW == 1 ) MEGEnergyWeaponsRef.Enable Player.RemoveItem BobbleheadERGW 1 endif if ( BH01.HaveEXPL == 1 ) MEGExplosivesRef.Enable Player.RemoveItem BobbleheadEXPL 1 endif if ( BH01.HaveINT == 1 ) MEGINTRef.Enable Player.RemoveItem BobbleheadINT 1 endif if ( BH01.HaveLOCK == 1 ) MEGLockpickRef.Enable Player.RemoveItem BobbleheadLOCK 1 endif if ( BH01.HaveLUK == 1 ) MEGLUKRef.Enable Player.RemoveItem BobbleheadLUK 1 endif if ( BH01.HaveMEDI == 1 ) MEGMedicineRef.Enable Player.RemoveItem BobbleheadMEDI 1 endif if ( BH01.HaveMELE == 1 ) MEGMeleeRef.Enable Player.RemoveItem BobbleheadMELE 1 endif if ( BH01.HavePER == 1 ) MEGPERRef.Enable Player.RemoveItem BobbleheadPER 1 endif if ( BH01.HaveREPR == 1 ) MEGRepairRef.Enable Player.RemoveItem BobbleheadREPR 1 endif if ( BH01.HaveSCNC == 1 ) MEGScienceRef.Enable Player.RemoveItem BobbleheadSCNC 1 endif if ( BH01.HaveSGUN == 1 ) MEGSmallGunsRef.Enable Player.RemoveItem BobbleheadSGUN 1 endif if ( BH01.HaveSNEK == 1 ) MEGSneakRef.Enable Player.RemoveItem BobbleheadSNEK 1 endif if ( BH01.HaveSPCH == 1 ) MEGSpeechRef.Enable Player.RemoveItem BobbleheadSPCH 1 endif if ( BH01.HaveSTR == 1 ) MEGSTRRef.Enable Player.RemoveItem BobbleheadSTR 1 endif if ( BH01.HaveUARM == 1 ) MEGUnarmedRef.Enable Player.RemoveItem BobbleheadUARM 1 endif else ShowMessage BobbleheadNone endif endif end
scn BobbleheadDisplayTenpennyScript begin OnActivate if IsActionRef player == 1 if BH01.Carrying == 1 Set BH01.Carrying to 0 if ( BH01.HaveAGL == 1 ) TENAGLRef.Enable Player.RemoveItem BobbleheadAGL 1 endif if ( BH01.HaveBART == 1 ) TENBarterRef.Enable Player.RemoveItem BobbleheadBART 1 endif if ( BH01.HaveBGUN == 1 ) TENBigGunsRef.Enable Player.RemoveItem BobbleheadBGUN 1 endif if ( BH01.HaveCHA == 1 ) TENCHARef.Enable Player.RemoveItem BobbleheadCHA 1 endif if ( BH01.HaveEND == 1 ) TENENDRef.Enable Player.RemoveItem BobbleheadEND 1 endif if ( BH01.HaveERGW == 1 ) TENEnergyWeaponsRef.Enable Player.RemoveItem BobbleheadERGW 1 endif if ( BH01.HaveEXPL == 1 ) TENExplosivesRef.Enable Player.RemoveItem BobbleheadEXPL 1 endif if ( BH01.HaveINT == 1 ) TENINTRef.Enable Player.RemoveItem BobbleheadINT 1 endif if ( BH01.HaveLOCK == 1 ) TENLockpickRef.Enable Player.RemoveItem BobbleheadLOCK 1 endif if ( BH01.HaveLUK == 1 ) TENLUKRef.Enable Player.RemoveItem BobbleheadLUK 1 endif if ( BH01.HaveMEDI == 1 ) TENMedicineRef.Enable Player.RemoveItem BobbleheadMEDI 1 endif if ( BH01.HaveMELE == 1 ) TENMeleeRef.Enable Player.RemoveItem BobbleheadMELE 1 endif if ( BH01.HavePER == 1 ) TENPERRef.Enable Player.RemoveItem BobbleheadPER 1 endif if ( BH01.HaveREPR == 1 ) TENRepairRef.Enable Player.RemoveItem BobbleheadREPR 1 endif if ( BH01.HaveSCNC == 1 ) TENScienceRef.Enable Player.RemoveItem BobbleheadSCNC 1 endif if ( BH01.HaveSGUN == 1 ) TENSmallGunsRef.Enable Player.RemoveItem BobbleheadSGUN 1 endif if ( BH01.HaveSNEK == 1 ) TENSneakRef.Enable Player.RemoveItem BobbleheadSNEK 1 endif if ( BH01.HaveSPCH == 1 ) TENSpeechRef.Enable Player.RemoveItem BobbleheadSPCH 1 endif if ( BH01.HaveSTR == 1 ) TENSTRRef.Enable Player.RemoveItem BobbleheadSTR 1 endif if ( BH01.HaveUARM == 1 ) TENUnarmedRef.Enable Player.RemoveItem BobbleheadUARM 1 endif else ShowMessage BobbleheadNone 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) 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) 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) 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) 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) 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) 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) 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) 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) 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 BobbleheadPlacedScriptAGL ;This is for activation of the Bobbleheads if they are activated in the Display Case ;It simply repeats the motivational message for the Player begin OnActivate if IsActionRef player == 1 ShowMessage BobbleheadAGLMessage endif end
scn BobbleheadPlacedScriptBART ;This is for activation of the Bobbleheads if they are activated in the Display Case ;It simply repeats the motivational message for the Player begin OnActivate if IsActionRef player == 1 ShowMessage BobbleheadBARTMessage endif end
scn BobbleheadPlacedScriptBGUN ;This is for activation of the Bobbleheads if they are activated in the Display Case ;It simply repeats the motivational message for the Player begin OnActivate if IsActionRef player == 1 ShowMessage BobbleheadBGUNMessage endif end
scn BobbleheadPlacedScriptCHA ;This is for activation of the Bobbleheads if they are activated in the Display Case ;It simply repeats the motivational message for the Player begin OnActivate if IsActionRef player == 1 ShowMessage BobbleheadCHAMessage endif end
scn BobbleheadPlacedScriptEND ;This is for activation of the Bobbleheads if they are activated in the Display Case ;It simply repeats the motivational message for the Player begin OnActivate if IsActionRef player == 1 ShowMessage BobbleheadENDMessage endif end
scn BobbleheadPlacedScriptERGW ;This is for activation of the Bobbleheads if they are activated in the Display Case ;It simply repeats the motivational message for the Player begin OnActivate if IsActionRef player == 1 ShowMessage BobbleheadERGWMessage endif end
scn BobbleheadPlacedScriptEXPL ;This is for activation of the Bobbleheads if they are activated in the Display Case ;It simply repeats the motivational message for the Player begin OnActivate if IsActionRef player == 1 ShowMessage BobbleheadEXPLMessage endif end
scn BobbleheadPlacedScriptINT ;This is for activation of the Bobbleheads if they are activated in the Display Case ;It simply repeats the motivational message for the Player begin OnActivate if IsActionRef player == 1 ShowMessage BobbleheadINTMessage endif end
scn BobbleheadPlacedScriptLOCK ;This is for activation of the Bobbleheads if they are activated in the Display Case ;It simply repeats the motivational message for the Player begin OnActivate if IsActionRef player == 1 ShowMessage BobbleheadLOCKMessage endif end
scn BobbleheadPlacedScriptLUK ;This is for activation of the Bobbleheads if they are activated in the Display Case ;It simply repeats the motivational message for the Player begin OnActivate if IsActionRef player == 1 ShowMessage BobbleheadLUKMessage endif end
scn BobbleheadPlacedScriptMEDI ;This is for activation of the Bobbleheads if they are activated in the Display Case ;It simply repeats the motivational message for the Player begin OnActivate if IsActionRef player == 1 ShowMessage BobbleheadMEDIMessage endif end
scn BobbleheadPlacedScriptMELE ;This is for activation of the Bobbleheads if they are activated in the Display Case ;It simply repeats the motivational message for the Player begin OnActivate if IsActionRef player == 1 ShowMessage BobbleheadMELEMessage endif end
scn BobbleheadPlacedScriptPER ;This is for activation of the Bobbleheads if they are activated in the Display Case ;It simply repeats the motivational message for the Player begin OnActivate if IsActionRef player == 1 ShowMessage BobbleheadPERMessage endif end
scn BobbleheadPlacedScriptREPR ;This is for activation of the Bobbleheads if they are activated in the Display Case ;It simply repeats the motivational message for the Player begin OnActivate if IsActionRef player == 1 ShowMessage BobbleheadREPRMessage endif end
scn BobbleheadPlacedScriptSCNC ;This is for activation of the Bobbleheads if they are activated in the Display Case ;It simply repeats the motivational message for the Player begin OnActivate if IsActionRef player == 1 ShowMessage BobbleheadSCNCMessage endif end
scn BobbleheadPlacedScriptSGUN ;This is for activation of the Bobbleheads if they are activated in the Display Case ;It simply repeats the motivational message for the Player begin OnActivate if IsActionRef player == 1 ShowMessage BobbleheadSGUNMessage endif end
scn BobbleheadPlacedScriptSNEK ;This is for activation of the Bobbleheads if they are activated in the Display Case ;It simply repeats the motivational message for the Player begin OnActivate if IsActionRef player == 1 ShowMessage BobbleheadSNEKMessage endif end
scn BobbleheadPlacedScriptSPCH ;This is for activation of the Bobbleheads if they are activated in the Display Case ;It simply repeats the motivational message for the Player begin OnActivate if IsActionRef player == 1 ShowMessage BobbleheadSPCHMessage endif end
scn BobbleheadPlacedScriptSTR ;This is for activation of the Bobbleheads if they are activated in the Display Case ;It simply repeats the motivational message for the Player begin OnActivate if IsActionRef player == 1 ShowMessage BobbleheadSTRMessage endif end
scn BobbleheadPlacedScriptUARM ;This is for activation of the Bobbleheads if they are activated in the Display Case ;It simply repeats the motivational message for the Player begin OnActivate if IsActionRef player == 1 ShowMessage BobbleheadUARMMessage 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) 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) 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 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) 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) 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) 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) 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) 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 BoSBackStoryScript short MutantKnown
scn BumbleSCRIPT begin ONHIT if (getIsCurrentPackage BumbleFollowPlayerToSlaver == 1) sayto player LLBumbleStopFollowing set DialogueLilLamplight.LamplightSlaver to -1 endif end begin ONSTARTCOMBAT if (getIsCurrentPackage BumbleFollowPlayerToSlaver == 1) sayto player LLBumbleStopFollowing set DialogueLilLamplight.LamplightSlaver to -1 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 ButtonGwinnettScript short DoOnce begin OnDeath if ( MS15.Shutdown < 1 ) if ( DoOnce == 0 ) set DoOnce to 1 SetQuestObject MS15Ink 0 RewardKarma -100 Set MS15.Solved to 1 if ( GetObjectiveDisplayed MS15 50 == 1 ) SetObjectiveDisplayed MS15 50 0 endif endif endif end begin gamemode if ( MS15.ButtonDestruct == 1 ) PlaceatMe MediumExplosion MS15ButtonRef.Kill MS15ButtonRef 1 MS15ButtonRef.Kill MS15ButtonRef 3 MS15ButtonRef.Kill MS15ButtonRef 5 MS15ButtonRef.Kill MS15ButtonRef 7 MS15ButtonRef.Kill MS15ButtonRef 9 set MS15.ButtonDestruct to 2 endif if ( MS15.Shutdown == 1 ) SetUnconscious 1 Set MS15.Shutdown to 2 endif end
scn CapitolBuildingFatmanShoot01SCRIPT ref target short doOnce1 short doOnce2 short stage float timer begin onTriggerEnter player if doOnce1 == 0 set target to getLinkedRef target.disable TalongCompanyFatmanREF.enable 0 CapitolBuildingTalonWave02REF.enable 0 set stage to 1 CapitolBehemothREF.setav Variable05 1 CapitolBehemothREF.evp set doOnce1 to 1 ;Trigger is only set off one time endif end ;begin onTriggerLeave player ; if doOnce2 == 0 ; TalongCompanyFatmanREF.removefromfaction CapitalBuildingTalonFaction ; TalongCompanyFatmanREF.addtofaction TalonCompany 0 ; set doOnce2 to 1 ;Trigger is only set off one time ; endif ;end Begin gameMode if (stage == 1) ; TalongCompanyFatmanREF.startcombat CapitolBehemothREF ; TalongCompanyFatmanREF.useWeapon weapFatman TalonCompanyFatmanShootFromXMarkerRef CapitolBehemothREF 1 0 1 1 set timer to 5 set stage to 2 endif if (stage == 2) if (timer <= 0) TalongCompanyFatmanREF.removefromfaction CapitalBuildingTalonFaction TalongCompanyFatmanREF.addtofaction TalonCompany 0 TalongCompanyFatmanREF.setav Variable01 1 TalongCompanyFatmanREF.evp TalongCompanyFatmanREF.startcombat CapitolBehemothREF set stage to 3 else set timer to (timer - GetSecondsPassed) endif endif End
scn CapitolBuildingFatmanShoot02SCRIPT ref target short doOnce1 short doOnce2 short stage float timer begin onTriggerEnter player if doOnce1 == 0 set target to getLinkedRef target.disable TalongCompanyFatmanREF.enable 0 CapitolBuildingTalonWave01REF.enable 0 set stage to 1 CapitolBehemothREF.setav Variable05 1 CapitolBehemothREF.evp set doOnce1 to 1 ;Trigger is only set off one time endif end ;begin onTriggerLeave player ; if doOnce2 == 0 ; TalongCompanyFatmanREF.removefromfaction CapitalBuildingTalonFaction ; TalongCompanyFatmanREF.addtofaction TalonCompany 0 ; set doOnce2 to 1 ;Trigger is only set off one time ; endif ;end Begin gameMode if (stage == 1) TalongCompanyFatmanREF.MoveTo CapitolBuildingFatmanMoveToREF ; TalongCompanyFatmanREF.useWeapon weapFatman TalonCompanyFatmanShootFromXMarkerRef TalonCompanyFatmanShootTargetXMarkerRef 1 0 1 set timer to 5 set stage to 2 endif if (stage == 2) if (timer <= 0) TalongCompanyFatmanREF.removefromfaction CapitalBuildingTalonFaction TalongCompanyFatmanREF.addtofaction TalonCompany 0 TalongCompanyFatmanREF.setav Variable01 1 TalongCompanyFatmanREF.evp TalongCompanyFatmanREF.startcombat CapitolBehemothREF set stage to 3 else set timer to (timer - GetSecondsPassed) endif endif End
scn CaravanCrowBrahminSCRIPT BEGIN OnActivate if IsActionRef player == 1 && player.getItemCount CaravanCrowKey >= 1 LocalInventoryCrowREF.activate player elseif IsActionRef player == 1 activate player endif END
scn CaravanCrowSCRIPT BEGIN OnDeath VendorChestCrowREF.removeAllItems LocalInventoryCrowREF VendorChestCrowREF.disable END
scn CaravanDocHoffBrahminSCRIPT BEGIN OnActivate if IsActionRef player == 1 && player.getItemCount CaravanDocHoffKey >= 1 LocalInventoryHoffREF.activate player elseif IsActionRef player == 1 activate player endif END
scn CaravanDocHoffSCRIPT BEGIN OnDeath VendorChestHoffREF.removeAllItems LocalInventoryHoffREF VendorChestHoffREF.disable END
scn CaravanHarithBrahminSCRIPT BEGIN OnActivate if IsActionRef player == 1 && player.getItemCount CaravanHarithKey >= 1 LocalInventoryHarithREF.activate player elseif IsActionRef player == 1 activate player endif END
scn CaravanHarithSCRIPT BEGIN OnDeath VendorChestHarithREF.removeAllItems LocalInventoryHarithREF VendorChestHarithREF.disable END
scn CaravanWolfgangBrahminSCRIPT BEGIN OnActivate if IsActionRef player == 1 && player.getItemCount CaravanWolfgangKey >= 1 LocalInventoryWolfgangREF.activate player elseif IsActionRef player == 1 activate player endif END
scn CaravanWolfgangSCRIPT BEGIN OnDeath VendorChestWolfgangREF.removeAllItems LocalInventoryWolfgangREF VendorChestWolfgangREF.disable END
SCN CarolSCRIPT short Rent short RentDay short RentMonth short Cleanup short RentRoomSetup BEGIN GameMode if ( Rent == 1 ) if ( RentRoomSetup == 0 ) set RentDay to GameDay set RentMonth to GameMonth set RentRoomSetup to 1 UnderworldCarolsPlaceRentDoorREF.unlock UnderworldCarolsPlaceRentBED.SetOwnership else if ( GameDay != RentDay ) set Cleanup to 1 elseif ( GameMonth != RentMonth ) set Cleanup to 1 endif endif if ( Cleanup == 1 ) if ( Player.GetinCell UnderworldCarolsPlace == 0 ) set Cleanup to 2 endif endif if ( Cleanup == 2 ) set Rent to 0 set RentRoomSetup to 0 set RentDay to 0 set RentMonth to 0 set Cleanup to 0 UnderworldCarolsPlaceRentDoorREF.SetOpenState 0 UnderworldCarolsPlaceRentDoorREF.lock 30 UnderworldCarolsPlaceRentBED.SetOwnership Carol endif endif END BEGIN OnDeath set DialogueUnderworld.CarolDead to 1 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 CG01DadSCRIPT 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 CG01 end begin gamemode if doTalk == 1 && talking == 0 if timer > 0 set timer to timer - GetSecondsPassed else SayTo player CG01DadSpeech 1 set talking to 1 endif endif end begin SayToDone CG01DadSpeech set talking to 0 look player if getStage CG01 == 75 setstage CG01 80 endif end ; move to package ;begin OnPackageDone CG01DadCloseGate ; setstage CG01 16 ;end begin OnPackageDone CG01DadCloseDoor setstage CG01 18 end begin OnPackageDone CG01DadReturn setstage CG01 72 end
scn CG01PlaypenGateSCRIPT begin OnActivate if IsActionRef player == 1 && getStage CG01 == 20 setstage CG01 30 endif Activate end
scn CG01SCRIPT ; timer float timer short runTimer ; set to 1 to start running timer ; grabbing tutorial short grabbed short released begin menumode ; TEMP: if starting at CG01 if getStage CG01 < 5 setstage CG01 0 endif end begin gamemode if runTimer == 1 if timer > 0 set timer to timer - GetSecondsPassed else ; anywhere we need a timer if getstageDone CG01 50 == 1 && getstageDone CG01 70 == 0 setstage CG01 70 endif if getstage CG01 == 90 setstage CG01 100 endif endif endif end
scn CG01SpecialBookSCRIPT begin OnActivate if getStage CG01 >= 30 && getStageDone CG01 50 == 0 setstage CG01 50 ssbmp 40 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 CG02AndySCRIPT begin OnActivate ; can't activate while cutting cake if GetIsCurrentPackage CG02AndyCutCake == 0 Activate endif end
scn CG02ButchSCRIPT short doTalk ; set to 1 to start talking short talking ; set to 1 when talking float timer ; used to time delayed talking short mockPaul ; set to 1 to conditionalize sequence where Butch and Wally make fun of Paul ; variables to conditionalize Butch's "tunnel snake chat" dialogue packages short TSWally ; set to 1 after Butch talks to Wally once short TSPaul ; set to 1 after Butch talks to Paul once begin OnStartCombat player ; trigger Officer Gomez to respond CG02Vault101Security04REF.evp end begin gamemode if doTalk == 1 && talking == 0 if timer > 0 set timer to timer - GetSecondsPassed else SayTo player CG02ButchSpeech 1 set talking to 1 endif endif end begin SayToDone CG02ButchSpeech set talking to 0 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 set CG02.DadReady to 1 set doTalk to 1 set timer to 5 end
scn CG02DinerDoorSCRIPT ; door no one can use begin OnActivate if GetIsReference CG02AtriumDoor == 1 && isActionRef CG02OverseerREF == 1 && getStage CG02 < 10 Activate elseif GetIsReference CG02DinerExitREF == 0 || ( GetIsReference CG02DinerExitREF == 1 && getStage CG02 < 40 ) if IsActionRef player == 1 ShowMessage CG02DinerDoorMsg endif else Activate endif 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 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 CG02PlayerPictureTriggerSCRIPT int angle begin OnTrigger player if CG02.DadReady == 1 && CG02.JonasReady == 1 set angle to player.getHeadingAngle CG02JonasREF if angle >= -45 && angle <= 45 set CG02.PlayerReady to 1 else set CG02.PlayerReady to 0 endif endif end begin OnTriggerLeave player set CG02.PlayerReady to 0 end
scn CG02RadroachSCRIPT ; update CG02 when player kills me begin OnDeath setstage CG02 70 end
scn CG02SCRIPT ; opening scene short intro ; tracks what part of the intro "cutscene" we're on ; party variables short ButchHasSweetroll ; set to 1 if player gave Butch the sweetroll short ButchMad ; set to 1 if player refused to give Butch the sweetroll short ButchFight ; set to 1 (and higher) if Butch attacks player short BlameButch ; set to 1 if you tattle to Officer Gomez on Butch short sweetrollGrabbed ; set to 1 if player is currently grabbing sweetroll ; Old Lady Palmer variable short PalmerResponse ; 0 = neutral, 1 = nice, 2 = mean short WallyPipboy ; 1 = Wally made fun of Pip-boy short targetCount ; how many targets hit ; taking picture variables short JonasReady short DadReady short PlayerReady ; timer float timer short runTimer ; set to 1 to start running timer ; intercom beep short intercomBeep ; set to 1 to start intercom beeping begin gamemode if getStage CG02 == 80 if JonasReady == 1 && DadReady == 1 && PlayerReady == 1 setstage CG02 90 endif endif if runTimer == 1 if timer > 0 set timer to timer - GetSecondsPassed else ; anywhere we need a timer if intro > 0 if intro == 1 ; yell surprise CG02AmataREF.SayTo player CG02IntroSurprise CG02BeatriceREF.SayTo player CG02IntroSurprise CG02DadREF.SayTo player CG02IntroSurprise CG02OldLadyPalmerREF.SayTo player CG02IntroSurprise ; CG02Vault101Security04REF.SayTo player CG02IntroSurprise CG02StanleyREF.SayTo player CG02IntroSurprise CG02PaulHannonREF.SayTo player CG02IntroSurprise ; play party sound playSound QSTPartyNoisemaker2D playSound QSTPartyClapping2D ; Dad's line advances to the next stage set runTimer to 0 elseif intro == 2 ; turned lights on too fast CG02Vault101Security04REF.SayTo CG02StanleyREF CG02OfficerGomezSpeech 1 ; advance to next stage handled by dialogue results set runTimer to 0 elseif intro == 3 CG02Vault101Security04REF.Look player ; yell happy birthday CG02AmataREF.SayTo player CG02IntroYell CG02BeatriceREF.SayTo player CG02IntroYell CG02DadREF.SayTo player CG02IntroYell ; CG02OldLadyPalmerREF.SayTo player CG02IntroYell CG02Vault101Security04REF.SayTo player CG02IntroYell CG02StanleyREF.SayTo player CG02IntroYell CG02PaulHannonREF.SayTo player CG02IntroYell ; play clapping sound playSound QSTPartyClapping2D ; Dad's line advances to the next stage set runTimer to 0 elseif intro == 4 ; growing up so fast CG02OldLadyPalmerREF.SayTo player CG02OldLadyPalmerSpeech 1 ; advance to next stage handled by dialogue results set runTimer to 0 elseif intro == 5 ; done with intro setstage CG02 6 set intro to 0 set runTimer to 0 endif endif if intercomBeep == 1 CG02DinerIntercomREF.playSound3D OBJIntercomHail set timer to 3 endif ; move the quest along if player spends too much time without talking to anyone if getstage CG02 >= 10 && getstage CG02 < 34 setstage CG02 35 endif ; after player gets all presents, don't end the scene until Butch talks to player if getStage CG02 == 34 && getStageDone CG02 30 == 1 setstage CG02 35 endif if getstage CG02 == 95 setstage CG02 98 elseif getStage CG02 == 98 setstage CG02 100 endif endif endif end
scn CG02SweetrollSCRIPT begin OnGrab set CG02.sweetrollGrabbed to 1 end begin OnRelease set CG02.sweetrollGrabbed to 0 end begin OnAdd player 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 set CG02.targetCount to CG02.targetCount + 1 setstage CGTutorial 62 ; turn off fire weapon tutorial if CG02.targetCount >= 3 setstage CG02 55 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 CG03AmataScript short AmataInfo float timer begin gamemode if CG03.HitSnake == 2 && GetStageDone CG03 30 == 0 ; Amata shouts during the fight if timer > 0 set timer to timer - GetSecondsPassed else SayTo player CG03AmataFight set timer to 5 endif endif end begin SayToDone CG03AmataTalk set CG03.bullyTalking to 0 end
scn CG03ButchScript ; Amata teasing scene short amatainfo ; general talking short doTalk ; set to 1 to start Butch 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 CG03ButchSpeech 1 set talking to 1 endif endif End begin SayToDone CG03ButchSpeech set talking to 0 end Begin OnHit Player ;this sets a variable in CG03Script that tracks the NPC's health if ( CG03.HitSnake == 0 ) set CG03.HitSnake to 1 endif End begin SayToDone CG03BullyTalk set CG03.bullyTalking to 0 end begin SayToDone CG03ButchLeavingTalk set CG03.ButchLeaveTalkTimer to 0 end begin SayToDone CG03WallyLeavingTalk set CG03.WallyLeaveTalkTimer to 0 end
scn CG03ClassroomTriggerSCRIPT begin OnTriggerEnter player if getStageDone CG03 40 == 0 CG03MrBrotchREF.evp ; make sure in the right package endif ; if fight is going on, end it if CG03.HitSnake == 2 && GetStageDone CG03 30 == 0 set CG03.PlayerQuit to 1 endif end begin OnTrigger player if getStageDone CG03 40 == 1 && getStageDone CG03 50 == 0 ; player is sitting, or has decided to skip the test if player.GetSitting == 3 || getStageDone CG03 45 == 1 setstage CG03 50 endif elseif getStage CG03 == 55 ; start test when either player is sitting, OR player has decided to skip the GOAT if ( getStageDone CG03 50 == 1 && player.GetSitting == 3 ) || getStageDone CG03 45 == 1 ; make sure everyone is sitting if CG03AmataRef.GetSitting == 3 && CG03ButchRef.GetSitting == 3 && CG03PaulHannonRef.GetSitting == 3 && CG03WallyMackREF.GetSitting == 3 && CG03FreddieGomezREF.GetSitting==3 if CG03ChristineKendallREF.GetSitting == 3 && CG03SusieMackREF.GetSitting == 3 setstage CG03 60 endif endif endif elseif getStage CG03 == 90 ; player reenters room after triggering CG04 transition disableplayercontrols endif end
scn CG03GoatSlidesSCRIPT short stage begin OnActivate if IsActionRef CG03MrBrotchREF == 1 set stage to stage + 1 if stage == 1 playgroup Forward 1 elseif stage == 2 playgroup Backward 1 elseif stage == 3 playgroup FastForward 1 elseif stage == 4 playgroup FastBackward 1 elseif stage == 5 playgroup Left 1 elseif stage == 6 playgroup Right 1 elseif stage == 7 playgroup FastLeft 1 elseif stage == 8 playgroup FastRight 1 elseif stage == 9 playgroup TurnLeft 1 elseif stage == 10 playgroup Equip 1 endif endif 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 CG03PaulScript short AmataInfo short timeToWalk ; set by Wally's package when he gets in position short backOff ; set by Amata's run package Begin OnHit Player ;this sets a variable in CG03Script that tracks the NPC's health if ( CG03.HitSnake == 0 ) set CG03.HitSnake to 1 endif End begin SayToDone CG03BullyTalk set CG03.bullyTalking to 0 end begin SayToDone CG03ButchLeavingTalk set CG03.ButchLeaveTalkTimer to 0 end begin SayToDone CG03WallyLeavingTalk set CG03.WallyLeaveTalkTimer to 0 end
scn CG03Script short dadconvoVAR ; used to track dad dialogue short dadjonasVAR ; used to track Dad/Jonas conversation short stanleyConv ; set to -1 to trigger Stanley conv short JonasConvoVar ;used to track Jonas/Stanley conversation ;******************************************************************************************************************* ; AMATA SCENE: short bullyConv ; used to track Amata/Butch conversation short bullyTalking ; set to 1 while someone's talking short bullyStage ; set to 1 to start looping scene short speakerRAN ;used to pick a random speaker for hallway taunting short LastSpeaker ;used to check against previous speaker so same person doesn't talk twice in a row short targetRAN ;used to pick a target if Amata responds ;speaker variables are ; 1-Butch ; 2-Wally ; 3-Paul ; 4-Amata short target ;set by targetRAN and used to select target ;target variables are ; 1-Butch ; 2-Wally ; 3-Paul short handler ;used to turn on and off conversation float insulttimer ;used to time lines of dialogue float breaktimer ;used to put a break between lines of dialogue short AmataLeaveVAR ;used to make Amata head to class ;the following variables are used if the player elects to fight the Tunnel Snakes short HitButch short HitSnake float ButchHealth float WallyHealth float PaulHealth float PlayerHealth short ButchQuit short PlayerQuit short ButchGreet ;used to track scripted conversations short WallyLeaveConvoVar short ButchLeaveConvoVar float ButchLeaveTalkTimer float WallyLeaveTalkTimer ;set to 1 in dialogue to clear them away from Amata short ButchHome short WallyHome short PaulHome ;set to 1 to initiate conversation if player convinces Wally to initiate exit short WallyTurned ;set to 1 to initiate conversation if player convinces Butch to initiate exit short ButchTurned ; set to 1 if player sides with Snakes short AmataFatVAR ;used to say different audios if player sides with snakes ; outcomes of Amata Scene: short AmataOutcome ; 1 = player convinces Wally to exit ; 2 = player convinces Butch to exit ; 3 = player sides with Snakes ; 4 = player ignores problem ;******************************************************************************************************************* ;******************************************************************************************************************* ; GOAT short question ; what question to show -- set by Mr. Brotch's dialogue short waiting ; set to 1 when messageBox triggered short button ; used for GetButtonPressed ; variables for skill tracking short goatBarter ; skill 1 short goatBigGuns ; skill 2 short goatEnergyWeapons ; skill 3 short goatExplosives ; skill 4 short goatLockpick ; skill 5 short goatMedicine ; skill 6 short goatMeleeWeapons ; skill 7 short goatRepair ; skill 8 short goatScience ; skill 9 short goatSmallGuns ; skill 10 short goatSneak ; skill 11 short goatSpeech ; skill 12 short goatUnarmed ; skill 13 ; variables for calculating tag skills ; skill = number of skill that is currently first: see above ; value = current number of choices for that skill short skillFirst short valueFirst short skillSecond short valueSecond short skillThird short valueThird ;******************************************************************************************************************* ; post GOAT: short turnInCount ; increment by 1 each time a student turns in their test short turnInTestConv ; used to conditionalize test turn in conversations ; ending timer short runTimer float timer Begin GameMode if runTimer == 1 if timer > 0 set timer to timer - GetSecondsPassed else ; special cases if getStage CG03 == 90 && Player.GetSitting == 0 setstage CG03 100 endif endif endif ;******************************************************************************************************************* ; GOAT if question > 0 ; if player isn't taking GOAT, Mr. Brotch can just ask the next question (maybe after a pause) if getStageDone CG03 45 == 1 ; Mr. Brotch continues set CG03MrBrotchREF.doTalk to 1 set CG03MrBrotchREF.timer to 2 ; are we done? if question >= 15 ; done with test set question to -1 else ; next question set question to 0 endif else if waiting == 0 set waiting to 1 ; trigger messageBox if question == 1 ShowMessage CG03GoatQuestion01 elseif question == 2 ShowMessage CG03GoatQuestion02 elseif question == 3 ShowMessage CG03GoatQuestion03 elseif question == 4 ShowMessage CG03GoatQuestion04 elseif question == 5 ShowMessage CG03GoatQuestion05 elseif question == 6 ShowMessage CG03GoatQuestion06 elseif question == 7 ShowMessage CG03GoatQuestion07 elseif question == 8 ShowMessage CG03GoatQuestion08 elseif question == 9 ShowMessage CG03GoatQuestion09 elseif question == 10 ShowMessage CG03GoatQuestion10 ; etc. endif else ; wait for button set button to GetButtonPressed if button > -1 ; clear waiting var set waiting to 0 ; process question results if question == 1 if button == 0 ; science setstage CG03Test 9 elseif button == 1 ; speech setstage CG03Test 12 elseif button == 2 ; melee setstage CG03Test 7 elseif button == 3 ; sneak setstage CG03Test 11 endif elseif question == 2 if button == 0 ; melee setstage CG03Test 7 elseif button == 1 ; speech setstage CG03Test 12 elseif button == 2 ; medicine setstage CG03Test 6 elseif button == 3 ; science setstage CG03Test 9 endif elseif question == 3 if button == 0 ; speech setstage CG03Test 12 elseif button == 1 ; unarmed setstage CG03Test 13 elseif button == 2 ; sneak setstage CG03Test 11 elseif button == 3 endif elseif question == 4 if button == 0 ; explosives setstage CG03Test 4 elseif button == 1 ; big guns setstage CG03Test 2 elseif button == 2 ; melee setstage CG03Test 7 elseif button == 3 ; unarmed setstage CG03Test 13 endif elseif question == 5 if button == 0 ; small guns setstage CG03Test 10 elseif button == 1 ; barter setstage CG03Test 1 elseif button == 2 ; big guns setstage CG03Test 2 elseif button == 3 ; explosives setstage CG03Test 4 endif elseif question == 6 if button == 0 ; lockpick setstage CG03Test 5 elseif button == 1 ; barter setstage CG03Test 1 ; explosives setstage CG03Test 4 elseif button == 2 ; energy weapons setstage CG03Test 3 elseif button == 3 ; repair setstage CG03Test 8 endif elseif question == 7 if button == 0 ; small guns setstage CG03Test 10 elseif button == 1 ; medicine setstage CG03Test 6 elseif button == 2 ; barter setstage CG03Test 1 elseif button == 3 ; energy weapons setstage CG03Test 3 endif elseif question == 8 if button == 0 ; barter setstage CG03Test 1 elseif button == 1 ; small guns setstage CG03Test 10 elseif button == 2 ; sneak setstage CG03Test 11 elseif button == 3 ; medicine setstage CG03Test 6 endif elseif question == 9 if button == 0 ; repair setstage CG03Test 8 elseif button == 1 ; explosives setstage CG03Test 4 elseif button == 2 ; sneak setstage CG03Test 11 elseif button == 3 ; lockpick setstage CG03Test 5 endif elseif question == 10 ; do nothing endif ; Mr. Brotch continues set CG03MrBrotchREF.doTalk to 1 ; are we done? if question >= 10 ; done with test set question to -1 else ; next question set question to 0 endif endif endif ; /if question > 0 endif ; /if getStageDone 45 == 1 endif ; END GOAT ;******************************************************************************************************************* ;******** Tunnel Snakes scene ************* if bullyStage > 0 && bullyTalking == 0 if bullyStage == 1 ; Wally or Paul set speakerRAN to GetRandomPercent if speakerRAN > 50 CG03WallyMackREF.sayTo CG03AmataRef CG03BullyTalk set LastSpeaker to 2 else CG03PaulHannonREF.sayTo CG03AmataRef CG03BullyTalk set LastSpeaker to 3 endif set bullyTalking to 1 set bullyStage to 2 elseif bullyStage == 2 ; Amata or Wally or Paul set speakerRAN to GetRandomPercent set targetRAN to GetRandomPercent if speakerRAN > 50 ; Amata if targetRAN>= 66 CG03AmataRef.sayTo CG03ButchREF CG03AmataTalk elseif targetRAN >= 33 CG03AmataRef.sayTo CG03PaulHannonREF CG03AmataTalk else CG03AmataRef.sayTo CG03WallyMackREF CG03AmataTalk endif else if lastSpeaker == 3 CG03WallyMackREF.sayTo CG03AmataRef CG03BullyTalk set lastSpeaker to 2 else CG03PaulHannonREF.sayTo CG03AmataRef CG03BullyTalk set lastSpeaker to 3 endif endif set bullyTalking to 1 set bullyStage to 3 ; random timer before Butch speaks set breakTimer to GetRandomPercent/100 + .2 elseif bullyStage == 3 set breakTimer to breakTimer - GetSecondsPassed if breakTimer < 0 set bullyStage to 4 endif elseif bullyStage == 4 ; Butch to Amata CG03ButchREF.sayTo CG03AmataRef CG03BullyTalk set bullyTalking to 1 set bullyStage to 1 endif endif ;this section starts the exit conversation if the player has convinced Butch to quit teasing Amata if ( ButchTurned == 1 ) ; set ButchLeaveTalkTimer to ( ButchLeaveTalkTimer - GetSecondsPassed ) if ( ButchLeaveTalkTimer <= 0 ) if ( ButchLeaveConvoVAR == 0 ) CG03AmataREF.evp ; stop her dialogue package if still in progress CG03ButchREF.SayTo CG03WallyMackREF CG03ButchLeavingTalk set ButchLeaveTalkTimer to 1 set CG03.ButchLeaveConvoVar to 1 elseif ( ButchLeaveConvoVAR == 1 ) CG03PaulHannonREF.SayTo CG03ButchREF CG03ButchLeavingTalk set ButchLeaveTalkTimer to 1 set CG03.ButchLeaveConvoVar to 2 elseif ( ButchLeaveConvoVAR == 2 ) CG03WallyMackREF.SayTo CG03ButchREF CG03ButchLeavingTalk set ButchLeaveTalkTimer to 1 set CG03.ButchLeaveConvoVar to 3 set ButchTurned to -1 SetStage CG03 30 endif endif endif ;this section starts the exit conversation if the player has convinced Wally Mack to quit teasing Amata if ( WallyTurned == 1 ) if ( WallyLeaveTalkTimer <= 0 ) if ( WallyLeaveConvoVAR == 0 ) CG03AmataREF.evp ; stop her dialogue package if still in progress CG03WallyMackREF.SayTo CG03ButchREF CG03WallyLeavingTalk set WallyLeaveTalkTimer to 1 set WallyLeaveConvoVAR to 1 elseif ( WallyLeaveConvoVAR == 1 ) CG03ButchREF.SayTo CG03WallyMackREF CG03WallyLeavingTalk set WallyLeaveTalkTimer to 1 set WallyLeaveConvoVAR to 2 elseif ( WallyLeaveConvoVAR == 2 ) CG03WallyMackREF.SayTo CG03PaulHannonREF CG03WallyLeavingTalk set WallyLeaveTalkTimer to 1 set WallyLeaveConvoVAR to 3 elseif ( WallyLeaveConvoVAR == 3 ) CG03PaulHannonREF.SayTo CG03ButchREF CG03WallyLeavingTalk set WallyLeaveTalkTimer to 1 set WallyLeaveConvoVAR to 4 elseif ( WallyLeaveConvoVAR == 4 ) CG03ButchREF.SayTo CG03WallyMackREF CG03WallyLeavingTalk set WallyLeaveTalkTimer to 1 set WallyLeaveConvoVAR to 5 elseif ( WallyLeaveConvoVAR == 5 ) CG03ButchREF.SayTo CG03AmataREF CG03WallyLeavingTalk set WallyLeaveTalkTimer to 1 set WallyLeaveConvoVAR to 6 elseif ( WallyLeaveConvoVAR == 6 ) CG03ButchREF.SayTo Player CG03WallyLeavingTalk set WallyLeaveTalkTimer to 1 set WallyLeaveConvoVAR to 7 set WallyTurned to -1 SetStage CG03 30 endif endif endif ;this section handles if the player decides to engage in combat with the Tunnel Snakes ;this is set by the individual scripts on the NPCs if ( HitSnake == 1 ) && getStageDone CG03 30 == 0 ; remove from player faction so they'll fight player CG03ButchREF.removeFromFaction playerFaction CG03WallyMackREF.removeFromFaction playerFaction CG03PaulHannonREF.removeFromFaction playerFaction ; start combat (also done in Begin block of new package -- seems to be more reliable that way) CG03ButchREF.StartCombat player CG03WallyMackREF.StartCombat player CG03PaulHannonREF.StartCombat player CG03MrBrotchREF.evp ; make sure in the right package set bullyStage to 0 set ButchHealth to ( CG03ButchREF.GetAV Health ) set WallyHealth to ( CG03WallyMackREF.GetAV Health ) set PaulHealth to ( CG03PaulHannonREF.GetAV Health) set PlayerHealth to ( player.GetAV Health) set HitSnake to 2 CG03AmataREF.evp endif if ( HitSnake == 2 ) if ( CG03ButchREF.GetAV Health ) <= ( ButchHealth * .5 ) && ( ButchQuit == 0 ) set ButchQuit to 1 elseif ( CG03WallyMackREF.GetAV Health ) <= ( WallyHealth * .5 ) && ( ButchQuit == 0 ) set ButchQuit to 1 elseif ( CG03PaulHannonREF.GetAV Health ) <= ( PaulHealth * .5 ) && ( ButchQuit == 0 ) set ButchQuit to 1 elseif ( player.GetAV Health ) <= ( PlayerHealth * .5 ) && ( PlayerQuit == 0 ) set PlayerQuit to 1 endif endif ; for now, if you force anybody out of the fight, they all back down if ( ButchQuit == 1 ) set HitSnake to 3 CG03AmataREF.evp CG03ButchREF.StopCombat CG03WallyMackREF.StopCombat CG03PaulHannonREF.StopCombat set ButchGreet to 1 set ButchTurned to 1 set AmataOutcome to 2 ; Butch convinced to leave set ButchQuit to 2 setstage CG03 30 endif if ( PlayerQuit == 1 ) set HitSnake to 3 CG03AmataREF.evp CG03ButchREF.StopCombat Player CG03WallyMackREF.StopCombat Player CG03PaulHannonREF.StopCombat Player set ButchGreet to 1 set ButchTurned to 1 set AmataOutcome to 2 ; Butch convinced to leave set PlayerQuit to 2 setstage CG03 30 endif End
scn CG03WallyScript short AmataInfo Begin OnHit Player ;this sets a variable in CG03Script that tracks the NPC's health if ( CG03.HitSnake == 0 ) set CG03.HitSnake to 1 endif End begin SayToDone CG03BullyTalk set CG03.bullyTalking to 0 end begin SayToDone CG03ButchLeavingTalk set CG03.ButchLeaveTalkTimer to 0 end begin SayToDone CG03WallyLeavingTalk set CG03.WallyLeaveTalkTimer to 0 end
scn CG04AllenMackScript ; general talking 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 CG04SecurityBarks 1 set talking to 1 set timer to 1.5 + GetRandomPercent/50 CreateDetectionEvent player 50 endif endif End begin SayToDone CG04SecurityBarks set talking to 0 end
scn CG04AmataSCRIPT begin SayToDone CG04Interrogation set CG04.talking to 0 end
scn CG04ButchDoorTEMPScript ; NOTE -- won't need this script once roaches can't open doors ref actionRef begin OnActivate set actionRef to GetActionRef if actionRef.GetIsID CG04ButchRadroach == 0 Activate endif end
scn CG04ButchRadroachSCRIPT begin OnLoad if CG04EllenDeloriaRef.getDead == 0 startCombat CG04EllenDeloriaRef endif setav perception 10 end begin OnDeath ; when all radroaches are dead, player gets bonus karma is Butch's mom is still alive ; if getStageDone CG04 20 == 1 if getDeadCount CG04ButchRadroach >= 3 ; clear Butch/guard conv variable (in case guard needs to talk to Butch afterwards) set CG04.ButchGuardStage to 0 ; if mom isn't dead, set "good karma" stage if CG04EllenDeloriaRef.getDead == 0 setstage CG04 30 endif endif ; endif end
scn CG04ButchScript ; general talking short doTalk ; set to 1 to start Butch 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 CG04ButchSpeech 1 set talking to 1 endif endif End begin SayToDone CG04ButchSpeech set talking to 0 end
scn CG04DoorScript short dieRoll begin OnLoad set dieRoll to GetRandomPercent ; pick who to say the line end begin OnActivate if IsActionRef player == 1 if dieRoll >= 75 Say CG04DoorYell 0 CG04VoiceNPC01 elseif dieRoll >= 50 Say CG04DoorYell 0 CG04VoiceNPC02 elseif dieRoll >= 25 Say CG04DoorYell 0 CG04VoiceNPC03 else Say CG04DoorYell 0 CG04VoiceNPC04 endif endif Activate end
scn CG04EllenDeLoriaSCRIPT begin OnDeath ; player has to have talked to Butch to lose karma for her death if getStageDone CG04 20 == 1 setstage CG04 31 endif ; no matter what, make radroaches go after player now setEnemy CG04ButchRadroachFaction playerFaction end ; while she's unconscious, she won't play hit sounds (I don't think) begin OnHit if getunconscious == 1 && getDead == 0 if getrandompercent <= 50 say Hit endif endif end begin OnActivate if IsActionRef player == 1 && GetStageDone CG04 30 == 0 && GetDead == 0 SayTo player Hit else Activate endif end
scn CG04GuardStopBoxSCRIPT ; prevent guards from following you out of the vault ref myTarget begin OnTriggerEnter set myTarget to GetActionRef if myTarget.getInFaction Vault101Faction == 1 myTarget.setav aggression 0 myTarget.stopcombat myTarget.addScriptPackage CG04GuardsFleeEntrance endif end
scn CG04MaryHoldenScript ; general talking short doTalk ; set to 1 to start talking short talking ; set to 1 when talking float timer ; used to time delayed talking short runAway ; set to 1 if attacked by player begin OnHitWith weap10mmPistol kill end begin gamemode if GetDisabled == 0 if GetInCell Vault101d == 1 disable endif endif if doTalk == 1 && talking == 0 if timer > 0 set timer to timer - GetSecondsPassed else SayTo CG04TomHoldenREF CG04AtriumConv1 1 set talking to 1 endif endif if runAway == 0 if IsCombatTarget player == 1 set runAway to 1 ; make me cowardly, and an enemy of the guards setav confidence 0 stopcombat addToFaction Vault101SecurityEnemyFaction 0 startcombat player endif endif End begin SayToDone CG04AtriumConv1 set talking to 0 end
scn CG04OverseerOfficeDoorSCRIPT begin OnActivate if ( IsActionRef player == 1 ) if ( GetLocked == 0 || player.getItemCount Vault101OverseersKey > 0 ) Activate elseif ( GetIsLockBroken == 1 ) ShowMessage CG04LockedDoorLockBrokenMsg elseif ( player.getitemCount lockpick == 0 ) ShowMessage CG04LockedDoorNoLockpicksMsg ; if ( CG04AmataDresserREF.getItemCount lockpick == 0 ) ; CG04AmataDresserREF.additem lockpick 10 ; endif else Activate endif endif end
scn CG04OverseerSCRIPT float timer ; run timer to space out shouts for help short gotWeapon begin SayToDone CG04Interrogation set CG04.talking to 0 end begin OnStartCombat player if getstage CG04 >= 35 && getStage CG04 < 38 setstage CG04 38 endif end begin OnDeath setstage CG04 40 ; Amata reacts if getdistance CG04AmataRef < 1000 CG04AmataRef.Say CG04SecurityBarks endif set CG04.AmataAction to 3 end begin gamemode ; end interrogation if player is detected if getstage CG04 >= 35 && getStage CG04 < 38 if getdetected player > 0 setstage CG04 38 endif endif if CG04.OverseerCallForHelp == 1 && getDead == 0 if timer > 0 set timer to timer - GetSecondsPassed else ; only yell if there's no guard nearby if getDetected player == 1 && player.IsInCombat == 0 && GetIsCurrentPackage CG04OverseerCallForGuards == 1 Say CG04SecurityBarks CreateDetectionEvent player 50 ; so guards can realistically react to call for help endif set timer to ( 5 + GetRandomPercent/30 ) look player endif endif end
scn CG04OverseersOfficeTriggerSCRIPT ;Script used to advance CG04 when player enters overseer's office begin OnTriggerEnter player if getQuestRunning CG04 == 1 setstage CG04 60 endif end
scn CG04RadroachAmbushASCRIPT begin OnDeath if getDeadCount CG04RadroachAmbushA >= 3 setstage CG04 15 endif end
scn CG04RadroachSpawnerSCRIPT ref myTarget ref mySelf ; reference variables hold specific markers for this trigger ; this is initialized OnLoad ref marker1 ref marker2 ref marker3 ref marker4 ; used for spawning new roaches ref mySpawn ; what cell do I live in? short myCell ; 0 = A, 1 = B, 2 = C, 3 = D, 4 = E short currCellCount short dieRoll short init begin gamemode if init == 0 set init to 1 ; initializing with linked markers set marker1 to GetLinkedRef set marker2 to marker1.GetLinkedRef set marker3 to marker2.GetLinkedRef set marker4 to marker3.GetLinkedRef if GetInCell Vault101a == 1 set myCell to 0 elseif GetInCell Vault101b == 1 set myCell to 1 elseif GetInCell Vault101d == 1 set myCell to 3 elseif GetInCell Vault101Reactor == 1 set myCell to 4 endif endif end ; tell CG04 whenever the player enters my zone begin OnTriggerEnter player set mySelf to GetSelf set CG04.playerLocation to mySelf end begin OnActivate ; activation message sent by guard scripts to spawn radroaches to attack them set myTarget to getActionRef ; how many roaches to spawn? (1-4) set dieRoll to GetRandomPercent * 4/100 + 1 ; don't spawn if already at cell count if myCell == 0 set currCellCount to CG04.countCellA elseif myCell == 1 set currCellCount to CG04.countCellB elseif myCell == 2 set currCellCount to CG04.countCellC elseif myCell == 3 set currCellCount to CG04.countCellD elseif myCell == 4 set currCellCount to CG04.countCellE endif ; how many can we spawn? if dieRoll + currCellCount >= CG04SpawnMax set dieRoll to CG04SpawnMax - currCellCount endif ; don't spawn past CG04SpawnMaxTotal to prevent too much XP if dieRoll + CG04SpawnCount >= CG04SpawnMaxTotal set dieRoll to CG04SpawnMaxTotal - CG04SpawnCount endif if dieRoll > 0 ; increment spawn count set CG04SpawnCount to CG04SpawnCount + dieRoll endif if dieRoll >= 1 && marker1 != 0 ; spawn a roach and tell it to attack the guard set mySpawn to marker1.placeatme CG04RadroachSpawn mySpawn.startcombat myTarget endif if dieRoll >= 2 && marker2 != 0 ; spawn a roach and tell it to attack the guard set mySpawn to marker2.placeatme CG04RadroachSpawn mySpawn.startcombat myTarget endif if dieRoll >= 3 && marker3 != 0 ; spawn a roach and tell it to attack the guard set mySpawn to marker3.placeatme CG04RadroachSpawn mySpawn.startcombat myTarget endif if dieRoll >= 4 && marker4 != 0 ; spawn a roach and tell it to attack the guard set mySpawn to marker4.placeatme CG04RadroachSpawn mySpawn.startcombat myTarget endif if dieRoll > 0 if myCell == 0 set CG04.countCellA to CG04.countCellA + dieRoll elseif myCell == 1 set CG04.countCellB to CG04.countCellB + dieRoll elseif myCell == 2 set CG04.countCellC to CG04.countCellC + dieRoll elseif myCell == 3 set CG04.countCellD to CG04.countCellD + dieRoll elseif myCell == 4 set CG04.countCellE to CG04.countCellE + dieRoll endif endif end
scn CG04RadroachSpawnSCRIPT short myCell ; 0 = A, 1 = B, 2 = C, 3 = D, 4 = E ; what cell do I live in? begin OnLoad if GetInCell Vault101a == 1 set myCell to 0 elseif GetInCell Vault101b == 1 set myCell to 1 ; elseif GetInCell Vault101c == 1 ; set myCell to 2 elseif GetInCell Vault101d == 1 set myCell to 3 elseif GetInCell Vault101Reactor == 1 set myCell to 4 endif end ; decrement count on death begin OnDeath if myCell == 0 set CG04.countCellA to CG04.countCellA - 1 elseif myCell == 1 set CG04.countCellB to CG04.countCellB - 1 elseif myCell == 2 set CG04.countCellC to CG04.countCellC - 1 elseif myCell == 3 set CG04.countCellD to CG04.countCellD - 1 elseif myCell == 4 set CG04.countCellE to CG04.countCellE - 1 endif end
scn CG04RadroachStanleySCRIPT begin OnDeath CG04StanleyREF.evp end
scn CG04RadroachStopBoxSCRIPT ref myTarget ref mySelf begin OnTriggerEnter set myTarget to GetActionRef ; this is intended to stop radroaches from proceeding any further (or keep the Holdens out of the security area) if myTarget.getInFaction RadRoachFaction == 1 || myTarget.getInFaction CG04HoldenFaction == 1 ; messagebox "Radroach entering stopbox" set mySelf to getSelf myTarget.stopcombat myTarget.setav aggression 0 ; which flee package to give? if GetIsReference CG04RadroachStopBoxCEast myTarget.addScriptPackage CG04RadroachFleeBEast elseif GetIsReference CG04RadroachStopBoxDDiner myTarget.addScriptPackage CG04RadroachFleeDDiner ; ******* Add new stop box references here ************* endif elseif myTarget == player if getInCell Vault101b setstage CG04 35 endif endif end
scn CG04ReactorLightScript short state ; 0 = flashing, 1 = off begin OnLoad if state == 0 playgroup left 0 endif end begin onActivate if state == 0 set state to 1 playgroup backward 0 else set state to 0 playgroup forward 1 endif end begin gamemode if state == 0 if isAnimPlaying == 0 playgroup left 0 endif endif end
scn CG04ReactorSwitchSCRIPT ref linkedRef begin onActivate if getOpenState == 3 ; closed setstage CG04 110 Activate playgroup Left 0 ; temp until this is a switch ; turn on reactor lights set linkedRef to GetLinkedRef if linkedRef != 0 linkedRef.enable endif set CG04.powerCount to CG04.powerCount + 1 if CG04.powerCount >= 3 setstage CG04 120 endif endif end
scn CG04Script ; Amata conversation vars short AskVaultDoor ; set to 1 after player asks about vault door being sealed ; Butch situation vars short ButchFriend ; set to 1 if player helps Butch short ButchEnemy ; set to 1 if player doesn't help Butch ; Butch/Guard conv short ButchGuardStage ; used for scripted conv short GuardHelpButch ; set to 1 for guard to go kill radroaches short GuardToButch ; set to 1 to get guard to go talk to Butch ; Interrogation vars short talking ; set to 1 while someone's talking short InterrogationStage ; set to 1 to start looping scene short conv ; used to create scripted conversations short mackHitCount ; used to script Mack's death ; Overseer conversation vars short OverseerCallForHelp ; set to 1 to get Overseer to shout for help periodically ; Security guard conv short GuardConvStage ; used to conditionalize guard conversations ; Atrium conv short AtriumConvStage ; timer float timer short runTimer ; set to 1 to start running timer ; radroach spawning ref playerLocation ; set by trigger boxes to track player's current location short countCellA short countCellB short countCellC short countCellD short countCellE ; Gloria Mack scene short GloriaMack ; set to 1 when she's been placed ; Gomez has spoken to player short Gomez ; set to 1 when he's been told to forcegreet ; Gomez Hannon conversation short HannonConv ; set to 1 to trigger this conversation ; reactor power short powerCount ; count how many generators player has turned on ; Amata end-state variables short AmataAction ; how did the player act towards Amata during CG04? ; 0 = Player didn't help Amata (didn't do anything to stop the interrogation scene). ; 1 = Player helped, but didn't kill anybody. ; 2 = Player killed Officer Mack, but not the Overseer. ; 3 =Player killed Overseer (Officer Mack's fate is irrelevant). short AmataDialogue ; what tone did the player take in CG04 final dialogue? ; 0 = Player doesn't talk to her ; 1 = Player is nice/apologetic (i.e. if he killed Overseer, he says "I'm sorry I killed him, I didn't have a choice.") ; 2 = Player is neutral. ; 3 = Player is mean ("I'm glad I killed your father. He deserved to die. I hate you too."). short OverseerRadio ; used to run PA broadcast float RadioTimer ; use to time PA broadcasts short autosaveDone ; set to 1 when autosave is done begin gamemode if runTimer == 1 if timer > 0 set timer to timer - GetSecondsPassed else ; anywhere we need a timer if getStage CG04 == 0 setstage CG04 2 elseif getStage CG04 == 2 setstage CG04 3 elseif getStage CG04 == 140 setstage CG04 141 elseif getStage CG04 == 141 setstage CG04 142 elseif getStage CG04 == 150 setstage CG04 200 endif endif endif ; autosave if getStage CG04 >= 4 && autosaveDone == 0 set autosaveDone to 1 autosave endif ; PA system broadcasts if RadioTimer > 0 set RadioTimer to RadioTimer - GetSecondsPassed else set RadioTimer to CG04BroadcastTimer ; play it again X seconds later set OverseerRadio to 0 ; reset condition variable RadioVault101REF.StartRadioConversation CG04EmergencyBroadcast endif ; move Amata to position when player enters Vault101b for the first time if getStageDone CG04 33 == 0 && getStage CG04 < 120 if player.getInCell Vault101b == 1 setstage CG04 33 endif endif ; Give message if the player gets locked out of the Overseer's Terminal if CG04OverseersTerminalREF.getLocked == 2 && getStageDone CGTutorial 110 == 0 setstage CGTutorial 110 endif ; advance quest when the player enters the reactor level ; if getStageDone CG04 80 == 0 ; if player.getInCell Vault101Reactor == 1 ; setstage CG04 80 ; endif ; endif ; advance quest when player gets near the reactor switch ; if getStageDone CG04 80 == 1 && getStageDone CG04 100 == 0 ; if player.getDistance CG04ReactorSwitchREF1 < 800 ; setstage CG04 100 ; endif ; endif ; trigger Amata force-greet when Vault door finishes opening if getStage CG04 == 142 if CG04VaultGearDoorREF.GetOpenState == 1 setstage CG04 144 endif endif ; start MQ01 when player leaves Vault101 if getStage CG04 >= 10 && getStage MQ01 < 10 if player.GetInCell Vault101 == 0 setstage CG04 200 endif endif ;******** Interrogation scene ************* if InterrogationStage > 0 && talking == 0 if InterrogationStage == 1 ; Overseer to Amata CG04OverseerREF.sayTo CG04AmataRef CG04Interrogation set talking to 1 set InterrogationStage to 2 elseif InterrogationStage == 2 ; Amata to Overseer CG04AmataRef.sayTo CG04OverseerREF CG04Interrogation set talking to 1 set InterrogationStage to 3 elseif InterrogationStage == 3 ; Overseer to Amata CG04OverseerREF.sayTo CG04AmataRef CG04Interrogation set talking to 1 set InterrogationStage to 4 elseif InterrogationStage == 4 ; Overseer to Mack CG04OverseerREF.sayTo CG04Vault101Security03REF CG04Interrogation set talking to 1 set InterrogationStage to 5 elseif InterrogationStage == 5 ; Mack to Amata CG04Vault101Security03REF.sayTo CG04AmataREF CG04Interrogation set talking to 1 set InterrogationStage to 6 elseif InterrogationStage == 6 ; Amata screaming CG04AmataRef.say CG04Interrogation set talking to 1 set InterrogationStage to 7 elseif InterrogationStage == 7 ; Overseer to Mack CG04OverseerREF.sayTo CG04Vault101Security03REF CG04Interrogation set talking to 1 set InterrogationStage to 1 endif endif end
scn CG04SecretDoorSCRIPT begin OnActivate if IsActionRef player == 1 ; messageBox "Pretend you can't activate this door. Pretend it's secret." else Activate endif end
scn CG04StanleyAndySCRIPT ; make them cowardly if attacked by player short attacked short talking short startTalking begin OnHit player if attacked == 0 set CG04AndyREF.attacked to 1 CG04AndyREF.setav confidence 0 CG04AndyREF.resetai CG04AndyREF.startcombat player set CG04StanleyREF.attacked to 1 CG04StanleyREF.setav confidence 0 CG04StanleyREF.resetai CG04StanleyREF.startcombat player endif end begin gamemode if GetIsID CG04Andy == 1 if IsInCombat == 0 if startTalking == 0 if GetDistance player < 500 set startTalking to 1 endif endif if startTalking == 1 && talking == 0 sayTo player Hello set talking to 1 endif endif endif end begin SayToDone HELLO set talking to 0 end
scn CG04sunBlindSCRIPT ;==========================================================; ; load an image space mod when the player steps out of Vault 101 ; to simulate the impact of sunlight on vault dwelling eyes short doOnce ;==========================================================; begin onTriggerEnter player if doOnce == 0 ; turn on Radio Enclave RadioEnclaveREF.enable ; make sure Springvale eyebot picks up the station SpringvaleEyebotREF.enable ; play special music PlaySound MUSExitTheVault 1 ; eye adjustment imod (if daytime) if gameHour >= 5.4 && gameHour <= 19.2 imod DEMOEyeAdjustISFX endif set doOnce to 1 endif end ;==========================================================;
scn CG04TomHoldenScript ; general talking short doTalk ; set to 1 to start talking short talking ; set to 1 when talking float timer ; used to time delayed talking short hitCount ; used to kill me short runAway ; set to 1 if attacked by player begin OnHitWith weap10mmPistol set hitCount to hitCount + 1 if hitCount > 1 kill endif end begin gamemode if GetDisabled == 0 if GetInCell Vault101d == 1 disable endif endif if doTalk == 1 && talking == 0 if timer > 0 set timer to timer - GetSecondsPassed else Say CG04AtriumConv1 1 set talking to 1 endif endif if runAway == 0 if IsCombatTarget player == 1 set runAway to 1 ; make me cowardly, and an enemy of the guards setav confidence 0 stopcombat addToFaction Vault101SecurityEnemyFaction 0 startcombat player endif endif End begin SayToDone CG04AtriumConv1 set talking to 0 end begin OnDeath CG04MaryHoldenREF.evp end
scn CG04Vault101ControlPodScript short mode ref doorRef begin onActivate ; if the player tries to activate if (IsActionRef player == 1 ) if (mode == 0) ; ;message "This control pod is locked." ; ShowMessage CG04Vault101ControlPodMsg ; elseif ( mode == 1 ) ; unlocked, player can now activate it setstage CG04 140 playgroup Left 0 set mode to 2 endif else if mode == 0 playgroup Forward 0 set mode to 1 endif endif end begin gameMode if (mode == 2) && (isAnimPlaying == 0) set mode to 3 set doorRef to GetLinkedRef doorRef.activate doorRef endif end
scn CG04Vault101DoorTerminalSCRIPT begin OnActivate if getStageDone CG04 120 == 0 ; power is out if IsActionRef player == 1 ;message "The terminal is dark. It appears to have no power." ShowMessage CG04Vault101DoorTerminalMsg endif else Activate endif end
scn CG04Vault101SecuritySCRIPT ref spawnerRef ; temp ref for getting radroach spawner ref mySelf ; used for Richards in Atrium scene ; general talking short doTalk ; set to 1 to start talking short talking ; set to 1 when talking float timer ; used to time delayed talking begin OnHit CG04AmataREF if getIsID CG04Vault101Security03 == 1 set CG04.mackHitCount to CG04.mackHitCount + 1 if CG04.mackHitCount > 1 kill endif endif end begin OnDeath if getIsID CG04Vault101Security03 == 1 if getstage CG04 < 100 CG04OverseerREF.evp CG04AmataREF.evp ; make overseer start calling for help if he isn't already ; unless I'm Officer Mack killed by Amata if getIsID CG04Vault101Security03 == 0 || CG04.mackHitCount == 0 set CG04.OverseerCallForHelp to 1 endif endif ; set Amata action variable if CG04.AmataAction < 2 set CG04.AmataAction to 2 endif endif ; stop Gomez combat against player when I die if CG04Vault101Security04REF.IsCombatTarget player == 1 CG04Vault101Security04REF.stopcombat endif end begin OnStartCombat player ; special case for Officer Mack: if getIsID CG04Vault101Security03 == 1 if getstage CG04 >= 35 && getstage CG04 < 50 setstage CG04 38 endif endif ; normally, send radroach swarm to attack the guard: if CG04.playerLocation != 0 set spawnerRef to CG04.playerLocation set mySelf to GetSelf spawnerRef.activate mySelf 1 endif end begin gamemode ; special case for Officer Mack: if getIsID CG04Vault101Security03 == 1 if getstage CG04 >= 35 && getStage CG04 < 38 if getdetected player > 0 setstage CG04 38 endif endif endif ; special case for Officer Gomez if getIsID CG04Vault101Security04 == 1 && CG04.Gomez == 0 && GetTalkedToPC == 0 if getDetected player == 1 set CG04.Gomez to 1 evp endif endif ; special case for Richards if getIsID CG04Vault101Security05 == 1 if CG04.AtriumConvStage < 99 if GetDead == 1 || ( IsInCombat == 1 && GetCombatTarget == player ) set CG04.AtriumConvStage to 99 endif endif endif if doTalk == 1 && talking == 0 if timer > 0 set timer to timer - GetSecondsPassed else Say CG04AtriumConv1 1 set talking to 1 endif endif end begin SayToDone CG04Interrogation set CG04.talking to 0 end begin SayToDone CG04AtriumConv1 set talking to 0 end
scn CG04VaultDoorCloseTrigScript short doonce ref doorRef begin onTriggerEnter player if doonce == 0 set doorRef to GetLinkedRef if doorRef.IsAnimPlaying == 0 doorRef.activate doorRef player.scaonactor ; clear any combat set doonce to 1 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 && CG02.targetCount == 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 ShowMessage CGTutorialCripple 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 || getStage CG04 > 0 ) && getStageDone CGTutorial 72 == 0 setstage CGTutorial 72 endif end
SCN CharonSCRIPT short CharonKillAhzrukhalSceneStart short CharonKillAhzrukhalSceneKill short CharonKillAhzrukhalSceneTalkToPlayer short HasBeenHired short WeaponOut short CombatStyleRanged short CombatStyleMelee short IsFollowingDefault short IsFollowingShort short IsFollowingLong short Waiting float Timer BEGIN OnDeath set DialogueUnderworld.CharonDead to 1 END BEGIN OnActivate if ( CharonKillAhzrukhalSceneStart != 1 ) && ( CharonKillAhzrukhalSceneKill != 1 ) activate 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 set CharonKillAhzrukhalSceneKill to 0 set CharonKillAhzrukhalSceneStart to 0 if ( Followers.CharonHired == 1 ) set Followers.PlayerHasFollower to 0 set Followers.CharonHired to 0 ShowMessage FollowerMessageDeadCharon endif END
scn ChiefGustavoScript short GreetPlayer ;0 = not set, 1 = greeted the player, used as condition on package Begin OnDeath set MS12.CountDead to MS12.CountDead + 1 End
SCN CitadelArmoryIntercomSCRIPT BEGIN OnActivate if ( DialogueCitadel.KnightSergeantDurgaDead == 0 ) setTalkingActivatorActor KnightSergeantDurgaREF activate else say CitIntercomStatic 1 endif END
SCN CitadelBrotherhoodKnightBaily01SCRIPT short StartTimer float Timer ;BEGIN OnPackageEnd CitInitiatePracticeHandgunB0x24 ; ; if ( GetDistance PaladinGunnyREF <= 420 ) && ( PaladinGunnyREF.GetIsCurrentPackage CitPaladinGladeTrainKnightsRifle9x15 == 1 ) && ( GetRandomPercent <= 50 ) ; addScriptPackage CitInitiatePracticeHandgunTalkGlade0x24 ; elseif ( StartTimer == 0 ) ; set StartTimer to 1 ; set Timer to 3 ; endif ; ;END BEGIN GameMode if ( StartTimer == 1 ) && ( IsInCombat == 0 ) set Timer to Timer - GetSecondsPassed if ( Timer <= 0 ) evp set StartTimer to 0 endif endif END
SCN CitadelBrotherhoodKnightBaily02SCRIPT short StartTimer float Timer ;BEGIN OnPackageEnd CitInitiatePracticeAssaultRifle0x24 ; ; if ( GetDistance PaladinGunnyREF <= 420 ) && ( PaladinGunnyREF.GetIsCurrentPackage CitPaladinGladeTrainKnightsRifle9x15 == 1 ) && ( GetRandomPercent <= 50 ) ; addScriptPackage CitInitiatePracticeRifleTalkGlade0x24 ; elseif ( StartTimer == 0 ) ; set StartTimer to 1 ; set Timer to 3 ; endif ; ;END BEGIN GameMode if ( StartTimer == 1 ) && ( IsInCombat == 0 ) set Timer to Timer - GetSecondsPassed if ( Timer <= 0 ) evp set StartTimer to 0 endif endif END
SCN CitadelBrotherhoodKnightBaily03SCRIPT short StartTimer float Timer BEGIN OnPackageEnd CitInitiatePracticeGrenade0x24 if ( GetDistance PaladinGunnyREF <= 420 ) && ( GetRandomPercent <= 50 ) addScriptPackage CitInitiatePracticeGrenadeTalkGlade0x24 endif END BEGIN GameMode if ( GetItemCount WeapGrenadeFrag == 0 ) && ( GetDead == 0 ) additem WeapGrenadeFrag 1 endif if ( StartTimer == 1 ) && ( IsInCombat == 0 ) set Timer to Timer - GetSecondsPassed if ( Timer <= 0 ) evp set StartTimer to 0 endif endif END
scn CitadelLookoutBattleSCRIPT ; at 9, -16, provide a random chance of a BoS lookout sniping some mutants in the area. short rand short doOnce begin onLoad if doOnce == 0 set rand to getRandomPercent if rand >= 75 CitadelLookoutBattleMarker.enable CitadelLookoutREF.startCombat CitadelMutantBossREF ; force combat to kick off set doOnce to 1 endif endif end
scn CloverSCRIPT ;Follower Variables short HasBeenHired short WeaponOut short CombatStyleRanged short CombatStyleMelee short IsFollowingDefault short IsFollowingShort short IsFollowingLong short Waiting BEGIN OnCombatEND if ( GetPlayerTeammate == 1 ) resethealth restoreav perceptioncondition 100 restoreav endurancecondition 100 restoreav leftattackcondition 100 restoreav leftmobilitycondition 100 restoreav rightattackcondition 100 restoreav rightmobilitycondition 100 endif END BEGIN OnDeath if ( Followers.CloverHired == 1 ) set Followers.PlayerHasFollower to 0 set Followers.CloverHired to 0 ShowMessage FollowerMessageDeadClover endif END
scn ColinMoriartySCRIPT BEGIN OnDeath set DialogueMegaton.ColinMoriartyDead to 1 if (GetObjectiveDisplayed MQ01 20 == 1 ) SetObjectiveDisplayed MQ01 20 0 endif if (GetObjectiveDisplayed MQ01 25 == 1 ) SetObjectiveDisplayed MQ01 25 0 endif if ( GetStage MQ01 < 40 ) SetObjectiveDisplayed MQ01 30 1 endif END
scn ConfessorCromwellSCRIPT short StartEveningPrayer short Tick short DoOnce float Timer BEGIN OnLoad set DoOnce to 0 set Tick to 0 END BEGIN GameMode If ( Timer > 0 ) set Timer to ( Timer - GetSecondsPassed ) endif if ( Timer <= 0 ) set DoOnce to 0 set Tick to 0 endif if ( DoOnce == 0 ) && ( GetDead == 0 ) && ( IsInCombat == 0 ) if ( GetDistance Player <= 2000 ) && ( GetDistance MegCromwellPrayBombMarkerRef <= 210 ) set StartEveningPrayer to 1 set Tick to 1 startConversation ConfessorCromwellREF MegCromwellPrayEvening set DoOnce to 1 set Timer to 160 endif endif END BEGIN OnDeath set DialogueMegaton.ConfessorCromwellDead to 1 SettlerWatchCromwell1.Disable SettlerWatchCromwell2.Disable SettlerWatchCromwell3.Disable ObserveBomb1Marker.Enable ObserveBomb2Marker.Enable END
scn ControlRumbleScript ;this is a quest script ;===========VARIABLES================================== short debug ;0 = off, 1 = show messages with each stage short initDefaults ;doOnce ;DoOnce Flags short Stage1Fired short Stage2Fired short Stage3Fired short Stage4Fired short Stage5Fired short Stage6Fired short Stage7Fired short Stage8Fired short Stage9Fired short Stage10Fired ;How long each stage lasts: float Stage1FireOnTimerValue float Stage2FireOnTimerValue float Stage3FireOnTimerValue float Stage4FireOnTimerValue float Stage5FireOnTimerValue float Stage6FireOnTimerValue float Stage7FireOnTimerValue float Stage8FireOnTimerValue float Stage9FireOnTimerValue float Stage10FireOnTimerValue ;Strength of left and right rumble float stage1RumbleLeft float stage1RumbleRight float stage2RumbleLeft float stage2RumbleRight float stage3RumbleLeft float stage3RumbleRight float stage4RumbleLeft float stage4RumbleRight float stage5RumbleLeft float stage5RumbleRight float stage6RumbleLeft float stage6RumbleRight float stage7RumbleLeft float stage7RumbleRight float stage8RumbleLeft float stage8RumbleRight float stage9RumbleLeft float stage9RumbleRight float stage10RumbleLeft float stage10RumbleRight ;duration of rumble for each stage ;note: regardless of length they don't stack or overlap with later calls to setRumble regardless of whether the duration has finished or not; each new call to setRumble overrides float Stage1Duration float Stage2Duration float Stage3Duration float Stage4Duration float Stage5Duration float Stage6Duration float Stage7Duration float Stage8Duration float Stage9Duration float Stage10Duration ;timer variables float timerCurrentValue ;timer starts at zero and counts up to timerMaxValue float timerMaxValue ;how long until we completely stop rumble ;turn on rumble variable short RumbleNow ;0 = off, 1 = rumble, -1 done rumbling ;====================GAMEMODE=============== Begin GameMode if initDefaults == 0 setStage ControlRumble 0 set initDefaults to 1 endif if initDefaults == 1 && RumbleNow == 1 if timerCurrentValue < timerMaxValue set timerCurrentValue to timerCurrentValue + getSecondsPassed if Stage1Fired == 0 if timerCurrentValue >= Stage1FireOnTimerValue setRumble stage1RumbleLeft stage1RumbleRight Stage1Duration set stage1Fired to 1 if debug == 1 showwarning "stage 1" endif endif elseif Stage2Fired == 0 if timerCurrentValue >= Stage2FireOnTimerValue setRumble stage2RumbleLeft stage2RumbleRight Stage2Duration set stage2Fired to 1 if debug == 1 showwarning "stage 2" endif endif elseif Stage3Fired == 0 if timerCurrentValue >= Stage3FireOnTimerValue setRumble stage3RumbleLeft stage3RumbleRight Stage3Duration set stage3Fired to 1 if debug == 1 showwarning "stage 3" endif endif elseif Stage4Fired == 0 if timerCurrentValue >= Stage4FireOnTimerValue setRumble stage4RumbleLeft stage4RumbleRight Stage4Duration set stage4Fired to 1 if debug == 1 showwarning "stage 4" endif endif elseif Stage5Fired == 0 if timerCurrentValue >= Stage5FireOnTimerValue setRumble stage5RumbleLeft stage5RumbleRight Stage5Duration set stage5Fired to 1 if debug == 1 showwarning "stage 5" endif endif elseif Stage6Fired == 0 if timerCurrentValue >= Stage6FireOnTimerValue setRumble stage6RumbleLeft stage6RumbleRight Stage6Duration set stage6Fired to 1 if debug == 1 showwarning "stage 6" endif endif elseif Stage7Fired == 0 if timerCurrentValue >= Stage7FireOnTimerValue setRumble stage7RumbleLeft stage7RumbleRight Stage7Duration set stage7Fired to 1 if debug == 1 showwarning "stage 7" endif endif elseif Stage8Fired == 0 if timerCurrentValue >= Stage8FireOnTimerValue setRumble stage8RumbleLeft stage8RumbleRight Stage8Duration set stage8Fired to 1 if debug == 1 showwarning "stage 8" endif endif elseif Stage9Fired == 0 if timerCurrentValue >= Stage9FireOnTimerValue setRumble stage9RumbleLeft stage9RumbleRight Stage9Duration set stage9Fired to 1 if debug == 1 showwarning "stage 9" endif endif elseif Stage10Fired == 0 if timerCurrentValue >= Stage10FireOnTimerValue setRumble stage10RumbleLeft stage10RumbleRight Stage10Duration set stage10Fired to 1 if debug == 1 showwarning "stage 10" endif endif endif elseif timerCurrentValue >= timerMaxValue set RumbleNow to -1 setStage ControlRumble 0 endif endif End
scn CrDeathclawEnclaveCageSCRIPT float timer short doOnce ;**************************************** Begin onPackageEnd DeathclawCAGE01a ;set timer to 20 ;give the Deathclaw enough time to finish his cageExit animation set doOnce to 1 End ;**************************************** Begin onPackageEnd DeathclawCAGE01b ;set timer to 8 ;give the Deathclaw enough time to finish his clawScrape animation set doOnce to 2 End ;**************************************** Begin gameMode if (doOnce == 1) ;if (isLastIdlePlayed DCageExit == 0) if (isIdlePlaying == 0) ;set timer to 20 ;give the Deathclaw enough time to finish his cageExit animation setav variable01 3 evp set doOnce to 3 endif ;if (timer <= 0) ;setav variable01 2 ;evp ;set doOnce to 3 ;else ;set timer to timer - GetSecondsPassed ;endif endif if (doOnce == 2) ;if (isLastIdlePlayed DClawScrape == 0) if (isIdlePlaying == 0) setav variable01 3 evp set doOnce to 3 endif ;if (timer <= 0) ; setav variable01 3 ; evp ; set doOnce to 3 ;else ; set timer to timer - GetSecondsPassed ;endif endif End ;***************
scn CrEyebotVertibirdSCRIPT short summoned ; set to 1 when vertibird summoned ; set to 2 when vertibird created ; set to 3 when vertibird activated (to get linked ref) ref linkedRef ; linked ref is where vertibird will land ref vertibirdRef ; vertibird ref after placed short dieRoll short runTimer float timer short init begin gamemode if init == 0 set init to 1 ; get linked ref set linkedRef to GetLinkedRef ; chance of summoning vertibird ; die roll modified by luck set dieRoll to GetRandomPercent ; better chance with low luck, lower chance with high luck set dieRoll to dieRoll - ( ( player.getav luck ) * 8) + 50 endif if runTimer > 0 if timer > 0 set timer to timer - GetSecondsPassed else set runTimer to 0 if linkedRef != 0 if summoned == 1 set summoned to 2 set runTimer to 1 set timer to 3 ; place vertibird set vertibirdRef to linkedRef.placeAtMe GenericVertibirdEncounter elseif summoned == 2 set summoned to 3 set runTimer to 0 if vertibirdRef != 0 vertibirdRef.activate linkedRef 1 endif endif endif endif endif end ; attacking eyebot might summon vertibird patrol to investigate begin OnHit player if summoned == 0 && dieRoll > 50 if GetStage MQ05 >= 80 && linkedRef != 0 set summoned to 1 set runTimer to 1 set timer to ( GetRandomPercent/2 + 15 ) endif endif end begin OnStartCombat player if summoned == 0 && dieRoll > 50 if GetStage MQ05 >= 80 && linkedRef != 0 set summoned to 1 set runTimer to 1 set timer to ( GetRandomPercent/2 + 15 ) endif endif end
scn daisyChainOFFTurretSCRIPT ref myLink short ONflag short damageBrain short init begin onLoad end begin gameMode if init == 0 set init to 1 set myLink to getLinkedRef setUnconscious 1 set ONflag to 0 ; this turret is OFF by default endif if damageBrain == 0 if getAV brainCondition == 0 ; all these checks handle daisy-chain turret systems set damageBrain to 1 myLink.damageAV brainCondition 100 endif endif if ONflag == 1 If getUnconscious == 1 stopCombat myLink.stopCombat myLink.setUnconscious 1 set ONflag to 0 endif elseif ONflag == 0 if getUnconscious == 0 myLink.setUnconscious 0 set ONflag to 1 endif endif end
scn daisyChainturretSCRIPT ref myLink short ONflag short damageBrain short init begin gameMode if init == 0 set init to 1 set myLink to getLinkedRef set ONflag to 1 ; this turret is ON by default setUnconscious 0 ; make sure my consciousness matches my ON state endif if damageBrain == 0 if getAV brainCondition == 0 ; all these checks handle daisy-chain turret systems set damageBrain to 1 myLink.damageAV brainCondition 100 endif endif if ONflag == 1 If getUnconscious == 1 stopCombat myLink.stopCombat myLink.setUnconscious 1 set ONflag to 0 endif elseif ONflag == 0 if getUnconscious == 0 myLink.setUnconscious 0 set ONflag to 1 endif endif end
scn DCWallVertibirdStrafe01SCRIPT ; This trigger enables it's linked ref (a vertibird) and calls its forward animation ; It also tells the vertibird when to fire its weapon float timer float fireTimer short doOnce short firingFlag ;0 - not firing 1 - waiting to fire 2 - firing vertibirdgun 3 - firing fatman ref linkedRef ;**************************************** Begin gameMode if linkedRef == 0 set linkedRef to getLinkedRef endif if (doOnce == 1) if (timer <= 0) linkedRef.playgroup Forward 1 set fireTimer to .5 set firingFlag to 1 set doOnce to 2 else set timer to timer - GetSecondsPassed endif elseif (doOnce == 2) if (linkedRef.isAnimPlaying Forward == 0) linkedRef.disable ;disable the vertibird when it's done playing its forward animation set doOnce to 3 endif endif if (firingFlag == 1) ;currently waiting for time to pass before vertibird begins shooting if (fireTimer <=0) set firingFlag to 2 set fireTimer to 1 ;vertibird will fire its gun for this much time else set fireTimer to (fireTimer - GetSecondsPassed) endif elseif (firingFlag == 2) ;currently firing vertibird gun if (fireTimer <=0) set firingFlag to 3 linkedRef.fireWeapon vertibirdBombgun set fireTimer to .5 ;will shoot a fatman after .5 seconds else linkedRef.fireWeapon vertibirdgun set fireTimer to (fireTimer - GetSecondsPassed) endif elseif (firingFlag == 3) ;shoot a fatman if (fireTimer <=0) linkedRef.fireWeapon vertibirdBombgun set firingFlag to 0 else set fireTimer to (fireTimer - GetSecondsPassed) endif endif End ;***************************************** Begin onTriggerEnter Player if (doOnce == 0) && (getStage MQ05 >= 85) linkedRef.enable 0 set timer to 1 set doOnce to 1 endif End ;*****************************************
scn DCWallVertibirdStrafe02SCRIPT ; This trigger enables it's linked ref (a vertibird) and calls its forward animation ; It also tells the vertibird when to fire its weapon ; This script is the same as strafe01script, but it drops more bombs float timer float fireTimer short doOnce short firingFlag ;0 - not firing 1 - waiting to fire 2 - firing vertibirdgun 3 - firing fatman ref linkedRef ;***************************************** Begin gameMode if linkedRef == 0 set linkedRef to getLinkedRef endif if (doOnce == 1) if (timer <= 0) linkedRef.playgroup Forward 1 set fireTimer to 1 set firingFlag to 1 set timer to 2.5 ;timer now becomes the master timer for the firing block set doOnce to 2 else set timer to timer - GetSecondsPassed endif elseif (doOnce == 2) if (linkedRef.isAnimPlaying Forward == 0) linkedRef.disable ;disable the vertibird when it's done playing its forward animation set doOnce to 3 endif if (timer <=0) set firingFlag to 0 else if (firingFlag == 1) if (fireTimer <=0) linkedRef.fireWeapon vertibirdBombgun set fireTimer to .5 set firingFlag to 2 else set fireTimer to (fireTimer - GetSecondsPassed) endif elseif (firingFlag == 2) if (fireTimer <=0) linkedRef.fireWeapon vertibirdBombgun set fireTimer to .5 set firingFlag to 1 else set fireTimer to (fireTimer - GetSecondsPassed) endif endif set timer to (timer - GetSecondsPassed) endif endif End ;***************************************** Begin onTriggerEnter Player if (doOnce == 0) && (getStage MQ05 >= 85) linkedRef.enable 0 set timer to 5 set doOnce to 1 endif End
scn DCworld11RobotSCRIPT ; script runs on a servant robot, can be controlled by the player via a terminal to perform a selection of simple packages short state ; 0 = off ; 1 = walking dog ; 2 = helping in kitchen ; 3 = picking up groceries ; 4 = patrolling homefront ; 5 = tucking in Molly float timer short poemLine ; used to conditionalize line order for the bedtime poem ;========================================================= begin OnLoad if state == 0 setUnconscious 1 else setUnconscious 0 endif end BEGIN GameMode if ( state != 0 ) if ( timer > 0 ) set timer to (timer - getSecondsPassed) else set timer to 35 if ( GetIsCurrentPackage DCworld11RobotDogWalkPKG ) if ( getRandomPercent <= 50 ) sayto deadMuffyREF DC11talkHomeBotWalkDog01 ; this is the topic name containing dog-related infos endif endif elseif ( GetIsCurrentPackage DCworld11RobotKitchen ) if ( getRandomPercent <= 50 ) say DC11talkHomeBotKitchen01 endif elseif ( GetIsCurrentPackage DCworld11RobotPatrol ) if ( getRandomPercent <= 50 ) say DC11talkHomeBotPatrol01 endif endif endif endif END
scn DCworld11TownhouseGeneratorSCRIPT ; with repair skill, the player can power up a townhouse and subsequently send the house robot out on errands ;===================================================; short state ; 0 = off ; 1 = on short active short button ;===================================================; begin onActivate if IsActionRef player == 1 if state == 0 && active == 0 if player.getAV repair >= 20 ;messageBox "Minor repairs could restore power to this old generator","Attempt Repair [Repair, 20]","Leave it Alone" ShowMessage DCWorld11GeneratorMsg set active to 1 else ;messageBox "[Repair, 20] It would be possible to repair this generator if you were more skilled." ShowMessage DCWorld11GeneratorLowSkillMsg endif endif endif end ;===================================================; begin gameMode if active == 1 set active to 0 if state == 0 set button to getButtonPressed if button == 0 ;message "You repair the generator." ShowMessage DCWorld11GeneratorLowSkillMsg DC11townhouseStateMarker.enable set state to 1 elseif button == 1 ; do nothing endif endif endif end
scn DeathclawCageDoorGenericSCRIPT short doOnce ref linkedRef ;set to deathclaw in the cage float timer ;used to keep the deathclaw idling for a couple seconds before starting his cageExit anim short doorOpen ; 1 - door has been opened for the first time ;*************************************** Begin gameMode if doOnce == 0 set doOnce to 1 setStage NQlvl 1 set timer to 2 ;the amount of time the Deathclaw remains in his idle animation before doing his cageExit anim set linkedRef to getLinkedRef set doorOpen to 0 lock NQlvl.DeathclawCageDoorLockLvlReq endif ;if the door is unlocked and it's either closed or closing, then open the doors if ( (getLocked == 0) && (doorOpen == 0) ) if ( (getOpenState == 3) || (getOpenState == 4) ) activate player endif set doorOpen to 1 endif if (doorOpen == 1) if ( timer <= 0 ) linkedRef.setav variable01 1 ;condition used in the deathclaw package to get it out of its cage linkedRef.evp set doorOpen to 2 else set timer to (timer - GetSecondsPassed) endif endif End ;***************************************
scn Default1xActivateLinkedRefSCRIPT ; a standard, all-purpose script ref myLink short doOnce begin onTriggerEnter player if doOnce == 0 set myLink to getLinkedRef myLink.activate set doOnce to 1 endif end
scn DefaultActLinkWhenActSCRIPT ; a standard, all-purpose script ref myLink ref myActor begin onActivate set myLink to getLinkedRef set myActor to getActionRef myLink.activate myActor end
scn DefaultDisableFastTravelSCRIPT ; used on triggers to mark zones in which fast travel is disallowed begin onTriggerEnter if isActionRef player == 1 EnableFastTravel 0 if NQlvl.fastTravelDisabled == 0 set NQlvl.fastTravelDisabled to 1 endif ;messageBox "fast travel disabled" endif end begin onTriggerLeave if isActionRef player == 1 enableFastTravel 1 if NQlvl.fastTravelDisabled == 1 set NQlvl.fastTravelDisabled to 0 endif ;messageBox"fast travel enabled" endif end
scn DefaultDisableLinkOnActivateSCRIPT ; basic script that enables linked reference on activate short DoOnce ref myLink begin onActivate if doOnce == 0 set myLink to getLinkedRef myLink.disable set doOnce to 1 endif activate end
scn DefaultEnableLink1xSCRIPT ; basic script that enables linked reference short DoOnce ref myLink begin onTriggerEnter if doOnce == 0 set myLink to getLinkedRef myLink.enable set doOnce to 1 endif end
scn DefaultEnableLink1xSCRIPTplayer ; basic script that enables linked reference short DoOnce ref myLink begin onTriggerEnter player if doOnce == 0 set myLink to getLinkedRef myLink.enable set doOnce to 1 endif end
scn DefaultEnableLinkOnActivateSCRIPT ; basic script that enables linked reference on activate short DoOnce ref myLink begin onActivate if doOnce == 0 set myLink to getLinkedRef myLink.enable set doOnce to 1 endif activate end
scn DefaultPlaygroupForwardOnLoad short doOnce begin onLoad playgroup idle 0 playgroup forward 0 end begin gameMode if doOnce == 0 if isAnimplaying forward == 0 set doOnce to 1 playgroup left 0 endif endif end
scn DemoCrippleBeGoneEffectSCRIPT Begin ScriptEffectStart ;heal all body parts Player.restoreav leftmobilitycondition 100 Player.restoreav rightmobilitycondition 100 Player.restoreav rightattackcondition 100 Player.restoreav leftattackcondition 100 Player.restoreav perceptioncondition 100 Player.restoreav endurancecondition 100 End
scn DemoMegatonProtectronScript short firstSpeechDone ; set to 1 when initial speech is finished ; gate script watches for this to be 1, which triggers it to open short moveNPCs ; set to 1 after moving NPCs at start of combat short talking ; set to 1 while talking, set to 0 in SayToDone callback short playernear short MegRobotIdle short talkdelay float timer Begin OnDeath ; make sure gate opens set firstSpeechDone to 1 End BEGIN OnStartCombat Player ; make sure gate opens set firstSpeechDone to 1 if ( moveNPCs == 0 ) ; don't move dead guys... if LucasSimmsREF.GetDead == 0 LucasSimmsREF.MoveTo FFMegatonMainGateLucasSimmsMARKER LucasSimmsREF.startcombat Player endif if DeputySteelREF.GetDead == 0 DeputySteelREF.MoveTo FFMegatonMainGateDeputySteelMARKER DeputySteelREF.startcombat Player endif StockholmExteriorRef.startcombat Player set moveNPCs to 1 endif END BEGIN GameMode ; do nothing if dead or in combat if GetDead == 1 || IsInCombat == 1 return endif if playerNear > 0 ; playerNear is set by MegatonGateTriggerSCRIPT when player is inside trigger box if IsTalking == 0 if talking == 0 if timer > 0 set timer to ( timer - GetSecondsPassed ) else set talking to 1 if firstSpeechDone == 0 ; ready to say initial greeting to player SayTo Player MegProtectronTalk2 else SayTo Player MegProtectronTalk endif endif endif endif endif End Begin SayToDone MegProtectronTalk ;if delay is set, reset it and timer var so he'll talk again after a few seconds if ( talking == 1 ) set talking to 0 set timer to 5 endif End Begin SayToDone MegProtectronTalk2 set talking to 0 End
scn DemoMetroTriggerASCRIPT short playerTriggered ; set to 1 when player triggers begin onTriggerEnter player if playerTriggered == 0 set playerTriggered to 1 ; enable muties in next room DemoSuperMutant06REF.enable endif end
scn DemoMetroTriggerBSCRIPT short triggered ; set to 1 when robot triggers begin onTriggerEnter DemoProtectron01REF if triggered== 0 set triggered to 1 set DemoProtectron01REF.active to 2 DemoProtectron01REF.evp endif end
scn DemoProtectronPod01Script float timer short startTimer Begin OnActivate if IsActionRef MetroCenter02ComputerREF == 1 setopenstate 1 ; open it set timer to 2 set startTimer to 1 endif End begin gamemode if startTimer == 1 if timer > 0 set timer to timer - GetSecondsPassed else ;turn on the Protectron set DemoProtectron01Ref.turnOnTimer to 5 set DemoProtectron01Ref.turnOn to 1 set DemoProtectron01Ref.timer to 1.5 set DemoProtectron01Ref.talk to 1 DemoProtectron01Ref.evp ;pick idle is called on DemoProtectron01Ref script set startTimer to 0 endif endif end
scn DemoProtectronScript short active ; set to 1 to turn on and start moving short talk ; set to 1 to start talking float timer ; used for custom dialogue short turnOn float turnOnTimer short ticketCheck ; 1= ready to ask for tickets ; 2 = player has ticket begin onLoad set ticketCheck to 0 setav bloodymess 1 if active == 0 ; make me unconscious so I don't play sounds setUnconscious 1 set talk to 0 endif end begin gamemode if turnOn == 1 if turnOnTimer >= 0 set turnOnTimer to turnOnTimer - GetSecondsPassed else set turnOn to 2 ;get him to move around setUnconscious 0 set active to 1 evp endif endif if talk == 1 && getDead == 0 if timer > 0 set timer to timer - GetSecondsPassed else if GetIsCurrentPackage DemoProtectron01TicketCheck == 1 SayTo player DemoRobotTopicB 1 set timer to 5 else Say DemoRobotTopicA set timer to 7 endif endif endif ; periodically check if player is in combat with anything -- if so, assume protectron goes into "hostile" mode if getav aggression == 0 if player.isInCombat == 1 && getInSameCell player == 1 set active to 1 ; normal patrol setav aggression 1 ; make aggressive endif endif end begin OnPackageStart DemoProtectron01TicketCheck set talk to 1 set timer to 1 end
scn DemoRoachesEnablerSCRIPT short playerTriggered ; set to 1 when player triggers begin onTriggerEnter player if playerTriggered == 0 set playerTriggered to 1 DemoMetroRoach01REF.enable endif end
scn DerekPacionScript short talkedAboutSuperheroIdentities ;1 = told the player his suspicions about the supers identities (set and used as condition by MS02 infos)
scn DialogMSMiniScript ;LugNut Encounter Shorts short LugAttack ;1= LugNut is going to attack the Player short DoOnce short LugDone ;1= Puts him in Sandbox ;Murphy Encounter Shorts short MurphyGo ;1= Murphy has greeted the Player short MurphyAttack ;1= Murphy aggros on the Player short Offered ;1= Player declined Offer short GetStuff ;1= Player is gathering for Murphy short DoubleDown ;1= Player is getting double price for Sugar Bombs short GoSell ;1= Sell Sugar Bombs short Number short CashGive short BoostCash short StoredNumber short MakeJet short DoOnce1 ;Ledoux Encounter Shorts short LedouxGo01 ;1= Ledoux has greeted the Player from a distance short LedouxGo02 ;1= Ledoux has greeted the Player closer up short SDOAttack ;1= The SDO attacks short SDODone ;1= Situation resolved peacefully, SDO paths into Wilderness and disables when out of sight short DoOnce2 begin gamemode ;This block handles LugNut's aggro on Player if ( DoOnce == 0 ) if ( LugAttack == 1 ) MS04LugNutRef.SetAV Aggression 2 set DoOnce to 1 endif endif ;This block handles Murphy's aggro on Player if ( DoOnce1 == 0 ) if ( MurphyAttack == 1 ) MS09MurphyRef.SetAV Aggression 2 set DoOnce1 to 1 endif endif ;This block handles the removal of the Samples of Fire Ant Nectar from the Player's inventory as well as tallying the count for Post Quest Collection if ( GoSell == 1 ) ;This flag is set in dialog with Doc Lesko if ( Player.GetItemCount SugarBombs01 >= 1 ) Set Number to ( Player.GetItemCount SugarBombs01 ) ;Set the temporary variable to the number of samples player has Set StoredNumber to ( Number + StoredNumber ) ;Counting totals and adding any odd leftovers to new count Set GoSell to 2 ;Advance the flag endif endif if ( GoSell == 2 ) ;From the above block if ( Player.GetItemCount SugarBombs01 >= 1 ) Player.RemoveItem SugarBombs01 Number ;Remove the number of samples equal to amount tallyed/carried Set CashGive to ( Number * BoostCash ) ;Calculate Cash given Player.AddItem Caps001 CashGive ;Add 40 caps per sample turned in set GoSell to 0 ;Reset the flag set Number to 0 ;Reset the temporary variable set CashGive to 0 endif endif ;This block calculates "DoubleDown" variable which is set in dialog ;If the player completes the Speech Challenge with Murphy, they get double caps per box if ( DoubleDown == 1 ) Set BoostCash to 30 endif ;This block will take the count of Sugar Bombs collected and have him make an Ultrajet. Takes 5 Sugar Bombs to make 1 Ultrajet. if ( StoredNumber >= 8 ) MS09LockerRef.AddItem MS09UltraJet 1 set StoredNumber to ( StoredNumber - 8 ) endif ;This block handles SDO's aggro on Player if ( DoOnce2 == 0 ) if ( SDOAttack == 1 ) MS05DuboisRef.SetAV Aggression 2 MS05LedouxRef.SetAV Aggression 2 MS05GervaisRef.SetAV Aggression 2 set DoOnce2 to 1 endif endif end
SCN DialogueAndaleSCRIPT short PlayerHasBeenInSmithBasement short PlayerHasBeenInWilsonShed short AndaleConfrontation short AndaleCombat short AndaleDeathCount short AndaleCannibalsDead short PlayerHasJoinedCannibals short PlayerLearnedSuspiciousRelations short PlayerHadTalkedToAnyone short PlayerHasTalkedToLindaSmith short PlayerWasRudeToLindaSmith short PlayerHasTalkedToJackSmith short PlayerHasTalkedToOldManHarris short PlayerHasBeenInvitedToDinner short JennySmithDisposition short DoOnce BEGIN GameMode if ( player.GetInCell AndaleTheSmithsBasement == 1 ) if ( PlayerHasBeenInSmithBasement == 0 ) && ( AndaleConfrontation == 0 ) set PlayerHasBeenInSmithBasement to 1 set AndaleConfrontation to 1 AndaleOldManHarrisFrontDoorREF.Lock 255 AndaleOldManHarrisBackDoorREF.Lock 255 JuniorSmithREF.MoveTo AndaleOldManHarrisHouseMARKER JennyWilsonREF.MoveTo AndaleOldManHarrisHouseMARKER if ( JackSmithREF.GetDead == 0 ) JackSmithREF.evp JackSmithREF.MoveTo AndaleConfWilsonJackMarker endif if ( LindaSmithREF.GetDead == 0 ) LindaSmithREF.evp LindaSmithREF.MoveTo AndaleConfWilsonLindaMarker endif if ( BillWilsonREF.GetDead == 0 ) BillWilsonREF.evp BillWilsonREF.MoveTo AndaleConfWilsonBillMarker endif if ( MarthaWilsonREF.GetDead == 0 ) MarthaWilsonREF.evp MarthaWilsonREF.MoveTo AndaleConfWilsonMarthaMarker endif endif endif if ( player.GetInCell AndaleTheWilsonsShed == 1 ) if ( PlayerHasBeenInWilsonShed == 0 ) && ( AndaleConfrontation == 0 ) set PlayerHasBeenInWilsonShed to 1 set AndaleConfrontation to 1 AndaleOldManHarrisFrontDoorREF.Lock 255 AndaleOldManHarrisBackDoorREF.Lock 255 JuniorSmithREF.MoveTo AndaleOldManHarrisHouseMARKER JennyWilsonREF.MoveTo AndaleOldManHarrisHouseMARKER if ( JackSmithREF.GetDead == 0 ) JackSmithREF.evp JackSmithREF.MoveTo AndaleConfWilsonJackMarker endif if ( LindaSmithREF.GetDead == 0 ) LindaSmithREF.evp LindaSmithREF.MoveTo AndaleConfWilsonLindaMarker endif if ( BillWilsonREF.GetDead == 0 ) BillWilsonREF.evp BillWilsonREF.MoveTo AndaleConfWilsonBillMarker endif if ( MarthaWilsonREF.GetDead == 0 ) MarthaWilsonREF.evp MarthaWilsonREF.MoveTo AndaleConfWilsonMarthaMarker endif endif endif if ( DoOnce == 0 ) if ( MarthaWilsonREF.GetDead == 1 ) && ( BillWilsonREF.GetDead == 1 ) && ( LindaSmithREF.GetDead == 1 ) && ( JackSmithREF.GetDead == 1 ) AndaleOldManHarrisFrontDoorREF.Unlock AndaleOldManHarrisBackDoorREF.Unlock set AndaleCannibalsDead to 1 set DoOnce to 1 endif endif END
SCN DialogueBigtownSCRIPT short PlayerAskedRedAboutTimebomb short PlayerHealedTimebomb short PlayerKilledTimebomb short PlayerEarnedFreeHealing short PlayerHasBeenInClinic short PlayerHasAngeredRed short RedEmotionalReaction short BittercupandFlash ;Used to check if Bittercup has mentioned her relationship with Flash short BittercupRel ;Used to check if Bittercup is interested in the player short DeadCount ; counts number of BigTowners killed (not including Shorty, Sticky, and Red)
scn DialogueCanterburyCommonsSCRIPT ;Initialize variables for dialogue and conversations ;First Greeting variables short RoeGreeting ;Handles whether Roe greets the player first from the MS02 post-battle greeting or from a normal entry into town. 0 = has not met, 1 = has talked to the player immediately after the battle, but not introduced self fully, 2 = has introduced himself fully ;Matchmaker freeform variables short OverheardDerek ;Does the player know that Derek has a crush on Machete? 0 = no, 1 = yes short OverheardMachete ;Does the player know that Machete has a crush on Derek? 0 = no, 1 = yes short OverheardJoe ;Does the player know that Derek talks with Joe? 0 = no, 1 = yes short Matchmaker ;Has the player set up a match between Derek and Machete? 0 = no, 1 = ready to try, 2 = set up "good", 3 = set up "smooth", 4 = set up "bad" ;Trading freeform variables short TraderBoss ;Has the player united the traders under himself and Roe? 0 = no, 1 = yes ;short WeaponSpec ;Has the player set a specialty for the weapons traders? 0 = no specialty, 1 = melee and hand to hand, 2 = small arms, 3 = heavy weapons and explosives ;short ArmorSpec ;Has the player set a specialty for the armor traders? 0 = no specialty, 1 = clothing, 2 = armor ;short ChemsSpec ;Has the player set a specialty for the chems traders? 0 = no specialty, 1 = food & drink, 2 = medicine, 3 = drugs short WeaponInvest ;Has the player invested in the weapons traders? 0 = no, 1 = once, 2 = twice, 3 = twice and received reward short ArmorInvest ;Has the player invested in the armor dealers? 0 = no, 1 = once, 2 = twice, 3 = twice and received reward short ChemsInvest ;Has the player invested in the chems dealers? 0 = no, 1 = once, 2 = twice, 3 = twice and received reward short JunkInvest ;Has the player invested in the junk dealers? 0 = no, 1 = once, 2 = twice, 3 = twice and received reward
SCN DialogueCitadelSCRIPT short DuskHatesPlayer short DuskImpressedWithPlayer short PlayerApologizedToDusk short PlayerPermittedToTrade short PlayerHasSpokenToGallows short PlayerKnowsAboutGallowsBet short PlayerWonGallowsBet short PlayerLearnedGallowsName short PlayerInterruptedKodiaksStory short ArtemisOutcast short CitadelEnter short SuperMutantBael short RothchildRobot short KnightCaptainDuskDead short KnightCaptainGallowsDead short KnightSergeantDurgaDead short PaladinGladeDead short PaladinKodiakDead short ScribeBowditchDead short ScribeJamesonDead short ScribePeabodyDead short ScribeYearlingDead short StarPaladinCrossDead
scn DialogueFamilyScript ;This script is primarily for use with the Meetings the Family have every night at Midnight ;The blocks below handle the speech that Vance gives float MeetTimer ;Set a small delay so that the speech doesn't start the instant Vance gets to the marker short Ready ;5= The Meeting can begin short Meeting ;1= Kicks off Vance's Package and keeps them in the AI package until his speech is done begin gamemode if ( Player.GetInCell MerestiMetro02 == 1 ) if ( MS09Meet == 1 ) set MeetTimer to 5 set MS09Meet to 2 endif endif if ( MS09Meet == 2 ) && ( MeetTimer > 0 ) Set MeetTimer to MeetTimer - GetSecondsPassed elseif ( MS09Meet == 2 ) && ( MeetTimer <= 0 ) Set MS09VanceSpeechProg to 1 FamVanceRef.Say MS09VanceSpeech 1 Set MS09Meet to 3 endif if ( Player.GetInCell MerestiMetro02 == 0 ) if ( MS09Meet >= 1 ) set MS09Meet to 0 set DialogueTheFamily.Meeting to 0 set DialogueTheFamily.Ready to 0 FamVanceRef.Evp FamHollyRef.Evp FamKarlRef.Evp FamBriannaRef.Evp FamAlanRef.Evp FamJustinRef.Evp set MS09VanceSpeechProg to 0 endif endif end
scn DialogueGNRQuestScript ;Almost all of Three Dog's GNR dialog was moved to this "always-running" quest so that the player can do it at any time ;The variables that are required to have the dialog properly work will be stored here short Complete ;1=The radio has been repaired short SecondStage ;1=The quest has hit the "second leg" which locks out some of the initial dialog short QuestDecide ;1=Skip right to quest decide for purposes of dialog
scn DialogueLittleLamplightSCRIPT ;For general, minor script requirements of Little Lamplight town dialogue and FF quests ;debugging use - delete afterwards short ChildAtHeartPerk ;A variable for whether or not the player has the Child At Heart perk, for use until the HasPerk command is implemented short TwinMeeting ;Tracks whether or not the player has talked to Knick Knack or Knock Knock: 0 = talked to neither, 1 = talked to one, 2 = talked to both. short It ;Tracks whether or not the player is "It" when talking with unnamed, playing NPCs: 0 = not it, 1 = it! short BumbleVaultDweller ;Tracks whether or not the player has told Bumble that he is (or was) a Vault Dweller: 0 = not yet, 1 = told. short PrincessNickname ;Tracks whether or not the player has heard the story of Princess's nickname: 0 = no, 1 = knows she gets angry about it, 2 = knows the story behind the nickname, 3 = knows she's got a crush on MacCready, 4 = has made her cry short JosephHistoryCount ;Tracks which line Joseph is at while talking about history, ranging 0 to 4: 0 = has not started, 1 - 4 = completed first (through fourth) line short FungusKnowledge ;Does the player know about the fungus in Little Lamplight? 0 = no, 1 = yes short FungusDeal ;Tracks whether or not the player has made a trading deal with MacCready, and what the deal stands at: 0 = has not started, 1 = threatened, 2 = poor deal, 3 = decent deal, 4 = good deal short SpeechChallengeCheck ;Tracks which speech response of an NPCs is being checked for - defaults at 0 and has one entry for each Speech ChallengeFailure entry an NPC has - set before attempting, and returned to 0 afterwards short NukaItem ;Tracks which item Zip is offering for Nuka Cola today. short ZipFollow ;Tracks whether or not Zip should be following the player and annoying them: 0 = no, 1 = yes short ZipFollowStart ;Set to timepassed when Zip begins following, an dused to determine end of the ZipFollowPlayer package short Tales1 ;Measures what the player has told Knock Knock about the first part of the main quest (pre-Dad's death). 0 = has not told, 1 = tragic tale of missing Dad, 2 = bold adventurer leaving the vault, 3 = grisly demon of the wasteland short Tales2 ;Measures what the player has told Knock Knock about the second part of the main quest (post-Dad's death, pre-Enclave capture). 0 = has not told, 1 = Dad's noble sacrifice, 2 = two-fisted tales of the Brotherhood, 3 = a bloody tale of vengeance against the Enclave short Tales3 ;Measures what the player has told Knock Knock about the third part of the main quest (post-Enclave capture). 0 = has not told, 1 = finishing Dad's legacy, 2 = Hero of the Wastes!, 3 = a terrible choice is in your hands short LamplightSlaver ;Measures the stage of attempting to kidnap a kid from Lamplight. -1 = player attempted and failed (cannot be retried), 0 = not begun, 1 = has agreed to attempt, 2 = Bumble is following the player, 3 = Bumble is leaving with the slaver short ZipTalk ;Has the player spoken with Zip, yet. 0 = no, 1 = yes Begin GameMode ;MQ06 handling -- reset MacCready's forcegreet var if the player has left lamplight if ( MayorMacCreadyRef.forcegreet == 1 ) if ( MayorMacCreadyRef.access == 0 ) if ( Player.GetinCell LL == 0 ) set MayorMacCreadyRef.forcegreet to 0 endif endif endif End
scn DialogueOasisScript float BurnTimer short Burned ;This handles the last part of Harold's Burning ;We have to run this part in the Quest Script because scripts on talking activators do not run when they aren't loaded begin gamemode ;Check to see if Player jumped out of the Cell early. If so, advanced passed animation changes if ( MS10Fire == 1 ) if ( Player.GetInWorldSpace OasisHarold == 0 ) if ( MS10.InFlames < 2 ) Set DialogueOasis.BurnTimer to 20 set MS10.InFlames to 2 endif endif endif if ( Player.GetInWorldSpace OasisHarold == 0 ) if ( MS10.InFlames == 2 ) ;the burning anim is done, play the next one in the sequence ; HaroldRef.Playgroup Fastforward 1 set MS10.InFlames to 3 endif endif if ( MS10.InFlames == 3 ) if ( BurnTimer > 0 ) Set BurnTimer to ( BurnTimer - GetSecondsPassed ) if ( Player.GetInWorldSpace OasisHarold == 1 ) if( HaroldRef.isAnimPlaying Fastforward == 0 ) HaroldRef.Playgroup Fastforward 1 endif endif else Set MS10.InFlames to 4 endif endif endif if ( MS10.InFlames == 4 ) ;if player isn't there, go ahead and turn off the fire effect and replace with the burnt version of Harold if ( Player.GetInWorldSpace OasisHarold == 0 ) MS10HaroldFireLoopRef.Disable HaroldFireRef.Disable MS10HaroldBurnedRef.Enable HaroldRef.Disable set MS10.InFlames to 5 endif endif ;If the Player burns Harold, take care of the Heart stuff (in case they adventure in the Caves after) if ( Burned == 0 ) if ( MS10Fire == 1 ) if ( Player.GetInCell OasisCave01 == 1 ) MS10HaroldsHeartRef.Playgroup Forward 1 NPCHaroldHeartbeatLPRef.Disable NPCHaroldHeartbeatChamberLPRef.Disable set MS10HaroldsHeartRef.HeartDone to 2 OasisRootEnableRef.Disable set Burned to 1 endif endif endif end
SCN DialogueParadiseFallsSCRIPT short PlayerPassedCheckpoint short PlayerDeniedEntry short GrouseOfferedPlayerBribe short EulogyDead
scn DialogueTenpennyScript ;SEE ALSO: ;MS12Script (and quest) ;TenpennyIntercomScript ;TenpennyGateScript short ShakesDiscount ;used as discount on Show Barter menu function in Shakes Dialog, set by hacking the Lounge Terminal ;also used to flavor Shakes Dialog: 0 == default prices, 10 = Holiday Discount, 50 = VIP Discount short allowedIn ;0 = not set, 1 = allowed in -- used in dialog with the intercomm ;short securityCalled ;0 = unset - not called, 1=security should come attack the player, 2 = called recently ;short securityCalledDate ;used to pull the player out of aggro guards faction after a period of time elaspes ;short securityGoTo ;0 = unset, 1= Front Gate , 2 = Allistair Tenpenny -- used on packages to send guards to an area ref guardOpeningGate ;holds the reference of the guard who the player asked to open the gate - cleared when the Gate Opens short penthouseGuard ;0 = unset, 1 = unlock door, 2 = done unlocking door Begin GameMode ; ;make security hostile to the player ; if securityCalled == 1 ; ;put player in faction that TenpennyGuardFaction Always Fights ; if player.getFactionRank TenpennyHostileFaction < 0 ; player.setFactionRank TenpennyHostileFaction 0 ; set securityCalledDate to GameDaysPassed ; set securityCalled to 2 ; ; ChiefGustavoRef.evp ; TenpennyGuardDay1Ref.evp ; TenpennyGuardDay2Ref.evp ; TenpennyGuardDay3Ref.evp ; JoJoRef.evp ; TenpennyGuardDay5Ref.evp ; TenpennyGuardNight1Ref.evp ; TenpennyGuardNight3Ref.evp ; TenpennyGuardNight5Ref.evp ; ; ; endif ; ; elseif securityCalled == 2 ; ;if enough time has passed since the guards were called, make the guards not hostile to the player ; if GameDaysPassed - securityCalledDate > 2 ; set securityCalled to 0 ; player.setFactionRank TenpennyHostileFaction -1 ; ; endif ; ; ; endif ; If AnthonyLingRef.GetDead == 0 ; If AnthonyLingRef.GetDistance NewUrbanApparelMarker > 600 ; Shopkeeper is not in the shop ; If Player.GetDistance NewUrbanApparelMarker > 600 ; Player is not in the shop ; If NewUrbanDoorRef.GetOpenState == 1 ; Door is open ; NewUrbanDoorRef.SetOpenState 0 ; Close the door ; If NewUrbanDoorRef.GetLockLevel > 0 ; NewUrbanDoorRef.Lock ; Lock the door ; EndIf ; EndIf ; EndIf ; Else ; If NewUrbanDoorRef.GetOpenState == 3 ; Door is closed ; If Player.GetInCell Tenpenny01 == 1 ; NewUrbanDoorRef.Unlock ; Unlock the door ; NewUrbanDoorRef.SetOpenState 1 ; Open it ; EndIf ; EndIf ; EndIf ; EndIf End
SCN DialogueUnderworldSCRIPT short WinthropHasGreetedPlayer short PlayerKnowsAboutCharonsDeal short PlayerHasTalkedToCarol short PlayerRobbedWinthrop short PlayerAcceptedWinthropJob short PlayerDeclinedWinthropJob short PlayerTalkedToCarolAboutGob short PlayerToldCarolAboutGobsDeath short WinthropTradeAmount short CerberusCombat short Willow1 short Willow2 short CharonKilledAhzrukhal short AhzrukhalDead short CarolDead short CerberusDead short CharonDead short DoctorBarrowsDead short EthylDead short GretaDead short MeatDead short MisterCrowleyDead short PatchworkDead short QuinnDead short TulipDead short WinthropDead
scn DoctorBanfieldScript ;--------------------------COPIED FROM DoctorTemplateSCRIPT--------------------------------------------------------- short DoOnce ;Script blocker short BeginMedicalServicesBAD ;Used for Sawbones float Timer ;Timer used for animation control ;-------------------------------------------------------------------------------------------------------------------------------------------------- BEGIN GameMode ;--------------------------COPIED FROM DoctorTemplateSCRIPT--------------------------------------------------------- ;When set to 1, plays medical animations for eight seconds then restarts conversation with the player if ( GetAV Variable01 == 1 ) if ( DoOnce== 0 ) disablePlayerControls resetai sayto player MegDocChurchMedicalChatter set Timer to 8 set DoOnce to 1 if ( GetIsID Sawbones == 0 ) PlayIdle LooseDoctorHeal endif endif set Timer to ( Timer - GetSecondsPassed ) if ( Timer <= 6 ) && ( DoOnce == 1 ) IMod FadeToBlackISFX set DoOnce to 2 endif if ( Timer <= 0 ) && ( IsImagespaceActive FadeToBlackISFX == 0 ) setstage Doctors 10 enablePlayerControls SetAv Variable01 3 resetai Set DoOnce to 0 endif endif ;When set to 1, plays medical animations for eight seconds then restarts conversation with the player if ( GetAV Variable01 == 2 ) if ( DoOnce== 0 ) disablePlayerControls resetai set Timer to 8 set DoOnce to 1 if ( GetIsID Sawbones == 0 ) PlayIdle LooseDoctorHeal endif endif set Timer to ( Timer - GetSecondsPassed ) if ( Timer <= 6 ) && ( DoOnce == 1 ) IMod FadeToBlackISFX set DoOnce to 2 endif if ( Timer <= 0 ) && ( IsImagespaceActive FadeToBlackISFX == 0 ) setstage Doctors 20 enablePlayerControls SetAv Variable01 3 resetai Set DoOnce to 0 endif endif ;-------------------------------------------------------------------------------------------------------------------------------------------------- END Begin OnDeath ;set variable on MS12Script that this resident has been "dealt with" set MS12.DB to 2 set MS12.CountDealtWith to MS12.CountDealtWith + 1 set MS12.CountDead to MS12.CountDead + 1 End
scn DoctorBarrowsSCRIPT ;This script handles various issues with Doctor Barrows, the Doc in Underworld ;MS18 handlers included short Go ;When this flag is set to 1, Doc Barrows will ambush player (dialog package) short DoOnce short BeginMedicalServices ;Set to 1 in dialog, starts script below. short BeginAddictionServices ;Set to 1 in dialog, starts script below. ;Set to 1 in dialog, starts script below. short DoOnce1 ;Script blocker float Timer ;Timer used for animation control BEGIN GameMode ;This block handles the first time activation of Reilly in Underworld (sets Doc Barrows to dialog package go state) for MS18 Quest if ( DoOnce == 0 ) if ( MS18.BarrowsActive == 1 ) ;This is set in script on RRReilly when first activated set Go to 1 ;Execute dialog package Evp set DoOnce to 1 endif endif ;This block handles reviving Reilly if the Player convinces the Doctor if ( MS18.DoneWalk == 1 ) ReillyRef.SetUnconscious 0 ReillyRef.SetRestrained 0 Set ReillyRef.WakeComa to 1 Set ReillyRef.Coma to 1 ReillyRef.Evp Set MS18.DocRevive to 2 Evp Set MS18.DoneWalk to 2 endif ;Healing block (as per Erik's model) ;When set to 1, plays medical animations for eight seconds then restarts conversation with the player if ( GetAV Variable01 == 1 ) if ( DoOnce== 0 ) disablePlayerControls resetai sayto player MegDocChurchMedicalChatter PlayIdle LooseDoctorHeal set Timer to 8 set DoOnce to 1 endif set Timer to ( Timer - GetSecondsPassed ) if ( Timer <= 3 ) && ( DoOnce == 1 ) IMod FadeToBlackISFX set DoOnce to 2 endif if ( Timer <= 0 ) && ( IsImagespaceActive FadeToBlackISFX == 0 ) setstage Doctors 10 enablePlayerControls SetAv Variable01 3 resetai Set DoOnce to 0 endif endif ;When set to 1, plays medical animations for eight seconds then restarts conversation with the player if ( GetAV Variable01 == 2 ) if ( DoOnce== 0 ) disablePlayerControls resetai PlayIdle LooseDoctorHeal set Timer to 8 set DoOnce to 1 endif set Timer to ( Timer - GetSecondsPassed ) if ( IsAnimPlaying == 0 ) PlayIdle LooseDoctorHeal endif if ( Timer <= 3 ) && ( DoOnce == 1 ) IMod FadeToBlackISFX set DoOnce to 2 endif if ( Timer <= 0 ) && ( IsImagespaceActive FadeToBlackISFX == 0 ) setstage Doctors 20 enablePlayerControls SetAv Variable01 3 resetai Set DoOnce to 0 endif endif END BEGIN OnDeath set DialogueUnderworld.DoctorBarrowsDead to 1 END
scn DoctorLeskoScript float Timer ;This script is on Doctor Lesko for handling his Death begin OnDeath if ( GetStage MS04 < 45 ) if ( IsKiller Player == 1 ) SetObjectiveDisplayed MS04 40 0 SetObjectiveDisplayed MS04 42 0 SetObjectiveDisplayed MS04 43 1 endif endif if ( GetStage MS04 == 45 ) if ( IsKiller Player == 1 ) SetObjectiveDisplayed MS04 45 0 endif endif end
scn DoctorTemplateSCRIPT short DoOnce ;Script blocker short BeginMedicalServicesBAD ;Used for Sawbones float Timer ;Timer used for animation control BEGIN GameMode ;When set to 1, plays medical animations for eight seconds then restarts conversation with the player if ( GetAV Variable01 == 1 ) if ( DoOnce== 0 ) disablePlayerControls sayto player MegDocChurchMedicalChatter set Timer to 8 set DoOnce to 1 if ( GetIsID Sawbones == 0 ) PlayIdle LooseDoctorHealPlayer endif resetai endif set Timer to ( Timer - GetSecondsPassed ) if ( Timer <= 6 ) && ( DoOnce == 1 ) IMod FadeToBlackISFX set DoOnce to 2 endif if ( Timer <= 0 ) && ( IsImagespaceActive FadeToBlackISFX == 0 ) setstage Doctors 10 enablePlayerControls SetAv Variable01 3 resetai Set DoOnce to 0 endif endif ;When set to 1, plays medical animations for eight seconds then restarts conversation with the player if ( GetAV Variable01 == 2 ) if ( DoOnce== 0 ) disablePlayerControls set Timer to 10 set DoOnce to 1 if ( GetIsID Sawbones == 0 ) PlayIdle LooseDoctorHealPlayer endif resetai endif set Timer to ( Timer - GetSecondsPassed ) if ( Timer <= 6 ) && ( DoOnce == 1 ) IMod FadeToBlackISFX set DoOnce to 2 endif if ( Timer <= 0 ) && ( IsImagespaceActive FadeToBlackISFX == 0 ) setstage Doctors 20 enablePlayerControls SetAv Variable01 3 resetai Set DoOnce to 0 endif endif END
scn DogmeatSCRIPT ;Follower Variables short HasBeenHired short WeaponOut short CombatStyleRanged short CombatStyleMelee short IsFollowingDefault short IsFollowingShort short IsFollowingLong short Waiting ;Dogmeat Variables short Find ;0 = not finding, 1 = searching, 2 = found and should now return short FindAmmo short FindChems short FindWeapons short FindFood BEGIN OnStartCombat Player set Followers.DogmeatHired to 0 set Followers.DogmeatFired to 1 set DogmeatREF.Waiting to 0 DogmeatREF.SetPlayerTeammate 0 DogmeatREF.RemoveFromFaction FollowerFaction END BEGIN OnCombatEND if ( GetPlayerTeammate == 1 ) resethealth restoreav perceptioncondition 100 restoreav endurancecondition 100 restoreav leftattackcondition 100 restoreav leftmobilitycondition 100 restoreav rightattackcondition 100 restoreav rightmobilitycondition 100 endif END BEGIN OnDeath if ( Followers.DogmeatHired == 1 || Followers.DogmeatFired == 1 ) set Followers.PlayerHasFollower to 0 set Followers.DogmeatHired to 0 ShowMessage FollowerMessageDeadDogmeat endif END
scn DoorActivatedByLinkedRefSCRIPT ; This script tells the door to only be activated by not the player ref LinkedRef Begin onActivate if linkedRef == 0 set LinkedRef to getLinkedRef endif if (IsActionRef player == 1) ShowMessage GenericDoorActivatedElsewhereMsg elseIf (IsActionRef LinkedRef == 1) activate endif End
scn DoorCloseLockAvgOnActivate ; ;This script will cause a door to close and lock on activation from a reference other than the player ; ;================================== begin onActivate if isActionRef player == 0 lock 2 setOpenState 0 else activate endif end
scn DoorRemoteOpenSCRIPT ; This script tells the door to only be activated by not the player ref activateRef Begin onActivate set activateRef to getActionRef if (IsActionRef player == 1) ShowMessage GenericDoorActivatedElsewhereMsg elseif (activateRef.isActor == 1) ;do nothing else activate endif End
scn DukovVertibirdFlyoverSCRIPT ; This trigger enables it's linked ref (a vertibird) and calls its forward animation ; Once it's done animating it enables a trigger that sends a vertibird landing nearby. float timer short doOnce ref linkedRef ;***************************************** Begin onTriggerEnter Player if (doOnce == 0) && (getStage MQ05 >= 85) set linkedRef to getLinkedRef linkedRef.enable 0 set timer to 1 set doOnce to 1 endif End ;***************************************** Begin gameMode if (doOnce == 1) if (timer <= 0) linkedRef.playgroup Forward 0 set doOnce to 2 else set timer to timer - GetSecondsPassed endif elseif (doOnce == 2) if (linkedRef.isAnimPlaying Forward == 0) linkedRef.disable ;disable the vertibird when it's done playing its forward animation DukovVertibirdLandingREF.enable ;enables a trigger that sends a vertibird landing nearby set doOnce to 3 endif endif End
scn Dunwich02MoverTrig01SCRIPT float timer short doOnce Begin onTriggerEnter Player if (doOnce == 0) Dunwich02Mover01REF.placeatme DunwichFakeForceBallSmall 1 set doOnce to 1 set timer to 1 endif End ;************************ Begin gameMode if (doOnce == 1) if (timer < 0) Dunwich02Mover02REF.placeatme DunwichFakeForceBallSmall 1 set doOnce to 2 set timer to .25 else set timer to (timer - GetSecondsPassed) endif endif if (doOnce == 2) if (timer < 0) Dunwich02Mover03REF.placeatme DunwichFakeForceBallMedium 1 set doOnce to 3 set timer to 4 else set timer to (timer - GetSecondsPassed) endif endif if (doOnce == 3) if (timer < 0) Dunwich02Mover04REF.placeatme DunwichFakeForceBallMedium 1 set doOnce to 4 else set timer to (timer - GetSecondsPassed) endif endif End
scn Dunwich02PastManPrepTrigSCRIPT float timer short doOnce Begin onTriggerEnter Player if (doOnce == 0) Dunwich02PastMan01REF.enable set doOnce to 1 set timer to .5 endif End ;********************************** Begin gameMode if (doOnce == 1) if (timer < 0) Dunwich02PastMan01REF.moveTo Dunwich02PastMan01MarkerREF set doOnce to 2 else set timer to (timer - GetSecondsPassed) endif endif End
scn Dunwich03ActivateLinkedRefSCRIPT ; a standard, all-purpose script ref myLink ref mySelf short doOnce begin onTriggerEnter player if doOnce == 0 set myLink to getLinkedRef set mySelf to getSelf myLink.activate player 1 set doOnce to 1 endif end
scn DunwichBuilding01NoteActivator01SCRIPT ref target short doOnce Begin onActivate if IsActionRef player == 1 if doOnce == 0 set target to getLinkedRef target.enable set doOnce to 1 ;Trigger is only set off one time endif endif End
scn DunwichPastTrigger01SCRIPT float timer short stage Begin onTriggerEnter Player if (stage == 0) IMOD Dunwich02ISFX set timer to .2 set stage to 1 endif End ;************************************* Begin gameMode if (stage == 1) if (timer < 0) player.moveto DunwichPastMarker01REF player.playSound UIVATSCameraIn Dunwich02PastMan01REF.enable Dunwich02GlowingOne01REF.enable ;Dunwich02GlowingOne01REF.startCombat Player set timer to 1 set stage to 2 else set timer to (timer - GetSecondsPassed) endif endif if (stage == 2) if (timer < 0) player.moveto DunwichPastMarker02REF player.playSound UIVATSCameraOut Dunwich02PastMan01REF.disable set stage to 3 else set timer to (timer - GetSecondsPassed) endif endif End
scn EdgarWellingtonIIScript short shotTimes Begin OnHit MillicentWellingtonRef if MillicentWellingtonRef.killHusband == 1 && shotTimes >=4 kill set MillicentWellingtonRef.KillHusband to 3 ;this gets her walking away again, set MillicentWellingtonRef.deathTimer to 5 ;but when the timer runs out, she returns to shoot his corpse MillicentWellingtonRef.EVP else set shotTimes to shotTimes + 1 endif End Begin OnDeath ;set variable on MS12Script that this resident has been "dealt with" set MS12.EW to 2 set MS12.CountDealtWith to MS12.CountDealtWith + 1 set MS12.CountDead to MS12.CountDead + 1 End
scn EnclaveBroadcastEffectSCRIPT begin ScriptEffectStart if GetDead == 0 SetNPCRadio 1 RadioEnclaveREF endif end begin ScriptEffectFinish SetNPCRadio 0 RadioEnclaveREF end
scn EnclaveCamp14VertibirdScript ; This trigger enables 2 vertibirds to fly over the camp after MQ05 float timer short runTimer short stage begin onTriggerEnter player if (stage == 0) && (getStage MQ05 >= 85) EnclaveCamp14Vertibird01.enable EnclaveCamp14Vertibird02.enable set runTimer to 1 set timer to 1 set stage to 1 endif end begin gameMode if runTimer == 1 if timer > 0 set timer to timer - GetSecondsPassed else if stage == 1 EnclaveCamp14Vertibird01.playgroup Forward 1 set timer to 2 set stage to 2 elseif stage == 2 EnclaveCamp14Vertibird02.playgroup Forward 1 set stage to 3 elseif stage == 3 if EnclaveCamp14Vertibird01.isAnimPlaying Forward == 0 EnclaveCamp14Vertibird01.disable ;disable the vertibird when it's done playing its forward animation set stage to 4 endif elseif stage == 4 if EnclaveCamp14Vertibird02.isAnimPlaying Forward == 0 EnclaveCamp14Vertibird02.disable ;disable the vertibird when it's done playing its forward animation set runTimer to 0 endif endif endif endif end
scn EnclaveCamp19VertibirdScript ; This trigger enables 2 vertibirds to fly over the satellite float timer short runTimer short stage begin onTriggerEnter player if (stage == 0) && (getStage MQ05 >= 85) if getStage MQ05 >= 85 EnclaveCamp19Vertibird01.enable EnclaveCamp19Vertibird02.enable set runTimer to 1 set timer to 1 set stage to 1 endif endif end begin gameMode if runTimer == 1 if timer > 0 set timer to timer - GetSecondsPassed else if stage == 1 EnclaveCamp19Vertibird01.playgroup Forward 1 EnclaveCamp19Vertibird02.playgroup Forward 1 set stage to 2 elseif stage == 2 if EnclaveCamp19Vertibird01.isAnimPlaying Forward == 0 EnclaveCamp19Vertibird01.disable ;disable the vertibird when it's done playing its forward animation EnclaveCamp19Vertibird02.disable ;disable the vertibird when it's done playing its forward animation set runTimer to 0 endif endif endif endif end
scn EnclaveCamp22VertibirdScript ; This trigger enables a vertibird to flyby float timer short runTimer short stage begin onTriggerEnter player if (stage == 0) && (getStage MQ05 >= 85) if getStage MQ05 >= 85 EnclaveCamp22Vertibird01.enable set runTimer to 1 set timer to 1 set stage to 1 endif endif end begin gameMode if runTimer == 1 if timer > 0 set timer to timer - GetSecondsPassed else if stage == 1 EnclaveCamp22Vertibird01.playgroup Forward 1 set stage to 2 elseif stage == 2 if EnclaveCamp22Vertibird01.isAnimPlaying Forward == 0 EnclaveCamp22Vertibird01.disable ;disable the vertibird when it's done playing its forward animation set runTimer to 0 endif endif endif endif end
scn EnclaveCamp30InitScript begin onTriggerEnter player if (getStage MQ05 >= 85) EnclaveCamp30VertibirdLandTrigREF.enable EnclaveCamp30Bird.enable EnclaveCamp30Scorp01.enable EnclaveCamp30Scorp02.enable EnclaveCamp30Scorp03.enable endif end
scn EnclaveCamp30VertibirdLandScript float timer short runTimer short doOnce float enclaveStamp float birdTakeoffStamp short enclaveFlag short birdTakeoffFlag begin onLoad set timer to 20 set enclaveStamp to timer - 17 set birdTakeoffStamp to timer - 19 end begin onTriggerEnter player if (doOnce == 0) && (getStage MQ05 >= 85) EnclaveCamp30Bird.playGroup forward 0 set runTimer to 1 set doOnce to 1 endif end begin gameMode if runTimer == 1 if timer > 0 set timer to timer - getSecondsPassed endif if enclaveFlag == 0 if timer <= enclaveStamp if (EnclaveCamp30Bird.getDestroyed == 0) EnclaveCamp30Enclave01.enable EnclaveCamp30Enclave02.enable EnclaveCamp30Enclave03.enable endif set enclaveFlag to 1 endif endif if birdTakeoffFlag == 0 if timer <= birdTakeoffStamp if (EnclaveCamp30Bird.getDestroyed == 0) EnclaveCamp30Bird.playGroup backward 0 endif set birdTakeoffFlag to 1 endif else if EnclaveCamp30Bird.isAnimPlaying Backward == 0 && (EnclaveCamp30Bird.getDestroyed == 0) EnclaveCamp30Bird.disable ;disable the vertibird when it's done playing its backward animation set runTimer to 0 endif endif if (EnclaveCamp30Bird.getDestroyed == 1) set runTimer to 1 endif endif end
scn EnclaveCamp31VertibirdLandScript float timer short runTimer short doOnce float birdLandStamp float enclaveStamp float birdTakeoffStamp short birdLandFlag short enclaveFlag short birdTakeoffFlag begin onLoad set timer to 20 set birdLandStamp to timer - 0.1 set enclaveStamp to timer - 17 set birdTakeoffStamp to timer - 19 end begin onTriggerEnter player if (doOnce == 0) && (getStage MQ05 >= 85) EnclaveCamp31Mutant01.enable EnclaveCamp31Mutant02.enable EnclaveCamp31Mutant03.enable EnclaveCamp31Bird.enable 0 set runTimer to 1 set doOnce to 1 endif end begin gameMode if runTimer == 1 if timer > 0 set timer to timer - getSecondsPassed endif if birdLandFlag == 0 if timer <= birdLandStamp EnclaveCamp31Bird.playGroup forward 0 set birdLandFlag to 1 endif endif if enclaveFlag == 0 if timer <= enclaveStamp EnclaveCamp31Gun01.enable EnclaveCamp31Gun02.enable EnclaveCamp31Gun03.enable set enclaveFlag to 1 endif endif if birdTakeoffFlag == 0 if timer <= birdTakeoffStamp if (EnclaveCamp31Bird.getDestroyed == 0) EnclaveCamp31Bird.playGroup backward 0 endif set birdTakeoffFlag to 1 endif else if EnclaveCamp31Bird.isAnimPlaying Backward == 0 && (EnclaveCamp31Bird.getDestroyed == 0) EnclaveCamp31Bird.disable ;disable the vertibird when it's done playing its backward animation set runTimer to 0 endif endif if (EnclaveCamp31Bird.getDestroyed == 1) set runTimer to 1 endif endif end
scn EnclaveCamp32VertibirdLandScript float timer short runTimer short doOnce float birdLandStamp float enclaveStamp float birdTakeoffStamp short birdLandFlag short enclaveFlag short birdTakeoffFlag begin onLoad set timer to 20 set birdLandStamp to timer - 0.1 set enclaveStamp to timer - 17 set birdTakeoffStamp to timer - 19 end begin onTriggerEnter player if (doOnce == 0) && (getStage MQ05 >= 85) EnclaveCamp32Bird.enable set runTimer to 1 set doOnce to 1 endif end begin gameMode if runTimer == 1 if timer > 0 set timer to timer - getSecondsPassed endif if birdLandFlag == 0 if timer <= birdLandStamp EnclaveCamp32Bird.playGroup forward 0 set birdLandFlag to 1 endif endif if enclaveFlag == 0 if timer <= enclaveStamp if (EnclaveCamp32Bird.getDestroyed == 0) EnclaveCamp32Gun01.enable EnclaveCamp32Gun02.enable endif set enclaveFlag to 1 endif endif if birdTakeoffFlag == 0 if timer <= birdTakeoffStamp if (EnclaveCamp32Bird.getDestroyed == 0) EnclaveCamp32Bird.playGroup backward 0 endif set birdTakeoffFlag to 1 endif else if EnclaveCamp32Bird.isAnimPlaying Backward == 0 && (EnclaveCamp32Bird.getDestroyed == 0) EnclaveCamp32Bird.disable ;disable the vertibird when it's done playing its backward animation set runTimer to 0 endif endif if (EnclaveCamp32Bird.getDestroyed == 1) set runTimer to 1 endif endif end
scn EnclaveCamp34VertibirdLandScript float timer short runTimer short doOnce float birdLandStamp float enclaveStamp float birdTakeoffStamp short birdLandFlag short enclaveFlag short birdTakeoffFlag begin onLoad set timer to 21 set birdLandStamp to timer - 1 set enclaveStamp to timer - 18 set birdTakeoffStamp to timer - 20 end begin onTriggerEnter player if (doOnce == 0) && (getStage MQ05 >= 85) EnclaveCamp34Bird.enable set runTimer to 1 set doOnce to 1 endif end begin gameMode if runTimer == 1 if timer > 0 set timer to timer - getSecondsPassed endif if birdLandFlag == 0 if timer <= birdLandStamp EnclaveCamp34Bird.playGroup forward 0 set birdLandFlag to 1 endif endif if enclaveFlag == 0 if timer <= enclaveStamp if (EnclaveCamp34Bird.getDestroyed == 0) EnclaveCamp34Enclave01.enable EnclaveCamp34Enclave02.enable EnclaveCamp34Enclave03.enable EnclaveCamp34Scorp01.enable EnclaveCamp34Scorp02.enable EnclaveCamp34Scorp03.enable EnclaveCamp34Scorp04.enable endif set enclaveFlag to 1 endif endif if birdTakeoffFlag == 0 if timer <= birdTakeoffStamp if (EnclaveCamp34Bird.getDestroyed == 0) EnclaveCamp34Bird.playGroup backward 0 endif set birdTakeoffFlag to 1 endif else if EnclaveCamp34Bird.isAnimPlaying Backward == 0 && (EnclaveCamp34Bird.getDestroyed == 0) EnclaveCamp34Bird.disable ;disable the vertibird when it's done playing its backward animation set runTimer to 0 endif endif if (EnclaveCamp34Bird.getDestroyed == 1) set runTimer to 1 endif endif end
scn EnclaveDeathclawCageOfficerSCRIPT ;this script goes on the deathclaw cage officer ;the officer will run over to the cage and unlock the door if he is in combat with the player or has been hit by the player ref linkedRef ;where you want the officer to stand when he unlocks the door ref deathclawDoor ; the deathclaw door should be the linkedRef of the linkedRef (daisy chain) ref combatRef short doOnce ;********************************* Begin onLoad set doOnce to 0 End ;********************************* Begin onPackageEnd DeathclawCAGEOfficer01a set linkedRef to getLinkedRef set deathclawDoor to linkedRef.getLinkedRef deathclawDoor.unlock setav variable01 2 evp End ;********************************* Begin onHit Player if (doOnce == 0) setav variable01 1 ;condition used for his package to run to the deathclaw cage evp set doOnce to 1 endif End ;********************************* Begin gameMode if (doOnce == 0) if (isInCombat) set combatRef to getCombatTarget if combatRef == player setav variable01 1 ;condition used for his package to run to the deathclaw cage evp set doOnce to 1 endif endif endif End ;*********************************
SCN EthylSCRIPT BEGIN OnDeath set DialogueUnderworld.EthylDead to 1 END
scn EvergreenMillsBehemothDoor02TrigSCRIPT ref actionRef float timer short doOnce ;************************************ Begin onTriggerEnter set actionRef to getActionRef if (actionRef == EvergreenMillsBehemoth01REF) EvergreenMillsFenceGate02REF.setOpenState 1 set timer to 3 set doOnce to 1 endif End ;************************************ Begin gameMode if (doOnce == 1) if (timer <= 0) EvergreenMillsFenceGate02REF.setOpenState 1 set doOnce to 2 else set timer to (timer - GetSecondsPassed) endif endif End
scn EvergreenMillsBehemothDoorTrigSCRIPT ref actionRef float timer short doOnce ;************************************ Begin onTriggerEnter set actionRef to getActionRef if (actionRef == EvergreenMillsBehemoth01REF) if (EvergreenMillsElectricBoxREF.getDestroyed == 1) EvergreenMillsFenceGate01REF.setOpenState 1 set timer to 3 set doOnce to 1 endif endif End ;************************************ Begin gameMode if (doOnce == 1) if (timer <= 0) EvergreenMillsFenceGate01REF.setOpenState 1 set doOnce to 2 else set timer to (timer - GetSecondsPassed) endif endif End ;************************************
scn EvergreenMillsElectricalSwitch01SCRIPT short doOnce ref actionRef Begin onActivate set actionRef to getActionRef if (actionRef == Player) if (EvergreenMillsElectricBoxREF.getDestroyed == 0) if (EvergreenMillsFenceGate01REF.getOpenState == 0) || (EvergreenMillsFenceGate01REF.getOpenState >= 3) if (doOnce == 0) EvergreenMillsElectricDoorREF.disable set doOnce to 1 elseif (doOnce == 1) EvergreenMillsElectricDoorREF.enable set doOnce to 0 endif endif endif activate endif End
scn EvergreenMillsElectricBox01SCRIPT short doOnce Begin gameMode if (doOnce == 0) if (EvergreenMillsElectricBoxREF.getDestroyed == 1) EvergreenMillsElectricDoorREF.disable set doOnce to 1 endif endif End
scn EvergreenMillsFenceGate01SCRIPT short doOnce short triggered float timer ;************************** Begin onActivate if (EvergreenMillsElectricDoorREF.getDisabled == 0) && ( IsActionRef Player == 1 ) set triggered to 1 else activate endif End ;************************** Begin gameMode if (triggered == 1) ;shock the player after time has passed. if timer > 0 set timer to timer - GetSecondsPassed else player.damageAV health 25 playSound3D TRPToilet imod TrapToiletShockISFX set triggered to 0 set timer to .25 endif endif if (doOnce == 0) if (EvergreenMillsElectricBoxREF.getDestroyed == 1) EvergreenMillsBehemoth01REF.removeFromFaction EvergreenMillsBehemothFaction EvergreenMillsBehemoth01REF.setFactionRank superMutantFaction 4 EvergreenMillsBehemoth01REF.setav variable01 1 EvergreenMillsBehemoth01REF.setav aggression 3 EvergreenMillsBehemoth01REF.evp set doOnce to 1 endif endif End ;************************** ; removed following lines of script from box destroy block ;EvergreenMillsBehemoth01REF.removeFromFaction EvergreenMillsSlaveFaction ;EvergreenMillsBehemoth01REF.removeFromFaction RaiderFaction ;EvergreenMillsBehemoth01REF.removeFromFaction PlayerFaction ;Player.removeFromFaction EvergreenMillsBehemothFaction
SCN EvergreenMillsRaiderConversationTriggerScript short DoOnce BEGIN OnTriggerEnter Player if DoOnce == 0 set DoOnce to 1 EvergreenMillsRaiderCampfire01REF.StartConversation EvergreenMillsRaiderCampfire01REF EvergreenCampfireFight01 endif END
scn EvergreenMillsSlave01SCRIPT short doOnce ;*********************** Begin gameMode if (doOnce ==0) && ( GetDead == 0 ) if (EvergreenMillsSlavePenDoor01REF.getLocked == 0) RewardKarma 10 setav variable01 1 evp removeFromFaction RaiderFaction removeFromFaction EvergreenMillsBehemothFaction set doOnce to 1 endif endif End ;***********************
scn EvergreenMillsSlave02SCRIPT short doOnce ;*********************** Begin gameMode if (doOnce ==0) if (EvergreenMillsSlavePenDoor02REF.getLocked == 0) setav variable01 1 evp removeFromFaction RaiderFaction removeFromFaction EvergreenMillsBehemothFaction set doOnce to 1 endif endif End ;***********************
scn EvergreenMillsSlavePenTriggerSCRIPT ; This trigger is triggered by the player when he enters the pen short target short doOnce ref linkedRef float timer Begin onTriggerEnter Player if doOnce == 0 EvergreenMillsSlavePenAmbushREF.enable EvergreenMillsSlavePenAmbushREF.additem EvergreenMillsSlaveKey 1 ;EvergreenMillsSlavePenDoor01REF.unlock ;EvergreenMillsSlavePenDoor02REF.unlock set target to 1 ;used as condition for raider package EvergreenMillsSlavePenAmbushREF.evp set timer to 20 set doOnce to 1 ;Trigger is only set off one time endif End ;************************************ Begin gameMode if (doOnce == 1) if (timer <= 0) set linkedRef to getLinkedRef if (linkedRef == EvergreenMillsSlavePenDoor01REF) EvergreenMillsSlavePenDoor01REF.unlock elseif (linkedRef == EvergreenMillsSlavePenDoor02REF) EvergreenMillsSlavePenDoor02REF.unlock endif set doOnce to 2 else set timer to (timer - GetSecondsPassed) endif endif End
SCN EvergreenMillsSniperSCRIPT ref MySelf BEGIN GameMode if ( GetAV Health <= 10 ) && ( GetDead == 0 ) set MySelf to Getself Player.PushActorAway MySelf -20 kill endif END
scn FairfaxGasValve01SCRIPT ;--------------------------------------------------------------------------------------------------------------------------------------------- short gasValveRepaired ; 1 = gas valve has been repaired short repairAttempt ; 0 = default 1 = PC wants to try and repair the gas valve short doOnce ; 0 = gas trap has not been enabled yet - we only want the gas trap to appear once 1 = player has already let the gas out short skillNeeded ; repair skill needed to repair the gas valve short button ;--------------------------------------------------------------------------------------------------------------------------------------------- Begin onLoad set skillNeeded to 25 End Begin onActivate if IsActionRef player == 1 if gasValveRepaired== 0 if player.GetAv Repair < skillNeeded ShowMessage GenericGasValveLowSkillMsg skillNeeded endif if player.GetAv Repair >= skillNeeded ShowMessage GenericGasValveSkillMsg set repairAttempt to 1 ; set up to repair endif elseif gasValveRepaired == 1 && doOnce == 0 FairfaxGasTrap01REF.enable set doOnce to 1 endif endif End Begin gameMode if repairAttempt == 1 ; procedure for repairing the gas valve set button to getbuttonpressed if button > -1 set repairAttempt to 0 if button == 0 ShowMessage GenericGasValveRepairMsg set gasValveRepaired to 1 ; gas valve has been repaired elseif button == 1 ; don't do anything endif endif endif End
scn FakeForceBallOnTriggerEnterScript short doOnce begin onTriggerEnter if doOnce != 1 placeAtMe FakeForce100r25 set doOnce to 1 endif end
scn FallsChurchBoSLeader01SCRIPT short FallsChurchStage ; 0 means mini quest hasn't begun ; 1 means player has spoken with the Paladin and has agreed to help BEGIN OnDeath if ( GetStageDone FreeformDC 19 == 0 ) FF02InititiateREF.Kill endif END
SCN FallsChurchBoSLostInititateSCRIPT Short Rescued BEGIN OnDeath if ( GetStageDone FreeformDC 14 == 1 ) SetStage FreeformDC 15 endif END
scn FallsChurchTrigPlayerBox03SCRIPT ;This trigger is in West Falls Church and moves two BoS to positions ready for a FFQuest short doOnce ; set to 1 when player triggers Begin onTriggerEnter Player if (doOnce == 0) if FreeformDC.FallsChurchFromMetro == 0 && FreeformDC.FallsChurchFromNorth == 0 set FreeformDC.FallsChurchFromMetro to 1 ;make sure the player is coming from the metro FallsChurchBoSLeader01REF.enable 0 ; enables the two BoS leaders near the metro station FallsChurchMetroMutant01REF.enable 0 ;enables the two mutants near the metro station FallsChurchBoSLeader01REF.moveto FallsChurchBoS01LeaderMetroStartREF FallsChurchBoSLeader02REF.moveto FallsChurchBoS02LeaderMetroStartREF endif set doOnce to 1 endif End
scn FallsChurchTrigPlayerBox04SCRIPT ;This trigger is in East Falls Church and moves two BoS to positions ready for a FFQuest short doOnce ; set to 1 when player triggers Begin onTriggerEnter Player if (doOnce == 0) if (FreeformDC.FallsChurchFromNorth == 0) && (FreeformDC.FallsChurchFromMetro == 0) set FreeformDC.FallsChurchFromNorth to 1 ;player has entered Falls Church from the north FallsChurchBoSLeader01REF.moveto FallsChurchBoS01LeaderLOBEStartREF FallsChurchBoSLeader02REF.moveto FallsChurchBoS02LeaderLOBEStartREF FallsChurchBoSLeader01REF.enable 0 ;enables the two BoS soldiers FallsChurchMetroMutant01REF.enable 0 ;enables the two mutants near the west metro station endif set doOnce to 1 endif End
scn FFBaseballSCRIPT ref activatron begin onTriggerEnter set activatron to getActionRef if activatron == GrenadeFragProjectile if activatron.isWeaponOut == 1 showwarning "trigenter w/projectile" BatterREF.useWeapon weapBaseballBat BatterMarker activatron 1 placeatMe FakeForceBall1000 set NQlvl.ballHit to 1 batterREF.evp endif endif end begin onHitwith WeapGrenadeFrag showWarning "onHit" end ;ref enteringObject ; ;begin onHitWith ExplodesGasTrapsOnHit; ; ;ExplodesGasTrapsOnHit is a form list that has every type of weapon fire and explosion that could potentially ignite a gas trap on contact. ; ; do 5 ;end ; ; ;begin onTriggerEnter ;; ; set enteringObject to getActionRef ; if (enteringObject.isWeaponInList ExplodesGasTrapsOnTouch) ; if (enteringObject.isWeaponOut == 1) ; do 5 ; endif ; endif ; ; if (enteringObject.HasMagicEffect FlamerMagicEffect == 1) ; do 5 ; endif ; ;end ;
scn FFChurchSniperSCRIPT ; simple script to nudge this guy off his ledge and into loot range when he's killed. begin gameMode if player.getHasNote OasisExileHolotape == 1 if OasisMapMarker.GetMapMarkerVisible == 0 player.showMap OasisMapMarker 0 endif endif end begin onDeath placeatMe fakeForceBall250 end
SCN FFDCAdamsMorganPreacherSCRIPT short DoOnce short Bomb short Boom short Detonation float Timer float Timer2 ref MySelf BEGIN OnLoad set MySelf to Getself ; if I'm not dead, reset variables if getDead == 0 set DoOnce to 0 setAV Health 10 endif END BEGIN GameMode if ( GetDead == 0 ) && ( Detonation == 0 ) if ( GetDistance Player <= 4000 ) Set Timer2 to ( Timer2 - GetSecondsPassed ) if ( Timer2 <= 0 ) FFDCSewardSquareSpeaker02REF.say FFDCAdamsMorganSermon 0 FFDCAdamsMorganPreacher 1 PlayIdle LooseTalkBHPreachIdleA230 set Timer2 to 17 endif endif endif if ( Bomb == 1 ) && ( Boom <= 10 ) && ( GetDead == 0 ) set Timer to ( Timer - GetSecondsPassed ) if ( Timer <= 5.0 ) && ( Boom == 0 ) if ( GetDistance FFCCAdamsMorganCrazedWastelanderREF <= 1000 ) FFCCAdamsMorganCrazedWastelanderREF.setav Health 1 FFCCAdamsMorganCrazedWastelanderREF.PlaceAtMe LargeExplosion kill FFCCAdamsMorganCrazedWastelanderREF 4 kill FFCCAdamsMorganCrazedWastelanderREF 5 kill FFCCAdamsMorganCrazedWastelanderREF 6 kill FFCCAdamsMorganCrazedWastelanderREF 7 kill FFCCAdamsMorganCrazedWastelanderREF 8 kill FFCCAdamsMorganCrazedWastelanderREF 9 FFCCAdamsMorganCrazedWastelanderREF.PlaceAtMe LargeExplosion FFCCAdamsMorganCrazedWastelanderREF.PushActorAway FFCCAdamsMorganCrazedWastelanderREF 30 endif set boom to 1 endif if ( Timer <= 4.0 ) && ( Boom == 1 ) FFDCAdamsMorganPreacherMine01.PlaceAtMe FatManNukeExplosion FFDCAdamsMorganPreacherMine01.disable set Boom to 2 endif if ( Timer <= 3.5 ) && ( Boom == 2 ) FFDCAdamsMorganPreacherMine02.PlaceAtMe FatManNukeExplosion FFDCAdamsMorganPreacherMine02.disable set Boom to 3 endif if ( Timer <= 3.0 ) && ( Boom == 3 ) FFDCAdamsMorganPreacherMine03.PlaceAtMe LargeExplosion FFDCAdamsMorganPreacherMine03.disable set Boom to 4 endif if ( Timer <= 2.5 ) && ( Boom == 4 ) FFDCAdamsMorganPreacherMine04.PlaceAtMe FatManNukeExplosion FFDCAdamsMorganPreacherMine04.disable FFDCAdamsMorganPreacherMine10.PlaceAtMe LargeExplosion FFDCAdamsMorganPreacherMine10.disable set Boom to 5 endif if ( Timer <= 2.0 ) && ( Boom == 5 ) FFDCAdamsMorganPreacherMine05.PlaceAtMe FatManNukeExplosion FFDCAdamsMorganPreacherMine05.disable FFDCAdamsMorganPreacherMine11.PlaceAtMe LargeExplosion FFDCAdamsMorganPreacherMine11.disable set Boom to 6 endif if ( Timer <= 1.5 ) && ( Boom == 6 ) FFDCAdamsMorganPreacherMine06.PlaceAtMe FatManNukeExplosion FFDCAdamsMorganPreacherMine06.disable set Boom to 7 endif if ( Timer <= 1.0 ) && ( Boom == 7 ) FFDCAdamsMorganPreacherMine07.PlaceAtMe FatManNukeExplosion FFDCAdamsMorganPreacherMine07.disable set Boom to 8 endif if ( Timer <= .5 ) && ( Boom == 8 ) FFDCAdamsMorganPreacherMine08.PlaceAtMe FatManNukeExplosion FFDCAdamsMorganPreacherMine08.disable set Boom to 9 endif if ( Timer <= .25 ) && ( Boom == 9 ) FFDCAdamsMorganPreacherMine09.PlaceAtMe FatManNukeExplosion FFDCAdamsMorganPreacherMine09.disable set Boom to 10 endif if ( Timer < 0 ) && ( Boom == 10 ) set MySelf to Getself setGhost 0 FFDCAdamsMorganPreacherMine12.PlaceAtMe LargeExplosion FFDCAdamsMorganPreacherMine12.disable FFDCAdamsMorganFatmanMARKER.PlaceAtMe FatManNukeExplosion FFDCAdamsMorganFatman.disable MySelf.PlaceAtMe FatManNukeExplosion kill MySelf 1 kill MySelf 2 kill MySelf 3 kill MySelf 4 kill MySelf 5 kill MySelf 6 kill MySelf 7 kill MySelf 8 kill MySelf 9 kill MySelf 10 set Boom to -1 set Bomb to -1 endif endif if ( GetDead == 0 ) && ( Detonation == 0 ) if ( GetDetected Player == 1 ) && ( GetDistance Player <= 1900 ) playsound3d WPNMineTick playsound3d WPNMineTick playsound3d WPNMineTick playsound3d WPNMineTick playsound3d WPNMineTick playsound3d WPNMineTick playsound3d WPNMineTick set Timer to 6 set Bomb to 1 setGhost 1 PlayIdle LooseRadioBangOn set Detonation to 1 endif if ( GetDistance FFCCAdamsMorganCrazedWastelanderREF <= 1500 ) playsound3d WPNMineTick playsound3d WPNMineTick playsound3d WPNMineTick playsound3d WPNMineTick playsound3d WPNMineTick playsound3d WPNMineTick playsound3d WPNMineTick set Timer to 6 set Bomb to 1 setGhost 1 PlayIdle LooseRadioBangOn set Detonation to 1 endif endif if GetDead == 0 if ( IsInCombat == 1 ) && ( GetAV Health <= 9 ) set MySelf to Getself Player.PushActorAway MySelf -20 kill endif endif END
scn FFEC09TurretScript BEGIN ONADD Player FFEC09TurretA.addToFaction playerFaction 1 FFEC09TurretA.stopCombat FFEC09TurretB.addToFaction playerFaction 1 FFEC09TurretB.stopCombat FFEC09TurretC.addToFaction playerFaction 1 FFEC09TurretC.stopCombat FFEC09TurretD.addToFaction playerFaction 1 FFEC09TurretD.stopCombat END Begin OnDrop player FFEC09TurretA.removeFromFaction playerFaction FFEC09TurretA.stopCombat FFEC09TurretB.removeFromFaction playerFaction FFEC09TurretB.stopCombat FFEC09TurretC.removeFromFaction playerFaction FFEC09TurretC.stopCombat FFEC09TurretD.removeFromFaction playerFaction FFEC09TurretD.stopCombat End




There are no beautiful surfaces without a terrible depth

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

Sitemap  Media  Contact Discord