Once I get that upgrade to 36-hour days, I will tackle that. – Mychaeel
Legacy:UnrealScript Entry Points/Actor Events
Tarquin: all the info below has been moved to Actor/Methods. Please do not add more to this page.
- 1 Entry Points: Engine.Actor
- 1.1 event AnimEnd()
- 1.2 event KImpact()
- 1.3 event KVelDropBelow()
- 1.4 event KSkelConvulse()
- 1.5 event KApplyForce
- 1.6 event bool KUpdateState
- 1.7 event Destroyed()
- 1.8 event GainedChild()
- 1.9 event LostChild()
- 1.10 event Tick()
- 1.11 event PostNetReceive()
- 1.12 event Trigger()
- 1.13 event UnTrigger()
- 1.14 event BeginEvent()
- 1.15 event EndEvent()
- 1.16 event Timer()
- 1.17 event HitWall()
- 1.18 event Falling()
- 1.19 event Landed()
- 1.20 event ZoneChange()
- 1.21 event PhysicsVolumeChange()
- 1.22 event Touch()
- 1.23 event PostTouch()
- 1.24 event UnTouch()
- 1.25 event Bump()
- 1.26 event BaseChange()
- 1.27 event Attach()
- 1.28 event Detach()
- 1.29 event SpecialHandling()
- 1.30 event EncroachingOn()
- 1.31 event EncroachedBy()
- 1.32 event FinishedInterpolation()
- 1.33 event EndedRotation()
- 1.34 event UsedBy()
- 1.35 simulated event FellOutOfWorld()
- 1.36 event KilledBy()
- 1.37 event TakeDamage()
- 1.38 event TornOff()
- 1.39 native simulated event DemoPlaySound ()
- 1.40 event bool PreTeleport()
- 1.41 event PostTeleport()
- 1.42 event BeginPlay()
- 1.43 event RenderTexture()
- 1.44 event PreBeginPlay()
- 1.45 event BroadcastLocalizedMessage()
- 1.46 event PostBeginPlay()
- 1.47 simulated event SetInitialState()
- 1.48 event PostNetBeginPlay()
- 1.49 event TravelPreAccept()
- 1.50 event TravelPostAccept()
- 1.51 event TriggerEvent()
- 1.52 function UntriggerEvent()
- 1.53 function RenderOverlays()
- 1.54 function BecomeViewTarget()
- 2 Back to Parent
- 3 Discussion
- 4 Comments?
Here are the known entry points defined for the base Actor class. They may or may not be handled by default in that class, within the engine (C++), or in a derived class.
Notification that the current animation has ended. Allows an object to wait for animation completion before proceeding with other activities.
// event called when Karmic actor hits with impact velocity over KImpactThreshold)
// event called when karma actor's velocity drops below KVelDropBelowThreshold)
// event called when a ragdoll convulses (see KarmaParamsSkel)
// event called just before sim to allow user to
(hehe, that one was incomplete...)
event bool KUpdateState
// This is called from inside C++ physKarma at the appropriate time to update state of Karma rigid body.
// If you return true, newState will be set into the rigid body. Return false and it will do nothing.
ZoneChange() is called upon login, on both the client and server. For a Player Pawn, it is apparently only called on the client, after that, and if you want to know about it on the server, you need to have a simulated event ZoneChange() in your Player Pawn. Then, both the client and server will be notified, when the Player Pawn changes Zones.
// called for PendingTouch actor after physics completes
simulated event FellOutOfWorld()
// Networking - called on client when actor is torn off (bTearOff==true)
native simulated event DemoPlaySound ()
event bool PreTeleport()
// Level State
// Called immediately before gameplay begins.
// Broadcast a localized message to all players.
// Most message deal with 0 to 2 related PRIs.
// The LocalMessage class defines how the PRI's and optional actor are used.
// Called immediately after gameplay begins.
simulated event SetInitialState()
// Called after PostBeginPlay.
// called after PostBeginPlay. On a net client, PostNetBeginPlay() is
// spawned after replicated variables have been initialized to their replicated values
// Called when carried onto a new level, before AcceptInventory.
// Called when carried into a new level, after AcceptInventory.
// Trigger an event
// Untrigger an event
(is this an event? if not, why?)
//called by player's hud to request drawing of actor specific overlays onto canvas
// Called by PlayerController when this actor becomes its ViewTarget.
Back to Parent
ZoneChange() is called upon login, on both the client and server. For a Player Pawn, it is apparently only called on the client, after that, and if you want to know about it on the server, you need to have a simulated? event ZoneChange() in your Player Pawn. Then, both the client and server will be notified, when the Player Pawn changes Zones.
Eric what did you mean ? I thought it is called on every change in the zone, not necessarily on login. I mean waterzones, lavazones etc. get updated all the time (especially in PainTimer()). I think it is better if we move it into a discussion first before setting it as info.
EricBlade: The trick is, at least where I'm at, a Pawn's ZoneChange() is not called on the server, unless it is simulated via the client call. The only thing in my entire base code that defined ZoneChange() is in Actor:
simulated event ZoneChange(ZoneInfo NewZone);
Xian: I assume that is because the RemoteRole is Autonomous instead of Simulated. So the 'server-side' is dictated as being client-side (since the controller is autonomous), setting it to a simulated function will make the engine differentiate it better, I assume. Perhaps I didn't explain it best but I hope you got my point :)
But what did you mean with that "called upon login" thing ?
EricBlade:Even if it's not simulated, ZoneChange is run on the server once, when the player pawn is created, with the NewZone being the Zone that the pawn is created in. (this may also happen when respawning, my gametype doesn't do respawning currently, so I didn't get a chance to check with that)
Xian: Think you misinterpreted how the Engine reacts. It is called on EVERY zone change... meaning everytime the pawn changes zones (enters/exits/switches), so when a pawn is created it first checks what zone it interacts with. It will happen on respawn only if the death zone is different from the spawn zone (that seems logical). It's obvious that a simulated function gets run on both server and client, but as I said, my guess is that a non simulated one gets called only on the client cos of its RemoteRole.
Tarquin: Um... this page says it shouldn't be worked on any more.
Lazarus: Actually no, but I understand the confusion. This is for events only (methods that are called asynchronously by the engine). See my note in UScript Entry Points. I know there's going to be overlap, just not sure the best way to handle it. I'll certainly reorganize it if people have a good suggestion. Understood on the pacakge prefix, I just did it for reference.