ScriptName defaultActivateSelf extends objectReference {Default script that simply activates itself when player enters trigger} import game import debug bool property doOnce = TRUE auto {Fire only once? Default: TRUE} bool property disableWhenDone = FALSE auto {Disable after activating? Default: FALSE} bool property playerOnly = TRUE auto {Only Player Triggers? Default: TRUE} bool property playerAndAlliesOnly = False Auto {Only player or Allies/Followers/Summons trigger? Overrides playerOnly if that's true as well. Default: TRUE} int property minLevel auto {Optional: If set, player must be >= minLevel to activate this} Actor property PlayerRef Auto Faction property CurrentFollowerFaction Auto Package property Follow Auto Package property FollowerPackageTemplate Auto ;************************************ auto State waiting Event onTriggerEnter(objectReference triggerRef) If PlayerRef == None PlayerRef = Game.GetPlayer() EndIf Actor actorRef = triggerRef as Actor ; check whether we care if the player is activating if(actorRef == PlayerRef || (playerAndAlliesOnly && IsPlayerAlly(actorRef)) || (playerOnly == False && playerAndAlliesOnly == False)) ; also check level (if we even care about that) if(minLevel <= 1 || PlayerRef.getLevel() >= minLevel) if doOnce == TRUE gotoState("allDone") endif if disableWhenDone Self.Disable() EndIf ; per the description of this script, pass self as the activating ref activate(self) endif endif endEvent endState bool Function IsPlayerAlly(Actor actorRef) ;Short-circuit this if this isn't an Actor at all, or if it's hostile to the player. if (actorRef == None || actorRef.GetFactionReaction(PlayerRef) == 1) return False EndIf ;Is this a summon or one of the various types of player followers? If actorRef.IsCommandedActor() || (actorRef.GetRelationshipRank(PlayerRef) > 0) || (CurrentFollowerFaction && actorRef.IsInFaction(CurrentFollowerFaction)) || actorRef.IsPlayerTeammate() Return True EndIf Package curPackageTemplate = actorRef.GetCurrentPackage().GetTemplate() Return ((curPackageTemplate == Follow) || (curPackageTemplate == FollowerPackageTemplate)) EndFunction ;************************************ State allDone ;do nothing endState ;************************************