home *** CD-ROM | disk | FTP | other *** search
/ GameStar 2006 January / Gamestar_80_2006-01_dvd.iso / Dema / quake4_demo.exe / Setup / Data / q4base / mapcycle.scriptcfg < prev    next >
Text File  |  2005-11-25  |  2KB  |  84 lines

  1. /*
  2. map cycling script sample - select with g_mapCycle
  3.  
  4. the script is purged and reloaded at each map restart
  5.   which happens on map change, but also when hitting GAMEON
  6.   for persistance, you need to use the {get,set}Persistant functions
  7.  
  8. files with .scriptcfg extension can be loaded outside of pure paks
  9. */
  10.  
  11. namespace mapcycle {
  12.  
  13.     void cycle() {
  14.         // config
  15.         float cycle_maps = 1;                // 1 = cycle through maps in the current game type, 0 = keep the same map
  16.         float cycle_gametypes = 0;            // 1 = cycle through game types, 0 = keep the same game type
  17.  
  18.         // cycle maps and game types
  19.         float replay_count = sys.getPersistantFloat( "replay_count" );
  20.         string si_gameType = sys.getcvar( "si_gameType" );
  21.         string si_map = sys.getcvar( "si_map" );
  22.  
  23.         sys.println( "cycle: replay_count = " + replay_count );
  24.         
  25.         if ( replay_count <= 0 ) {
  26.             // restart n times before next map
  27.             replay_count = 2;
  28.             
  29.             // add in custom replay counts here for current game type
  30.             if ( si_gameType == "DM" ) {
  31.                 ;
  32.             } else if ( si_gameType == "Tourney" ) {
  33.                 ;
  34.             } else if ( si_gameType == "Team DM" ) {
  35.                 ;
  36.             } 
  37.         }
  38.         
  39.         replay_count--;
  40.         sys.setPersistantArg( "replay_count", replay_count );
  41.         if ( replay_count <= 0 ) {
  42.             // restart n times before next map
  43.             
  44.             if ( cycle_gametypes > 0 ) {
  45.             
  46.                 cycle_maps = 1;        // we want to make sure that we transition to a proper map for the new gametype
  47.                 
  48.                 if ( si_gameType == "DM" ) {
  49.                     sys.setcvar( "si_gameType", "Tourney" );
  50.                 } else if ( si_gameType == "Tourney" ) {
  51.                     sys.setcvar( "si_gameType", "Team DM" );
  52.                 } else if ( si_gameType == "Team DM" ) {
  53.                     sys.setcvar( "si_gameType", "DM" );
  54.                 } else {
  55.                     sys.setcvar( "si_gameType", "DM" );
  56.                 }
  57.                 
  58.             }
  59.  
  60.             if ( cycle_maps > 0 ) {
  61.             
  62.                 if ( si_gameType == "DM" || si_gameType == "Team DM" ) {
  63.                     if ( si_map == "mp/q4dm1" ) {
  64.                         sys.setcvar( "si_map", "mp/q4dm1" );
  65.                     } else {
  66.                         sys.setcvar( "si_map", "mp/q4dm1" );
  67.                     }
  68.                 
  69.                 } else if ( si_gameType == "Tourney" ) {
  70.                 
  71.                     if ( si_map == "mp/q4dm11v1" ) {
  72.                         sys.setcvar( "si_map", "mp/q4dm1" );
  73.                     } else {
  74.                         sys.setcvar( "si_map", "mp/q4dm11v1" );
  75.                     }
  76.                     
  77.                 } 
  78.             }
  79.         } else {
  80.             sys.say( "map cycle: restarting current map " + replay_count + " more time(s)" );
  81.         }
  82.     }
  83. }
  84.