rendered paste body/*
map cycling script sample - select with g_mapCycle
the script is purged and reloaded at each map restart
which happens on map change, but also when hitting GAMEON
for persistance, you need to use the {get,set}Persistant functions
files with .scriptcfg extension can be loaded outside of pure paks
*/
namespace mapcycle
{
void cycle()
{
// config
float cycle_maps = 1; // 1 = cycle through maps in the current game type, 0 = keep the same map
// cycle maps and game types
float replay_count = sys.getPersistantFloat( "replay_count" );
string si_gameType = sys.getcvar( "si_gameType" );
string si_map = sys.getcvar( "si_map" );
sys.println( "cycle: replay_count = " + replay_count );
if ( replay_count <= 0 )
{
// restart n times before next map
replay_count = 1;
// add in custom replay counts here for current game type
if ( si_gameType == "DM" )
{
;
}
else if ( si_gameType == "Freezetag" )
{
;
}
else if ( si_gameType == "Team DM" )
{
;
}
else if ( si_gameType == "CTF" )
{
;
}
}
replay_count--;
sys.setPersistantArg( "replay_count", replay_count );
if ( cycle_maps > 0 )
{
if ( si_gameType == "DM" || si_gameType == "Team DM" || si_gameType == "Freezetag" )
{
if ( si_map == "mp/drachq4dm2" ) //Sandstorm
{
sys.setcvar( "si_map", "mp/drachq4dm7" ); //Edge
}
else if ( si_map == "mp/drachq4dm7" )
{
sys.setcvar( "si_map", "mp/q4dm9" ); //Campgrounds
}
else if ( si_map == "mp/q4dm9" )
{
sys.setcvar( "si_map", "mp/drachq4dm1" ); //Fragging Yard
}
else if ( si_map == "mp/drachq4dm1" )
{
sys.setcvar( "si_map", "mp/drachq4dm8" ); //Longest Day
}
else if ( si_map == "mp/drachq4dm8" )
{
sys.setcvar( "si_map", "mp/drachq4dm3" ); //The Lost Fleet
}
else if ( si_map == "mp/drachq4dm3" )
{
sys.setcvar( "si_map", "mp/drachq4dm4" ); //Bloodwork
}
else if ( si_map == "mp/drachq4dm4" )
{
sys.setcvar( "si_map", "mp/drachq4dm6" ); //No Doctors
}
else if ( si_map == "mp/drachq4dm6" )
{
sys.setcvar( "si_map", "mp/q4dm11" ); //Skeleton Crew
}
else if ( si_map == "mp/q4dm11" )
{
sys.setcvar( "si_map", "mp/q4xdm10" ); //Central Industrial
}
else if ( si_map == "mp/q4xdm10" )
{
sys.setcvar( "si_map", "mp/q4xdm15" ); //Firewall
}
else if ( si_map == "mp/q4xdm15" )
{
sys.setcvar( "si_map", "mp/q4xdm11" ); //Warforged
}
else if ( si_map == "mp/q4xdm11" )
{
sys.setcvar( "si_map", "mp/q4xdm14" ); //Retrophobopolis
}
else if ( si_map == "mp/q4xdm14" )
{
sys.setcvar( "si_map", "mp/gdlk4tourney1final" ); //Grinder
}
else
{
sys.setcvar( "si_map", "mp/drachq4dm2" ); //Sandstorm
}
}
else if ( si_gameType == "CTF" )
{
if ( si_map == "mp/q4w2b" )
{
sys.setcvar( "si_map", "mp/q4wcp9e" );
}
else if ( si_map == "mp/q4wcp9e" )
{
sys.setcvar( "si_map", "mp/fpsq4ctf3" );
}
else if ( si_map == "mp/fpsq4ctf3" )
{
sys.setcvar( "si_map", "mp/fpsq4ctf8" );
}
else if ( si_map == "mp/fpsq4ctf8" )
{
sys.setcvar( "si_map", "mp/fpsq4ctf1" );
}
else if ( si_map == "mp/fpsq4ctf1" )
{
sys.setcvar( "si_map", "mp/fpsq4ctf2" );
}
else
{
sys.setcvar( "si_map", "mp/q4w2b" );
}
}
}
else
{
sys.say( "map cycle: restarting current map " + replay_count + " more time(s)" );
}
}
}