Code:

bmap fire3_farbe1 = <fire3_red.tga>;
VAR freshpartikelAnzahlPartikel = 15.430; //number of particles used for this effect


Function freshpartikel_spec_fun()
{
if(my.size > 0) { my.size -= -0.172 *time; }else{my.lifespan = 0; }
my.alpha -= 0.723 *time;
IF(My.alpha < 0) { my.alpha = 0; my.lifespan = 0; }
}

Function freshpartikelspezial()
{
my.blue = 128 ;
my.green = 128 ;
my.red = 128 ;
my.bmap = fire3_farbe1; //the effect bitmap
my.vel_x = random( 3 ) - 1.500 ;
my.vel_y = random( 3 ) - 1.500 ;
my.vel_z = random( 3 );
my.size = 3.867 ;
my.alpha = 41.303 ;
my.gravity = 0 ;
my.streak = off;
my.flare = on;
my.bright = on;
my.beam = off;
my.move = on;
my.transparent = on;
my.function = freshpartikel_spec_fun;
}


Function freshpartikel()
{
freshpartikelAnzahlPartikel = 15;
effect(freshpartikelspezial,max(1,freshpartikelAnzahlPartikel*time),my.x,nullvector);
}


action freshpartikel_action
{
my.invisible = on;
My.passable = on;
while(me)
{
if(key_e)
{
my.skill1 = 0;
while(my.skill1 < 16*3)
{
freshpartikel();
my.skill1 += 1*time;
wait(1);
}
while(key_e) { wait(1); }
}
wait(1);
}
}