Table of Contents
Scripted Entities Reference
Scripts run on the server can create and modify 'Entities' (i.e. 'things') that (generally) appear in the world for connected players. There are also (potentially) entities that do special things like, for instance, controlling the game camera.
Please note this system is experimental, is quite complicated, can cause lots of problems if misused, much of it isn't working right or at all (so no surprise there then) and may change significantly in the future.
Procedure for creating Entities
The server script for using scripted entities will usually follow this process:
1. Create a new entity (using EntityCreate
)
2. Set parameters, graphics and behaviours for the entity (using EntitySetPosition
, EntitySetValue
etc)
3. Add the entity to the world. (using EntityAddToWorld
- This bit actually broadcasts the entity to the connected players).
Entity Types
The second parameter when calling EntityCreate defines the 'Main Type' of the entity - which defines how the entity is replicated and persists within the world. Options for the Main Type are:
LOCAL (Default) : This entity is 'owned' by and appears only for the specified player, and is deleted when they leave.
PUBLIC : This entity is 'owned' by the specific playerID and is deleted when they leave, but everyone sees it.
GLOBAL : This entity stays around until the server asks to delete it (or it is destroyed by a player).
Entity Behaviours
The third parameter to the 'EntityCreate' call determines the general behaviour of the entity. This ranges from 'Scripted' (where the entity basically does nothing unless told to be the server script) to more custom behaviours such as 'SUICIDE_ATTACK' (where the entity heads towards its target until..)
The current list of valid behaviours are:
SCRIPTED : No default behaviour - server script needs to relay individual actions
PET : Behaviour coded into client - follows player about, idles etc
TRACK : Maintains a fixed distance between entity and target
PROJECTILE : Moves according to Newtonian physics.
HUNT : Will track towards the target, maintaining a minimum distance
STATIC : Doesn't move (unless told to do so by script) - Can still rotate towards a target if 'FaceTarget' flag is used
SUICIDE_ATTACK : Heads towards a target and explodes when it gets there
EVADE : Avoid the target
PATH : Follow a specified path
ATTACH : Moves with the player, entity or weapon specified. Pos is used as an offset
Scripted Entity Commands
EntityCreate
Parameters | Player ID , Type , Behaviour |
---|---|
Returns | A handle to the entity |
Example | $hEntity = EntityCreate( $gPlayerID, “LOCAL”, “TRACK” ) |
Description | Creates a new entity on the server. |
EntityAddToWorld
Parameters | Entity Handle |
---|---|
Example | EntityAddToWorld( $hEntity ) |
Description | Adds an entity to the world - broadcasting it to the appropriate players. |
EntitySetValue
Parameters | Entity Handle , Field Name , Value |
---|---|
Example | EntitySetValue( $hCamEntity, “FaceTarget”, 1 ) |
Description | Sets the parameter value of an entity. (Currently only works prior to the entity being added to the world) |
Values for the 'Field Name' :
Health
ZOffset
Target
Weapon
ProxRange
TargetDist
MoveSpeed
RotateSpeed
MoveAcc
TargetLead
AutoExpire
AttachTo
DeathDelay
Flag values (Can only be 0 or 1) :
FaceTarget
DontStickToFloor
TakeDamage
AttackTarget
AttackProx
DieOnTargetDeath
IsCamera
TargetEntity
TargetLastWeapon
TargetLastLocalWeapon
AttachEntity
AttachLastWeapon
AttachLastLocalWeapon