mirror of
https://github.com/ineedbots/t4_bot_warfare.git
synced 2025-04-22 16:05:44 +00:00
bots_loadout_rank dvar
This commit is contained in:
parent
0a2ad28468
commit
10751e2e65
@ -123,6 +123,8 @@ Pressing the menu button again closes menus.
|
|||||||
|
|
||||||
- bots_loadout_allow_op - a boolean value (0 or 1), whether or not if the bots are allowed to use jug, marty, etc.
|
- bots_loadout_allow_op - a boolean value (0 or 1), whether or not if the bots are allowed to use jug, marty, etc.
|
||||||
|
|
||||||
|
- bots_loadout_rank - an integer number, bots will be around this rank, -1 is average of all players in game, 0 is all random
|
||||||
|
|
||||||
- bots_play_move - a boolean value (0 or 1), whether or not if the bots will move
|
- bots_play_move - a boolean value (0 or 1), whether or not if the bots will move
|
||||||
- bots_play_knife - a boolean value (0 or 1), whether or not if the bots will use the knife
|
- bots_play_knife - a boolean value (0 or 1), whether or not if the bots will use the knife
|
||||||
- bots_play_fire - a boolean value (0 or 1), whether or not if the bots will fire their weapons
|
- bots_play_fire - a boolean value (0 or 1), whether or not if the bots will fire their weapons
|
||||||
|
@ -60,6 +60,8 @@ init()
|
|||||||
setDvar("bots_loadout_reasonable", false);
|
setDvar("bots_loadout_reasonable", false);
|
||||||
if(getDvar("bots_loadout_allow_op") == "")//allows jug, marty and laststand
|
if(getDvar("bots_loadout_allow_op") == "")//allows jug, marty and laststand
|
||||||
setDvar("bots_loadout_allow_op", true);
|
setDvar("bots_loadout_allow_op", true);
|
||||||
|
if(getDvar("bots_loadout_rank") == "")// what rank the bots should be around, -1 is around the players, 0 is all random
|
||||||
|
setDvar("bots_loadout_rank", -1);
|
||||||
|
|
||||||
if(getDvar("bots_play_move") == "")//bots move
|
if(getDvar("bots_play_move") == "")//bots move
|
||||||
setDvar("bots_play_move", true);
|
setDvar("bots_play_move", true);
|
||||||
|
@ -815,48 +815,62 @@ get_random_weapon(groups, rank)
|
|||||||
*/
|
*/
|
||||||
bot_get_rank()
|
bot_get_rank()
|
||||||
{
|
{
|
||||||
ranks = [];
|
rank = 1;
|
||||||
bot_ranks = [];
|
rank_dvar = getDvarInt("bots_loadout_rank");
|
||||||
human_ranks = [];
|
|
||||||
|
|
||||||
for ( i = level.players.size - 1; i >= 0; i-- )
|
if (rank_dvar == -1)
|
||||||
{
|
{
|
||||||
player = level.players[i];
|
ranks = [];
|
||||||
|
bot_ranks = [];
|
||||||
|
human_ranks = [];
|
||||||
|
|
||||||
if ( player == self )
|
for ( i = level.players.size - 1; i >= 0; i-- )
|
||||||
continue;
|
|
||||||
|
|
||||||
if ( !IsDefined( player.pers[ "rank" ] ) )
|
|
||||||
continue;
|
|
||||||
|
|
||||||
if ( player is_bot() )
|
|
||||||
{
|
{
|
||||||
bot_ranks[ bot_ranks.size ] = player.pers[ "rank" ];
|
player = level.players[i];
|
||||||
|
|
||||||
|
if ( player == self )
|
||||||
|
continue;
|
||||||
|
|
||||||
|
if ( !IsDefined( player.pers[ "rank" ] ) )
|
||||||
|
continue;
|
||||||
|
|
||||||
|
if ( player is_bot() )
|
||||||
|
{
|
||||||
|
bot_ranks[ bot_ranks.size ] = player.pers[ "rank" ];
|
||||||
|
}
|
||||||
|
else
|
||||||
|
{
|
||||||
|
human_ranks[ human_ranks.size ] = player.pers[ "rank" ];
|
||||||
|
}
|
||||||
}
|
}
|
||||||
else
|
|
||||||
|
if( !human_ranks.size )
|
||||||
|
human_ranks[ human_ranks.size ] = Round( random_normal_distribution( 35, 15, 0, level.maxRank ) );
|
||||||
|
|
||||||
|
human_avg = array_average( human_ranks );
|
||||||
|
|
||||||
|
while ( bot_ranks.size + human_ranks.size < 5 )
|
||||||
{
|
{
|
||||||
human_ranks[ human_ranks.size ] = player.pers[ "rank" ];
|
// add some random ranks for better random number distribution
|
||||||
|
rank = human_avg + RandomIntRange( -10, 10 );
|
||||||
|
human_ranks[ human_ranks.size ] = rank;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
ranks = array_combine( human_ranks, bot_ranks );
|
||||||
|
|
||||||
|
avg = array_average( ranks );
|
||||||
|
s = array_std_deviation( ranks, avg );
|
||||||
|
|
||||||
|
rank = Round( random_normal_distribution( avg, s, 0, level.maxRank ) );
|
||||||
}
|
}
|
||||||
|
else if (rank_dvar == 0)
|
||||||
if( !human_ranks.size )
|
|
||||||
human_ranks[ human_ranks.size ] = Round( random_normal_distribution( 35, 15, 0, level.maxRank ) );
|
|
||||||
|
|
||||||
human_avg = array_average( human_ranks );
|
|
||||||
|
|
||||||
while ( bot_ranks.size + human_ranks.size < 5 )
|
|
||||||
{
|
{
|
||||||
// add some random ranks for better random number distribution
|
rank = Round( random_normal_distribution( 35, 15, 0, level.maxRank ) );
|
||||||
rank = human_avg + RandomIntRange( -10, 10 );
|
}
|
||||||
human_ranks[ human_ranks.size ] = rank;
|
else
|
||||||
|
{
|
||||||
|
rank = Round( random_normal_distribution( rank_dvar, 5, 0, level.maxRank ) );
|
||||||
}
|
}
|
||||||
|
|
||||||
ranks = array_combine( human_ranks, bot_ranks );
|
|
||||||
|
|
||||||
avg = array_average( ranks );
|
|
||||||
s = array_std_deviation( ranks, avg );
|
|
||||||
|
|
||||||
rank = Round( random_normal_distribution( avg, s, 0, level.maxRank ) );
|
|
||||||
|
|
||||||
return maps\mp\gametypes\_rank::getRankInfoMinXP( rank );
|
return maps\mp\gametypes\_rank::getRankInfoMinXP( rank );
|
||||||
}
|
}
|
||||||
|
Loading…
x
Reference in New Issue
Block a user