Here's a raindrip function:
sync on
`backdrop - fog control
backdrop on
color backdrop rgb(75,75,75)
fog on
fog distance 200
fog color rgb(75,75,75)
`call the function to make rain
make_rain(50)
`make a matrix
make matrix 1,1000,1000,50,50
do
`handle all the drips
for i=1 to 50
handle_drip(i,100,1000,1000)
next i
sync
loop
`function to make rain
function make_rain(nr_of_drips)
for i=1 to nr_of_drips
make object cylinder i,1
color object i,rgb(200,200,200)
scale object i,100,600,100
ghost object on i
next i
endfunction
`function to handle raindrips
function handle_drip(id,max_y,max_x,max_z)
x#=object position x(id)
y#=object position y(id)
z#=object position z(id)
if y#>0.0
position object id,x#,y#-15.0,z#
else
position object id,rnd(max_x),maxy#+rnd(150),rnd(max_z)
endif
endfunction
good luck