All pastes #330373 Raw Edit

Stuff

public text v1 · immutable
#330373 ·published 2007-01-27 21:08 UTC
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)" );
		}
	}
}