Scriptname ReferenceAlias extends Alias Hidden import ObjectReference ; Add an inventory event filter to this alias. Item added/removed events matching the ; specified form (or in the specified form list) will now be let through. Function AddInventoryEventFilter(Form akFilter) native ; Clears the alias - fails on non-optional aliases Function Clear() native ; Get the object reference this alias refers to ObjectReference Function GetReference() native ; Forces this alias to use the specified reference Function ForceRefTo(ObjectReference akNewRef) native ; Remove all inventory event filters from this alias - all item added/removed events will now be received Function RemoveAllInventoryEventFilters() native ; Remove an inventory event filter from this alias. Item added/removed events matching the ; specified form (or in the specified form list) will no longer be let through. Function RemoveInventoryEventFilter(Form akFilter) native ; SJML -- tries to force a reference into the alias, but only if it's already empty. ; returns true if the alias now holds the passed reference, false if it was already filled. bool Function ForceRefIfEmpty(ObjectReference akNewRef) if (GetReference()) return False else ForceRefTo(akNewRef) return True endif EndFunction ; Autocast to Actor is applicable Actor Function GetActorReference() return GetReference() as Actor endFunction ; Convenience function ObjectReference Function GetRef() return GetReference() endFunction ; Convenience fucntion Actor Function GetActorRef() return GetActorReference() endFunction ; Convenience function - jduvall bool Function TryToAddToFaction(Faction FactionToAddTo) Actor ActorRef = GetActorReference() if ActorRef ActorRef.AddToFaction(FactionToAddTo) Return True EndIf Return False EndFunction ; Convenience function - jduvall bool Function TryToRemoveFromFaction(Faction FactionToRemoveFrom) Actor ActorRef = GetActorReference() if ActorRef ActorRef.RemoveFromFaction(FactionToRemoveFrom) Return True EndIf Return False EndFunction ; Convenience function - jduvall bool Function TryToStopCombat() Actor ActorRef = GetActorReference() if ActorRef ActorRef.StopCombat() Return True EndIf Return False EndFunction ; Convenience function - jduvall bool Function TryToDisable() ObjectReference Ref = GetReference() if Ref Ref.Disable() Return True EndIf Return False EndFunction ; Convenience function - wshen bool Function TryToDisableNoWait() ObjectReference Ref = GetReference() if Ref Ref.DisableNoWait() Return True EndIf Return False EndFunction ; Convenience function - jduvall bool Function TryToEnable() ObjectReference Ref = GetReference() if Ref Ref.Enable() Return True EndIf Return False EndFunction ; Convenience function - wshen bool Function TryToEnableNoWait() ObjectReference Ref = GetReference() if Ref Ref.EnableNoWait() Return True EndIf Return False EndFunction ; Convenience function - jduvall bool Function TryToEvaluatePackage() Actor ActorRef = GetActorReference() if ActorRef ActorRef.EvaluatePackage() Return True EndIf Return False EndFunction ; Convenience function - jduvall bool Function TryToKill() Actor ActorRef = GetActorReference() if ActorRef ActorRef.Kill() Return True EndIf Return False EndFunction ; Convenience function - jduvall bool Function TryToMoveTo(ObjectReference RefToMoveTo) ObjectReference Ref = GetReference() if Ref Ref.MoveTo(RefToMoveTo) Return True EndIf Return False EndFunction ; Convenience function - jduvall bool Function TryToReset() ObjectReference Ref = GetReference() if Ref Ref.Reset() Return True EndIf Return False EndFunction ; Convenience function - sjml bool Function TryToClear() if (GetReference()) Clear() return True endif return False EndFunction ; The following events are received if the object the alias points at receives the events: ; Event received when this reference is activated Event OnActivate(ObjectReference akActionRef) EndEvent ; Event received when this object has moved to an attached cell from a detached one Event OnAttachedToCell() EndEvent ; Event received when this object's parent cell is attached Event OnCellAttach() EndEvent ; Event received when this object's parent cell is detached Event OnCellDetach() EndEvent ; Event received when every object in this object's parent cell is loaded (TODO: Find restrictions) Event OnCellLoad() EndEvent ; Event received when this object is closed Event OnClose(ObjectReference akActionRef) EndEvent ; Event received when this object enters, exits, or changes containers Event OnContainerChanged(ObjectReference akNewContainer, ObjectReference akOldContainer) EndEvent ; Event received when this reference's destruction stage has changed Event OnDestructionStageChanged(int aiOldStage, int aiCurrentStage) EndEvent ; Event recieved when this object moves to a detached cell from an attached one Event OnDetachedFromCell() EndEvent ; Event received when this object is equipped by an actor Event OnEquipped(Actor akActor) EndEvent ; Event received when this object is grabbed by the player Event OnGrab() EndEvent ; Event received when this object is hit by a source (weapon, spell, explosion) or projectile attack Event OnHit(ObjectReference akAggressor, Form akSource, Projectile akProjectile, bool abPowerAttack, bool abSneakAttack, bool abBashAttack, bool abHitBlocked) EndEvent ; Event received when an item is added to this object's inventory. If the item is a persistant reference, akItemReference will ; point at it - otherwise the parameter will be None Event OnItemAdded(Form akBaseItem, int aiItemCount, ObjectReference akItemReference, ObjectReference akSourceContainer) EndEvent ; Event received when an item is removed from this object's inventory. If the item is a persistant reference, akItemReference ; will point at it - otherwise the parameter will be None Event OnItemRemoved(Form akBaseItem, int aiItemCount, ObjectReference akItemReference, ObjectReference akDestContainer) EndEvent ; Event recieved when this object is completely loaded - will be fired every time this object is loaded Event OnLoad() EndEvent ; Event received when the lock on this object changes Event OnLockStateChanged() EndEvent ; Event received when a magic affect is being applied to this object Event OnMagicEffectApply(ObjectReference akCaster, MagicEffect akEffect) EndEvent ; Event received when this object is opened Event OnOpen(ObjectReference akActionRef) EndEvent ; Event received when this object, if a book, is read Event OnRead() EndEvent ; Event received when this object is released by the player Event OnRelease() EndEvent ; Event received when this reference is reset Event OnReset() EndEvent ; Event received when this reference is sold by an actor Event OnSell(Actor akSeller) EndEvent ; Event received when a spell is cast by this object Event OnSpellCast(Form akSpell) EndEvent ; Event received when translation is complete (from a call to TranslateTo) Event OnTranslationComplete() EndEvent ; Event received when translation is aborted (from a call to StopTranslateTo) Event OnTranslationFailed() EndEvent ; Event recieved when this reference hits a target Event OnTrapHit(ObjectReference akTarget, float afXVel, float afYVel, float afZVel, float afXPos, float afYPos, float afZPos, \ int aeMaterial, bool abInitialHit, int aeMotionType) EndEvent ; Event recieved when this starts hitting a target Event OnTrapHitStart(ObjectReference akTarget, float afXVel, float afYVel, float afZVel, float afXPos, float afYPos, float afZPos, \ int aeMaterial, bool abInitialHit, int aeMotionType) EndEvent ; Event recieved when this stops hitting a target Event OnTrapHitStop(ObjectReference akTarget) EndEvent ; Event received when a this trigger is tripped Event OnTrigger(ObjectReference akActionRef) EndEvent ; Event received when this trigger volume is entered Event OnTriggerEnter(ObjectReference akActionRef) EndEvent ; Event received when this trigger volume is left Event OnTriggerLeave(ObjectReference akActionRef) EndEvent ; Event received when this object is unequipped by an actor Event OnUnequipped(Actor akActor) EndEvent ; Event recieved when this object is being unloaded - will be fired every time this object is unloaded Event OnUnload() EndEvent ; Event that is triggered when this actor's combat state against the target changes ; State is as follows: ; 0 - not in combat ; 1 - in combat ; 2 - searching Event OnCombatStateChanged(Actor akTarget, int aeCombatState) EndEvent ; Event that is triggered when this actor sits in the furniture Event OnSit(ObjectReference akFurniture) EndEvent ; Event that is triggered when this actor leaves the furniture Event OnGetUp(ObjectReference akFurniture) EndEvent ; Event that is triggered when this actor finishes dying (only if this alias points at an actor) Event OnDeath(Actor akKiller) EndEvent ; Event that is triggered when this actor begins dying (only if this alias points at an actor) Event OnDying(Actor akKiller) EndEvent ; Event received when an actor enters bleedout. (only if this alias points at an actor) Event OnEnterBleedout() EndEvent ; Event that is triggered when this actor changes from one location to another (only if this alias points at an actor) Event OnLocationChange(Location akOldLoc, Location akNewLoc) EndEvent ; Received when the lycanthropy state of this actor changes (when SendLycanthropyStateChanged is called) Event OnLycanthropyStateChanged(bool abIsWerewolf) EndEvent ; Event received when this actor equips something - akReference may be None if object is not persistent (only if this alias points at an actor) Event OnObjectEquipped(Form akBaseObject, ObjectReference akReference) EndEvent ; Event received when this actor unequips something - akReference may be None if object is not persistent (only if this alias points at an actor) Event OnObjectUnequipped(Form akBaseObject, ObjectReference akReference) EndEvent ; Event received when this actor starts a new package (only if this alias points at an actor) Event OnPackageStart(Package akNewPackage) EndEvent ; Event received when this actor's package changes (only if this alias points at an actor) Event OnPackageChange(Package akOldPackage) EndEvent ; Event received when this actor's package ends (only if this alias points at an actor) Event OnPackageEnd(Package akOldPackage) EndEvent ; Event received when this actor finishes changing its race Event OnRaceSwitchComplete() EndEvent ; Event received when this object's Ward is hit by a spell Event OnWardHit(ObjectReference akCaster, Spell akSpell, int aiStatus) EndEvent ; Received when the player fires a bow. akWeapon will be a bow, akAmmo is the ammo or None, ; afPower will be 1.0 for a full-power shot, less for a dud, and abSunGazing will be true if the player is looking at the sun. Event OnPlayerBowShot(Weapon akWeapon, Ammo akAmmo, float afPower, bool abSunGazing) EndEvent ; Received when the player finishes fast travel, gives the duration of game time the travel took Event OnPlayerFastTravelEnd(float afTravelGameTimeHours) EndEvent ; Received immediately after the player has loaded a save game. A good time to check for additional content. Event OnPlayerLoadGame() EndEvent ; Received when StartVampireFeed is called on an actor Event OnVampireFeed(Actor akTarget) EndEvent ; Received when the vampirism state of this actor changes (when SendVampirismStateChanged is called) Event OnVampirismStateChanged(bool abIsVampire) EndEvent