My program doesn't have bugs. It just develops random features.
A native actor parent class for all Volumes. These actors define an area and track other actors entering and exiting it.
- name AssociatedActorTag
- Connects the Volume to an Actor whose Events -> Tag property matches this. The associated actor gets Touch and UnTouch events when something enters or leaves the Volume. You can use this feature to associate a Trigger with the Volume which will effectively make the whole Volume act like that Trigger. To do this, set the volume's AssociatedActor property to the Events -> Tag of the trigger to fire.
- int LocationPriority
- In areas where Volumes overlap, this property determines which LocationName is used. The higher the number, the more priority the volume has. If you have nested volumes (volumes in a volume, in a volume, in a volume, etc.), the volume that is the most nested, the nestee, should have a higher number than the nester, and so on.
- string LocationName (localized)
- A description of this zone. This is what appears on the scoreboard or HUD messages in team games as the location of teammate players. This property overrides that of a ZoneInfo. (In UT, LocationIDs were used for this purpose.)
- DecorationList DecoList (edfindable)
- A list of decorations to be spawned inside the volume when the level starts.
- Actor AssociatedActor
- This actor gets Touch() and UnTouch() event notifications as the volume is entered or left.
- bool Encompasses( Actor Other )
- Returns True if the center of the actor is within this volume.
- Fills in the AssociatedActor variable if AssociatedActorTag was specified. If an associated actor is found the volume goes to the AssociatedTouch state.
- DisplayDebug( Canvas C, out float YL, out float YPos )
- Adds the AssociatedActor to the debug information displayed.
Touch() and UnTouch() event notifications to the volume as actors enter or leave it ActorEnteredVolume() and ActorLeavingVolume() notifications when center of actor enters the volume Pawns with bIsPlayer==true cause PlayerEnteredVolume() notifications instead of ActorEnteredVolume().
The events PawnEnteredVolume() and PawnLeavingVolume() are available for PhysicsVolume and its child classes.
Forwards Touch() and UnTouch() events to the AssociatedActor. During BeginState() is forwards a Touch() event to all TouchingActors.
Volume +- ASCriticalObjectiveVolume (UT2004) +- BlockingVolume | +- HitScanBlockingVolume +- LimitationVolume (UT2004) +- PhysicsVolume | +- DefaultPhysicsVolume | +- LadderVolume | +- LavaVolume | +- PressureVolume | +- WaterVolume | +- xFallingVolume +- SnipingVolume
Unknown: If you create a new volume subclass, you must load your mod's .u file while map editing for the new class to show up in the list.
SuperApe: As with any custom asset package.
Sivak: Hi. I have a working pressure volume and wanted to know if there was a way to get bots to try triggering it when someone is in there. There isn't a Trap thing in UT2004... Thanks.
SuperApe: Sort of. This falls under Strategic Bots behavior. You could have them activate a UseTrigger set to activate a VolumeTrigger which would in turn toggle the PressureVolume (or a modified PhysicsVolume). Problem is, bots love to run to UseTriggers and automatically trigger them upon Touch, so to get them to be a little more discreet about it, you'll have to get tricky with an AIScript and TriggerSystem.
Tarquin: This could be an interesting topic for a tutorial on AIScripts...