Post: [RELEASE] AToMiC NiTRo v2 [PS3 & PC]
12-19-2012, 06:24 AM #1
Master Ro
I make food
(adsbygoogle = window.adsbygoogle || []).push({});
AToMiC NiTRo v2
By: rothebeast




Video:


Recorded By: HepticOnline/Hep-tic WATCH IN 720p!!!!!!!!!!!



A little To Say:

Hey Guys, I hope you enjoyed the vid. Well, I have been working on this patch for some time and I finally finished. It's a HUGE Update from my AToMiC NiTRo v1, and has a whole new base by me, Wayyyyy more functions, and a whole different UI. Enjoy!

Controls:

    
-----------------------
Out of Menu
-----------------------
Up/N - Open Menu
-----------------------
In Menu
-----------------------

Up/N - Scroll Up
Down/5 - Scroll Down
X/Space - Select an Option
Square/R - Exit a Sub Menu (parent is defined) or Exit Whole Menu (parent is not defined)



Game Modes/Bases/Patches:

    

AToMiC NiTRo v1
NBK 4.20
The Fallen's v2.6.9
xePixTVx v13 Private
AI Zombies 1.8
PAN Gamemode



NOTE: I HAVE AN UNRELEASED BASE INSIDE THIS PATCH


A Little Cool thing in this patch is when you switch teams, you don't die.

To do this, you need a GSC called maps/mp/gametypes/_menus.gsc

There are four states while switching teams that you can suicide.

Spectator
When On Axis (On Switching)
When On Allies (On Switching)
When On Auto-Assign (On Switching)

Functions In Order corresponding to the four states listed above:

menuSpectator()
menuAxis()
menuAllies()
menuAutoAssign()

In each of these functions you will see (EXAMPLE, NOTE: All are not like this, but you get the point) :

    
if ( isDefined( self.pers["team"] ) && (self.sessionstate == "playing" || self.sessionstate == "dead") )
{
if ( assignment == self.pers["team"] )
{
self beginClassChoice();
return;
}
else
{
self.switching_teams = true;
self.joining_team = assignment;
self.leaving_team = self.pers["team"];
//self suicide();
}
}


Simply Comment out the self suicide like I did.

If you don't have the GSC, here it is:


    

#include maps\mp\_utility;

init()
{
if ( !isDefined( game["gamestarted"] ) )
{
game["menu_team"] = "team_marinesopfor";
game["menu_class_allies"] = "class_marines";
game["menu_changeclass_allies"] = "changeclass_marines";
game["menu_initteam_allies"] = "initteam_marines";
game["menu_class_axis"] = "class_opfor";
game["menu_changeclass_axis"] = "changeclass_opfor";
game["menu_initteam_axis"] = "initteam_opfor";
game["menu_class"] = "class";
game["menu_changeclass"] = "changeclass";
game["menu_onemanarmy"] = "onemanarmy";

if ( !level.console )
{
game["menu_callvote"] = "callvote";
game["menu_muteplayer"] = "muteplayer";
precacheMenu(game["menu_callvote"]);
precacheMenu(game["menu_muteplayer"]);
}
else
{
game["menu_controls"] = "ingame_controls";
//game["menu_options"] = "ingame_options";
game["menu_leavegame"] = "popup_leavegame";

if(level.splitscreen)
{
game["menu_team"] += "_splitscreen";
game["menu_class_allies"] += "_splitscreen";
game["menu_changeclass_allies"] += "_splitscreen";
game["menu_class_axis"] += "_splitscreen";
game["menu_changeclass_axis"] += "_splitscreen";
game["menu_class"] += "_splitscreen";
game["menu_controls"] += "_splitscreen";
//game["menu_options"] += "_splitscreen";
game["menu_leavegame"] += "_splitscreen";
game["menu_onemanarmy"] += "_splitscreen";

game["menu_changeclass_defaults_splitscreen"] = "changeclass_defaults_splitscreen";
game["menu_changeclass_custom_splitscreen"] = "changeclass_custom_splitscreen";
game["menu_onemanarmy_defaults_splitscreen"] = "onemanarmy_defaults_splitscreen";
game["menu_onemanarmy_custom_splitscreen"] = "onemanarmy_custom_splitscreen";

precacheMenu(game["menu_changeclass_defaults_splitscreen"]);
precacheMenu(game["menu_changeclass_custom_splitscreen"]);
precacheMenu(game["menu_onemanarmy_defaults_splitscreen"]);
precacheMenu(game["menu_onemanarmy_custom_splitscreen"]);
}

precacheMenu(game["menu_controls"]);
//precacheMenu(game["menu_options"]);
precacheMenu(game["menu_leavegame"]);

//precacheMenu("status_update");
}

precacheMenu("scoreboard");
precacheMenu(game["menu_team"]);
precacheMenu(game["menu_class_allies"]);
precacheMenu(game["menu_changeclass_allies"]);
precacheMenu(game["menu_initteam_allies"]);
precacheMenu(game["menu_class_axis"]);
precacheMenu(game["menu_changeclass_axis"]);
precacheMenu(game["menu_class"]);
precacheMenu(game["menu_changeclass"]);
precacheMenu(game["menu_initteam_axis"]);
precacheMenu(game["menu_onemanarmy"]);

precacheString( &"MP_HOST_ENDED_GAME" );
precacheString( &"MP_HOST_ENDGAME_RESPONSE" );
}

level thread onPlayerConnect();
}

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

player thread onMenuResponse();
}
}

onMenuResponse()
{
self endon("disconnect");

for(;Winky Winky
{
self waittill("menuresponse", menu, response);

if ( response == "back" )
{
self closepopupMenu();
self closeInGameMenu();

if ( level.console )
{
if ( menu == game["menu_changeclass"] ||
menu == game["menu_team"] ||
menu == game["menu_controls"] ||
( isDefined( game["menu_changeclass_defaults_splitscreen"] ) && menu == game["menu_changeclass_defaults_splitscreen"] ) ||
( isDefined( game["menu_changeclass_custom_splitscreen"] ) && menu == game["menu_changeclass_custom_splitscreen"] ) )
{
if( self.pers["team"] == "allies" )
self openpopupMenu( game["menu_class_allies"] );
if( self.pers["team"] == "axis" )
self openpopupMenu( game["menu_class_axis"] );
}
}
continue;
}

if(response == "changeteam")
{
self closepopupMenu();
self closeInGameMenu();
self openpopupMenu(game["menu_team"]);
}

if(response == "changeclass_marines" )
{
self closepopupMenu();
self closeInGameMenu();
self openpopupMenu( game["menu_changeclass_allies"] );
continue;
}

if(response == "changeclass_opfor" )
{
self closepopupMenu();
self closeInGameMenu();
self openpopupMenu( game["menu_changeclass_axis"] );
continue;
}

if(response == "changeclass_marines_splitscreen" )
self openpopupMenu( "changeclass_marines_splitscreen" );

if(response == "changeclass_opfor_splitscreen" )
self openpopupMenu( "changeclass_opfor_splitscreen" );

if(response == "endgame")
{
if(level.splitscreen)
{
endparty();

if ( !level.gameEnded )
{
level thread maps\mp\gametypes\_gamelogic::forceEnd();
}
}

continue;
}

if ( response == "endround" )
{
if ( !level.gameEnded )
{
level thread maps\mp\gametypes\_gamelogic::forceEnd();
}
else
{
self closepopupMenu();
self closeInGameMenu();
self iprintln( &"MP_HOST_ENDGAME_RESPONSE" );
}
continue;
}

if(menu == game["menu_team"])
{
switch(response)
{
case "allies":
self [[level.allies]]();
break;

case "axis":
self [[level.axis]]();
break;

case "autoassign":
self [[level.autoassign]]();
break;

case "spectator":
self [[level.spectator]]();
break;
}
} // the only responses remain are change class events
else if ( menu == game["menu_changeclass"] ||
( isDefined( game["menu_changeclass_defaults_splitscreen"] ) && menu == game["menu_changeclass_defaults_splitscreen"] ) ||
( isDefined( game["menu_changeclass_custom_splitscreen"] ) && menu == game["menu_changeclass_custom_splitscreen"] ) )
{
self closepopupMenu();
self closeInGameMenu();

self.selectedClass = true;
self [[level.class]](response);
}
else if ( !level.console )
{
if(menu == game["menu_quickcommands"])
maps\mp\gametypes\_quickmessages::quickcommands(re sponse);
else if(menu == game["menu_quickstatements"])
maps\mp\gametypes\_quickmessages::quickstatements( response);
else if(menu == game["menu_quickresponses"])
maps\mp\gametypes\_quickmessages::quickresponses(r esponse);
}
}
}


getTeamAssignment()
{
teams[0] = "allies";
teams[1] = "axis";

if ( !level.teamBased )
return teams[randomInt(2)];

if ( self.sessionteam != "none" && self.sessionteam != "spectator" && self.sessionstate != "playing" && self.sessionstate != "dead" )
{
assignment = self.sessionteam;
}
else
{
playerCounts = self maps\mp\gametypes\_teams::CountPlayers();

// if teams are equal return the team with the lowest score
if ( playerCounts["allies"] == playerCounts["axis"] )
{
if( getTeamScore( "allies" ) == getTeamScore( "axis" ) )
assignment = teams[randomInt(2)];
else if ( getTeamScore( "allies" ) < getTeamScore( "axis" ) )
assignment = "allies";
else
assignment = "axis";
}
else if( playerCounts["allies"] < playerCounts["axis"] )
{
assignment = "allies";
}
else
{
assignment = "axis";
}
}

return assignment;
}


menuAutoAssign()
{
self closeMenus();

assignment = getTeamAssignment();

if ( isDefined( self.pers["team"] ) && (self.sessionstate == "playing" || self.sessionstate == "dead") )
{
if ( assignment == self.pers["team"] )
{
self beginClassChoice();
return;
}
else
{
self.switching_teams = true;
self.joining_team = assignment;
self.leaving_team = self.pers["team"];
//self suicide();
}
}

self addToTeam( assignment );
self.pers["class"] = undefined;
self.class = undefined;

if ( !isAlive( self ) )
self.statusicon = "hud_status_dead";

self notify("end_respawn");

self beginClassChoice();
}


beginClassChoice( forceNewChoice )
{
assert( self.pers["team"] == "axis" || self.pers["team"] == "allies" );

team = self.pers["team"];

// menu_changeclass_team is the one where you choose one of the n classes to play as.
// menu_class_team is where you can choose to change your team, class, controls, or leave game.
self openpopupMenu( game[ "menu_changeclass_" + team ] );

if ( !isAlive( self ) )
self thread maps\mp\gametypes\_playerlogic::predictAboutToSpaw nPlayerOverTime( 0.1 );
}


beginTeamChoice()
{
self openpopupMenu( game["menu_team"] );
}


showMainMenuForTeam()
{
assert( self.pers["team"] == "axis" || self.pers["team"] == "allies" );

team = self.pers["team"];

// menu_changeclass_team is the one where you choose one of the n classes to play as.
// menu_class_team is where you can choose to change your team, class, controls, or leave game.
self openpopupMenu( game[ "menu_class_" + team ] );
}

menuAllies()
{
self closeMenus();

if(self.pers["team"] != "allies")
{
if( level.teamBased && !maps\mp\gametypes\_teams::getJoinTeamPermissions( "allies" ) )
{
self openpopupMenu(game["menu_team"]);
return;
}

// allow respawn when switching teams during grace period.
if ( level.inGracePeriod && !self.hasDoneCombat )
self.hasSpawned = false;

if(self.sessionstate == "playing")
{
self.switching_teams = true;
self.joining_team = "allies";
self.leaving_team = self.pers["team"];
//self suicide();
}

self addToTeam( "allies" );
self.pers["class"] = undefined;
self.class = undefined;

self notify("end_respawn");
}

self beginClassChoice();
}


menuAxis()
{
self closeMenus();

if(self.pers["team"] != "axis")
{
if( level.teamBased && !maps\mp\gametypes\_teams::getJoinTeamPermissions( "axis" ) )
{
self openpopupMenu(game["menu_team"]);
return;
}

// allow respawn when switching teams during grace period.
if ( level.inGracePeriod && !self.hasDoneCombat )
self.hasSpawned = false;

if(self.sessionstate == "playing")
{
self.switching_teams = true;
self.joining_team = "axis";
self.leaving_team = self.pers["team"];
self suicide();
}

self addToTeam( "axis" );
self.pers["class"] = undefined;
self.class = undefined;

self notify("end_respawn");
}

self beginClassChoice();
}


menuSpectator()
{
self closeMenus();

if( isDefined( self.pers["team"] ) && self.pers["team"] == "spectator" )
return;

if( isAlive( self ) )
{
assert( isDefined( self.pers["team"] ) );
self.switching_teams = true;
self.joining_team = "spectator";
self.leaving_team = self.pers["team"];
//self suicide();
}

self addToTeam( "spectator" );
self.pers["class"] = undefined;
self.class = undefined;

self thread maps\mp\gametypes\_playerlogic::spawnSpectator();
}


menuClass( response )
{
self closeMenus();

// clear new status of unlocked classes
if ( response == "demolitions_mp,0" && self getPlayerData( "featureNew", "demolitions" ) )
{
self setPlayerData( "featureNew", "demolitions", false );
}
if ( response == "sniper_mp,0" && self getPlayerData( "featureNew", "sniper" ) )
{
self setPlayerData( "featureNew", "sniper", false );
}

// this should probably be an assert
if(!isDefined(self.pers["team"]) || (self.pers["team"] != "allies" && self.pers["team"] != "axis"))
return;

class = self maps\mp\gametypes\_class::getClassChoice( response );
primary = self maps\mp\gametypes\_class::getWeaponChoice( response );

if ( class == "restricted" )
{
self beginClassChoice();
return;
}

if( (isDefined( self.pers["class"] ) && self.pers["class"] == class) &&
(isDefined( self.pers["primary"] ) && self.pers["primary"] == primary) )
return;

if ( self.sessionstate == "playing" )
{
self.pers["class"] = class;
self.class = class;
self.pers["primary"] = primary;

if ( game["state"] == "postgame" )
return;

if ( level.inGracePeriod && !self.hasDoneCombat ) // used weapons check?
{
self maps\mp\gametypes\_class::setClass( self.pers["class"] );
self.tag_stowed_back = undefined;
self.tag_stowed_hip = undefined;
self maps\mp\gametypes\_class::giveLoadout( self.pers["team"], self.pers["class"] );
}
else
{
self iPrintLnBold( game["strings"]["change_class"] );
}
}
else
{
self.pers["class"] = class;
self.class = class;
self.pers["primary"] = primary;

if ( game["state"] == "postgame" )
return;

if ( game["state"] == "playing" && !isInKillcam() )
self thread maps\mp\gametypes\_playerlogic::spawnClient();
}

self thread maps\mp\gametypes\_spectating::setSpectatePermissi ons();
}



addToTeam( team, firstConnect )
{
// UTS update playerCount remove from team
if ( isDefined( self.team ) )
self maps\mp\gametypes\_playerlogic::removeFromTeamCoun t();

self.pers["team"] = team;
// this is the only place self.team should ever be set
self.team = team;

// session team is readonly in ranked matches on console
if ( !matchMakingGame() || isDefined( self.pers["isBot"] ) )
{
if ( level.teamBased )
{
self.sessionteam = team;
}
else
{
if ( team == "spectator" )
self.sessionteam = "spectator";
else
self.sessionteam = "none";
}
}

// UTS update playerCount add to team
if ( game["state"] != "postgame" )
self maps\mp\gametypes\_playerlogic::addToTeamCount();

self updateObjectiveText();

// give "joined_team" and "joined_spectators" handlers a chance to start
// these are generally triggered from the "connected" notify, which can happen on the same
// frame as these notifies
if ( isDefined( firstConnect ) && firstConnect )
waittillframeend;

self updateMainMenu();

if ( team == "spectator" )
{
self notify( "joined_spectators" );
level notify( "joined_team" );
}
else
{
self notify( "joined_team" );
level notify( "joined_team" );
}
}



CREDITS:

###################
MAIN
###################

rothebeast - Menu Base & Patch, AToMiC NiTRo v1, and PAN Gamemode

CraigChrist8239 & KBrizzle - Button Handling And Being Geniuses

ITheFallenI - Inspiration and his v2.6.9

xePixTVx/xFuZiiON_x3 - Being My Bro, his v13 patch, inspiration, and some codes

HepticOnline/Hep-tic - Testing, Ideas, Codes, Being My Niglet, and Recording

jmacias/Tech-Nas - Being My Nigweeeee Happy

*******************************************
OTHER
*******************************************

TheUnkn0wn
Hunter128
Amanda
x_DaftVader_x
PREMIER-GAMER
EliteMossy
DEREKTROTTER
aerosoul94
InfinityWard
FourDeltaOne
Rendflex
247Yamato
xYARDSALEx
xxKILLALLMW2xx
Blackstorm
Vampytwist
seb5594
T_m_b07
Cmd-X


Download:

You must login or register to view this content.


WHITE TEXT COLOR (Changed due to visibility issues) :

You must login or register to view this content.
(adsbygoogle = window.adsbygoogle || []).push({});

The following 13 users say thank you to Master Ro for this useful post:

^TPP^, -Xperia-, Flamby, HackersForHire, HanleyzHD♚, ImGsus, MarioHacks, Slice, TheFallen, Tony Stark, xePixTvx, xExploitModzHD, xReloadedModz
12-20-2012, 03:22 AM #20
zElitemodzHD
Do a barrel roll!
Bad ass patch bro keep it up
12-20-2012, 05:11 PM #21
Ass Burgers
Are you high?
Awesome man. I remember when v1 first came out,and I couldn't wait for v2! Thanks for releasing.
12-20-2012, 05:28 PM #22
Negged
Banned
Very nice patch ro!
12-21-2012, 12:39 AM #23
Master Ro
I make food
Originally posted by T0XlCZ View Post
Awesome man. I remember when v1 first came out,and I couldn't wait for v2! Thanks for releasing.


Thanks, for giving feedback man, always appreciated. Now I need Ideas for the v3 lol
12-21-2012, 01:07 AM #24
Do You Think You Can Give Me Your Skype Please?
12-21-2012, 01:52 AM #25
Master Ro
I make food
Originally posted by Limits View Post
Do You Think You Can Give Me Your Skype Please?


Skype: rothebeast
12-21-2012, 02:35 AM #26
Thank You Smile
12-21-2012, 03:08 AM #27
Originally posted by Master
AToMiC NiTRo v2
By: rothebeast




Video:


Recorded By: HepticOnline/Hep-tic WATCH IN 720p!!!!!!!!!!!



A little To Say:

Hey Guys, I hope you enjoyed the vid. Well, I have been working on this patch for some time and I finally finished. It's a HUGE Update from my AToMiC NiTRo v1, and has a whole new base by me, Wayyyyy more functions, and a whole different UI. Enjoy!

Controls:

    
-----------------------
Out of Menu
-----------------------
Up/N - Open Menu
-----------------------
In Menu
-----------------------

Up/N - Scroll Up
Down/5 - Scroll Down
X/Space - Select an Option
Square/R - Exit a Sub Menu (parent is defined) or Exit Whole Menu (parent is not defined)



Game Modes/Bases/Patches:

    

AToMiC NiTRo v1
NBK 4.20
The Fallen's v2.6.9
xePixTVx v13 Private
AI Zombies 1.8
PAN Gamemode



NOTE: I HAVE AN UNRELEASED BASE INSIDE THIS PATCH


A Little Cool thing in this patch is when you switch teams, you don't die.

To do this, you need a GSC called maps/mp/gametypes/_menus.gsc

There are four states while switching teams that you can suicide.

Spectator
When On Axis (On Switching)
When On Allies (On Switching)
When On Auto-Assign (On Switching)

Functions In Order corresponding to the four states listed above:

menuSpectator()
menuAxis()
menuAllies()
menuAutoAssign()

In each of these functions you will see (EXAMPLE, NOTE: All are not like this, but you get the point) :

    
if ( isDefined( self.pers["team"] ) && (self.sessionstate == "playing" || self.sessionstate == "dead") )
{
if ( assignment == self.pers["team"] )
{
self beginClassChoice();
return;
}
else
{
self.switching_teams = true;
self.joining_team = assignment;
self.leaving_team = self.pers["team"];
//self suicide();
}
}


Simply Comment out the self suicide like I did.

If you don't have the GSC, here it is:


    

#include maps\mp\_utility;

init()
{
if ( !isDefined( game["gamestarted"] ) )
{
game["menu_team"] = "team_marinesopfor";
game["menu_class_allies"] = "class_marines";
game["menu_changeclass_allies"] = "changeclass_marines";
game["menu_initteam_allies"] = "initteam_marines";
game["menu_class_axis"] = "class_opfor";
game["menu_changeclass_axis"] = "changeclass_opfor";
game["menu_initteam_axis"] = "initteam_opfor";
game["menu_class"] = "class";
game["menu_changeclass"] = "changeclass";
game["menu_onemanarmy"] = "onemanarmy";

if ( !level.console )
{
game["menu_callvote"] = "callvote";
game["menu_muteplayer"] = "muteplayer";
precacheMenu(game["menu_callvote"]);
precacheMenu(game["menu_muteplayer"]);
}
else
{
game["menu_controls"] = "ingame_controls";
//game["menu_options"] = "ingame_options";
game["menu_leavegame"] = "popup_leavegame";

if(level.splitscreen)
{
game["menu_team"] += "_splitscreen";
game["menu_class_allies"] += "_splitscreen";
game["menu_changeclass_allies"] += "_splitscreen";
game["menu_class_axis"] += "_splitscreen";
game["menu_changeclass_axis"] += "_splitscreen";
game["menu_class"] += "_splitscreen";
game["menu_controls"] += "_splitscreen";
//game["menu_options"] += "_splitscreen";
game["menu_leavegame"] += "_splitscreen";
game["menu_onemanarmy"] += "_splitscreen";

game["menu_changeclass_defaults_splitscreen"] = "changeclass_defaults_splitscreen";
game["menu_changeclass_custom_splitscreen"] = "changeclass_custom_splitscreen";
game["menu_onemanarmy_defaults_splitscreen"] = "onemanarmy_defaults_splitscreen";
game["menu_onemanarmy_custom_splitscreen"] = "onemanarmy_custom_splitscreen";

precacheMenu(game["menu_changeclass_defaults_splitscreen"]);
precacheMenu(game["menu_changeclass_custom_splitscreen"]);
precacheMenu(game["menu_onemanarmy_defaults_splitscreen"]);
precacheMenu(game["menu_onemanarmy_custom_splitscreen"]);
}

precacheMenu(game["menu_controls"]);
//precacheMenu(game["menu_options"]);
precacheMenu(game["menu_leavegame"]);

//precacheMenu("status_update");
}

precacheMenu("scoreboard");
precacheMenu(game["menu_team"]);
precacheMenu(game["menu_class_allies"]);
precacheMenu(game["menu_changeclass_allies"]);
precacheMenu(game["menu_initteam_allies"]);
precacheMenu(game["menu_class_axis"]);
precacheMenu(game["menu_changeclass_axis"]);
precacheMenu(game["menu_class"]);
precacheMenu(game["menu_changeclass"]);
precacheMenu(game["menu_initteam_axis"]);
precacheMenu(game["menu_onemanarmy"]);

precacheString( &"MP_HOST_ENDED_GAME" );
precacheString( &"MP_HOST_ENDGAME_RESPONSE" );
}

level thread onPlayerConnect();
}

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

player thread onMenuResponse();
}
}

onMenuResponse()
{
self endon("disconnect");

for(;Winky Winky
{
self waittill("menuresponse", menu, response);

if ( response == "back" )
{
self closepopupMenu();
self closeInGameMenu();

if ( level.console )
{
if ( menu == game["menu_changeclass"] ||
menu == game["menu_team"] ||
menu == game["menu_controls"] ||
( isDefined( game["menu_changeclass_defaults_splitscreen"] ) && menu == game["menu_changeclass_defaults_splitscreen"] ) ||
( isDefined( game["menu_changeclass_custom_splitscreen"] ) && menu == game["menu_changeclass_custom_splitscreen"] ) )
{
if( self.pers["team"] == "allies" )
self openpopupMenu( game["menu_class_allies"] );
if( self.pers["team"] == "axis" )
self openpopupMenu( game["menu_class_axis"] );
}
}
continue;
}

if(response == "changeteam")
{
self closepopupMenu();
self closeInGameMenu();
self openpopupMenu(game["menu_team"]);
}

if(response == "changeclass_marines" )
{
self closepopupMenu();
self closeInGameMenu();
self openpopupMenu( game["menu_changeclass_allies"] );
continue;
}

if(response == "changeclass_opfor" )
{
self closepopupMenu();
self closeInGameMenu();
self openpopupMenu( game["menu_changeclass_axis"] );
continue;
}

if(response == "changeclass_marines_splitscreen" )
self openpopupMenu( "changeclass_marines_splitscreen" );

if(response == "changeclass_opfor_splitscreen" )
self openpopupMenu( "changeclass_opfor_splitscreen" );

if(response == "endgame")
{
if(level.splitscreen)
{
endparty();

if ( !level.gameEnded )
{
level thread maps\mp\gametypes\_gamelogic::forceEnd();
}
}

continue;
}

if ( response == "endround" )
{
if ( !level.gameEnded )
{
level thread maps\mp\gametypes\_gamelogic::forceEnd();
}
else
{
self closepopupMenu();
self closeInGameMenu();
self iprintln( &"MP_HOST_ENDGAME_RESPONSE" );
}
continue;
}

if(menu == game["menu_team"])
{
switch(response)
{
case "allies":
self [[level.allies]]();
break;

case "axis":
self [[level.axis]]();
break;

case "autoassign":
self [[level.autoassign]]();
break;

case "spectator":
self [[level.spectator]]();
break;
}
} // the only responses remain are change class events
else if ( menu == game["menu_changeclass"] ||
( isDefined( game["menu_changeclass_defaults_splitscreen"] ) && menu == game["menu_changeclass_defaults_splitscreen"] ) ||
( isDefined( game["menu_changeclass_custom_splitscreen"] ) && menu == game["menu_changeclass_custom_splitscreen"] ) )
{
self closepopupMenu();
self closeInGameMenu();

self.selectedClass = true;
self [[level.class]](response);
}
else if ( !level.console )
{
if(menu == game["menu_quickcommands"])
maps\mp\gametypes\_quickmessages::quickcommands(re sponse);
else if(menu == game["menu_quickstatements"])
maps\mp\gametypes\_quickmessages::quickstatements( response);
else if(menu == game["menu_quickresponses"])
maps\mp\gametypes\_quickmessages::quickresponses(r esponse);
}
}
}


getTeamAssignment()
{
teams[0] = "allies";
teams[1] = "axis";

if ( !level.teamBased )
return teams[randomInt(2)];

if ( self.sessionteam != "none" && self.sessionteam != "spectator" && self.sessionstate != "playing" && self.sessionstate != "dead" )
{
assignment = self.sessionteam;
}
else
{
playerCounts = self maps\mp\gametypes\_teams::CountPlayers();

// if teams are equal return the team with the lowest score
if ( playerCounts["allies"] == playerCounts["axis"] )
{
if( getTeamScore( "allies" ) == getTeamScore( "axis" ) )
assignment = teams[randomInt(2)];
else if ( getTeamScore( "allies" ) < getTeamScore( "axis" ) )
assignment = "allies";
else
assignment = "axis";
}
else if( playerCounts["allies"] < playerCounts["axis"] )
{
assignment = "allies";
}
else
{
assignment = "axis";
}
}

return assignment;
}


menuAutoAssign()
{
self closeMenus();

assignment = getTeamAssignment();

if ( isDefined( self.pers["team"] ) && (self.sessionstate == "playing" || self.sessionstate == "dead") )
{
if ( assignment == self.pers["team"] )
{
self beginClassChoice();
return;
}
else
{
self.switching_teams = true;
self.joining_team = assignment;
self.leaving_team = self.pers["team"];
//self suicide();
}
}

self addToTeam( assignment );
self.pers["class"] = undefined;
self.class = undefined;

if ( !isAlive( self ) )
self.statusicon = "hud_status_dead";

self notify("end_respawn");

self beginClassChoice();
}


beginClassChoice( forceNewChoice )
{
assert( self.pers["team"] == "axis" || self.pers["team"] == "allies" );

team = self.pers["team"];

// menu_changeclass_team is the one where you choose one of the n classes to play as.
// menu_class_team is where you can choose to change your team, class, controls, or leave game.
self openpopupMenu( game[ "menu_changeclass_" + team ] );

if ( !isAlive( self ) )
self thread maps\mp\gametypes\_playerlogic::predictAboutToSpaw nPlayerOverTime( 0.1 );
}


beginTeamChoice()
{
self openpopupMenu( game["menu_team"] );
}


showMainMenuForTeam()
{
assert( self.pers["team"] == "axis" || self.pers["team"] == "allies" );

team = self.pers["team"];

// menu_changeclass_team is the one where you choose one of the n classes to play as.
// menu_class_team is where you can choose to change your team, class, controls, or leave game.
self openpopupMenu( game[ "menu_class_" + team ] );
}

menuAllies()
{
self closeMenus();

if(self.pers["team"] != "allies")
{
if( level.teamBased && !maps\mp\gametypes\_teams::getJoinTeamPermissions( "allies" ) )
{
self openpopupMenu(game["menu_team"]);
return;
}

// allow respawn when switching teams during grace period.
if ( level.inGracePeriod && !self.hasDoneCombat )
self.hasSpawned = false;

if(self.sessionstate == "playing")
{
self.switching_teams = true;
self.joining_team = "allies";
self.leaving_team = self.pers["team"];
//self suicide();
}

self addToTeam( "allies" );
self.pers["class"] = undefined;
self.class = undefined;

self notify("end_respawn");
}

self beginClassChoice();
}


menuAxis()
{
self closeMenus();

if(self.pers["team"] != "axis")
{
if( level.teamBased && !maps\mp\gametypes\_teams::getJoinTeamPermissions( "axis" ) )
{
self openpopupMenu(game["menu_team"]);
return;
}

// allow respawn when switching teams during grace period.
if ( level.inGracePeriod && !self.hasDoneCombat )
self.hasSpawned = false;

if(self.sessionstate == "playing")
{
self.switching_teams = true;
self.joining_team = "axis";
self.leaving_team = self.pers["team"];
self suicide();
}

self addToTeam( "axis" );
self.pers["class"] = undefined;
self.class = undefined;

self notify("end_respawn");
}

self beginClassChoice();
}


menuSpectator()
{
self closeMenus();

if( isDefined( self.pers["team"] ) && self.pers["team"] == "spectator" )
return;

if( isAlive( self ) )
{
assert( isDefined( self.pers["team"] ) );
self.switching_teams = true;
self.joining_team = "spectator";
self.leaving_team = self.pers["team"];
//self suicide();
}

self addToTeam( "spectator" );
self.pers["class"] = undefined;
self.class = undefined;

self thread maps\mp\gametypes\_playerlogic::spawnSpectator();
}


menuClass( response )
{
self closeMenus();

// clear new status of unlocked classes
if ( response == "demolitions_mp,0" && self getPlayerData( "featureNew", "demolitions" ) )
{
self setPlayerData( "featureNew", "demolitions", false );
}
if ( response == "sniper_mp,0" && self getPlayerData( "featureNew", "sniper" ) )
{
self setPlayerData( "featureNew", "sniper", false );
}

// this should probably be an assert
if(!isDefined(self.pers["team"]) || (self.pers["team"] != "allies" && self.pers["team"] != "axis"))
return;

class = self maps\mp\gametypes\_class::getClassChoice( response );
primary = self maps\mp\gametypes\_class::getWeaponChoice( response );

if ( class == "restricted" )
{
self beginClassChoice();
return;
}

if( (isDefined( self.pers["class"] ) && self.pers["class"] == class) &&
(isDefined( self.pers["primary"] ) && self.pers["primary"] == primary) )
return;

if ( self.sessionstate == "playing" )
{
self.pers["class"] = class;
self.class = class;
self.pers["primary"] = primary;

if ( game["state"] == "postgame" )
return;

if ( level.inGracePeriod && !self.hasDoneCombat ) // used weapons check?
{
self maps\mp\gametypes\_class::setClass( self.pers["class"] );
self.tag_stowed_back = undefined;
self.tag_stowed_hip = undefined;
self maps\mp\gametypes\_class::giveLoadout( self.pers["team"], self.pers["class"] );
}
else
{
self iPrintLnBold( game["strings"]["change_class"] );
}
}
else
{
self.pers["class"] = class;
self.class = class;
self.pers["primary"] = primary;

if ( game["state"] == "postgame" )
return;

if ( game["state"] == "playing" && !isInKillcam() )
self thread maps\mp\gametypes\_playerlogic::spawnClient();
}

self thread maps\mp\gametypes\_spectating::setSpectatePermissi ons();
}



addToTeam( team, firstConnect )
{
// UTS update playerCount remove from team
if ( isDefined( self.team ) )
self maps\mp\gametypes\_playerlogic::removeFromTeamCoun t();

self.pers["team"] = team;
// this is the only place self.team should ever be set
self.team = team;

// session team is readonly in ranked matches on console
if ( !matchMakingGame() || isDefined( self.pers["isBot"] ) )
{
if ( level.teamBased )
{
self.sessionteam = team;
}
else
{
if ( team == "spectator" )
self.sessionteam = "spectator";
else
self.sessionteam = "none";
}
}

// UTS update playerCount add to team
if ( game["state"] != "postgame" )
self maps\mp\gametypes\_playerlogic::addToTeamCount();

self updateObjectiveText();

// give "joined_team" and "joined_spectators" handlers a chance to start
// these are generally triggered from the "connected" notify, which can happen on the same
// frame as these notifies
if ( isDefined( firstConnect ) && firstConnect )
waittillframeend;

self updateMainMenu();

if ( team == "spectator" )
{
self notify( "joined_spectators" );
level notify( "joined_team" );
}
else
{
self notify( "joined_team" );
level notify( "joined_team" );
}
}



CREDITS:

###################
MAIN
###################

rothebeast - Menu Base & Patch, AToMiC NiTRo v1, and PAN Gamemode

CraigChrist8239 & KBrizzle - Button Handling And Being Geniuses

ITheFallenI - Inspiration and his v2.6.9

xePixTVx/xFuZiiON_x3 - Being My Bro, his v13 patch, inspiration, and some codes

HepticOnline/Hep-tic - Testing, Ideas, Codes, Being My Niglet, and Recording

jmacias/Tech-Nas - Being My Nigweeeee Happy

*******************************************
OTHER
*******************************************

TheUnkn0wn
Hunter128
Amanda
x_DaftVader_x
PREMIER-GAMER
EliteMossy
DEREKTROTTER
aerosoul94
InfinityWard
FourDeltaOne
Rendflex
247Yamato
xYARDSALEx
xxKILLALLMW2xx
Blackstorm
Vampytwist
seb5594
T_m_b07
Cmd-X


Download:

You must login or register to view this content.


WHITE TEXT COLOR (Changed due to visibility issues) :

You must login or register to view this content.


Great Job Smile
12-27-2012, 01:51 AM #28
Seem to impress me everytime ro, Keep it up!

The following user thanked WadeModz for this useful post:

Master Ro

Copyright © 2026, NextGenUpdate.
All Rights Reserved.

Gray NextGenUpdate Logo