mirror of
https://github.com/ineedbots/iw2_bot_warfare.git
synced 2025-04-19 14:22:54 +00:00
casing fixes
This commit is contained in:
parent
0734762e24
commit
0fc52265a4
@ -6,131 +6,131 @@
|
||||
*/
|
||||
init()
|
||||
{
|
||||
level.bw_VERSION = "2.1.0";
|
||||
level.bw_version = "2.1.0";
|
||||
|
||||
if ( getCvar( "bots_main" ) == "" )
|
||||
setCvar( "bots_main", true );
|
||||
if ( getcvar( "bots_main" ) == "" )
|
||||
setcvar( "bots_main", true );
|
||||
|
||||
if ( !getCvarInt( "bots_main" ) )
|
||||
if ( !getcvarint( "bots_main" ) )
|
||||
return;
|
||||
|
||||
if ( !wait_for_builtins() )
|
||||
PrintLn( "FATAL: NO BUILT-INS FOR BOTS" );
|
||||
println( "FATAL: NO BUILT-INS FOR BOTS" );
|
||||
|
||||
thread load_waypoints();
|
||||
thread hook_callbacks();
|
||||
|
||||
if ( getCvar( "bots_main_GUIDs" ) == "" )
|
||||
setCvar( "bots_main_GUIDs", "" ); //guids of players who will be given host powers, comma seperated
|
||||
if ( getcvar( "bots_main_GUIDs" ) == "" )
|
||||
setcvar( "bots_main_GUIDs", "" ); //guids of players who will be given host powers, comma seperated
|
||||
|
||||
if ( getCvar( "bots_main_firstIsHost" ) == "" )
|
||||
setCvar( "bots_main_firstIsHost", true ); //first player to connect is a host
|
||||
if ( getcvar( "bots_main_firstIsHost" ) == "" )
|
||||
setcvar( "bots_main_firstIsHost", true ); //first player to connect is a host
|
||||
|
||||
if ( getCvar( "bots_main_waitForHostTime" ) == "" )
|
||||
setCvar( "bots_main_waitForHostTime", 10.0 ); //how long to wait to wait for the host player
|
||||
if ( getcvar( "bots_main_waitForHostTime" ) == "" )
|
||||
setcvar( "bots_main_waitForHostTime", 10.0 ); //how long to wait to wait for the host player
|
||||
|
||||
if ( getCvar( "bots_main_kickBotsAtEnd" ) == "" )
|
||||
setCvar( "bots_main_kickBotsAtEnd", false ); //kicks the bots at game end
|
||||
if ( getcvar( "bots_main_kickBotsAtEnd" ) == "" )
|
||||
setcvar( "bots_main_kickBotsAtEnd", false ); //kicks the bots at game end
|
||||
|
||||
if ( getCvar( "bots_manage_add" ) == "" )
|
||||
setCvar( "bots_manage_add", 0 ); //amount of bots to add to the game
|
||||
if ( getcvar( "bots_manage_add" ) == "" )
|
||||
setcvar( "bots_manage_add", 0 ); //amount of bots to add to the game
|
||||
|
||||
if ( getCvar( "bots_manage_fill" ) == "" )
|
||||
setCvar( "bots_manage_fill", 0 ); //amount of bots to maintain
|
||||
if ( getcvar( "bots_manage_fill" ) == "" )
|
||||
setcvar( "bots_manage_fill", 0 ); //amount of bots to maintain
|
||||
|
||||
if ( getCvar( "bots_manage_fill_spec" ) == "" )
|
||||
setCvar( "bots_manage_fill_spec", true ); //to count for fill if player is on spec team
|
||||
if ( getcvar( "bots_manage_fill_spec" ) == "" )
|
||||
setcvar( "bots_manage_fill_spec", true ); //to count for fill if player is on spec team
|
||||
|
||||
if ( getCvar( "bots_manage_fill_mode" ) == "" )
|
||||
setCvar( "bots_manage_fill_mode", 0 ); //fill mode, 0 adds everyone, 1 just bots, 2 maintains at maps, 3 is 2 with 1
|
||||
if ( getcvar( "bots_manage_fill_mode" ) == "" )
|
||||
setcvar( "bots_manage_fill_mode", 0 ); //fill mode, 0 adds everyone, 1 just bots, 2 maintains at maps, 3 is 2 with 1
|
||||
|
||||
if ( getCvar( "bots_manage_fill_kick" ) == "" )
|
||||
setCvar( "bots_manage_fill_kick", false ); //kick bots if too many
|
||||
if ( getcvar( "bots_manage_fill_kick" ) == "" )
|
||||
setcvar( "bots_manage_fill_kick", false ); //kick bots if too many
|
||||
|
||||
if ( getCvar( "bots_team" ) == "" )
|
||||
setCvar( "bots_team", "autoassign" ); //which team for bots to join
|
||||
if ( getcvar( "bots_team" ) == "" )
|
||||
setcvar( "bots_team", "autoassign" ); //which team for bots to join
|
||||
|
||||
if ( getCvar( "bots_team_amount" ) == "" )
|
||||
setCvar( "bots_team_amount", 0 ); //amount of bots on axis team
|
||||
if ( getcvar( "bots_team_amount" ) == "" )
|
||||
setcvar( "bots_team_amount", 0 ); //amount of bots on axis team
|
||||
|
||||
if ( getCvar( "bots_team_force" ) == "" )
|
||||
setCvar( "bots_team_force", false ); //force bots on team
|
||||
if ( getcvar( "bots_team_force" ) == "" )
|
||||
setcvar( "bots_team_force", false ); //force bots on team
|
||||
|
||||
if ( getCvar( "bots_team_mode" ) == "" )
|
||||
setCvar( "bots_team_mode", 0 ); //counts just bots when 1
|
||||
if ( getcvar( "bots_team_mode" ) == "" )
|
||||
setcvar( "bots_team_mode", 0 ); //counts just bots when 1
|
||||
|
||||
if ( getCvar( "bots_skill" ) == "" )
|
||||
setCvar( "bots_skill", 0 ); //0 is random, 1 is easy 7 is hard, 8 is custom, 9 is completely random
|
||||
if ( getcvar( "bots_skill" ) == "" )
|
||||
setcvar( "bots_skill", 0 ); //0 is random, 1 is easy 7 is hard, 8 is custom, 9 is completely random
|
||||
|
||||
if ( getCvar( "bots_skill_axis_hard" ) == "" )
|
||||
setCvar( "bots_skill_axis_hard", 0 ); //amount of hard bots on axis team
|
||||
if ( getcvar( "bots_skill_axis_hard" ) == "" )
|
||||
setcvar( "bots_skill_axis_hard", 0 ); //amount of hard bots on axis team
|
||||
|
||||
if ( getCvar( "bots_skill_axis_med" ) == "" )
|
||||
setCvar( "bots_skill_axis_med", 0 );
|
||||
if ( getcvar( "bots_skill_axis_med" ) == "" )
|
||||
setcvar( "bots_skill_axis_med", 0 );
|
||||
|
||||
if ( getCvar( "bots_skill_allies_hard" ) == "" )
|
||||
setCvar( "bots_skill_allies_hard", 0 );
|
||||
if ( getcvar( "bots_skill_allies_hard" ) == "" )
|
||||
setcvar( "bots_skill_allies_hard", 0 );
|
||||
|
||||
if ( getCvar( "bots_skill_allies_med" ) == "" )
|
||||
setCvar( "bots_skill_allies_med", 0 );
|
||||
if ( getcvar( "bots_skill_allies_med" ) == "" )
|
||||
setcvar( "bots_skill_allies_med", 0 );
|
||||
|
||||
if ( getCvar( "bots_skill_min" ) == "" )
|
||||
setCvar( "bots_skill_min", 1 );
|
||||
if ( getcvar( "bots_skill_min" ) == "" )
|
||||
setcvar( "bots_skill_min", 1 );
|
||||
|
||||
if ( getCvar( "bots_skill_max" ) == "" )
|
||||
setCvar( "bots_skill_max", 7 );
|
||||
if ( getcvar( "bots_skill_max" ) == "" )
|
||||
setcvar( "bots_skill_max", 7 );
|
||||
|
||||
if ( getCvar( "bots_loadout_rank" ) == "" ) // what rank the bots should be around, -1 is around the players, 0 is all random
|
||||
setCvar( "bots_loadout_rank", -1 );
|
||||
if ( getcvar( "bots_loadout_rank" ) == "" ) // what rank the bots should be around, -1 is around the players, 0 is all random
|
||||
setcvar( "bots_loadout_rank", -1 );
|
||||
|
||||
if ( getCvar( "bots_play_move" ) == "" ) //bots move
|
||||
setCvar( "bots_play_move", true );
|
||||
if ( getcvar( "bots_play_move" ) == "" ) //bots move
|
||||
setcvar( "bots_play_move", true );
|
||||
|
||||
if ( getCvar( "bots_play_knife" ) == "" ) //bots knife
|
||||
setCvar( "bots_play_knife", true );
|
||||
if ( getcvar( "bots_play_knife" ) == "" ) //bots knife
|
||||
setcvar( "bots_play_knife", true );
|
||||
|
||||
if ( getCvar( "bots_play_fire" ) == "" ) //bots fire
|
||||
setCvar( "bots_play_fire", true );
|
||||
if ( getcvar( "bots_play_fire" ) == "" ) //bots fire
|
||||
setcvar( "bots_play_fire", true );
|
||||
|
||||
if ( getCvar( "bots_play_nade" ) == "" ) //bots grenade
|
||||
setCvar( "bots_play_nade", true );
|
||||
if ( getcvar( "bots_play_nade" ) == "" ) //bots grenade
|
||||
setcvar( "bots_play_nade", true );
|
||||
|
||||
if ( getCvar( "bots_play_obj" ) == "" ) //bots play the obj
|
||||
setCvar( "bots_play_obj", true );
|
||||
if ( getcvar( "bots_play_obj" ) == "" ) //bots play the obj
|
||||
setcvar( "bots_play_obj", true );
|
||||
|
||||
if ( getCvar( "bots_play_camp" ) == "" ) //bots camp and follow
|
||||
setCvar( "bots_play_camp", true );
|
||||
if ( getcvar( "bots_play_camp" ) == "" ) //bots camp and follow
|
||||
setcvar( "bots_play_camp", true );
|
||||
|
||||
if ( getCvar( "bots_play_jumpdrop" ) == "" ) //bots jump and dropshot
|
||||
setCvar( "bots_play_jumpdrop", true );
|
||||
if ( getcvar( "bots_play_jumpdrop" ) == "" ) //bots jump and dropshot
|
||||
setcvar( "bots_play_jumpdrop", true );
|
||||
|
||||
if ( getCvar( "bots_play_ads" ) == "" ) //bot ads
|
||||
setCvar( "bots_play_ads", true );
|
||||
if ( getcvar( "bots_play_ads" ) == "" ) //bot ads
|
||||
setcvar( "bots_play_ads", true );
|
||||
|
||||
if ( getCvar( "bots_play_aim" ) == "" )
|
||||
setCvar( "bots_play_aim", true );
|
||||
if ( getcvar( "bots_play_aim" ) == "" )
|
||||
setcvar( "bots_play_aim", true );
|
||||
|
||||
if ( !isDefined( game["botWarfare"] ) )
|
||||
if ( !isdefined( game["botWarfare"] ) )
|
||||
game["botWarfare"] = true;
|
||||
|
||||
level.defuseObject = undefined;
|
||||
level.bots_smokeList = List();
|
||||
level.defuseobject = undefined;
|
||||
level.bots_smokelist = List();
|
||||
|
||||
level.bots_minGrenadeDistance = 256;
|
||||
level.bots_minGrenadeDistance *= level.bots_minGrenadeDistance;
|
||||
level.bots_maxGrenadeDistance = 1024;
|
||||
level.bots_maxGrenadeDistance *= level.bots_maxGrenadeDistance;
|
||||
level.bots_maxKnifeDistance = 80;
|
||||
level.bots_maxKnifeDistance *= level.bots_maxKnifeDistance;
|
||||
level.bots_goalDistance = 27.5;
|
||||
level.bots_goalDistance *= level.bots_goalDistance;
|
||||
level.bots_noADSDistance = 200;
|
||||
level.bots_noADSDistance *= level.bots_noADSDistance;
|
||||
level.bots_maxShotgunDistance = 500;
|
||||
level.bots_maxShotgunDistance *= level.bots_maxShotgunDistance;
|
||||
level.bots_listenDist = 100;
|
||||
level.bots_mingrenadedistance = 256;
|
||||
level.bots_mingrenadedistance *= level.bots_mingrenadedistance;
|
||||
level.bots_maxgrenadedistance = 1024;
|
||||
level.bots_maxgrenadedistance *= level.bots_maxgrenadedistance;
|
||||
level.bots_maxknifedistance = 80;
|
||||
level.bots_maxknifedistance *= level.bots_maxknifedistance;
|
||||
level.bots_goaldistance = 27.5;
|
||||
level.bots_goaldistance *= level.bots_goaldistance;
|
||||
level.bots_noadsdistance = 200;
|
||||
level.bots_noadsdistance *= level.bots_noadsdistance;
|
||||
level.bots_maxshotgundistance = 500;
|
||||
level.bots_maxshotgundistance *= level.bots_maxshotgundistance;
|
||||
level.bots_listendist = 100;
|
||||
|
||||
level.smokeRadius = 255;
|
||||
level.smokeradius = 255;
|
||||
|
||||
level.bots = [];
|
||||
level.players = [];
|
||||
@ -207,10 +207,10 @@ init()
|
||||
level thread watchNades();
|
||||
level thread watchGameEnded();
|
||||
|
||||
level.teamBased = true;
|
||||
level.teambased = true;
|
||||
|
||||
if ( getcvar( "g_gametype" ) == "dm" )
|
||||
level.teamBased = false;
|
||||
level.teambased = false;
|
||||
}
|
||||
|
||||
/*
|
||||
@ -225,16 +225,16 @@ handleBots()
|
||||
while ( !level.mapended )
|
||||
wait 0.05;
|
||||
|
||||
setCvar( "bots_manage_add", getBotArray().size );
|
||||
setcvar( "bots_manage_add", getBotArray().size );
|
||||
|
||||
if ( !getCvarInt( "bots_main_kickBotsAtEnd" ) )
|
||||
if ( !getcvarint( "bots_main_kickBotsAtEnd" ) )
|
||||
return;
|
||||
|
||||
bots = getBotArray();
|
||||
|
||||
for ( i = 0; i < bots.size; i++ )
|
||||
{
|
||||
kick( bots[i] getEntityNumber() );
|
||||
kick( bots[i] getentitynumber() );
|
||||
}
|
||||
}
|
||||
|
||||
@ -249,7 +249,7 @@ onPlayerDamage( eInflictor, eAttacker, iDamage, iDFlags, sMeansOfDeath, sWeapon,
|
||||
self maps\mp\bots\_bot_script::onDamage( eInflictor, eAttacker, iDamage, iDFlags, sMeansOfDeath, sWeapon, vPoint, vDir, sHitLoc, timeOffset );
|
||||
}
|
||||
|
||||
self [[level.prevCallbackPlayerDamage]]( eInflictor, eAttacker, iDamage, iDFlags, sMeansOfDeath, sWeapon, vPoint, vDir, sHitLoc, timeOffset );
|
||||
self [[level.prevcallbackplayerdamage]]( eInflictor, eAttacker, iDamage, iDFlags, sMeansOfDeath, sWeapon, vPoint, vDir, sHitLoc, timeOffset );
|
||||
}
|
||||
|
||||
/*
|
||||
@ -263,7 +263,7 @@ onPlayerKilled( eInflictor, eAttacker, iDamage, sMeansOfDeath, sWeapon, vDir, sH
|
||||
self maps\mp\bots\_bot_script::onKilled( eInflictor, eAttacker, iDamage, sMeansOfDeath, sWeapon, vDir, sHitLoc, timeOffset, deathAnimDuration );
|
||||
}
|
||||
|
||||
self [[level.prevCallbackPlayerKilled]]( eInflictor, eAttacker, iDamage, sMeansOfDeath, sWeapon, vDir, sHitLoc, timeOffset, deathAnimDuration );
|
||||
self [[level.prevcallbackplayerkilled]]( eInflictor, eAttacker, iDamage, sMeansOfDeath, sWeapon, vDir, sHitLoc, timeOffset, deathAnimDuration );
|
||||
}
|
||||
|
||||
/*
|
||||
@ -272,11 +272,11 @@ onPlayerKilled( eInflictor, eAttacker, iDamage, sMeansOfDeath, sWeapon, vDir, sH
|
||||
hook_callbacks()
|
||||
{
|
||||
wait 0.05;
|
||||
level.prevCallbackPlayerDamage = level.callbackPlayerDamage;
|
||||
level.callbackPlayerDamage = ::onPlayerDamage;
|
||||
level.prevcallbackplayerdamage = level.callbackplayerdamage;
|
||||
level.callbackplayerdamage = ::onPlayerDamage;
|
||||
|
||||
level.prevCallbackPlayerKilled = level.callbackPlayerKilled;
|
||||
level.callbackPlayerKilled = ::onPlayerKilled;
|
||||
level.prevcallbackplayerkilled = level.callbackplayerkilled;
|
||||
level.callbackplayerkilled = ::onPlayerKilled;
|
||||
}
|
||||
|
||||
/*
|
||||
@ -329,13 +329,13 @@ watchWeapons()
|
||||
|
||||
for ( ;; )
|
||||
{
|
||||
weap = self getCurrentWeapon();
|
||||
weap = self getcurrentweapon();
|
||||
self thread watchAmmoUsage( weap );
|
||||
|
||||
while ( weap == self getCurrentWeapon() )
|
||||
while ( weap == self getcurrentweapon() )
|
||||
wait 0.05;
|
||||
|
||||
self notify( "weapon_change", self getCurrentWeapon() );
|
||||
self notify( "weapon_change", self getcurrentweapon() );
|
||||
}
|
||||
}
|
||||
|
||||
@ -351,12 +351,12 @@ watchAmmoUsage( weap )
|
||||
|
||||
for ( ;; )
|
||||
{
|
||||
aCount = self GetWeaponSlotClipAmmo( slot );
|
||||
aCount = self getweaponslotclipammo( slot );
|
||||
|
||||
while ( aCount == self GetWeaponSlotClipAmmo( slot ) )
|
||||
while ( aCount == self getweaponslotclipammo( slot ) )
|
||||
wait 0.05;
|
||||
|
||||
if ( self GetWeaponSlotClipAmmo( slot ) < aCount )
|
||||
if ( self getweaponslotclipammo( slot ) < aCount )
|
||||
self notify( "weapon_fired" );
|
||||
else
|
||||
self notify( "reload" );
|
||||
@ -400,13 +400,13 @@ watchVelocity()
|
||||
*/
|
||||
killTags()
|
||||
{
|
||||
if ( isDefined( self.tags ) )
|
||||
if ( isdefined( self.tags ) )
|
||||
{
|
||||
for ( i = 0; i < self.tags.size; i++ )
|
||||
self.tags[i] delete ();
|
||||
|
||||
self.tags = undefined;
|
||||
self.tagMap = undefined;
|
||||
self.tagmap = undefined;
|
||||
}
|
||||
}
|
||||
|
||||
@ -456,19 +456,19 @@ connected()
|
||||
level.players[level.players.size] = self;
|
||||
self thread onDisconnectPlayer();
|
||||
|
||||
if ( !isDefined( self.pers["bot_host"] ) )
|
||||
if ( !isdefined( self.pers["bot_host"] ) )
|
||||
self thread doHostCheck();
|
||||
|
||||
if ( !self is_bot() )
|
||||
return;
|
||||
|
||||
if ( !isDefined( self.pers["isBot"] ) )
|
||||
if ( !isdefined( self.pers["isBot"] ) )
|
||||
{
|
||||
// fast restart...
|
||||
self.pers["isBot"] = true;
|
||||
}
|
||||
|
||||
if ( !isDefined( self.pers["isBotWarfare"] ) )
|
||||
if ( !isdefined( self.pers["isBotWarfare"] ) )
|
||||
{
|
||||
self.pers["isBotWarfare"] = true;
|
||||
self thread added();
|
||||
@ -496,34 +496,34 @@ watchBotDebugEvent()
|
||||
{
|
||||
self waittill( "bot_event", msg, str, b, c, d, e, f, g );
|
||||
|
||||
if ( GetCvarInt( "bots_main_debug" ) >= 2 )
|
||||
if ( getcvarint( "bots_main_debug" ) >= 2 )
|
||||
{
|
||||
big_str = "Bot Warfare debug: " + self.name + ": " + msg;
|
||||
|
||||
if ( isDefined( str ) && isString( str ) )
|
||||
if ( isdefined( str ) && isstring( str ) )
|
||||
big_str += ", " + str;
|
||||
|
||||
if ( isDefined( b ) && isString( b ) )
|
||||
if ( isdefined( b ) && isstring( b ) )
|
||||
big_str += ", " + b;
|
||||
|
||||
if ( isDefined( c ) && isString( c ) )
|
||||
if ( isdefined( c ) && isstring( c ) )
|
||||
big_str += ", " + c;
|
||||
|
||||
if ( isDefined( d ) && isString( d ) )
|
||||
if ( isdefined( d ) && isstring( d ) )
|
||||
big_str += ", " + d;
|
||||
|
||||
if ( isDefined( e ) && isString( e ) )
|
||||
if ( isdefined( e ) && isstring( e ) )
|
||||
big_str += ", " + e;
|
||||
|
||||
if ( isDefined( f ) && isString( f ) )
|
||||
if ( isdefined( f ) && isstring( f ) )
|
||||
big_str += ", " + f;
|
||||
|
||||
if ( isDefined( g ) && isString( g ) )
|
||||
if ( isdefined( g ) && isstring( g ) )
|
||||
big_str += ", " + g;
|
||||
|
||||
BotBuiltinPrintConsole( big_str );
|
||||
}
|
||||
else if ( msg == "debug" && GetCvarInt( "bots_main_debug" ) )
|
||||
else if ( msg == "debug" && getcvarint( "bots_main_debug" ) )
|
||||
{
|
||||
BotBuiltinPrintConsole( "Bot Warfare debug: " + self.name + ": " + str );
|
||||
}
|
||||
@ -561,11 +561,11 @@ add_bot()
|
||||
*/
|
||||
diffBots_loop()
|
||||
{
|
||||
var_allies_hard = getCvarInt( "bots_skill_allies_hard" );
|
||||
var_allies_med = getCvarInt( "bots_skill_allies_med" );
|
||||
var_axis_hard = getCvarInt( "bots_skill_axis_hard" );
|
||||
var_axis_med = getCvarInt( "bots_skill_axis_med" );
|
||||
var_skill = getCvarInt( "bots_skill" );
|
||||
var_allies_hard = getcvarint( "bots_skill_allies_hard" );
|
||||
var_allies_med = getcvarint( "bots_skill_allies_med" );
|
||||
var_axis_hard = getcvarint( "bots_skill_axis_hard" );
|
||||
var_axis_med = getcvarint( "bots_skill_axis_med" );
|
||||
var_skill = getcvarint( "bots_skill" );
|
||||
|
||||
allies_hard = 0;
|
||||
allies_med = 0;
|
||||
@ -580,7 +580,7 @@ diffBots_loop()
|
||||
{
|
||||
player = level.players[i];
|
||||
|
||||
if ( !isDefined( player.pers["team"] ) )
|
||||
if ( !isdefined( player.pers["team"] ) )
|
||||
continue;
|
||||
|
||||
if ( !player is_bot() )
|
||||
@ -634,8 +634,8 @@ diffBots_loop()
|
||||
}
|
||||
|
||||
playercount = level.players.size;
|
||||
min_diff = GetCvarInt( "bots_skill_min" );
|
||||
max_diff = GetCvarInt( "bots_skill_max" );
|
||||
min_diff = getcvarint( "bots_skill_min" );
|
||||
max_diff = getcvarint( "bots_skill_max" );
|
||||
|
||||
for ( i = 0; i < playercount; i++ )
|
||||
{
|
||||
@ -666,8 +666,8 @@ diffBots()
|
||||
*/
|
||||
teamBots_loop()
|
||||
{
|
||||
teamAmount = getCvarInt( "bots_team_amount" );
|
||||
toTeam = getCvar( "bots_team" );
|
||||
teamAmount = getcvarint( "bots_team_amount" );
|
||||
toTeam = getcvar( "bots_team" );
|
||||
|
||||
alliesbots = 0;
|
||||
alliesplayers = 0;
|
||||
@ -680,7 +680,7 @@ teamBots_loop()
|
||||
{
|
||||
player = level.players[i];
|
||||
|
||||
if ( !isDefined( player.pers["team"] ) )
|
||||
if ( !isdefined( player.pers["team"] ) )
|
||||
continue;
|
||||
|
||||
if ( player is_bot() )
|
||||
@ -702,7 +702,7 @@ teamBots_loop()
|
||||
allies = alliesbots;
|
||||
axis = axisbots;
|
||||
|
||||
if ( !getCvarInt( "bots_team_mode" ) )
|
||||
if ( !getcvarint( "bots_team_mode" ) )
|
||||
{
|
||||
allies += alliesplayers;
|
||||
axis += axisplayers;
|
||||
@ -710,7 +710,7 @@ teamBots_loop()
|
||||
|
||||
if ( toTeam != "custom" )
|
||||
{
|
||||
if ( getCvarInt( "bots_team_force" ) )
|
||||
if ( getcvarint( "bots_team_force" ) )
|
||||
{
|
||||
if ( toTeam == "autoassign" )
|
||||
{
|
||||
@ -731,7 +731,7 @@ teamBots_loop()
|
||||
{
|
||||
player = level.players[i];
|
||||
|
||||
if ( !isDefined( player.pers["team"] ) )
|
||||
if ( !isdefined( player.pers["team"] ) )
|
||||
continue;
|
||||
|
||||
if ( !player is_bot() )
|
||||
@ -760,7 +760,7 @@ teamBots_loop()
|
||||
{
|
||||
player = level.players[i];
|
||||
|
||||
if ( !isDefined( player.pers["team"] ) )
|
||||
if ( !isdefined( player.pers["team"] ) )
|
||||
continue;
|
||||
|
||||
if ( !player is_bot() )
|
||||
@ -809,11 +809,11 @@ teamBots()
|
||||
*/
|
||||
addBots_loop()
|
||||
{
|
||||
botsToAdd = GetCvarInt( "bots_manage_add" );
|
||||
botsToAdd = getcvarint( "bots_manage_add" );
|
||||
|
||||
if ( botsToAdd > 0 )
|
||||
{
|
||||
SetCvar( "bots_manage_add", 0 );
|
||||
setcvar( "bots_manage_add", 0 );
|
||||
|
||||
if ( botsToAdd > 64 )
|
||||
botsToAdd = 64;
|
||||
@ -825,12 +825,12 @@ addBots_loop()
|
||||
}
|
||||
}
|
||||
|
||||
fillMode = getCvarInt( "bots_manage_fill_mode" );
|
||||
fillMode = getcvarint( "bots_manage_fill_mode" );
|
||||
|
||||
if ( fillMode == 2 || fillMode == 3 )
|
||||
setCvar( "bots_manage_fill", getGoodMapAmount() );
|
||||
setcvar( "bots_manage_fill", getGoodMapAmount() );
|
||||
|
||||
fillAmount = getCvarInt( "bots_manage_fill" );
|
||||
fillAmount = getcvarint( "bots_manage_fill" );
|
||||
|
||||
players = 0;
|
||||
bots = 0;
|
||||
@ -844,17 +844,17 @@ addBots_loop()
|
||||
|
||||
if ( player is_bot() )
|
||||
bots++;
|
||||
else if ( !isDefined( player.pers["team"] ) || ( player.pers["team"] != "axis" && player.pers["team"] != "allies" ) )
|
||||
else if ( !isdefined( player.pers["team"] ) || ( player.pers["team"] != "axis" && player.pers["team"] != "allies" ) )
|
||||
spec++;
|
||||
else
|
||||
players++;
|
||||
}
|
||||
|
||||
if ( !randomInt( 999 ) )
|
||||
if ( !randomint( 999 ) )
|
||||
{
|
||||
setCvar( "testclients_doreload", true );
|
||||
setcvar( "testclients_doreload", true );
|
||||
wait 0.1;
|
||||
setCvar( "testclients_doreload", false );
|
||||
setcvar( "testclients_doreload", false );
|
||||
doExtraCheck();
|
||||
}
|
||||
|
||||
@ -872,7 +872,7 @@ addBots_loop()
|
||||
if ( player is_bot() )
|
||||
continue;
|
||||
|
||||
if ( !isDefined( player.pers["team"] ) )
|
||||
if ( !isdefined( player.pers["team"] ) )
|
||||
continue;
|
||||
|
||||
if ( player.pers["team"] == "axis" )
|
||||
@ -901,17 +901,17 @@ addBots_loop()
|
||||
if ( fillMode == 0 || fillMode == 2 )
|
||||
amount += players;
|
||||
|
||||
if ( getCvarInt( "bots_manage_fill_spec" ) )
|
||||
if ( getcvarint( "bots_manage_fill_spec" ) )
|
||||
amount += spec;
|
||||
|
||||
if ( amount < fillAmount )
|
||||
setCvar( "bots_manage_add", 1 );
|
||||
else if ( amount > fillAmount && getCvarInt( "bots_manage_fill_kick" ) )
|
||||
setcvar( "bots_manage_add", 1 );
|
||||
else if ( amount > fillAmount && getcvarint( "bots_manage_fill_kick" ) )
|
||||
{
|
||||
tempBot = getBotToKick();
|
||||
|
||||
if ( isDefined( tempBot ) )
|
||||
kick( tempBot getEntityNumber() );
|
||||
if ( isdefined( tempBot ) )
|
||||
kick( tempBot getentitynumber() );
|
||||
}
|
||||
}
|
||||
|
||||
@ -964,14 +964,14 @@ doFiringThread()
|
||||
*/
|
||||
launchSmoke( org )
|
||||
{
|
||||
nade = spawnStruct();
|
||||
nade = spawnstruct();
|
||||
nade.origin = org;
|
||||
|
||||
level.bots_smokeList ListAdd( nade );
|
||||
level.bots_smokelist ListAdd( nade );
|
||||
|
||||
wait 11.5;
|
||||
|
||||
level.bots_smokeList ListRemove( nade );
|
||||
level.bots_smokelist ListRemove( nade );
|
||||
}
|
||||
|
||||
/*
|
||||
@ -982,19 +982,19 @@ watchNade()
|
||||
self endon( "death" );
|
||||
|
||||
lastOrigin = self.origin;
|
||||
creationTime = getTime();
|
||||
creationTime = gettime();
|
||||
timeSlow = 0;
|
||||
|
||||
wait 0.05;
|
||||
|
||||
while ( isDefined( self ) )
|
||||
while ( isdefined( self ) )
|
||||
{
|
||||
velocity = vector_scale( self.origin - lastOrigin, 20 );
|
||||
lastOrigin = self.origin;
|
||||
|
||||
if ( getTime() - creationTime > 4000 )
|
||||
if ( gettime() - creationTime > 4000 )
|
||||
{
|
||||
if ( lengthSquared( velocity ) <= 0.05 )
|
||||
if ( lengthsquared( velocity ) <= 0.05 )
|
||||
timeSlow += 0.05;
|
||||
else
|
||||
timeSlow = 0;
|
||||
@ -1021,10 +1021,10 @@ watchNades_loop()
|
||||
{
|
||||
nade = nades[i];
|
||||
|
||||
if ( !isDefined( nade ) )
|
||||
if ( !isdefined( nade ) )
|
||||
continue;
|
||||
|
||||
if ( isDefined( nade.bot_audit ) )
|
||||
if ( isdefined( nade.bot_audit ) )
|
||||
continue;
|
||||
|
||||
nade.bot_audit = true;
|
||||
@ -1051,24 +1051,24 @@ watchNades()
|
||||
*/
|
||||
watchGameEnded()
|
||||
{
|
||||
level.gameEnded = false;
|
||||
level.gameended = false;
|
||||
|
||||
for ( ;; )
|
||||
{
|
||||
wait 0.05;
|
||||
|
||||
if ( isDefined( level.roundended ) )
|
||||
if ( isdefined( level.roundended ) )
|
||||
{
|
||||
if ( level.roundended )
|
||||
break;
|
||||
}
|
||||
else if ( isDefined( level.mapended ) )
|
||||
else if ( isdefined( level.mapended ) )
|
||||
{
|
||||
if ( level.mapended )
|
||||
break;
|
||||
}
|
||||
}
|
||||
|
||||
level.gameEnded = true;
|
||||
level.gameended = true;
|
||||
level notify( "game_ended" );
|
||||
}
|
||||
|
File diff suppressed because it is too large
Load Diff
@ -18,8 +18,8 @@ connected()
|
||||
{
|
||||
self endon( "disconnect" );
|
||||
|
||||
self.killerLocation = undefined;
|
||||
self.lastKiller = undefined;
|
||||
self.killerlocation = undefined;
|
||||
self.lastkiller = undefined;
|
||||
self.bot_change_class = true;
|
||||
|
||||
self thread difficulty();
|
||||
@ -34,10 +34,10 @@ connected()
|
||||
*/
|
||||
onKilled( eInflictor, eAttacker, iDamage, sMeansOfDeath, sWeapon, vDir, sHitLoc, timeOffset, deathAnimDuration )
|
||||
{
|
||||
self.killerLocation = undefined;
|
||||
self.lastKiller = undefined;
|
||||
self.killerlocation = undefined;
|
||||
self.lastkiller = undefined;
|
||||
|
||||
if ( !IsDefined( self ) || !isDefined( self.team ) )
|
||||
if ( !isdefined( self ) || !isdefined( self.team ) )
|
||||
return;
|
||||
|
||||
if ( sMeansOfDeath == "MOD_FALLING" || sMeansOfDeath == "MOD_SUICIDE" )
|
||||
@ -46,23 +46,23 @@ onKilled( eInflictor, eAttacker, iDamage, sMeansOfDeath, sWeapon, vDir, sHitLoc,
|
||||
if ( iDamage <= 0 )
|
||||
return;
|
||||
|
||||
if ( !IsDefined( eAttacker ) || !isDefined( eAttacker.team ) )
|
||||
if ( !isdefined( eAttacker ) || !isdefined( eAttacker.team ) )
|
||||
return;
|
||||
|
||||
if ( eAttacker == self )
|
||||
return;
|
||||
|
||||
if ( level.teamBased && eAttacker.team == self.team )
|
||||
if ( level.teambased && eAttacker.team == self.team )
|
||||
return;
|
||||
|
||||
if ( !IsDefined( eInflictor ) || eInflictor.classname != "player" )
|
||||
if ( !isdefined( eInflictor ) || eInflictor.classname != "player" )
|
||||
return;
|
||||
|
||||
if ( !isAlive( eAttacker ) )
|
||||
if ( !isalive( eAttacker ) )
|
||||
return;
|
||||
|
||||
self.killerLocation = eAttacker.origin;
|
||||
self.lastKiller = eAttacker;
|
||||
self.killerlocation = eAttacker.origin;
|
||||
self.lastkiller = eAttacker;
|
||||
}
|
||||
|
||||
/*
|
||||
@ -70,10 +70,10 @@ onKilled( eInflictor, eAttacker, iDamage, sMeansOfDeath, sWeapon, vDir, sHitLoc,
|
||||
*/
|
||||
onDamage( eInflictor, eAttacker, iDamage, iDFlags, sMeansOfDeath, sWeapon, vPoint, vDir, sHitLoc, timeOffset )
|
||||
{
|
||||
if ( !IsDefined( self ) || !isDefined( self.team ) )
|
||||
if ( !isdefined( self ) || !isdefined( self.team ) )
|
||||
return;
|
||||
|
||||
if ( !isAlive( self ) )
|
||||
if ( !isalive( self ) )
|
||||
return;
|
||||
|
||||
if ( sMeansOfDeath == "MOD_FALLING" || sMeansOfDeath == "MOD_SUICIDE" )
|
||||
@ -82,19 +82,19 @@ onDamage( eInflictor, eAttacker, iDamage, iDFlags, sMeansOfDeath, sWeapon, vPoin
|
||||
if ( iDamage <= 0 )
|
||||
return;
|
||||
|
||||
if ( !IsDefined( eAttacker ) || !isDefined( eAttacker.team ) )
|
||||
if ( !isdefined( eAttacker ) || !isdefined( eAttacker.team ) )
|
||||
return;
|
||||
|
||||
if ( eAttacker == self )
|
||||
return;
|
||||
|
||||
if ( level.teamBased && eAttacker.team == self.team )
|
||||
if ( level.teambased && eAttacker.team == self.team )
|
||||
return;
|
||||
|
||||
if ( !IsDefined( eInflictor ) || eInflictor.classname != "player" )
|
||||
if ( !isdefined( eInflictor ) || eInflictor.classname != "player" )
|
||||
return;
|
||||
|
||||
if ( !isAlive( eAttacker ) )
|
||||
if ( !isalive( eAttacker ) )
|
||||
return;
|
||||
|
||||
self bot_cry_for_help( eAttacker );
|
||||
@ -107,14 +107,14 @@ onDamage( eInflictor, eAttacker, iDamage, iDFlags, sMeansOfDeath, sWeapon, vPoin
|
||||
*/
|
||||
bot_cry_for_help( attacker )
|
||||
{
|
||||
if ( !level.teamBased )
|
||||
if ( !level.teambased )
|
||||
{
|
||||
return;
|
||||
}
|
||||
|
||||
theTime = GetTime();
|
||||
theTime = gettime();
|
||||
|
||||
if ( IsDefined( self.help_time ) && theTime - self.help_time < 1000 )
|
||||
if ( isdefined( self.help_time ) && theTime - self.help_time < 1000 )
|
||||
{
|
||||
return;
|
||||
}
|
||||
@ -130,13 +130,13 @@ bot_cry_for_help( attacker )
|
||||
continue;
|
||||
}
|
||||
|
||||
if ( !isDefined( player.team ) )
|
||||
if ( !isdefined( player.team ) )
|
||||
continue;
|
||||
|
||||
if ( !player IsPlayerModelOK() )
|
||||
continue;
|
||||
|
||||
if ( !IsAlive( player ) )
|
||||
if ( !isalive( player ) )
|
||||
{
|
||||
continue;
|
||||
}
|
||||
@ -154,16 +154,16 @@ bot_cry_for_help( attacker )
|
||||
dist = player.pers["bots"]["skill"]["help_dist"];
|
||||
dist *= dist;
|
||||
|
||||
if ( DistanceSquared( self.origin, player.origin ) > dist )
|
||||
if ( distancesquared( self.origin, player.origin ) > dist )
|
||||
{
|
||||
continue;
|
||||
}
|
||||
|
||||
if ( RandomInt( 100 ) < 50 )
|
||||
if ( randomint( 100 ) < 50 )
|
||||
{
|
||||
self SetAttacker( attacker );
|
||||
|
||||
if ( RandomInt( 100 ) > 70 )
|
||||
if ( randomint( 100 ) > 70 )
|
||||
{
|
||||
break;
|
||||
}
|
||||
@ -176,7 +176,7 @@ bot_cry_for_help( attacker )
|
||||
*/
|
||||
set_diff()
|
||||
{
|
||||
rankVar = GetCvarInt( "bots_skill" );
|
||||
rankVar = getcvarint( "bots_skill" );
|
||||
|
||||
switch ( rankVar )
|
||||
{
|
||||
@ -188,36 +188,36 @@ set_diff()
|
||||
break;
|
||||
|
||||
case 9:
|
||||
self.pers["bots"]["skill"]["base"] = randomIntRange( 1, 7 );
|
||||
self.pers["bots"]["skill"]["aim_time"] = 0.05 * randomIntRange( 1, 20 );
|
||||
self.pers["bots"]["skill"]["init_react_time"] = 50 * randomInt( 100 );
|
||||
self.pers["bots"]["skill"]["reaction_time"] = 50 * randomInt( 100 );
|
||||
self.pers["bots"]["skill"]["no_trace_ads_time"] = 50 * randomInt( 100 );
|
||||
self.pers["bots"]["skill"]["no_trace_look_time"] = 50 * randomInt( 100 );
|
||||
self.pers["bots"]["skill"]["remember_time"] = 50 * randomInt( 100 );
|
||||
self.pers["bots"]["skill"]["fov"] = randomFloatRange( -1, 1 );
|
||||
self.pers["bots"]["skill"]["base"] = randomintrange( 1, 7 );
|
||||
self.pers["bots"]["skill"]["aim_time"] = 0.05 * randomintrange( 1, 20 );
|
||||
self.pers["bots"]["skill"]["init_react_time"] = 50 * randomint( 100 );
|
||||
self.pers["bots"]["skill"]["reaction_time"] = 50 * randomint( 100 );
|
||||
self.pers["bots"]["skill"]["no_trace_ads_time"] = 50 * randomint( 100 );
|
||||
self.pers["bots"]["skill"]["no_trace_look_time"] = 50 * randomint( 100 );
|
||||
self.pers["bots"]["skill"]["remember_time"] = 50 * randomint( 100 );
|
||||
self.pers["bots"]["skill"]["fov"] = randomfloatrange( -1, 1 );
|
||||
|
||||
randomNum = randomIntRange( 500, 25000 );
|
||||
randomNum = randomintrange( 500, 25000 );
|
||||
self.pers["bots"]["skill"]["dist_start"] = randomNum;
|
||||
self.pers["bots"]["skill"]["dist_max"] = randomNum * 2;
|
||||
|
||||
self.pers["bots"]["skill"]["spawn_time"] = 0.05 * randomInt( 20 );
|
||||
self.pers["bots"]["skill"]["help_dist"] = randomIntRange( 500, 25000 );
|
||||
self.pers["bots"]["skill"]["semi_time"] = randomFloatRange( 0.05, 1 );
|
||||
self.pers["bots"]["skill"]["shoot_after_time"] = randomFloatRange( 0.05, 1 );
|
||||
self.pers["bots"]["skill"]["aim_offset_time"] = randomFloatRange( 0.05, 1 );
|
||||
self.pers["bots"]["skill"]["aim_offset_amount"] = randomFloatRange( 0.05, 1 );
|
||||
self.pers["bots"]["skill"]["bone_update_interval"] = randomFloatRange( 0.05, 1 );
|
||||
self.pers["bots"]["skill"]["spawn_time"] = 0.05 * randomint( 20 );
|
||||
self.pers["bots"]["skill"]["help_dist"] = randomintrange( 500, 25000 );
|
||||
self.pers["bots"]["skill"]["semi_time"] = randomfloatrange( 0.05, 1 );
|
||||
self.pers["bots"]["skill"]["shoot_after_time"] = randomfloatrange( 0.05, 1 );
|
||||
self.pers["bots"]["skill"]["aim_offset_time"] = randomfloatrange( 0.05, 1 );
|
||||
self.pers["bots"]["skill"]["aim_offset_amount"] = randomfloatrange( 0.05, 1 );
|
||||
self.pers["bots"]["skill"]["bone_update_interval"] = randomfloatrange( 0.05, 1 );
|
||||
self.pers["bots"]["skill"]["bones"] = "j_head,j_spine4,j_ankle_ri,j_ankle_le";
|
||||
|
||||
self.pers["bots"]["behavior"]["strafe"] = randomInt( 100 );
|
||||
self.pers["bots"]["behavior"]["nade"] = randomInt( 100 );
|
||||
self.pers["bots"]["behavior"]["camp"] = randomInt( 100 );
|
||||
self.pers["bots"]["behavior"]["follow"] = randomInt( 100 );
|
||||
self.pers["bots"]["behavior"]["crouch"] = randomInt( 100 );
|
||||
self.pers["bots"]["behavior"]["switch"] = randomInt( 100 );
|
||||
self.pers["bots"]["behavior"]["class"] = randomInt( 100 );
|
||||
self.pers["bots"]["behavior"]["jump"] = randomInt( 100 );
|
||||
self.pers["bots"]["behavior"]["strafe"] = randomint( 100 );
|
||||
self.pers["bots"]["behavior"]["nade"] = randomint( 100 );
|
||||
self.pers["bots"]["behavior"]["camp"] = randomint( 100 );
|
||||
self.pers["bots"]["behavior"]["follow"] = randomint( 100 );
|
||||
self.pers["bots"]["behavior"]["crouch"] = randomint( 100 );
|
||||
self.pers["bots"]["behavior"]["switch"] = randomint( 100 );
|
||||
self.pers["bots"]["behavior"]["class"] = randomint( 100 );
|
||||
self.pers["bots"]["behavior"]["jump"] = randomint( 100 );
|
||||
break;
|
||||
|
||||
default:
|
||||
@ -235,7 +235,7 @@ difficulty()
|
||||
|
||||
for ( ;; )
|
||||
{
|
||||
if ( GetCvarInt( "bots_skill" ) != 9 )
|
||||
if ( getcvarint( "bots_skill" ) != 9 )
|
||||
{
|
||||
switch ( self.pers["bots"]["skill"]["base"] )
|
||||
{
|
||||
@ -477,7 +477,7 @@ teamWatch()
|
||||
wait 0.1;
|
||||
|
||||
if ( self.team != "axis" && self.team != "allies" )
|
||||
self notify( "menuresponse", game["menu_team"], getCvar( "bots_team" ) );
|
||||
self notify( "menuresponse", game["menu_team"], getcvar( "bots_team" ) );
|
||||
|
||||
while ( isdefined( self.pers["team"] ) )
|
||||
wait .05;
|
||||
@ -556,12 +556,12 @@ classWatch()
|
||||
|
||||
wait 0.5;
|
||||
|
||||
if ( !isDefined( self.pers["weapon"] ) || self.pers["weapon"] == "" || !isDefined( self.bot_change_class ) )
|
||||
if ( !isdefined( self.pers["weapon"] ) || self.pers["weapon"] == "" || !isdefined( self.bot_change_class ) )
|
||||
self notify( "menuresponse", game["menu_weapon_" + self.team], self chooseRandomClass() );
|
||||
|
||||
self.bot_change_class = true;
|
||||
|
||||
while ( isdefined( self.pers["team"] ) && isDefined( self.pers["weapon"] ) && self.pers["weapon"] != "" && isDefined( self.bot_change_class ) )
|
||||
while ( isdefined( self.pers["team"] ) && isdefined( self.pers["weapon"] ) && self.pers["weapon"] != "" && isdefined( self.bot_change_class ) )
|
||||
wait .05;
|
||||
}
|
||||
}
|
||||
@ -577,7 +577,7 @@ onSpawned()
|
||||
{
|
||||
self waittill( "spawned_player" );
|
||||
|
||||
if ( randomInt( 100 ) <= self.pers["bots"]["behavior"]["class"] )
|
||||
if ( randomint( 100 ) <= self.pers["bots"]["behavior"]["class"] )
|
||||
self.bot_change_class = undefined;
|
||||
|
||||
self.bot_lock_goal = false;
|
||||
|
@ -7,7 +7,7 @@ wait_for_builtins()
|
||||
{
|
||||
for ( i = 0; i < 20; i++ )
|
||||
{
|
||||
if ( isDefined( level.bot_builtins ) )
|
||||
if ( isdefined( level.bot_builtins ) )
|
||||
return true;
|
||||
|
||||
if ( i < 18 )
|
||||
@ -24,7 +24,7 @@ wait_for_builtins()
|
||||
*/
|
||||
BotBuiltinPrintConsole( s )
|
||||
{
|
||||
if ( isDefined( level.bot_builtins ) && isDefined( level.bot_builtins["printconsole"] ) )
|
||||
if ( isdefined( level.bot_builtins ) && isdefined( level.bot_builtins["printconsole"] ) )
|
||||
{
|
||||
[[ level.bot_builtins["printconsole" ]]]( s );
|
||||
}
|
||||
@ -36,7 +36,7 @@ BotBuiltinPrintConsole( s )
|
||||
*/
|
||||
BotBuiltinBotAction( action )
|
||||
{
|
||||
if ( isDefined( level.bot_builtins ) && isDefined( level.bot_builtins["botaction"] ) )
|
||||
if ( isdefined( level.bot_builtins ) && isdefined( level.bot_builtins["botaction"] ) )
|
||||
{
|
||||
self [[ level.bot_builtins["botaction" ]]]( action );
|
||||
}
|
||||
@ -48,7 +48,7 @@ BotBuiltinBotAction( action )
|
||||
*/
|
||||
BotBuiltinBotStop()
|
||||
{
|
||||
if ( isDefined( level.bot_builtins ) && isDefined( level.bot_builtins["botstop"] ) )
|
||||
if ( isdefined( level.bot_builtins ) && isdefined( level.bot_builtins["botstop"] ) )
|
||||
{
|
||||
self [[ level.bot_builtins["botstop" ]]]();
|
||||
}
|
||||
@ -60,7 +60,7 @@ BotBuiltinBotStop()
|
||||
*/
|
||||
BotBuiltinBotMovement( forward, right )
|
||||
{
|
||||
if ( isDefined( level.bot_builtins ) && isDefined( level.bot_builtins["botmovement"] ) )
|
||||
if ( isdefined( level.bot_builtins ) && isdefined( level.bot_builtins["botmovement"] ) )
|
||||
{
|
||||
self [[ level.bot_builtins["botmovement" ]]]( forward, right );
|
||||
}
|
||||
@ -71,7 +71,7 @@ BotBuiltinBotMovement( forward, right )
|
||||
*/
|
||||
BotBuiltinIsBot()
|
||||
{
|
||||
if ( isDefined( level.bot_builtins ) && isDefined( level.bot_builtins["isbot"] ) )
|
||||
if ( isdefined( level.bot_builtins ) && isdefined( level.bot_builtins["isbot"] ) )
|
||||
{
|
||||
return self [[ level.bot_builtins["isbot" ]]]();
|
||||
}
|
||||
@ -84,7 +84,7 @@ BotBuiltinIsBot()
|
||||
*/
|
||||
is_host()
|
||||
{
|
||||
return ( isDefined( self.pers["bot_host"] ) && self.pers["bot_host"] );
|
||||
return ( isdefined( self.pers["bot_host"] ) && self.pers["bot_host"] );
|
||||
}
|
||||
|
||||
/*
|
||||
@ -99,20 +99,20 @@ doHostCheck()
|
||||
|
||||
result = false;
|
||||
|
||||
if ( getCvar( "bots_main_firstIsHost" ) != "0" )
|
||||
if ( getcvar( "bots_main_firstIsHost" ) != "0" )
|
||||
{
|
||||
BotBuiltinPrintConsole( "WARNING: bots_main_firstIsHost is enabled" );
|
||||
|
||||
if ( getCvar( "bots_main_firstIsHost" ) == "1" )
|
||||
if ( getcvar( "bots_main_firstIsHost" ) == "1" )
|
||||
{
|
||||
setCvar( "bots_main_firstIsHost", self getguid() );
|
||||
setcvar( "bots_main_firstIsHost", self getguid() );
|
||||
}
|
||||
|
||||
if ( getCvar( "bots_main_firstIsHost" ) == self getguid() + "" )
|
||||
if ( getcvar( "bots_main_firstIsHost" ) == self getguid() + "" )
|
||||
result = true;
|
||||
}
|
||||
|
||||
DvarGUID = getCvar( "bots_main_GUIDs" );
|
||||
DvarGUID = getcvar( "bots_main_GUIDs" );
|
||||
|
||||
if ( DvarGUID != "" )
|
||||
{
|
||||
@ -136,7 +136,7 @@ doHostCheck()
|
||||
*/
|
||||
is_bot()
|
||||
{
|
||||
return ( ( isDefined( self.pers["isBot"] ) && self.pers["isBot"] ) || ( isDefined( self.pers["isBotWarfare"] ) && self.pers["isBotWarfare"] ) || self BotBuiltinIsBot() );
|
||||
return ( ( isdefined( self.pers["isBot"] ) && self.pers["isBot"] ) || ( isdefined( self.pers["isBotWarfare"] ) && self.pers["isBotWarfare"] ) || self BotBuiltinIsBot() );
|
||||
}
|
||||
|
||||
/*
|
||||
@ -208,7 +208,7 @@ BotGetRandom()
|
||||
*/
|
||||
BotGetTargetRandom()
|
||||
{
|
||||
if ( !isDefined( self.bot.target ) )
|
||||
if ( !isdefined( self.bot.target ) )
|
||||
return undefined;
|
||||
|
||||
return self.bot.target.rand;
|
||||
@ -290,7 +290,7 @@ BotNotifyBotEvent( msg, a, b, c, d, e, f, g )
|
||||
*/
|
||||
HasScriptGoal()
|
||||
{
|
||||
return ( isDefined( self GetScriptGoal() ) );
|
||||
return ( isdefined( self GetScriptGoal() ) );
|
||||
}
|
||||
|
||||
/*
|
||||
@ -306,7 +306,7 @@ GetScriptGoal()
|
||||
*/
|
||||
SetScriptGoal( goal, dist )
|
||||
{
|
||||
if ( !isDefined( dist ) )
|
||||
if ( !isdefined( dist ) )
|
||||
dist = 16;
|
||||
|
||||
self.bot.script_goal = goal;
|
||||
@ -353,7 +353,7 @@ GetScriptAimPos()
|
||||
*/
|
||||
HasScriptAimPos()
|
||||
{
|
||||
return isDefined( self GetScriptAimPos() );
|
||||
return isdefined( self GetScriptAimPos() );
|
||||
}
|
||||
|
||||
/*
|
||||
@ -397,7 +397,7 @@ GetThreat()
|
||||
*/
|
||||
HasScriptEnemy()
|
||||
{
|
||||
return ( isDefined( self.bot.script_target ) );
|
||||
return ( isdefined( self.bot.script_target ) );
|
||||
}
|
||||
|
||||
/*
|
||||
@ -405,7 +405,7 @@ HasScriptEnemy()
|
||||
*/
|
||||
HasThreat()
|
||||
{
|
||||
return ( isDefined( self GetThreat() ) );
|
||||
return ( isdefined( self GetThreat() ) );
|
||||
}
|
||||
|
||||
/*
|
||||
@ -439,7 +439,7 @@ ClearPriorityObjective()
|
||||
*/
|
||||
isInUse()
|
||||
{
|
||||
return ( isDefined( self.planting ) && self.planting ) || ( isDefined( self.defusing ) && self.defusing );
|
||||
return ( isdefined( self.planting ) && self.planting ) || ( isdefined( self.defusing ) && self.defusing );
|
||||
}
|
||||
|
||||
/*
|
||||
@ -461,7 +461,7 @@ getValidGrenade()
|
||||
|
||||
for ( i = 0; i < grenadeTypes.size; i++ )
|
||||
{
|
||||
if ( !self hasWeapon( grenadeTypes[i] ) )
|
||||
if ( !self hasweapon( grenadeTypes[i] ) )
|
||||
continue;
|
||||
|
||||
if ( !self getAmmoCount( grenadeTypes[i] ) )
|
||||
@ -478,7 +478,7 @@ getValidGrenade()
|
||||
*/
|
||||
isSecondaryGrenade( nade )
|
||||
{
|
||||
return isSubStr( nade, "smoke_grenade_" );
|
||||
return issubstr( nade, "smoke_grenade_" );
|
||||
}
|
||||
|
||||
/*
|
||||
@ -504,7 +504,7 @@ weaponClass( weap )
|
||||
{
|
||||
answer = level.bots_weapon_class_names[weap];
|
||||
|
||||
if ( !isDefined( answer ) )
|
||||
if ( !isdefined( answer ) )
|
||||
answer = "";
|
||||
|
||||
return answer;
|
||||
@ -517,7 +517,7 @@ WeaponClipSize( weap )
|
||||
{
|
||||
answer = level.bots_weapon_clip_sizes[weap];
|
||||
|
||||
if ( !isDefined( answer ) )
|
||||
if ( !isdefined( answer ) )
|
||||
answer = 1;
|
||||
|
||||
return answer;
|
||||
@ -537,11 +537,11 @@ getWeaponSlot( weap )
|
||||
/*
|
||||
cOD2
|
||||
*/
|
||||
GetAmmoCount( weap )
|
||||
getAmmoCount( weap )
|
||||
{
|
||||
slot = self getWeaponSlot( weap );
|
||||
|
||||
return self GetWeaponSlotClipAmmo( slot ) + self GetWeaponSlotAmmo( slot );
|
||||
return self getweaponslotclipammo( slot ) + self getweaponslotammo( slot );
|
||||
}
|
||||
|
||||
/*
|
||||
@ -549,7 +549,7 @@ GetAmmoCount( weap )
|
||||
*/
|
||||
IsWeaponClipOnly( weap )
|
||||
{
|
||||
return isSubStr( weap, "grenade_" );
|
||||
return issubstr( weap, "grenade_" );
|
||||
}
|
||||
|
||||
/*
|
||||
@ -575,7 +575,7 @@ getStance()
|
||||
*/
|
||||
getVelocity()
|
||||
{
|
||||
if ( !isAlive( self ) )
|
||||
if ( !isalive( self ) )
|
||||
return ( 0, 0, 0 );
|
||||
|
||||
return self.velocity;
|
||||
@ -586,7 +586,7 @@ getVelocity()
|
||||
*/
|
||||
IsPlayerModelOK()
|
||||
{
|
||||
return ( isDefined( self.bot_model_fix ) );
|
||||
return ( isdefined( self.bot_model_fix ) );
|
||||
}
|
||||
|
||||
/*
|
||||
@ -596,13 +596,13 @@ WeaponIsFullAuto( weap )
|
||||
{
|
||||
weaptoks = strtok( weap, "_" );
|
||||
|
||||
return isDefined( weaptoks[0] ) && isString( weaptoks[0] ) && isdefined( level.bots_fullautoguns[weaptoks[0]] );
|
||||
return isdefined( weaptoks[0] ) && isstring( weaptoks[0] ) && isdefined( level.bots_fullautoguns[weaptoks[0]] );
|
||||
}
|
||||
|
||||
/*
|
||||
Returns what our eye height is.
|
||||
*/
|
||||
GetEyeHeight()
|
||||
getEyeHeight()
|
||||
{
|
||||
stance = self GetStance();
|
||||
|
||||
@ -624,26 +624,26 @@ GetEyeHeight()
|
||||
*/
|
||||
getTagOrigin( where )
|
||||
{
|
||||
if ( !isAlive( self ) )
|
||||
if ( !isalive( self ) )
|
||||
return ( 0, 0, 0 );
|
||||
|
||||
if ( !isDefined( self.bot_model_fix ) )
|
||||
if ( !isdefined( self.bot_model_fix ) )
|
||||
return self.origin;
|
||||
|
||||
if ( !isDefined( self.tags ) )
|
||||
if ( !isdefined( self.tags ) )
|
||||
{
|
||||
self.tags = [];
|
||||
self.tagMap = [];
|
||||
self.tagmap = [];
|
||||
}
|
||||
|
||||
if ( isDefined( self.tagMap[where] ) )
|
||||
return self.tagMap[where].origin;
|
||||
if ( isdefined( self.tagmap[where] ) )
|
||||
return self.tagmap[where].origin;
|
||||
|
||||
obj = spawn( "script_origin", ( 0, 0, 0 ) );
|
||||
obj linkto( self, where, ( 0, 0, 0 ), ( 0, 0, 0 ) );
|
||||
|
||||
self.tags[self.tags.size] = obj;
|
||||
self.tagMap[where] = obj;
|
||||
self.tagmap[where] = obj;
|
||||
|
||||
return self.origin;
|
||||
}
|
||||
@ -651,9 +651,9 @@ getTagOrigin( where )
|
||||
/*
|
||||
Returns (iw4) eye pos.
|
||||
*/
|
||||
GetEyePos()
|
||||
getEyePos()
|
||||
{
|
||||
return self.origin + ( 0, 0, self GetEyeHeight() );
|
||||
return self.origin + ( 0, 0, self getEyeHeight() );
|
||||
}
|
||||
|
||||
/*
|
||||
@ -671,7 +671,7 @@ waittill_either_return_( str1, str2 )
|
||||
*/
|
||||
waittill_either_return( str1, str2 )
|
||||
{
|
||||
if ( !isDefined( self waittill_either_return_( str1, str2 ) ) )
|
||||
if ( !isdefined( self waittill_either_return_( str1, str2 ) ) )
|
||||
return str1;
|
||||
|
||||
return str2;
|
||||
@ -751,20 +751,20 @@ _timeout( delay )
|
||||
*/
|
||||
isWeaponDroppable( weap )
|
||||
{
|
||||
return ( maps\mp\gametypes\_weapons::isPistol( weap ) || maps\mp\gametypes\_weapons::isMainWeapon( weap ) );
|
||||
return ( maps\mp\gametypes\_weapons::ispistol( weap ) || maps\mp\gametypes\_weapons::ismainweapon( weap ) );
|
||||
}
|
||||
|
||||
/*
|
||||
Selects a random element from the array.
|
||||
*/
|
||||
Random( arr )
|
||||
random( arr )
|
||||
{
|
||||
size = arr.size;
|
||||
|
||||
if ( !size )
|
||||
return undefined;
|
||||
|
||||
return arr[randomInt( size )];
|
||||
return arr[randomint( size )];
|
||||
}
|
||||
|
||||
/*
|
||||
@ -819,34 +819,34 @@ bot_wait_for_host()
|
||||
{
|
||||
host = undefined;
|
||||
|
||||
while ( !isDefined( level ) || !isDefined( level.players ) )
|
||||
while ( !isdefined( level ) || !isdefined( level.players ) )
|
||||
wait 0.05;
|
||||
|
||||
for ( i = getCvarFloat( "bots_main_waitForHostTime" ); i > 0; i -= 0.05 )
|
||||
for ( i = getcvarfloat( "bots_main_waitForHostTime" ); i > 0; i -= 0.05 )
|
||||
{
|
||||
host = GetHostPlayer();
|
||||
|
||||
if ( isDefined( host ) )
|
||||
if ( isdefined( host ) )
|
||||
break;
|
||||
|
||||
wait 0.05;
|
||||
}
|
||||
|
||||
if ( !isDefined( host ) )
|
||||
if ( !isdefined( host ) )
|
||||
return;
|
||||
|
||||
for ( i = getCvarFloat( "bots_main_waitForHostTime" ); i > 0; i -= 0.05 )
|
||||
for ( i = getcvarfloat( "bots_main_waitForHostTime" ); i > 0; i -= 0.05 )
|
||||
{
|
||||
if ( IsDefined( host.pers[ "team" ] ) )
|
||||
if ( isdefined( host.pers[ "team" ] ) )
|
||||
break;
|
||||
|
||||
wait 0.05;
|
||||
}
|
||||
|
||||
if ( !IsDefined( host.pers[ "team" ] ) )
|
||||
if ( !isdefined( host.pers[ "team" ] ) )
|
||||
return;
|
||||
|
||||
for ( i = getCvarFloat( "bots_main_waitForHostTime" ); i > 0; i -= 0.05 )
|
||||
for ( i = getcvarfloat( "bots_main_waitForHostTime" ); i > 0; i -= 0.05 )
|
||||
{
|
||||
if ( host.pers[ "team" ] == "allies" || host.pers[ "team" ] == "axis" )
|
||||
break;
|
||||
@ -893,10 +893,10 @@ RaySphereIntersect( start, end, spherePos, radius )
|
||||
// check if the start or end points are in the sphere
|
||||
r2 = radius * radius;
|
||||
|
||||
if ( DistanceSquared( start, spherePos ) < r2 )
|
||||
if ( distancesquared( start, spherePos ) < r2 )
|
||||
return true;
|
||||
|
||||
if ( DistanceSquared( end, spherePos ) < r2 )
|
||||
if ( distancesquared( end, spherePos ) < r2 )
|
||||
return true;
|
||||
|
||||
// check if the line made by start and end intersect the sphere
|
||||
@ -919,13 +919,13 @@ RaySphereIntersect( start, end, spherePos, radius )
|
||||
ip1 = start + vector_scale( dp, mu1 );
|
||||
//ip2 = start + mu2 * dp;
|
||||
|
||||
myDist = DistanceSquared( start, end );
|
||||
myDist = distancesquared( start, end );
|
||||
|
||||
// check if both intersection points far
|
||||
if ( DistanceSquared( start, ip1 ) > myDist/* && DistanceSquared(start, ip2) > myDist*/ )
|
||||
if ( distancesquared( start, ip1 ) > myDist/* && distancesquared(start, ip2) > myDist*/ )
|
||||
return false;
|
||||
|
||||
dpAngles = VectorToAngles( dp );
|
||||
dpAngles = vectortoangles( dp );
|
||||
|
||||
// check if the point is behind us
|
||||
if ( getConeDot( ip1, start, dpAngles ) < 0/* || getConeDot(ip2, start, dpAngles) < 0*/ )
|
||||
@ -948,9 +948,9 @@ vector_scale( vec, scale )
|
||||
*/
|
||||
SmokeTrace( start, end, rad )
|
||||
{
|
||||
for ( i = level.bots_smokeList.count - 1; i >= 0; i-- )
|
||||
for ( i = level.bots_smokelist.count - 1; i >= 0; i-- )
|
||||
{
|
||||
nade = level.bots_smokeList.data[i];
|
||||
nade = level.bots_smokelist.data[i];
|
||||
|
||||
if ( !RaySphereIntersect( start, end, nade.origin, rad ) )
|
||||
continue;
|
||||
@ -966,8 +966,8 @@ SmokeTrace( start, end, rad )
|
||||
*/
|
||||
getConeDot( to, from, dir )
|
||||
{
|
||||
dirToTarget = VectorNormalize( to - from );
|
||||
forward = AnglesToForward( dir );
|
||||
dirToTarget = vectornormalize( to - from );
|
||||
forward = anglestoforward( dir );
|
||||
return vectordot( dirToTarget, forward );
|
||||
}
|
||||
|
||||
@ -979,7 +979,7 @@ DistanceSquared2D( to, from )
|
||||
to = ( to[0], to[1], 0 );
|
||||
from = ( from[0], from[1], 0 );
|
||||
|
||||
return DistanceSquared( to, from );
|
||||
return distancesquared( to, from );
|
||||
}
|
||||
|
||||
/*
|
||||
@ -1052,7 +1052,7 @@ min( a, b )
|
||||
/*
|
||||
Clamps between value
|
||||
*/
|
||||
Clamp( a, minv, maxv )
|
||||
clamp( a, minv, maxv )
|
||||
{
|
||||
return max( min( a, maxv ), minv );
|
||||
}
|
||||
@ -1187,7 +1187,7 @@ keyCodeToString( a )
|
||||
*/
|
||||
parseTokensIntoWaypoint( tokens )
|
||||
{
|
||||
waypoint = spawnStruct();
|
||||
waypoint = spawnstruct();
|
||||
|
||||
orgStr = tokens[0];
|
||||
orgToks = strtok( orgStr, " " );
|
||||
@ -1205,7 +1205,7 @@ parseTokensIntoWaypoint( tokens )
|
||||
|
||||
anglesStr = tokens[3];
|
||||
|
||||
if ( isDefined( anglesStr ) && anglesStr != "" )
|
||||
if ( isdefined( anglesStr ) && anglesStr != "" )
|
||||
{
|
||||
anglesToks = strtok( anglesStr, " " );
|
||||
|
||||
@ -1232,7 +1232,7 @@ readWpsFromFile( mapname )
|
||||
|
||||
for ( ;; )
|
||||
{
|
||||
argc = fReadLn( f );
|
||||
argc = freadln( f );
|
||||
|
||||
if ( argc <= 0 )
|
||||
break;
|
||||
@ -1244,7 +1244,7 @@ readWpsFromFile( mapname )
|
||||
|
||||
for ( i = 1; i <= waypointCount; i++ )
|
||||
{
|
||||
argc = fReadLn( f );
|
||||
argc = freadln( f );
|
||||
line = "";
|
||||
|
||||
for ( h = 0; h < argc; h++ )
|
||||
@ -1255,7 +1255,7 @@ readWpsFromFile( mapname )
|
||||
line += ",";
|
||||
}
|
||||
|
||||
if ( !isDefined( line ) || line == "" )
|
||||
if ( !isdefined( line ) || line == "" )
|
||||
continue;
|
||||
|
||||
tokens = strtok( line, "," );
|
||||
@ -1268,7 +1268,7 @@ readWpsFromFile( mapname )
|
||||
break;
|
||||
}
|
||||
|
||||
closeFile( f );
|
||||
closefile( f );
|
||||
return waypoints;
|
||||
}
|
||||
|
||||
@ -1277,9 +1277,9 @@ readWpsFromFile( mapname )
|
||||
*/
|
||||
float_old( num )
|
||||
{
|
||||
setCvar( "temp_dvar_bot_util", num );
|
||||
setcvar( "temp_dvar_bot_util", num );
|
||||
|
||||
return GetCvarFloat( "temp_dvar_bot_util" );
|
||||
return getcvarfloat( "temp_dvar_bot_util" );
|
||||
}
|
||||
|
||||
/*
|
||||
@ -1296,19 +1296,19 @@ loadmbotWps( mapname, gametype )
|
||||
if ( f < 0 )
|
||||
return wps;
|
||||
|
||||
argc = fReadLn( f );
|
||||
argc = freadln( f );
|
||||
|
||||
if ( argc <= 0 )
|
||||
{
|
||||
closeFile( f );
|
||||
closefile( f );
|
||||
return wps;
|
||||
}
|
||||
|
||||
arg = fgetarg( f, 0 );
|
||||
|
||||
if ( !isDefined( arg ) || arg != "mbotwp" )
|
||||
if ( !isdefined( arg ) || arg != "mbotwp" )
|
||||
{
|
||||
closeFile( f );
|
||||
closefile( f );
|
||||
return wps;
|
||||
}
|
||||
|
||||
@ -1319,10 +1319,10 @@ loadmbotWps( mapname, gametype )
|
||||
s = fgetarg( f, 0 );
|
||||
t = strtok( s, " ," );
|
||||
|
||||
if ( !isDefined( t ) || t.size < 6 )
|
||||
if ( !isdefined( t ) || t.size < 6 )
|
||||
break;
|
||||
|
||||
wp = spawnStruct();
|
||||
wp = spawnstruct();
|
||||
wp.origin = ( float_old( t[0] ), float_old( t[1] ), float_old( t[2] ) );
|
||||
|
||||
stance = "stand";
|
||||
@ -1363,7 +1363,7 @@ loadmbotWps( mapname, gametype )
|
||||
i++;
|
||||
}
|
||||
|
||||
closeFile( f );
|
||||
closefile( f );
|
||||
return wps;
|
||||
}
|
||||
|
||||
@ -1372,15 +1372,15 @@ loadmbotWps( mapname, gametype )
|
||||
*/
|
||||
load_waypoints()
|
||||
{
|
||||
mapname = getCvar( "mapname" );
|
||||
mapname = getcvar( "mapname" );
|
||||
|
||||
level.waypointCount = 0;
|
||||
level.waypointUsage = [];
|
||||
level.waypointUsage["allies"] = [];
|
||||
level.waypointUsage["axis"] = [];
|
||||
level.waypointcount = 0;
|
||||
level.waypointusage = [];
|
||||
level.waypointusage["allies"] = [];
|
||||
level.waypointusage["axis"] = [];
|
||||
|
||||
|
||||
if ( !isDefined( level.waypoints ) )
|
||||
if ( !isdefined( level.waypoints ) )
|
||||
level.waypoints = [];
|
||||
|
||||
wps = readWpsFromFile( mapname );
|
||||
@ -1418,17 +1418,17 @@ load_waypoints()
|
||||
BotBuiltinPrintConsole( "No waypoints loaded!" );
|
||||
}
|
||||
|
||||
level.waypointCount = level.waypoints.size;
|
||||
level.waypointcount = level.waypoints.size;
|
||||
|
||||
for ( i = 0; i < level.waypointCount; i++ )
|
||||
for ( i = 0; i < level.waypointcount; i++ )
|
||||
{
|
||||
if ( !isDefined( level.waypoints[i].children ) || !isDefined( level.waypoints[i].children.size ) )
|
||||
if ( !isdefined( level.waypoints[i].children ) || !isdefined( level.waypoints[i].children.size ) )
|
||||
level.waypoints[i].children = [];
|
||||
|
||||
if ( !isDefined( level.waypoints[i].origin ) )
|
||||
if ( !isdefined( level.waypoints[i].origin ) )
|
||||
level.waypoints[i].origin = ( 0, 0, 0 );
|
||||
|
||||
if ( !isDefined( level.waypoints[i].type ) )
|
||||
if ( !isdefined( level.waypoints[i].type ) )
|
||||
level.waypoints[i].type = "crouch";
|
||||
|
||||
level.waypoints[i].childCount = undefined;
|
||||
@ -1446,7 +1446,7 @@ nearAnyOfWaypoints( dist, waypoints )
|
||||
{
|
||||
waypoint = level.waypoints[waypoints[i]];
|
||||
|
||||
if ( DistanceSquared( waypoint.origin, self.origin ) > dist )
|
||||
if ( distancesquared( waypoint.origin, self.origin ) > dist )
|
||||
continue;
|
||||
|
||||
return true;
|
||||
@ -1468,7 +1468,7 @@ waypointsNear( waypoints, dist )
|
||||
{
|
||||
wp = level.waypoints[waypoints[i]];
|
||||
|
||||
if ( DistanceSquared( wp.origin, self.origin ) > dist )
|
||||
if ( distancesquared( wp.origin, self.origin ) > dist )
|
||||
continue;
|
||||
|
||||
answer[answer.size] = waypoints[i];
|
||||
@ -1488,9 +1488,9 @@ getNearestWaypointOfWaypoints( waypoints )
|
||||
for ( i = 0; i < waypoints.size; i++ )
|
||||
{
|
||||
waypoint = level.waypoints[waypoints[i]];
|
||||
thisDist = DistanceSquared( self.origin, waypoint.origin );
|
||||
thisDist = distancesquared( self.origin, waypoint.origin );
|
||||
|
||||
if ( isDefined( answer ) && thisDist > closestDist )
|
||||
if ( isdefined( answer ) && thisDist > closestDist )
|
||||
continue;
|
||||
|
||||
answer = waypoints[i];
|
||||
@ -1507,7 +1507,7 @@ getWaypointsOfType( type )
|
||||
{
|
||||
answer = [];
|
||||
|
||||
for ( i = 0; i < level.waypointCount; i++ )
|
||||
for ( i = 0; i < level.waypointcount; i++ )
|
||||
{
|
||||
wp = level.waypoints[i];
|
||||
|
||||
@ -1533,7 +1533,7 @@ getWaypointsOfType( type )
|
||||
*/
|
||||
getWaypointForIndex( i )
|
||||
{
|
||||
if ( !isDefined( i ) )
|
||||
if ( !isdefined( i ) )
|
||||
return undefined;
|
||||
|
||||
return level.waypoints[i];
|
||||
@ -1544,7 +1544,7 @@ getWaypointForIndex( i )
|
||||
*/
|
||||
getGoodMapAmount()
|
||||
{
|
||||
switch ( getCvar( "mapname" ) )
|
||||
switch ( getcvar( "mapname" ) )
|
||||
{
|
||||
}
|
||||
|
||||
@ -1600,20 +1600,20 @@ getBotToKick()
|
||||
{
|
||||
bots = getBotArray();
|
||||
|
||||
if ( !isDefined( bots ) || !isDefined( bots.size ) || bots.size <= 0 || !isDefined( bots[0] ) )
|
||||
if ( !isdefined( bots ) || !isdefined( bots.size ) || bots.size <= 0 || !isdefined( bots[0] ) )
|
||||
return undefined;
|
||||
|
||||
tokick = undefined;
|
||||
axis = 0;
|
||||
allies = 0;
|
||||
team = getCvar( "bots_team" );
|
||||
team = getcvar( "bots_team" );
|
||||
|
||||
// count teams
|
||||
for ( i = 0; i < bots.size; i++ )
|
||||
{
|
||||
bot = bots[i];
|
||||
|
||||
if ( !isDefined( bot ) || !isDefined( bot.team ) )
|
||||
if ( !isdefined( bot ) || !isdefined( bot.team ) )
|
||||
continue;
|
||||
|
||||
if ( bot.team == "allies" )
|
||||
@ -1647,22 +1647,22 @@ getBotToKick()
|
||||
{
|
||||
bot = bots[i];
|
||||
|
||||
if ( !isDefined( bot ) || !isDefined( bot.team ) )
|
||||
if ( !isdefined( bot ) || !isdefined( bot.team ) )
|
||||
continue;
|
||||
|
||||
if ( bot.team != team )
|
||||
continue;
|
||||
|
||||
if ( !isDefined( bot.pers ) || !isDefined( bot.pers["bots"] ) || !isDefined( bot.pers["bots"]["skill"] ) || !isDefined( bot.pers["bots"]["skill"]["base"] ) )
|
||||
if ( !isdefined( bot.pers ) || !isdefined( bot.pers["bots"] ) || !isdefined( bot.pers["bots"]["skill"] ) || !isdefined( bot.pers["bots"]["skill"]["base"] ) )
|
||||
continue;
|
||||
|
||||
if ( isDefined( tokick ) && bot.pers["bots"]["skill"]["base"] > tokick.pers["bots"]["skill"]["base"] )
|
||||
if ( isdefined( tokick ) && bot.pers["bots"]["skill"]["base"] > tokick.pers["bots"]["skill"]["base"] )
|
||||
continue;
|
||||
|
||||
tokick = bot;
|
||||
}
|
||||
|
||||
if ( isDefined( tokick ) )
|
||||
if ( isdefined( tokick ) )
|
||||
return tokick;
|
||||
|
||||
// just kick lowest skill
|
||||
@ -1670,13 +1670,13 @@ getBotToKick()
|
||||
{
|
||||
bot = bots[i];
|
||||
|
||||
if ( !isDefined( bot ) || !isDefined( bot.team ) )
|
||||
if ( !isdefined( bot ) || !isdefined( bot.team ) )
|
||||
continue;
|
||||
|
||||
if ( !isDefined( bot.pers ) || !isDefined( bot.pers["bots"] ) || !isDefined( bot.pers["bots"]["skill"] ) || !isDefined( bot.pers["bots"]["skill"]["base"] ) )
|
||||
if ( !isdefined( bot.pers ) || !isdefined( bot.pers["bots"] ) || !isdefined( bot.pers["bots"]["skill"] ) || !isdefined( bot.pers["bots"]["skill"]["base"] ) )
|
||||
continue;
|
||||
|
||||
if ( isDefined( tokick ) && bot.pers["bots"]["skill"]["base"] > tokick.pers["bots"]["skill"]["base"] )
|
||||
if ( isdefined( tokick ) && bot.pers["bots"]["skill"]["base"] > tokick.pers["bots"]["skill"]["base"] )
|
||||
continue;
|
||||
|
||||
tokick = bot;
|
||||
@ -1781,7 +1781,7 @@ _WaypointsToKDTree( waypoints, dem )
|
||||
*/
|
||||
List()
|
||||
{
|
||||
list = spawnStruct();
|
||||
list = spawnstruct();
|
||||
list.count = 0;
|
||||
list.data = [];
|
||||
|
||||
@ -1839,7 +1839,7 @@ ListRemove( thing )
|
||||
*/
|
||||
KDTree()
|
||||
{
|
||||
kdTree = spawnStruct();
|
||||
kdTree = spawnstruct();
|
||||
kdTree.root = undefined;
|
||||
kdTree.count = 0;
|
||||
|
||||
@ -1859,9 +1859,9 @@ KDTreeInsert( data ) //as long as what you insert has a .origin attru, it will w
|
||||
*/
|
||||
_KDTreeInsert( node, data, dem, x0, y0, z0, x1, y1, z1 )
|
||||
{
|
||||
if ( !isDefined( node ) )
|
||||
if ( !isdefined( node ) )
|
||||
{
|
||||
r = spawnStruct();
|
||||
r = spawnstruct();
|
||||
r.data = data;
|
||||
r.left = undefined;
|
||||
r.right = undefined;
|
||||
@ -1912,10 +1912,10 @@ _KDTreeInsert( node, data, dem, x0, y0, z0, x1, y1, z1 )
|
||||
*/
|
||||
KDTreeNearest( origin )
|
||||
{
|
||||
if ( !isDefined( self.root ) )
|
||||
if ( !isdefined( self.root ) )
|
||||
return undefined;
|
||||
|
||||
return self _KDTreeNearest( self.root, origin, self.root.data, DistanceSquared( self.root.data.origin, origin ), 0 );
|
||||
return self _KDTreeNearest( self.root, origin, self.root.data, distancesquared( self.root.data.origin, origin ), 0 );
|
||||
}
|
||||
|
||||
/*
|
||||
@ -1923,12 +1923,12 @@ KDTreeNearest( origin )
|
||||
*/
|
||||
_KDTreeNearest( node, point, closest, closestdist, dem )
|
||||
{
|
||||
if ( !isDefined( node ) )
|
||||
if ( !isdefined( node ) )
|
||||
{
|
||||
return closest;
|
||||
}
|
||||
|
||||
thisDis = DistanceSquared( node.data.origin, point );
|
||||
thisDis = distancesquared( node.data.origin, point );
|
||||
|
||||
if ( thisDis < closestdist )
|
||||
{
|
||||
@ -1949,7 +1949,7 @@ _KDTreeNearest( node, point, closest, closestdist, dem )
|
||||
|
||||
closest = self _KDTreeNearest( near, point, closest, closestdist, ( dem + 1 ) % 3 );
|
||||
|
||||
closest = self _KDTreeNearest( far, point, closest, DistanceSquared( closest.origin, point ), ( dem + 1 ) % 3 );
|
||||
closest = self _KDTreeNearest( far, point, closest, distancesquared( closest.origin, point ), ( dem + 1 ) % 3 );
|
||||
}
|
||||
|
||||
return closest;
|
||||
@ -2036,7 +2036,7 @@ HeapTraceFraction( item, item2 )
|
||||
*/
|
||||
NewHeap( compare )
|
||||
{
|
||||
heap_node = spawnStruct();
|
||||
heap_node = spawnstruct();
|
||||
heap_node.data = [];
|
||||
heap_node.compare = compare;
|
||||
|
||||
@ -2135,16 +2135,16 @@ ReverseHeapAStar( item, item2 )
|
||||
*/
|
||||
RemoveWaypointUsage( wp, team )
|
||||
{
|
||||
if ( !isDefined( level.waypointUsage ) )
|
||||
if ( !isdefined( level.waypointusage ) )
|
||||
return;
|
||||
|
||||
if ( !isDefined( level.waypointUsage[team][wp + ""] ) )
|
||||
if ( !isdefined( level.waypointusage[team][wp + ""] ) )
|
||||
return;
|
||||
|
||||
level.waypointUsage[team][wp + ""]--;
|
||||
level.waypointusage[team][wp + ""]--;
|
||||
|
||||
if ( level.waypointUsage[team][wp + ""] <= 0 )
|
||||
level.waypointUsage[team][wp + ""] = undefined;
|
||||
if ( level.waypointusage[team][wp + ""] <= 0 )
|
||||
level.waypointusage[team][wp + ""] = undefined;
|
||||
}
|
||||
|
||||
/*
|
||||
@ -2155,12 +2155,12 @@ GetNearestWaypointWithSight( pos )
|
||||
candidate = undefined;
|
||||
dist = 2147483647;
|
||||
|
||||
for ( i = 0; i < level.waypointCount; i++ )
|
||||
for ( i = 0; i < level.waypointcount; i++ )
|
||||
{
|
||||
if ( !bulletTracePassed( pos + ( 0, 0, 15 ), level.waypoints[i].origin + ( 0, 0, 15 ), false, undefined ) )
|
||||
if ( !bullettracepassed( pos + ( 0, 0, 15 ), level.waypoints[i].origin + ( 0, 0, 15 ), false, undefined ) )
|
||||
continue;
|
||||
|
||||
curdis = DistanceSquared( level.waypoints[i].origin, pos );
|
||||
curdis = distancesquared( level.waypoints[i].origin, pos );
|
||||
|
||||
if ( curdis > dist )
|
||||
continue;
|
||||
@ -2175,14 +2175,14 @@ GetNearestWaypointWithSight( pos )
|
||||
/*
|
||||
Will linearly search for the nearest waypoint
|
||||
*/
|
||||
GetNearestWaypoint( pos )
|
||||
getNearestWaypoint( pos )
|
||||
{
|
||||
candidate = undefined;
|
||||
dist = 2147483647;
|
||||
|
||||
for ( i = 0; i < level.waypointCount; i++ )
|
||||
for ( i = 0; i < level.waypointcount; i++ )
|
||||
{
|
||||
curdis = DistanceSquared( level.waypoints[i].origin, pos );
|
||||
curdis = distancesquared( level.waypoints[i].origin, pos );
|
||||
|
||||
if ( curdis > dist )
|
||||
continue;
|
||||
@ -2208,35 +2208,35 @@ AStarSearch( start, goal, team, greedy_path )
|
||||
|
||||
startWp = getNearestWaypoint( start );
|
||||
|
||||
if ( !isDefined( startWp ) )
|
||||
if ( !isdefined( startWp ) )
|
||||
return [];
|
||||
|
||||
_startwp = undefined;
|
||||
|
||||
if ( !bulletTracePassed( start + ( 0, 0, 15 ), level.waypoints[startWp].origin + ( 0, 0, 15 ), false, undefined ) )
|
||||
if ( !bullettracepassed( start + ( 0, 0, 15 ), level.waypoints[startWp].origin + ( 0, 0, 15 ), false, undefined ) )
|
||||
_startwp = GetNearestWaypointWithSight( start );
|
||||
|
||||
if ( isDefined( _startwp ) )
|
||||
if ( isdefined( _startwp ) )
|
||||
startWp = _startwp;
|
||||
|
||||
|
||||
goalWp = getNearestWaypoint( goal );
|
||||
|
||||
if ( !isDefined( goalWp ) )
|
||||
if ( !isdefined( goalWp ) )
|
||||
return [];
|
||||
|
||||
_goalWp = undefined;
|
||||
|
||||
if ( !bulletTracePassed( goal + ( 0, 0, 15 ), level.waypoints[goalWp].origin + ( 0, 0, 15 ), false, undefined ) )
|
||||
_goalwp = GetNearestWaypointWithSight( goal );
|
||||
if ( !bullettracepassed( goal + ( 0, 0, 15 ), level.waypoints[goalWp].origin + ( 0, 0, 15 ), false, undefined ) )
|
||||
_goalWp = GetNearestWaypointWithSight( goal );
|
||||
|
||||
if ( isDefined( _goalwp ) )
|
||||
goalWp = _goalwp;
|
||||
if ( isdefined( _goalWp ) )
|
||||
goalWp = _goalWp;
|
||||
|
||||
|
||||
node = spawnStruct();
|
||||
node = spawnstruct();
|
||||
node.g = 0; //path dist so far
|
||||
node.h = DistanceSquared( level.waypoints[startWp].origin, level.waypoints[goalWp].origin ); //herustic, distance to goal for path finding
|
||||
node.h = distancesquared( level.waypoints[startWp].origin, level.waypoints[goalWp].origin ); //herustic, distance to goal for path finding
|
||||
node.f = node.h + node.g; // combine path dist and heru, use reverse heap to sort the priority queue by this attru
|
||||
node.index = startWp;
|
||||
node.parent = undefined; //we are start, so we have no parent
|
||||
@ -2259,14 +2259,14 @@ AStarSearch( start, goal, team, greedy_path )
|
||||
{
|
||||
path = [];
|
||||
|
||||
while ( isDefined( bestNode ) )
|
||||
while ( isdefined( bestNode ) )
|
||||
{
|
||||
if ( isdefined( team ) && isDefined( level.waypointUsage ) )
|
||||
if ( isdefined( team ) && isdefined( level.waypointusage ) )
|
||||
{
|
||||
if ( !isDefined( level.waypointUsage[team][bestNode.index + ""] ) )
|
||||
level.waypointUsage[team][bestNode.index + ""] = 0;
|
||||
if ( !isdefined( level.waypointusage[team][bestNode.index + ""] ) )
|
||||
level.waypointusage[team][bestNode.index + ""] = 0;
|
||||
|
||||
level.waypointUsage[team][bestNode.index + ""]++;
|
||||
level.waypointusage[team][bestNode.index + ""]++;
|
||||
}
|
||||
|
||||
//construct path
|
||||
@ -2286,12 +2286,12 @@ AStarSearch( start, goal, team, greedy_path )
|
||||
|
||||
penalty = 1;
|
||||
|
||||
if ( !greedy_path && isdefined( team ) && isDefined( level.waypointUsage ) )
|
||||
if ( !greedy_path && isdefined( team ) && isdefined( level.waypointusage ) )
|
||||
{
|
||||
temppen = 1;
|
||||
|
||||
if ( isDefined( level.waypointUsage[team][child + ""] ) )
|
||||
temppen = level.waypointUsage[team][child + ""]; //consider how many bots are taking this path
|
||||
if ( isdefined( level.waypointusage[team][child + ""] ) )
|
||||
temppen = level.waypointusage[team][child + ""]; //consider how many bots are taking this path
|
||||
|
||||
if ( temppen > 1 )
|
||||
penalty = temppen;
|
||||
@ -2302,15 +2302,15 @@ AStarSearch( start, goal, team, greedy_path )
|
||||
penalty += 4;
|
||||
|
||||
//calc the total path we have took
|
||||
newg = bestNode.g + DistanceSquared( wp.origin, childWp.origin ) * penalty; //bots on same team's path are more expensive
|
||||
newg = bestNode.g + distancesquared( wp.origin, childWp.origin ) * penalty; //bots on same team's path are more expensive
|
||||
|
||||
//check if this child is in open or close with a g value less than newg
|
||||
inopen = isDefined( openset[child + ""] );
|
||||
inopen = isdefined( openset[child + ""] );
|
||||
|
||||
if ( inopen && openset[child + ""].g <= newg )
|
||||
continue;
|
||||
|
||||
inclosed = isDefined( closed[child + ""] );
|
||||
inclosed = isdefined( closed[child + ""] );
|
||||
|
||||
if ( inclosed && closed[child + ""].g <= newg )
|
||||
continue;
|
||||
@ -2322,11 +2322,11 @@ AStarSearch( start, goal, team, greedy_path )
|
||||
else if ( inclosed )
|
||||
node = closed[child + ""];
|
||||
else
|
||||
node = spawnStruct();
|
||||
node = spawnstruct();
|
||||
|
||||
node.parent = bestNode;
|
||||
node.g = newg;
|
||||
node.h = DistanceSquared( childWp.origin, level.waypoints[goalWp].origin );
|
||||
node.h = distancesquared( childWp.origin, level.waypoints[goalWp].origin );
|
||||
node.f = node.g + node.h;
|
||||
node.index = child;
|
||||
|
||||
@ -2387,7 +2387,7 @@ array_std_deviation( array, mean )
|
||||
total = total + tmp[i];
|
||||
}
|
||||
|
||||
return Sqrt( total / array.size );
|
||||
return sqrt( total / array.size );
|
||||
}
|
||||
|
||||
/*
|
||||
@ -2403,21 +2403,21 @@ random_normal_distribution( mean, std_deviation, lower_bound, upper_bound )
|
||||
|
||||
while ( w >= 1 )
|
||||
{
|
||||
x1 = 2 * RandomFloatRange( 0, 1 ) - 1;
|
||||
x2 = 2 * RandomFloatRange( 0, 1 ) - 1;
|
||||
x1 = 2 * randomfloatrange( 0, 1 ) - 1;
|
||||
x2 = 2 * randomfloatrange( 0, 1 ) - 1;
|
||||
w = x1 * x1 + x2 * x2;
|
||||
}
|
||||
|
||||
w = Sqrt( ( -2.0 * Log( w ) ) / w );
|
||||
w = sqrt( ( -2.0 * Log( w ) ) / w );
|
||||
y1 = x1 * w;
|
||||
number = mean + y1 * std_deviation;
|
||||
|
||||
if ( IsDefined( lower_bound ) && number < lower_bound )
|
||||
if ( isdefined( lower_bound ) && number < lower_bound )
|
||||
{
|
||||
number = lower_bound;
|
||||
}
|
||||
|
||||
if ( IsDefined( upper_bound ) && number > upper_bound )
|
||||
if ( isdefined( upper_bound ) && number > upper_bound )
|
||||
{
|
||||
number = upper_bound;
|
||||
}
|
||||
@ -2430,14 +2430,6 @@ random_normal_distribution( mean, std_deviation, lower_bound, upper_bound )
|
||||
*/
|
||||
Log( x )
|
||||
{
|
||||
/* if (!isDefined(level.log_cache))
|
||||
level.log_cache = [];
|
||||
|
||||
key = x + "";
|
||||
|
||||
if (isDefined(level.log_cache[key]))
|
||||
return level.log_cache[key];*/
|
||||
|
||||
//thanks Bob__ at stackoverflow
|
||||
old_sum = 0.0;
|
||||
xmlxpl = ( x - 1 ) / ( x + 1 );
|
||||
@ -2455,7 +2447,5 @@ Log( x )
|
||||
}
|
||||
|
||||
answer = 2.0 * sum;
|
||||
|
||||
//level.log_cache[key] = answer;
|
||||
return answer;
|
||||
}
|
||||
|
@ -80,7 +80,7 @@ do_botaction( action )
|
||||
break;
|
||||
}
|
||||
|
||||
// self BotAction( action );
|
||||
// self botaction( action );
|
||||
}
|
||||
|
||||
do_botstop()
|
||||
@ -95,7 +95,7 @@ do_botstop()
|
||||
self setwalkdir( "none" );
|
||||
self switchtoweaponid( 1 ); // libcod needs weapon name to id
|
||||
|
||||
// self BotStop();
|
||||
// self botstop();
|
||||
}
|
||||
|
||||
do_botmovement( forward, right )
|
||||
@ -127,11 +127,11 @@ do_botmovement( forward, right )
|
||||
|
||||
self setwalkdir( "none" );
|
||||
|
||||
// self botMovement( forward, right );
|
||||
// self botmovement( forward, right );
|
||||
}
|
||||
|
||||
do_isbot()
|
||||
{
|
||||
return false; // no equal in libcod
|
||||
// self isBot();
|
||||
// self isbot();
|
||||
}
|
||||
|
Loading…
x
Reference in New Issue
Block a user