*EV@2+&*摖yIt$3S 2VNone Particle_42ParticleSystemPhysicsParticlePropertiesVector DrawTypeParticleSystem_43SystemCoreEngineTriggerTimerparticleLifeSpanParticleScaleGlowparticleDrawScaleParticleSystem_42InitialVelocityInitialVelocityRandomizerHitWallLanded SpawnTime NumparticlesTerminalVelocityTexture ParticleTypebUnlitStylePhysics EffectArea PreBeginPlaybHiddenAnimatedSpriteYX LifeSpanEffects LevelInfo DrawScaleLevel ScaleGlowActor LocationbInitiallyActiveOther HitNormalEventInstigator Velocity TimeSecondsbActivePawn SpawnpointClass FadeTime SmokeGraysp1_A00PackageFadeInScaleFactor FadeInTime bFadingInNowParticleFadeInTimeParticleTextures TextBufferParticleDrawVarienceObject FunctionStruct UnrealShareStructPropertyParticleFadeTimeParticleLifeSpanVarienceClassPropertyObjectPropertyFloatProperty BoolProperty IntProperty BytePropertyZFadeScaleFactor bFadingNowbAccelerating bModulatedSpawnTimeRandomizer InitialAccel Particle NumSpawnedInitialAcceleration+, jUGɏ    "   !2 #xjU %'@4$0IGu%u%u%u%u%u%u%u%u%u%u%u%u%u%u%u%u%u%u%u%u%u%u%u%jUjUjUjUjUjUjUjUjUjUjUjUjUjUjUjUjUjUjUjUjUjUjUjU :A"$=:@E@E@E $?: A A:@@$> $?d<OP//============================================================================= // ParticleSystem_43. //============================================================================= class ParticleSystem_42 expands Effects; var(ParticleSystemPhysics) Vector InitialVelocity; //The velocity at which the particles are fired var(ParticleSystemPhysics) Vector InitialAcceleration; //The acceleration of the particles var(ParticleSystemPhysics) Int NumParticles; //Number of particles created var(ParticleSystemPhysics) Float SpawnTime; //The time between particle creations var(ParticleSystemPhysics) Float SpawnTimeRandomizer; //Looks more natural but takes a small performance hit probably maybe var(ParticleSystemPhysics) vector TerminalVelocity; //The mazimum velocity of the particles var(ParticleSystemPhysics) float ParticleLifeSpan; //The life span of the particles var(ParticleSystemPhysics) float ParticleLifeSpanVarience; //How much the life span can change by var(ParticleSystemPhysics) vector EffectArea; //The area in which the particles could be spawned var(ParticleSystemPhysics) vector InitialVelocityRandomizer;//An initial velocity randomizer var(ParticleSystemPhysics) bool bInitiallyActive; //Active at the start of the match? var(ParticleProperties) Float ParticleDrawScale; //The draw scale of the particles var(ParticleProperties) Float ParticleDrawVarience; //Possible change in size var(ParticleProperties) bool bModulated; //Makes particles modulated instead of transparent var(ParticleProperties) Texture ParticleTextures[6]; //Select up to 6 textures for the particles var(ParticleProperties) class ParticleType;//For possibility of particles that hurt when touched etc. var(ParticleProperties) float ParticleScaleGlow; //Initial scale glow (brightness) of the particles var(ParticleProperties) float ParticleFadeTime; //Set to 0 if no fade (waaay better performance with none) var(ParticleProperties) float ParticleFadeInTime; //0 for less lag probability var Particle_42 Particle; var vector SpawnPoint; var int NumSpawned; var bool bActive; //Is particle system active? function Trigger( Actor Other, Pawn EventInstigator ) { if ( bActive ) { SetTimer( 0.0, False ); bActive = False; } else { SetTimer( SpawnTime, True ); bActive = True; } } function PreBeginPlay() { enable('Trigger'); if ( bInitiallyActive ) { SetTimer( SpawnTime, True ); bActive = True; } else { bActive = False; } //Just to make sure particle fade time is valid if ( ParticleFadeTime > ParticleLifeSpan - ParticleLifeSpanVarience ) ParticleFadeTime = ParticleLifeSpan - ParticleLifeSpanVarience; } function Timer() { for (NumSpawned = 0; NumSpawned < numParticles; NumSpawned++) { SpawnPoint.Z = Location.Z + (1 - FRand() * 2) * EffectArea.Z; SpawnPoint.X = Location.X + (1 - FRand() * 2) * EffectArea.X; SpawnPoint.Y = Location.Y + (1 - FRand() * 2) * EffectArea.Y; Particle = spawn(ParticleType,,,SpawnPoint); //Actually spawn the particle //Need to set the life span now for later calculation on fading Particle.LifeSpan = ParticleLifeSpan + (1 - FRand() * 2) * ParticleLifeSpanVarience; Particle.ScaleGlow = ParticleScaleGlow; //set velocity for this particle Particle.Velocity.Z = InitialVelocity.Z + ( - 1 + FRand() * 2 ) * InitialVelocityRandomizer.Z; Particle.Velocity.X = InitialVelocity.X + ( - 1 + FRand() * 2 ) * InitialVelocityRandomizer.X; Particle.Velocity.Y = InitialVelocity.Y + ( - 1 + FRand() * 2 ) * InitialVelocityRandomizer.Y; //If we have particle acceleration then must set the particle's timer if ((InitialAcceleration != vect(0,0,0))||(ParticleFadeInTime != 0)) { if (InitialAcceleration != vect(0,0,0)) { Particle.bAccelerating = true; Particle.InitialAccel.Z = InitialAcceleration.Z; Particle.InitialAccel.X = InitialAcceleration.X; Particle.InitialAccel.Y = InitialAcceleration.Y; Particle.TerminalVelocity = TerminalVelocity; } else { Particle.FadeInTime = ParticleFadeInTime; Particle.bFadingInNow = true; Particle.FadeInScaleFactor = ParticleScaleGlow / 10; Particle.ScaleGlow = 0; } Particle.SetTimer(0.1, true); if ( ParticleFadeTime > 0 ) Particle.FadeTime = ParticleFadeTime; } //If there is no acceleration, but we do want fading, then we can start the timer a lot later else { if ( ParticleFadeTime > 0 ) { Particle.FadeTime = ParticleFadeTime; //Don't start the timer till we need to fade the particle Particle.SetTimer( Particle.LifeSpan - ParticleFadeTime, false ); } } //set lifespan, texture etc. Particle.Texture = ParticleTextures[rand(6)]; Particle.FadeScaleFactor = ParticleScaleGlow / 10; Particle.DrawScale = ParticleDrawScale + (1 - FRand() * 2) * ParticleDrawVarience; Particle.SpawnTime = Level.TimeSeconds; if ( bModulated ) particle.Style=STY_Modulated; } if ( SpawnTimeRandomizer != 0 ) SetTimer( SpawnTime + (1 - FRand() * 2) * SpawnTimeRandomizer, False ); } ) !0-a(-(.a'-' ( <  % 6 6?&?,6 6 6?&?,6 6 6?&?,6 a  ?&?, 6 6?&?,66 6?&?,66 6?&?,6# ?%Z#-'6 66 66 6 "-'  ?,  a='?%##?%a(, ?,  ?&?,!-$ ?%a?&?,( &-b Vu! $-a'-',-(T *do//============================================================================= // Particle_43. //============================================================================= class Particle_42 expands Effects; var() vector InitialAccel; var() vector TerminalVelocity; var() bool bAccelerating; var() bool bFadingNow; var() bool bFadingInNow; var() float FadeTime; var() float SpawnTime; var() float FadeScaleFactor; var() float FadeInTime; var() float FadeInScaleFactor; simulated function Timer() { if (bAccelerating) { //Accelerate particle if it hasn't reached it's terminal velocity if ((Velocity.Z < TerminalVelocity.Z)&&(Velocity.Z > -TerminalVelocity.Z)) velocity.Z += InitialAccel.Z; if ((Velocity.X < TerminalVelocity.X)&&(Velocity.X > -TerminalVelocity.X)) velocity.X += InitialAccel.X; if ((Velocity.Y < TerminalVelocity.Y)&&(Velocity.Y > -TerminalVelocity.Y)) velocity.Y += InitialAccel.Y; } if (bFadingInNow) { ScaleGlow = ScaleGlow + FadeInScaleFactor / FadeInTime; if ( ScaleGlow >= FadeInScaleFactor * 10 ) { ScaleGlow = FadeInScaleFactor * 10; bFadingInNow = false; } } if (FadeTime > 0) { //Check to see if we are fading yet... if ((!bFadingNow )&&(LifeSpan - Level.TimeSeconds + SpawnTime <= FadeTime )) bFadingNow = true; if (bFadingNow) ScaleGlow = ScaleGlow - FadeScaleFactor / FadeTime; } SetTimer(0.1, false); } simulated function HitWall(vector HitNormal, actor HitWall) { Destroy(); } simulated function Landed(vector HitNormal) { Destroy(); } -.6a /01a   -U666666666666666666;- ; ?,  ?, -(?%-$-'-a=( 1b//============================================================================= // AnimatedSprite. //============================================================================= class AnimatedSprite expands Particle_42; 73?A7 3(H!H HL3HC.3CH'3@3I3$3G3#33C)H"3=G&H/@ 3J3@G@ @@31H%3FK7B75 6$jU$S $D L XR e4 r$0 ~$U J$2 W8 d$  p$T |$ H$ U: aN m$  y$E E$ Q$ ^$Q k wO C9 O$; [M g$P s$< $ L$X$* f$ r$> ~$ J$[W$z r 4ZPl*$ =F{$ ] C|$N`&+ n&- {4zHB`,, ~ TK-, _- l4my