Jump to content

Setting an enemy faction as ally


Recommended Posts

Suppose:

 

1) Player has been banished/expelled from the Institute or Brotherhood of Steel,

 

2) I want to make player able to visit the Institute or Prydwen again on friendly terms.

 

3) The player is going to talk to a new NPC to regain access, and access (e.g. to the Institute) will be granted after the dialogue with that NPC finishes,

 

Is the script to add to the dialogue as simple as:

 

NameOfFaction.SetPlayerEnemy(false)

 

where NameOfFaction is a property defined in the script as (in this case) either the BOS or Institute.

 

Or is there something more complicated that is necessary to get the player back on good terms with the previously disgruntled faction?

 

This is for a quest where I want the player to be able to peacefully access the Institute or Prydwen even if they've already been banished. Appreciate any suggestions!

 

 

Link to comment
Share on other sites

I dont have the CK open at the moment, but I believe it is more complicated than a simple faction change. If memory serves, there are other variables at play - something is tingling my spidey-sense to say it may be called something along the lines of 'Institute Blocked' or some such.

 

Youd really need to troll through the quest and attached scripts / fragments to see what changes are made when the player is ejected from the Institute so you can know how to unspool those changes...

Link to comment
Share on other sites

Heh, I am just working on a similar piece to create a Minutemen Kickout capability, you need to look at;

 

MQ00 (passive switchboard)

Quest BosKickOut & attached script

QuestInstKickOut & attached script

Quest RRKickOut & attached script

 

The check the factions and global flags that are set and need reversing.

Link to comment
Share on other sites

Awesome, thanks!

 

For the Brotherhood of Steel part, the quest "BoSKickout" has a BoSKickoutScript with 514 lines that controls things like behavior of Danse, Rhys, Dr. Li, Boston Airport Workshop, Cambridge Police Station, shutting down individual BoS quests, advancing the main quest, etc.

 

For purpose of re-accessing the Prydwen, items the BoSKickout script sets that would likely need to be reversed appear to include:

;Set the master Kickout Global - define this property as a global variable called PlayerBoS_KickedOut
PlayerBoS_KickedOut.SetValue(1)

; Set Brotherhood of Steel as Enemy
Game.GetPlayer().RemoveFromFaction(BrotherhoodofSteelFaction)
BrotherhoodofSteelFaction.SetPlayerEnemy()
BrotherhoodofSteelFaction.SetEnemy(PlayerFaction)

 

;Disable connector doors (BoS Doors is an object reference)
BoSDoors.Disable()

 

;Set the dialogue on the Prydwen (BoSDialoguePrydwen quest)

if BoSDialogue.IsRunning() == 1
debug.trace("BoSDialogue Shutdown")
BoSDialogue.SetStage(355)
endif

;Shutdown VFT - Vertibird fast travel quest, define this property as a global variable called BoSFastTravelCanUse
BoSFastTravelCanUse.SetValue(0)

 

if VFT.IsRunning() == 1
debug.trace("VFT Shutdown")
VFT.SetStage(355)

 

For the Institute part, the InstKickout Quest has an InstKickoutQuestScript, the main items from which to be reversed are likely:

 

Game.GetPlayer().RemoveFromFaction(InstituteFaction)
InstituteFaction.SetEnemy(PlayerFaction)

;if player is outside Institute, re-route his fast travel location

InstituteMapMarker.SetLinkedRef(InstituteStartRef)
InstituteMapMarker.AddtoMap(1)

;and lock off the Relay room so he can't wander

InstituteRelayDoorRef.SetOpen(False)
InstituteRelayDoorRef.SetLockLevel(255)
InstituteRelayDoorRef.Lock()

 

InputEnableLayer InstKickOutLayer

Function ControlToggle(int togglevalue)

if togglevalue == 0

InstKickOutLayer = InputEnablelayer.Create()
InstKickOutLayer.EnableFastTravel(False)


elseif togglevalue == 1

InstKickOutLayer.EnableFastTravel(True)
InstKickOutLayer.Delete()

endif

EndFunction

Link to comment
Share on other sites

  • Recently Browsing   0 members

    • No registered users viewing this page.
×
×
  • Create New...