Fix rank on multiround

This commit is contained in:
ineed bots 2022-10-21 16:51:11 -06:00
parent 1bf15398c0
commit 90f4b5d561
2 changed files with 50 additions and 21 deletions

View File

@ -594,13 +594,14 @@ connected()
if ( !isDefined( self.pers["isBotWarfare"] ) ) if ( !isDefined( self.pers["isBotWarfare"] ) )
{ {
self.pers["isBotWarfare"] = true; self.pers["isBotWarfare"] = true;
self thread added();
} }
self thread teamWatch(); self thread teamWatch();
self thread classWatch(); self thread classWatch();
self thread onBotSpawned(); self thread onBotSpawned();
self thread setPrestige(); self thread setRanks();
} }
/* /*
@ -716,15 +717,37 @@ watch_for_override_stuff()
/* /*
Set pres Set pres
*/ */
setPrestige() setRanks()
{ {
self endon( "disconnect" );
wait 0.05; wait 0.05;
if ( isDefined( self.pers[ "bot_prestige" ] ) ) self setCustomRanks();
{
self.pers[ "prestige" ] = self.pers[ "bot_prestige" ]; if ( !level.gameEnded )
self setRank( self.pers[ "rank" ], self.pers[ "prestige" ] ); level waittill( "game_ended" );
self.pers[ "bot_rankxp" ] = self.pers[ "rankxp" ];
} }
/*
Sets the rank
*/
setCustomRanks()
{
if ( !isDefined( self.pers[ "bot_prestige" ] ) )
return;
self.pers[ "prestige" ] = self.pers[ "bot_prestige" ];
self.pers[ "plevel" ] = self.pers[ "bot_prestige" ];
self.pers[ "rankxp" ] = self.pers[ "bot_rankxp" ];
self.pers[ "rank" ] = self maps\mp\gametypes\_rank::getRankForXp( self.pers[ "rankxp" ] );
self setRank( self.pers[ "rank" ], self.pers[ "prestige" ] );
self maps\mp\gametypes\_rank::syncxpstat();
} }
/* /*
@ -739,7 +762,10 @@ teamWatch()
while ( !isdefined( self.team ) || !allowTeamChoice() ) while ( !isdefined( self.team ) || !allowTeamChoice() )
wait .05; wait .05;
wait 0.05; wait 0.1;
// multiteam?
if ( self.team != "axis" && self.team != "allies" )
self notify( "menuresponse", game["menu_team"], getDvar( "bots_team" ) ); self notify( "menuresponse", game["menu_team"], getDvar( "bots_team" ) );
while ( isdefined( self.team ) ) while ( isdefined( self.team ) )
@ -761,11 +787,12 @@ classWatch()
wait 0.5; wait 0.5;
if ( !maps\mp\gametypes\_globallogic_utils::isValidClass( self.class ) || !isDefined( self.bot_change_class ) )
self notify( "menuresponse", game["menu_changeclass"], self chooseRandomClass() ); self notify( "menuresponse", game["menu_changeclass"], self chooseRandomClass() );
self.bot_change_class = true; self.bot_change_class = true;
while ( isdefined( self.team ) && isdefined( self.class ) && isDefined( self.bot_change_class ) ) while ( isdefined( self.team ) && maps\mp\gametypes\_globallogic_utils::isValidClass( self.class ) && isDefined( self.bot_change_class ) )
wait .05; wait .05;
} }
} }
@ -838,31 +865,31 @@ doCustomRank()
{ {
self endon( "disconnect" ); self endon( "disconnect" );
// prevent generating classes
if ( getDvarInt( "bots_loadout_rank" ) != -1 ) if ( getDvarInt( "bots_loadout_rank" ) != -1 )
self.pers[ "bot_loadout" ] = true; self.pers[ "bot_loadout" ] = true;
// wait for the original scripts to execute
wait 0.25; wait 0.25;
rank = self.pers[ "rank" ]; // get rank
rankxp = self.pers[ "rankxp" ];
if ( getDvarInt( "bots_loadout_rank" ) != -1 ) if ( getDvarInt( "bots_loadout_rank" ) != -1 )
{ {
if ( getDvarInt( "bots_loadout_rank" ) == 0 ) if ( getDvarInt( "bots_loadout_rank" ) == 0 )
rank = randomInt( level.maxrank + 1 ); rankxp = maps\mp\gametypes\_rank::getrankinfominxp( randomInt( level.maxrank + 1 ) );
else else
rank = getDvarInt( "bots_loadout_rank" ); rankxp = maps\mp\gametypes\_rank::getrankinfominxp( getDvarInt( "bots_loadout_rank" ) );
} }
// apply
self.pers[ "bot_prestige" ] = bot_get_prestige(); self.pers[ "bot_prestige" ] = bot_get_prestige();
self.pers[ "bot_rankxp" ] = rankxp;
self.pers[ "prestige" ] = self.pers[ "bot_prestige" ]; self setCustomRanks();
self.pers[ "rank" ] = rank;
self.pers[ "rankxp" ] = maps\mp\gametypes\_rank::getrankinfominxp( rank );
self setRank( self.pers[ "rank" ], self.pers[ "prestige" ] );
self maps\mp\gametypes\_rank::syncxpstat();
// generate the custom classes
if ( getDvarInt( "bots_loadout_rank" ) != -1 ) if ( getDvarInt( "bots_loadout_rank" ) != -1 )
{ {
self botsetdefaultclass( 5, "class_assault" ); self botsetdefaultclass( 5, "class_assault" );
@ -880,6 +907,7 @@ doCustomRank()
*/ */
allowClassChoice() allowClassChoice()
{ {
// check gungame?
return true; return true;
} }
@ -888,6 +916,7 @@ allowClassChoice()
*/ */
allowTeamChoice() allowTeamChoice()
{ {
// check gungame?
return true; return true;
} }