-- LUA Script - precede every function and global member with lowercase name of script + '_main' local emitterList = {} local namedEmitter = { graphixwater = { animSpd = 1/2, SR = 0, freq = 16, lifeMin = 2000, lifeMax = 1800, -- minX minY minZ maxX maxY maxZ offset = { 0, -230, 0, 0, -230, 0}, speed = { 0.1, 0.2, 0, 0.2, 0.2, 0 }, rotate = { 0, 0 }, -- currently only Z rotate processed -- startMin startMax endMin endMax scale = { 500, 600, 500, 600 }, alpha = { 5, 9, 0, 0} } } -- caller must load image local function PE_CreateNamedEmitter( name, image, frames, entity ) local et = namedEmitter[ name ] if et == nil then return end local emitter = ParticlesGetFreeEmitter() if emitter == -1 then return end local pos, spd, scl = et.offset, et.speed, et.scale if entity == nil then ParticlesAddEmitterEx( emitter, et.animSpd, et.SR, pos[1], pos[2], pos[3], pos[4], pos[5], pos[6], scl[1], scl[2], scl[3], scl[4], spd[1], spd[2], spd[3], spd[4], spd[5], spd[6], et.rotate[0], et.rotate[0], et.lifeMin, et.lifeMax, et.alpha[1], et.alpha[2], et.alpha[3], et.alpha[4], et.freq, -1, 0, image, frames ) else ParticlesAddEmitterEx( emitter, et.animSpd, et.SR, pos[1], pos[2], pos[3], pos[4], pos[5], pos[6], scl[1], scl[2], scl[3], scl[4], spd[1], spd[2], spd[3], spd[4], spd[5], spd[6], et.rotate[0], et.rotate[0], et.lifeMin, et.lifeMax, et.alpha[1], et.alpha[2], et.alpha[3], et.alpha[4], et.freq, entity, 0, image, frames ) end return emitter end function graphix_waterfall_particle_init(e) end local waterImg = waterImg or ParticlesLoadImage( "effectbank\\particles\\water\\wf1.dds", 9 ) function graphix_waterfall_particle_main(e) Hide(e) local emitter = emitterList[e] if emitter == nil then emitterList[e] = { used = false } else if not emitter.used then local splash = PE_CreateNamedEmitter( 'graphixwater', waterImg, 64, e) emitter.used = true ParticlesSetWindVector( -0.00, -0.00 ) end end end