// This file can contain several systems. They all are created and toggled simultaneously. // Each system must be enclosed in "{}" braces, each key must have its proper value. CRenderSystem CrystalGlow { "vAngles" "90 0 0" "vOffset" "0 0 0" "fSizeX" "64" "fSizeY" "64" "fFrameRate" "20" "iRenderMode" "5" "iRenderEffects" "2" // 8+2048 "iFlags" "2056" // 16+32 "iFollowFlags" "48" "szTexture" "sprites/glow07.spr" } CPSCustom CrystalParticles { // Brush contents in which particles cannot exist. Calculate as follows: m_iDrawContents |= (1 << abs(CONTENTS_WATER)); //"iDestroyContents" "0" // Particle start scale range "fParticleScaleMin" "0.05" "fParticleScaleMax" "0.05" // If defined, particles start randomly inside this sphere relatively to host entity origin "fStartRadiusMin" "32" "fStartRadiusMax" "64" // If defined (and no radius), particles start randomly inside this box relatively to host entity origin //"vStartMins" "-4096 -4096 -4096" //"vStartMaxs" "4096 4096 4096" // Velocity after reflection is multiplied by this value "fBounceFactor" "0" // Spread vector (for directed movement) "vSpread" "1 1 1" // Destination point (absolute coordinates) // vDestination "0 0 0" // Acceleration range //"vAccelMin" "-10 -10 -10" //"vAccelMax" "10 10 10" // Particle velocity.x = vDirection.x*RANDOM_FLOAT(fParticleSpeedMin, fParticleSpeedMax) + vSinVel.x*sin(t+i) + vCosVel.x*cos(t+i); "vSinVel" "0 80 0" "vCosVel" "80 0 0" // Particle acceleration.x += vSinAccel.x*sin(t+i) + vCosAccel.x*cos(t+i); //"vSinAccel" "100 0 0" //"vCosAccel" "0 100 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" "3072" // Linear speed range "fParticleSpeedMin" "-10" "fParticleSpeedMax" "10" "fParticleWeight" "0.0" // Particle start type: // PSSTARTTYPE_POINT = 0, // PSSTARTTYPE_SPHERE, // PSSTARTTYPE_BOX, // PSSTARTTYPE_LINE, // PSSTARTTYPE_ENTITYBBOX "iStartType" "1" // Particle movement type: // PSMOVTYPE_DIRECTED = 0, // PSMOVTYPE_OUTWARDS,// explosion // PSMOVTYPE_INWARDS,// implosion // PSMOVTYPE_RANDOM "iMovementType" "0" // For movement type 0 "vDirection" "0 0 -1" // 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 -10" // 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.5" // Same as "a" in color //"brightness" "1.0" // Added every frame OBSOLETE: use "a" of colordelta //"brightnessdelta" "0.0" // Starting frame (useful with frame rate 0) "fFrame" "0" // Can be 0 to use specific frame of a sprite "fFrameRate" "20" // Initial color (range minimum) "Color4b" "191 255 191 127" // Initial color (range maximum) Particle color = RANDOM(Color4b, ColorMax4b) "ColorMax4b" "255 255 255 255" // Added every frame "ColorDelta4f" "0.25 0.25 0.25 -0.1" // 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 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_ABSOLUTESIZE 2048// don't take size from texture // 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 "iFlags" "14" // 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" "64" // Studio model attachment if host entity has it "iFollowAttachment" "0" // Sprite path relative to game mod directory in forward slash (URL/UNIX) format "szTexture" "sprites/p_glow01s.spr" //"szTextureHitLiquid" "sprites/rain_s.spr" //"szTextureHitSurface" "sprites/iexplo.spr" }