// vim: set ts=4 sw=4 tw=99 noet: // // AMX Mod X, based on AMX Mod by Aleksander Naszko ("OLO"). // Copyright (C) The AMX Mod X Development Team. // // This software is licensed under the GNU General Public License, version 3 or higher. // Additional exceptions apply. For full license details, see LICENSE.txt or visit: // https://alliedmods.net/amxmodx-license // // Message Constants // #if defined _message_const_included #endinput #endif #define _message_const_included /** * Destination types for message_begin() */ #define MSG_BROADCAST 0 // Unreliable to all #define MSG_ONE 1 // Reliable to one (msg_entity) #define MSG_ALL 2 // Reliable to all #define MSG_INIT 3 // Write to the init string #define MSG_PVS 4 // Ents in PVS of org #define MSG_PAS 5 // Ents in PAS of org #define MSG_PVS_R 6 // Reliable to PVS #define MSG_PAS_R 7 // Reliable to PAS #define MSG_ONE_UNRELIABLE 8 // Send to one client, but don't put in reliable stream, put in unreliable datagram (could be dropped) #define MSG_SPEC 9 // Sends to all spectator proxies /** * Hardcoded message types for message_begin() * * @note Look at the actual HLSDK for details */ #define SVC_NOP 1 #define SVC_DISCONNECT 2 #define SVC_EVENT 3 #define SVC_VERSION 4 #define SVC_SETVIEW 5 #define SVC_SOUND 6 #define SVC_TIME 7 #define SVC_PRINT 8 #define SVC_STUFFTEXT 9 #define SVC_SETANGLE 10 #define SVC_SERVERINFO 11 #define SVC_LIGHTSTYLE 12 #define SVC_UPDATEUSERINFO 13 #define SVC_DELTADESCRIPTION 14 #define SVC_CLIENTDATA 15 #define SVC_STOPSOUND 16 #define SVC_PINGS 17 #define SVC_PARTICLE 18 #define SVC_DAMAGE 19 #define SVC_SPAWNSTATIC 20 #define SVC_EVENT_RELIABLE 21 #define SVC_SPAWNBASELINE 22 #define SVC_TEMPENTITY 23 #define SVC_SETPAUSE 24 #define SVC_SIGNONNUM 25 #define SVC_CENTERPRINT 26 #define SVC_KILLEDMONSTER 27 #define SVC_FOUNDSECRET 28 #define SVC_SPAWNSTATICSOUND 29 #define SVC_INTERMISSION 30 #define SVC_FINALE 31 #define SVC_CDTRACK 32 #define SVC_RESTORE 33 #define SVC_CUTSCENE 34 #define SVC_WEAPONANIM 35 #define SVC_DECALNAME 36 #define SVC_ROOMTYPE 37 #define SVC_ADDANGLE 38 #define SVC_NEWUSERMSG 39 #define SVC_PACKETENTITIES 40 #define SVC_DELTAPACKETENTITIES 41 #define SVC_CHOKE 42 #define SVC_RESOURCELIST 43 #define SVC_NEWMOVEVARS 44 #define SVC_RESOURCEREQUEST 45 #define SVC_CUSTOMIZATION 46 #define SVC_CROSSHAIRANGLE 47 #define SVC_SOUNDFADE 48 #define SVC_FILETXFERFAILED 49 #define SVC_HLTV 50 #define SVC_DIRECTOR 51 #define SVC_VOICEINIT 52 #define SVC_VOICEDATA 53 #define SVC_SENDEXTRAINFO 54 #define SVC_TIMESCALE 55 /** * Flags for set_msg_block() */ #define BLOCK_NOT 0 #define BLOCK_ONCE 1 #define BLOCK_SET 2 /** * Message argument types used with get_msg_argtype() and set_msg_arg_* */ enum { ARG_BYTE = 1, /* int */ ARG_CHAR, /* int */ ARG_SHORT, /* int */ ARG_LONG, /* int */ ARG_ANGLE, /* float */ ARG_COORD, /* float */ ARG_STRING, /* string */ ARG_ENTITY, /* int */ }; /** * @section TempEntity messages for message_begin() */ /** * Beam effect between two points * * @note * write_byte(TE_BEAMPOINTS) * write_coord(startposition.x) * write_coord(startposition.y) * write_coord(startposition.z) * write_coord(endposition.x) * write_coord(endposition.y) * write_coord(endposition.z) * write_short(sprite index) * write_byte(starting frame) * write_byte(frame rate in 0.1's) * write_byte(life in 0.1's) * write_byte(line width in 0.1's) * write_byte(noise amplitude in 0.01's) * write_byte(red) * write_byte(green) * write_byte(blue) * write_byte(brightness) * write_byte(scroll speed in 0.1's) */ #define TE_BEAMPOINTS 0 /** * Beam effect between a point and an entity * * @note * write_byte(TE_BEAMENTPOINT) * write_short(start entity) * write_coord(endposition.x) * write_coord(endposition.y) * write_coord(endposition.z) * write_short(sprite index) * write_byte(starting frame) * write_byte(frame rate in 0.1's) * write_byte(life in 0.1's) * write_byte(line width in 0.1's) * write_byte(noise amplitude in 0.01's) * write_byte(red) * write_byte(green) * write_byte(blue) * write_byte(brightness) * write_byte(scroll speed in 0.1's) */ #define TE_BEAMENTPOINT 1 /** * Particle effect plus ricochet sound * * @note * write_byte(TE_GUNSHOT) * write_coord(position.x) * write_coord(position.y) * write_coord(position.z) */ #define TE_GUNSHOT 2 /** * Additive sprite, 2 dynamic lights, flickering particles, explosion sound, * move vertically 8 pps * * @note * write_byte(TE_EXPLOSION) * write_coord(position.x) * write_coord(position.y) * write_coord(position.z) * write_short(sprite index) * write_byte(scale in 0.1's) * write_byte(framerate) * write_byte(flags) */ #define TE_EXPLOSION 3 /** * Flags for the TE_EXPLOSION effect, controlling its performance and aesthetic * features */ #define TE_EXPLFLAG_NONE 0 // All flags clear makes default Half-Life explosion #define TE_EXPLFLAG_NOADDITIVE 1 // Sprite will be drawn opaque (ensure that the sprite you send is a non-additive sprite) #define TE_EXPLFLAG_NODLIGHTS 2 // Do not render dynamic lights #define TE_EXPLFLAG_NOSOUND 4 // Do not play client explosion sound #define TE_EXPLFLAG_NOPARTICLES 8 // Do not draw particles /** * Quake1 "tarbaby" explosion with sound * * @note * write_byte(TE_TAREXPLOSION) * write_coord(position.x) * write_coord(position.y) * write_coord(position.z) */ #define TE_TAREXPLOSION 4 /** * Alphablend sprite, move vertically 30pps * * @note * write_byte(TE_SMOKE) * write_coord(position.x) * write_coord(position.y) * write_coord(position.z) * write_short(sprite index) * write_byte(scale in 0.1's) * write_byte(framerate) */ #define TE_SMOKE 5 /** * Tracer effect from point to point * * @note * write_byte(TE_TRACER) * write_coord(startposition.x) * write_coord(startposition.y) * write_coord(startposition.z) * write_coord(endposition.x) * write_coord(endposition.y) * write_coord(endposition.z) */ #define TE_TRACER 6 /** * TE_BEAMPOINTS with simplified parameters * * @note * write_byte(TE_LIGHTNING) * write_coord(startposition.x) * write_coord(startposition.y) * write_coord(startposition.z) * write_coord(endposition.x) * write_coord(endposition.y) * write_coord(endposition.z) * write_byte(life in 0.1's) * write_byte(width in 0.1's) * write_byte(amplitude in 0.01's) * write_short(sprite model index) */ #define TE_LIGHTNING 7 /** * TE_BEAMENTS * * @note * write_byte(TE_BEAMENTS) * write_short(start entity) * write_short(end entity) * write_short(sprite index) * write_byte(starting frame) * write_byte(frame rate in 0.1's) * write_byte(life in 0.1's) * write_byte(line width in 0.1's) * write_byte(noise amplitude in 0.01's) * write_byte(red) * write_byte(green) * write_byte(blue) * write_byte(brightness) * write_byte(scroll speed in 0.1's) */ #define TE_BEAMENTS 8 /** * 8 random tracers with gravity, ricochet sprite * * @note * write_byte(TE_SPARKS) * write_coord(position.x) * write_coord(position.y) * write_coord(position.z) */ #define TE_SPARKS 9 /** * Quake1 lava splash * * @note * write_byte(TE_LAVASPLASH) * write_coord(position.x) * write_coord(position.y) * write_coord(position.z) */ #define TE_LAVASPLASH 10 /** * Quake1 teleport splash * * @note * write_byte(TE_TELEPORT) * write_coord(position.x) * write_coord(position.y) * write_coord(position.z) */ #define TE_TELEPORT 11 /** * Quake1 colormaped (base palette) particle explosion with sound * * @note * write_byte(TE_EXPLOSION2) * write_coord(position.x) * write_coord(position.y) * write_coord(position.z) * write_byte(starting color) * write_byte(num colors) */ #define TE_EXPLOSION2 12 /** * Decal from the .BSP file * * @note * write_byte(TE_BSPDECAL) * write_coord(position.x) decal position (center of texture in world) * write_coord(position.y) * write_coord(position.z) * write_short(texture index of precached decal texture name) * write_short(entity index) * [optional - write_short(index of model of above entity) only included if previous short is non-zero (not the world)] */ #define TE_BSPDECAL 13 /** * Tracers moving toward a point * * @note * write_byte(TE_IMPLOSION) * write_coord(position.x) * write_coord(position.y) * write_coord(position.z) * write_byte(radius) * write_byte(count) * write_byte(life in 0.1's) */ #define TE_IMPLOSION 14 /** * Line of moving glow sprites with gravity, fadeout, and collisions * * @note * write_byte(TE_SPRITETRAIL) * write_coord(startposition.x) * write_coord(startposition.y) * write_coord(startposition.z) * write_coord(endposition.x) * write_coord(endposition.y) * write_coord(endposition.z) * write_short(sprite index) * write_byte(count) * write_byte(life in 0.1's) * write_byte(scale in 0.1's) * write_byte(velocity along vector in 10's) * write_byte(randomness of velocity in 10's) */ #define TE_SPRITETRAIL 15 /** * Additive sprite, plays 1 cycle * * @note * write_byte(TE_SPRITE) * write_coord(position.x) * write_coord(position.y) * write_coord(position.z) * write_short(sprite index) * write_byte(scale in 0.1's) * write_byte(brightness) */ #define TE_SPRITE 17 /** * A beam with a sprite at the end * * @note * write_byte(TE_BEAMSPRITE) * write_coord(startposition.x) * write_coord(startposition.y) * write_coord(startposition.z) * write_coord(endposition.x) * write_coord(endposition.y) * write_coord(endposition.z) * write_short(beam sprite index) * write_short(end sprite index) */ #define TE_BEAMSPRITE 18 /** * Screen aligned beam ring, expands to max radius over lifetime * * @note * write_byte(TE_BEAMTORUS) * write_coord(position.x) * write_coord(position.y) * write_coord(position.z) * write_coord(axis.x) * write_coord(axis.y) * write_coord(axis.z) * write_short(sprite index) * write_byte(starting frame) * write_byte(frame rate in 0.1's) * write_byte(life in 0.1's) * write_byte(line width in 0.1's) * write_byte(noise amplitude in 0.01's) * write_byte(red) * write_byte(green) * write_byte(blue) * write_byte(brightness) * write_byte(scroll speed in 0.1's) */ #define TE_BEAMTORUS 19 /** * Disk that expands to max radius over lifetime * * @note * write_byte(TE_BEAMDISK) * write_coord(position.x) * write_coord(position.y) * write_coord(position.z) * write_coord(axis.x) * write_coord(axis.y) * write_coord(axis.z) * write_short(sprite index) * write_byte(starting frame) * write_byte(frame rate in 0.1's) * write_byte(life in 0.1's) * write_byte(line width in 0.1's) * write_byte(noise amplitude in 0.01's) * write_byte(red) * write_byte(green) * write_byte(blue) * write_byte(brightness) * write_byte(scroll speed in 0.1's) */ #define TE_BEAMDISK 20 /** * Cylinder that expands to max radius over lifetime * * @note * write_byte(TE_BEAMCYLINDER) * write_coord(position.x) * write_coord(position.y) * write_coord(position.z) * write_coord(axis.x) * write_coord(axis.y) * write_coord(axis.z) * write_short(sprite index) * write_byte(starting frame) * write_byte(frame rate in 0.1's) * write_byte(life in 0.1's) * write_byte(line width in 0.1's) * write_byte(noise amplitude in 0.01's) * write_byte(red) * write_byte(green) * write_byte(blue) * write_byte(brightness) * write_byte(scroll speed in 0.1's) */ #define TE_BEAMCYLINDER 21 /** * Create a line of decaying beam segments until entity stops moving * * @note * write_byte(TE_BEAMFOLLOW) * write_short(entity:attachment to follow) * write_short(sprite index) * write_byte(life in 0.1's) * write_byte(line width in 0.1's) * write_byte(red) * write_byte(green) * write_byte(blue) * write_byte(brightness) */ #define TE_BEAMFOLLOW 22 /** * TE_GLOWSPRITE * * @note * write_byte(TE_GLOWSPRITE) * write_coord(position.x) * write_coord(position.y) * write_coord(position.z) * write_short(model index) * write_byte(scale / 10) * write_byte(size) * write_byte(brightness) */ #define TE_GLOWSPRITE 23 /** * Connect a beam ring to two entities * * @note * write_byte(TE_BEAMRING) * write_short(start entity) * write_short(end entity) * write_short(sprite index) * write_byte(starting frame) * write_byte(frame rate in 0.1's) * write_byte(life in 0.1's) * write_byte(line width in 0.1's) * write_byte(noise amplitude in 0.01's) * write_byte(red) * write_byte(green) * write_byte(blue) * write_byte(brightness) * write_byte(scroll speed in 0.1's) */ #define TE_BEAMRING 24 /** * Oriented shower of tracers * * @note * write_byte(TE_STREAK_SPLASH) * write_coord(startposition.x) * write_coord(startposition.y) * write_coord(startposition.z) * write_coord(vector.x) * write_coord(vector.y) * write_coord(vector.z) * write_byte(color) * write_short(count) * write_short(base speed) * write_short(ramdon velocity) */ #define TE_STREAK_SPLASH 25 /** * Dynamic light, effect world, minor entity effect * * @note * write_byte(TE_DLIGHT) * write_coord(position.x) * write_coord(position.y) * write_coord(position.z) * write_byte(radius in 10's) * write_byte(red) * write_byte(green) * write_byte(blue) * write_byte(brightness) * write_byte(life in 10's) * write_byte(decay rate in 10's) */ #define TE_DLIGHT 27 /** * Point entity light, no world effect * * @note * write_byte(TE_ELIGHT) * write_short(entity:attachment to follow) * write_coord(position.x) * write_coord(position.y) * write_coord(position.z) * write_coord(radius) * write_byte(red) * write_byte(green) * write_byte(blue) * write_byte(life in 0.1's) * write_coord(decay rate) */ #define TE_ELIGHT 28 /** * TE_TEXTMESSAGE * * @note * write_byte(TE_TEXTMESSAGE) * write_byte(channel) * write_short(x) -1 = center) * write_short(y) -1 = center) * write_byte(effect) 0 = fade in/fade out, 1 is flickery credits, 2 is write out (training room) * write_byte(red) - text color * write_byte(green) * write_byte(blue) * write_byte(alpha) * write_byte(red) - effect color * write_byte(green) * write_byte(blue) * write_byte(alpha) * write_short(fadein time) * write_short(fadeout time) * write_short(hold time) * [optional] write_short(fxtime) time the highlight lags behing the leading text in effect 2 * write_string(text message) 512 chars max string size */ #define TE_TEXTMESSAGE 29 /** * TE_LINE * * @note * write_byte(TE_LINE) * write_coord(startposition.x) * write_coord(startposition.y) * write_coord(startposition.z) * write_coord(endposition.x) * write_coord(endposition.y) * write_coord(endposition.z) * write_short(life in 0.1 s) * write_byte(red) * write_byte(green) * write_byte(blue) */ #define TE_LINE 30 /** * TE_BOX * * @note * write_byte(TE_BOX) * write_coord(boxmins.x) * write_coord(boxmins.y) * write_coord(boxmins.z) * write_coord(boxmaxs.x) * write_coord(boxmaxs.y) * write_coord(boxmaxs.z) * write_short(life in 0.1 s) * write_byte(red) * write_byte(green) * write_byte(blue) */ #define TE_BOX 31 /** * Kill all beams attached to entity * * @note * write_byte(TE_KILLBEAM) * write_short(entity) */ #define TE_KILLBEAM 99 /** * TE_LARGEFUNNEL * * @note * write_byte(TE_LARGEFUNNEL) * write_coord(position.x) * write_coord(position.y) * write_coord(position.z) * write_short(sprite index) * write_short(flags) */ #define TE_LARGEFUNNEL 100 /** * Particle spray * * @note * write_byte(TE_BLOODSTREAM) * write_coord(position.x) * write_coord(position.y) * write_coord(position.z) * write_coord(vector.x) * write_coord(vector.y) * write_coord(vector.z) * write_byte(color) * write_byte(speed) */ #define TE_BLOODSTREAM 101 /** * Line of particles every 5 units, dies in 30 seconds * * @note * write_byte(TE_SHOWLINE) * write_coord(startposition.x) * write_coord(startposition.y) * write_coord(startposition.z) * write_coord(endposition.x) * write_coord(endposition.y) * write_coord(endposition.z) */ #define TE_SHOWLINE 102 /** * Particle spray * * @note * write_byte(TE_BLOOD) * write_coord(position.x) * write_coord(position.y) * write_coord(position.z) * write_coord(vector.x) * write_coord(vector.y) * write_coord(vector.z) * write_byte(color) * write_byte(speed) */ #define TE_BLOOD 103 /** * Decal applied to a brush entity (not the world) * * @note * write_byte(TE_DECAL) * write_coord(position.x) decal position (center of texture in world) * write_coord(position.y) * write_coord(position.z) * write_byte(texture index of precached decal texture name) * write_short(entity index) */ #define TE_DECAL 104 /** * Create alpha sprites inside of entity, float upwards * * @note * write_byte(TE_FIZZ) * write_short(entity) * write_short(sprite index) * write_byte density) */ #define TE_FIZZ 105 /** * Create a moving model that bounces and makes a sound when it hits * * @note * write_byte(TE_MODEL) * write_coord(position.x) * write_coord(position.y) * write_coord(position.z) * write_coord(velocity.x) * write_coord(velocity.y) * write_coord(velocity.z) * write_angle(initial yaw) * write_short(model index) * write_byte(bounce sound type) * write_byte(life in 0.1's) */ #define TE_MODEL 106 /** * Spherical shower of models, picks from set * * @note * write_byte(TE_EXPLODEMODEL) * write_coord(origin.x) * write_coord(origin.y) * write_coord(origin.z) * write_coord(velocity.x) * write_coord(velocity.y) * write_coord(velocity.z) * write_short(model index) * write_short(count) * write_byte(life in 0.1's) */ #define TE_EXPLODEMODEL 107 /** * Box of models or sprites * * @note * write_byte(TE_BREAKMODEL) * write_coord(position.x) * write_coord(position.y) * write_coord(position.z) * write_coord(size.x) * write_coord(size.y) * write_coord(size.z) * write_coord(velocity.x) * write_coord(velocity.y) * write_coord(velocity.z) * write_byte(random velocity in 10's) * write_short(sprite or model index) * write_byte(count) * write_byte(life in 0.1 secs) * write_byte(flags) */ #define TE_BREAKMODEL 108 /** * Decal and ricochet sound * * @note * write_byte(TE_GUNSHOTDECAL) * write_coord(position.x) * write_coord(position.y) * write_coord(position.z) * write_short(entity index???) * write_byte(decal???) */ #define TE_GUNSHOTDECAL 109 /** * Spray of alpha sprites * * @note * write_byte(TE_SPRITE_SPRAY) * write_coord(position.x) * write_coord(position.y) * write_coord(position.z) * write_coord(velocity.x) * write_coord(velocity.y) * write_coord(velocity.z) * write_short(sprite index) * write_byte(count) * write_byte(speed) * write_byte(noise) */ #define TE_SPRITE_SPRAY 110 /** * Quick spark sprite, client ricochet sound. * * @note * write_byte(TE_ARMOR_RICOCHET) * write_coord(position.x) * write_coord(position.y) * write_coord(position.z) * write_byte(scale in 0.1's) */ #define TE_ARMOR_RICOCHET 111 /** * TE_PLAYERDECAL * * @note * write_byte(TE_PLAYERDECAL) * write_byte(playerindex) * write_coord(position.x) * write_coord(position.y) * write_coord(position.z) * write_short(entity???) * write_byte(decal number) * [optional] write_short(model index) */ #define TE_PLAYERDECAL 112 /** * Create alpha sprites inside of box, float upwards * * @note * write_byte(TE_BUBBLES) * write_coord(position.x) (min start position) * write_coord(position.y) * write_coord(position.z) * write_coord(position.x) (max start position) * write_coord(position.y) * write_coord(position.z) * write_coord(float height) * write_short(model index) * write_byte(count) * write_coord(speed) */ #define TE_BUBBLES 113 /** * Create alpha sprites along a line, float upwards * * @note * write_byte(TE_BUBBLETRAIL) * write_coord(position.x) (min start position) * write_coord(position.y) (min start position) * write_coord(position.z) (min start position) * write_coord(position.x) (max start position) * write_coord(position.y) (max start position) * write_coord(position.z) (max start position) * write_coord(float height) * write_short(model index) * write_byte(count) * write_coord(speed) */ #define TE_BUBBLETRAIL 114 /** * Spray of opaque sprite1's that fall, single sprite2 for 1..2 secs (this is a high-priority tent) * * @note * write_byte(TE_BLOODSPRITE) * write_coord(position.x) * write_coord(position.y) * write_coord(position.z) * write_short(sprite1 index) * write_short(sprite2 index) * write_byte(color) * write_byte(scale) */ #define TE_BLOODSPRITE 115 /** * Decal applied to the world brush * * @note * write_byte(TE_WORLDDECAL) * write_coord(position.x) decal position (center of texture in world) * write_coord(position.y) * write_coord(position.z) * write_byte(texture index of precached decal texture name) */ #define TE_WORLDDECAL 116 /** * Decal (with texture index > 256) applied to world brush * * @note * write_byte(TE_WORLDDECALHIGH) * write_coord(position.x) decal position (center of texture in world) * write_coord(position.y) * write_coord(position.z) * write_byte(texture index of precached decal texture name - 256) */ #define TE_WORLDDECALHIGH 117 /** * Same as TE_DECAL, but the texture index was greater than 256 * * @note * write_byte(TE_DECALHIGH) * write_coord(position.x) decal position (center of texture in world) * write_coord(position.y) * write_coord(position.z) * write_byte(texture index of precached decal texture name - 256) * write_short(entity index) */ #define TE_DECALHIGH 118 /** * Makes a projectile (like a nail) (this is a high-priority tent) * * @note * write_byte(TE_PROJECTILE) * write_coord(position.x) * write_coord(position.y) * write_coord(position.z) * write_coord(velocity.x) * write_coord(velocity.y) * write_coord(velocity.z) * write_short(modelindex) * write_byte(life) * write_byte(owner) projectile won't collide with owner (if owner == 0, projectile will hit any client). */ #define TE_PROJECTILE 119 /** * Throws a shower of sprites or models * * @note * write_byte(TE_SPRAY) * write_coord(position.x) * write_coord(position.y) * write_coord(position.z) * write_coord(direction.x) * write_coord(direction.y) * write_coord(direction.z) * write_short(modelindex) * write_byte(count) * write_byte(speed) * write_byte(noise) * write_byte(rendermode) */ #define TE_SPRAY 120 /** * Sprites emit from a player's bounding box (ONLY use for players!) * * @note * write_byte(TE_PLAYERSPRITES) * write_short(playernum) * write_short(sprite modelindex) * write_byte(count) * write_byte(variance) (0 = no variance in size) (10 = 10% variance in size) */ #define TE_PLAYERSPRITES 121 /** * Very similar to lavasplash * * @note * write_byte(TE_PARTICLEBURST) * write_coord(origin) * write_short(radius) * write_byte(particle color) * write_byte(duration * 10) (will be randomized a bit) */ #define TE_PARTICLEBURST 122 /** * Makes a field of fire * * @note * write_byte(TE_FIREFIELD) * write_coord(origin) * write_short(radius) (fire is made in a square around origin. -radius, -radius to radius, radius) * write_short(modelindex) * write_byte(count) * write_byte(flags) * write_byte(duration (in seconds) * 10) (will be randomized a bit) */ #define TE_FIREFIELD 123 /** * Flags for the TE_FIREFIELD effect, controlling its performance and aesthetic * features */ #define TEFIRE_FLAG_ALLFLOAT 1 // All sprites will drift upwards as they animate #define TEFIRE_FLAG_SOMEFLOAT 2 // Some of the sprites will drift upwards. (50% chance) #define TEFIRE_FLAG_LOOP 4 // If set, sprite plays at 15 fps, otherwise plays at whatever rate stretches the animation over the sprite's duration. #define TEFIRE_FLAG_ALPHA 8 // If set, sprite is rendered alpha blended at 50% else, opaque #define TEFIRE_FLAG_PLANAR 16 // If set, all fire sprites have same initial Z instead of randomly filling a cube. /** * Attaches a TENT to a player (this is a high-priority tent) * * @note * write_byte(TE_PLAYERATTACHMENT) * write_byte(entity index of player) * write_coord(vertical offset) (attachment origin.z = player origin.z + vertical offset) * write_short(model index) * write_short(life * 10 ) */ #define TE_PLAYERATTACHMENT 124 /** * TE_KILLPLAYERATTACHMENTS * * @note * write_byte(TE_KILLPLAYERATTACHMENTS) * write_byte(entity index of player) */ #define TE_KILLPLAYERATTACHMENTS 125 * Will expire all TENTS attached to a player. /** * Much more compact shotgun message * * @note This message is used to make a client approximate a 'spray' of gunfire. * Any weapon that fires more than one bullet per frame and fires in a bit * of a spread is a good candidate for MULTIGUNSHOT use. (shotguns) * @note This effect makes the client do traces for each bullet, these client * traces ignore entities that have studio models.Traces are 4096 long. * @note * write_byte(TE_MULTIGUNSHOT) * write_coord(origin.x) * write_coord(origin.y) * write_coord(origin.z) * write_coord(direction.x) * write_coord(direction.y) * write_coord(direction.z) * write_coord(x noise * 100) * write_coord(y noise * 100) * write_byte(count) * write_byte(bullethole decal texture index) */ #define TE_MULTIGUNSHOT 126 /** * Larger message than the standard tracer, but allows some customization. * * @note * write_byte(TE_USERTRACER) * write_coord(origin.x) * write_coord(origin.y) * write_coord(origin.z) * write_coord(velocity.x) * write_coord(velocity.y) * write_coord(velocity.z) * write_byte(life * 10) * write_byte(color) this is an index into an array of color vectors in the engine. (0 - ) * write_byte(length * 10) */ #define TE_USERTRACER 127 /** * @endsection */ /** * From hltv.h from the HLSDK, these are used in conjunction with SVC_DIRECTOR * sub commands of svc_director */ #define DRC_CMD_NONE 0 // NULL director command #define DRC_CMD_START 1 // start director mode #define DRC_CMD_EVENT 2 // informs about director command #define DRC_CMD_MODE 3 // switches camera modes #define DRC_CMD_CAMERA 4 // sets camera registers #define DRC_CMD_TIMESCALE 5 // sets time scale #define DRC_CMD_MESSAGE 6 // send HUD centerprint #define DRC_CMD_SOUND 7 // plays a particular sound #define DRC_CMD_STATUS 8 // status info about broadcast #define DRC_CMD_BANNER 9 // banner file name for HLTV gui #define DRC_CMD_FADE 10 // send screen fade command #define DRC_CMD_SHAKE 11 // send screen shake command #define DRC_CMD_STUFFTEXT 12 // like the normal svc_stufftext but as director command #define DRC_CMD_LAST 12 /** * HLTV_EVENT event flags */ #define DRC_FLAG_PRIO_MASK 0x0F // priorities between 0 and 15 (15 most important) #define DRC_FLAG_SIDE (1<<4) // #define DRC_FLAG_DRAMATIC (1<<5) // is a dramatic scene #define DRC_FLAG_SLOWMOTION (1<<6) // would look good in SloMo #define DRC_FLAG_FACEPLAYER (1<<7) // player is doning something (reload/defuse bomb etc) #define DRC_FLAG_INTRO (1<<8) // is a introduction scene #define DRC_FLAG_FINAL (1<<9) // is a final scene #define DRC_FLAG_NO_RANDOM (1<<10) // don't randomize event data #define MAX_DIRECTOR_CMD_PARAMETERS 4 #define MAX_DIRECTOR_CMD_STRING 128