//include after the includes in the main script, need snow.pcx
//create object and give it the snowfal action, make it invisible

var rain_dist1 = 320;//default 500
var rain_dist2 = 160;//default 250
//about 8x8 blocks

function snowfall()
{
rain_mode = 1;
rain_rate = 1; //number of snow flakes per second
while(rain_mode > 0)
{
// all snowflakes will start 50 quants above the object
rain_pos.Z = my.Z + my.MAX_Z + 50;

// depending on the frame rate, create several snow flakes at the same time
rain_counter = rain_rate * TIME;
while(rain_counter > 0)
{
// place snowflake somewhere near the object
rain_pos.X = my.X + RANDOM(rain_dist1) - rain_dist2;
rain_pos.Y = my.Y + RANDOM(rain_dist1) - rain_dist2;
// now create one flake (emit 1) at this position
emit(1,rain_pos,particle_rain);
rain_counter -= 1;
}
wait(1);
}
}

//used ball.mdl for rain1 action

bmap rain_parmap=<rain.bmp>;

function rain_effect();
function rain_property();

var raining=0;

function rain_effect() {
my.vel_z=(-12.5-random(5));
my.x=camera.x+random(1500)-750;
my.y=camera.y+random(1500)-750;
my.skill_x=my.x;
my.skill_y=my.y;
my.skill_z=player.z+player.min_z;
my.skill_x=my.x;
my.skill_y=my.y;
my.skill_z=player.z+player.min_z;
my.z=camera.z+500;
my.move=on;
my.x-=33*my.vel_x;
my.y-=33*my.vel_y;
trace_mode = ignore_me;
trace(my.x,my.skill_x);
my.skill_z=target.z;
my.bmap=rain_parmap;
my.flare=on;
my.function=rain_property;
}

function rain_property() {
if (my.z<=my.skill_z) {
my.lifespan=0;
}
}

function rain(vel_x,vel_y,intensity) {
if (intensity==0) {intensity=20;}
if (raining==1) {
raining=0;
} else {
raining=1;
}
while (raining==1) {
temp.x=vel_x;
temp.y=vel_y;
effect(rain_effect, intensity*time, temp, temp);
wait 1;
}
}


Francois 'Fang' Godbout Quebec, Canada P.S. I'm a fench canadian using GameStudio v5.203