Below is a list and basic description of game objects used in the creation of No One Lives Forever 2. If you have a question about the meaning of any of the available properties of an object, you may access the online help built into DEdit by placing your cursor over the property in question until the cursor is replaced by a question mark. Left click to display a definition of that property.
AIInformationVolume
Volumes placed to send information to the AI when a player is within the boundaries.
E.g AIInformationVolume, used for cover for the player.
AINode
Nodes placed to relay information or instructions to the AI.
AIRegion
Objects used to group the AI volumes into regions of a level. This divides the level into unique areas for the AI’s search behavior.
AIVolume
Volumes placed for areas the AI can travel in. Some have special attributes to inform the AI of actions to take while in the volume. These objects no longer need to be bound to brushes, change their size by dragging in object mode.
AmbientOverride
You can assign an ambient value to brushes that are placed under this object in the objects properties. Note that individual brush ambient values are ignored when under this object.
AmmoBox
AmmoBoxes are placed in the world as a powerup. Each Ammobox can contain up to ten different kinds of ammunition.
CAI Human
This is the object used to place AI in a level. Everything from rats,robots to humanoids.
Camera
Cameras show scenes in the world outside the player.
CinematicTrigger
This is a controller object used for cut scenes and in game dialog.
CameraPoint
No info.
ClientLightFX
No info.
CommandObject
Objects placed to execute, track and time a series of events and/or commands.
Controller
This object controls properties of up to 8 objects.
Decal
An object to place decal textures under, allowing textures with an alpha channel to be placed overlapping standard textures.
DecisionObject
An object placed to give the player multiple choices they can make.
DemoSkyWorldModel
DemoSkyWorldModels allow objects to render in the skybox in a single step. A DemoSkyWorldModel is an object that fuses a WorldModel and a SkyPointer. By doing this, binding a brush to the one object allows it to be rendered in the skybox without the need for any additional objects.
Dialogue
An object placed to message dialogue for the AI to use.
To use setup this object click 'Dialogue'
This example is from the conversation between Isako and the professor in my singleplayer mod.
Command goes:
Code: Select all
(Location of wav file) (which CAI should speak)
(VOICE\SPAWN\PROFESSOR\20002.wav) (professor02)
Add the length of previous sound files and/or pauses together for every Delay
DirLight
DirLights act like a spotlight, shining only within an arc that you specify instead of in a sphere like a regular light. You can aim them to any angle you choose.
DisplayMeter
This is an incremental colored bar meter displayed on the screen. It is useful for “boss” fights.
DisplayTimer
This object displays a timer on the screen in game.
DynamicOccluderVolume
The object used to create a volume by placing a brush under it. When the player is in the volume, the occluders indicated in the volume will be active
EdgeGenerator
No info.
EventCounter
This object will store up to 10 different "events", with each event containing an integer value and two commands.
The idea is that the game code can increment/decrement the EventCounter's value (by sending ”Increment” or “Inc” and ”Decrement” or “Dec” messages).
When the counter’s value is equal to one (or more) of the EventXValue (i.e., Event1Value, Event2Value, etc.), either the EventXIncToValCmd or EventXDecToValCmd will be processes.
In other words, how the counter gets to the EventXValue determines which command is sent.
For example, if Event1Value = 2, and the EventCounter’s staring value is 0, if the EventCounter gets 2 “Inc” messages, the Event1IncToValCmd will be processed.
If at this point the “Inc” message is sent again (so the counter is now at 3), and then the “Dec” message is sent to the counter, the Event1DecToValCmd will be processed.
This object also understands the “Lock” and “Unlock” commands (Inc/Dec don’t have any effect on the counter if it is locked).
Explosion
This is an object used to place explosion effects in the world.
FastApproxArea
No info.
Fire
This is an object used to create fire effects.
GameStartPoint
This is the point that the player enters the game world. Key functions here is GameType and Team
GearItem
This is an object used to place gear power up items such as armor vests, health packs and more in the world.
Group
This is an object used when you wish to send the same message to several different objects at once. It acts as a simple relay.
InsideDef
Define the inside of your level by adding this object inside your level's outer shell. Used for leak testing, you also need a outsideDef object outside your level's outer shell for this.
JumpVolume
No info.
Key
This is an object used to define a point in the path of a keyframed object.
KeyFramer
This is an object used to define a point in the path of a keyframed object.
Light
This is a basic point light, or omni light object used to light the world.
LightGroup
Add multiple light objects to a group, more tidy
Lightning
This is an object used to create lightnings in your level. Set a destination object
ModItem
This is an object used to place gear power up items in the world, silencer, scope...
NodeLine
No info.
ObjectiveSprite
No info.
ObjectLight
This is a light that only affects models.
ObjectRemover
ObjectRemover contains several "groups" of objects. For each group, you may list up to 10 objects. Specify how many groups of objects you wish to keep in the "GroupsToKeep" property.
On the first update, the ObjectRemover will randomly select the groups of objects it will keep (based on how many were specified to keep), and remove all the objects in all the other groups, and then remove itself.
OutsideDef
Place this object outside of your sealed level to test for leaks, you would also need a InsideDef inside your level for this to work
ParticleSystem
Any time you want to spawn a large number of similar simple objects in one location or area, you probably want a ParticleSystem object. Particle systems create a cloud of objects, usually sprites or simple models. They can make the sprites move, determine the area where they appear and how long they remain after being created.
PolyGrid
A polygrid is a grid of triangles that can have an animating surface. They’re used to simulate flags, curtains, water, force fields and many other effects.
PolyGrid Modifyer
Prop
The Prop object is used to place .ltb models into the game world. Props are typically things that would be too complex or impractical to be created from world geometry. Examples would be plants, telephones, detailed furnishings, etc.
Intelligence
This object is a subclass of the Prop object. It is used to add bits of information that the player can discover during the course of gameplay. These are typically in the form of letters, rolls of film, briefcases, etc. Since it is a subclass of the Prop object, it shares many of its properties.
PlayerVehicle
This object is a subclass of the Prop object. This object is used to place PlayerVehicles in the world that the player can interact with. Since it is a subclass of the Prop object, it shares many of its properties.
PropType
This object is a subclass of the Prop object. This is a different way of managing prop placement in levels. We found that a lot of the props that we placed were set up the same as each other. Yet we still had to set all of the flags. The PropType object places props by way of a simple dropdown menu. The dropdown menu refers to a bute file where the all of the prop flags have been predefined. Since it is a subclass of the Prop object, it shares many of its properties.
RadarObject
Used to place a radar point on the compass.
SearchLight
This object is a subclass of the Prop object. In default mode works like a security camera (i.e., scans back and forth and it's yaw and fov can be adjusted). However, you can alternatively give it a Target object to follow (e.g., you can set up a keyframer and have the searchlight follow the keyframed object). Also there is a SpecialFXStuff property group that allows you to change the special fx (i.e., beam radius/alpha, dynamic light color/radius, and lensflare fx). Since it is a subclass of the Prop object, it shares many of its properties.
SecurityCamera
This object is a subclass of the Prop object. This object is used to place security cameras in the world. Since it is a subclass of the Prop object, it shares many of its properties.
RandomSpawner
The RandomSpawner is used to spawn objects randomly through multiple Spawner objects.
RenderGroup
Items placed under this object can be triggered to hide and unhide from within a DynamicOccluderVolume.
RotatingWorldModel
These are objects that spin on any given axis. The most common example of a RotatingWorldModel would be a spinning fan.
ScaleSprite
ScaleSprites are free-standing textures that don’t need a surface to appear on. ScaleSprites get compounded into a lot of other game objects, but they can be used on their own to make a lot of things happen too. ScaleSprites are used for all kinds of things — halos around lights, floating symbols, decals on walls and objects in the sky.
ScreenShake
The ScreenShake object shakes the camera when triggered. (e.g explosions, earthquake)
SkyPointer
SkyPointer objects allow the objects that they target to render in the skybox of the level. Only WorldModel-derived objects and Sprites can appear in the skybox.
SoundFX
This object allows you to place sounds in the world.
Spawner
This is a generic object used to “Spawn” objects into the game world.
Speaker
This object is used in conversational dialogues in a cinematic trigger. If a character needs to have a conversation with a non-AI object such as an intercom, this is the object that will fill the position of that AI in the conversation.
StartupCommand
Placed in a level to give commands to objects within the level when the level is loaded.
StaticSunLight
The StaticSunLight object supplies levels that have a skybox with light from a sunlike source. The light radiates into the level through all skyportal brushes as if from an infinitely far point. This sunlight’s direction is determined by the rotation of the StaticSunLight object. Its position doesn’t matter, since the emitted light acts as if it comes from an infinite distance. The StaticSunlight’s position is ignored.
Steam
The Steam object is a form of the ParticleSystem object that has been set up to more easily create particle effects resembling jets of steam. The effect created by this object travels down the forward facing vector of the object.
TeleportPoint
This object is used to define the position and rotation of a point in space that the player or an AI can be moved to instantly.
e.g
msg player (teleportpoint0 teleport);
msg ActivePlayer (teleportpoint0 teleport); (for Multiplayer)
If the player or AI receive this message, they'll end up where this object is placed
TransitionArea
The Transitional Area Mapping level-loading scheme, referred to as the “Trans. A.M”, is used to add the ability to travel from one level to the next, and back if you choose.
To create a transition between levels you must first place a TransitionArea object in each level.
The two TransintionAreas MUST have the same name and MUST have the same dimensions.
If the TransitionArea in the first level is named TransAM01 the TransitionArea in the second level must also be named TransAM01.
You can have multiple TransitionAreas in each level but for every TransitionArea in one level you must have a TransitionArea in the level you wish to transition to with the same name and same dimensions.
Binding a TransitionArea object to a brush creates a TransitionArea.
The volume contained by the TransitionArea holds the objects that will be transitioned between levels.
If an ammo box is in the TransitionArea as you leave the first level it will be in the same position and rotation within the TransitionArea of the second level.
The player’s position and rotation within the TransitionArea is also kept.
To specify which level a TransitionArea is supposed to transition you to, enter the level number in the ‘TransitionToLevel’ property.
This number corresponds to a LevelNumber in missions.txt.
You can only create transitions between levels within the same mission, so if the ‘TransitionToLevel’ property is 1 then the level that this TransitionArea will load will be the level specified in the missions ‘Level1’ property.
To trigger a transition from a TransitionArea simply send the TransitionArea a ‘TRANSITION’ message.
You can send this message from a switch or even a trigger from within the TransitionArea.
The player must be inside the TransitionArea in order for the transition to occur.
To better create the effect that the player never really left a level, the geometry and other objects surrounding the TransitionAreas in each level should match exactly. When creating a TransitionArea, keep it small and simple. Use areas such as a small room, hallway, stairwell or elevator as places to contain the TransitionArea. Try not to over populate the TransitionArea with a lot of objects. Certain objects will not transition even if they are inside the TransitionArea. All WorldModels and Triggers will not transition but they can be inside a TransitionArea during a transition.
Trigger
Triggers are placed in a level to send messages or commands to other objects when a player or AI enters or passes through them.
This is a powerful tool, it says that triggertouch is unsupported but it should work just fine.
ExitTrigger
This object is a subclass of the Trigger object. This object is used to trigger the end of a level.
VolumeBrush
Volume brushes are used for a number of effects — Water, damaging environments, ladders, and to relay physics instructions such as gravity changes to name a few.
A VolumeBrush object is designed to bind to a brush and use the brush to determine its area of effect.
If the effect is continuous, such as snow, it only occurs within the space defined by the brush. If the effect happens to players and AI’s, it only happens to them when they’re within the volume. The effects of the volume are triggered when the player enters the space and usually un-triggered when they leave.
VolumeEffect
Used to place ScatterVolumes (for grass) and SnowVolumes.
WeaponItem
This is an object used to place Weapon power up items in the world.
WorldModels
General
The naming convention should be mentioned first.
There are three basic types, WorldModels, Doors, and Switches.
Each of these three basic types has different movement types as prefixes describing how they behave.
“Rotating” means the objects will rotate around a point a specified number of degrees around each axis (much like the NOLF HingedDoor).
“Sliding” objects will move a specified number of units in a specified direction (much like the NOLF Door), think of the behavior of a desk drawer.
“Spinning” objects will spin around a point in a specified number of seconds on each axis (much like the NOLF RotatingWorldModel), think of a ceiling fans behavior.
Each movement type has identical properties and behaves exactly the same so when you are learning how to use a RotatingWorldModel you are also learning the RotatingSwitch and RotatingDoor.
However, even though a RotatingWorldModel can be used exactly as a RotatingDoor you should NOT put a RotatingWorldModel where a Door should go, and vice versa.
Use a Door only for Doors, use Switches only for Switches, and WorldModels for everything else.
Game objects, specifically AI and Players, need to know if they are interacting with a Door, Switch or something else.
Most basic functionality is shared for every new WorldModel object.
All of the new objects have common features and properties that you can edit.
They are all created the same way, they all move and rotate based on their local coordinate system and they can all receive certain messages.
“Active” WorldModels, that is any Rotating, Sliding or Spinning objects, can also send commands to other objects and play sounds depending on what state they are in.
Creation
To create an instance of a WorldModel just bind a WorldModel object to a brush or a set of brushes. There are several property values you can edit to achieve the object you want. BlendModes is a property drop down list containing several blend operations for your WorldModel object. WorldModels can have Additive blending, they can be Chromakeyed, or they can be Translucent. None is the default BlendMode for newly created WorldModel objects. You can also edit several other properties such as visibility and solidity. If you have a fairly complex brush that the player will be walking on or moving around you may want to set the BoxPhysics flag to FALSE. You can override the surface flags set by the texture mapped to the brush(s) by simply selecting the desired surface in the SurfaceOverride property dropdown list.
Once a WorldModel is positioned and behaves as you would like you can rotate it by selecting both the object and all brushes it is bound to then select Rotate Object in the right click menu in DEdit. You can rotate the WorldModel on all axis, and in any direction. The WorldModel will now move or rotate with the same behavior around its own local coordinate system.
Damage
All WorldModels can handle damage. Each one has a subset property labeled DamageProperties. There are several different values and flags that can all be edited to define how the WorldModel behaves when damaged. Here is a list of the properties that are included in the DamageProperties subset and what each on means:
HitPoints | Number of hit points the WorldModel has when created. |
MaxHitPoints | Max number of hit points the WorldModel can ever have. |
Armor | Amount of armor that the WorldModel has when it is created. |
MaxArmor | Max amount of armor the WorldModel can ever have. |
DamageTriggerCounter | How many times the object must be damaged before the damage message will be sent. |
DamageTriggerTarget | Name of the object that will receive the DamageTriggerMessage. |
DamageTriggerMessage | Command string that is sent when the WorldModel receives damage from any source. |
DamageTriggerNumSends | Specifies how many times the damage message will be sent. |
DamageMessage | Command string that is sent to the object that caused the damage. |
DeathTriggerTarget | Name of the object that will receive the DeathTriggerMessage. |
DeathTriggerMessage | Command string that is sent when the WorldModel has been destroyed. |
PlayerDeathTriggerTarget | Name of the object that receives the PlayerDeathTriggerMessage. |
PlayerDeathTriggerMessage | Command string that is sent when the player destroys the WorldModel. |
KillerMessage | Command string is sent to the object that destroys this WorldModel. |
CanHeal | Toggles whether the WorldModel can be healed. |
CanRepair | Toggles whether the WorldModel can be repaired. |
CanDamage | Toggles whether the WorldModel can be damaged. |
Mass | Sets the mass of the WorldModel within the game. |
NeverDestroy | Toggles whether the WorldModel can be destroyed. |
Attachments
All WorldModels can have attachments (you can attach models, props, and other WorldModel objects) much like Doorknobs in the NOLF Doors. When attached to a WordlModel, objects will move and rotate with the WorldModel. To have an object attach to a WorldModel when the game loads, add the object you want to attach and position it in DEdit. Enter the name of the Object you want to attach in the Attachments property field, you can have as many objects attached to a WorldModel as you want. List all the objects you want attached separated by a semicolon (ex. Prop1; Prop2; SlidingWorldModel0). During runtime of the game you can attach and detach objects through messages.
States
All “Active” WorldModel objects (Rotating, Sliding, and Spinning) have different states they go through. These states are: PowerOn, On, PowerOff, Off. Doors have similar states with different names: Opening, Open, Closing, Closed. By default, this can be changed in the Options property subset, all objects start in the ‘Off’ or ‘Closed’ state. When positioning and rotating the object in DEdit you are setting its ‘Off’ position. By entering in values for the Movement or Rotation properties you are setting how and where the object will move to when fully ‘On’ or ‘Open’. Sliding WorldModel objects will be moving in the direction you specified while in the ‘PowerOn’ state and when they have moved to the distance you specified they are considered ‘On’. While moving back to their original position and rotation they are in the ‘PowerOff’ state and when they have reached their original position and are at rest they are considered ‘Off’. Rotating and Sliding objects will stay still in their ‘On’ positions and rotations, but SpinningWorldModels will continue to spin at the specified rotations per second while ‘On’.
Messages
All WorldModels can receive “ATTACH” and “DETACH” messages sent from other objects. To send an ATTACH just send a message to a WorldModel like you would other objects and enter the name of the object you want to ATTACH:
(Ex. msg WorldModelName (ATTACH Prop0)). Only one object can be attached at a time using this method. When another ATTACH message is sent to the same WorldModel the first attachment is detached and the new object is attached. To detach the object you attached with an ATTACH message, send the object a DETACH message. DETACH takes no additional parameters.
(Ex. msg WorldModelName DETACH)
All “Active” WorldModel objects (Rotating, Sliding, and Spinning) can also receive messages to turn ‘On’ and ‘Off’. Messages that “Active” WorldModels can receive are:
ON | If not already in the On or PowerOn states, puts the WorldModel in the PowerOn state. |
TRIGGERON | same as ON |
OFF | If not already in the Off or PowerOff states, puts the WorldModel in the PowerOff state. |
TRIGGEROFF | same as OFF |
TRIGGER | Toggles the state. Basically the same as when a player presses use against this object. If the WorldModel is in the ‘On’ or ‘PowerOn’ state it will immediately switch to ‘PowerOff’. If it’s in the ‘Off’ or ‘PowerOff’ state, then it will switch to ‘PowerOn’. |
LOCK | Locks the object. Once locked the object cannot be activated. |
UNLOCK | Unlocks the object so it can now be activated by the player and messages. |
These messages take no other parameters so an example to toggle a SpinningWorldModels current state would be: msg SpinningWorldModelName TRIGGER
Options
All “Active” WorldModel objects (Rotating, Sliding, and Spinning) have several options that can be changed in the Options property subset group. These control how interactive the objects are and set some behavior. PlayerActivate and AIActivate, these let the object know who, if anybody, can turn them ‘On’ or Close them. If these are FALSE then only other objects can interact with it by sending it messages, if PlayerActivate is TRUE then a player can trigger the object by pressing “use”. StartOn, when TRUE, puts the object in the PowerOn or Opening state as soon as the game loads. TriggerOff toggles weather or not the object can be turned off. RemainOn, if TRUE, will keep the object in its’ ‘On’ state until told to turn off, either by the player or another object. Locked, when TRUE, will start the object off as being locked. While Locked the object cannot turn on or off until it is unlocked through a message. Waveform is a dropdown list of movement types that the object will use to rotate or move.
Commands
All “Active” WorldModel objects (Rotating, Sliding, and Spinning) can send commands based on what state they are in. There are 5 commands listed in the Commands property subset group: OnCommand, OffCommand, PowerOnCommand, PowerOffComand, LockedComand. Doors have similar commands with different names: OpenCommand, ClosedCommand, OpeningCommand, ClosingCommand. Each command line can have multiple commands, separated by semicolons, entered and each one will be executed every time the WorldModel object first enters the corresponding state. To have a command executed as soon as on object is activated, either by the player pressing “use” or by receiving an ‘On’ message, simply enter the command in the PowerOnCommand or OpeningCommand line. If you would like a command executed at the end of an objects movement or rotation enter it in the OnCommand line. The LockedCommand will be executed if the object is locked and a player or message tries to activate it.
Sounds
All “Active” WorldModel objects (Rotating, Sliding, and Spinning) can play sounds based on what state they are in. There are 5 sounds listed in the Sounds property subset group: PowerOnSound, OnSound, PowerOffSound, OffSound, LockedSound. Doors have similar sounds with different names: OpeningSound, OpenSound, ClosingSound and ClosedSound. Other properties that can be edited in this subset group are the relative sound position, the radius the sound fades off to and weather or not the sounds will loop. The LockedSound will never loop. Each sound is a single .wav file that is easily picked through a browser. The sounds will start playing every time the WorldModel object first enters the corresponding state. To have a sound start playing every time the object starts to turn off or close enter it in the PowerOffSound or ClosingSound. The LockedSound will play if the object is locked and the player or a message tries to activate it.
Animated Lightmaps
All “Active” WorldModel objects (Rotating, Sliding, and Spinning) can have animated lightmaps associated with their movement or rotation. To create animated lightmaps you must first add a KeyframerLight object. Set the properties of the KeyframerLight as desired, position it close to the WorldModel object you would like to lightmap, if it’s a directional light then make sure the light is pointed in the right direction. Setting ShadowMap to FALSE typically looks much better. Once the KeyframerLight is set just type the name of the KeyframerLight object in the ShadowLights property. You can enter up to 8 lights in the ShadowLights property separated by semicolons. Now just enter the number of frames you would like have in the animation, up to 128. Sometimes less frames actually look better but experiment and use what works best. Remember that the more animations and the more frames in the animations is a real memory hog. Too many animated lightmaps is also a real frame rate killer!
WorldModel
Features
This is the basic “non-active” WorldModel object. It does not move or rotate, does not play any sounds and cannot execute any commands. Like all of the new objects this can handle Attachments, can have BlendModes, has Damage properties, and a surface type can be selected
Use
Any place where you need a stationary WorldModel, this is the object you should use. An example would be a desk that you want to damage or to be able to handle attachments. This object is also very well suited for keyframing. If you want a keyframed WorldModel object you should use this object.
Creation
This object is created normally. Simply bind this object to a brush or groups of brushes and then edit the properties as fit.
Damage
This object can handle damage. Edit the DamageProperties subset to define behavior.
Attachments
This object can handle attachments. Enter all the objects you want attached to the WorldModel, separated by a semicolon, in the Attachments property.
States
None – This object does not move or rotate so there is no need for states.
Messages
WorldModels can receive these messages.
ATTACH: Attaches the object specified in the message
DETACH: Detach the object attached with the ATTACH message.
Options
None – The player and AI cannot activate this object. It has no movement or rotation properties.
Commands
None – This object cannot execute any commands.
Sounds
None – This object cannot play any sounds.
RotatingWorldModel
Features
This WorldModel can rotate around a point a specified number of degrees around each axis. The player can interact with this object or it can be controlled only through other objects. Sounds can be played and commands can be executed when certain states are reached. Like all of the new objects this can handle Attachments, can have BlendModes, has Damage properties, and a surface type can be selected. This WorldModel can also have an animated light map associated with it.
Use
Any place you want a WorldModel that should swing like it is hinged to a wall. Kitchen cabinets or window shutters are a good example of what these can be used for but of course there are many uses.
Creation
This object is created normally. Simply bind this object to a brush or group of brushes. To set its rotation properties just edit the vector labeled RotationAngles and either position the bound object where you would like to rotate around or link to a Point object positioned where you want the object to rotate around. Enter the number of degrees, positive or negative, around each axis you would like this object to rotate. Using the kitchen cabinet as an example you would create your brush in the closed position, bind a RotatingWorldModel to the brush, move the bound object to either the left or right edge of the brush, and then edit the vector (0.0 140.0 0.0). This cabinet door will now open out 140 degrees.
Damage
This object can handle damage. Edit the DamageProperties subset to define behavior.
Attachments
This object can handle attachments. Enter all the objects you want attached to the RotatingWorldModel, separated by a semicolon, in the Attachments property.
States
On | When the RotatingWorldModel as fully rotated to the degree amounts specified in the RotationAngles property, it is considered ‘On’. |
PowerOn | While rotating towards the ‘On’ position it is considered to be in the ‘PowerOn’ state. |
Off | By default RotatingWorldModels start in the ‘Off’ position, and are considered ‘Off’ while in this position. |
PowerOff | While rotating from the ‘On’ position towards the ‘Off’ position theRotatingWorldModel is in the ‘PowerOff’ state. |
Messages
A RotatingWorldModel can receive these messages.
ATTACH | Attaches the object specified in the message |
DETACH | Detach the object attached with the ATTACH message. |
ON | If not already in the On or PowerOn states, puts the WorldModel in the PowerOn state. |
OFF | If not already in the Off or PowerOff states, puts the WorldModel inthe PowerOff state. |
TRIGGER | Toggles the state. Basically the same as when a player presses use against this object. If the WorldModel is in the ‘On’ or ‘PowerOn’ state it will immediately switch to ‘PowerOff’. If it’s in the ‘Off’ or ‘PowerOff’ state, then it will switch to ‘PowerOn’. |
LOCK | Locks the object. Once locked the object cannot be activated. |
UNLOCK | Unlocks the object so it can now be activated by the player and other messages. |
Options
A RotatingWorldModel can have these options edited.
PlayerActivate | Toggles if the Player can interact with the RotatingWorldModel or not. |
StartOn | When TRUE the RotatingWorldModel is in the ‘On’ position at load time |
TriggerOff | Toggles weather or not the player can directly turn a RotatingWorldModel ‘Off’. |
RemainOn | If this is TRUE the RotatingWorldModel will stay in the ‘On’ position until directly told to turn off, either by a player or a message. |
ForceMove | When TRUE the RotatingWorldModel will rotate through the player and other objects. |
Locked | Toggles weather this object starts locked or not. |
RotateAway | If TRUE the RotatingWorldModel will swing away from the player. |
Waveform | Defines how the object Rotates. |
Commands
A RotatingWorldModel can send these commands when in the corresponding state.
OnCommand |
OffCommand |
PowerOnCommand |
PowerOffComand |
LockedComand |
Sounds
A RotatingWorldModel can play these sounds when in the corresponding state.
PowerOnSound |
OnSound |
PowerOffSound |
OffSound |
LockedSound |
SlidingWorldModel
Features
This WorldModel can slide, or move, a specified number of units in a specified direction. The player can interact with this object or it can be controlled only through other objects. Sounds can be played and commands can be executed when certain states are reached. Like all of the new objects this can handle Attachments, can have BlendModes, has Damage properties, and a surface type can be selected. This WorldModel can also have an animated light map associated with it.
Use
Any place you want a WorldModel that should move in a specific direction. Desk drawers are a good example of what these can be used for but of course there are many uses.
Creation
This object is created normally. Simply bind this object to a brush or group of brushes. To set its movement properties just edit the vector labeled MoveDir and set the distance you would like this SlidingWorldModel to move to in the property labeled MoveDist. A MoveDir vector of (0.0 1.0 0.0 ) will move the SlidingWorldModel along its own local Y axis, typically straight up. This vector can be edited to point in any direction you want (0.5 0.5 0.0) will move the SlidingWorldModel diagonally along its X and Y axis. The MoveDist property is the distance the SlidingWorldModel will travel in DEdit units. Using the desk drawer as an example you would create your brush in the closed position, bind a SlidingWorldModel to the brush and then edit the MoveDir vector (0.0 0.0 1.0). Now specify how far you want the object to move by making MoveDist 64.0. The desk drawer will now slide 64 units out in its local Z axis.
Damage
This object can handle damage. Edit the DamageProperties subset to define behavior.
Attachments
This object can handle attachments. Enter all the objects you want attached to the SlidingWorldModel, separated by a semicolon, in the Attachments property.
States
On: When the SlidingWorldModel is fully moved to the distance
specified in the MoveDist property, it is considered ‘On’.
PowerOn: While moving towards the ‘On’ position it is considered to be in the ‘PowerOn’ state.
Off: By default SlidingWorldModels start in the ‘Off’ position, and are considered ‘Off’ while in this position.
PowerOff: While moving from the ‘On’ position towards the ‘Off’ position theSlidingWorldModel is in the ‘PowerOff’ state.
Messages
A SlidingWorldModel can receive these messages.
ATTACH | Attaches the object specified in the message |
DETACH | Detach the object attached with the ATTACH message. |
ON | If not already in the On or PowerOn states, puts the WorldModel in the PowerOn state. |
OFF | If not already in the Off or PowerOff states, puts the WorldModel in the PowerOff state. |
TRIGGER | Toggles the state. Basically the same as when a player presses use against this object. If the WorldModel is in the ‘On’ or ‘PowerOn’ state it will immediately switch to ‘PowerOff’. If it’s in the ‘Off’ or ‘PowerOff’ state, then it will switch to ‘PowerOn’. |
LOCK | Locks the object. Once locked the object cannot be activated. |
UNLOCK | Unlocks the object so it can now be activated by the player and other messages. |
Options
A SlidingWorldModel can have these options edited.
PlayerActivate | Toggles if the Player can interact with the SlidingWorldModel or not. |
StartOn | When TRUE the SlidingWorldModel is in the ‘On’ position at load time |
TriggerOff | Toggles weather or not the player can directly turn a SlidingWorldModel ‘Off’. |
RemainOn | If this is TRUE the SlidingWorldModel will stay in the ‘On’ position until directly told to turn off, either by a player or a message. |
ForceMove | When TRUE the SlidingWorldModel will move through the player andother objects. |
Locked | Toggles weather this object starts locked or not. |
Waveform | Defines how the object moves. |
Commands
A SlidingWorldModel can send these commands when in the corresponding state.
OnCommand |
OffCommand |
PowerOnCommand |
PowerOffComand |
LockedComand |
Sounds
A SlidingWorldModel can play these sounds when in the corresponding state.
PowerOnSound |
OnSound |
PowerOffSound |
OffSound |
LockedSound |