Difference between revisions of "PushActorAway - ObjectReference"

From the CreationKit Wiki
Jump to navigation Jump to search
(→‎Notes: Add not about running PushActorAway too early causing CTDs)
m (→‎Notes: Fix EndIf)
Line 32: Line 32:
If (MyActor.Is3DLoaded())
If (MyActor.Is3DLoaded())
     XmarkerRef.PushActorAway(MyActor as Actor, 50.0)
     XmarkerRef.PushActorAway(MyActor as Actor, 50.0)
EndWhile
EndIf
</source>
</source>


== See Also ==
== See Also ==
*[[ObjectReference Script]]
*[[ObjectReference Script]]

Revision as of 02:36, 13 February 2022

Member of: ObjectReference Script

Knocks back the specified actor away from this object with the specified amount of force, as if an explosion had gone off.

Syntax

Function PushActorAway(Actor akActorToPush, float afKnockbackForce) native

Parameters

  • akActorToPush: The actor to push away.
  • afKnockbackForce: The amount of force to apply to the target actor.

Return Value

None.

Examples

ExplosionMarker.PushActorAway(Bill, 10.0)

Notes

  • Use an XMarkerHeading object to control the exact direction in which the actor will be pushed.
  • The force argument can be negative to pull actors toward your ObjectReference. (Before you ask, yes, someone beat you to it and made a Katamari mod out of this.)
  • The push is applied via an explosion, and as such is affected by the fMagicExplosion* game settings.
  • Running PushActorAway on newly spawned Actor can lead to a crash to desktop. To prevent this, check that the 3D is loaded on the Actor with MyActor.Is3DLoaded() before doing PushActorAway.
ObjectReference MyActor = XmarkerkRef.PlaceAtMe(MyActorBase)
If (MyActor.Is3DLoaded())
    XmarkerRef.PushActorAway(MyActor as Actor, 50.0)
EndIf

See Also