Error : sever side
Code:
******* script runtime error *******
type undefined is not a vector: (file 'maps/mp/gametypes/_mapvote.gsc', line 455)
   self.vote_indicator.color = colors[self.votechoice];
                             *
started from:
(file 'maps/mp/gametypes/_mapvote.gsc', line 424)
  wait .01;
  *
************************************
********************
ERROR: script runtime error
(see console for details)
(file 'maps/mp/gametypes/_mapvote.gsc', line 424)

********************
----- Server Shutdown -----
Sending heartbeat to cod2master.activision.com
==== ShutdownGame ====
Going to CS_ZOMBIE for
0: EXE_DISCONNECTED
---------------------------
Script :
PHP Code:
Init()
{

        
min 0;
        
max 0;
    
level.gametype getcvar("g_gametype");
    
level.logging getcvarint("logfile");

    
// Map voting    
    
level.mapvote 0;
    if (
getcvar("scr_map_vote")!= "" && getcvarint("scr_map_vote") > 0)
        
level.mapvote 1;

    if(!
level.mapvote)
        return;

    
level.mapvotetime 25;
    if (
getcvar("scr_map_vote_time") != "" && getcvarint("scr_map_vote_time") > 10)
        
level.mapvotetime getcvarint("scr_map_vote_time");
    if (
level.mapvotetime 60)
        
level.mapvotetime 60;

    
level.mapvotereplay    0;
    if (
getcvar("scr_map_vote_replay")!= "" && getcvarint("scr_map_vote_replay") > 0)
        
level.mapvotereplay    1;
    
    if(!
isdefined(game["gamestarted"]))
    {
        
// Setup strings
        
game["MapVote"]    = &"Press ^2FIRE^7 to vote                           Votes";
        
game["TimeLeft"] = &"Time Left: ";
        
game["MapVoteHeader"] = &"Next Map Vote";
        
game["Vote1"] = &"Toujane   Carentan   Caen   El Alamein   Beltot   Burgundy";
        
game["Vote2"] = &"Brecourt   Stalingrad   Moscow   Leningrad   St. Eglise   Matmata   Villers-Bocage";

        

        
// Precache stuff used by map voting
        
precacheShader("white");
        
precacheString(game["Vote1"]);
        
precacheString(game["Vote2"]);

        
        
precacheString(game["MapVote"]);
        
precacheString(game["TimeLeft"]);
        
precacheString(game["MapVoteHeader"]);

    }
}

Initialize()
{
    if(!
level.mapvote)
        return;

    
level.mapvotehudoffset 30;

    
// Small wait
    
wait .5;

    
// Cleanup some stuff to free up some resources
    //CleanUp();

    // Create HUD
    
CreateHud();

    
// Start mapvote thread    
    
thread RunMapVote();

    
// Wait for voting to finish
    
level waittill("VotingComplete");

    
// Delete HUD
    
DeleteHud();
}

CleanUp()
{
    
// Kill AWE threads
    
level notify("awe_killthreads");
    
// Wait for threads to die
    
wait .05;
    
// Delete some HUD elements
    
if(isdefined(level.clock)) level.clock destroy();
    if(
isdefined(level.awe_axisicon)) level.awe_axisicon destroy();
    if(
isdefined(level.awe_axisnumber)) level.awe_axisnumber destroy();
    if(
isdefined(level.awe_deadaxisicon)) level.awe_deadaxisicon destroy();
    if(
isdefined(level.awe_deadaxisnumber)) level.awe_deadaxisnumber destroy();
    if(
isdefined(level.awe_alliedicon)) level.awe_alliedicon destroy();
    if(
isdefined(level.awe_alliednumber)) level.awe_alliednumber destroy();
    if(
isdefined(level.awe_deadalliedicon)) level.awe_deadalliedicon destroy();
    if(
isdefined(level.awe_deadalliednumber)) level.awe_deadalliednumber destroy();
    if(
isdefined(level.awe_warmupmsg)) level.awe_warmupmsg destroy();
}

CreateHud()
{
    
level.vote_hud_bgnd newHudElem();
    
level.vote_hud_bgnd.archived false;
    
level.vote_hud_bgnd.alpha .7;
    
level.vote_hud_bgnd.75;
    
level.vote_hud_bgnd.level.mapvotehudoffset 17;
    
level.vote_hud_bgnd.sort 9000;
    
level.vote_hud_bgnd.color = (0,0,0);
    
level.vote_hud_bgnd setShader("white"475150);    //260 250
    
    
level.vote_header newHudElem();
    
level.vote_header.archived false;
    
level.vote_header.alpha .3;
    
level.vote_header.77;
    
level.vote_header.level.mapvotehudoffset 19;
    
level.vote_header.sort 9001;
    
level.vote_header setShader("white"47121);
    
    
level.vote_headerText newHudElem();
    
level.vote_headerText.archived false;
    
level.vote_headerText.210;
    
level.vote_headerText.level.mapvotehudoffset 21;
    
level.vote_headerText.sort 9998;
    
level.vote_headerText.label game["MapVoteHeader"];
    
level.vote_headerText.fontscale 1.3;

    
level.vote_leftline newHudElem();
    
level.vote_leftline.archived false;
    
level.vote_leftline.alpha .3;
    
level.vote_leftline.77;
    
level.vote_leftline.level.mapvotehudoffset 19;
    
level.vote_leftline.sort 9001;
    
level.vote_leftline setShader("white"1146);
    
    
level.vote_rightline newHudElem();
    
level.vote_rightline.archived false;
    
level.vote_rightline.alpha .3;
    
level.vote_rightline.547;
    
level.vote_rightline.level.mapvotehudoffset 19;
    
level.vote_rightline.sort 9001;
    
level.vote_rightline setShader("white"1146);
    
    
level.vote_bottomline newHudElem();
    
level.vote_bottomline.archived false;
    
level.vote_bottomline.alpha .3;
    
level.vote_bottomline.77;
    
level.vote_bottomline.level.mapvotehudoffset 164;
    
level.vote_bottomline.sort 9001;
    
level.vote_bottomline setShader("white"4711);

    
level.vote_hud_timeleft newHudElem();
    
level.vote_hud_timeleft.archived false;
    
level.vote_hud_timeleft.400;
    
level.vote_hud_timeleft.level.mapvotehudoffset 26;
    
level.vote_hud_timeleft.sort 9998;
    
level.vote_hud_timeleft.fontscale .8;
    
level.vote_hud_timeleft.label game["TimeLeft"];
    
level.vote_hud_timeleft setValuelevel.mapvotetime );    
    
    
level.vote_hud_instructions newHudElem();
    
level.vote_hud_instructions.archived false;
    
level.vote_hud_instructions.340;
    
level.vote_hud_instructions.level.mapvotehudoffset 56;
    
level.vote_hud_instructions.sort 9998;
    
level.vote_hud_instructions.fontscale 1;
    
level.vote_hud_instructions.label game["MapVote"];
    
level.vote_hud_instructions.alignX "center";
    
level.vote_hud_instructions.alignY "middle";

    
level.vote_hud_vote1 newHudElem();
    
level.vote_hud_vote1.archived false;
    
level.vote_hud_vote1.321;
    
level.vote_hud_vote1.level.mapvotehudoffset 77;
    
level.vote_hud_vote1.sort 9998;
    
level.vote_hud_vote1.fontscale 1.2;
    
level.vote_hud_vote1.label game["Vote1"];
    
level.vote_hud_vote1.alignX "center";
    
level.vote_hud_vote1.alignY "middle";
    
    
level.vote_hud_vote2 newHudElem();
    
level.vote_hud_vote2.archived false;
    
level.vote_hud_vote2.312;
    
level.vote_hud_vote2.level.mapvotehudoffset 125;
    
level.vote_hud_vote2.sort 9998;
    
level.vote_hud_vote2.fontscale 1.2;
    
level.vote_hud_vote2.label game["Vote2"];
    
level.vote_hud_vote2.alignX "center";
    
level.vote_hud_vote2.alignY "middle";

    
level.vote_map1 newHudElem();
    
level.vote_map1.archived false;
    
level.vote_map1.179;
    
level.vote_map1.level.mapvotehudoffset 93;
    
level.vote_map1.sort 9998;
        
    
level.vote_map2 newHudElem();
    
level.vote_map2.archived false;
    
level.vote_map2.234;
    
level.vote_map2.level.mapvotehudoffset 93;
    
level.vote_map2.sort 9998;
        
    
level.vote_map3 newHudElem();
    
level.vote_map3.archived false;
    
level.vote_map3.289;
    
level.vote_map3.level.mapvotehudoffset 93;
    
level.vote_map3.sort 9998;    

    
level.vote_map4 newHudElem();
    
level.vote_map4.archived false;
    
level.vote_map4.344;
    
level.vote_map4.level.mapvotehudoffset 93;
    
level.vote_map4.sort 9998;    

    
level.vote_map5 newHudElem();
    
level.vote_map5.archived false;
    
level.vote_map5.399;
    
level.vote_map5.level.mapvotehudoffset 93;
    
level.vote_map5.sort 9998;

    
level.vote_map6 newHudElem();
    
level.vote_map6.archived false;
    
level.vote_map6.454;
    
level.vote_map6.level.mapvotehudoffset 93;
    
level.vote_map6.sort 9998;

    
level.vote_map7 newHudElem();
    
level.vote_map7.archived false;
    
level.vote_map7.110;
    
level.vote_map7.level.mapvotehudoffset 141;
    
level.vote_map7.sort 9998;

    
level.vote_map8 newHudElem();
    
level.vote_map8.archived false;
    
level.vote_map8.173;
    
level.vote_map8.level.mapvotehudoffset 141;
    
level.vote_map8.sort 9998;

    
level.vote_map9 newHudElem();
    
level.vote_map9.archived false;
    
level.vote_map9.236;
    
level.vote_map9.level.mapvotehudoffset 141;
    
level.vote_map9.sort 9998;

    
level.vote_map10 newHudElem();
    
level.vote_map10.archived false;
    
level.vote_map10.299;
    
level.vote_map10.level.mapvotehudoffset 141;
    
level.vote_map10.sort 9998;

    
level.vote_map11 newHudElem();
    
level.vote_map11.archived false;
    
level.vote_map11.362;
    
level.vote_map11.level.mapvotehudoffset 141;
    
level.vote_map11.sort 9998;

    
level.vote_map12 newHudElem();
    
level.vote_map12.archived false;
    
level.vote_map12.425;
    
level.vote_map12.level.mapvotehudoffset 141;
    
level.vote_map12.sort 9998;
    
    
level.vote_map13 newHudElem();
    
level.vote_map13.archived false;
    
level.vote_map13.488;
    
level.vote_map13.level.mapvotehudoffset 141;
    
level.vote_map13.sort 9998;
}

RunMapVote()
{
    
maps undefined;
    
undefined;

    
//currentmap = getcvar("mapname");
    //currentgt = level.gametype;
 
    
GetMapRotation();
    if(
isdefined(x))
    {
        if(
isdefined(level.maps_in_vote))
            
maps level.maps_in_vote;
    }

    
// Any maps?
    
if(!isdefined(maps))
    {
        
wait 0.05;
        
level notify("VotingComplete");
        return;
    }
    
    
//get candidates
    
0;
    for(
j=0;j<13;j++)
    {

        
// Any maps left?
        
if(!isdefined(maps[i]))
            break;

        
level.mapcandidate[j]["map"] = maps[i]["map"];
        
level.mapcandidate[j]["mapname"] = getMapName(maps[i]["map"]);
        
level.mapcandidate[j]["gametype"] = maps[i]["gametype"];
        
level.mapcandidate[j]["votes"] = 0;

        
i++;

        
// Any maps left?
        
if(!isdefined(maps[i]))
            break;

        
// Keep current map as last alternative?
        //if(level.mapvotereplay && j>13)
        //    break;
    
}
    
    
    
game["menu_team"] = "";

    
//start a voting thread per player
    
players getentarray("player""classname");
    for(
0players.sizei++)
        
players[ithread PlayerVote();
    
    
thread VoteLogic();
    
    
//Take a breath for players to restart with the map
    
wait 0.1;    
    
level.mapended true;    
}

DeleteHud()
{
    
level.vote_headerText destroy();
    
level.vote_hud_timeleft destroy();    
    
level.vote_hud_instructions destroy();
    
level.vote_hud_vote1 destroy();
    
level.vote_hud_vote2 destroy();
    
level.vote_map1 destroy();
    
level.vote_map2 destroy();
    
level.vote_map3 destroy();
    
level.vote_map4 destroy();
    
level.vote_map5 destroy();
    
level.vote_map6 destroy();
    
level.vote_map7 destroy();
    
level.vote_map8 destroy();
    
level.vote_map9 destroy();
    
level.vote_map10 destroy();
    
level.vote_map11 destroy();
    
level.vote_map12 destroy();
    
level.vote_map13 destroy();
    
level.vote_hud_bgnd destroy();
    
level.vote_header destroy();
    
level.vote_leftline destroy();
    
level.vote_rightline destroy();
    
level.vote_bottomline destroy();

    
players getentarray("player""classname");
    for(
0players.sizei++)
        if(
isdefined(players[i].vote_indicator))
            
players[i].vote_indicator destroy();
}



//Changes the players vote as he hits the attack button and updates HUD
PlayerVote()
{
    
level endon("VotingDone");
    
self endon("disconnect");

    
novote false;
    
    
// No voting for spectators
    //if(self.pers["team"] == "spectator") //Prueba unicamente voto espectador
    //    novote = true;

    // Spawn player as spectator
    
self spawnSpectator();
    
self.sessionstate "spectator";
    
self.spectatorclient = -1;
    
resettimeout();
    
    
//remove the scoreboard
    
self setClientCvar("g_scriptMainMenu""");
    
self closeMenu();

    
self allowSpectateTeam("allies"false);
    
self allowSpectateTeam("axis"false);
    
self allowSpectateTeam("freelook"false);
    
self allowSpectateTeam("none"true);

    if(
novote)
        return;

//    self.votechoice = 0;

    /*colors[0] = (0  ,  0,  1);
    colors[1] = (0  ,0.5,  1);
    colors[2] = (0  ,  1,  1);
    colors[3] = (0  ,  1,0.5);
    colors[4] = (1,  1,  0.5);
    colors[5] = (0.5  ,  0.5,  0.5);
    colors[6] = (1,  1,  0.5);
    colors[7] = (0  ,  1,  0);
    colors[8] = (0  ,  1,  0);
    colors[9] = (0  ,  1,  0);
    colors[10] = (0  ,  1,  0);
    colors[11] = (0  ,  1,  0);*/
    
colors[0] = (0  ,  1,  0);



    
self.vote_indicator newClientHudElemself );
    
self.vote_indicator.alignY "middle";
    
self.vote_indicator.149;
    
self.vote_indicator.level.mapvotehudoffset 100;
    
self.vote_indicator.archived false;
    
self.vote_indicator.sort 9998;
    
self.vote_indicator.alpha 0;
    
self.vote_indicator.color colors[0];
    
self.vote_indicator setShader("white"2020); //254, 17
    
    
hasVoted false;

    for (;;)
    {
        
wait .01;
                                
        if(
self attackButtonPressed() == true)
        {
            
// -- Added by Number7 --
            
if(!hasVoted)
            {
                
self.vote_indicator.alpha .3;
                
self.votechoice 0;
                
hasVoted true;
            }
            else
                
self.votechoice++;

            if (
self.votechoice >= && self.votechoice 13
            {
                
self iprintln("You have voted for ^2" level.mapcandidate[self.votechoice]["mapname"] + " (" level.mapcandidate[self.votechoice]["gametype"]+")");
                
self.vote_indicator.102 + (self.votechoice 6) * 63;
                
self.vote_indicator.=    level.mapvotehudoffset 148;        
                
self.vote_indicator.color colors[self.votechoice];
                
self playLocalSound("hq_score");
            }
                
            if(
self.votechoice == 13)
                
self.votechoice 0;
            
            if(
self.votechoice 6) {

            
self iprintln("You have voted for ^2" level.mapcandidate[self.votechoice]["mapname"] + " (" level.mapcandidate[self.votechoice]["gametype"]+")");
            
self.vote_indicator.171 self.votechoice 55;    
            
self.vote_indicator.=    level.mapvotehudoffset 100;        
            
self.vote_indicator.color colors[self.votechoice];
            
self playLocalSound("hq_score");

            }
        }                    
        while(
self attackButtonPressed() == true)
            
wait.01;

        
self.sessionstate "spectator";
        
self.spectatorclient = -1;
    }
}

//Determines winning map and sets rotation
VoteLogic()
{
    
//Vote Timer
    
for (;level.mapvotetime>=0;level.mapvotetime--)
    {
        for(
j=0;j<10;j++)
        {
            
// Count votes
            
for(i=0;i<13;i++)    level.mapcandidate[i]["votes"] = 0;
            
players getentarray("player""classname");
            for(
0players.sizei++)
                if(
isdefined(players[i].votechoice))
                    
level.mapcandidate[players[i].votechoice]["votes"]++;

            
// Update HUD
            
level.vote_map1 setValuelevel.mapcandidate[0]["votes"] );
            
level.vote_map2 setValuelevel.mapcandidate[1]["votes"] );
            
level.vote_map3 setValuelevel.mapcandidate[2]["votes"] );
            
level.vote_map4 setValuelevel.mapcandidate[3]["votes"] );
            
level.vote_map5 setValuelevel.mapcandidate[4]["votes"] );
            
level.vote_map6 setValuelevel.mapcandidate[5]["votes"] );
            
level.vote_map7 setValuelevel.mapcandidate[6]["votes"] );
            
level.vote_map8 setValuelevel.mapcandidate[7]["votes"] );
            
level.vote_map9 setValuelevel.mapcandidate[8]["votes"] );
            
level.vote_map10 setValuelevel.mapcandidate[9]["votes"] );
            
level.vote_map11 setValuelevel.mapcandidate[10]["votes"] );
            
level.vote_map12 setValuelevel.mapcandidate[11]["votes"] );
            
level.vote_map13 setValuelevel.mapcandidate[12]["votes"] );
            
wait .1;
        }
        
level.vote_hud_timeleft setValuelevel.mapvotetime );
    }    

    
wait 0.2;
    
    
newmapnum 0;
    
topvotes 0;
    for(
i=0;i<13;i++)
    {
        if (
level.mapcandidate[i]["votes"] > topvotes)
        {
            
newmapnum i;
            
topvotes level.mapcandidate[i]["votes"];
        }
    }

    
SetMapWinner(newmapnum);
}

//change the map rotation to represent the current selection
SetMapWinner(winner)
{
    
map    level.mapcandidate[winner]["map"];
    
mapname    level.mapcandidate[winner]["mapname"];
    
gametype level.mapcandidate[winner]["gametype"];

    
setcvar("sv_maprotationcurrent"" gametype " gametype " map " map);

    
wait 0.1;

    
// Stop threads
    
level notify"VotingDone" );

    
// Wait for threads to die
    
wait 0.05;

    
// Announce winner
    
iprintlnbold(" ");
    
iprintlnbold(" ");
    
iprintlnbold(" ");
    
iprintlnbold("The winner is");
    
iprintlnbold("^2" mapname);
    
iprintlnbold("^2" GetGametypeName(gametype));

    
// Fade HUD elements
    
level.vote_headerText fadeOverTime (1);
    
level.vote_hud_timeleft fadeOverTime (1);    
    
level.vote_hud_instructions fadeOverTime (1);
    
level.vote_hud_vote1 fadeOverTime(1);
    
level.vote_hud_vote2 fadeOverTime(1);
    
level.vote_map1 fadeOverTime (1);
    
level.vote_map2 fadeOverTime (1);
    
level.vote_map3 fadeOverTime (1);
    
level.vote_map4 fadeOverTime (1);
    
level.vote_map5 fadeOverTime (1);
    
level.vote_map6 fadeOverTime (1);
    
level.vote_map7 fadeOverTime (1);
    
level.vote_map8 fadeOverTime (1);
    
level.vote_map9 fadeOverTime (1);
    
level.vote_map10 fadeOverTime (1);
    
level.vote_map11 fadeOverTime (1);
    
level.vote_map12 fadeOverTime (1);
    
level.vote_map13 fadeOverTime (1);
    
level.vote_hud_bgnd fadeOverTime (1);
    
level.vote_header fadeOverTime (1);
    
level.vote_leftline fadeOverTime (1);
    
level.vote_rightline fadeOverTime (1);
    
level.vote_bottomline fadeOverTime (1);

    
level.vote_headerText.alpha 0;
    
level.vote_hud_timeleft.alpha 0;    
    
level.vote_hud_instructions.alpha 0;
    
level.vote_hud_vote1.alpha 0;
    
level.vote_hud_vote2.alpha 0;
    
level.vote_map1.alpha 0;
    
level.vote_map2.alpha 0;
    
level.vote_map3.alpha 0;
    
level.vote_map4.alpha 0;
    
level.vote_map5.alpha 0;
    
level.vote_map6.alpha 0;
    
level.vote_map7.alpha 0;
    
level.vote_map8.alpha 0;
    
level.vote_map9.alpha 0;
    
level.vote_map10.alpha 0;
    
level.vote_map11.alpha 0;
    
level.vote_map12.alpha 0;
    
level.vote_map13.alpha 0;
    
level.vote_hud_bgnd.alpha 0;
    
level.vote_header.alpha 0;
    
level.vote_leftline.alpha 0;
    
level.vote_rightline.alpha 0;
    
level.vote_bottomline.alpha 0;

    
players getentarray("player""classname");
    for(
0players.sizei++)
    {
        if(
isdefined(players[i].vote_indicator))
        {
            
players[i].vote_indicator fadeOverTime (1);
            
players[i].vote_indicator.alpha 0;
        }
    }

    
// Show winning map for a few seconds
    
wait 4;
    
level notify"VotingComplete" );
}

GetMapRotation(randomnumber//(random, current, number)
{
    
maprot strip(getcvar("sv_maprotation"));

    if(!
isdefined(number))
        
number 0;

    
// No map rotation setup!
    
if(maprot == "")
        return 
undefined;
    
    
// Explode entries into an array
    
j=0;
    
temparr2[j] = "";    
    for(
i=0;i<maprot.size;i++)
    {
        if(
maprot[i]==" ")
        {
            
j++;
            
temparr2[j] = "";
        }
        else
            
temparr2[j] += maprot[i];
    }

    
// Remove empty elements (double spaces)
    
temparr = [];
    for(
i=0;i<temparr2.size;i++)
    {
        
element strip(temparr2[i]);
        if(
element != "")
            
temparr[temparr.size] = element;
    }

    
level.maps_in_vote = [];
    
lastgt level.gametype;
    for(
i=0;i<temparr.size;)
    {
        switch(
temparr[i])
        {
            case 
"gametype":
                if(
isdefined(temparr[i+1]))
                    
lastgt temparr[i+1];
                
+= 2;
                break;

            case 
"map":
                if(
isdefined(temparr[i+1]))
                {
                    
level.maps_in_vote[level.maps_in_vote.size]["gametype"]    = lastgt;
                    
level.maps_in_vote[level.maps_in_vote.size-1]["map"] = temparr[i+1];
                }

                
+= 2;
                break;

            
// If code get here, then the maprotation is corrupt so we have to fix it
            
default:
                
iprintlnbold("Warning: Error detected in map rotation");
    
                if(
isGametype(temparr[i]))
                    
lastgt temparr[i];
                else
                {
                    
level.maps_in_vote[level.maps_in_vote.size]["gametype"]    = lastgt;
                    
level.maps_in_vote[level.maps_in_vote.size-1]["map"] = temparr[i];
                }
                    

                
+= 1;
                break;
        }
        if(
number && level.maps_in_vote.size >= number)
            break;
    }
    
    return 
level.maps_in_vote;
}

// Strip blanks at start and end of string
strip(s)
{
    if(
s=="")
        return 
"";

    
s2="";
    
s3="";

    
i=0;
    while(
i<s.size && s[i]==" ")
        
i++;

    
// String is just blanks?
    
if(i==s.size)
        return 
"";
    
    for(;
i<s.size;i++)
    {
        
s2 += s[i];
    }

    
i=s2.size-1;
    while(
s2[i]==" " && i>0)
        
i--;

    for(
j=0;j<=i;j++)
    {
        
s3 += s2[j];
    }
        
    return 
s3;
}

isGametype(gt)
{
    switch(
gt)
    {
        case 
"dm":
        case 
"tdm":
        case 
"sd":
        case 
"hq":
        case 
"ctf":
        case 
"ihtf":
        case 
"wrz":
        case 
"zom":    
        case 
"obj":    
        case 
"ft":    
        case 
"utd":            
            return 
true;

        default:
            return 
false;
    }
}

getMapName(map)
{
    switch(
map)
    {
        case 
"mp_farmhouse":
            
mapname "Beltot";
            break;

        case 
"mp_brecourt":
            
mapname "Brecourt";
            break;

        case 
"mp_burgundy":
            
mapname "Burgundy";
            break;
        
        case 
"mp_trainstation":
            
mapname "Caen";
            break;

        case 
"mp_carentan":
            
mapname "Carentan";
            break;

        case 
"mp_decoy":
            
mapname "El Alamein";
            break;

        case 
"mp_leningrad":
            
mapname "Leningrad";
            break;
        
        case 
"mp_matmata":
            
mapname "Matmata";
            break;
        
        case 
"mp_downtown":
            
mapname "Moscow";
            break;
        
        case 
"mp_harbor":
            
mapname "Rostov";
            break;
        
        case 
"mp_dawnville":
            
mapname "St. Mere Eglise";
            break;

        case 
"mp_railyard":
            
mapname "Stalingrad";
            break;

        case 
"mp_toujane":
            
mapname "Toujane";
            break;
        
        case 
"mp_breakout":
            
mapname "Villers-Bocage";
            break;

        case 
"mp_rhine":
            
mapname "Wallendar";
            break;

        default:
            
mapname map;
            break;
    }

    return 
mapname;
}

spawnSpectator(originangles)
{
    
self notify("spawned");
    
self notify("end_respawn");

    
resettimeout();

    
// Stop shellshock and rumble
    
self stopShellshock();
    
self stoprumble("damage_heavy");

    
self.sessionstate "spectator";
    
self.spectatorclient = -1;
    
self.archivetime 0;
    
self.psoffsettime 0;
    
self.friendlydamage undefined;

    if(
self.pers["team"] == "spectator")
        
self.statusicon "";

    
maps\mp\gametypes\_spectating::setSpectatePermissions();
    
    if(
isDefined(origin) && isDefined(angles))
        
self spawn(originangles);
    else
    {
           
spawnpointname "mp_global_intermission";
        
spawnpoints getentarray(spawnpointname"classname");
        
spawnpoint maps\mp\gametypes\_spawnlogic::getSpawnpoint_Random(spawnpoints);
    
        if(
isDefined(spawnpoint))
            
self spawn(spawnpoint.originspawnpoint.angles);
        else
            
maps\mp\_utility::error("NO " spawnpointname " SPAWNPOINTS IN MAP");
    }
}

getGametypeName(gt)
{
    switch(
gt)
    {
        case 
"dm":
            
gtname "Deathmatch";
            break;
        
        case 
"tdm":
            
gtname "Team Deathmatch";
            break;

        case 
"sd":
            
gtname "Search & Destroy";
            break;

        case 
"hq":
            
gtname "Headquarters";
            break;

        case 
"ctf":
            
gtname "Capture The Flag";
            break;
            
        case 
"ihtf":
            
gtname "Individual Hold The Flag";
            break;    

        case 
"wrz":
            
gtname "War Zone";
            break;        
            
        case 
"zom":
            
gtname "Zombies";
            break;            

        case 
"obj":
            
gtname "Objetives";
            break;

        case 
"ft":
            
gtname "Freeze Tag";
            break;

        case 
"utd":
            
gtname "Domination";
            break;            

        default:
            
gtname gt;
            break;
    }

    return 
gtname;