plugins/include/sdktools_tempents_stocks.inc
author Phong Dang <teame06@gmail.com>
Wed Aug 01 06:55:55 2007 +0000 (2007-08-01)
changeset 1239 eed86aca8fae
parent 1058 3248bc6dbf60
child 1330 ab94316bb52b
permissions -rw-r--r--
Implemented IsPlayerAlive native.
faluco@1039
     1
/**
faluco@1039
     2
 * vim: set ts=4 :
faluco@1039
     3
 * ===============================================================
faluco@1039
     4
 * SourceMod (C)2004-2007 AlliedModders LLC.  All rights reserved.
faluco@1039
     5
 * ===============================================================
faluco@1039
     6
 *
faluco@1039
     7
 *  This file is part of the SourceMod/SourcePawn SDK.  This file may only be used 
faluco@1039
     8
 * or modified under the Terms and Conditions of its License Agreement, which is found 
faluco@1039
     9
 * in LICENSE.txt.  The Terms and Conditions for making SourceMod extensions/plugins 
faluco@1039
    10
 * may change at any time.  To view the latest information, see:
faluco@1039
    11
 *   http://www.sourcemod.net/license.php
faluco@1039
    12
 *
faluco@1039
    13
 * Version: $Id$
faluco@1039
    14
 */
faluco@1039
    15
faluco@1039
    16
#if defined _te_stocks_included
faluco@1039
    17
 #endinput
faluco@1039
    18
#endif
faluco@1039
    19
#define _te_stocks_included
faluco@1039
    20
faluco@1039
    21
/**
faluco@1040
    22
 * @section TE Explosion flags.
faluco@1040
    23
 */
faluco@1040
    24
#define TE_EXPLFLAG_NONE		0x0	/**< all flags clear makes default Half-Life explosion */
faluco@1040
    25
#define TE_EXPLFLAG_NOADDITIVE		0x1	/**< sprite will be drawn opaque (ensure that the sprite you send is a non-additive sprite) */
faluco@1040
    26
#define TE_EXPLFLAG_NODLIGHTS		0x2	/**< do not render dynamic lights */
faluco@1040
    27
#define TE_EXPLFLAG_NOSOUND		0x4	/**< do not play client explosion sound */
faluco@1040
    28
#define TE_EXPLFLAG_NOPARTICLES		0x8	/**< do not draw particles */
faluco@1040
    29
#define TE_EXPLFLAG_DRAWALPHA		0x10	/**< sprite will be drawn alpha */
faluco@1040
    30
#define TE_EXPLFLAG_ROTATE		0x20	/**< rotate the sprite randomly */
faluco@1040
    31
#define TE_EXPLFLAG_NOFIREBALL		0x40	/**< do not draw a fireball */
faluco@1040
    32
#define TE_EXPLFLAG_NOFIREBALLSMOKE	0x80	/**< do not draw smoke with the fireball */
faluco@1040
    33
faluco@1040
    34
/**
faluco@1040
    35
 * @endsection
faluco@1040
    36
 */
faluco@1040
    37
faluco@1040
    38
/**
faluco@1040
    39
 * @section TE Beam flags.
faluco@1040
    40
 */
faluco@1040
    41
#define FBEAM_STARTENTITY 	0x00000001
faluco@1040
    42
#define	FBEAM_ENDENTITY		0x00000002
faluco@1040
    43
#define	FBEAM_FADEIN		0x00000004
faluco@1040
    44
#define	FBEAM_FADEOUT		0x00000008
faluco@1040
    45
#define	FBEAM_SINENOISE		0x00000010
faluco@1040
    46
#define	FBEAM_SOLID		0x00000020
faluco@1040
    47
#define	FBEAM_SHADEIN		0x00000040
faluco@1040
    48
#define	FBEAM_SHADEOUT		0x00000080
faluco@1040
    49
#define	FBEAM_ONLYNOISEONCE	0x00000100 	/**< Only calculate our noise once */
faluco@1040
    50
#define	FBEAM_NOTILE		0x00000200
faluco@1040
    51
#define	FBEAM_USE_HITBOXES	0x00000400	/**< Attachment indices represent hitbox indices instead when this is set. */
faluco@1040
    52
#define	FBEAM_STARTVISIBLE	0x00000800	/**< Has this client actually seen this beam's start entity yet? */
faluco@1040
    53
#define	FBEAM_ENDVISIBLE	0x00001000	/**< Has this client actually seen this beam's end entity yet? */
faluco@1040
    54
#define	FBEAM_ISACTIVE		0x00002000
faluco@1040
    55
#define	FBEAM_FOREVER		0x00004000
faluco@1040
    56
#define	FBEAM_HALOBEAM		0x00008000	/**< When drawing a beam with a halo, don't ignore the segments and endwidth */
faluco@1040
    57
faluco@1040
    58
/**
faluco@1040
    59
 * @endsection
faluco@1040
    60
 */
faluco@1040
    61
faluco@1040
    62
/**
faluco@1039
    63
 * Sets up a sparks effect.
faluco@1039
    64
 *
faluco@1039
    65
 * @param pos			Position of the sparks.
faluco@1039
    66
 * @param dir			Direction of the sparks.
faluco@1039
    67
 * @param Magnitude		Sparks size.
faluco@1039
    68
 * @param TrailLength		Trail lenght of the sparks.
faluco@1039
    69
 * @noreturn
faluco@1039
    70
 */
faluco@1039
    71
stock TE_SetupSparks(const Float:pos[3], const Float:dir[3], Magnitude, TrailLength)
faluco@1039
    72
{
faluco@1039
    73
	TE_Start("Sparks");
faluco@1039
    74
	TE_WriteVector("m_vecOrigin[0]", pos);
faluco@1039
    75
	TE_WriteVector("m_vecDir", dir);
faluco@1039
    76
	TE_WriteNum("m_nMagnitude", Magnitude);
faluco@1039
    77
	TE_WriteNum("m_nTrailLength", TrailLength);
faluco@1039
    78
}
faluco@1039
    79
faluco@1039
    80
/**
faluco@1039
    81
 * Sets up a smoke effect.
faluco@1039
    82
 *
faluco@1039
    83
 * @param pos			Position of the smoke.
faluco@1039
    84
 * @param Model			Precached model index.
faluco@1039
    85
 * @param Scale			Scale of the smoke.
faluco@1039
    86
 * @param Framerate		Frame rate of the smoke.
faluco@1039
    87
 * @noreturn
faluco@1039
    88
 */
faluco@1039
    89
stock TE_SetupSmoke(const Float:pos[3], Model, Float:Scale, FrameRate)
faluco@1039
    90
{
faluco@1039
    91
	TE_Start("Smoke");
faluco@1039
    92
	TE_WriteVector("m_vecOrigin", pos);
faluco@1039
    93
	TE_WriteNum("m_nModelIndex", Model);
faluco@1039
    94
	TE_WriteFloat("m_fScale", Scale);
faluco@1039
    95
	TE_WriteNum("m_nFrameRate", FrameRate);
faluco@1039
    96
}
faluco@1039
    97
faluco@1039
    98
/**
faluco@1039
    99
 * Sets up a dust cloud effect.
faluco@1039
   100
 *
faluco@1039
   101
 * @param pos			Position of the dust.
faluco@1039
   102
 * @param dir			Direction of the dust.
faluco@1039
   103
 * @param Size			Dust cloud size.
faluco@1039
   104
 * @param Speed			Dust cloud speed.
faluco@1039
   105
 * @noreturn
faluco@1039
   106
 */
faluco@1039
   107
stock TE_SetupDust(const Float:pos[3], const Float:dir[3], Float:Size, Float:Speed)
faluco@1039
   108
{
faluco@1039
   109
	TE_Start("Dust");
faluco@1039
   110
	TE_WriteVector("m_vecOrigin[0]", pos);
faluco@1039
   111
	TE_WriteVector("m_vecDirection", dir);
faluco@1039
   112
	TE_WriteFloat("m_flSize", Size);
faluco@1039
   113
	TE_WriteFloat("m_flSpeed", Speed);
faluco@1039
   114
}
faluco@1039
   115
faluco@1039
   116
/**
faluco@1039
   117
 * Sets up a muzzle flash effect.
faluco@1039
   118
 *
faluco@1039
   119
 * @param pos			Position of the muzzle flash.
faluco@1039
   120
 * @param angles		Rotation angles of the muzzle flash.
faluco@1039
   121
 * @param Scale			Scale of the muzzle flash.
faluco@1039
   122
 * @param Type			Muzzle flash type to render (Mod specific).
faluco@1039
   123
 * @noreturn
faluco@1039
   124
 */
faluco@1039
   125
stock TE_SetupMuzzleFlash(const Float:pos[3], const Float:angles[3], Float:Scale, Type)
faluco@1039
   126
{
faluco@1039
   127
	TE_Start("MuzzleFlash");
faluco@1039
   128
	TE_WriteVector("m_vecOrigin", pos);
faluco@1039
   129
	TE_WriteVector("m_vecAngles", angles);
faluco@1039
   130
	TE_WriteFloat("m_flScale", Scale);
faluco@1039
   131
	TE_WriteNum("m_nType", Type);
faluco@1039
   132
}
faluco@1039
   133
faluco@1039
   134
/**
faluco@1039
   135
 * Sets up a metal sparks effect.
faluco@1039
   136
 *
faluco@1039
   137
 * @param pos			Position of the metal sparks.
faluco@1039
   138
 * @param dir			Direction of the metal sparks.
faluco@1039
   139
 * @noreturn
faluco@1039
   140
 */
faluco@1039
   141
stock TE_SetupMetalSparks(const Float:pos[3], const Float:dir[3])
faluco@1039
   142
{
faluco@1039
   143
	TE_Start("Metal Sparks");
faluco@1039
   144
	TE_WriteVector("m_vecPos", pos);
faluco@1039
   145
	TE_WriteVector("m_vecDir", dir);
faluco@1039
   146
}
faluco@1039
   147
faluco@1039
   148
/**
faluco@1039
   149
 * Sets up an energy splash effect.
faluco@1039
   150
 *
faluco@1039
   151
 * @param pos			Position of the energy splash.
faluco@1039
   152
 * @param dir			Direction of the energy splash.
faluco@1039
   153
 * @param Explosive		Makes the effect explosive.
faluco@1039
   154
 * @noreturn
faluco@1039
   155
 */
faluco@1039
   156
stock TE_SetupEnergySplash(const Float:pos[3], const Float:dir[3], bool:Explosive)
faluco@1039
   157
{
faluco@1039
   158
	TE_Start("Energy Splash");
faluco@1039
   159
	TE_WriteVector("m_vecPos", pos);
faluco@1039
   160
	TE_WriteVector("m_vecDir", dir);
faluco@1039
   161
	TE_WriteNum("m_bExplosive", Explosive);
faluco@1039
   162
}
faluco@1039
   163
faluco@1039
   164
/**
faluco@1039
   165
 * Sets up an armor ricochet effect.
faluco@1039
   166
 *
faluco@1039
   167
 * @param pos			Position of the armor ricochet.
faluco@1039
   168
 * @param dir			Directon of the armor ricochet.
faluco@1039
   169
 * @noreturn
faluco@1039
   170
 */
faluco@1039
   171
stock TE_SetupArmorRicochet(const Float:pos[3], const Float:dir[3])
faluco@1039
   172
{
faluco@1039
   173
	TE_Start("Armor Ricochet");
faluco@1039
   174
	TE_WriteVector("m_vecPos", pos);
faluco@1039
   175
	TE_WriteVector("m_vecDir", dir);
faluco@1039
   176
}
faluco@1039
   177
faluco@1039
   178
/**
faluco@1039
   179
 * Sets up a glowing sprite effect.
faluco@1039
   180
 *
faluco@1039
   181
 * @param pos			Position of the sprite.
faluco@1039
   182
 * @param Model			Precached model index.
faluco@1039
   183
 * @param Life			Time duration of the sprite.
faluco@1039
   184
 * @param Size			Sprite size.
faluco@1039
   185
 * @param Brightness		Sprite brightness.
faluco@1039
   186
 * @noreturn
faluco@1039
   187
 */
faluco@1039
   188
stock TE_SetupGlowSprite(const Float:pos[3], Model, Float:Life, Float:Size, Brightness)
faluco@1039
   189
{
faluco@1039
   190
	TE_Start("GlowSprite");
faluco@1039
   191
	TE_WriteVector("m_vecOrigin", pos);
faluco@1039
   192
	TE_WriteNum("m_nModelIndex", Model);
faluco@1039
   193
	TE_WriteFloat("m_fScale", Size);
faluco@1039
   194
	TE_WriteFloat("m_fLife", Life);
faluco@1039
   195
	TE_WriteNum("m_nBrightness", Brightness);
faluco@1039
   196
}
faluco@1039
   197
faluco@1039
   198
/**
faluco@1039
   199
 * Sets up a explosion effect.
faluco@1039
   200
 *
faluco@1039
   201
 * @param pos			Explosion position.
faluco@1039
   202
 * @param Model			Precached model index.
faluco@1039
   203
 * @param Scale			Explosion scale.
faluco@1039
   204
 * @param Framerate		Explosion frame rate.
faluco@1039
   205
 * @param Flags			Explosion flags.
faluco@1039
   206
 * @param Radius		Explosion radius.
faluco@1039
   207
 * @param Magnitude		Explosion size.
faluco@1039
   208
 * @param normal		Normal vector to the explosion.
faluco@1039
   209
 * @param MaterialType		Exploded material type.
faluco@1039
   210
 * @noreturn
faluco@1039
   211
 */
faluco@1039
   212
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
   213
{
faluco@1039
   214
	TE_Start("Explosion");
faluco@1039
   215
	TE_WriteVector("m_vecOrigin[0]", pos);
faluco@1039
   216
	TE_WriteVector("m_vecNormal", normal);
faluco@1039
   217
	TE_WriteNum("m_nModelIndex", Model);
faluco@1039
   218
	TE_WriteFloat("m_fScale", Scale);
faluco@1039
   219
	TE_WriteNum("m_nFrameRate", Framerate);
faluco@1039
   220
	TE_WriteNum("m_nFlags", Flags);
faluco@1039
   221
	TE_WriteNum("m_nRadius", Radius);
faluco@1039
   222
	TE_WriteNum("m_nMagnitude", Magnitude);
faluco@1039
   223
	TE_WriteNum("m_chMaterialType", MaterialType);
faluco@1039
   224
}
faluco@1039
   225
faluco@1039
   226
/**
faluco@1039
   227
 * Sets up a blood sprite effect.
faluco@1039
   228
 *
faluco@1039
   229
 * @param pos			Position of the sprite.
faluco@1039
   230
 * @param dir			Sprite direction.
faluco@1039
   231
 * @param color			Color array (r, g, b, a).
faluco@1039
   232
 * @param Size			Sprite size.
faluco@1039
   233
 * @param SprayModel		Precached model index.
faluco@1039
   234
 * @param BloodDropModel	Precached model index.
faluco@1039
   235
 * @noreturn
faluco@1039
   236
 */
faluco@1039
   237
stock TE_SetupBloodSprite(const Float:pos[3], const Float:dir[3], const color[4], Size, SprayModel, BloodDropModel)
faluco@1039
   238
{
faluco@1039
   239
	TE_Start("Blood Sprite");
faluco@1039
   240
	TE_WriteVector("m_vecOrigin", pos);
faluco@1039
   241
	TE_WriteVector("m_vecDirection", dir);
faluco@1039
   242
	TE_WriteNum("r", color[0]);
faluco@1039
   243
	TE_WriteNum("g", color[1]);
faluco@1039
   244
	TE_WriteNum("b", color[2]);
faluco@1039
   245
	TE_WriteNum("a", color[3]);
faluco@1039
   246
	TE_WriteNum("m_nSize", Size);
faluco@1039
   247
	TE_WriteNum("m_nSprayModel", SprayModel);
faluco@1039
   248
	TE_WriteNum("m_nDropModel", BloodDropModel);
faluco@1039
   249
}
faluco@1039
   250
faluco@1039
   251
/**
faluco@1039
   252
 * Sets up a beam ring point effect.
faluco@1039
   253
 *
faluco@1039
   254
 * @param center		Center position of the ring.
faluco@1039
   255
 * @param Start_Radius		Initial ring radius.
faluco@1039
   256
 * @param End_Radius		Final ring radius.
faluco@1039
   257
 * @param ModelIndex		Precached model index.
faluco@1039
   258
 * @param HaloIndex		Precached model index.
faluco@1039
   259
 * @param StartFrame		Initital frame to render.
faluco@1039
   260
 * @param FrameRate		Ring frame rate.
faluco@1039
   261
 * @param Life			Time duration of the ring.
faluco@1039
   262
 * @param Width			Beam width.
faluco@1039
   263
 * @param Amplitude		Beam amplitude.
faluco@1039
   264
 * @param color			Color array (r, g, b, a).
faluco@1039
   265
 * @param Speed			Speed of the beam.
faluco@1039
   266
 * @param Flags			Beam flags.
faluco@1039
   267
 * @noreturn
faluco@1039
   268
 */
faluco@1039
   269
stock TE_SetupBeamRingPoint(const Float:center[3], Float:Start_Radius, Float:End_Radius, ModelIndex, HaloIndex, StartFrame, 
faluco@1039
   270
				FrameRate, Float:Life, Float:Width, Float:Amplitude, const Color[4], Speed, Flags)
faluco@1039
   271
{
faluco@1039
   272
	TE_Start("BeamRingPoint");
faluco@1039
   273
	TE_WriteVector("m_vecCenter", center);
faluco@1039
   274
	TE_WriteFloat("m_flStartRadius", Start_Radius);
faluco@1039
   275
	TE_WriteFloat("m_flEndRadius", End_Radius);
faluco@1039
   276
	TE_WriteNum("m_nModelIndex", ModelIndex);
faluco@1039
   277
	TE_WriteNum("m_nHaloIndex", HaloIndex);
faluco@1039
   278
	TE_WriteNum("m_nStartFrame", StartFrame);
faluco@1039
   279
	TE_WriteNum("m_nFrameRate", FrameRate);
faluco@1039
   280
	TE_WriteFloat("m_fLife", Life);
faluco@1039
   281
	TE_WriteFloat("m_fWidth", Width);
faluco@1039
   282
	TE_WriteFloat("m_fEndWidth", Width);
faluco@1039
   283
	TE_WriteFloat("m_fAmplitude", Amplitude);
faluco@1039
   284
	TE_WriteNum("r", Color[0]);
faluco@1039
   285
	TE_WriteNum("g", Color[1]);
faluco@1039
   286
	TE_WriteNum("b", Color[2]);
faluco@1039
   287
	TE_WriteNum("a", Color[3]);
faluco@1039
   288
	TE_WriteNum("m_nSpeed", Speed);
faluco@1039
   289
	TE_WriteNum("m_nFlags", Flags);
faluco@1039
   290
	TE_WriteNum("m_nFadeLength", 0);
faluco@1039
   291
}
faluco@1039
   292
faluco@1039
   293
/**
faluco@1039
   294
 * Sets up a point to point beam effect.
faluco@1039
   295
 *
faluco@1039
   296
 * @param start			Start position of the beam.
faluco@1039
   297
 * @param end			End position of the beam.
faluco@1039
   298
 * @param ModelIndex		Precached model index.
faluco@1039
   299
 * @param HaloIndex		Precached model index.
faluco@1039
   300
 * @param StartFrame		Initital frame to render.
faluco@1039
   301
 * @param FrameRate		Beam frame rate.
faluco@1039
   302
 * @param Life			Time duration of the beam.
faluco@1039
   303
 * @param Width			Initial beam width.
faluco@1039
   304
 * @param EndWidth		Final beam width.
faluco@1039
   305
 * @param FadeLength		Beam fade time duration.
faluco@1039
   306
 * @param Amplitude		Beam amplitude.
faluco@1039
   307
 * @param color			Color array (r, g, b, a).
faluco@1039
   308
 * @param Speed			Speed of the beam.
faluco@1039
   309
 * @noreturn
faluco@1039
   310
 */
faluco@1039
   311
stock TE_SetupBeamPoints(const Float:start[3], const Float:end[3], ModelIndex, HaloIndex, StartFrame, FrameRate, Float:Life, 
faluco@1039
   312
				Float:Width, Float:EndWidth, FadeLength, Float:Amplitude, const Color[4], Speed)
faluco@1039
   313
{
faluco@1039
   314
	TE_Start("BeamPoints");
faluco@1039
   315
	TE_WriteVector("m_vecStartPoint", start);
faluco@1039
   316
	TE_WriteVector("m_vecEndPoint", end);
faluco@1039
   317
	TE_WriteNum("m_nModelIndex", ModelIndex);
faluco@1039
   318
	TE_WriteNum("m_nHaloIndex", HaloIndex);
faluco@1039
   319
	TE_WriteNum("m_nStartFrame", StartFrame);
faluco@1039
   320
	TE_WriteNum("m_nFrameRate", FrameRate);
faluco@1039
   321
	TE_WriteFloat("m_fLife", Life);
faluco@1039
   322
	TE_WriteFloat("m_fWidth", Width);
faluco@1039
   323
	TE_WriteFloat("m_fEndWidth", EndWidth);
faluco@1039
   324
	TE_WriteFloat("m_fAmplitude", Amplitude);
faluco@1039
   325
	TE_WriteNum("r", Color[0]);
faluco@1039
   326
	TE_WriteNum("g", Color[1]);
faluco@1039
   327
	TE_WriteNum("b", Color[2]);
faluco@1039
   328
	TE_WriteNum("a", Color[3]);
faluco@1039
   329
	TE_WriteNum("m_nSpeed", Speed);
faluco@1039
   330
	TE_WriteNum("m_nFadeLength", FadeLength);
faluco@1039
   331
}
faluco@1039
   332
faluco@1039
   333
/**
faluco@1039
   334
 * Sets up an entity to entity laser effect.
faluco@1039
   335
 *
faluco@1039
   336
 * @param StartEntity		Entity index from where the beam starts.
faluco@1039
   337
 * @param EndEntity		Entity index from where the beam ends.
faluco@1039
   338
 * @param ModelIndex		Precached model index.
faluco@1039
   339
 * @param HaloIndex		Precached model index.
faluco@1039
   340
 * @param StartFrame		Initital frame to render.
faluco@1039
   341
 * @param FrameRate		Beam frame rate.
faluco@1039
   342
 * @param Life			Time duration of the beam.
faluco@1039
   343
 * @param Width			Initial beam width.
faluco@1039
   344
 * @param EndWidth		Final beam width.
faluco@1039
   345
 * @param FadeLength		Beam fade time duration.
faluco@1039
   346
 * @param Amplitude		Beam amplitude.
faluco@1039
   347
 * @param color			Color array (r, g, b, a).
faluco@1039
   348
 * @param Speed			Speed of the beam.
faluco@1039
   349
 * @noreturn
faluco@1039
   350
 */
faluco@1039
   351
stock TE_SetupBeamLaser(StartEntity, EndEntity, ModelIndex, HaloIndex, StartFrame, FrameRate, Float:Life, 
faluco@1039
   352
				Float:Width, Float:EndWidth, FadeLength, Float:Amplitude, const Color[4], Speed)
faluco@1039
   353
{
faluco@1039
   354
	TE_Start("BeamLaser");
faluco@1039
   355
	TE_WriteEncodedEnt("m_nStartEntity", StartEntity);
faluco@1039
   356
	TE_WriteEncodedEnt("m_nEndEntity", EndEntity);
faluco@1039
   357
	TE_WriteNum("m_nModelIndex", ModelIndex);
faluco@1039
   358
	TE_WriteNum("m_nHaloIndex", HaloIndex);
faluco@1039
   359
	TE_WriteNum("m_nStartFrame", StartFrame);
faluco@1039
   360
	TE_WriteNum("m_nFrameRate", FrameRate);
faluco@1039
   361
	TE_WriteFloat("m_fLife", Life);
faluco@1039
   362
	TE_WriteFloat("m_fWidth", Width);
faluco@1039
   363
	TE_WriteFloat("m_fEndWidth", EndWidth);
faluco@1039
   364
	TE_WriteFloat("m_fAmplitude", Amplitude);
faluco@1039
   365
	TE_WriteNum("r", Color[0]);
faluco@1039
   366
	TE_WriteNum("g", Color[1]);
faluco@1039
   367
	TE_WriteNum("b", Color[2]);
faluco@1039
   368
	TE_WriteNum("a", Color[3]);
faluco@1039
   369
	TE_WriteNum("m_nSpeed", Speed);
faluco@1039
   370
	TE_WriteNum("m_nFadeLength", FadeLength);
faluco@1039
   371
}
faluco@1039
   372
faluco@1039
   373
/**
faluco@1039
   374
 * Sets up a beam ring effect.
faluco@1039
   375
 *
faluco@1039
   376
 * @param StartEntity		Entity index from where the ring starts.
faluco@1039
   377
 * @param EndEntity		Entity index from where the ring ends.
faluco@1039
   378
 * @param ModelIndex		Precached model index.
faluco@1039
   379
 * @param HaloIndex		Precached model index.
faluco@1039
   380
 * @param StartFrame		Initital frame to render.
faluco@1039
   381
 * @param FrameRate		Ring frame rate.
faluco@1039
   382
 * @param Life			Time duration of the ring.
faluco@1039
   383
 * @param Width			Beam width.
faluco@1039
   384
 * @param Amplitude		Beam amplitude.
faluco@1039
   385
 * @param color			Color array (r, g, b, a).
faluco@1039
   386
 * @param Speed			Speed of the beam.
faluco@1039
   387
 * @param Flags			Beam flags.
faluco@1039
   388
 * @noreturn
faluco@1039
   389
 */
dvander@1058
   390
stock TE_SetupBeamRing(StartEntity, EndEntity, ModelIndex, HaloIndex, StartFrame, FrameRate, Float:Life, Float:Width, Float:Amplitude, const Color[4], Speed, Flags)
faluco@1039
   391
{
faluco@1039
   392
	TE_Start("BeamRing");
faluco@1039
   393
	TE_WriteEncodedEnt("m_nStartEntity", StartEntity);
faluco@1039
   394
	TE_WriteEncodedEnt("m_nEndEntity", EndEntity);
faluco@1039
   395
	TE_WriteNum("m_nModelIndex", ModelIndex);
faluco@1039
   396
	TE_WriteNum("m_nHaloIndex", HaloIndex);
faluco@1039
   397
	TE_WriteNum("m_nStartFrame", StartFrame);
faluco@1039
   398
	TE_WriteNum("m_nFrameRate", FrameRate);
faluco@1039
   399
	TE_WriteFloat("m_fLife", Life);
faluco@1039
   400
	TE_WriteFloat("m_fWidth", Width);
faluco@1039
   401
	TE_WriteFloat("m_fEndWidth", Width);
faluco@1039
   402
	TE_WriteFloat("m_fAmplitude", Amplitude);
faluco@1039
   403
	TE_WriteNum("r", Color[0]);
faluco@1039
   404
	TE_WriteNum("g", Color[1]);
faluco@1039
   405
	TE_WriteNum("b", Color[2]);
faluco@1039
   406
	TE_WriteNum("a", Color[3]);
faluco@1039
   407
	TE_WriteNum("m_nSpeed", Speed);
faluco@1039
   408
	TE_WriteNum("m_nFadeLength", 0);
faluco@1039
   409
	TE_WriteNum("m_nFlags", Flags);
faluco@1039
   410
}
faluco@1039
   411
faluco@1039
   412
/**
faluco@1039
   413
 * Sets up a follow beam effect.
faluco@1039
   414
 *
faluco@1039
   415
 * @param EntIndex		Entity index from where the beam starts.
faluco@1039
   416
 * @param ModelIndex		Precached model index.
faluco@1039
   417
 * @param HaloIndex		Precached model index.
faluco@1039
   418
 * @param Life			Time duration of the beam.
faluco@1039
   419
 * @param Width			Initial beam width.
faluco@1039
   420
 * @param EndWidth		Final beam width.
faluco@1039
   421
 * @param FadeLength		Beam fade time duration.
faluco@1039
   422
 * @param color			Color array (r, g, b, a).
faluco@1039
   423
 * @noreturn
faluco@1039
   424
 */
dvander@1058
   425
stock TE_SetupBeamFollow(EntIndex, ModelIndex, HaloIndex, Float:Life, Float:Width, Float:EndWidth, FadeLength, const Color[4])
faluco@1039
   426
{
faluco@1039
   427
	TE_Start("BeamFollow");
faluco@1039
   428
	TE_WriteEncodedEnt("m_iEntIndex", EntIndex);
faluco@1039
   429
	TE_WriteNum("m_nModelIndex", ModelIndex);
faluco@1039
   430
	TE_WriteNum("m_nHaloIndex", HaloIndex);
faluco@1039
   431
	TE_WriteNum("m_nStartFrame", 0);
faluco@1039
   432
	TE_WriteNum("m_nFrameRate", 0);
faluco@1039
   433
	TE_WriteFloat("m_fLife", Life);
faluco@1039
   434
	TE_WriteFloat("m_fWidth", Width);
faluco@1039
   435
	TE_WriteFloat("m_fEndWidth", EndWidth);
faluco@1039
   436
	TE_WriteNum("m_nFadeLength", FadeLength);
faluco@1039
   437
	TE_WriteNum("r", Color[0]);
faluco@1039
   438
	TE_WriteNum("g", Color[1]);
faluco@1039
   439
	TE_WriteNum("b", Color[2]);
faluco@1039
   440
	TE_WriteNum("a", Color[3]);
faluco@1039
   441
}