PercipitationGenerator Created by Steve Nabors
http://www.planetunreal.com/slick
slickwilly@planetunreal.com
Feb 2001

Files Included:
DM-Script-PrecipGen.unr - Contains MyLevel Embedded Script
WaterDrop.pcx - Water Drop Texture
SnowFlake.bmp - SnowFlake Texture

Note:  This is a MyLevel Embedded Script,  see bottom
of page for instructions on getting it in your map.
If you want to use one of the custom texture then you
can import them into MyLevel as well,  same as a screenshot
and use them from there so you won't need to create
an external texture package.  When in game you can right
click on the generator and select "Edit Script"
In game Documentation on how to use will be written
in Green Comments in the script.  Please read everything
so you full understand how to use without causing problems.

----------------------------------------------------------------
Using this Script:

This is a PercipitationGenerator actor that will spawn 
random Rain, Snow, or whatever that falls to the ground.  

The coverage area is determined by the radius you give it.
If you give a value for coverageRadius then the coverage area
will be circular, extending out from the actor the distance
of the CoverageRadius Value.   If you would like to define
a square or rectangular area of coverage then set
CoverageRadius to 0 and specify CoverageX and CoverageY.
If CoverageX and CoverageY are ignored if CoverageRadius
does not equal 0.  CoverageX and CoverageY values are the
distance from the actor to the edge of the coverage area.
If you wanted to cover an area 2048 x 4096 then you would
enter 1024 for CoverageX and 2048 for CoverageY.

Be sure that the horizontal plane that the Generator is 
placed on is clear of any geometry.  You will
Get errors in your log file if Particles try to spawn
inside geometry or outside the map so be sure to check
the log file while the map is running to make sure everything
is okay.  If you see Warning: ...  Accessed None errors
then you need to double check your settings to make sure
no particles are spawning inside solid geometry.  The map
will still run but will be a lot slower than normal.

SpawnWhenLand is a configurable actor that gets spawned
when the particles hit the ground.  This can be a waterring,
Splash, explosion, or whatever you find under effects.  The
percentage is the percent chance for each particle that
they will spawn this effect.  0 means none of them
and 100 means every particle will spawn the effect.
The effect only gets spawned within a 640 unit radius of
your player so keep this in mind.  Set SpawnWhenLand to None
to disable.

vVelocity is the spawn Velocity of the spawned particles.
A default verticle negative speed is given.  You can
change X,Y,Z as needed.  When in top down view of the
Generator: X is left, -X is Right, Y is Down, and -Y is
Up.  Z is the verticle speed, Z is up and -Z is down.

When playing Online this actor will go to sleep when the player
moves out of view of the generator for more that 5 seconds.
Then when the player can be seen by the generator again the
rain will start up.  sometimes this works okay and sometimes
not.  If you are getting wierd results then I suggest making
the generator bAlwaysRelevant = True in the advanced properties.
The will force the Generator to stay on always but can
eat up cpu time if the gererator is producing a large output.
If this is the case then I suggest lowering the intensity of
the generator and turn off the spawned effects.  "Stat Game"
at the console can give you some information about actor's CPU
time in the game.  You will see ACTOR=#.## If this number jumps
above 10 frequently then I would lower the intensity of the rain.

Once the script is transfered to your map you will see it
listed in the Actor Browser just above the Projectile
section.  Another part of the script is listed under
effects as precipParticle.  This is the particle
that gets spawned and shouldn't need any special user
settings.

----------------------------------------------------------------
MyLevel Script Instructions:

To use this script in your map you
will need to load this map in the editor first.  The script is
embedded in the MyLevel Package.  Once loaded you will not need
to do anything to this map or copy anything.  Loading it will
automatically place the new actor in the actor browser for the
remaining time that UED is open.  You can then load up any
map you want and place the new actor type in your map.  Once
placed in your map then your new map's MyLevel package will now contain the
script and you will not need this map anymore until
you need it in yet another map or for some reason you saved
any new maps without the actor present in the map.  MyLevel
is purged if it contains anything that isn't in use in the
map.  To get it back just load up this map again to get the actor
listed and then load up your new map again and place it.

----------------------------------------------------------------
Networking Information:

This Generator Runs completely on the Client machine.  The
Server itself does not run the script at all so you
will not need to worry about any Script overhead
or excessive bandwidth when using this script on 
a server.   The script will however run for the player
on a non-dedicated server.