enderalse/source/scripts/objectreference.psc

840 lines
34 KiB
Plaintext

Scriptname ObjectReference extends Form Hidden
bool FUNCTION rampRumble(float power = 0.5, float duration = 0.25, float falloff = 1600.0)
; Function to shake cam/controller based on distance from player
; should always be called on the source of the rumble,
; as final intensity is relevant to player
if power > 1.0 || power <= 0
; debug.traceStack(self + " called rampRumble() but parameter 'power' was invalid. Must be a non-zero float less than 1.0",1)
; throw the warning, but don't return false - value gets clamped anyway
endif
float playerDist = game.getplayer().getDistance(self)
; ignore if the player is too far away
if playerDist < falloff
float intensity = (1 - (playerDist / falloff))
; ramp actual intensity down based on parameter value
intensity = intensity*power
if intensity > 1.0
; clamp to prevent invalid values
; debug.traceStack(self + " called for too much controller/camera shake. Clamped to 1.0", 0)
intensity = 1.0
elseif intensity <= 0
; clamp to prevent invalid values
; debug.traceStack(self + " called for too little controller/camera shake", 0)
intensity = 0
return false
endif
game.shakeCamera(game.getPlayer(), intensity)
game.shakeController(intensity, intensity, duration)
return true
else
; debug.traceStack(self + "called for rampedRumble(), but player is too far away", 0)
return False
endif
endFUNCTION
; Function to know if I'm near the player (whether I can be safely enabled or disabled)
bool Function IsNearPlayer()
Actor player = Game.GetPlayer()
Cell targetCell = self.GetParentCell()
Cell playerCell = player.GetParentCell()
if (targetCell != playerCell)
; player and target are in different cells
if (targetCell && targetCell.IsInterior() || playerCell && playerCell.IsInterior())
; in different cells and at least one is an interior
; -- we can safely enable or disable
return false
else
; both in an exterior -- no means of testing
; worldspace at the moment, so this will do.
if (player.GetDistance(self) > 3000)
; pretty darned far away -- safe
return false
else
; too close for comfort
return true
endif
endif
else
; in the same cell -- err on the side of caution
return true
endif
endFunction
;jduvall
bool Function IsInInterior()
{Returns !IsInExterior()}
Cell parentCell = GetParentCell()
Return parentCell && parentCell.IsInterior()
EndFunction
;kkuhlmann:
bool function MoveToIfUnloaded(ObjectReference akTarget, float afXOffset = 0.0, float afYOffset = 0.0, float afZOffset = 0.0)
{Calls MoveTo if the calling ObjectReference is currently unloaded. Doesn't do anything if it IS loaded. No waiting or while loops. Returns true if it does the moveto}
if !Is3DLoaded()
MoveTo(akTarget, afXOffset, afYOffset, afZOffset)
return true
else
return false
endif
endFunction
;jduvall:
function MoveToWhenUnloaded(ObjectReference akTarget, float afXOffset = 0.0, float afYOffset = 0.0, float afZOffset = 0.0)
{DEPRECATED: DO NOT USE. Calls MoveTo if both the calling ObjectReference and the akTarget ObjectReference have current locations that are not loaded.}
while self.GetCurrentLocation().IsLoaded() || akTarget.GetCurrentLocation().IsLoaded()
;do nothing
; debug.trace(self + "MoveToWhenUnloaded() waiting for current location and target location to be unloaded before moving. If called by a quest stage fragment, this may cause that quest stage to not complete until this function finishes (and if it's a startup stage, the quest will not report itself as running until the stage finishes.).", 1)
Utility.Wait(5) ;when this function is threaded we can increase this wait time... I set it lower for testing purposes so it reevaluates faster when I need to purge cell buffers in the Civil War when calling moveto on the player between Civil War campaigns
EndWhile
self.MoveTo(akTarget, afXOffset, afYOffset, afZOffset)
EndFunction
;jduvall
Function DeleteWhenAble()
{This will become a native function... it will wait until the object is not persisting, then delete itself.}
While GetParentCell() && GetParentCell().IsAttached()
;do nothing
; debug.trace(self + "DeleteWhenAble() waiting for current location to be unloaded before deleting. If called by a quest stage fragment, this may cause that quest stage to not complete until this function finishes (and if it's a startup stage, the quest will not report itself as running until the stage finishes.).", 1)
Utility.Wait(5) ;when this function is threaded we can increase this wait time... I set it lower for testing purposes so it reevaluates faster when I need to purge cell buffers in the Civil War when calling moveto on the player between Civil War campaigns
EndWhile
Delete()
EndFunction
;jduvall
Function AddKeyIfNeeded(ObjectReference ObjectWithNeededKey)
{Should only be called by ObjectReferences that have/are containers (ie Containers and Actors). Checks to see if self has the key to ObjectWithNeededKey, and if not, creates a copy of the key and puts it in self.}
key NeededKey = ObjectWithNeededKey.GetKey()
if NeededKey != None
if GetItemCount(NeededKey) == 0
AddItem(NeededKey)
EndIf
EndIf
EndFunction
; Property to obtain the current X position of the object
float Property X
float Function get()
return GetPositionX()
EndFunction
EndProperty
; Property to obtain the current Y position of the object
float Property Y
float Function get()
return GetPositionY()
EndFunction
EndProperty
; Property to obtain the current Z position of the object
float Property Z
float Function get()
return GetPositionZ()
EndFunction
EndProperty
; Have akActivator activate this reference. If abDefaultProcessingOnly is true then any block will be bypassed
; and no OnActivate event will be sent. The function returns true if default processing ran, and succeeded. If
; default processing has been blocked, will always return false.
bool Function Activate(ObjectReference akActivator, bool abDefaultProcessingOnly = false) native
; Sets up a dependent animated object
; This function should be used only with a coder supervision. It is left undocumented because it can cause dangling pointers as well as very broken functionality
; for the dependent object if used improperly.
bool Function AddDependentAnimatedObjectReference( ObjectReference akDependent ) native
; Add an inventory event filter to this reference. Item added/removed events matching the
; specified form (or in the specified form list) will now be let through.
Function AddInventoryEventFilter(Form akFilter) native
; Adds the specified base object or object reference to this object reference's container/inventory
; Note that you cannot add more then one copy of a reference to a container (a warning will be printed if you try)
Function AddItem(Form akItemToAdd, int aiCount = 1, bool abSilent = false) native
; Adds this reference (which is a map marker) to the map, optionally making it available for fast travel
Function AddToMap(bool abAllowFastTravel = false) native
; Apply an impulse to this reference
Function ApplyHavokImpulse(float afX, float afY, float afZ, float afMagnitude) native
; Turns on and off blocking of normal activation - OnActivate events will still be sent
Function BlockActivation(bool abBlocked = true) native
; Calculate's this references encounter level based on the requested difficulty level
; 0 - Easy
; 1 - Medium
; 2 - Hard
; 3 - Very Hard
; 4 - None
int Function CalculateEncounterLevel(int aiDifficulty = 4) native
; Can the map marker be fast traveled to?
bool Function CanFastTravelToMarker() native
; Clears all effects of destruction from this object
Function ClearDestruction() native
; Create a detection event at this reference, with the specified owner. Sound level is between 0 and 100
Function CreateDetectionEvent(Actor akOwner, int aiSoundLevel = 0 ) native
; Damages this object and advances the destruction stage - does not return until the object is damaged
Function DamageObject(float afDamage) native
; Delets this object
Function Delete() native
; Disables this object - fading out if requested
Function Disable(bool abFadeOut = false) native
; Disables this object - fading out if requested. Does NOT wait for the fade or disable to finish
Function DisableNoWait(bool abFadeOut = false) native
; Drops the specified object from this object's inventory
ObjectReference Function DropObject(Form akObject, int aiCount = 1) native
; Enables this object - fading in if requested
Function Enable(bool abFadeIn = false) native
; Enables the ability to fast travel to this marker - or disables it. Note that if you disable
; fast travel the player will see "You haven't discovered this location" as an error message
Function EnableFastTravel(bool abEnable = true) native
; Enables this object - fading in if requested. Does NOT wait for the fade or enable to finish
Function EnableNoWait(bool abFadeIn = false) native
; Forcibly adds / removes the ragdoll for a reference to the world
Function ForceAddRagdollToWorld() native
Function ForceRemoveRagdollFromWorld() native
; Gets the actor that owns this object (or None if not owned by an Actor)
ActorBase Function GetActorOwner() native
; Get the current X angle of this object
float Function GetAngleX() native
; Get the current Y angle of this object
float Function GetAngleY() native
; Get the current Z angle of this object
float Function GetAngleZ() native
; Get a variable from the reference's animation graph (if applicable). Bool version.
bool Function GetAnimationVariableBool(string arVariableName) native
; Get a variable from the reference's animation graph (if applicable). Int version.
int Function GetAnimationVariableInt(string arVariableName) native
; Get a variable from the reference's animation graph (if applicable). Float version.
float Function GetAnimationVariableFloat(string arVariableName) native
; Returns the base object this reference represents
Form Function GetBaseObject() native
; Returns the object's current destruction stage
int Function GetCurrentDestructionStage() native
; Returns this reference's current location
Location Function GetCurrentLocation() native
; Returns the scene this reference is currently in - if any
Scene Function GetCurrentScene() native
; Calculates the distance between this reference and another - both must either be in the same interior, or same worldspace
float Function GetDistance(ObjectReference akOther) native
; Returns this reference's editor location
Location Function GetEditorLocation() native
; Gets the faction that owns this object (or None if not owned by a Faction)
Faction Function GetFactionOwner() native
; Gets the angle between this object's heading and the other object in degrees - in the range from -180 to 180
float Function GetHeadingAngle(ObjectReference akOther) native
; Get the current height of the object
float Function GetHeight() native
; Returns how many of the specified item is in this object reference's inventory
int Function GetItemCount(Form akItem) native
; Returns the smithed health of this object reference (1.0 == 100%)
float Function GetItemHealthPercent() native
; Returns the key base object that will unlock this object
Key Function GetKey() native
; Get the current length of the object
float Function GetLength() native
; Get our linked reference
ObjectReference Function GetLinkedRef(Keyword apKeyword = NONE) native
; Get the level of the lock on this object
int Function GetLockLevel() native
;jtucker, jduvall
;This function counts the number of linked refs that are in a linked Ref chain (ie object is linked to A, A is linked to B, etc. this then counts all the linked refs.)
;Often used in conjunction with GetNthLinkedRef()
;*** WARNING: Having a link ref chain that at any point loops back on itself and calling this function will result in very bad things. Don't do that!***
int Function countLinkedRefChain(keyword apKeyword = None, int maxExpectedLinkedRefs = 100)
;Don't use this on a loop of linked refs.
ObjectReference CurrentLink = self
ObjectReference NewLink
int NumLinkedRefs = 0
while(currentLink) && NumLinkedRefs <= maxExpectedLinkedRefs
NewLink = currentLink.getLinkedRef(apKeyword)
if NewLink != self
currentLink = NewLink
NumLinkedRefs = NumLinkedRefs + 1
Else
currentLink = None
; debug.trace( self + "countLinkedRefs() found itself. This suggests it was linked back to itself. This will create an infinite loop, so we are killing the function now. NumLinkedRefs =" + NumLinkedRefs)
EndIf
endWhile
if NumLinkedRefs >= maxExpectedLinkedRefs
; debug.trace( self + "countLinkedRefs() bailing out early because it found more linked refs than maxExpectedLinkRefs (suggesting an infinite loop). LinkedRefs found:" + NumLinkedRefs + ", maxExpectedLinkedRefs:" + maxExpectedLinkedRefs)
EndIf
return NumLinkedRefs
endFunction
; Returns the Nth linked ref from this reference (0 = self, 1 = GetLinkedRef, 2 = GetLinkedRef.GetLinkedRef, etc)
ObjectReference Function GetNthLinkedRef(int aiLinkedRef) native
; Enables all of the references that are linked, in a chain, to this one.
Function EnableLinkChain(Keyword apKeyword = None)
ObjectReference CurrentLink = GetLinkedRef(apKeyword)
While CurrentLink
CurrentLink.Enable()
CurrentLink = CurrentLink.GetLinkedRef(apKeyword)
endWhile
endFunction
; Disables all of the references that are linked, in a chain, to this one.
Function DisableLinkChain(Keyword apKeyword = None, bool abFadeOut = false)
ObjectReference CurrentLink = GetLinkedRef(apKeyword)
While CurrentLink
CurrentLink.Disable(abFadeOut)
CurrentLink = CurrentLink.GetLinkedRef(apKeyword)
endWhile
endFunction
; Get this object's mass
float Function GetMass() native
; Gets the open state of this object. Which can be one of the following:
; 0 - None
; 1 - Open
; 2 - Opening
; 3 - Closed
; 4 - Closing
int Function GetOpenState() native
; Gets the cell this object is in
Cell Function GetParentCell() native
; Get the current X position of the object
float Function GetPositionX() native
; Get the current Y position of the object
float Function GetPositionY() native
; Get the current Z position of the object
float Function GetPositionZ() native
; Get the current scale of the object
float Function GetScale() native
; Get the number of objects inside this trigger (throws warning if not a triggger)
int Function GetTriggerObjectCount() native
; Gets the voice type for this reference. Will return None if not an actor or a talking activator
VoiceType Function GetVoiceType() native
; Get the current width of the object
float Function GetWidth() native
; Get this objects worldspace
WorldSpace Function GetWorldSpace() native
; Returns self cast as an actor
actor Function GetSelfAsActor()
return self as Actor
endFunction
; Returns if this reference has an active effect coming from a magic effect with the specified keyword attached
bool Function HasEffectKeyword(Keyword akKeyword) native
; Returns whether the reference has the given node
bool Function HasNode(string asNodeName) native
; Returns if this reference has the specified location ref type
bool Function HasRefType(LocationRefType akRefType) native
; Flags this reference as ignoring (or not ignoring) friendly hits
Function IgnoreFriendlyHits(bool abIgnore = true) native
; Interrupts any spell-casting this object may be doing
Function InterruptCast() native
; Checks to see if the passed in reference is the activate child of this one
bool Function IsActivateChild(ObjectReference akChild) native
; Checks to see if activation is currently blocked on this object
bool Function IsActivationBlocked() native
; Returns if the 3d for this object is loaded or not
bool Function Is3DLoaded() native
; Is this object currently flagged for delete?
bool Function IsDeleted() native
; Is this object currently disabled?
bool Function IsDisabled() native
; Because Shane got tired of remembering which way to call this
bool Function IsEnabled()
return !IsDisabled()
EndFunction
; Is any marker on this furniture in use?
bool Function IsFurnitureInUse(bool abIgnoreReserved = false) native
; Is a particular marker on this furniture in use?
bool Function IsFurnitureMarkerInUse(int aiMarker, bool abIgnoreReserved = false) native
; Is this object ignoring friendly hits?
bool Function IsIgnoringFriendlyHits() native
; Is this actor or talking activator currently talking to the player?
bool Function IsInDialogueWithPlayer() native
; Is the lock on this object broken?
bool Function IsLockBroken() native
; Is the lock on this object locked?
bool Function IsLocked() native
; Is the map marker visible?
bool Function IsMapMarkerVisible() native
; Executes a knock effect to an area
Function KnockAreaEffect(float afMagnitude, float afRadius) native
; Lock/unlock this object. If told to lock it, it will add a lock if it doesn't have one. If locked/unlocked as the owner on a door,
; the adjoining cell will be made public/private as appropriate
Function Lock(bool abLock = true, bool abAsOwner = false) native
; Moves this object to the position of the specified object, with an offset, and optionally matching its rotation
Function MoveTo(ObjectReference akTarget, float afXOffset = 0.0, float afYOffset = 0.0, float afZOffset = 0.0, bool abMatchRotation = true) native
; Moves this object to the position (and rotation) of the specified object's interaction position
Function MoveToInteractionLocation(ObjectReference akTarget) native
; Moves this object to its editor location
Function MoveToMyEditorLocation() native
; Moves this object to the position (and rotation) of the specified node on the specified object's 3D
Function MoveToNode(ObjectReference akTarget, string asNodeName) native
; Create x copies of the passed in form (forcing them to persist if desired) and place them at our location, returning the last object created
ObjectReference Function PlaceAtMe(Form akFormToPlace, int aiCount = 1, bool abForcePersist = false, bool abInitiallyDisabled = false) native
; Create an actor at this object's location. Level mod is one of the following:
; 0 - Easy
; 1 - Medium
; 2 - Hard
; 3 - Boss
; 4 - None
Actor Function PlaceActorAtMe(ActorBase akActorToPlace, int aiLevelMod = 4, EncounterZone akZone = None) native
; Start the specified animation playing - returns true if it succeeds
bool Function PlayAnimation(string asAnimation) native
; Start the specified animation playing and wait for the specified event - returns true if succeeds
bool Function PlayAnimationAndWait(string asAnimation, string asEventName) native
; Start the specified Gamebryo animation playing - returns true if it succeeds
bool Function PlayGamebryoAnimation(string asAnimation, bool abStartOver = false, float afEaseInTime = 0.0) native
; Play the specified impact effect - returns true if it succeeds
bool Function PlayImpactEffect(ImpactDataSet akImpactEffect, string asNodeName = "", float afPickDirX = 0.0, float afPickDirY = 0.0, float afPickDirZ = -1.0, float afPickLength = 512.0, bool abApplyNodeRotation = false, bool abUseNodeLocalRotation = false) native
; Play two animations at once - one on this object, one on another object
bool Function PlaySyncedAnimationSS(string asAnimation1, ObjectReference akObj2, string asAnimation2) native
; Play two animations at once - one on this object, one on another object - and wait for both
bool Function PlaySyncedAnimationAndWaitSS(string asAnimation1, string asEvent1, ObjectReference akObj2, string asAnimation2, string asEvent2) native
; Play a terrain effect that is attached to the specified bone of this object.
Function PlayTerrainEffect(string asEffectModelName, string asAttachBoneName) native
; Tells this object to process a trap hitting it
Function ProcessTrapHit(ObjectReference akTrap, float afDamage, float afPushback, float afXVel, float afYVel, float afZVel, float afXPos, float afYPos, float afZPos, int aeMaterial, float afStagger) native
; Pushes the passed-in actor away from this object, using the passed in knockback force to determine the speed
Function PushActorAway(Actor akActorToPush, float aiKnockbackForce) native
; Remove all inventory event filters from this reference - all item added/removed events will now be received
Function RemoveAllInventoryEventFilters() native
; Removes all items from this container, transferring it to the other object if passed
Function RemoveAllItems(ObjectReference akTransferTo = None, bool abKeepOwnership = false, bool abRemoveQuestItems = false) native
; Remove an inventory event filter from this reference. 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
; Removes the specified item from this object reference's inventory
Function RemoveItem(Form akItemToRemove, int aiCount = 1, bool abSilent = false, ObjectReference akOtherContainer = None) native
; Removes a previously added dependent object
; This function should be used only with a coder supervision. It is left undocumented because it can cause dangling pointers as well as very broken functionality
; for the dependent object if used improperly.
bool Function RemoveDependentAnimatedObjectReference( ObjectReference akDependent ) native
; Resets this object, optional place the object at the new target
Function Reset(ObjectReference akTarget = None) native
; Has this object "say" the specified topic, as if spoken by the specified actor (if one is
; provided, and potentially "speaking" in the player's head.
Function Say(Topic akTopicToSay, Actor akActorToSpeakAs = None, bool abSpeakInPlayersHead = false) native
; Has this object behave as if the specified actor attempted to steal it
Function SendStealAlarm(Actor akThief) native
; Sets this object's actor cause to the specified actor
Function SetActorCause(Actor akActor) native
; Sets this object's owner to the specified actor base - None means to remove ownership
Function SetActorOwner(ActorBase akActorBase) native
; Set the orientation of the object (angles are in degrees)
Function SetAngle(float afXAngle, float afYAngle, float afZAngle) native
; Set a variable on the reference's animation graph (if applicable). Bool version.
Function SetAnimationVariableBool(string arVariableName, bool abNewValue) native
; Set a variable on the reference's animation graph (if applicable). Int version.
Function SetAnimationVariableInt(string arVariableName, int aiNewValue) native
; Set a variable on the reference's animation graph (if applicable). Float version.
Function SetAnimationVariableFloat(string arVariableName, float afNewValue) native
; Sets this object as destroyed or not
Function SetDestroyed(bool abDestroyed = true) native
; Sets this object's owner to the specified faction
Function SetFactionOwner(Faction akFaction) native
; Sets the lock level on this object. Will add an unlocked lock to it if it doesn't have one
Function SetLockLevel(int aiLockLevel) native
; Sets the motion type of the reference
; aeMotionType: The type of motion (see properties at end of file)
; abAllowActivate: When setting to a dynamic type, allows the simulation to be activated
Function SetMotionType(int aeMotionType, bool abAllowActivate = true) native
; Sets this object reference as one that teammates will refuse to do favors on
Function SetNoFavorAllowed(bool abNoFavor = true) native
; Opens/closes this object
Function SetOpen(bool abOpen = true) native
; Set the position of the object
Function SetPosition(float afX, float afY, float afZ) native
; Set the current scale of the object
Function SetScale(float afScale) native
; Makes the reference translate to the given position/orientation
; Note: Rotation speed is entirely dependent on the length of the path and the movement speed
; that is, the rotation will happen such that the reference reaches the goal orientation at the end
; of the translation.
Function TranslateTo(float afX, float afY, float afZ, float afXAngle, float afYAngle, float afZAngle, float afSpeed, float afMaxRotationSpeed = 0.0) native
; Makes the reference translate to the given position/orientation on a spline
Function SplineTranslateTo(float afX, float afY, float afZ, float afXAngle, float afYAngle, float afZAngle, float afTangentMagnitude, float afSpeed, float afMaxRotationSpeed = 0.0) native
; Makes the reference translate to the target node's ref/orient on a spline at the given speed
Function SplineTranslateToRefNode(ObjectReference arTarget, string arNodeName, float afTangentMagnitude, float afSpeed, float afMaxRotationSpeed = 0.0) native
; Stops the reference from moving
Function StopTranslation() native
; Makes the reference translate to the target ref position/orient at the given speed
Function TranslateToRef(ObjectReference arTarget, float afSpeed, float afMaxRotationSpeed = 0.0)
TranslateTo(arTarget.X, arTarget.Y, arTarget.Z, arTarget.GetAngleX(), arTarget.GetAngleY(), arTarget.GetAngleZ(), afSpeed, afMaxRotationSpeed)
endFunction
; Makes the reference translate to the target ref position/orient on a spline at the given speed
Function SplineTranslateToRef(ObjectReference arTarget, float afTangentMagnitude, float afSpeed, float afMaxRotationSpeed = 0.0)
SplineTranslateTo(arTarget.X, arTarget.Y, arTarget.Z, arTarget.GetAngleX(), arTarget.GetAngleY(), arTarget.GetAngleZ(), afTangentMagnitude, afSpeed, afMaxRotationSpeed)
endFunction
; Tether a prisoner cart to the given horse.
Function TetherToHorse(ObjectReference akHorse) native
; Waits for the animation graph to send the specified event
bool Function WaitForAnimationEvent(string asEventName) native
; Convenience function to check if I'm in a location or any of its children
bool Function IsInLocation(Location akLocation)
; cache current location to avoid changing location while this function is running (surprisingly that seems to be happening occasionally)
Location currLoc = GetCurrentLocation()
if currLoc == None
return false
else
return akLocation.IsChild(currLoc) || currLoc == akLocation
endif
endFunction
; 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 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 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 almost complete (from a call to TranslateTo, "almost" is determined by a gamesetting, default is 90% of the way)
Event OnTranslationAlmostComplete()
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 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 received when this object's Ward is hit by a spell
Event OnWardHit(ObjectReference akCaster, Spell akSpell, int aiStatus)
EndEvent
; Set of read-only properties to essentually make a fake enum for motion types passed in to the trap hit
int Property Motion_Dynamic = 1 AutoReadOnly
int Property Motion_SphereIntertia = 2 AutoReadOnly
int Property Motion_BoxIntertia = 3 AutoReadOnly
int Property Motion_Keyframed = 4 AutoReadOnly
int Property Motion_Fixed = 5 AutoReadOnly
int Property Motion_ThinBoxIntertia = 6 AutoReadOnly
int Property Motion_Character = 7 AutoReadOnly
; added in 1.6.1126
Bool Function IsContainerEmpty() Native
Function RemoveAllStolenItems(ObjectReference akTransferTo) Native
Function SetContainerAllowStolenItems(Bool setAllowStolenItems) Native
Int Function GetAllItemsCount() Native
; SKSE64 additions built 2023-11-30 02:04:35.605000 UTC
; Container-only functions
int Function GetNumItems() native
Form Function GetNthForm(int index) native
float Function GetTotalItemWeight() native
float Function GetTotalArmorWeight() native
; Tree and Flora only functions
bool Function IsHarvested() native
Function SetHarvested(bool harvested) native
; Tempering
Function SetItemHealthPercent(float health) native
; Charges
; Only works on ObjectReferences that have user-enchants
Function SetItemMaxCharge(float maxCharge) native
; Works on any enchanted item
float Function GetItemMaxCharge() native
float Function GetItemCharge() native
Function SetItemCharge(float charge) native
Function ResetInventory() native
bool Function IsOffLimits() native
; Returns the name of this reference
; this is the name that is displayed
string Function GetDisplayName() native
; Sets a reference's display name
; returns false if force is false and the reference
; is held by an alias using 'Stored Text' or 'Uses Stored Text'
; Text Replacement does not use this name and may be lost if forced
bool Function SetDisplayName(string name, bool force = false) native
; Returns the enable parent object
ObjectReference Function GetEnableParent() native
; Returns the player-made enchantment if there is one
Enchantment Function GetEnchantment() native
; Changes an item's player-made enchantment to something else
; None enchantment will remove the existing enchantment
; does not delete the custom enchantment, only removes it
Function SetEnchantment(Enchantment source, float maxCharge) native
; Creates a new enchantment on the item given the specified parameters
; all arrays must be the same size
; created enchantments are not purged from the save when removed or overwritten
; exact same enchantments are re-used by the game
Function CreateEnchantment(float maxCharge, MagicEffect[] effects, float[] magnitudes, int[] areas, int[] durations) native
; Returns the number of ref aliases holding this reference
int Function GetNumReferenceAliases() native
; Returns the nth ReferenceAlias holding this reference
ReferenceAlias Function GetNthReferenceAlias(int n) native
; Returns the poison applied to the weapon
Potion Function GetPoison() native
; Returns all base forms in the inventory/container into the specified FormList
Function GetAllForms(FormList toFill) native
; Returns all base forms from the container into a new array
Form[] Function GetContainerForms() native
; Returns all of the aliases holding this reference
ReferenceAlias[] Function GetReferenceAliases() native