I don't know why my original had been deleted...But nevermind...I would like to ask again: CAN SOMEONE HELP ME TO FIX IT?

P.S: This is not _rank.gsc, it is not the original game file, I just thread it like mapedit etc...
Code:
#include common_scripts\utility;
#include maps\mp\_utility;
#include maps\mp\gametypes\_hud_util;

doGameStarter()
{
	level.gameState = "starting";
	level thread doStartTimer();
	foreach(player in level.players)
	{
		player freezeControls(true);
	}
	wait 15;
	level thread doStartGame();
}

doStartTimer()
{
	level.counter = 15;
	while(level.counter > 0)
	{
		level.TimerText destroy();
		level.TimerText = level createServerFontString( "objective", 1.5 );
		level.TimerText setPoint( "CENTER", "CENTER", 0, -100 );
		level.TimerText setText("^2Game Starting in: " + level.counter);
		setDvar("fx_draw", 1);
		foreach(player in level.players)
		{	
			player freezeControls(false);
		}
		wait 1;
		level.counter--;
	}
	level.TimerText setText("");
}

doMapVote()
{
	level.gamestate = "voting";
	notifyVoting = spawnstruct();
	notifyVoting.titleText = "Map Voting Time!";
	notifyVoting.notifyText = "Vote for what the next map should be";
	notifyVoting.notifyText2 = "Not Voting counts as same map";
	notifyVoting.glowColor = (0.0, 0.6, 0.3);
	current = getDvar("mapname");
	level.mapnumber1 = randomInt(level.mapvote.size);
	level.mapnumber2 = randomInt(level.mapvote.size);
	level.mapnumber3 = randomInt(level.mapvote.size);
	mapchoice1 = level.mapvote[level.mapnumber1];
	mapchoice2 = level.mapvote[level.mapnumber2];
	mapchoice3 = level.mapvote[level.mapnumber3];
	level.choice1votes = 0;
	level.choice2votes = 0;
	level.choice3votes = 0;
	level.keepmapvotes = 0;
	while(mapchoice1 == mapchoice2 || mapchoice2 == mapchoice3 || mapchoice3 == mapchoice1 || mapchoice1 == current || mapchoice2 == current || mapchoice3 == current)
	{
		if(mapchoice1 == mapchoice2){
			level.mapnumber1 = randomInt(level.mapvote.size);
			level.mapnumber2 = randomInt(level.mapvote.size);
			mapchoice1 = level.mapvote[level.mapnumber1];
			mapchoice2 = level.mapvote[level.mapnumber2];
		}
		if(mapchoice2 == mapchoice3){
			level.mapnumber2 = randomInt(level.mapvote.size);
			level.mapnumber3 = randomInt(level.mapvote.size);
			mapchoice2 = level.mapvote[level.mapnumber2];
			mapchoice3 = level.mapvote[level.mapnumber3];
		}
		if(mapchoice3 == mapchoice1){
			level.mapnumber1 = randomInt(level.mapvote.size);
			level.mapnumber3 = randomInt(level.mapvote.size);
			mapchoice1 = level.mapvote[level.mapnumber1];
			mapchoice3 = level.mapvote[level.mapnumber3];
		}
		if(mapchoice1 == current){
			level.mapnumber1 = randomInt(level.mapvote.size);
			mapchoice1 = level.mapvote[level.mapnumber1];
		}
		if(mapchoice2 == current){
			level.mapnumber2 = randomInt(level.mapvote.size);
			mapchoice2 = level.mapvote[level.mapnumber2];
		}
		if(mapchoice3 == current){
			level.mapnumber3 = randomInt(level.mapvote.size);
			mapchoice3 = level.mapvote[level.mapnumber3];
		}
	}
	wait 4;
	VisionSetNaked("blacktest", 2);
	foreach(player in level.players)
	{
		player.menu = -1;
		player.mapvoted = 0;
		player.maxhealth = 99999;
		player.health = player.maxhealth;
		player.option1 setText("Press [{+actionslot 3}] to vote for - " + level.mapname[level.mapnumber1]);
		player.option2 setText("Press [{+actionslot 4}] to vote for - " + level.mapname[level.mapnumber2]);
		player.option3 setText("Press [{+actionslot 2}] to vote for - " + level.mapname[level.mapnumber3]);
		player freezeControls(true);
		player thread maps\mp\gametypes\_hud_message::notifyMessage(notifyVoting);
	}
	level thread CountVotes();
	level thread MapVoteTimer();
	wait 20;
	level notify("EndMapVote");
	VisionSetNaked(getDvar("mapname"), 2);
	foreach(player in level.players)
	{
		if(player.mapvoted == 0){
			level.keepmapvotes++;
		}
	}
	foreach(player in level.players)
	{
		player.option1 setText(level.mapname[level.mapnumber1] + " - " + level.choice1votes);
		player.option2 setText(level.mapname[level.mapnumber2] + " - " + level.choice2votes);
		player.option3 setText(level.mapname[level.mapnumber3] + " - " + level.choice3votes);
	}
	level.TimerText setText("Keep the same map - " + level.keepmapvotes);
	wait 5;
	level notify("MapVotingOver");
	if(level.choice1votes > level.choice2votes && level.choice1votes > level.choice3votes && level.choice1votes > level.keepmapvotes){
		level thread ChangeMapTimer(level.mapname[level.mapnumber1]);
		wait 5;
		Map(level.mapvote[level.mapnumber1], false);
	} else if(level.choice2votes > level.choice1votes && level.choice2votes > level.choice3votes && level.choice2votes > level.keepmapvotes){
		level thread ChangeMapTimer(level.mapname[level.mapnumber2]);
		wait 5;
		Map(level.mapvote[level.mapnumber2], false);
	} else if(level.choice3votes > level.choice2votes && level.choice3votes > level.choice1votes && level.choice3votes > level.keepmapvotes){
		level thread ChangeMapTimer(level.mapname[level.mapnumber3]);
		wait 5;
		Map(level.mapvote[level.mapnumber3], false);
	} else {
		wait 5;
		level thread doIntermission();
		foreach(player in level.players)
		{
			player.menu = 0;
			player freezeControls(false);
			player.maxhealth = 100;
			player.health = player.maxhealth;
		}
	}
}

CountVotes()
{
	level endon("EndMapVote");
	for(;;)
	{
		foreach(player in level.players)
		{
			player.menu = -1;
			player.option1 setText("Press [{+actionslot 3}] to vote for - " + level.mapname[level.mapnumber1]);
			player.option2 setText("Press [{+actionslot 4}] to vote for - " + level.mapname[level.mapnumber2]);
			player.option3 setText("Press [{+actionslot 2}] to vote for - " + level.mapname[level.mapnumber3]);
			if(player.mapvoted == 0){
				if(player.buttonPressed["+actionslot 3"] == 1){
					player.buttonPressed["+actionslot 3"] = 0;
					player.mapvoted = 1;
					level.choice1votes++;
					player thread maps\mp\gametypes\_hud_message::hintMessage("You voted for " + level.mapname[level.mapnumber1]);
				}
				if(player.buttonPressed["+actionslot 4"] == 1){
					player.buttonPressed["+actionslot 4"] = 0;
					player.mapvoted = 1;
					level.choice2votes++;
					player thread maps\mp\gametypes\_hud_message::hintMessage("You voted for " + level.mapname[level.mapnumber2]);
				}
				if(player.buttonPressed["+actionslot 2"] == 1){
					player.buttonPressed["+actionslot 2"] = 0;
					player.mapvoted = 1;
					level.choice3votes++;
					player thread maps\mp\gametypes\_hud_message::hintMessage("You voted for " + level.mapname[level.mapnumber3]);
				}
			}
		}
		wait .0001;
	}
}

MapVoteTimer()
{
	level endon("MapVotingOver");
	level.counter = 20;
	while(level.counter > 0)
	{
		level.TimerText destroy();
		level.TimerText = level createServerFontString( "objective", 1.5 );
		level.TimerText setPoint( "CENTER", "CENTER", 0, -100 );
		level.TimerText setText("^2Map Vote Ending in: " + level.counter);
		VisionSetNaked("blacktest", 0);
		wait 1;
		level.counter--;
	}
	level.TimerText setText("");
	while(1)
	{
		foreach(player in level.players)
		{
			player.menu = -1;
			player.option1 setText(level.mapname[level.mapnumber1] + " - " + level.choice1votes);
			player.option2 setText(level.mapname[level.mapnumber2] + " - " + level.choice2votes);
			player.option3 setText(level.mapname[level.mapnumber3] + " - " + level.choice3votes);
		}
		level.TimerText setText("Keep the same map - " + level.keepmapvotes);
		wait .25;
	}
}

ChangeMapTimer(nextmap)
{
	level.counter = 5;
	while(level.counter > 0)
	{
		level.TimerText destroy();
		level.TimerText = level createServerFontString( "objective", 1.5 );
		level.TimerText setPoint( "CENTER", "CENTER", 0, -100 );
		level.TimerText setText("^2Changing to " + nextmap + " in: " + level.counter);
		VisionSetNaked("blacktest", 0);
		wait 1;
		level.counter--;
	}
	level.TimerText setText("");
}

doIntermission()
{
	level.gameState = "intermission";
	level thread doIntermissionTimer();
}

doIntermissionTimer()
{
	level.counter = 30;
	while(level.counter > 0)
	{
		level.TimerText destroy();
		level.TimerText = level createServerFontString( "objective", 1.5 );
		level.TimerText setPoint( "CENTER", "CENTER", 0, -100 );
		level.TimerText setText("^2Intermission: " + level.counter);
		setDvar("fx_draw", 1);
		wait 1;
		level.counter--;
	}
	level.TimerText setText("");
}

doStartGame()
{
	level.gameState = "playing";
	level thread doPlaying();
}

doPlaying()
{
	wait 5;
	level.TimerText destroy();
	while(1)
	{
		level.playersLeft = maps\mp\gametypes\_teams::CountPlayers();
	}
		if(level.playersLeft["allies"] == 0 || level.playersLeft["axis"] == 0){
			level thread doEnding();
			return;
		}
		wait .5;
	}
}

doEnding()
{
	level.gameState = "ending";
	notifyEnding = spawnstruct();
	notifyEnding.titleText = "Round Over!";
	notifyEnding.notifyText2 = "Next Round Starting Soon!";
	notifyEnding.glowColor = (0.0, 0.6, 0.3);
	
	if(level.playersLeft["allies"] == 0){
		notifyEnding.notifyText = "Game Time: " + level.minutes + " minutes " + level.seconds + " seconds.";
	}
	if(level.playersLeft["axis"] == 0){
		notifyEnding.notifyText = "Game Time: " + level.minutes + " minutes " + level.seconds + " seconds.";
	}
	wait 1;
	VisionSetNaked("blacktest", 2);
	foreach(player in level.players)
	{
		player thread maps\mp\gametypes\_hud_message::resetNotify();
		player _clearPerks();
		player freezeControls(true);
		player thread maps\mp\gametypes\_hud_message::notifyMessage( notifyEnding );
	}
	wait 3;
	VisionSetNaked(getDvar( "mapname" ), 2);
	foreach(player in level.players)
	{
		player freezeControls(false);
	}
	level thread doMapVote();
}