Actor/New In UT2004
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
Changed in UT2004
- 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
- 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
Changed in UT2004
- KSimParams
- The MaxKarmaSpeed and MaxRagdollSpeed properties have been removed.
New in UT2004
FireProperties
struct FireProperties { var class<Ammunition> AmmoClass; var class<Projectile> ProjectileClass; var float WarnTargetPct; var float MaxRange; var bool bTossed; var bool bTrySplash; var bool bLeadTarget; var bool bInstantHit; var bool bInitialized; };
Enums
- ESurfaceTypes
- This enum now has the additional values EST_Custom00..EST_Custom31 for mods that need custom surface types.
Methods
Removed in UT2004
- 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
- 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
- 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
- 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
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.