StartParticleEmitter(e) and StopParticleEmitter(e) are legacy commands and have no effect over the emitters created with ParticlesAddEmitterEx.
To control an emitter properly you need to use the 'particles' commands:
ParticlesSpawnParticle( emitterId, xPos, yPos, zPos ) -- forces the emitter to spawn a particle at the specified position
ParticlesSetFrames( emitterId, animationSpeed, startFrame, endFrame )
ParticlesSetSpeed( emitterId, movementSpeedMinX, movementSpeedMinY, movementSpeedMinZ,
movementSpeedMaxX, movementSpeedMaxY, movementSpeedMaxZ )
ParticlesSetOffset( emitterId, offsetMinX, offsetMinY, offsetMinZ,
offsetMaxX, offsetMaxY, offsetMaxZ )
ParticlesSetScale( emitterId, scaleStartMin, scaleStartMax, scaleEndMin, scaleEndMax )
ParticlesSetAlpha( emitterId, alphaStartMin, alphaStartMax, alphaEndMin, alphaEndMax )
ParticlesSetAngle( emitterId, xAngle, yAngle, zAngle ) - Euler angles
-- the '0' parameters below are not yet fully implemented in the engine, basically they are placeholders for the future
ParticlesSetRotation: ParticlesSetRotation( emitterId, 0, 0, rotateSpeedMinZ, 0, 0, rotateSpeedMaxZ )
ParticlesSetLife: ParticlesSetLife( emitterId, frequency, lifeMin, lifeMax, maxParticles, 0, maxPerFrame )
-- maxParticles default is 100, maxPerFrame default is 50
-- This command mimics a basic wind effect, all particles will be effected by this ..
ParticlesSetWindVector: ParticlesSetWindVector( windX, windZ ) -- values are X & Z units per frame
-- unless specifically omitted sith this command
ParticlesSetNoWind( emitterId ) -- All particles created by the specified emitter will not be affected by wind.
-- This command mimics a basic gravity component
ParticlesSetGravity( emitterId, startG, endG ) -- values are Y units per frame
** Note that the ParticlesSetLife description in global.lua is missing the frequency parameter, I've corrected that above.
So for example if you wanted to 'turn off' an emitter temporarily you should use:
ParticlesSetLife( emitterId, 0, 0, 0, 0, 0, 0 )
And to turn it back on again:
ParticlesSetLife( emitterId, frequency, lifeMin, lifeMax, maxParticles, 0, maxPerFrame )
The parameters are:
frequency - the number of milliseconds between each 'spawn' event, example; 50 would spawn new particles every 1/20th of a second. Set this to 15 to get particles spawning every frame.
lifeMin - the minimum 'life' for particles spawned in milliseconds, if set to 500 for example all particles would liver for a minimum of 1/2 a second.
lifeMax - the maximum time in milliseconds a particle can live for, if set to 2000 for example all particles die after a maximum of 2 seconds.
The actual life of any individual particle will be a random value within the range of lifeMin .. lifeMax
maxParticles - the maximum number of particles this emitter is allowed to spawn in total
maxPerFrame - the maximum particles that can be spawned by this emitter in one spawn event, for example if you have frequency set to 100, maxParticles set to 500 and maxPerframe set to 10 then this emitter would spawn 100 particles a second until 500 particles have been spawned, after that it will only be able to spawn new particles after existing ones have died.
Been there, done that, got all the T-Shirts!