Author Topic: End of Game Voting system won't work  (Read 1422 times)

Offline TwoGun

  • Rank: Private
  • *
  • Posts: 102
End of Game Voting system won't work
« on: July 26, 2009, 11:29:10 am »
Okay I'm starting a new thread for this.  Here  is what  I've got at this time:

currently I'm running the Extreme X5 2.0 version.  Here is my command line:

CoDWaWmp.exe +set fs_localAppData "C:\Documents and Settings\Chris\Desktop\WaW Server" +set fs_game mods\ww_x5 +exec server.cfg +set dedicated 2 +set net_ip 192.168.1.37 +set net_port 28960 +set sv_punkbuster 0 +map_rotate

******************************************************************************
 // End-of-game voting extension
//******************************************************************************
 // Global switch for end-game map voting
// 0 = disable (default)
// 1 = enable
set ex_mapvote "1"

// Maximum number of maps allowed in voting system
// It doesn't have to match the number of maps you have in the rotation or
// in the map list (config\_ex_votemaps.gsc). This is to cap the voting
// system to a certain number of maps to vote for.
// min = 10 (one page), max = 160 (sixteen pages, default)
//set ex_mapvote_max "40"

// The way maps are presented in map voting system
// For options 2 and 3, see related settings in maprotation.cfg
// 0 = normal rotation -- unchanged (default)
// 1 = normal rotation -- random
// 2 = player based rotation -- unchanged
// 3 = player based rotation -- random
// 4 = based on config\_ex_votemaps.gsc -- alpha sorted
// 5 = based on config\_ex_votemaps.gsc -- random
set ex_mapvote_mode "4"

// Time allowed for voting maps in seconds
// min = 10, max = 180 (default = 30)
//set ex_mapvote_time "20"

// Time allowed for voting game type in seconds (mode 4 and 5 only)
// min = 10, max = 180 (default = 10)
//set ex_mapvote_time_gt "10"

// Make last candidate an option to replay the same map
// 0 = disabled (default)
// 1 = enabled
//set ex_mapvote_replay "1"

// Map vote memory
// Omit maps from the map vote list until they are freed again.
// Enabling this will disable the map replay feature automatically.
// 0 = disabled (default)
// 1 = enabled
//set ex_mapvote_memory "1"

// Map vote memory capacity
// The capacity of the memory is key factor in determining how long a map is
// omitted from the map vote list.
// Having a game time of 20 minutes and a memory of 3 maps, it will take one
// hour for the map to be available again.
// min = 2 (if you want only 1, you can simply disable the replay feature)
// max = 160 (auto-cap to 2/3 of number of maps on server, default 3)
//set ex_mapvote_memory_max "3"

// Bypass clan voting for the end-game voting system only (all players can participate)
// 0 = disabled (default)
// 1 = enabled
//set ex_mapvote_ignore_clanvoting "1"

// Possibility to exclude stock games from the map vote systems.
// WARNING: only remove stock maps if you don't have any of them in the map
// rotation, and you don't want to call a vote for them either.
// 0 = disable (default)
// 1 = enable
//set ex_mapvote_ignore_stock "1"


//******************************************************************************
 // Map enviroment settings
//******************************************************************************
 // Gravity in percent
// Default gravity is 100. 90 makes gravity 10% less
//set ex_gravity "90"

// Game speed in percent
// Default game speed is 100%. 90 makes game speed 10% less
//set ex_speed "110"


//******************************************************************************
 // Intermission scoreboard time  
// **Longer Intermission is needed to Create Custom Classes**
//******************************************************************************
set scr_intermission_time "30"  


And my ex_votemaps looks like this:

// IMPORTANT:
// - DO NOT ADD STOCK MAPS. They are already in here.
//   If you don't want stock maps, see mapcontrol.cfg -- ex_mapvote_ignore_stock.
// - ONLY REPLACE TEXT BETWEEN QUOTES. Otherwise you corrupt the structure.
// - DO NOT REMOVE THE &-SIGN. This needs to be there.
// - DO NOT ADD COLOR CODES TO THE GAMETYPES. It will mess up the system.
// - KEEP THIS FILE UNDER 750 LINES (including comments)!
//   IMPORTANT: Please Add 1 Map at a Time (including stock maps), the total number of maps is limited!!!!!!!!!

// Add stock maps
//if(!level.ex_mapvote_ignore_stock)
//{
level.ex_maps[level.ex_maps.size] = spawnstruct();
level.ex_maps[level.ex_maps.size-1].mapname = "mp_airfield";
level.ex_maps[level.ex_maps.size-1].longname = "Airfield";
level.ex_maps[level.ex_maps.size-1].loclname = &"Airfield";
level.ex_maps[level.ex_maps.size-1].gametype = "dm dom koth sab sd tdm war ctf ctfb htf";

level.ex_maps[level.ex_maps.size] = spawnstruct();
level.ex_maps[level.ex_maps.size-1].mapname = "";
level.ex_maps[level.ex_maps.size-1].longname = "";
level.ex_maps[level.ex_maps.size-1].loclname = &"";
level.ex_maps[level.ex_maps.size-1].gametype = "dm dom koth sab sd tdm war ctf ctfb htf";

level.ex_maps[level.ex_maps.size] = spawnstruct();
level.ex_maps[level.ex_maps.size-1].mapname = "mp_castle";
level.ex_maps[level.ex_maps.size-1].longname = "Castle";
level.ex_maps[level.ex_maps.size-1].loclname = &"Castle";
level.ex_maps[level.ex_maps.size-1].gametype = "dm dom koth sab sd tdm war ctf ctfb htf";

level.ex_maps[level.ex_maps.size] = spawnstruct();
level.ex_maps[level.ex_maps.size-1].mapname = "mp_courtyard";
level.ex_maps[level.ex_maps.size-1].longname = "Court Yard";
level.ex_maps[level.ex_maps.size-1].loclname = &"Court Yard";
level.ex_maps[level.ex_maps.size-1].gametype = "dm dom koth sab sd tdm war ctf ctfb htf";

level.ex_maps[level.ex_maps.size] = spawnstruct();
level.ex_maps[level.ex_maps.size-1].mapname = "mp_dome";
level.ex_maps[level.ex_maps.size-1].longname = "Dome";
level.ex_maps[level.ex_maps.size-1].loclname = &"Dome";
level.ex_maps[level.ex_maps.size-1].gametype = "dm dom tdm koth sab sd war ctf ctfb htf";

level.ex_maps[level.ex_maps.size] = spawnstruct();
level.ex_maps[level.ex_maps.size-1].mapname = "mp_downfall";
level.ex_maps[level.ex_maps.size-1].longname = "Downfall";
level.ex_maps[level.ex_maps.size-1].loclname = &"Downfall";
level.ex_maps[level.ex_maps.size-1].gametype = "dm dom koth tdm sab sd war ctf ctfb htf";

level.ex_maps[level.ex_maps.size] = spawnstruct();
level.ex_maps[level.ex_maps.size-1].mapname = "mp_hangar";
level.ex_maps[level.ex_maps.size-1].longname = "Hangar";
level.ex_maps[level.ex_maps.size-1].loclname = &"Hangar";
level.ex_maps[level.ex_maps.size-1].gametype = "dm dom koth tdm sab sd war ctf ctfb htf";

level.ex_maps[level.ex_maps.size] = spawnstruct();
level.ex_maps[level.ex_maps.size-1].mapname = "mp_makin";
level.ex_maps[level.ex_maps.size-1].longname = "Makin";
level.ex_maps[level.ex_maps.size-1].loclname = &"Makin";
level.ex_maps[level.ex_maps.size-1].gametype = "dm dom koth tdm sab sd war ctf ctfb htf";

level.ex_maps[level.ex_maps.size] = spawnstruct();
level.ex_maps[level.ex_maps.size-1].mapname = "mp_makin_day";
level.ex_maps[level.ex_maps.size-1].longname = "Makin Day";
level.ex_maps[level.ex_maps.size-1].loclname = &"Makin Day";
level.ex_maps[level.ex_maps.size-1].gametype = "dm dom koth tdm sab sd war ctf ctfb htf";

level.ex_maps[level.ex_maps.size] = spawnstruct();
level.ex_maps[level.ex_maps.size-1].mapname = "mp_outskirts";
level.ex_maps[level.ex_maps.size-1].longname = "Outskirts";
level.ex_maps[level.ex_maps.size-1].loclname = &"Outskirts";
level.ex_maps[level.ex_maps.size-1].gametype = "dm dom koth tdm sab sd war ctf ctfb htf";

level.ex_maps[level.ex_maps.size] = spawnstruct();
level.ex_maps[level.ex_maps.size-1].mapname = "mp_roundhouse";
level.ex_maps[level.ex_maps.size-1].longname = "Roundhouse";
level.ex_maps[level.ex_maps.size-1].loclname = &"Roundhouse";
level.ex_maps[level.ex_maps.size-1].gametype = "dm dom koth tdm sab sd war ctf ctfb htf";

level.ex_maps[level.ex_maps.size] = spawnstruct();
level.ex_maps[level.ex_maps.size-1].mapname = "mp_seelow";
level.ex_maps[level.ex_maps.size-1].longname = "Seelow";
level.ex_maps[level.ex_maps.size-1].loclname = &"Seelow";
level.ex_maps[level.ex_maps.size-1].gametype = "dm dom koth tdm sab sd war ctf ctfb htf";

level.ex_maps[level.ex_maps.size] = spawnstruct();
level.ex_maps[level.ex_maps.size-1].mapname = "mp_shrine";
level.ex_maps[level.ex_maps.size-1].longname = "Shrine";
level.ex_maps[level.ex_maps.size-1].loclname = &"Shrine";
level.ex_maps[level.ex_maps.size-1].gametype = "dm dom koth tdm sab sd war ctf ctfb htf";

level.ex_maps[level.ex_maps.size] = spawnstruct();
level.ex_maps[level.ex_maps.size-1].mapname = "mp_suburban";
level.ex_maps[level.ex_maps.size-1].longname = "Suburban";
level.ex_maps[level.ex_maps.size-1].loclname = &"Suburban";
level.ex_maps[level.ex_maps.size-1].gametype = "dm dom koth tdm sab sd war ctf ctfb htf";
//}
// DON'T CHANGE ANYTHING ABOVE THIS LINE
// (unless you want to restrict game types for stock maps in map vote mode 4 or 5)

           level.ex_maps[level.ex_maps.size] = spawnstruct();
level.ex_maps[level.ex_maps.size-1].mapname = "mp_snowypark";
level.ex_maps[level.ex_maps.size-1].longname = "Snowypark";
level.ex_maps[level.ex_maps.size-1].loclname = &"Snowypark";
level.ex_maps[level.ex_maps.size-1].gametype = "dm dom koth sab sd tdm war ctf ctfb htf";

           level.ex_maps[level.ex_maps.size] = spawnstruct();
level.ex_maps[level.ex_maps.size-1].mapname = "mp_sps_kiebu";
level.ex_maps[level.ex_maps.size-1].longname = "Kiebu";
level.ex_maps[level.ex_maps.size-1].loclname = &"Kiebu";
level.ex_maps[level.ex_maps.size-1].gametype = "dm dom koth sab sd tdm war ctf ctfb htf";

           level.ex_maps[level.ex_maps.size] = spawnstruct();
level.ex_maps[level.ex_maps.size-1].mapname = "mp_EL";
level.ex_maps[level.ex_maps.size-1].longname = "EL";
level.ex_maps[level.ex_maps.size-1].loclname = &"EL";
level.ex_maps[level.ex_maps.size-1].gametype = "dm dom koth sab sd tdm war ctf ctfb htf";

           level.ex_maps[level.ex_maps.size] = spawnstruct();
level.ex_maps[level.ex_maps.size-1].mapname = "mp_landing";
level.ex_maps[level.ex_maps.size-1].longname = "Landing";
level.ex_maps[level.ex_maps.size-1].loclname = &"Landing";
level.ex_maps[level.ex_maps.size-1].gametype = "dm dom koth sab sd tdm war ctf ctfb htf";

            

// DON'T CHANGE ANYTHING BELOW THIS LINE
}

Not sure what I have wrong that will not allow the end of game voting to occur.  Any ideas?

My server.cfg settings look like this:

// Voting
set g_allowVote "1"
set g_voteAbstainWeight "0.5"
set g_oldVoting "1"

Perhaps this infor taken from the console will give a clue?

file 'maps/mp/gametypes/_rank.gsc', line 305)
   player waittill("ex_unlocks_done");
          *
(file 'maps/mp/gametypes/_rank.gsc', line 381)
 player updateChallenges();
        *
(file 'maps/mp/gametypes/_rank.gsc', line 305)
   player waittill("ex_unlocks_done");
          *
(file 'maps/mp/gametypes/_rank.gsc', line 381)
 player updateChallenges();
        *
(file 'maps/mp/gametypes/_rank.gsc', line 305)
   player waittill("ex_unlocks_done");
          *
script runtime error: potential infinite loop in script - killing thread.
(file 'maps/mp/gametypes/_rank.gsc', line 1085)
 for( idx = 1; isdefined( tableLookup( tableName, 0, idx, 0 ) ) && tableLookup( tableName, 0, idx, 0 ) != ""; idx++ )

The error claiming a potential for infinate loop my be the problem but I have no idea what to do to correct it.  I have not modified this file myself at all.?

If I use the command console to end the map I just see a flash of something that may be the end of game voting system but I cannot tell for sure as it only flashes by and the next map in the rotation starts.

Any help would be appreciated.

Offline Joker{eXtreme}

  • Rank: Private
  • *
  • Posts: 6108
    • http://www.mycallofduty.com
Re: End of Game Voting system won't work
« Reply #1 on: July 26, 2009, 01:48:57 pm »
I suspect it is something wrong in the map names on your server.  Just using a stock version of X5v2.0 the End Game Map voting works fine.

Here is my config/mapcontrol.cfg
Code: [Select]
//******************************************************************************
// End-of-game voting extension
//******************************************************************************
// Global switch for end-game map voting
// 0 = disable (default)
// 1 = enable
set ex_mapvote "1"

// Maximum number of maps allowed in voting system
// It doesn't have to match the number of maps you have in the rotation or
// in the map list (config\_ex_votemaps.gsc). This is to cap the voting
// system to a certain number of maps to vote for.
// min = 10 (one page), max = 160 (sixteen pages, default)
set ex_mapvote_max "25"

// The way maps are presented in map voting system
// For options 2 and 3, see related settings in maprotation.cfg
// 0 = normal rotation -- unchanged (default)
// 1 = normal rotation -- random
// 2 = player based rotation -- unchanged
// 3 = player based rotation -- random
// 4 = based on config\_ex_votemaps.gsc -- alpha sorted
// 5 = based on config\_ex_votemaps.gsc -- random
set ex_mapvote_mode "5"

// Time allowed for voting maps in seconds
// min = 10, max = 180 (default = 30)
//set ex_mapvote_time "20"

// Time allowed for voting game type in seconds (mode 4 and 5 only)
// min = 10, max = 180 (default = 10)
//set ex_mapvote_time_gt "10"

// Make last candidate an option to replay the same map
// 0 = disabled (default)
// 1 = enabled
//set ex_mapvote_replay "1"

// Map vote memory
// Omit maps from the map vote list until they are freed again.
// Enabling this will disable the map replay feature automatically.
// 0 = disabled (default)
// 1 = enabled
set ex_mapvote_memory "1"

// Map vote memory capacity
// The capacity of the memory is key factor in determining how long a map is
// omitted from the map vote list.
// Having a game time of 20 minutes and a memory of 3 maps, it will take one
// hour for the map to be available again.
// min = 2 (if you want only 1, you can simply disable the replay feature)
// max = 160 (auto-cap to 2/3 of number of maps on server, default 3)
set ex_mapvote_memory_max "3"

// Bypass clan voting for the end-game voting system only (all players can participate)
// 0 = disabled (default)
// 1 = enabled
set ex_mapvote_ignore_clanvoting "1"

// Possibility to exclude stock games from the map vote systems.
// WARNING: only remove stock maps if you don't have any of them in the map
// rotation, and you don't want to call a vote for them either.
// 0 = disable (default)
// 1 = enable
//set ex_mapvote_ignore_stock "1"

And attached screenshot

Offline TwoGun

  • Rank: Private
  • *
  • Posts: 102
Re: End of Game Voting system won't work
« Reply #2 on: July 26, 2009, 02:48:37 pm »
Well you were right, I cut and  pasted in your section and the end of game voting did appear.  Yet it has a few odd blank lines in the voting system.  I'm not sure why but at least its showing up now.  Still needs a little work but maybe I can get it tweaked.

Thank for your help.

Offline TwoGun

  • Rank: Private
  • *
  • Posts: 102
Re: End of Game Voting system won't work
« Reply #3 on: July 26, 2009, 04:19:31 pm »
Sorry to be such a bother but when I choose a custom map that I know I need to download from my website, the game just sits at the scoreboard.  Lookng at my console I see this:

Setting g_gametype: dm.
Unknown keyword 'class' in sv_mapRotation.
Unknown keyword '1234567890' in sv_mapRotation.
Setting map: mp_snowypark.
Error: Can't find map "mp_snowypark".
A mod is required for custom maps
Server: Updating session (180050ms)
....Server: Session updated
Server: Updating session (180050ms)
....Server: Session updated

I'm concerened by the message that is says "A mod is required for custom maps".  I have to wonder at this.  I also have noticed that when I connect to the game I never had to download the mod file.

And it would appear that perhaps the path for custom maps is different in the game than in CoD4?