4
Fork 0
You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
 
 
 

51 lines
1.4 KiB

Scriptname DefaultNoFollowDoorScript extends ObjectReference
{block activation by non-quest NPCs to keep followers out}
Event OnInit()
BlockActivation()
EndEvent
Event OnActivate(ObjectReference akActionRef)
; only do this check if activation is blocked
if IsActivationBlocked() == false
; debug.trace(self + "OnActivate " + akActionRef + " - not blocked, normal activation")
return
endif
if (akActionRef == (Game.GetForm(0x14) as Actor))
; debug.trace(self + "OnActivate - player, allow activation")
Activate(akActionRef, true)
else
Actor actorRef = akActionRef as Actor
; ;debug.trace(self + "OnActivate - " + actorRef)
if actorRef && (actorRef.isInFaction( AllowDoorFaction01) || actorRef.isInFaction(AllowDoorFaction02) || actorRef.isInFaction(AllowDoorFaction03) || (myQuest && myQuest.IsStageDone(myQuestStage) == 1))
; debug.trace(self + "OnActivate - " + actorRef + ": allow activation")
Activate(akActionRef, true)
else
; debug.trace(self + "OnActivate - " + actorRef + ": activation BLOCKED")
If DoOnce == 0
FollowerBlockedMessage.Show()
DoOnce = 1
EndIf
endif
endif
EndEvent
; factions that are allowed to use the door
Faction Property AllowDoorFaction01 Auto
Faction Property AllowDoorFaction02 Auto
Faction Property AllowDoorFaction03 Auto
Quest Property myQuest Auto
Int Property myQuestStage Auto
Message Property FollowerBlockedMessage Auto
Int Property DoOnce Auto