faluco@1039: /**
faluco@1039: * vim: set ts=4 :
ds@1330: * =============================================================================
ds@1947: * SourceMod (C)2004-2008 AlliedModders LLC. All rights reserved.
ds@1330: * =============================================================================
ds@1330: *
ds@1330: * This file is part of the SourceMod/SourcePawn SDK.
faluco@1039: *
ds@1330: * This program is free software; you can redistribute it and/or modify it under
ds@1330: * the terms of the GNU General Public License, version 3.0, as published by the
ds@1330: * Free Software Foundation.
ds@1330: *
ds@1330: * This program is distributed in the hope that it will be useful, but WITHOUT
ds@1330: * ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS
ds@1330: * FOR A PARTICULAR PURPOSE. See the GNU General Public License for more
ds@1330: * details.
ds@1330: *
ds@1330: * You should have received a copy of the GNU General Public License along with
ds@1330: * this program. If not, see .
ds@1330: *
ds@1330: * As a special exception, AlliedModders LLC gives you permission to link the
ds@1330: * code of this program (as well as its derivative works) to "Half-Life 2," the
ds@1330: * "Source Engine," the "SourcePawn JIT," and any Game MODs that run on software
ds@1330: * by the Valve Corporation. You must obey the GNU General Public License in
ds@1330: * all respects for all other code used. Additionally, AlliedModders LLC grants
ds@1330: * this exception to all derivative works. AlliedModders LLC defines further
ds@1330: * exceptions, found in LICENSE.txt (as of this writing, version JULY-31-2007),
ds@1330: * or .
faluco@1039: *
faluco@1039: * Version: $Id$
faluco@1039: */
faluco@1039:
faluco@1039: #if defined _te_stocks_included
faluco@1039: #endinput
faluco@1039: #endif
faluco@1039: #define _te_stocks_included
faluco@1039:
faluco@1039: /**
faluco@1040: * @section TE Explosion flags.
faluco@1040: */
faluco@1040: #define TE_EXPLFLAG_NONE 0x0 /**< all flags clear makes default Half-Life explosion */
faluco@1040: #define TE_EXPLFLAG_NOADDITIVE 0x1 /**< sprite will be drawn opaque (ensure that the sprite you send is a non-additive sprite) */
faluco@1040: #define TE_EXPLFLAG_NODLIGHTS 0x2 /**< do not render dynamic lights */
faluco@1040: #define TE_EXPLFLAG_NOSOUND 0x4 /**< do not play client explosion sound */
faluco@1040: #define TE_EXPLFLAG_NOPARTICLES 0x8 /**< do not draw particles */
faluco@1040: #define TE_EXPLFLAG_DRAWALPHA 0x10 /**< sprite will be drawn alpha */
faluco@1040: #define TE_EXPLFLAG_ROTATE 0x20 /**< rotate the sprite randomly */
faluco@1040: #define TE_EXPLFLAG_NOFIREBALL 0x40 /**< do not draw a fireball */
faluco@1040: #define TE_EXPLFLAG_NOFIREBALLSMOKE 0x80 /**< do not draw smoke with the fireball */
faluco@1040:
faluco@1040: /**
faluco@1040: * @endsection
faluco@1040: */
faluco@1040:
faluco@1040: /**
faluco@1040: * @section TE Beam flags.
faluco@1040: */
faluco@1040: #define FBEAM_STARTENTITY 0x00000001
faluco@1040: #define FBEAM_ENDENTITY 0x00000002
faluco@1040: #define FBEAM_FADEIN 0x00000004
faluco@1040: #define FBEAM_FADEOUT 0x00000008
faluco@1040: #define FBEAM_SINENOISE 0x00000010
faluco@1040: #define FBEAM_SOLID 0x00000020
faluco@1040: #define FBEAM_SHADEIN 0x00000040
faluco@1040: #define FBEAM_SHADEOUT 0x00000080
faluco@1040: #define FBEAM_ONLYNOISEONCE 0x00000100 /**< Only calculate our noise once */
faluco@1040: #define FBEAM_NOTILE 0x00000200
faluco@1040: #define FBEAM_USE_HITBOXES 0x00000400 /**< Attachment indices represent hitbox indices instead when this is set. */
faluco@1040: #define FBEAM_STARTVISIBLE 0x00000800 /**< Has this client actually seen this beam's start entity yet? */
faluco@1040: #define FBEAM_ENDVISIBLE 0x00001000 /**< Has this client actually seen this beam's end entity yet? */
faluco@1040: #define FBEAM_ISACTIVE 0x00002000
faluco@1040: #define FBEAM_FOREVER 0x00004000
faluco@1040: #define FBEAM_HALOBEAM 0x00008000 /**< When drawing a beam with a halo, don't ignore the segments and endwidth */
faluco@1040:
faluco@1040: /**
faluco@1040: * @endsection
faluco@1040: */
faluco@1040:
faluco@1040: /**
faluco@1039: * Sets up a sparks effect.
faluco@1039: *
faluco@1039: * @param pos Position of the sparks.
faluco@1039: * @param dir Direction of the sparks.
faluco@1039: * @param Magnitude Sparks size.
faluco@1039: * @param TrailLength Trail lenght of the sparks.
faluco@1039: * @noreturn
faluco@1039: */
faluco@1039: stock TE_SetupSparks(const Float:pos[3], const Float:dir[3], Magnitude, TrailLength)
faluco@1039: {
faluco@1039: TE_Start("Sparks");
faluco@1039: TE_WriteVector("m_vecOrigin[0]", pos);
faluco@1039: TE_WriteVector("m_vecDir", dir);
faluco@1039: TE_WriteNum("m_nMagnitude", Magnitude);
faluco@1039: TE_WriteNum("m_nTrailLength", TrailLength);
faluco@1039: }
faluco@1039:
faluco@1039: /**
faluco@1039: * Sets up a smoke effect.
faluco@1039: *
faluco@1039: * @param pos Position of the smoke.
faluco@1039: * @param Model Precached model index.
faluco@1039: * @param Scale Scale of the smoke.
faluco@1039: * @param Framerate Frame rate of the smoke.
faluco@1039: * @noreturn
faluco@1039: */
faluco@1039: stock TE_SetupSmoke(const Float:pos[3], Model, Float:Scale, FrameRate)
faluco@1039: {
faluco@1039: TE_Start("Smoke");
faluco@1039: TE_WriteVector("m_vecOrigin", pos);
faluco@1039: TE_WriteNum("m_nModelIndex", Model);
faluco@1039: TE_WriteFloat("m_fScale", Scale);
faluco@1039: TE_WriteNum("m_nFrameRate", FrameRate);
faluco@1039: }
faluco@1039:
faluco@1039: /**
faluco@1039: * Sets up a dust cloud effect.
faluco@1039: *
faluco@1039: * @param pos Position of the dust.
faluco@1039: * @param dir Direction of the dust.
faluco@1039: * @param Size Dust cloud size.
faluco@1039: * @param Speed Dust cloud speed.
faluco@1039: * @noreturn
faluco@1039: */
faluco@1039: stock TE_SetupDust(const Float:pos[3], const Float:dir[3], Float:Size, Float:Speed)
faluco@1039: {
faluco@1039: TE_Start("Dust");
faluco@1039: TE_WriteVector("m_vecOrigin[0]", pos);
faluco@1039: TE_WriteVector("m_vecDirection", dir);
faluco@1039: TE_WriteFloat("m_flSize", Size);
faluco@1039: TE_WriteFloat("m_flSpeed", Speed);
faluco@1039: }
faluco@1039:
faluco@1039: /**
faluco@1039: * Sets up a muzzle flash effect.
faluco@1039: *
faluco@1039: * @param pos Position of the muzzle flash.
faluco@1039: * @param angles Rotation angles of the muzzle flash.
faluco@1039: * @param Scale Scale of the muzzle flash.
faluco@1039: * @param Type Muzzle flash type to render (Mod specific).
faluco@1039: * @noreturn
faluco@1039: */
faluco@1039: stock TE_SetupMuzzleFlash(const Float:pos[3], const Float:angles[3], Float:Scale, Type)
faluco@1039: {
faluco@1039: TE_Start("MuzzleFlash");
faluco@1039: TE_WriteVector("m_vecOrigin", pos);
faluco@1039: TE_WriteVector("m_vecAngles", angles);
faluco@1039: TE_WriteFloat("m_flScale", Scale);
faluco@1039: TE_WriteNum("m_nType", Type);
faluco@1039: }
faluco@1039:
faluco@1039: /**
faluco@1039: * Sets up a metal sparks effect.
faluco@1039: *
faluco@1039: * @param pos Position of the metal sparks.
faluco@1039: * @param dir Direction of the metal sparks.
faluco@1039: * @noreturn
faluco@1039: */
faluco@1039: stock TE_SetupMetalSparks(const Float:pos[3], const Float:dir[3])
faluco@1039: {
faluco@1039: TE_Start("Metal Sparks");
faluco@1039: TE_WriteVector("m_vecPos", pos);
faluco@1039: TE_WriteVector("m_vecDir", dir);
faluco@1039: }
faluco@1039:
faluco@1039: /**
faluco@1039: * Sets up an energy splash effect.
faluco@1039: *
faluco@1039: * @param pos Position of the energy splash.
faluco@1039: * @param dir Direction of the energy splash.
faluco@1039: * @param Explosive Makes the effect explosive.
faluco@1039: * @noreturn
faluco@1039: */
faluco@1039: stock TE_SetupEnergySplash(const Float:pos[3], const Float:dir[3], bool:Explosive)
faluco@1039: {
faluco@1039: TE_Start("Energy Splash");
faluco@1039: TE_WriteVector("m_vecPos", pos);
faluco@1039: TE_WriteVector("m_vecDir", dir);
faluco@1039: TE_WriteNum("m_bExplosive", Explosive);
faluco@1039: }
faluco@1039:
faluco@1039: /**
faluco@1039: * Sets up an armor ricochet effect.
faluco@1039: *
faluco@1039: * @param pos Position of the armor ricochet.
faluco@1039: * @param dir Directon of the armor ricochet.
faluco@1039: * @noreturn
faluco@1039: */
faluco@1039: stock TE_SetupArmorRicochet(const Float:pos[3], const Float:dir[3])
faluco@1039: {
faluco@1039: TE_Start("Armor Ricochet");
faluco@1039: TE_WriteVector("m_vecPos", pos);
faluco@1039: TE_WriteVector("m_vecDir", dir);
faluco@1039: }
faluco@1039:
faluco@1039: /**
faluco@1039: * Sets up a glowing sprite effect.
faluco@1039: *
faluco@1039: * @param pos Position of the sprite.
faluco@1039: * @param Model Precached model index.
faluco@1039: * @param Life Time duration of the sprite.
faluco@1039: * @param Size Sprite size.
faluco@1039: * @param Brightness Sprite brightness.
faluco@1039: * @noreturn
faluco@1039: */
faluco@1039: stock TE_SetupGlowSprite(const Float:pos[3], Model, Float:Life, Float:Size, Brightness)
faluco@1039: {
faluco@1039: TE_Start("GlowSprite");
faluco@1039: TE_WriteVector("m_vecOrigin", pos);
faluco@1039: TE_WriteNum("m_nModelIndex", Model);
faluco@1039: TE_WriteFloat("m_fScale", Size);
faluco@1039: TE_WriteFloat("m_fLife", Life);
faluco@1039: TE_WriteNum("m_nBrightness", Brightness);
faluco@1039: }
faluco@1039:
faluco@1039: /**
faluco@1039: * Sets up a explosion effect.
faluco@1039: *
faluco@1039: * @param pos Explosion position.
faluco@1039: * @param Model Precached model index.
faluco@1039: * @param Scale Explosion scale.
faluco@1039: * @param Framerate Explosion frame rate.
faluco@1039: * @param Flags Explosion flags.
faluco@1039: * @param Radius Explosion radius.
faluco@1039: * @param Magnitude Explosion size.
faluco@1039: * @param normal Normal vector to the explosion.
faluco@1039: * @param MaterialType Exploded material type.
faluco@1039: * @noreturn
faluco@1039: */
faluco@1039: stock TE_SetupExplosion(const Float:pos[3], Model, Float:Scale, Framerate, Flags, Radius, Magnitude, const Float:normal[3]={0.0, 0.0, 1.0}, MaterialType='C')
faluco@1039: {
faluco@1039: TE_Start("Explosion");
faluco@1039: TE_WriteVector("m_vecOrigin[0]", pos);
faluco@1039: TE_WriteVector("m_vecNormal", normal);
faluco@1039: TE_WriteNum("m_nModelIndex", Model);
faluco@1039: TE_WriteFloat("m_fScale", Scale);
faluco@1039: TE_WriteNum("m_nFrameRate", Framerate);
faluco@1039: TE_WriteNum("m_nFlags", Flags);
faluco@1039: TE_WriteNum("m_nRadius", Radius);
faluco@1039: TE_WriteNum("m_nMagnitude", Magnitude);
faluco@1039: TE_WriteNum("m_chMaterialType", MaterialType);
faluco@1039: }
faluco@1039:
faluco@1039: /**
faluco@1039: * Sets up a blood sprite effect.
faluco@1039: *
faluco@1039: * @param pos Position of the sprite.
faluco@1039: * @param dir Sprite direction.
faluco@1039: * @param color Color array (r, g, b, a).
faluco@1039: * @param Size Sprite size.
faluco@1039: * @param SprayModel Precached model index.
faluco@1039: * @param BloodDropModel Precached model index.
faluco@1039: * @noreturn
faluco@1039: */
faluco@1039: stock TE_SetupBloodSprite(const Float:pos[3], const Float:dir[3], const color[4], Size, SprayModel, BloodDropModel)
faluco@1039: {
faluco@1039: TE_Start("Blood Sprite");
faluco@1039: TE_WriteVector("m_vecOrigin", pos);
faluco@1039: TE_WriteVector("m_vecDirection", dir);
faluco@1039: TE_WriteNum("r", color[0]);
faluco@1039: TE_WriteNum("g", color[1]);
faluco@1039: TE_WriteNum("b", color[2]);
faluco@1039: TE_WriteNum("a", color[3]);
faluco@1039: TE_WriteNum("m_nSize", Size);
faluco@1039: TE_WriteNum("m_nSprayModel", SprayModel);
faluco@1039: TE_WriteNum("m_nDropModel", BloodDropModel);
faluco@1039: }
faluco@1039:
faluco@1039: /**
faluco@1039: * Sets up a beam ring point effect.
faluco@1039: *
faluco@1039: * @param center Center position of the ring.
faluco@1039: * @param Start_Radius Initial ring radius.
faluco@1039: * @param End_Radius Final ring radius.
faluco@1039: * @param ModelIndex Precached model index.
faluco@1039: * @param HaloIndex Precached model index.
faluco@1039: * @param StartFrame Initital frame to render.
faluco@1039: * @param FrameRate Ring frame rate.
faluco@1039: * @param Life Time duration of the ring.
faluco@1039: * @param Width Beam width.
faluco@1039: * @param Amplitude Beam amplitude.
faluco@1039: * @param color Color array (r, g, b, a).
faluco@1039: * @param Speed Speed of the beam.
faluco@1039: * @param Flags Beam flags.
faluco@1039: * @noreturn
faluco@1039: */
faluco@1039: stock TE_SetupBeamRingPoint(const Float:center[3], Float:Start_Radius, Float:End_Radius, ModelIndex, HaloIndex, StartFrame,
faluco@1039: FrameRate, Float:Life, Float:Width, Float:Amplitude, const Color[4], Speed, Flags)
faluco@1039: {
faluco@1039: TE_Start("BeamRingPoint");
faluco@1039: TE_WriteVector("m_vecCenter", center);
faluco@1039: TE_WriteFloat("m_flStartRadius", Start_Radius);
faluco@1039: TE_WriteFloat("m_flEndRadius", End_Radius);
faluco@1039: TE_WriteNum("m_nModelIndex", ModelIndex);
faluco@1039: TE_WriteNum("m_nHaloIndex", HaloIndex);
faluco@1039: TE_WriteNum("m_nStartFrame", StartFrame);
faluco@1039: TE_WriteNum("m_nFrameRate", FrameRate);
faluco@1039: TE_WriteFloat("m_fLife", Life);
faluco@1039: TE_WriteFloat("m_fWidth", Width);
faluco@1039: TE_WriteFloat("m_fEndWidth", Width);
faluco@1039: TE_WriteFloat("m_fAmplitude", Amplitude);
faluco@1039: TE_WriteNum("r", Color[0]);
faluco@1039: TE_WriteNum("g", Color[1]);
faluco@1039: TE_WriteNum("b", Color[2]);
faluco@1039: TE_WriteNum("a", Color[3]);
faluco@1039: TE_WriteNum("m_nSpeed", Speed);
faluco@1039: TE_WriteNum("m_nFlags", Flags);
faluco@1039: TE_WriteNum("m_nFadeLength", 0);
faluco@1039: }
faluco@1039:
faluco@1039: /**
faluco@1039: * Sets up a point to point beam effect.
faluco@1039: *
faluco@1039: * @param start Start position of the beam.
faluco@1039: * @param end End position of the beam.
faluco@1039: * @param ModelIndex Precached model index.
faluco@1039: * @param HaloIndex Precached model index.
faluco@1039: * @param StartFrame Initital frame to render.
faluco@1039: * @param FrameRate Beam frame rate.
faluco@1039: * @param Life Time duration of the beam.
faluco@1039: * @param Width Initial beam width.
faluco@1039: * @param EndWidth Final beam width.
faluco@1039: * @param FadeLength Beam fade time duration.
faluco@1039: * @param Amplitude Beam amplitude.
faluco@1039: * @param color Color array (r, g, b, a).
faluco@1039: * @param Speed Speed of the beam.
faluco@1039: * @noreturn
faluco@1039: */
faluco@1039: stock TE_SetupBeamPoints(const Float:start[3], const Float:end[3], ModelIndex, HaloIndex, StartFrame, FrameRate, Float:Life,
faluco@1039: Float:Width, Float:EndWidth, FadeLength, Float:Amplitude, const Color[4], Speed)
faluco@1039: {
faluco@1039: TE_Start("BeamPoints");
faluco@1039: TE_WriteVector("m_vecStartPoint", start);
faluco@1039: TE_WriteVector("m_vecEndPoint", end);
faluco@1039: TE_WriteNum("m_nModelIndex", ModelIndex);
faluco@1039: TE_WriteNum("m_nHaloIndex", HaloIndex);
faluco@1039: TE_WriteNum("m_nStartFrame", StartFrame);
faluco@1039: TE_WriteNum("m_nFrameRate", FrameRate);
faluco@1039: TE_WriteFloat("m_fLife", Life);
faluco@1039: TE_WriteFloat("m_fWidth", Width);
faluco@1039: TE_WriteFloat("m_fEndWidth", EndWidth);
faluco@1039: TE_WriteFloat("m_fAmplitude", Amplitude);
faluco@1039: TE_WriteNum("r", Color[0]);
faluco@1039: TE_WriteNum("g", Color[1]);
faluco@1039: TE_WriteNum("b", Color[2]);
faluco@1039: TE_WriteNum("a", Color[3]);
faluco@1039: TE_WriteNum("m_nSpeed", Speed);
faluco@1039: TE_WriteNum("m_nFadeLength", FadeLength);
faluco@1039: }
faluco@1039:
faluco@1039: /**
faluco@1039: * Sets up an entity to entity laser effect.
faluco@1039: *
faluco@1039: * @param StartEntity Entity index from where the beam starts.
faluco@1039: * @param EndEntity Entity index from where the beam ends.
faluco@1039: * @param ModelIndex Precached model index.
faluco@1039: * @param HaloIndex Precached model index.
faluco@1039: * @param StartFrame Initital frame to render.
faluco@1039: * @param FrameRate Beam frame rate.
faluco@1039: * @param Life Time duration of the beam.
faluco@1039: * @param Width Initial beam width.
faluco@1039: * @param EndWidth Final beam width.
faluco@1039: * @param FadeLength Beam fade time duration.
faluco@1039: * @param Amplitude Beam amplitude.
faluco@1039: * @param color Color array (r, g, b, a).
faluco@1039: * @param Speed Speed of the beam.
faluco@1039: * @noreturn
faluco@1039: */
faluco@1039: stock TE_SetupBeamLaser(StartEntity, EndEntity, ModelIndex, HaloIndex, StartFrame, FrameRate, Float:Life,
faluco@1039: Float:Width, Float:EndWidth, FadeLength, Float:Amplitude, const Color[4], Speed)
faluco@1039: {
faluco@1039: TE_Start("BeamLaser");
faluco@1039: TE_WriteEncodedEnt("m_nStartEntity", StartEntity);
faluco@1039: TE_WriteEncodedEnt("m_nEndEntity", EndEntity);
faluco@1039: TE_WriteNum("m_nModelIndex", ModelIndex);
faluco@1039: TE_WriteNum("m_nHaloIndex", HaloIndex);
faluco@1039: TE_WriteNum("m_nStartFrame", StartFrame);
faluco@1039: TE_WriteNum("m_nFrameRate", FrameRate);
faluco@1039: TE_WriteFloat("m_fLife", Life);
faluco@1039: TE_WriteFloat("m_fWidth", Width);
faluco@1039: TE_WriteFloat("m_fEndWidth", EndWidth);
faluco@1039: TE_WriteFloat("m_fAmplitude", Amplitude);
faluco@1039: TE_WriteNum("r", Color[0]);
faluco@1039: TE_WriteNum("g", Color[1]);
faluco@1039: TE_WriteNum("b", Color[2]);
faluco@1039: TE_WriteNum("a", Color[3]);
faluco@1039: TE_WriteNum("m_nSpeed", Speed);
faluco@1039: TE_WriteNum("m_nFadeLength", FadeLength);
faluco@1039: }
faluco@1039:
faluco@1039: /**
faluco@1039: * Sets up a beam ring effect.
faluco@1039: *
faluco@1039: * @param StartEntity Entity index from where the ring starts.
faluco@1039: * @param EndEntity Entity index from where the ring ends.
faluco@1039: * @param ModelIndex Precached model index.
faluco@1039: * @param HaloIndex Precached model index.
faluco@1039: * @param StartFrame Initital frame to render.
faluco@1039: * @param FrameRate Ring frame rate.
faluco@1039: * @param Life Time duration of the ring.
faluco@1039: * @param Width Beam width.
faluco@1039: * @param Amplitude Beam amplitude.
faluco@1039: * @param color Color array (r, g, b, a).
faluco@1039: * @param Speed Speed of the beam.
faluco@1039: * @param Flags Beam flags.
faluco@1039: * @noreturn
faluco@1039: */
dvander@1058: stock TE_SetupBeamRing(StartEntity, EndEntity, ModelIndex, HaloIndex, StartFrame, FrameRate, Float:Life, Float:Width, Float:Amplitude, const Color[4], Speed, Flags)
faluco@1039: {
faluco@1039: TE_Start("BeamRing");
faluco@1039: TE_WriteEncodedEnt("m_nStartEntity", StartEntity);
faluco@1039: TE_WriteEncodedEnt("m_nEndEntity", EndEntity);
faluco@1039: TE_WriteNum("m_nModelIndex", ModelIndex);
faluco@1039: TE_WriteNum("m_nHaloIndex", HaloIndex);
faluco@1039: TE_WriteNum("m_nStartFrame", StartFrame);
faluco@1039: TE_WriteNum("m_nFrameRate", FrameRate);
faluco@1039: TE_WriteFloat("m_fLife", Life);
faluco@1039: TE_WriteFloat("m_fWidth", Width);
faluco@1039: TE_WriteFloat("m_fEndWidth", Width);
faluco@1039: TE_WriteFloat("m_fAmplitude", Amplitude);
faluco@1039: TE_WriteNum("r", Color[0]);
faluco@1039: TE_WriteNum("g", Color[1]);
faluco@1039: TE_WriteNum("b", Color[2]);
faluco@1039: TE_WriteNum("a", Color[3]);
faluco@1039: TE_WriteNum("m_nSpeed", Speed);
faluco@1039: TE_WriteNum("m_nFadeLength", 0);
faluco@1039: TE_WriteNum("m_nFlags", Flags);
faluco@1039: }
faluco@1039:
faluco@1039: /**
faluco@1039: * Sets up a follow beam effect.
faluco@1039: *
faluco@1039: * @param EntIndex Entity index from where the beam starts.
faluco@1039: * @param ModelIndex Precached model index.
faluco@1039: * @param HaloIndex Precached model index.
faluco@1039: * @param Life Time duration of the beam.
faluco@1039: * @param Width Initial beam width.
faluco@1039: * @param EndWidth Final beam width.
faluco@1039: * @param FadeLength Beam fade time duration.
faluco@1039: * @param color Color array (r, g, b, a).
faluco@1039: * @noreturn
faluco@1039: */
dvander@1058: stock TE_SetupBeamFollow(EntIndex, ModelIndex, HaloIndex, Float:Life, Float:Width, Float:EndWidth, FadeLength, const Color[4])
faluco@1039: {
faluco@1039: TE_Start("BeamFollow");
faluco@1039: TE_WriteEncodedEnt("m_iEntIndex", EntIndex);
faluco@1039: TE_WriteNum("m_nModelIndex", ModelIndex);
faluco@1039: TE_WriteNum("m_nHaloIndex", HaloIndex);
faluco@1039: TE_WriteNum("m_nStartFrame", 0);
faluco@1039: TE_WriteNum("m_nFrameRate", 0);
faluco@1039: TE_WriteFloat("m_fLife", Life);
faluco@1039: TE_WriteFloat("m_fWidth", Width);
faluco@1039: TE_WriteFloat("m_fEndWidth", EndWidth);
faluco@1039: TE_WriteNum("m_nFadeLength", FadeLength);
faluco@1039: TE_WriteNum("r", Color[0]);
faluco@1039: TE_WriteNum("g", Color[1]);
faluco@1039: TE_WriteNum("b", Color[2]);
faluco@1039: TE_WriteNum("a", Color[3]);
faluco@1039: }