CPSCustom RadialParticleFX { // Brush contents in which particles cannot exist. Calculate as follows: m_iDrawContents |= (1 << abs(CONTENTS_WATER)); //"iDestroyContents" "0" // Particle start scale range "fParticleScaleMin" "1.0" "fParticleScaleMax" "16.0" // If defined, particles start randomly inside this sphere relatively to host entity origin "fStartRadiusMin" "512" "fStartRadiusMax" "2048" // If defined (and no radius), particles start randomly inside this box relatively to host entity origin "vStartMins" "0 0 640" "vStartMaxs" "0 0 -256" // Velocity after reflection is multiplied by this value "fBounceFactor" "0" // Spread vector (for directed movement) "vSpread" "0 0 0" // Destination point (absolute coordinates) // vDestination "0 0 0" // Acceleration range //"vAccelMin" "0 0 0" //"vAccelMax" "0 0 0" // Particle velocity.x = vDirection.x*RANDOM_FLOAT(fParticleSpeedMin, fParticleSpeedMax) + vSinVel.x*sin(t+i) + vCosVel.x*cos(t+i); "vSinVel" "10 0 0" "vCosVel" "0 10 0" // Particle acceleration.x += vSinAccel.x*sin(t+i) + vCosAccel.x*cos(t+i); "vSinAccel" "4 0 0" "vCosAccel" "0 4 0" // Custom Particle flags // PSCUSTOM_PFLAG_ORIENTED_START 1 // PSCUSTOM_PFLAG_ORIENTED_HIT_SURFACE 2 // PSCUSTOM_PFLAG_ORIENTED_HIT_LIQUID 4 // PSCUSTOM_PFLAG_LOOPFRAMES_HIT_SURFACE 8 // PSCUSTOM_PFLAG_LOOPFRAMES_HIT_LIQUID 16 // PSCUSTOM_PFLAG_HIT_FADEOUT 32 "iParticleFlags" "0" // Trace flags (defines clipping behavior), 0 is the slowest option. // PM_STUDIO_IGNORE 1// Skip studio models (faster) // PM_STUDIO_BOX 2// Use boxes for non-complex studio models (even in traceline) (faster) // PM_GLASS_IGNORE 4// Ignore entities with non-normal rendermode // PM_WORLD_ONLY 8// Only trace against the world (fastest) "iTraceFlags" "9" "iMaxParticles" "256" // Linear speed range "fParticleSpeedMin" "0.0" "fParticleSpeedMax" "0.0" "fParticleWeight" "0.0" // Particle start type: // PSSTARTTYPE_POINT = 0, // PSSTARTTYPE_SPHERE, // PSSTARTTYPE_BOX, // PSSTARTTYPE_LINE, // PSSTARTTYPE_ENTITYBBOX, // PSSTARTTYPE_CYLINDER "iStartType" "5" // Particle movement type: // PSMOVTYPE_DIRECTED = 0, // PSMOVTYPE_OUTWARDS,// explosion // PSMOVTYPE_INWARDS,// implosion // PSMOVTYPE_RANDOM "iMovementType" "3" // For movement type 0 "vDirection" "0 0 0" // Overrides internal value. With (0,0,0) bounding box coordinates become absolute. //"vOrigin" "0 0 0" // System velocity (ignored because system moves with its host entity) //"vVelocity" "0 0 0" // Useless for now //"vAngles" "0 0 0" // Added every frame //"anglesdelta" // Offset from host entity origin (rotated according to entity orientation) "vOffset" "0 0 0" // Relative scale "fScale" "1.0" // Added every frame "fScaleDelta" "0.0" // Starting frame (useful with frame rate 0) "fFrame" "0" // Can be 0 to use specific frame of a sprite "fFrameRate" "0" // Initial color (range minimum) "Color4b" "223 223 255 95" // Initial color (range maximum) Particle color = RANDOM(Color4b, ColorMax4b) "ColorMax4b" "255 255 255 191" // Added every frame "ColorDelta4f" "0.0 0.0 0.0 0.0" // Particle dimensions (taken from sprite if == 0) //"fSizeX" "0" //"fSizeY" "0" // Standard HL render mode "iRenderMode" "5" // Standard HL render fx (unused) //"rendereffects" "0" // Brush contents in which particles can exist. Calculate as follows: m_iDrawContents |= (1 << abs(CONTENTS_WATER)); "iDrawContents" "0" // If true, faces are drawn double-sided "iDoubleSided" "0" // System will be active and drawn if cl_particles >= iFxLevel "iFxLevel" "2" // System flags (sum of all desired flags) // RENDERSYSTEM_FLAG_RANDOMFRAME 1 // random frame sequence // RENDERSYSTEM_FLAG_CLIPREMOVE 2 // remove upon touching architecture // RENDERSYSTEM_FLAG_NOCLIP 4 // persist inside architecture // RENDERSYSTEM_FLAG_LOOPFRAMES 8 // don't remove after displaying last frame (when no life time set) // RENDERSYSTEM_FLAG_ADDPHYSICS 16 // interact with world (bounce upon collisions, etc.) // RENDERSYSTEM_FLAG_DRAWALWAYS 32 // ignore visibility checks (draw behind walls, outside visible area) // RENDERSYSTEM_FLAG_HARDSHUTDOWN 64 // don't wait/fade, remove instantly // RENDERSYSTEM_FLAG_SIMULTANEOUS 128 // emit all particles at start // RENDERSYSTEM_FLAG_ADDGRAVITY 256 // add world gravity to system acceleration // RENDERSYSTEM_FLAG_ZROTATION 512 // rotate around Z axis only (when parallel to viewport) // RENDERSYSTEM_FLAG_NODRAW 1024// don't draw (but still update normally) // RENDERSYSTEM_FLAG_ 2048// unused // RENDERSYSTEM_FLAG_STARTRANDOMFRAME 4096// start at random frame, continue according to other settings // RENDERSYSTEM_FLAG_UPDATEOUTSIDEPVS 8192// update even when system or emitter is outside PVS // 2+4+8+4096 "iFlags" "4110" // CRenderSystem follow flags (sum of all desired flags), ICNF == "if cannot follow" // RENDERSYSTEM_FFLAG_ICNF_KEEPSEARCHING 0// default: keep searching // RENDERSYSTEM_FFLAG_ICNF_REMOVE 1// remove if can not find entity // RENDERSYSTEM_FFLAG_ICNF_STAYANDFORGET 2// stop copying origin and just stay at last coordinates // RENDERSYSTEM_FFLAG_ICNF_NODRAW 4// hide if can not find entity // RENDERSYSTEM_FFLAG_CLIPREMOVE 8// remove upon touching architecture (even if entity still exists) // RENDERSYSTEM_FFLAG_USEOFFSET 16// system origin = entity origin + offset // RENDERSYSTEM_FFLAG_NOANGLES 32// don't copy angles // RENDERSYSTEM_FFLAG_DONTFOLLOW 64// don't copy origin even if entity is found "iFollowFlags" "32" // Studio model attachment if host entity has it "iFollowAttachment" "65535" // Sprite path relative to game mod directory in forward slash (URL/UNIX) format "szTexture" "sprites/p_glow01.spr" } // Fog layers CRenderSystem FogLayer { "vAngles" "90 0 0" "vOffset" "0 0 0" "fSizeX" "2560" "fSizeY" "2560" "fFrame" "1" "fFrameRate" "0" "iRenderMode" "4" "iDoubleSided" "1" // 8+2048 "iFlags" "2056" // 16+32 "iFollowFlags" "48" "szTexture" "sprites/fog.spr" } CRenderSystem FogLayer { "vAngles" "90 0 0" "vOffset" "0 0 144" "fSizeX" "2560" "fSizeY" "2560" "fFrame" "1" "fFrameRate" "0" "iRenderMode" "4" "iDoubleSided" "1" // 8+2048 "iFlags" "2056" // 16+32 "iFollowFlags" "48" "szTexture" "sprites/fog.spr" } CRenderSystem FogLayer { "vAngles" "90 0 0" "vOffset" "0 0 288" "fSizeX" "2560" "fSizeY" "2560" "fFrame" "1" "fFrameRate" "0" "iRenderMode" "4" "iDoubleSided" "1" // 8+2048 "iFlags" "2056" // 16+32 "iFollowFlags" "48" "szTexture" "sprites/fog.spr" } CRenderSystem FogLayer { "vAngles" "90 0 0" "vOffset" "0 0 400" "fSizeX" "2560" "fSizeY" "2560" "fFrame" "1" "fFrameRate" "0" "iRenderMode" "4" "iDoubleSided" "1" // 8+2048 "iFlags" "2056" // 16+32 "iFollowFlags" "48" "szTexture" "sprites/fog.spr" } CRenderSystem FogLayer { "vAngles" "90 0 0" "vOffset" "0 0 512" "fSizeX" "2560" "fSizeY" "2560" "fFrame" "1" "fFrameRate" "0" "iRenderMode" "4" "iDoubleSided" "1" // 8+2048 "iFlags" "2056" // 16+32 "iFollowFlags" "48" "szTexture" "sprites/fog.spr" }