Regen einbauen (2)

yoda

Zitat:

Original von bangingbernie

Das Script von Rasta ist schon gut, aber leider regnet es auch in den Häusern.

Hier das Script mit den minimalen Änderungen (FETT geändert):

main()
{

level.rain1 = loadfx ("fx/misc/rain_heavy_cloudtype.efx");

thread rain1();
}

rain1()
{
zufall = RandomInt(200);

while(1)
{
players = getentarray("player", "classname");

if(players.size > 0)
{
max_nodes = 20;
max_nodes_per_player = max_nodes/players.size;

for(ii=0;ii<max_nodes_per_player;ii++)
{
for(i = 0; i < players.size; i++)
{
player = players[i];

if(isAlive(player))
{
x= 350-randomfloat(700);
y= 350-randomfloat(700);

pos = player.origin +(x,y,200) ;
trace = bulletTrace(pos,pos +(0,0,-250), true, undefined);

if(trace["fraction"] != 1) playfx(level.rain1,trace["position"]);
wait 0.05;
}
}
}
}

wait 0.05;
}
}

==============================================

Das war rain1.gsc (in maps/mp)

==============================================

Wenn man ab und zu auch Regentropfenplatscher auf dem Boden sehen will, kann man das mit der rain2.gsc machen:

main()
{

level.rain2 = loadfx ("fx/misc/rain_splash.efx");

thread rain2();
}

rain2()
{
zufall = RandomInt(200);

while(1)
{
players = getentarray("player", "classname");

if(players.size > 0)
{
max_nodes = 20;
max_nodes_per_player = max_nodes/players.size;

for(ii=0;ii<max_nodes_per_player;ii++)
{
for(i = 0; i < players.size; i++)
{
player = players[i];

if(isAlive(player))
{
x= 350-randomfloat(700);
y= 350-randomfloat(700);

pos = player.origin +(x,y,200) ;
trace = bulletTrace(pos,pos +(0,0,-250), true, undefined);

if(trace["fraction"] != 1) playfx(level.rain2,trace["position"]);
wait 0.05;
}
}
}
}

wait 0.05;
}
}

==============================================

Das war rain2.gsc (in maps/mp)

==============================================

Jetzt noch in der deine_map.gsc folgendes einfügen:

maps\mp\rain1::main();
maps\mp\rain2::main();

Und schon geht's.

Gruss
Bernie

yoda
Bei Fragen und Problemen bitte hier posten:

Regen einbauen (2)