MODSon[line.com] Wiki - Beta 1.0
Call of Duty 2: Weather effects
From MODSonline Wiki
Contents |
[edit] Introduction
The weather effect are stored in a separate file from the main definition script file for any given map. It is called by the main script file and then run. If the main script file is named mapname.gsc, the wheather effect script file should be named mapname_fx.gsc for consistency. The mapname.gsc should contain the following:
#include maps\_utility;
#include maps\_anim;
#using_animtree("generic_human");
main()
{
maps\_load::main();
maps\mapname_fx::main();
}
Follow here basic scripts for setting the weather effect both in single and multi player.
[edit] Multiplayer
[edit] Rain
#include maps\_utility;
main()
{
// Rain
level._effect["rain_heavy_cloudtype"] = loadfx ("fx/misc/rain_heavy_cloudtype.efx");
level._effect["rain_10"] = loadfx ("fx/misc/rain_heavy.efx");
level._effect["rain_9"] = loadfx ("fx/misc/rain_9.efx");
level._effect["rain_8"] = loadfx ("fx/misc/rain_8.efx");
level._effect["rain_7"] = loadfx ("fx/misc/rain_7.efx");
level._effect["rain_6"] = loadfx ("fx/misc/rain_6.efx");
level._effect["rain_5"] = loadfx ("fx/misc/rain_5.efx");
level._effect["rain_4"] = loadfx ("fx/misc/rain_4.efx");
level._effect["rain_3"] = loadfx ("fx/misc/rain_3.efx");
level._effect["rain_2"] = loadfx ("fx/misc/rain_2.efx");
level._effect["rain_1"] = loadfx ("fx/misc/rain_1.efx");
level._effect["rain_0"] = loadfx ("fx/misc/rain_0.efx");
thread rainControl(); // level specific rain settings.
thread playerWeather(); // make the actual rain effect generate around the player
}
rainControl()
{
level.rainLevel = 10; // rain level
level._effect["rain_drops"] = level._effect["rain_" + level.rainLevel];
}
playerWeather()
{
player = getent("player","classname");
for (;;)
{
playfx ( level._effect["rain_drops"], player.origin + (0,0,650), player.origin + (0,0,680) );
if (level.rainLevel >= 8)
playfx ( level._effect["rain_heavy_cloudtype"], player.origin + (0,0,650));
wait (0.3);
}
}
[edit] Snow
[edit] Singleplayer
[edit] Rain
#include maps\_utility;
main()
{
// Rain
level._effect["rain_heavy_cloudtype"] = loadfx ("fx/misc/rain_heavy_cloudtype.efx");
level._effect["rain_10"] = loadfx ("fx/misc/rain_heavy.efx");
level._effect["rain_9"] = loadfx ("fx/misc/rain_9.efx");
level._effect["rain_8"] = loadfx ("fx/misc/rain_8.efx");
level._effect["rain_7"] = loadfx ("fx/misc/rain_7.efx");
level._effect["rain_6"] = loadfx ("fx/misc/rain_6.efx");
level._effect["rain_5"] = loadfx ("fx/misc/rain_5.efx");
level._effect["rain_4"] = loadfx ("fx/misc/rain_4.efx");
level._effect["rain_3"] = loadfx ("fx/misc/rain_3.efx");
level._effect["rain_2"] = loadfx ("fx/misc/rain_2.efx");
level._effect["rain_1"] = loadfx ("fx/misc/rain_1.efx");
level._effect["rain_0"] = loadfx ("fx/misc/rain_0.efx");
thread rainControl(); // level specific rain settings.
thread playerWeather(); // make the actual rain effect generate around the player
}
rainControl()
{
level.rainLevel = 10; // rain level
level._effect["rain_drops"] = level._effect["rain_" + level.rainLevel];
}
playerWeather()
{
player = getent("player","classname");
for (;;)
{
playfx ( level._effect["rain_drops"], player.origin + (0,0,650), player.origin + (0,0,680) );
if (level.rainLevel >= 8)
playfx ( level._effect["rain_heavy_cloudtype"], player.origin + (0,0,650));
wait (0.3);
}
}
