You dont can use the my-Pointer. Try this:
void RAUCH_VERSCHWINDEN(PARTICLE *p)
{
p.alpha -= 3.6 * time;
if (p.alpha < 0) p.lifespan = 0;
}
void INIT_RAUCH(PARTICLE *p)
{
p.alpha = 50;
p.lifespan = 100;
p.bmap = Rauch_tga;
p.event = RAUCH_VERSCHWINDEN;
set(p,MOVE);
}
action FEUER()
{
....
....
effect (INIT_RAUCH, 1, my.x, Temp_vec1);
}