Worst-case scenario: the UEd Goblin wipes the map and burns down your house.

Legacy:Actor/New In UT2004

From Unreal Wiki, The Unreal Engine Documentation Site
Jump to: navigation, search
UT2004 :: Object >> Actor (Package: Engine)

There are numerous changes, so this page might be missing some of them. The information on this page is based on the UnrealScript source code of UT2003 v2225 and UT2004 v3204.

Properties[edit]

Changed in UT2004[edit]

float NetUpdateTime 
This property is no longer const.
bool bCollideWorld
bool bBlockPlayers 
These properties are no longer displayed in the Collision property group. bBlockPlayers is obsolete now and also no longer replicated.
bool bNetNotify 
This property is no longer displayed in the Advanced property group.
bool bIgnoreEncroachers 
This property is now replicated to clients if the actor can collide with other actors or world geometry.

New in UT2004[edit]

float FluidSurfaceShootStrengthMod 
If bDisturbFluidSurface is set to True, a FluidSurfaceInfo's ShootStrength is multiplied by this before doing the ripples.
bool bNotifyLocalPlayerTeamReceived 
Wants NotifyLocalPlayerTeamReceived() calls.
bool bForceSkelUpdate 
Update skeleton (and attached actor positions) even if not rendered.
bool bClientAuthoritative (const) 
Remains ROLE_Authority on client. (only valid for bStatic or bNoDelete actors)
bool bBlocksTeleport 
bool bClientTrigger (changes replicated to clients) 
Changes in this value will call the ClientTrigger event clientsidely.
bool bUseCollisionStaticMesh 
bool bNotOnDedServer 
Destroy this actor if on dedicated server and RemoteRole == ROLE_None (emitters, etc.)
bool bAlreadyPrecachedMaterials 
bool bAlreadyPrecachedMeshes 
Material HighDetailOverlay 
If high detail mode, use this overlay when no other overlay is active.

Structs[edit]

Changed in UT2004[edit]

KSimParams 
The MaxKarmaSpeed and MaxRagdollSpeed properties have been removed.

New in UT2004[edit]

FireProperties[edit]

struct FireProperties
{
	var class<Ammunition> AmmoClass< SEMI >
	var class<Projectile> ProjectileClass< SEMI >
	var float WarnTargetPct;
	var float MaxRange;
	var bool bTossed;
	var bool bTrySplash;
	var bool bLeadTarget;
	var bool bInstantHit;
	var bool bInitialized;
};

Enums[edit]

ESurfaceTypes 
This enum now has the additional values EST_Custom00..EST_Custom31 for mods that need custom surface types.

Methods[edit]

Removed in UT2004[edit]

string GetItemName (string FullName)
ReplaceText (out string Text, string Replace, string With) [final] 
These are now static simulated global functions. (ReplaceText() is still final, though.)

Changed in UT2004[edit]

string ConsoleCommand (string Command, optional bool bWriteToLog) [native] 
The new bWriteToLog parameter outputs the console command's results to the game's log file.
int PlayMusic(string Song, optional float FadeInTime) [native final]
StopMusic int SongHandle, optional float FadeOutTime) [native final]
StopAllMusic(optional float FadeOutTime) [native final] 
The fading parameters are now optional. These functions are used only for level music in .OGG format and playback is stopped on mapchange.
string GetURLMap (optional bool bIncludeOptions) [native final] 
The bIncludeOptions is new in UT2004.
TriggerEvent (name EventName, Actor Other, Pawn EventInstigator) [simulated]
UntriggerEvent (name EventName, Actor Other, Pawn EventInstigator) 
TriggerEvent is a simulated function now, i.e. it can be executed on clients as well. Both functions not only (un)trigger dynamic actors, but also static NavigationPoints in UT2004.

New functions in UT2004[edit]

CopyObjectToClipboard (Object Obj) [native] 
Copy the specified object's properties to the clipboard. The format generated is for pasting into the editor if it's an actor or into the default properties block of a class if it isn't.
TextToSpeech (string Text, float Volume) [native] 
bool ShouldBeHidden ( ) [native final static] 
Returns, whether the class has the HideDropDown class modifier. (see Class Syntax)
bool IsJoinedTo (Actor Other) [native final] 
KAddAngularImpulse (vector AngImpulse) [native final] 
KSetStayUprightParams (float stiffness, float damping) [native final] 
KScaleJointLimits (float scale, float stiffness) [native final] 
AllowMusicPlayback (bool Allow) [native final] 
int PlayStream (string Song, optional bool UseMusicVolume, optional float Volume, optional float FadeInTime, optional float SeekTime) [native final]
StopStream (int Handle, optional float FadeOutTime) [native final]
int SeekStream (int Handle, float Seconds) [native final]
bool AdjustVolume (int Handle, float NewVolume) [native final]
bool PauseStream (int Handle) [native final] 
Used for playing custom music - not cached, and will not be stopped at level transition.
Song parameter must contain extension, but can be relative or absolute directory, e.g.: PlayStream("D:\\alongtheway.mp3",false,1,0,0);
TimerPop (VolumeTimer T) 
Moved from Volume to Actor.
bool HealDamage (int Amount, Controller Healer, class<DamageType> DamageType) 
The opposite of TakeDamage(). Use this function to add health to an actor.
bool TraceThisActor(out vector HitLocation, out vector HitNormal, vector TraceEnd, vector TraceStart, optional vector Extent) [native final] 
Returns True if the trace did not hit the actor it was called for.
ChangeSpringFeedbackEffect (string EffectName, float CenterX, float CenterY) [native final] 
ChangeBaseParamsFeedbackEffect (string EffectName, optional float DirectionX, optional float DirectionY, optional float Gain) [native final] 
ResetStaticFilterState() [native final] 
Use when change rendering of bStatic actors.
AddToPackageMap (optional string PackageName) [native final] 
Add PackageName to the packagemap as if it was in GameEngine's ServerPackages list. If PackageName is omitted, it adds this actor's package.
This function is only valid during initialization (between GameInfo::InitGame() and GameInfo::SetInitialState()) If called outside of that window, or anytime on a client, the function returns without doing anything.
N.B. When demorecording (serverside at least), this function will not include packages in the demo! So for instance, if a package containing a vehicle is added to the package map in this way, that vehicle will NOT SHOW in serverside demo's.
GetAllInt (string MetaClass, array<string> Entries) [native final static]
GetAllIntDesc (string MetaClass, out array<string> Entry, out array<string> Description) [native final static] 
Much faster and, more importantly, static versions of the GetNextInt() and GetNextIntDesc() functions. They will return all entries for the specified MetaClass as a dynamic array.
HurtRadius (float DamageAmount, float DamageRadius, class<DamageType> DamageType, float Momentum, vector HitLocation) [simulated] 
This function is no longer final, i.e. it can be overridden in subclasses now. E.g. Projectile utilizes this fact to implement UT2003's DelayedHurtRadius() function as HurtRadius() now.
Crash() [static] 
Crashes the game via Assert(false).
bool CheckMaxEffectDistance (PlayerController P, vector SpawnLocation) [simulated] 
bool SelfTriggered ( ) 
bool TeamLink (int TeamNum) 
SetDelayedDamageInstigatorController (Controller C) 
bool IsStationary ( ) 
For AI. Bots have perfect aim shooting non-pawn stationary targets.

New events in UT2004[edit]

ClientTrigger ( ) 
Called clientsidely if bClientTrigger changes its value.
RanInto (Actor Other) 
Called for encroaching actors which successfully moved the other actor out of the way.
RecoverFromBadStateCode ( ) 
bool CheckForErrors() 
POVChanged (PlayerController PC, bool bBehindViewChanged) 
Called by PlayerController on its current ViewTarget when its ViewTarget and/or bBehindView change.
NotifyLocalPlayerDead (PlayerController PC) 
NotifyLocalPlayerTeamReceived ( ) 
Called only if bNotifyLocalPlayerTeamReceived and is a net client when local PlayerController receives PlayerReplicationInfo.Team.
PawnBaseDied ( ) 
This actor is based on a Pawn and that Pawn has just died.

Discussion[edit]

Xian: About AddToPackageMap(), if I got it right, this Package will be added and be "simulated" as a ServerPackage (so that Clients can use it), correct? Wouldn't it be easier to just set the ServerPackages entries manually and then do ConsoleCommand("quit")? Hmm, about that bug, I did notice many similar bugs involving demorec (client or server) so I'd say it has an issue with parts of replication (in my case a variable was not replicated which simulated ViewRotation as an integer rather than a rotator). Does that bug occur if the client has the added package ?

Wormbo: That's correct, AddToPackageMap() will tell clients to download and use the package during network games, but demo recording still only uses the real ServerPackages list in the server's INI file.