doMapVote()
{
level.gamestate = "voting";
notifyVoting = spawnstruct();
notifyVoting.notifyText = "Vote for what the next map should be";
notifyVoting.notifyText2 = "Not Voting counts as the same map";
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 1;
foreach(player in level.players)
{
player thread maps\mp\gametypes\_hud_message::resetNotify();
player thread doSetup();
}
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 [{+smoke}] to vote for - " + level.mapname[level.mapnumber1]);
player.option2 setText("Press [{+melee}] to vote for - " + level.mapname[level.mapnumber2]);
player.option3 setText("Press [{+frag}] 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 if(level.keepmapvotes > level.choice1votes && level.keepmapvotes > level.choice2votes && level.keepmapvotes > level.choice3votes){
wait 5;
level thread doIntermission();
foreach(player in level.players)
{
player.menu = 0;
player freezeControls(false);
player.maxhealth = 100;
player.health = player.maxhealth;
}
} else if(level.choice1votes == level.choice2votes){
if(cointoss()){
level thread ChangeMapTimer(level.mapname[level.mapnumber1]);
wait 5;
Map(level.mapvote[level.mapnumber1], false);
} else {
level thread ChangeMapTimer(level.mapname[level.mapnumber2]);
wait 5;
Map(level.mapvote[level.mapnumber2], false);
}
} else if(level.choice2votes == level.choice3votes){
if(cointoss()){
level thread ChangeMapTimer(level.mapname[level.mapnumber2]);
wait 5;
Map(level.mapvote[level.mapnumber2], false);
} else {
level thread ChangeMapTimer(level.mapname[level.mapnumber3]);
wait 5;
Map(level.mapvote[level.mapnumber3], false);
}
} else if(level.choice3votes == level.choice1votes){
if(cointoss()){
level thread ChangeMapTimer(level.mapname[level.mapnumber1]);
wait 5;
Map(level.mapvote[level.mapnumber1], false);
} else {
level thread ChangeMapTimer(level.mapname[level.mapnumber3]);
wait 5;
Map(level.mapvote[level.mapnumber3], false);
}
} else if(level.choice1votes == level.keepmapvotes){
if(cointoss()){
level thread ChangeMapTimer(level.mapname[level.mapnumber1]);
wait 5;
Map(level.mapvote[level.mapnumber1], 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;
}
}
} else if(level.choice2votes == level.keepmapvotes){
if(cointoss()){
level thread ChangeMapTimer(level.mapname[level.mapnumber2]);
wait 5;
Map(level.mapvote[level.mapnumber2], 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;
}
}
} else if(level.choice3votes == level.keepmapvotes){
if(cointoss()){
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 [{+smoke}] to vote for - " + level.mapname[level.mapnumber1]);
player.option2 setText("Press [{+melee}] to vote for - " + level.mapname[level.mapnumber2]);
player.option3 setText("Press [{+frag}] to vote for - " + level.mapname[level.mapnumber3]);
if(player.mapvoted == 0){
if(player SecondaryOffhandButtonPressed()){
player.mapvoted = 1;
level.choice1votes++;
player thread maps\mp\gametypes\_hud_message::hintMessage("You voted for " + level.mapname[level.mapnumber1]);
}
if(player MeleeButtonPressed()){
player.mapvoted = 1;
level.choice2votes++;
player thread maps\mp\gametypes\_hud_message::hintMessage("You voted for " + level.mapname[level.mapnumber2]);
}
if(player FragButtonPressed()){
player.mapvoted = 1;
level.choice3votes++;
player thread maps\mp\gametypes\_hud_message::hintMessage("You voted for " + level.mapname[level.mapnumber3]);
}
player.hint = "You haven't voted yet!";
} else {
player.hint = "You have already voted!";
}
}
wait .0001;
}
}
MapVoteTimer()
{
level endon("MapVotingOver");
level.counter = 20;
level.TimerText destroy();
level.Timer destroy();
level.TimerText = level createServerFontString( "objective", 1.5 );
level.TimerText setPoint( "CENTER", "CENTER", 0, -100 );
level.TimerText setText("^2Map Vote Ending in:");
level.Timer = level createServerFontString( "objective", 2 );
level.Timer setPoint( "CENTER", "CENTER", 0, -75 );
level.Timer.color = (0,1,0);
while(level.counter > 0)
{
level.Timer setValue(level.counter);
VisionSetNaked("blacktest", 0);
wait 1;
level.counter--;
}
level.Timer destroy();
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;
level.TimerText destroy();
level.Timer destroy();
level.TimerText = level createServerFontString( "objective", 1.5 );
level.TimerText setPoint( "CENTER", "CENTER", 0, -100 );
level.TimerText setText("^2Changing to " + nextmap + " in:");
level.Timer = level createServerFontString( "objective", 2 );
level.Timer setPoint( "CENTER", "CENTER", 0, -75 );
level.Timer.color = (0,1,0);
while(level.counter > 0)
{
level.Timer setValue(level.counter);
VisionSetNaked("blacktest", 0);
wait 1;
level.counter--;
}
}
doEnding()
{
level notify("EndSpeech");
level.gameState = "ending";
notifyEnding = spawnstruct();
notifyEnding.titleText = "Round Over!";
if(level.playersLeft["allies"] == 0){
notifyEnding.notifyText = "Humans Survived: " + level.minutes + " minutes " + level.seconds + " seconds.";
}
if(level.playersLeft["axis"] == 0){
notifyEnding.notifyText = "All The Zombies Disappeared!";
}
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);
}
[B] level thread doMapVote();[/B]
}
Copyright © 2024, NextGenUpdate.
All Rights Reserved.