void _testevent (PARTICLE* p){
p.alpha -= time_step;
if (p.alpha <= 0) p.lifespan = 0;
//p.z -= time_step * 2; // wont work too
}
...
PARTICLE* p = ent_decal (you, bmMark, 7+random(3), random(360));
p.material = mat_model; // mat_particle, mat_sprites doesnt matter
p.alpha = 80;
p.vel_z = 3;
p.gravity = 3;
p.event = _testevent;
set (p, MOVE | TRANSLUCENT);
/*//and this wont do it also
while (p && p.z > 0){
p.z -= time_step * 2;
wait (1);
}*/
...