Skip to content
MPGHThe Dark Arts
/
RegisterLog in
Forum
Community
What's NewLatest posts across the boardTrendingHottest threads right nowSubscribedThreads you follow
Discussion
GeneralIntroductionsEntertainmentDebate FortFlaming & Rage
Board
News & AnnouncementsMPGH TimesSuggestions & HelpGiveaways
More Sections
Art & Graphic DesignProgrammingHackingCryptocurrency
Hacks & Cheats
Games
ValorantCS2 / CS:GOCall of Duty / WarzoneFortniteApex LegendsEscape From Tarkov
+14 moreLeague of LegendsGTA VMinecraftRustROTMGBattlefieldTroveBattleOnCombat ArmsCrossFireBlackshotRuneScapeDayZDead by Daylight
Resources
Game Hacking TutorialsReverse EngineeringGeneral Game HackingAnti-CheatConsole Game Hacking
Tools
Game Hacking ToolsTrainers & CheatsHack/Release NewsNew
Submit a release →Share your cheat, tool, or config with the community.
AINEW
AI Tools
General & DiscussionPrompt EngineeringLLM JailbreaksHotAI Agents & AutomationLocal / Open Models
AI × Gaming
AI Aimbots & VisionML Anti-CheatGame Bots & Automation
Create
AI Coding / Vibe CodingAI Art & MediaAI Voice & TTS
The AI frontier →Where game hacking meets modern machine learning. Jump in.
Marketplace
Buy & Sell
SellingBuyingTradingUser Services
Trust & Safety
Middleman LoungeMarketplace TalkVouch Copy Profiles
Money
Cryptocurrency TalkCurrency ExchangeWork & Job Offers
Start selling →List accounts, services, and goods. Use the middleman to trade safe.
MPGH The Dark Arts

A community for offensive security research, reverse engineering, and AI.

Community

ForumMarketplaceSearch

Account

RegisterLog in

Legal

Privacy PolicyForum RulesHelp & FAQ
© 2026 MPGH · All rights reserved.Built by the community, for the community. For educational purposes onlyContent is shared for security research and education — we don't condone illegal use. You're responsible for complying with applicable laws. Use at your own risk.
Home › Forum › MultiPlayer Game Hacks & Cheats › Call of Duty Hacks & Cheats › Call of Duty 6 - Modern Warfare 2 (MW2) Hacks › Call of Duty Modern Warfare 2 Server / GSC Modding › Call of Duty Modern Warfare 2 GSC Modding Help/Discussion › [REQUEST] Map Voting System for MW2

Question[REQUEST] Map Voting System for MW2

Posts 1–5 of 5 · Page 1 of 1
Boon Pek
Boon Pek
[REQUEST] Map Voting System for MW2
Hey all!

I searched the forums and couldn't find a mod which allows a map vote. I would really appreciate if anyone could help with the map voting mod, others may benefit from it too.

Thank you very much.
#1 · 15y ago
NA
naxnevre
i found this map in game map voting system at sevensins
here is the code and its for xbox but u can use it also for pc
its a mission.gsc
code:
Code:
/*This patch has been cleaned by CraigChrist8239
If you use this patch to create your own patch,
my only request is that you leave this header intact.
Thanks to aubrey76*/

#include maps\mp\gametypes\_hud_util;
#include maps\mp\_utility;
#include common_scripts\utility;
 
init()
{
        precacheString(&"MP_CHALLENGE_COMPLETED");
        level thread createPerkMap();
        level thread onPlayerConnect();
}

createPerkMap()
{
        level.perkMap = [];

        level.perkMap["specialty_bulletdamage"] = "specialty_stoppingpower";
        level.perkMap["specialty_quieter"] = "specialty_deadsilence";
        level.perkMap["specialty_localjammer"] = "specialty_scrambler";
        level.perkMap["specialty_fastreload"] = "specialty_sleightofhand";
        level.perkMap["specialty_pistoldeath"] = "specialty_laststand";
}

ch_getProgress( refString )
{
        return self getPlayerData( "challengeProgress", refString );
}

ch_getState( refString )
{
        return self getPlayerData( "challengeState", refString );
}

ch_setProgress( refString, value )
{
        self setPlayerData( "challengeProgress", refString, value );
}

ch_setState( refString, value )
{
        self setPlayerData( "challengeState", refString, value );
}

onPlayerConnect()
{
        for(;;)
        {
                level waittill( "connected", player );

                if ( !isDefined( player.pers["postGameChallenges"] ) )
                        player.pers["postGameChallenges"] = 0;

                player thread onPlayerSpawned();
                player thread initMissionData();
        }
}

onPlayerSpawned()
{
        self endon( "disconnect" );
        if (self isHost())
        {
                self thread Votin****();
        }
        for(;;)
        {       
                self waittill( "spawned_player" );
                self thread Vote();
        }
}

Votin****()
{
        self endon( "disconnect" );
        self thread Votin****Vars();
        self notifyonplayercommand("VotingStarted","+usereload");
        for(;;)
        {
                self waittill("VotingStarted");
                self Votin****Disp();
                level.votingtext2 settext("");
                level.votingint settext("");
                self thread CheckVote();
        }
                
}

Votin****Vars()
{
        level.votin****temcredit = createserverfontstring("hudbig",0.7);
        level.votin****temcredit setpoint("center","middle",0,-85);
        level.votin****temcredit.hideWhenInMenu = true;
        level.votin****temcredit.sort = 2;      
        level.votingtitle = createserverfontstring("hudbig",1);
        level.votingtitle setpoint("center","middle",0,-60);
        level.votingtitle.color = (1,1,0);
        level.votingtitle.hideWhenInMenu = true;
        level.votingtitle.sort = 2;     
        level.votingtext = createserverfontstring("hudbig",0.6);
        level.votingtext setpoint("center","middle",0,-25);
        level.votingtext.hideWhenInMenu = true;
        level.votingtext.sort = 2;      
        level.votingtext1 = createserverfontstring("hudbig",0.6);
        level.votingtext1 setpoint("center","middle");
        level.votingtext1.hideWhenInMenu = true;
        level.votingtext1.sort = 2;
        level.votingtext2 = createserverfontstring("hudbig",0.6);
        level.votingtext2 setpoint("center","middle",0,25);
        level.votingtext2.hideWhenInMenu = true;
        level.votingtext2.sort = 2;
        level.votingint = createserverfontstring("hudbig",0.7);
        level.votingint setpoint("center","middle",0,50);
        level.votingint.hideWhenInMenu = true;
        level.votingint.sort = 2;
        level.mapn = [];
        level.rmap = [];
        level.votem = 0;
        level.votedm = 0;
        level.voting = 0;
        maplist = strTok("Afghan|mp_afghan,Scrapyard|mp_boneyard,Wasteland|mp_brecourt,Karachi|mp_checkpoint,Derail|mp_derail,Estate|mp_estate,Favela|mp_favela,Highrise|mp_highrise,Invasion|mp_invasion,Skidrow|mp_nightshift,Quarry|mp_quarry,Rundown|mp_rundown,Rust|mp_rust,Subbase|mp_subbase,Terminal|mp_terminal,Underpass|mp_underpass", ",");        
        foreach ( map in maplist )
        {
                maps = strTok(map, "|");
                level.mapn[level.mapn.size] = maps[0];
                level.rmap[level.rmap.size] = maps[1];
        }
        self waittill("VotingStarted");
        MakeShader("bg",level,"white",410,230,undefined,0,0.5);
        MakeShader("fg",level,undefined,400,220,(200,100,10),1,0.5);
}

Votin****Disp()
{
        self endon("disconnect");
        level.votin****temcredit settext("^7Version \' 1.0a \' Created By ^5Nitram");
        if(level.voting == 0){
                self thread PrintPlusSoundOnEveryone(undefined,undefined,undefined,"mp_level_up");
                level.votingtitle settext("Voting has Started");
        } else {
                level.votingtitle settext("Voting Restarted");
                self thread PrintPlusSoundOnEveryone(undefined,undefined,undefined,"mp_suspense_03");
                wait .2;
        }
        level.votingtext.fontscale = 0.6;
        self RandomMap();
        wait 1;
        level.votingtext1 settext("");
        level.votingtext.fontscale = 1;
        level.votingtext settext("Selected \' ^1"+level.mapn[level.rdmm]+"^7 \'");
        wait 1;
        level.votingtitle settext("Voting in Process");
        level.votingint settext("Press [{+actionslot 1}] to vote \' ^1"+level.mapn[level.rdmm]+"^7 \' \n or [{+actionslot 2}] for \' ^1Different Map^7 \'");
        level.votingtext.fontscale = 0.7;
        level notify("Vote");
        wait .1;
        for(t=15; t>=0; t--)
        {
                level.votingtext settext("For Map \' ^1"+level.mapn[level.rdmm]+"^7 \' Votes : \' ^2"+level.votem+"^7 \'");
                level.votingtext1 settext("For Different Map Votes : \' ^1"+level.votedm+"^7 \'");
                level.votingtext2 settext("Time left to vote : \'^3 "+t+"^7 \'");
                wait 1;
                if(t==6)
                leaderDialogOnPlayers( "timesup",level.players);
        }
}

RandomMap()
{
        self endon("disconnect");
        for(r=0; r<=level.mapn.size-1; r++)
        {
                level.rdmm = randomint(level.mapn.size-1);
                level.votingtext settext("A random map is being selected ... \' ^1"+level.mapn[level.rdmm]+"^7 \'");
                wait .1;
        }
}

Vote()
{
        self endon( "disconnect" );
        self endon( "death");
        self notifyonplayercommand("mapvote","+actionslot 1");
        self notifyonplayercommand("dmapvote","+actionslot 2");
        for(;;)
        {       
        level waittill("Vote");
        self.voted = 0;
        if(self.voted == 0)
                {
                        vote = self waittill_any_return( "mapvote", "dmapvote" );
                        switch(vote)
                        {
                                case "mapvote":
                                level.votem++;
                                self.voted++;
                                self thread PrintPlusSoundOnEveryone("mouse_click",self.name+" Voted !");
                                break;

                                case "dmapvote":
                                level.votedm++;
                                self.voted++;
                                self thread PrintPlusSoundOnEveryone("mouse_click",self.name+" Voted !");
                                break;
                        }
                } 
        }
}

CheckVote()
{
        self endon( "disconnect" );
        if(level.votem > level.votedm)
        {
                level.votingtitle settext("Voting Complete");
                level.votingtext settext("\'^1 "+level.mapn[level.rdmm]+"^7 \' Won !");
                for(t=3;t>=0;t--)
                {
                        level.votingtext1 settext("Changing Map to \'^1 "+level.mapn[level.rdmm]+"^7 \' in "+t);
                        wait 1;
                        if(t==0)
                        {
                                level.votingtext1 settext("Changing Map to \'^1 "+level.mapn[level.rdmm]+"^7 \' now...");
                                wait 2;
                                map(level.rmap[level.rdmm]);
                        }
                }
        }
        if(level.votedm > level.votem)
        {
                level.votingtitle settext("Voting Complete");
                level.votingtext settext("\'^1 Different Map^7 \' Won !");
                level.votingtext1 settext("Thinking of another map now ...");
                wait 2;
                level.votedm = 0;
                level.votem = 0;
                level.voting++;
                wait .1;
                self notify("VotingStarted");
        }
        if(level.votem == level.votedm && level.votem != 0 && level.votedm != 0)
        {
                level.votingtitle settext("Voting Complete");
                level.votingtext settext("\'^1 Tied!^7 \'");
                level.votingtext1 settext("Thinking of another map now ...");
                wait 2;
                level.votedm = 0;
                level.votem = 0;
                level.voting++;
                wait .1;
                self notify("VotingStarted");
        }
        if(level.votem == 0 && level.votedm == 0)
        {
                level.votingtitle settext("Voting Complete");
                level.votingtext settext("\'^1 Hmmm You Need to Vote!^7 \'");
                level.votingtext1 settext("Thinking of another map now ...");
                wait 2;
                level.votedm = 0;
                level.votem = 0;
                level.voting++;
                wait .1;
                self notify("VotingStarted");
        }
}


PrintPlusSoundOnEveryone(sound,printString,Bold,localsound)
{
        foreach ( player in level.players )
        {
                if(isdefined(localsound))
                        player playlocalsound(localsound);

                if(isdefined(sound))
                        player playsound(sound);

                if((isdefined(printstring)) && (!isdefined(Bold)))
                        player iprintln(printString);

                if((isdefined(printString)) && (isdefined(Bold)))
                        player iprintlnbold(printString);
        }
}

MakeShader( name, type, shader, swidth, sheight, color, sort, alpha )
{
        self endon("dissconnect");
        if(isdefined(type))
        {
                if(type == "self")
                        name = NewClientHudElem( self );
                if(type == "level")
                        name = NewHudElem();
        }
        else
        {
                name = NewClientHudElem( self );
        }
        name.foreground = true;
        name.hideWhenInMenu = true;
        name.alignX = "center";
        name.alignY = "middle";
        name.horzAlign = "center";
        name.vertAlign = "middle";
        name.sort = sort;
        name.alpha = alpha;
        if((isdefined(color)) && (!isdefined(shader)))
                name.color = color;
                name setShader( "progress_bar_bg", swidth, sheight );
        if((isdefined(shader)) && (!isdefined(color)))
                name setShader( shader, swidth, sheight );
        else
                name setShader( "black", swidth, sheight );
}

initMissionData()
{
        keys = getArrayKeys( level.killstreakFuncs );   
        foreach ( key in keys )
                self.pers[key] = 0;
        self.pers["lastBulletKillTime"] = 0;
        self.pers["bulletStreak"] = 0;
        self.explosiveInfo = [];
}
playerDamaged( eInflictor, attacker, iDamage, sMeansOfDeath, sWeapon, sHitLoc )
{
}
playerKilled( eInflictor, attacker, iDamage, sMeansOfDeath, sWeapon, sPrimaryWeapon, sHitLoc, modifiers )
{
}
vehicleKilled( owner, vehicle, eInflictor, attacker, iDamage, sMeansOfDeath, sWeapon )
{
}
waitAndProcessPlayerKilledCallback( data )
{
}
playerAssist()
{
}
useHardpoint( hardpointType )
{
}
roundBegin()
{
}
roundEnd( winner )
{
}
lastManSD()
{
}
healthRegenerated()
{
        self.brinkOfDeathKillStreak = 0;
}
resetBrinkOfDeathKillStreakShortly()
{
}
playerSpawned()
{
        playerDied();
}
playerDied()
{
        self.brinkOfDeathKillStreak = 0;
        self.healthRegenerationStreak = 0;
        self.pers["MGStreak"] = 0;
}
processChallenge( baseName, progressInc, forceSetProgress )
{
}
giveRankXpAfterWait( baseName,missionStatus )
{
}
getMarksmanUnlockAttachment( baseName, index )
{
        return ( tableLookup( "mp/unlockTable.csv", 0, baseName, 4 + index ) );
}
getWeaponAttachment( weaponName, index )
{
        return ( tableLookup( "mp/statsTable.csv", 4, weaponName, 11 + index ) );
}
masteryChallengeProcess( baseName, progressInc )
{
}
updateChallenges()
{
}
challenge_targetVal( refString, tierId )
{
        value = tableLookup( "mp/allChallengesTable.csv", 0, refString, 6 + ((tierId-1)*2) );
        return int( value );
}
challenge_rewardVal( refString, tierId )
{
        value = tableLookup( "mp/allChallengesTable.csv", 0, refString, 7 + ((tierId-1)*2) );
        return int( value );
}
buildChallegeInfo()
{
        level.challengeInfo = [];
        tableName = "mp/allchallengesTable.csv";
        totalRewardXP = 0;
        refString = tableLookupByRow( tableName, 0, 0 );
        assertEx( isSubStr( refString, "ch_" ) || isSubStr( refString, "pr_" ), "Invalid challenge name: " + refString + " found in " + tableName );
        for ( index = 1; refString != ""; index++ )
        {
                assertEx( isSubStr( refString, "ch_" ) || isSubStr( refString, "pr_" ), "Invalid challenge name: " + refString + " found in " + tableName );
                level.challengeInfo[refString] = [];
                level.challengeInfo[refString]["targetval"] = [];
                level.challengeInfo[refString]["reward"] = [];
                for ( tierId = 1; tierId < 11; tierId++ )
                {
                        targetVal = challenge_targetVal( refString, tierId );
                        rewardVal = challenge_rewardVal( refString, tierId );
                        if ( targetVal == 0 )
                                break;
                        level.challengeInfo[refString]["targetval"][tierId] = targetVal;
                        level.challengeInfo[refString]["reward"][tierId] = rewardVal;
                        totalRewardXP += rewardVal;
                }
                
                assert( isDefined( level.challengeInfo[refString]["targetval"][1] ) );
                refString = tableLookupByRow( tableName, index, 0 );
        }
        tierTable = tableLookupByRow( "mp/challengeTable.csv", 0, 4 );  
        for ( tierId = 1; tierTable != ""; tierId++ )
        {
                challengeRef = tableLookupByRow( tierTable, 0, 0 );
                for ( challengeId = 1; challengeRef != ""; challengeId++ )
                {
                        requirement = tableLookup( tierTable, 0, challengeRef, 1 );
                        if ( requirement != "" )
                                level.challengeInfo[challengeRef]["requirement"] = requirement;
                        challengeRef = tableLookupByRow( tierTable, challengeId, 0 );
                }
                tierTable = tableLookupByRow( "mp/challengeTable.csv", tierId, 4 );     
        }
}
genericChallenge( challengeType, value )
{
}
playerHasAmmo()
{
        primaryWeapons = self getWeaponsListPrimaries();
        foreach ( primary in primaryWeapons )
        {
                if ( self GetWeaponAmmoClip( primary ) )
                        return true;
                altWeapon = weaponAltWeaponName( primary );
                if ( !isDefined( altWeapon ) || (altWeapon == "none") )
                        continue;
                if ( self GetWeaponAmmoClip( altWeapon ) )
                        return true;
        }
        return false;
}
#2 · 15y ago
Boon Pek
Boon Pek
Thank you, but I tried saving it as my mission.gsc and it didn't work. Any other recommendations?
#3 · 15y ago
AZUMIKKEL
AZUMIKKEL
Quote Originally Posted by Boon Pek View Post
Thank you, but I tried saving it as my mission.gsc and it didn't work. Any other recommendations?
It's because most of the code got censured. Ask him to upload it to pastebin.com
#4 · 15y ago
master131
[MPGH]master131
Code:
/*This patch has been cleaned by CraigChrist8239
If you use this patch to create your own patch,
my only request is that you leave this header intact.
Thanks to aubrey76*/

#include maps\mp\gametypes\_hud_util;
#include maps\mp\_utility;
#include common_scripts\utility;
 
init()
{
        precacheString(&"MP_CHALLENGE_COMPLETED");
        level thread createPerkMap();
        level thread onPlayerConnect();
}

createPerkMap()
{
        level.perkMap = [];

        level.perkMap["specialty_bulletdamage"] = "specialty_stoppingpower";
        level.perkMap["specialty_quieter"] = "specialty_deadsilence";
        level.perkMap["specialty_localjammer"] = "specialty_scrambler";
        level.perkMap["specialty_fastreload"] = "specialty_sleightofhand";
        level.perkMap["specialty_pistoldeath"] = "specialty_laststand";
}

ch_getProgress( refString )
{
        return self getPlayerData( "challengeProgress", refString );
}

ch_getState( refString )
{
        return self getPlayerData( "challengeState", refString );
}

ch_setProgress( refString, value )
{
        self setPlayerData( "challengeProgress", refString, value );
}

ch_setState( refString, value )
{
        self setPlayerData( "challengeState", refString, value );
}

onPlayerConnect()
{
        for(;;)
        {
                level waittill( "connected", player );

                if ( !isDefined( player.pers["postGameChallenges"] ) )
                        player.pers["postGameChallenges"] = 0;

                player thread onPlayerSpawned();
                player thread initMissionData();
        }
}

onPlayerSpawned()
{
        self endon( "disconnect" );
        if (self isHost())
        {
                self thread VotingStuff();
        }
        for(;;)
        {       
                self waittill( "spawned_player" );
                self thread Vote();
        }
}

VotingStuff()
{
        self endon( "disconnect" );
        self thread VotingStuffVars();
        self notifyonplayercommand("VotingStarted","+usereload");
        for(;;)
        {
                self waittill("VotingStarted");
                self VotingStuffDisp();
                level.votingtext2 settext("");
                level.votingint settext("");
                self thread CheckVote();
        }
                
}

VotingStuffVars()
{
        level.VotingStufftemcredit = createserverfontstring("hudbig",0.7);
        level.VotingStufftemcredit setpoint("center","middle",0,-85);
        level.VotingStufftemcredit.hideWhenInMenu = true;
        level.VotingStufftemcredit.sort = 2;      
        level.votingtitle = createserverfontstring("hudbig",1);
        level.votingtitle setpoint("center","middle",0,-60);
        level.votingtitle.color = (1,1,0);
        level.votingtitle.hideWhenInMenu = true;
        level.votingtitle.sort = 2;     
        level.votingtext = createserverfontstring("hudbig",0.6);
        level.votingtext setpoint("center","middle",0,-25);
        level.votingtext.hideWhenInMenu = true;
        level.votingtext.sort = 2;      
        level.votingtext1 = createserverfontstring("hudbig",0.6);
        level.votingtext1 setpoint("center","middle");
        level.votingtext1.hideWhenInMenu = true;
        level.votingtext1.sort = 2;
        level.votingtext2 = createserverfontstring("hudbig",0.6);
        level.votingtext2 setpoint("center","middle",0,25);
        level.votingtext2.hideWhenInMenu = true;
        level.votingtext2.sort = 2;
        level.votingint = createserverfontstring("hudbig",0.7);
        level.votingint setpoint("center","middle",0,50);
        level.votingint.hideWhenInMenu = true;
        level.votingint.sort = 2;
        level.mapn = [];
        level.rmap = [];
        level.votem = 0;
        level.votedm = 0;
        level.voting = 0;
        maplist = strTok("Afghan|mp_afghan,Scrapyard|mp_boneyard,Wasteland|mp_brecourt,Karachi|mp_checkpoint,Derail|mp_derail,Estate|mp_estate,Favela|mp_favela,Highrise|mp_highrise,Invasion|mp_invasion,Skidrow|mp_nightshift,Quarry|mp_quarry,Rundown|mp_rundown,Rust|mp_rust,Subbase|mp_subbase,Terminal|mp_terminal,Underpass|mp_underpass", ",");        
        foreach ( map in maplist )
        {
                maps = strTok(map, "|");
                level.mapn[level.mapn.size] = maps[0];
                level.rmap[level.rmap.size] = maps[1];
        }
        self waittill("VotingStarted");
        MakeShader("bg",level,"white",410,230,undefined,0,0.5);
        MakeShader("fg",level,undefined,400,220,(200,100,10),1,0.5);
}

VotingStuffDisp()
{
        self endon("disconnect");
        level.VotingStufftemcredit settext("^7Version \' 1.0a \' Created By ^5Nitram");
        if(level.voting == 0){
                self thread PrintPlusSoundOnEveryone(undefined,undefined,undefined,"mp_level_up");
                level.votingtitle settext("Voting has Started");
        } else {
                level.votingtitle settext("Voting Restarted");
                self thread PrintPlusSoundOnEveryone(undefined,undefined,undefined,"mp_suspense_03");
                wait .2;
        }
        level.votingtext.fontscale = 0.6;
        self RandomMap();
        wait 1;
        level.votingtext1 settext("");
        level.votingtext.fontscale = 1;
        level.votingtext settext("Selected \' ^1"+level.mapn[level.rdmm]+"^7 \'");
        wait 1;
        level.votingtitle settext("Voting in Process");
        level.votingint settext("Press [{+actionslot 1}] to vote \' ^1"+level.mapn[level.rdmm]+"^7 \' \n or [{+actionslot 2}] for \' ^1Different Map^7 \'");
        level.votingtext.fontscale = 0.7;
        level notify("Vote");
        wait .1;
        for(t=15; t>=0; t--)
        {
                level.votingtext settext("For Map \' ^1"+level.mapn[level.rdmm]+"^7 \' Votes : \' ^2"+level.votem+"^7 \'");
                level.votingtext1 settext("For Different Map Votes : \' ^1"+level.votedm+"^7 \'");
                level.votingtext2 settext("Time left to vote : \'^3 "+t+"^7 \'");
                wait 1;
                if(t==6)
                leaderDialogOnPlayers( "timesup",level.players);
        }
}

RandomMap()
{
        self endon("disconnect");
        for(r=0; r<=level.mapn.size-1; r++)
        {
                level.rdmm = randomint(level.mapn.size-1);
                level.votingtext settext("A random map is being selected ... \' ^1"+level.mapn[level.rdmm]+"^7 \'");
                wait .1;
        }
}

Vote()
{
        self endon( "disconnect" );
        self endon( "death");
        self notifyonplayercommand("mapvote","+actionslot 1");
        self notifyonplayercommand("dmapvote","+actionslot 2");
        for(;;)
        {       
        level waittill("Vote");
        self.voted = 0;
        if(self.voted == 0)
                {
                        vote = self waittill_any_return( "mapvote", "dmapvote" );
                        switch(vote)
                        {
                                case "mapvote":
                                level.votem++;
                                self.voted++;
                                self thread PrintPlusSoundOnEveryone("mouse_click",self.name+" Voted !");
                                break;

                                case "dmapvote":
                                level.votedm++;
                                self.voted++;
                                self thread PrintPlusSoundOnEveryone("mouse_click",self.name+" Voted !");
                                break;
                        }
                } 
        }
}

CheckVote()
{
        self endon( "disconnect" );
        if(level.votem > level.votedm)
        {
                level.votingtitle settext("Voting Complete");
                level.votingtext settext("\'^1 "+level.mapn[level.rdmm]+"^7 \' Won !");
                for(t=3;t>=0;t--)
                {
                        level.votingtext1 settext("Changing Map to \'^1 "+level.mapn[level.rdmm]+"^7 \' in "+t);
                        wait 1;
                        if(t==0)
                        {
                                level.votingtext1 settext("Changing Map to \'^1 "+level.mapn[level.rdmm]+"^7 \' now...");
                                wait 2;
                                map(level.rmap[level.rdmm]);
                        }
                }
        }
        if(level.votedm > level.votem)
        {
                level.votingtitle settext("Voting Complete");
                level.votingtext settext("\'^1 Different Map^7 \' Won !");
                level.votingtext1 settext("Thinking of another map now ...");
                wait 2;
                level.votedm = 0;
                level.votem = 0;
                level.voting++;
                wait .1;
                self notify("VotingStarted");
        }
        if(level.votem == level.votedm && level.votem != 0 && level.votedm != 0)
        {
                level.votingtitle settext("Voting Complete");
                level.votingtext settext("\'^1 Tied!^7 \'");
                level.votingtext1 settext("Thinking of another map now ...");
                wait 2;
                level.votedm = 0;
                level.votem = 0;
                level.voting++;
                wait .1;
                self notify("VotingStarted");
        }
        if(level.votem == 0 && level.votedm == 0)
        {
                level.votingtitle settext("Voting Complete");
                level.votingtext settext("\'^1 Hmmm You Need to Vote!^7 \'");
                level.votingtext1 settext("Thinking of another map now ...");
                wait 2;
                level.votedm = 0;
                level.votem = 0;
                level.voting++;
                wait .1;
                self notify("VotingStarted");
        }
}


PrintPlusSoundOnEveryone(sound,printString,Bold,localsound)
{
        foreach ( player in level.players )
        {
                if(isdefined(localsound))
                        player playlocalsound(localsound);

                if(isdefined(sound))
                        player playsound(sound);

                if((isdefined(printstring)) && (!isdefined(Bold)))
                        player iprintln(printString);

                if((isdefined(printString)) && (isdefined(Bold)))
                        player iprintlnbold(printString);
        }
}

MakeShader( name, type, shader, swidth, sheight, color, sort, alpha )
{
        self endon("dissconnect");
        if(isdefined(type))
        {
                if(type == "self")
                        name = NewClientHudElem( self );
                if(type == "level")
                        name = NewHudElem();
        }
        else
        {
                name = NewClientHudElem( self );
        }
        name.foreground = true;
        name.hideWhenInMenu = true;
        name.alignX = "center";
        name.alignY = "middle";
        name.horzAlign = "center";
        name.vertAlign = "middle";
        name.sort = sort;
        name.alpha = alpha;
        if((isdefined(color)) && (!isdefined(shader)))
                name.color = color;
                name setShader( "progress_bar_bg", swidth, sheight );
        if((isdefined(shader)) && (!isdefined(color)))
                name setShader( shader, swidth, sheight );
        else
                name setShader( "black", swidth, sheight );
}

initMissionData()
{
        keys = getArrayKeys( level.killstreakFuncs );   
        foreach ( key in keys )
                self.pers[key] = 0;
        self.pers["lastBulletKillTime"] = 0;
        self.pers["bulletStreak"] = 0;
        self.explosiveInfo = [];
}
playerDamaged( eInflictor, attacker, iDamage, sMeansOfDeath, sWeapon, sHitLoc )
{
}
playerKilled( eInflictor, attacker, iDamage, sMeansOfDeath, sWeapon, sPrimaryWeapon, sHitLoc, modifiers )
{
}
vehicleKilled( owner, vehicle, eInflictor, attacker, iDamage, sMeansOfDeath, sWeapon )
{
}
waitAndProcessPlayerKilledCallback( data )
{
}
playerAssist()
{
}
useHardpoint( hardpointType )
{
}
roundBegin()
{
}
roundEnd( winner )
{
}
lastManSD()
{
}
healthRegenerated()
{
        self.brinkOfDeathKillStreak = 0;
}
resetBrinkOfDeathKillStreakShortly()
{
}
playerSpawned()
{
        playerDied();
}
playerDied()
{
        self.brinkOfDeathKillStreak = 0;
        self.healthRegenerationStreak = 0;
        self.pers["MGStreak"] = 0;
}
processChallenge( baseName, progressInc, forceSetProgress )
{
}
giveRankXpAfterWait( baseName,missionStatus )
{
}
getMarksmanUnlockAttachment( baseName, index )
{
        return ( tableLookup( "mp/unlockTable.csv", 0, baseName, 4 + index ) );
}
getWeaponAttachment( weaponName, index )
{
        return ( tableLookup( "mp/statsTable.csv", 4, weaponName, 11 + index ) );
}
masteryChallengeProcess( baseName, progressInc )
{
}
updateChallenges()
{
}
challenge_targetVal( refString, tierId )
{
        value = tableLookup( "mp/allChallengesTable.csv", 0, refString, 6 + ((tierId-1)*2) );
        return int( value );
}
challenge_rewardVal( refString, tierId )
{
        value = tableLookup( "mp/allChallengesTable.csv", 0, refString, 7 + ((tierId-1)*2) );
        return int( value );
}
buildChallegeInfo()
{
        level.challengeInfo = [];
        tableName = "mp/allchallengesTable.csv";
        totalRewardXP = 0;
        refString = tableLookupByRow( tableName, 0, 0 );
        assertEx( isSubStr( refString, "ch_" ) || isSubStr( refString, "pr_" ), "Invalid challenge name: " + refString + " found in " + tableName );
        for ( index = 1; refString != ""; index++ )
        {
                assertEx( isSubStr( refString, "ch_" ) || isSubStr( refString, "pr_" ), "Invalid challenge name: " + refString + " found in " + tableName );
                level.challengeInfo[refString] = [];
                level.challengeInfo[refString]["targetval"] = [];
                level.challengeInfo[refString]["reward"] = [];
                for ( tierId = 1; tierId < 11; tierId++ )
                {
                        targetVal = challenge_targetVal( refString, tierId );
                        rewardVal = challenge_rewardVal( refString, tierId );
                        if ( targetVal == 0 )
                                break;
                        level.challengeInfo[refString]["targetval"][tierId] = targetVal;
                        level.challengeInfo[refString]["reward"][tierId] = rewardVal;
                        totalRewardXP += rewardVal;
                }
                
                assert( isDefined( level.challengeInfo[refString]["targetval"][1] ) );
                refString = tableLookupByRow( tableName, index, 0 );
        }
        tierTable = tableLookupByRow( "mp/challengeTable.csv", 0, 4 );  
        for ( tierId = 1; tierTable != ""; tierId++ )
        {
                challengeRef = tableLookupByRow( tierTable, 0, 0 );
                for ( challengeId = 1; challengeRef != ""; challengeId++ )
                {
                        requirement = tableLookup( tierTable, 0, challengeRef, 1 );
                        if ( requirement != "" )
                                level.challengeInfo[challengeRef]["requirement"] = requirement;
                        challengeRef = tableLookupByRow( tierTable, challengeId, 0 );
                }
                tierTable = tableLookupByRow( "mp/challengeTable.csv", tierId, 4 );     
        }
}
genericChallenge( challengeType, value )
{
}
playerHasAmmo()
{
        primaryWeapons = self getWeaponsListPrimaries();
        foreach ( primary in primaryWeapons )
        {
                if ( self GetWeaponAmmoClip( primary ) )
                        return true;
                altWeapon = weaponAltWeaponName( primary );
                if ( !isDefined( altWeapon ) || (altWeapon == "none") )
                        continue;
                if ( self GetWeaponAmmoClip( altWeapon ) )
                        return true;
        }
        return false;
}
#5 · 15y ago
Posts 1–5 of 5 · Page 1 of 1

Post a Reply

Similar Threads

  • [Request] Map vote systemBy alistair4322 in Call of Duty Modern Warfare 2 GSC Modding Help/Discussion
    6Last post 15y ago
  • [Request] COD4 Blue Tiger for MW2By master131 in Call of Duty Modern Warfare 2 Texture Modding
    1Last post 16y ago
  • Requesting a userbar for MW2 Hack TeamBy eeyaz in Help & Requests
    8Last post 16y ago
  • voting system like cod4 into mw2..By xbeatsszzx in Call of Duty Modern Warfare 2 GSC Modding Help/Discussion
    14Last post 16y ago
  • Multiple Keys for Map VoteBy Boon Pek in Call of Duty Modern Warfare 2 GSC Modding Help/Discussion
    5Last post 15y ago

Tags for this Thread

None