doom3-bfg/base/script/doom_events.script
2022-08-27 13:19:00 +02:00

1224 lines
45 KiB
Text

/***********************************************************************
events.script
Defines game events available to script.
***********************************************************************/
/***********************************************************************
all entities
***********************************************************************/
// Removes this entity from the game.
scriptEvent void remove();
// Returns the name of this entity.
scriptEvent string getName();
// Sets the name of this entity.
scriptEvent void setName( string name );
// Activates this entity as if it was activated by a trigger.
// Activator is the entity that caused the action (usually the player).
scriptEvent void activate( entity activator );
// Causes this entity to activate all it's targets. Similar to how a trigger activates entities.
// Activator is the entity that caused the action (usually the player).
scriptEvent void activateTargets( entity activator );
// Returns the number of entities this entity has targeted.
scriptEvent float numTargets();
// Returns the requested target entity.
scriptEvent entity getTarget( float num );
// Returns a random targeted entity. Pass in an entity name to skip that entity.
scriptEvent entity randomTarget( string ignoreName );
// Fixes this entity's position and orientation relative to another entity,
// such that when the master entity moves, so does thisentity.
scriptEvent void bind( entity master );
// Fixes this entity's position (but not orientation) relative to another entity,
// such that when the master entity moves, so does this entity.
scriptEvent void bindPosition( entity master );
// Fixes this entity's position and orientation relative to a bone on another entity,
// such that when the master's bone moves, so does this entity.
scriptEvent void bindToJoint( entity master, string boneName, float rotateWithMaster );
// Detaches this entity from its master.
scriptEvent void unbind();
// Removes all attached entities from the game.
scriptEvent void removeBinds();
// Sets the owner of this entity. Entity's will never collide with their owner.
scriptEvent void setOwner( entity owner );
// Sets the model this entity uses.
scriptEvent void setModel( string modelName );
// Sets the skin this entity uses. Set to "" to turn off the skin.
scriptEvent void setSkin( string skinName );
// Returns the current worldspace position of this entity (regardless of any bind parent).
scriptEvent vector getWorldOrigin();
// Sets the current position of this entity (regardless of any bind parent).
scriptEvent void setWorldOrigin( vector origin );
// Returns the current position of this entity (relative to bind parent if any).
scriptEvent vector getOrigin();
// Sets the current position of this entity (relative to it's bind parent if any).
scriptEvent void setOrigin( vector origin );
// Returns the current orientation of this entity (relative to bind parent if any).
scriptEvent vector getAngles();
// Sets the current orientation of this entity (relative to bind parent if any).
scriptEvent void setAngles( vector angles );
// Gets the current linear velocity of this entity. The linear velocity of a physics
// object is a vector that defines the translation of the center of mass in units per second.
scriptEvent vector getLinearVelocity();
// Sets the current linear velocity of this entity in units per second. The linear velocity of
// a physics object is a vector that defines the translation of the center of mass in units per second.
scriptEvent void setLinearVelocity( vector velocity );
// Gets the current angular velocity of this entity. The angular velocity of
// a physics object is a vector that passes through the center of mass. The
// direction of this vector defines the axis of rotation and the magnitude
// defines the rate of rotation about the axis in radians per second.
scriptEvent vector getAngularVelocity();
// Sets the current angular velocity of this entity. The angular velocity of
// a physics object is a vector that passes through the center of mass. The
// direction of this vector defines the axis of rotation and the magnitude
// defines the rate of rotation about the axis in radians per second.
scriptEvent void setAngularVelocity( vector velocity );
// Gets the size of this entity's bounding box.
scriptEvent vector getSize();
// Sets the size of this entity's bounding box.
scriptEvent void setSize( vector min, vector max );
// Gets the minimum corner of this entity's bounding box.
scriptEvent vector getMins();
// Gets the maximum corner of this entity's bounding box.
scriptEvent vector getMaxs();
// checks if the entity's model is invisible.
scriptEvent float isHidden();
// Makes this entity invisible.
scriptEvent void hide();
// Makes this entity visible if it has a model.
scriptEvent void show();
// Returns true if this entity touches the other entity.
scriptEvent float touches( entity other );
// Disables the callback function on the specified signal.
scriptEvent void clearSignal( float signalNum );
// Gets the value of the specified shader parm.
scriptEvent float getShaderParm( float parm );
// Sets the value of the specified shader parm.
scriptEvent void setShaderParm( float parm, float value );
// Sets shader parms Parm0, Parm1, Parm2, and Parm3 (red, green, blue, and alpha respectively).
scriptEvent void setShaderParms( float parm0, float parm1, float parm2, float parm3 );
// Sets the RGB color of this entity (shader parms Parm0, Parm1, Parm2).
scriptEvent void setColor( float red, float green, float blue );
// Gets the color of this entity (shader parms Parm0, Parm1, Parm2).
scriptEvent vector getColor();
// ensure the specified sound shader is loaded by the system. prevents cache hits when playing sound shaders.
scriptEvent void cacheSoundShader( string shaderName );
// Plays a specific sound shader on the channel and returns the length of the sound in
// seconds. This is not the prefered method of playing a sound since you must ensure
// that the sound is loaded.
scriptEvent float startSoundShader( string shaderName, float channel );
// Stops a specific sound shader on the channel.
scriptEvent void stopSound( float channel, float netSync );
// Plays the sound specified by the snd_* key/value pair on the channel and returns
// the length of the sound. This is the preferred method for playing sounds on an
// entity since it ensures that the sound is precached.
scriptEvent float startSound( string sound, float channel, float netSync );
// Fades the sound on this entity to a new level over a period of time. Use SND_CHANNEL_ANY for all currently playing sounds.
scriptEvent void fadeSound( float channel, float newLevel, float fadeTime );
// Sets a parameter on this entity's GUI.
scriptEvent void setGuiParm( string key, string value );
// Sets a parameter on this entity's GUI.
scriptEvent void setGuiFloat( string key, float value );
// searches for the name of a spawn arg that matches the prefix. for example,
// passing in "attack_target" matches "attack_target1", "attack_targetx", "attack_target_enemy",
// etc. The returned string is the name of the key which can then be passed into
// functions like getKey() to lookup the value of that spawn arg. This
// is usefull for when you have multiple values to look up, like when you
// target multiple objects. To find the next matching key, pass in the previous
// result and the next key returned will be the first one that matches after
// the previous result. pass in "" to get the first match. returns "" when no
// more keys match. Note to coders: this is the same as MatchPrefix in the game code.
scriptEvent string getNextKey( string prefix, string lastMatch );
// Sets a key on this entity's spawn args. Note that most spawn args are evaluated when
// this entity spawns in, so this will not change the entity's behavior in most cases.
// This is chiefly for saving data the script needs in an entity for later retrieval.
scriptEvent void setKey( string key, string value );
// Retrieves the value of a specific spawn arg.
scriptEvent string getKey( string key );
// Retrieves the integer value of a specific spawn arg.
scriptEvent float getIntKey( string key );
// Retrieves the floating point value of a specific spawn arg.
scriptEvent float getFloatKey( string key );
// Retrieves the vector value of a specific spawn arg.
scriptEvent vector getVectorKey( string key );
// Retrieves the entity specified by the spawn arg.
scriptEvent entity getEntityKey( string key );
// Returns this entity to the position stored in the "origin" spawn arg.
// This is the position the entity was spawned in unless the "origin" key is changed.
// Note that there is no guarantee that the entity won't be stuck in another entity
// when moved, so care should be taken to make sure that isn't possible.
scriptEvent void restorePosition();
// Returns the distance of this entity to another entity.
scriptEvent float distanceTo( entity other );
// Returns the distance of this entity to a point.
scriptEvent float distanceToPoint( vector point );
// Starts an FX on this entity.
scriptEvent void startFx( string fx );
// Suspends execution of current thread for one game frame.
scriptEvent void waitFrame();
// Suspends execution of the current thread for the given number of seconds.
scriptEvent void wait( float time );
// checks if an entity's script object has a specific function
scriptEvent float hasFunction( string functionName );
// calls a function on an entity's script object
scriptEvent void callFunction( string functionName );
// enables or prevents an entity from going dormant
scriptEvent void setNeverDormant( float enable );
/***********************************************************************
system events (called via 'sys.')
***********************************************************************/
// Terminates a thread.
scriptEvent void terminate( float threadNumber );
// Pauses the current thread.
scriptEvent void pause();
// Suspends execution of the current thread for the given number of seconds.
scriptEvent void wait( float time );
// Suspends execution for one game frame.
scriptEvent void waitFrame();
// Waits for the given entity to complete it's move.
scriptEvent void waitFor( entity mover );
// Waits for the given thread to terminate.
scriptEvent void waitForThread( float threadNumber );
// Prints the given string to the console.
scriptEvent void print( string text );
// Prints the given line to the console.
scriptEvent void println( string text );
// Multiplayer - Print this line on the network
scriptEvent void say( string text );
// Breaks if the condition is zero. (Only works in debug builds.)
scriptEvent void assert( float condition );
// Triggers the given entity.
scriptEvent void trigger( entity entityToTrigger );
// Sets a cvar.
scriptEvent void setcvar( string name, string value );
// Returns the string for a cvar.
scriptEvent string getcvar( string name );
// Returns a random value X where 0 <= X < range.
scriptEvent float random( float range );
// Returns the current game time in seconds.
scriptEvent float getTime();
// Kills all threads with the specified name
scriptEvent void killthread( string threadName );
// Sets the name of the current thread.
scriptEvent void threadname( string name );
// Returns a reference to the entity with the specified name.
scriptEvent entity getEntity( string name );
// Creates an entity of the specified classname and returns a reference to the entity.
scriptEvent entity spawn( string classname );
// Respawn
scriptEvent void respawn();
// copies the spawn args from an entity
scriptEvent void copySpawnArgs( entity ent );
// Sets a key/value pair to be used when a new entity is spawned.
scriptEvent void setSpawnArg( string key, string value );
// Returns the string for the given spawn argument.
scriptEvent string SpawnString( string key, string default );
// Returns the floating point value for the given spawn argument.
scriptEvent float SpawnFloat( string key, float default );
// Returns the vector for the given spawn argument.
scriptEvent vector SpawnVector( string key, vector default );
// clears data that persists between maps
scriptEvent void clearPersistantArgs();
// Sets a key/value pair that persists between maps
scriptEvent void setPersistantArg( string key, string value );
// Returns the string for the given persistant arg
scriptEvent string getPersistantString( string key );
// Returns the floating point value for the given persistant arg
scriptEvent float getPersistantFloat( string key );
// Returns the vector for the given persistant arg
scriptEvent vector getPersistantVector( string key );
// Returns a forward vector for the given Euler angles.
scriptEvent vector angToForward( vector angles );
// Returns a right vector for the given Euler angles.
scriptEvent vector angToRight( vector angles );
// Returns an up vector for the given Euler angles.
scriptEvent vector angToUp( vector angles );
// Returns the sine of the given angle in degrees.
scriptEvent float sin( float degrees );
// Returns the cosine of the given angle in degrees.
scriptEvent float cos( float degrees );
// Returns the square root of the given number.
scriptEvent float sqrt( float square );
// Returns the normalized version of the given vector.
scriptEvent vector vecNormalize( vector vec );
// Returns the length of the given vector.
scriptEvent float vecLength( vector vec );
// Returns the dot product of the two vectors.
scriptEvent float DotProduct( vector vec1, vector vec2 );
// Returns the cross product of the two vectors.
scriptEvent vector CrossProduct( vector vec1, vector vec2 );
// Returns Euler angles for the given direction.
scriptEvent vector VecToAngles( vector vec );
// Sets a script callback function for when the given signal is raised on the given entity.
scriptEvent void onSignal( float signalNum, entity ent, string functionName );
// Clears the script callback function set for when the given signal is raised on the given entity.
scriptEvent void clearSignalThread( float signalNum, entity ent );
// Turns over view control to the given camera entity.
scriptEvent void setCamera( entity cameraEnt );
// Returns view control to the player entity.
scriptEvent void firstPerson();
// Returns the fraction of movement completed before the box from 'mins' to 'maxs' hits solid geometry
// when moving from 'start' to 'end'. The 'passEntity' is considered non-solid during the move.
scriptEvent float trace( vector start, vector end, vector mins, vector maxs, float contents_mask, entity passEntity );
// Returns the fraction of movement completed before the trace hits solid geometry
// when moving from 'start' to 'end'. The 'passEntity' is considered non-solid during the move.
scriptEvent float tracePoint( vector start, vector end, float contents_mask, entity passEntity );
// Returns the fraction of movement completed during the last call to trace or tracePoint.
scriptEvent float getTraceFraction();
// Returns the position the trace stopped due to a collision with solid geometry during the last call to trace or tracePoint
scriptEvent vector getTraceEndPos();
// Returns the normal of the hit plane during the last call to trace or tracePoint
scriptEvent vector getTraceNormal();
// Returns a reference to the entity which was hit during the last call to trace or tracePoint
scriptEvent entity getTraceEntity();
// Returns the number of the skeletal joint closest to the location on the entity which was hit
// during the last call to trace or tracePoint
scriptEvent string getTraceJoint();
// Returns the number of the body part of the entity which was hit during the last call to trace or tracePoint
scriptEvent string getTraceBody();
// Fades towards the given color over the given time in seconds.
scriptEvent void fadeIn( vector color, float time );
// Fades from the given color over the given time in seconds.
scriptEvent void fadeOut( vector color, float time );
// Fades to the given color up to the given alpha over the given time in seconds.
scriptEvent void fadeTo( vector color, float alpha, float time );
// Starts playing background music.
scriptEvent void music( string shaderName );
// Issues an error.
scriptEvent void error( string text );
// Issues a warning.
scriptEvent void warning( string text );
// Returns the number of characters in the string
scriptEvent float strLength( string text );
// Returns a string composed of the first num characters
scriptEvent string strLeft( string text, float num );
// Returns a string composed of the last num characters
scriptEvent string strRight( string text, float num );
// Returns the string following the first num characters
scriptEvent string strSkip( string text, float num );
// Returns a string composed of the characters from start to start + num
scriptEvent string strMid( string text, float start, float num );
// Returns the numeric value of a string
scriptEvent float strToFloat( string text );
// damages entities within a radius defined by the damageDef. inflictor is the entity causing the damage and can be the same as the attacker (in the case
// of projectiles, the projectile is the inflictor, while the attacker is the character that fired the projectile). ignore is an entity to not cause damage to.
// dmgPower scales the damage (for cases where damage is dependent on time).
scriptEvent void radiusDamage( vector origin, entity inflictor, entity attacker, entity ignore, string damageDefName, float dmgPower );
// networking - checks for client
scriptEvent float isClient();
// checks if it's a multiplayer game
scriptEvent float isMultiplayer();
// returns the length of time between game frames. this is not related to renderer frame rate.
scriptEvent float getFrameTime();
// returns the number of game frames per second. this is not related to renderer frame rate.
scriptEvent float getTicsPerSecond();
// ensure the specified sound shader is loaded by the system. prevents cache hits when playing sound shaders.
scriptEvent void cacheSoundShader( string shaderName );
// line drawing for debug visualization. lifetime of 0 == 1 frame.
scriptEvent void debugLine( vector color, vector start, vector end, float lifetime );
scriptEvent void debugArrow( vector color, vector start, vector end, float size, float lifetime );
scriptEvent void debugCircle( vector color, vector origin, vector dir, float radius, float numSteps, float lifetime );
scriptEvent void debugBounds( vector color, vector mins, vector maxs, float lifetime );
// text drawing for debugging. align can be 0-left, 1-center, 2-right. lifetime of 0 == 1 frame.
scriptEvent void drawText( string text, vector origin, float scale, vector color, float align, float lifetime );
// checks if an influence is active
scriptEvent float influenceActive();
/***********************************************************************
cameras
***********************************************************************/
// Starts a spline or anim camera moving.
scriptEvent void start();
// Stops a spline or anim camera moving.
scriptEvent void stop();
/***********************************************************************
lights
***********************************************************************/
// Sets the shader to be used for the light.
scriptEvent void setShader( string shader );
// Gets a shader parameter.
scriptEvent float getLightParm( float parmNum );
// Sets a shader parameter.
scriptEvent void setLightParm( float parmNum, float value );
// Sets the red/green/blue/alpha shader parms on the light and the model.
scriptEvent void setLightParms( float parm0, float parm1, float parm2, float parm3 );
// Sets the width/length/height of the light bounding box.
scriptEvent void setRadiusXYZ( float x, float y, float z );
// Sets the size of the bounding box.
scriptEvent void setRadius( float radius );
// Turns the light on.
scriptEvent void On();
// Turns the light off.
scriptEvent void Off();
// Turns the light out over the given time in seconds.
scriptEvent void fadeOutLight( float time );
// Turns the light on over the given time in seconds.
scriptEvent void fadeInLight( float time );
/***********************************************************************
func_forcefield
***********************************************************************/
// Turns the forcefield on and off.
scriptEvent void Toggle();
/***********************************************************************
func_animate
***********************************************************************/
// Launches a projectile.
scriptEvent void launchMissiles( string projectilename, string sound, string launchbone, string targetbone, float numshots, float framedelay );
// Switches to a ragdoll taking over the animation.
scriptEvent void startRagdoll();
// Changes to left foot and plays footstep sound.
scriptEvent void leftFoot();
// Changes to right foot and plays footstep sound.
scriptEvent void rightFoot();
/***********************************************************************
func_movers
***********************************************************************/
// Stops any translational movement.
scriptEvent void stopMoving();
// Stops any rotational movement.
scriptEvent void stopRotating();
// Sets the movement speed. Set this speed before initiating a new move.
scriptEvent void speed( float speed );
// Sets the movement time. Set this time before initiating a new move.
scriptEvent void time( float time );
// Sets the deceleration time. Set this deceleration time before initiating a new move.
scriptEvent void decelTime( float time );
// Sets the acceleration time. Set this acceleration time before initiating a new move.
scriptEvent void accelTime( float time );
// Initiates a translation to the position of an entity.
// Uses the current speed/time and acceleration and deceleration settings.
scriptEvent void moveTo( entity targetEntity );
// Initiates a translation to an absolute position.
// Uses the current speed/time and acceleration and deceleration settings.
scriptEvent void moveToPos( vector pos );
// Initiates a translation with the given distance in the given yaw direction.
// Uses the current speed/time and acceleration and deceleration settings.
scriptEvent void move( float angle, float distance );
// Initiates an acceleration to the given speed over the given time in seconds.
scriptEvent void accelTo( float speed, float time );
// Initiates a deceleration to the given speed over the given time in seconds.
scriptEvent void decelTo( float speed, float time );
// Initiates a rotation about the given axis by decreasing the current angle towards the given angle.
// Uses the current speed/time and acceleration and deceleration settings.
scriptEvent void rotateDownTo( float axis, float angle );
// Initiates a rotation about the given axis by increasing the current angle towards the given angle.
// Uses the current speed/time and acceleration and deceleration settings.
scriptEvent void rotateUpTo( float axis, float angle );
// Initiates a rotation towards the given Euler angles.
// Uses the current speed/time and acceleration and deceleration settings.
scriptEvent void rotateTo( vector angles );
// Initiates a rotation with the given angular speed.
// Uses the current speed/time and acceleration and deceleration settings.
scriptEvent void rotate( vector angleSpeed );
// Initiates a rotation towards the current angles plus the given Euler angles.
// Uses the current speed/time and acceleration and deceleration settings.
scriptEvent void rotateOnce( vector angles );
// Initiates a translation back and forth along the given vector with the given speed and sphase.
scriptEvent void bob( float speed, float phase, vector distance );
// Initiates a rotation back and forth along the given angles with the given speed and phase.
scriptEvent void sway( float speed, float phase, vector angles );
// Opens the renderer portal associated with this mover.
scriptEvent void openPortal();
// Closes the renderer portal associated with this mover.
scriptEvent void closePortal();
// Sets the sound to be played when the mover accelerates.
scriptEvent void accelSound( string sound );
// Sets the sound to be played when the mover decelerates.
scriptEvent void decelSound( string sound );
// Sets the sound to be played when the moving.
scriptEvent void moveSound( string sound );
// Enables aligning the mover with the spline direction.
scriptEvent void enableSplineAngles();
// Disables aligning the mover with the spline direction.
scriptEvent void disableSplineAngles();
// Subtracts the initial spline angles to maintain the initial orientation of the mover.
scriptEvent void removeInitialSplineAngles();
// Starts moving along a spline stored on the given entity.
scriptEvent void startSpline( entity spline );
// Stops moving along a spline.
scriptEvent void stopSpline();
// Returns true if a mover is moving
scriptEvent float isMoving();
// Returns true if a mover is rotating
scriptEvent float isRotating();
/***********************************************************************
doors
***********************************************************************/
// Enables the door.
scriptEvent void enable();
// Disables the door.
scriptEvent void disable();
// Opens the door.
scriptEvent void open();
// Closes the door.
scriptEvent void close();
// Locks or unlocks the door.
scriptEvent void lock( float locked );
// Returns true if the door is open.
scriptEvent float isOpen();
// Returns true if the door is locked.
scriptEvent float isLocked();
/***********************************************************************
four fingered claw
***********************************************************************/
scriptEvent void setFingerAngle( float angle );
scriptEvent void stopFingers();
/***********************************************************************
func_moveable
***********************************************************************/
// Makes the moveable non-solid for other entities.
scriptEvent void becomeNonSolid();
// returns true if object is not moving
scriptEvent float isAtRest();
// enable/disable damage
scriptEvent void enableDamage( float enable );
/***********************************************************************
skeletal animation (weapons, players, ai, func_animated)
***********************************************************************/
// Looks up the number of the specified joint. Returns INVALID_JOINT if the joint is not found.
scriptEvent float getJointHandle( string jointname );
// Removes any custom transforms on all joints.
scriptEvent void clearAllJoints();
// Removes any custom transforms on the specified joint.
scriptEvent void clearJoint( float jointnum );
// Modifies the position of the joint based on the transform type.
scriptEvent void setJointPos( float jointnum, float transform_type, vector pos );
// Modifies the orientation of the joint based on the transform type.
scriptEvent void setJointAngle( float jointnum, float transform_type, vector angles );
// returns the position of the joint in world space
scriptEvent vector getJointPos( float jointnum );
// returns the angular orientation of the joint in world space
scriptEvent vector getJointAngle( float jointnum );
/***********************************************************************
weapons
***********************************************************************/
scriptEvent entity getOwner();
scriptEvent void nextWeapon();
scriptEvent void weaponState( string stateFunction, float blendFrames );
// eats the specified amount of ammo
scriptEvent void useAmmo( float amount );
scriptEvent void addToClip( float amount );
scriptEvent float ammoInClip();
// number of shots left in inventory
scriptEvent float ammoAvailable();
// amount of ammo in inventory. since each shot may use more than 1 ammo, this is different than ammoAvailable()
scriptEvent float totalAmmoCount();
scriptEvent float clipSize();
scriptEvent float isInvisible();
// Plays the given animation on the given channel. Returns false if anim doesn't exist.
// NOTE: weapons only use ANIMCHANNEL_ALL
scriptEvent float playAnim( float channel, string animName );
// Continuously repeats the given animation on the given channel. Returns false if anim doesn't exist.
// NOTE: weapons only use ANIMCHANNEL_ALL
scriptEvent float playCycle( float channel, string animName );
// Returns true if the animation playing on the given channel
// is completed considering a number of blend frames.
// NOTE: weapons only use ANIMCHANNEL_ALL
scriptEvent float animDone( float channel, float blendOutFrames );
// Sets the number of frames to blend between animations on the given channel.
// NOTE: weapons only use ANIMCHANNEL_ALL
scriptEvent void setBlendFrames( float channel, float blendFrame );
// Returns the number of frames to blend between animations on the given channel.
// NOTE: weapons only use ANIMCHANNEL_ALL
scriptEvent float getBlendFrames( float channel );
scriptEvent void weaponReady();
scriptEvent void weaponOutOfAmmo();
scriptEvent void weaponReloading();
scriptEvent void weaponHolstered();
scriptEvent void weaponRising();
scriptEvent void weaponLowering();
scriptEvent void flashlight( float enable );
scriptEvent void launchProjectiles( float num_projectiles, float spread, float fuseOffset, float launchPower, float dmgPower );
scriptEvent entity createProjectile();
scriptEvent float melee();
scriptEvent void allowDrop( float allow ); // disables/enables owner dropping weapon when killed
scriptEvent float autoReload(); // ui_autoReload check
scriptEvent void netReload(); // network client
scriptEvent void netEndReload(); // network client - force end of a reload
// Sets a shader parameter on the muzzleflash/light
scriptEvent void setLightParm( float parmNum, float value );
// Sets the red/green/blue/alpha shader parms on the muzzleflash/light
scriptEvent void setLightParms( float parm0, float parm1, float parm2, float parm3 );
// Returns the entity that controls the world model
scriptEvent entity getWorldModel();
/***********************************************************************
projectiles
***********************************************************************/
// gets the current state of the projectile. states are defined in doom_defs.script
scriptEvent float getProjectileState();
/***********************************************************************
combat nodes
***********************************************************************/
// Disables the combat node if "use_once" is set on the entity.
scriptEvent void markUsed();
/***********************************************************************
actors (players and AI)
***********************************************************************/
// Moves the constraint with the given name that binds this entity to another entity.
scriptEvent void SetConstraintPosition( string constraintName, vector position );
// Enables eye focus.
scriptEvent void enableEyeFocus();
// Disables eye focus.
scriptEvent void disableEyeFocus();
// Changes to left foot and plays footstep sound.
scriptEvent void leftFoot();
// Changes to right foot and plays footstep sound.
scriptEvent void rightFoot();
// Stops the animation currently playing on the given channel over the given number of frames.
scriptEvent void stopAnim( float channel, float frames );
// Plays the given animation on the given channel. Returns false if anim doesn't exist.
scriptEvent float playAnim( float channel, string animName );
// Continuously repeats the given animation on the given channel. Returns false if anim doesn't exist.
scriptEvent float playCycle( float channel, string animName );
// Plays the given idle animation on the given channel. Returns false if anim doesn't exist.
scriptEvent float idleAnim( float channel, string animName );
// sets the blend amount on multi-point anims.
scriptEvent void setSyncedAnimWeight( float channel, float animindex, float weight );
// Sets the number of frames to blend between animations on the given channel.
scriptEvent void setBlendFrames( float channel, float blendFrame );
// Returns the number of frames to blend between animations on the given channel.
scriptEvent float getBlendFrames( float channel );
// Sets a new animation state script function for the given channel.
scriptEvent void animState( float channel, string stateFunction, float blendFrame );
// Returns the name of the current animation state script function used for the given channel.
scriptEvent string getAnimState( float channel );
// Returns true if the given animation state script function is currently used for the given channel.
scriptEvent float inAnimState( float channel, string stateFunc );
// Finishes the given wait action.
scriptEvent void finishAction( string action );
// Returns true if the animation playing on the given channel
// is completed considering a number of blend frames.
scriptEvent float animDone( float channel, float blendOutFrames );
// Disables the animation currently playing on the given channel and syncs
// the animation with the animation of the nearest animating channel.
scriptEvent void overrideAnim( float channel );
// Prevents any pain animation from being played for the given time in seconds.
scriptEvent void preventPain( float duration );
// Enables animation on the given channel.
scriptEvent void enableAnim( float channel, float blendFrames );
// Disables pain animations.
scriptEvent void disablePain();
// Enables pain animations.
scriptEvent void enablePain();
// Returns the name of the pain animation.
scriptEvent string getPainAnim();
// Sets a string which is placed in front of any animation names.
scriptEvent void setAnimPrefix( string prefix );
// Returns true when an entity has a specific animation.
scriptEvent float hasAnim( float channel, string animName );
// Ensures that the animation exists and causes an error if it doesn't.
scriptEvent void checkAnim( float channel, string animName );
// Chooses a random anim and returns the name. Useful for doing move tests on anims.
scriptEvent string chooseAnim( float channel, string animName );
// Returns the length of the anim in seconds. If the entity has multiple anims with animName,
// length may not match the anim that is played. Use chooseAnim to get a non-random anim
// and pass that string into animLength.
scriptEvent float animLength( float channel, string animName );
// Returns the distance that the anim travels. If the entity has multiple anims with animName,
// the distance may not match the anim that is played. Use chooseAnim to get a non-random anim
// and pass that string into animDistance.
scriptEvent float animDistance( float channel, string animName );
// Returns true if the actor has one or more enemies.
scriptEvent float hasEnemies();
// Returns the next enemy the actor has acquired.
scriptEvent entity nextEnemy( entity lastEnemy );
// Returns the enemy closest to the given location.
scriptEvent entity closestEnemyToPoint( vector point );
// sets the next state and waits until thread exits, or a frame delay before calling it. handy for setting the state in the constructor.
scriptEvent void setNextState( string stateFunc );
// sets the next state and goes to it immediately
scriptEvent void setState( string stateFunc );
scriptEvent string getState();
// returns the entity used for the character's head, if it has one.
scriptEvent entity getHead();
/***********************************************************************
players
***********************************************************************/
// Returns the button state from the current user command.
scriptEvent float getButtons();
// Returns the movement relative to the player's view angles from the current user command.
// vector_x = forward, vector_y = right, vector_z = up
scriptEvent vector getMove();
// Returns the player view angles.
scriptEvent vector getViewAngles();
// Enables the player weapon.
scriptEvent void enableWeapon();
// Lowers and disables the player weapon.
scriptEvent void disableWeapon();
// Returns "weaponX" where X is the number of the weapon the player is currently holding.
scriptEvent string getCurrentWeapon();
// Returns "weaponX" where X is the number of the weapon the player was previously holding.
scriptEvent string getPreviousWeapon();
// Selects the weapon the player is holding.
scriptEvent void selectWeapon( string weapon );
// Returns the entity for the player's weapon
scriptEvent entity getWeaponEntity();
// Opens the player's PDA.
scriptEvent void openPDA();
// Returns true if the player has the PDA open.
scriptEvent float inPDA();
/***********************************************************************
path nodes
***********************************************************************/
// chooses a random path from the entity's targets, ignoring non-path entities.
scriptEvent entity randomPath();
/***********************************************************************
AI characters and monsters
***********************************************************************/
// finds enemy player in PVS
scriptEvent entity findEnemy( float onlyInFov );
// finds enemy monster in PVS
scriptEvent entity findEnemyAI( float onlyInFov );
// finds enemy player in attack cones
scriptEvent entity findEnemyInCombatNodes();
// finds another character's closest reachable enemy
scriptEvent entity closestReachableEnemyOfEntity( entity team_mate );
scriptEvent entity heardSound( float ignore_team );
scriptEvent void setEnemy( entity enemy );
scriptEvent void clearEnemy();
scriptEvent void muzzleFlash( string jointname );
// returns projectile created
scriptEvent entity createMissile( string jointname );
// returns projectile fired
scriptEvent entity attackMissile( string jointname );
// launches a missile at entity specified by 'attack_target'. returns projectile fired
scriptEvent entity fireMissileAtTarget( string jointname, string targetname );
// returns the projectile entity
scriptEvent entity launchMissile( vector origin, vector angles );
// returns true if the attack hit
scriptEvent float attackMelee( string damageDef );
scriptEvent void directDamage( entity damageTarget, string damageDef );
scriptEvent void radiusDamageFromJoint( string jointname, string damageDef );
scriptEvent void attackBegin( string damageDef );
scriptEvent void attackEnd();
scriptEvent float meleeAttackToJoint( string joint, string damageDef );
scriptEvent entity randomPath();
scriptEvent float canBecomeSolid();
scriptEvent void becomeSolid();
scriptEvent void becomeNonSolid();
// enables the ragdoll if the entity has one
scriptEvent float becomeRagdoll();
// turns off the ragdoll
scriptEvent void stopRagdoll();
scriptEvent void setHealth( float health );
scriptEvent float getHealth();
scriptEvent void allowDamage();
scriptEvent void ignoreDamage();
scriptEvent float getCurrentYaw();
scriptEvent void turnTo( float yaw );
scriptEvent void turnToPos( vector pos );
scriptEvent void turnToEntity( entity ent );
scriptEvent float moveStatus();
scriptEvent void stopMove();
scriptEvent void moveToCover();
scriptEvent void moveToEnemy();
scriptEvent void moveToEnemyHeight();
scriptEvent void moveOutOfRange( entity ent, float range );
scriptEvent void moveToAttackPosition( entity ent, string attack_anim );
scriptEvent void wander();
scriptEvent void moveToEntity( entity destination );
scriptEvent void moveToPosition( vector position );
scriptEvent void slideTo( vector position, float time );
scriptEvent float facingIdeal();
scriptEvent void faceEnemy();
scriptEvent void faceEntity( entity ent );
scriptEvent entity getCombatNode();
scriptEvent float enemyInCombatCone( entity combatNode, float use_current_enemy_location );
scriptEvent void waitMove();
scriptEvent vector getJumpVelocity( vector pos, float speed, float max_jump_height );
scriptEvent float entityInAttackCone( entity ent );
scriptEvent float canSee( entity ent );
scriptEvent float enemyRange();
scriptEvent float enemyRange2D();
// sets the entity (player) trying to talk to the character
scriptEvent void setTalkTarget( entity target );
// returns the entity (player) trying to talk to the character
scriptEvent entity getTalkTarget();
scriptEvent entity getEnemy();
scriptEvent vector getEnemyPos();
scriptEvent vector getEnemyEyePos();
// Tries to predict the player's movement based on the AAS and his direction of movement.
scriptEvent vector predictEnemyPos( float time );
scriptEvent float canHitEnemy();
scriptEvent float canHitEnemyFromAnim( string anim );
scriptEvent float canHitEnemyFromJoint( string jointname );
scriptEvent float enemyPositionValid();
scriptEvent void chargeAttack( string damageDef );
scriptEvent float testChargeAttack();
scriptEvent float testAnimMoveTowardEnemy( string animname );
scriptEvent float testAnimMove( string animname );
scriptEvent float testMoveToPosition( vector position );
scriptEvent float testMeleeAttack();
scriptEvent float testAnimAttack( string animname );
scriptEvent void preBurn();
scriptEvent void burn();
scriptEvent void clearBurn();
// enables/disables smoke particles on bones. pass in the particle #, or ALL_PARTICLES for turning on/off all particle systems.
// particles are spawned in the order they appear in the entityDef
scriptEvent void setSmokeVisibility( float particle_num, float on );
// returns the # of emitters defined by 'smokeParticleSystem' in the entitydef
scriptEvent float numSmokeEmitters();
scriptEvent void waitAction( string name );
scriptEvent void stopThinking();
scriptEvent float getTurnDelta();
// returns the current movetype
scriptEvent float getMoveType();
// set the current movetype. movetypes are defined in ai_base.script
scriptEvent void setMoveType( float movetype );
scriptEvent void saveMove();
scriptEvent void restoreMove();
scriptEvent void allowMovement( float allow );
scriptEvent void enableClip();
scriptEvent void disableClip();
scriptEvent void enableGravity();
scriptEvent void disableGravity();
scriptEvent void enableAFPush();
scriptEvent void disableAFPush();
// set the speed flying creatures move at. also sets speed for moveTypeSlide.
scriptEvent void setFlySpeed( float speed );
// sets the prefered height relative to the player's view height to fly at
scriptEvent void setFlyOffset( float offset );
// sets the prefered height relative to the player's view height to fly at to the value set in the def file
scriptEvent void clearFlyOffset();
// Finds the closest targeted entity of the specified type.
scriptEvent entity getClosestHiddenTarget( string entity_type );
// Finds a random targeted entity of the specified type.
scriptEvent entity getRandomTarget( string entity_type );
// Approximate travel distance to point.
scriptEvent float travelDistanceToPoint( vector destination );
// Approximate travel distance to entity.
scriptEvent float travelDistanceToEntity( entity destination );
// Approximate travel distance between two entities.
scriptEvent float travelDistanceBetweenEntities( entity source, entity dest );
// Approximate travel distance between two points.
scriptEvent float travelDistanceBetweenPoints( vector source, vector dest );
// Aims the character's eyes and head toward an entity for a period of time.
scriptEvent void lookAt( entity focusEntity, float duration );
// Aims the character's eyes and head toward the current enemy for a period of time.
scriptEvent void lookAtEnemy( float duration );
// Enables or disables head looking (may be obsolete).
scriptEvent void setBoneMod( float allowBoneMod );
// Kills the monster.
scriptEvent void kill();
// Tells the monster to activate when flashlight shines on them.
scriptEvent void wakeOnFlashlight( float enable );
// Sets whether the player can talk to this character or not.
scriptEvent void setTalkState( float state );
// Updates the last known position of the enemy independent
// from whether or not the enemy is visible.
scriptEvent void locateEnemy();
// kicks any obstacle in the character's path. pass in $null_entity if you don't have a specific entity to kick.
scriptEvent void kickObstacles( entity kickEnt, float force );
// gets the obstacle in the character's path
scriptEvent entity getObstacle();
// tries to push the point into a valid AAS area
scriptEvent vector pushPointIntoAAS( vector pos );
// gets the rate the character turns
scriptEvent float getTurnRate();
// set the rate the character turns at
scriptEvent void setTurnRate( float rate );
// enable/disable animation controlled turning. pass in the maximum # of degrees the animation turns. use an amount of 0 to disable.
scriptEvent void animTurn( float angle );
// normally, when hidden, monsters do not run physics. this enables physics when hidden.
scriptEvent void allowHiddenMovement( float enable );
// returns an entity within the bounds specified
scriptEvent entity findActorsInBounds( vector mins, vector maxs );
// returns true if character can walk to specified position. for walking monsters, position should be near the floor.
scriptEvent float canReachPosition( vector pos );
// returns true if character can walk to entity's position. for walking monsters, entity should be near the floor.
scriptEvent float canReachEntity( entity ent );
// returns true if character can walk to enemy's position. for walking monsters, enemy should be near the floor.
scriptEvent float canReachEnemy();
// returns the position of the entity within the aas if possible, otherwise just the entity position.
scriptEvent vector getReachableEntityPosition( entity ent );
/***********************************************************************
AI - Vagary
***********************************************************************/
// finds a moveable object to throw at the enemy
scriptEvent entity vagary_ChooseObjectToThrow( vector mins, vector maxs, float speed, float minDist, float offset );
// throws object at enemy
scriptEvent void vagary_ThrowObjectAtEnemy( entity ent, float speed );