#define Partikelraum skill1
#define Partikelmenge skill2
BMAP* bmapGlow = "P_Dust.tga";
var glowFade = 0; // fadegeschwindigkeit
var glowMove = 0.5; // Bewegungsgeschwindigkeit
function GlowRemove(PARTICLE *p)
{
if(p.alpha <= 100 && p.skill_a == 0)
{
p.alpha += glowFade*time_step;
}
if(p.alpha >= 100){p.skill_a = 1;}
if(p.alpha >= 1 && p.skill_a == 1)
{
p.alpha -= glowFade*time_step;
}
if(p.alpha <= 1 && p.skill_a == 1){p.lifespan = 0;}
}
´
function Glow(PARTICLE *p)
{
glowFade = 3;
p.vel_x = 1-random(4)*glowMove;
p.vel_y = 1-random(4)*glowMove;
p.vel_z = 1-random(2)*glowMove;
p.alpha = 0;
p.skill_a = 0;
p.size = 20;
p.bmap = bmapGlow;
p.flags |= (BRIGHT | TRANSLUCENT | MOVE);
p.green = 255;
p.event = GlowRemove;
}
// uses: Partikelmenge, Partikelraum
action GlowErmitterBlob()
{
VECTOR glowPos;
set(my,PASSABLE | INVISIBLE);
if(!my.Partikelraum) { my.Partikelraum = 3000; }
if(!my.Partikelmenge) { my.Partikelmenge = -0.1; }
while(!player) wait(1);
while(1)
{
glowPos.x = my.x - random(my.Partikelraum) + my.Partikelraum/2;
glowPos.y = my.y - random(my.Partikelraum) + my.Partikelraum/4;
glowPos.z = my.z - random(my.Partikelraum) + my.Partikelraum/12;
effect(Glow,1,glowPos,nullvector);
wait(my.Partikelmenge);
}
my.eflags &= ~DYNAMIC;
}
// uses: Partikelraum, Partikelmenge
action GlowErmitterPlayer()
{
VECTOR glowPos;
if(!my.Partikelraum){my.Partikelraum = 600;}
set(my,PASSABLE|INVISIBLE);
while(!player) wait(1);
while(1)
{
glowPos.x = player.x - random(my.Partikelraum) + my.Partikelraum/2;
glowPos.y = player.y - random(my.Partikelraum) + my.Partikelraum/2;
glowPos.z = player.z - random(my.Partikelraum) + my.Partikelraum/2;
effect(Glow,1,glowPos,nullvector);
wait(my.Partikelmenge);
}
}