Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- #include common_scripts\utility;
- #include maps\mp\_utility;
- #include maps\mp\gametypes\_hud_util;
- init()
- {
- level.map = [];
- level.newMaps = [];
- level.voteMap = [];
- level.votingInProg = false;
- level.votingEnded = false;
- }
- initConnect()
- {
- level thread monitorPlayers();
- level.map[1] = "mp_vacant";
- level.map[2] = "mp_complex";
- level.map[3] = "mp_abandon";
- level.map[4] = "mp_crash";
- level.map[5] = "mp_derail";
- level.map[6] = "mp_estate";
- level.map[7] = "mp_favela";
- level.map[8] = "mp_fuel2";
- level.map[9] = "mp_highrise";
- level.map[10] = "mp_invasion";
- level.map[11] = "mp_checkpoint";
- level.map[12] = "mp_overgrown";
- level.map[13] = "mp_quarry";
- level.map[14] = "mp_rundown";
- level.map[15] = "mp_rust";
- level.map[16] = "mp_compact";
- level.map[17] = "mp_boneyard";
- level.map[18] = "mp_nightshift";
- level.map[19] = "mp_storm";
- level.map[20] = "mp_strike";
- level.map[21] = "mp_subbase";
- level.map[22] = "mp_terminal";
- level.map[23] = "mp_trailerpark";
- level.map[24] = "mp_underpass";
- level.map[25] = "mp_afghan";
- level.map[26] = "mp_brecourt";
- }
- monitorPlayers()
- {
- while(!isDefined(level.connected))
- {
- wait 0.1;
- }
- while(level.players.size > 0 )
- {
- wait 0.1;
- }
- map_restart( false );
- }
- getRandomMap()
- {
- return level.map[randomint(level.map.size)];
- }
- randomNonDLC()
- {
- nonDLCMap = [];
- nonDLCMap[0] = "mp_brecourt";
- nonDLCMap[1] = "mp_afghan";
- nonDLCMap[2] = "mp_derail";
- nonDLCMap[3] = "mp_estate";
- nonDLCMap[4] = "mp_favela";
- nonDLCMap[5] = "mp_highrise";
- nonDLCMap[6] = "mp_invasion";
- nonDLCMap[7] = "mp_checkpoint";
- nonDLCMap[8] = "mp_quarry";
- nonDLCMap[9] = "mp_rundown";
- nonDLCMap[10] = "mp_rust";
- nonDLCMap[11] = "mp_boneyard";
- nonDLCMap[12] = "mp_nightshift";
- nonDLCMap[13] = "mp_subbase";
- nonDLCMap[14] = "mp_terminal";
- nonDLCMap[15] = "mp_underpass";
- return nonDLCMap[randomint(nonDLCMap.size)];
- }
- voteCountDown()
- {
- wait 30.0;
- level.votingInProg = false;
- level.votingEnded = true;
- level thread setMapChange(getRealMapName(getMostVoted()));
- foreach ( player in level.players )
- {
- if (isDefined(player.connected))
- {
- player notify("voteEnded");
- }
- }
- }
- waitForEveryVote()
- {
- self endon("voteEnded");
- self endon("disconnect");
- lolsize = level.players.size;
- voteend = false; // Testing some stuff
- while(voteend == false)
- {
- i = 0;
- foreach ( player in level.players )
- {
- if ( isDefined(player.hasVoted) && player.hasVoted == true )
- {
- i += 1;
- }
- }
- if ( i >= lolsize )
- {
- voteend = true;
- level.votingInProg = false;
- level.votingEnded = true;
- wait 1.0;
- level thread setMapChange(getRealMapName(getMostVoted()));
- foreach ( player in level.players )
- {
- if (isDefined(player.connected))
- {
- player notify("voteEnded");
- }
- }
- }
- wait 0.05;
- }
- }
- waitForVoting()
- {
- self notify("voteStarted");
- level.newMaps = choose8Maps();
- level.votingInProg = true;
- //level thread waitForEveryVote(); // Function removed due to several problems
- level thread voteCountDown();
- level.vote = [];
- level.vote[0] = 0;
- level.vote[1] = 0;
- level.vote[2] = 0;
- level.vote[3] = 0;
- level.vote[4] = 0;
- level.vote[5] = 0;
- level.vote[6] = 0;
- level.vote[7] = 0;
- foreach (player in level.players)
- {
- if (isDefined(player.connected))
- {
- player thread setUpVoting(player);
- }
- }
- }
- setMapChange(nextMap)
- {
- foreach ( player in level.players )
- {
- if (isDefined(player.connected))
- {
- player.nextMapTXT setText("Next map is ^1" + getMapName(nextMap));
- player notify("changingMap");
- }
- }
- wait 5.00;
- self thread checkIfMapHasChanged();
- foreach ( player in level.players )
- {
- if (isDefined(player.connected))
- {
- player setClientDvar("cg_hudChatPosition", "5 200");
- }
- }
- wait 0.07;
- map(nextMap);
- }
- checkIfMapHasChanged(nextMap)
- {
- wait 2.0;
- foreach ( player in level.players )
- {
- if (isDefined(player.connected))
- {
- player.nextMapTXT setText("Map change failed");
- player.mapTimer setText("Retrying...");
- }
- }
- wait 1.0;
- map(nextMap);
- wait 2.0;
- nextRandMap = randomNonDLC();
- foreach ( player in level.players )
- {
- if (isDefined(player.connected))
- {
- player.nextMapTXT setText("Map change failed again");
- player.mapTimer setText("Changing map to ^1" + getMapName(nextRandMap));
- }
- }
- wait 1.25;
- map(nextRandMap);
- wait 2.0;
- nextRandMap = randomNonDLC();
- foreach ( player in level.players )
- {
- if (isDefined(player.connected))
- {
- player.nextMapTXT setText("Map change failed again (3rd time)");
- player.mapTimer setText("Changing map to ^1" + getMapName(nextRandMap));
- }
- }
- wait 1.25;
- map(nextRandMap);
- }
- getRealMapName(map)
- {
- if ( map == "AFGHAN")
- return "mp_afghan";
- if ( map == "BAILOUT")
- return "mp_complex";
- if ( map == "CARNIVAL")
- return "mp_abandon";
- if ( map == "CRASH")
- return "mp_crash";
- if ( map == "DERAIL")
- return "mp_derail";
- if ( map == "ESTATE")
- return "mp_estate";
- if ( map == "FAVELA")
- return "mp_favela";
- if ( map == "FUEL")
- return "mp_fuel2";
- if ( map == "HIGHRISE")
- return "mp_highrise";
- if ( map == "INVASION")
- return "mp_invasion";
- if ( map == "KARACHI")
- return "mp_checkpoint";
- if ( map == "OVERGROWN")
- return "mp_overgrown";
- if ( map == "QUARRY")
- return "mp_quarry";
- if ( map == "RUNDOWN")
- return "mp_rundown";
- if ( map == "RUST")
- return "mp_rust";
- if ( map == "SALVAGE")
- return "mp_compact";
- if ( map == "SCRAPYARD")
- return "mp_boneyard";
- if ( map == "SKIDROW")
- return "mp_nightshift";
- if ( map == "STORM")
- return "mp_storm";
- if ( map == "STRIKE")
- return "mp_strike";
- if ( map == "SUB BASE")
- return "mp_subbase";
- if ( map == "TERMINAL")
- return "mp_terminal";
- if ( map == "TRAILER PARK")
- return "mp_trailerpark";
- if ( map == "UNDERPASS")
- return "mp_underpass";
- if ( map == "VACANT")
- return "mp_vacant";
- if ( map == "WASTELAND")
- return "mp_brecourt";
- }
- getMapName(map)
- {
- if ( map == "mp_afghan")
- return "AFGHAN";
- if ( map == "mp_complex")
- return "BAILOUT";
- if ( map == "mp_abandon")
- return "CARNIVAL";
- if ( map == "mp_crash")
- return "CRASH";
- if ( map == "mp_derail")
- return "DERAIL";
- if ( map == "mp_estate")
- return "ESTATE";
- if ( map == "mp_favela")
- return "FAVELA";
- if ( map == "mp_fuel2")
- return "FUEL";
- if ( map == "mp_highrise")
- return "HIGHRISE";
- if ( map == "mp_invasion")
- return "INVASION";
- if ( map == "mp_checkpoint")
- return "KARACHI";
- if ( map == "mp_overgrown")
- return "OVERGROWN";
- if ( map == "mp_quarry")
- return "QUARRY";
- if ( map == "mp_rundown")
- return "RUNDOWN";
- if ( map == "mp_rust")
- return "RUST";
- if ( map == "mp_compact")
- return "SALVAGE";
- if ( map == "mp_boneyard")
- return "SCRAPYARD";
- if ( map == "mp_nightshift")
- return "SKIDROW";
- if ( map == "mp_storm")
- return "STORM";
- if ( map == "mp_strike")
- return "STRIKE";
- if ( map == "mp_subbase")
- return "SUB BASE";
- if ( map == "mp_terminal")
- return "TERMINAL";
- if ( map == "mp_trailerpark")
- return "TRAILER PARK";
- if ( map == "mp_underpass")
- return "UNDERPASS";
- if ( map == "mp_vacant")
- return "VACANT";
- if ( map == "mp_brecourt")
- return "WASTELAND";
- }
- choose8Maps()
- {
- newMaps = [];
- for ( i = 0; i < 8; i++ )
- {
- randMap = getMapName(getRandomMap());
- exists = false;
- for ( i = 0; i < newMaps.size; i++ )
- {
- if ( newMaps[i] == randMap )
- {
- exists = true;
- }
- }
- while( exists == true )
- {
- randMap = getMapName(getRandomMap());
- exists = false;
- for ( i = 0; i < newMaps.size; i++ )
- {
- if ( newMaps[i] == randMap )
- {
- exists = true;
- }
- }
- }
- newMaps[i] = randMap;
- }
- return newMaps;
- }
- setUpVoting(player)
- {
- /*OptionsBG = NewClientHudElem( self );
- OptionsBG.x = -50;
- OptionsBG.y = 157;
- OptionsBG.alignX = "top";
- OptionsBG.alignY = "left";
- OptionsBG.horzAlign = "top";
- OptionsBG.vertAlign = "left";
- OptionsBG setshader("black", 160, 160);
- OptionsBG.alpha = 0.7;
- ResultsBG = NewClientHudElem( self );
- ResultsBG.x = 600;
- ResultsBG.y = 67;
- ResultsBG.alignX = "top";
- ResultsBG.alignY = "right";
- ResultsBG.horzAlign = "top";
- ResultsBG.vertAlign = "right";
- ResultsBG setshader("black", 90, 127);
- ResultsBG.alpha = 0.7;
- player thread deleteOnVoteEnd(OptionsBG);
- player thread deleteOnVoteEnd(ResultsBG);
- player thread deleteOnVoted(OptionsBG);*/ // Removed temporarily
- menuItem0 = createMenuItem( 20, 160, "-VOTE FOR THE NEXT MAP-");
- menuItem1 = createMenuItem( 20, 190, "[{weapnext}]. " + level.newMaps[0]);
- menuItem2 = createMenuItem( 20, 210, "[{+actionslot 3}]. " + level.newMaps[1]);
- menuItem3 = createMenuItem( 20, 230, "[{+actionslot 4}]. " + level.newMaps[2]);
- menuItem4 = createMenuItem( 20, 250, "[{+actionslot 2}]. " + level.newMaps[3]);
- menuItem5 = createMenuItem( 20, 280, "[{+actionslot 1}]. NEXT PAGE");
- menuItem6 = createMenuItem( 20, 300, "[{+activate}]. CANCEL");
- player.voteMenu = 1;
- player.prevVoteMenu = 1;
- player thread monitorSelection(1);
- player thread monitorSelection(2);
- player thread monitorSelection(3);
- player thread monitorSelection(4);
- player thread monitorSelection(5);
- player thread monitorSelection(6);
- player thread waitForFinalVote(1);
- player thread waitForFinalVote(2);
- player thread waitForFinalVote(3);
- player thread waitForFinalVote(4);
- player thread monitorMenuChange(menuItem1, menuItem2, menuItem3, menuItem4);
- player thread deleteOnVoteEnd(menuItem0);
- player thread deleteOnVoteEnd(menuItem1);
- player thread deleteOnVoteEnd(menuItem2);
- player thread deleteOnVoteEnd(menuItem3);
- player thread deleteOnVoteEnd(menuItem4);
- player thread deleteOnVoteEnd(menuItem5);
- player thread deleteOnVoteEnd(menuItem6);
- player thread deleteOnVoted(menuItem0);
- player thread deleteOnVoted(menuItem1);
- player thread deleteOnVoted(menuItem2);
- player thread deleteOnVoted(menuItem3);
- player thread deleteOnVoted(menuItem4);
- player thread deleteOnVoted(menuItem5);
- player thread deleteOnVoted(menuItem6);
- mapList = [];
- player.mapTimer = self createFontString("objective", 1.25);
- player.maptimer setPoint("TOPRIGHT", "TOPRIGHT", -20, 20);
- player.maptimer setText("Voting ending in 0:20");
- player thread keepTimerUpd(player.maptimer);
- player thread showChangeMapTime(player.maptimer);
- player.nextMapTXT = self createFontString("objective", 1.25);
- player.nextMapTXT setPoint("TOPRIGHT", "TOPRIGHT", -20, 7);
- player.nextMapTXT setText("");
- g = 70;
- for( i = 0; i < level.newMaps.size; i++ )
- {
- mapList[i] = createTextItem( -20, g, level.newMaps[i] + " (" + level.vote[i] + ")");
- player thread deleteOnVoteEnd(mapList[i]);
- g += 15;
- }
- monitorVoteCount(mapList);
- }
- keepTimerUpd(timer)
- {
- self endon("voteEnded");
- i = 30;
- while(1)
- {
- if ( i < 10 && i > 5 )
- {
- timer setText("Voting ending in 0:0" + i );
- }
- else if ( i < 6 )
- {
- timer setText("Voting ending in ^10:0" + i );
- self playSound( "ui_mp_timer_countdown" );
- }
- else
- {
- timer setText("Voting ending in 0:" + i );
- }
- i -= 1;
- wait 1.0;
- }
- }
- showChangeMapTime(timer)
- {
- self waittill("changingMap");
- i = 5;
- countin = true;
- while(countin == true)
- {
- if ( i == 0 )
- {
- timer setText( "Changing map ^1NOW");
- break;
- countin = false;
- }
- else
- {
- timer setText( "Changing map in ^20:0" + i );
- self playSound( "ui_mp_timer_countdown" );
- i -= 1;
- wait 1.0;
- }
- }
- }
- monitorSelection(btnID)
- {
- self endon("iVoted");
- self endon("voteEnded");
- self notifyOnPlayerCommand("2SEL", "weapnext");
- self notifyOnPlayerCommand("3SEL", "+actionslot 3");
- self notifyOnPlayerCommand("4SEL", "+actionslot 4");
- self notifyOnPlayerCommand("5SEL", "+actionslot 2");
- self notifyOnPlayerCommand("NEXTP", "+actionslot 1");
- self notifyOnPlayerCommand("CANCV", "+activate");
- while(1)
- {
- if (btnID == 1)
- {
- self waittill("2SEL");
- self notify("vote1");
- self notify("iVoted");
- }
- if (btnID == 2)
- {
- self waittill("3SEL");
- self notify("vote2");
- self notify("iVoted");
- }
- if (btnID == 3)
- {
- self waittill("4SEL");
- self notify("vote3");
- self notify("iVoted");
- }
- if (btnID == 4)
- {
- self waittill("5SEL");
- self notify("vote4");
- self notify("iVoted");
- }
- if (btnID == 5)
- {
- self waittill("NEXTP");
- if ( self.voteMenu != 2 )
- {
- self.voteMenu += 1;
- }
- else
- {
- self.voteMenu = 1;
- }
- }
- if (btnID == 6)
- {
- self waittill("CANCV");
- self notify("iVoted");
- }
- wait 0.01;
- }
- }
- monitorMenuChange(item1,item2,item3,item4)
- {
- self endon("iVoted");
- self endon("voteEnded");
- while(1)
- {
- if ( self.voteMenu != self.prevVoteMenu )
- {
- if ( self.voteMenu == 1 )
- {
- item1 setText("[{weapnext}]. " + level.newMaps[0]);
- item2 setText("[{+actionslot 3}]. " + level.newMaps[1]);
- item3 setText("[{+actionslot 4}]. " + level.newMaps[2]);
- item4 setText("[{+actionslot 2}]. " + level.newMaps[3]);
- self.prevVoteMenu = self.voteMenu;
- }
- if ( self.voteMenu == 2 )
- {
- item1 setText("[{weapnext}]. " + level.newMaps[4]);
- item2 setText("[{+actionslot 3}]. " + level.newMaps[5]);
- item3 setText("[{+actionslot 4}]. " + level.newMaps[6]);
- item4 setText("[{+actionslot 2}]. " + level.newMaps[7]);
- self.prevVoteMenu = self.voteMenu;
- }
- }
- wait 0.05;
- }
- }
- deleteOnVoteEnd(item)
- {
- self waittill("voteEnded");
- item destroy();
- }
- monitorVoteCount(array)
- {
- self endon("voteEnded");
- while(1)
- {
- for ( i = 0; i < array.size; i++ )
- {
- array[i] setText(level.newMaps[i] + " (" + level.vote[i] + ")");
- }
- wait 1.0;
- }
- }
- deleteOnVoted(item)
- {
- self waittill("iVoted");
- self.hasVoted = true;
- item destroy();
- }
- createMenuItem(x, y, text)
- {
- desc = self createFontString("objective", 1);
- desc setPoint("TOPLEFT", "TOPLEFT", x, y);
- desc setText(text);
- return desc;
- }
- createTextItem(x, y, text)
- {
- desc = self createFontString("objective", 0.75);
- desc setPoint("TOPRIGHT", "TOPRIGHT", x, y);
- desc setText(text);
- return desc;
- }
- waitForFinalVote(voteID)
- {
- self endon("finalVote");
- while(1)
- {
- if ( voteID == 1 )
- {
- self waittill("vote1");
- if ( self.voteMenu == 1 )
- {
- level.vote[0] += 1;
- self notify("finalVote");
- }
- if ( self.voteMenu == 2 )
- {
- level.vote[4] += 1;
- self notify("finalVote");
- }
- }
- if ( voteID == 2 )
- {
- self waittill("vote2");
- if ( self.voteMenu == 1 )
- {
- level.vote[1] += 1;
- self notify("finalVote");
- }
- if ( self.voteMenu == 2 )
- {
- level.vote[5] += 1;
- self notify("finalVote");
- }
- }
- if ( voteID == 3 )
- {
- self waittill("vote3");
- if ( self.voteMenu == 1 )
- {
- level.vote[2] += 1;
- self notify("finalVote");
- }
- if ( self.voteMenu == 2 )
- {
- level.vote[6] += 1;
- self notify("finalVote");
- }
- }
- if ( voteID == 4 )
- {
- self waittill("vote4");
- if ( self.voteMenu == 1 )
- {
- level.vote[3] += 1;
- self notify("finalVote");
- }
- if ( self.voteMenu == 2 )
- {
- level.vote[7] += 1;
- self notify("finalVote");
- }
- }
- wait 0.01;
- }
- }
- getMostVoted()
- {
- highest = -1;
- m = level.newMaps[randomint(level.newMaps.size)];
- foreach( g in level.vote )
- {
- if( g > highest )
- {
- highest = g;
- }
- }
- for( i = 0; i < level.vote.size; i++ )
- {
- if( level.vote[i] == highest )
- {
- m = level.newMaps[i];
- }
- }
- return m;
- }
- doSpawn()
- {
- level.connected = 1;
- self.connected = 1;
- self.hasVoted = false;
- self setClientDvar("cg_hudChatPosition", "5 200");
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement