Posts: 474
Threads: 67
Joined: May 2011
Reputation:
11
this is on W@W mind you, but I am guessing it works in a similar way, though the CAC DISABLE dvar doesnt do the job.
Basically I want to set a default class so the player spawns, then change its weapons.
Posts: 1,741
Threads: 93
Joined: Mar 2012
Reputation:
26
Why not OnPlayerConnect select the menu for choose class -> default class -> OnPlayerSpawned -> Take all weapons -> Give weapons ??
Do not take life too seriously. You will never get out of it alive.
Posts: 5,135
Threads: 241
Joined: Nov 2010
Reputation:
100
I believe the default loadout can be changed in one of the .csv files.
Posts: 474
Threads: 67
Joined: May 2011
Reputation:
11
01-12-2013, 18:28
(This post was last modified: 01-12-2013, 18:30 by koil.)
i dont want them to have to choose a default class..
and pozz, its not that i dont want them to have a specific default class, its the fact that they just dont spawn until they choose one in the menu.
Posts: 1,741
Threads: 93
Joined: Mar 2012
Reputation:
26
"Basically I want to set a default class so the player spawns, then change its weapons."
so you want to change the classtable.csv? (Well that's the name for it in MW2)
Do not take life too seriously. You will never get out of it alive.
Posts: 5,135
Threads: 241
Joined: Nov 2010
Reputation:
100
Just edit the gsc files that are used to open the menus.. Or edit the menus themselves.
Posts: 474
Threads: 67
Joined: May 2011
Reputation:
11
yeah i guess ill try using the script responses from default classes and see how it go's if there is no replys when i get up, thanks pozzuh
Posts: 474
Threads: 67
Joined: May 2011
Reputation:
11
shouldnt
scriptMenuResponse "specops_mp,0";
scriptMenuResponse "open_gunmenu";
work? it doesnt seem to spawn me.
Posts: 5,135
Threads: 241
Joined: Nov 2010
Reputation:
100
You probably need another scriptMenuResponse after that, to actually spawn you. You can probably find it in _menus.gsc.
Posts: 474
Threads: 67
Joined: May 2011
Reputation:
11
01-13-2013, 12:10
(This post was last modified: 01-13-2013, 12:11 by koil.)
yah i looked for that, there is no spawn onmenuresponses in there.. which is confusing ; /
Code: init()
{
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_changeclass_offline"] = "changeclass_offline";
if ( !level.console )
{
game["menu_callvote"] = "callvote";
game["menu_muteplayer"] = "muteplayer";
precacheMenu(game["menu_callvote"]);
precacheMenu(game["menu_muteplayer"]);
// ---- back up one folder to access game_summary.menu ----
// game summary menu file precache
game["menu_eog_main"] = "endofgame";
// menu names (do not precache since they are in game_summary_ingame which should be precached
game["menu_eog_unlock"] = "popup_unlock";
game["menu_eog_summary"] = "popup_summary";
game["menu_eog_unlock_page1"] = "popup_unlock_page1";
game["menu_eog_unlock_page2"] = "popup_unlock_page2";
precacheMenu(game["menu_eog_main"]);
precacheMenu(game["menu_eog_unlock"]);
precacheMenu(game["menu_eog_summary"]);
precacheMenu(game["menu_eog_unlock_page1"]);
precacheMenu(game["menu_eog_unlock_page2"]);
}
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_changeclass"] += "_splitscreen";
game["menu_controls"] += "_splitscreen";
game["menu_options"] += "_splitscreen";
game["menu_leavegame"] += "_splitscreen";
}
precacheMenu(game["menu_controls"]);
precacheMenu(game["menu_options"]);
precacheMenu(game["menu_leavegame"]);
}
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_changeclass_offline"]);
precacheString( &"MP_HOST_ENDED_GAME" );
precacheString( &"MP_HOST_ENDGAME_RESPONSE" );
level thread onPlayerConnect();
}
onPlayerConnect()
{
for(;;)
{
level waittill("connecting", player);
player setClientDvar("ui_3dwaypointtext", "1");
player.enable3DWaypoints = true;
player setClientDvar("ui_deathicontext", "1");
player.enableDeathIcons = true;
player thread onMenuResponse();
}
}
onMenuResponse()
{
self endon("disconnect");
for(;;)
{
self waittill("menuresponse", menu, response);
//println( self getEntityNumber() + " menuresponse: " + menu + " " + response );
//iprintln("^6", response);
/*if(response == "open_changeclass_menu" )
{
if( getDvarInt( "onlinegame" ) )
self openMenu( "changeclass" );
else
self openMenu( "changeclass_offline" );
}
*/
if ( response == "back" )
{
self closeMenu();
self closeInGameMenu();
if ( level.console )
{
if( menu == game["menu_changeclass"] || menu == game["menu_changeclass_offline"] || menu == game["menu_team"] || menu == game["menu_controls"] )
{
// assert(self.pers["team"] == "allies" || self.pers["team"] == "axis");
if( self.pers["team"] == "allies" )
self openMenu( game["menu_class_allies"] );
if( self.pers["team"] == "axis" )
self openMenu( game["menu_class_axis"] );
}
else if ( menu == "class" )
{
self [[level.showsquadinfo]]();
}
}
continue;
}
if(response == "showsquadinfo")
{
self [[level.showsquadinfo]]();
}
if(response == "leavesquad")
{
self closeMenu();
self [[level.leavesquad]]();
}
if(response == "joinsquad")
{
self [[level.joinsquad]]();
}
if(response == "createsquad")
{
self [[level.createsquad]]();
}
if(response == "locksquad")
{
self closeMenu();
self [[level.locksquad]]();
}
if(response == "unlocksquad")
{
self closeMenu();
self [[level.unlocksquad]]();
}
if(response == "changeteam")
{
self closeMenu();
self closeInGameMenu();
self openMenu(game["menu_team"]);
}
if(response == "changeclass_marines" )
{
self closeMenu();
self closeInGameMenu();
self openMenu( game["menu_changeclass_allies"] );
continue;
}
if(response == "changeclass_opfor" )
{
self closeMenu();
self closeInGameMenu();
self openMenu( game["menu_changeclass_axis"] );
continue;
}
if(response == "changeclass_marines_splitscreen" )
self openMenu( "changeclass_marines_splitscreen" );
if(response == "changeclass_opfor_splitscreen" )
self openMenu( "changeclass_opfor_splitscreen" );
// rank update text options
if(response == "xpTextToggle")
{
self.enableText = !self.enableText;
if (self.enableText)
self setClientDvar( "ui_xpText", "1" );
else
self setClientDvar( "ui_xpText", "0" );
continue;
}
// 3D Waypoint options
if(response == "waypointToggle")
{
self.enable3DWaypoints = !self.enable3DWaypoints;
if (self.enable3DWaypoints)
self setClientDvar( "ui_3dwaypointtext", "1" );
else
self setClientDvar( "ui_3dwaypointtext", "0" );
// self maps\mp\gametypes\_objpoints::updatePlayerObjpoints();
continue;
}
// 3D death icon options
if(response == "deathIconToggle")
{
self.enableDeathIcons = !self.enableDeathIcons;
if (self.enableDeathIcons)
self setClientDvar( "ui_deathicontext", "1" );
else
self setClientDvar( "ui_deathicontext", "0" );
self maps\mp\gametypes\_deathicons::updateDeathIconsEnabled();
continue;
}
if(response == "endgame")
{
// TODO: replace with onSomethingEvent call
if(level.splitscreen)
{
if ( level.console )
endparty();
level.skipVote = true;
if ( !level.gameEnded )
{
level thread maps\mp\gametypes\_globallogic::forceEnd();
}
}
continue;
}
if ( response == "endround" && level.console )
{
if ( !level.gameEnded )
{
level thread maps\mp\gametypes\_globallogic::forceEnd();
}
else
{
self closeMenu();
self closeInGameMenu();
self iprintln( &"MP_HOST_ENDGAME_RESPONSE" );
}
continue;
}
if(menu == game["menu_team"])
{
switch(response)
{
case "allies":
//self closeMenu();
//self closeInGameMenu();
self [[level.leavesquad]]();
self [[level.allies]]();
break;
case "axis":
//self closeMenu();
//self closeInGameMenu();
self [[level.leavesquad]]();
self [[level.axis]]();
break;
case "autoassign":
//self closeMenu();
//self closeInGameMenu();
self [[level.leavesquad]]();
self [[level.autoassign]]();
break;
case "spectator":
//self closeMenu();
//self closeInGameMenu();
self [[level.leavesquad]]();
self [[level.spectator]]();
break;
}
} // the only responses remain are change class events
else if( menu == game["menu_changeclass"] || menu == game["menu_changeclass_offline"] )
{
self closeMenu();
self closeInGameMenu();
self.selectedClass = true;
self [[level.class]](response);
}
else if ( !level.console )
{
if(menu == game["menu_quickcommands"])
maps\mp\gametypes\_quickmessages::quickcommands(response);
else if(menu == game["menu_quickstatements"])
maps\mp\gametypes\_quickmessages::quickstatements(response);
else if(menu == game["menu_quickresponses"])
maps\mp\gametypes\_quickmessages::quickresponses(response);
}
// ======== catching response for create-a-class events ========
/*
responseTok = strTok( response, "," );
if( isdefined( responseTok ) && responseTok.size > 1 )
{
if( responseTok[0] == "primary" )
{
// primary weapon selection
assertex( responseTok.size != 2, "Primary weapon selection in create-a-class-ingame is sending bad response:" + response );
stat_offset = cacMenuStatOffset( menu, response );
self setstat( stat_offset+201, ( int( tableLookup( "mp/statsTable.csv", 4, responseTok[1], 1 ) ) - 3000 ) );
}
else if( responseTok[0] == "attachment" )
{
// primary or secondary weapon attachment selection
assertex( responseTok.size != 3, "Weapon attachment selection in create-a-class-ingame is sending bad response:" + response );
stat_offset = cacMenuStatOffset( menu, response );
if( responseTok[1] == "primary" )
self setstat( stat_offset+202, int( tableLookup( "mp/attachmentTable.csv", 4, responseTok[2], 9 ) ) );
else if( responseTok[1] == "secondary" )
self setstat( stat_offset+204, int( tableLookup( "mp/attachmentTable.csv", 4, responseTok[2], 9 ) ) );
}
else if( responseTok[0] == "secondary" )
{
// secondary weapon selection
assertex( responseTok.size != 2, "Secondary weapon selection in create-a-class-ingame is sending bad response:" + response );
stat_offset = cacMenuStatOffset( menu, response );
self setstat( stat_offset+203, ( int( tableLookup( "mp/statsTable.csv", 4, responseTok[1], 1 ) ) - 3000 ) );
}
else if( responseTok[0] == "perk" )
{
// all 3 perks selection
assertex( responseTok.size != 3, "Perks selection in create-a-class-ingame is sending bad response:" + response );
stat_offset = cacMenuStatOffset( menu, response );
self setstat( stat_offset+200+int(responseTok[1]), int( tableLookup( "mp/statsTable.csv", 4, responseTok[2], 1 ) ) );
}
else if( responseTok[0] == "sgrenade" )
{
assertex( responseTok.size != 2, "Special grenade selection in create-a-class-ingame is sending bad response:" + response );
stat_offset = cacMenuStatOffset( menu, response );
self setstat( stat_offset+208, ( int( tableLookup( "mp/statsTable.csv", 4, responseTok[1], 1 ) ) - 3000 ) );
}
else if( responseTok[0] == "camo" )
{
assertex( responseTok.size != 2, "Primary weapon camo skin selection in create-a-class-ingame is sending bad response:" + response );
stat_offset = cacMenuStatOffset( menu, response );
self setstat( stat_offset+209, int( tableLookup( "mp/attachmentTable.csv", 4, responseTok[2], 11 ) ) );
}
}
*/
}
}
/*
// sort response message from CAC menu
cacMenuStatOffset( menu, response )
{
stat_offset = -1;
if( menu == "menu_cac_assault" )
stat_offset = 0;
else if( menu == "menu_cac_specops" )
stat_offset = 10;
else if( menu == "menu_cac_heavygunner" )
stat_offset = 20;
else if( menu == "menu_cac_demolitions" )
stat_offset = 30;
else if( menu == "menu_cac_sniper" )
stat_offset = 40;
assertex( stat_offset >= 0, "The response: " + response + " came from non-CAC menu" );
return stat_offset;
}
*/
|