casing fixes

This commit is contained in:
ineed bots 2023-12-18 16:19:11 -06:00
parent 0734762e24
commit 0fc52265a4
5 changed files with 551 additions and 561 deletions

View File

@ -6,131 +6,131 @@
*/ */
init() init()
{ {
level.bw_VERSION = "2.1.0"; level.bw_version = "2.1.0";
if ( getCvar( "bots_main" ) == "" ) if ( getcvar( "bots_main" ) == "" )
setCvar( "bots_main", true ); setcvar( "bots_main", true );
if ( !getCvarInt( "bots_main" ) ) if ( !getcvarint( "bots_main" ) )
return; return;
if ( !wait_for_builtins() ) if ( !wait_for_builtins() )
PrintLn( "FATAL: NO BUILT-INS FOR BOTS" ); println( "FATAL: NO BUILT-INS FOR BOTS" );
thread load_waypoints(); thread load_waypoints();
thread hook_callbacks(); thread hook_callbacks();
if ( getCvar( "bots_main_GUIDs" ) == "" ) if ( getcvar( "bots_main_GUIDs" ) == "" )
setCvar( "bots_main_GUIDs", "" ); //guids of players who will be given host powers, comma seperated setcvar( "bots_main_GUIDs", "" ); //guids of players who will be given host powers, comma seperated
if ( getCvar( "bots_main_firstIsHost" ) == "" ) if ( getcvar( "bots_main_firstIsHost" ) == "" )
setCvar( "bots_main_firstIsHost", true ); //first player to connect is a host setcvar( "bots_main_firstIsHost", true ); //first player to connect is a host
if ( getCvar( "bots_main_waitForHostTime" ) == "" ) if ( getcvar( "bots_main_waitForHostTime" ) == "" )
setCvar( "bots_main_waitForHostTime", 10.0 ); //how long to wait to wait for the host player setcvar( "bots_main_waitForHostTime", 10.0 ); //how long to wait to wait for the host player
if ( getCvar( "bots_main_kickBotsAtEnd" ) == "" ) if ( getcvar( "bots_main_kickBotsAtEnd" ) == "" )
setCvar( "bots_main_kickBotsAtEnd", false ); //kicks the bots at game end setcvar( "bots_main_kickBotsAtEnd", false ); //kicks the bots at game end
if ( getCvar( "bots_manage_add" ) == "" ) if ( getcvar( "bots_manage_add" ) == "" )
setCvar( "bots_manage_add", 0 ); //amount of bots to add to the game setcvar( "bots_manage_add", 0 ); //amount of bots to add to the game
if ( getCvar( "bots_manage_fill" ) == "" ) if ( getcvar( "bots_manage_fill" ) == "" )
setCvar( "bots_manage_fill", 0 ); //amount of bots to maintain setcvar( "bots_manage_fill", 0 ); //amount of bots to maintain
if ( getCvar( "bots_manage_fill_spec" ) == "" ) if ( getcvar( "bots_manage_fill_spec" ) == "" )
setCvar( "bots_manage_fill_spec", true ); //to count for fill if player is on spec team setcvar( "bots_manage_fill_spec", true ); //to count for fill if player is on spec team
if ( getCvar( "bots_manage_fill_mode" ) == "" ) 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 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" ) == "" ) if ( getcvar( "bots_manage_fill_kick" ) == "" )
setCvar( "bots_manage_fill_kick", false ); //kick bots if too many setcvar( "bots_manage_fill_kick", false ); //kick bots if too many
if ( getCvar( "bots_team" ) == "" ) if ( getcvar( "bots_team" ) == "" )
setCvar( "bots_team", "autoassign" ); //which team for bots to join setcvar( "bots_team", "autoassign" ); //which team for bots to join
if ( getCvar( "bots_team_amount" ) == "" ) if ( getcvar( "bots_team_amount" ) == "" )
setCvar( "bots_team_amount", 0 ); //amount of bots on axis team setcvar( "bots_team_amount", 0 ); //amount of bots on axis team
if ( getCvar( "bots_team_force" ) == "" ) if ( getcvar( "bots_team_force" ) == "" )
setCvar( "bots_team_force", false ); //force bots on team setcvar( "bots_team_force", false ); //force bots on team
if ( getCvar( "bots_team_mode" ) == "" ) if ( getcvar( "bots_team_mode" ) == "" )
setCvar( "bots_team_mode", 0 ); //counts just bots when 1 setcvar( "bots_team_mode", 0 ); //counts just bots when 1
if ( getCvar( "bots_skill" ) == "" ) if ( getcvar( "bots_skill" ) == "" )
setCvar( "bots_skill", 0 ); //0 is random, 1 is easy 7 is hard, 8 is custom, 9 is completely random 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" ) == "" ) if ( getcvar( "bots_skill_axis_hard" ) == "" )
setCvar( "bots_skill_axis_hard", 0 ); //amount of hard bots on axis team setcvar( "bots_skill_axis_hard", 0 ); //amount of hard bots on axis team
if ( getCvar( "bots_skill_axis_med" ) == "" ) if ( getcvar( "bots_skill_axis_med" ) == "" )
setCvar( "bots_skill_axis_med", 0 ); setcvar( "bots_skill_axis_med", 0 );
if ( getCvar( "bots_skill_allies_hard" ) == "" ) if ( getcvar( "bots_skill_allies_hard" ) == "" )
setCvar( "bots_skill_allies_hard", 0 ); setcvar( "bots_skill_allies_hard", 0 );
if ( getCvar( "bots_skill_allies_med" ) == "" ) if ( getcvar( "bots_skill_allies_med" ) == "" )
setCvar( "bots_skill_allies_med", 0 ); setcvar( "bots_skill_allies_med", 0 );
if ( getCvar( "bots_skill_min" ) == "" ) if ( getcvar( "bots_skill_min" ) == "" )
setCvar( "bots_skill_min", 1 ); setcvar( "bots_skill_min", 1 );
if ( getCvar( "bots_skill_max" ) == "" ) if ( getcvar( "bots_skill_max" ) == "" )
setCvar( "bots_skill_max", 7 ); 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 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 ); setcvar( "bots_loadout_rank", -1 );
if ( getCvar( "bots_play_move" ) == "" ) //bots move if ( getcvar( "bots_play_move" ) == "" ) //bots move
setCvar( "bots_play_move", true ); setcvar( "bots_play_move", true );
if ( getCvar( "bots_play_knife" ) == "" ) //bots knife if ( getcvar( "bots_play_knife" ) == "" ) //bots knife
setCvar( "bots_play_knife", true ); setcvar( "bots_play_knife", true );
if ( getCvar( "bots_play_fire" ) == "" ) //bots fire if ( getcvar( "bots_play_fire" ) == "" ) //bots fire
setCvar( "bots_play_fire", true ); setcvar( "bots_play_fire", true );
if ( getCvar( "bots_play_nade" ) == "" ) //bots grenade if ( getcvar( "bots_play_nade" ) == "" ) //bots grenade
setCvar( "bots_play_nade", true ); setcvar( "bots_play_nade", true );
if ( getCvar( "bots_play_obj" ) == "" ) //bots play the obj if ( getcvar( "bots_play_obj" ) == "" ) //bots play the obj
setCvar( "bots_play_obj", true ); setcvar( "bots_play_obj", true );
if ( getCvar( "bots_play_camp" ) == "" ) //bots camp and follow if ( getcvar( "bots_play_camp" ) == "" ) //bots camp and follow
setCvar( "bots_play_camp", true ); setcvar( "bots_play_camp", true );
if ( getCvar( "bots_play_jumpdrop" ) == "" ) //bots jump and dropshot if ( getcvar( "bots_play_jumpdrop" ) == "" ) //bots jump and dropshot
setCvar( "bots_play_jumpdrop", true ); setcvar( "bots_play_jumpdrop", true );
if ( getCvar( "bots_play_ads" ) == "" ) //bot ads if ( getcvar( "bots_play_ads" ) == "" ) //bot ads
setCvar( "bots_play_ads", true ); setcvar( "bots_play_ads", true );
if ( getCvar( "bots_play_aim" ) == "" ) if ( getcvar( "bots_play_aim" ) == "" )
setCvar( "bots_play_aim", true ); setcvar( "bots_play_aim", true );
if ( !isDefined( game["botWarfare"] ) ) if ( !isdefined( game["botWarfare"] ) )
game["botWarfare"] = true; game["botWarfare"] = true;
level.defuseObject = undefined; level.defuseobject = undefined;
level.bots_smokeList = List(); level.bots_smokelist = List();
level.bots_minGrenadeDistance = 256; level.bots_mingrenadedistance = 256;
level.bots_minGrenadeDistance *= level.bots_minGrenadeDistance; level.bots_mingrenadedistance *= level.bots_mingrenadedistance;
level.bots_maxGrenadeDistance = 1024; level.bots_maxgrenadedistance = 1024;
level.bots_maxGrenadeDistance *= level.bots_maxGrenadeDistance; level.bots_maxgrenadedistance *= level.bots_maxgrenadedistance;
level.bots_maxKnifeDistance = 80; level.bots_maxknifedistance = 80;
level.bots_maxKnifeDistance *= level.bots_maxKnifeDistance; level.bots_maxknifedistance *= level.bots_maxknifedistance;
level.bots_goalDistance = 27.5; level.bots_goaldistance = 27.5;
level.bots_goalDistance *= level.bots_goalDistance; level.bots_goaldistance *= level.bots_goaldistance;
level.bots_noADSDistance = 200; level.bots_noadsdistance = 200;
level.bots_noADSDistance *= level.bots_noADSDistance; level.bots_noadsdistance *= level.bots_noadsdistance;
level.bots_maxShotgunDistance = 500; level.bots_maxshotgundistance = 500;
level.bots_maxShotgunDistance *= level.bots_maxShotgunDistance; level.bots_maxshotgundistance *= level.bots_maxshotgundistance;
level.bots_listenDist = 100; level.bots_listendist = 100;
level.smokeRadius = 255; level.smokeradius = 255;
level.bots = []; level.bots = [];
level.players = []; level.players = [];
@ -207,10 +207,10 @@ init()
level thread watchNades(); level thread watchNades();
level thread watchGameEnded(); level thread watchGameEnded();
level.teamBased = true; level.teambased = true;
if ( getcvar( "g_gametype" ) == "dm" ) if ( getcvar( "g_gametype" ) == "dm" )
level.teamBased = false; level.teambased = false;
} }
/* /*
@ -225,16 +225,16 @@ handleBots()
while ( !level.mapended ) while ( !level.mapended )
wait 0.05; 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; return;
bots = getBotArray(); bots = getBotArray();
for ( i = 0; i < bots.size; i++ ) 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 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 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() hook_callbacks()
{ {
wait 0.05; wait 0.05;
level.prevCallbackPlayerDamage = level.callbackPlayerDamage; level.prevcallbackplayerdamage = level.callbackplayerdamage;
level.callbackPlayerDamage = ::onPlayerDamage; level.callbackplayerdamage = ::onPlayerDamage;
level.prevCallbackPlayerKilled = level.callbackPlayerKilled; level.prevcallbackplayerkilled = level.callbackplayerkilled;
level.callbackPlayerKilled = ::onPlayerKilled; level.callbackplayerkilled = ::onPlayerKilled;
} }
/* /*
@ -329,13 +329,13 @@ watchWeapons()
for ( ;; ) for ( ;; )
{ {
weap = self getCurrentWeapon(); weap = self getcurrentweapon();
self thread watchAmmoUsage( weap ); self thread watchAmmoUsage( weap );
while ( weap == self getCurrentWeapon() ) while ( weap == self getcurrentweapon() )
wait 0.05; wait 0.05;
self notify( "weapon_change", self getCurrentWeapon() ); self notify( "weapon_change", self getcurrentweapon() );
} }
} }
@ -351,12 +351,12 @@ watchAmmoUsage( weap )
for ( ;; ) for ( ;; )
{ {
aCount = self GetWeaponSlotClipAmmo( slot ); aCount = self getweaponslotclipammo( slot );
while ( aCount == self GetWeaponSlotClipAmmo( slot ) ) while ( aCount == self getweaponslotclipammo( slot ) )
wait 0.05; wait 0.05;
if ( self GetWeaponSlotClipAmmo( slot ) < aCount ) if ( self getweaponslotclipammo( slot ) < aCount )
self notify( "weapon_fired" ); self notify( "weapon_fired" );
else else
self notify( "reload" ); self notify( "reload" );
@ -400,13 +400,13 @@ watchVelocity()
*/ */
killTags() killTags()
{ {
if ( isDefined( self.tags ) ) if ( isdefined( self.tags ) )
{ {
for ( i = 0; i < self.tags.size; i++ ) for ( i = 0; i < self.tags.size; i++ )
self.tags[i] delete (); self.tags[i] delete ();
self.tags = undefined; self.tags = undefined;
self.tagMap = undefined; self.tagmap = undefined;
} }
} }
@ -456,19 +456,19 @@ connected()
level.players[level.players.size] = self; level.players[level.players.size] = self;
self thread onDisconnectPlayer(); self thread onDisconnectPlayer();
if ( !isDefined( self.pers["bot_host"] ) ) if ( !isdefined( self.pers["bot_host"] ) )
self thread doHostCheck(); self thread doHostCheck();
if ( !self is_bot() ) if ( !self is_bot() )
return; return;
if ( !isDefined( self.pers["isBot"] ) ) if ( !isdefined( self.pers["isBot"] ) )
{ {
// fast restart... // fast restart...
self.pers["isBot"] = true; self.pers["isBot"] = true;
} }
if ( !isDefined( self.pers["isBotWarfare"] ) ) if ( !isdefined( self.pers["isBotWarfare"] ) )
{ {
self.pers["isBotWarfare"] = true; self.pers["isBotWarfare"] = true;
self thread added(); self thread added();
@ -496,34 +496,34 @@ watchBotDebugEvent()
{ {
self waittill( "bot_event", msg, str, b, c, d, e, f, g ); 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; big_str = "Bot Warfare debug: " + self.name + ": " + msg;
if ( isDefined( str ) && isString( str ) ) if ( isdefined( str ) && isstring( str ) )
big_str += ", " + str; big_str += ", " + str;
if ( isDefined( b ) && isString( b ) ) if ( isdefined( b ) && isstring( b ) )
big_str += ", " + b; big_str += ", " + b;
if ( isDefined( c ) && isString( c ) ) if ( isdefined( c ) && isstring( c ) )
big_str += ", " + c; big_str += ", " + c;
if ( isDefined( d ) && isString( d ) ) if ( isdefined( d ) && isstring( d ) )
big_str += ", " + d; big_str += ", " + d;
if ( isDefined( e ) && isString( e ) ) if ( isdefined( e ) && isstring( e ) )
big_str += ", " + e; big_str += ", " + e;
if ( isDefined( f ) && isString( f ) ) if ( isdefined( f ) && isstring( f ) )
big_str += ", " + f; big_str += ", " + f;
if ( isDefined( g ) && isString( g ) ) if ( isdefined( g ) && isstring( g ) )
big_str += ", " + g; big_str += ", " + g;
BotBuiltinPrintConsole( big_str ); 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 ); BotBuiltinPrintConsole( "Bot Warfare debug: " + self.name + ": " + str );
} }
@ -561,11 +561,11 @@ add_bot()
*/ */
diffBots_loop() diffBots_loop()
{ {
var_allies_hard = getCvarInt( "bots_skill_allies_hard" ); var_allies_hard = getcvarint( "bots_skill_allies_hard" );
var_allies_med = getCvarInt( "bots_skill_allies_med" ); var_allies_med = getcvarint( "bots_skill_allies_med" );
var_axis_hard = getCvarInt( "bots_skill_axis_hard" ); var_axis_hard = getcvarint( "bots_skill_axis_hard" );
var_axis_med = getCvarInt( "bots_skill_axis_med" ); var_axis_med = getcvarint( "bots_skill_axis_med" );
var_skill = getCvarInt( "bots_skill" ); var_skill = getcvarint( "bots_skill" );
allies_hard = 0; allies_hard = 0;
allies_med = 0; allies_med = 0;
@ -580,7 +580,7 @@ diffBots_loop()
{ {
player = level.players[i]; player = level.players[i];
if ( !isDefined( player.pers["team"] ) ) if ( !isdefined( player.pers["team"] ) )
continue; continue;
if ( !player is_bot() ) if ( !player is_bot() )
@ -634,8 +634,8 @@ diffBots_loop()
} }
playercount = level.players.size; playercount = level.players.size;
min_diff = GetCvarInt( "bots_skill_min" ); min_diff = getcvarint( "bots_skill_min" );
max_diff = GetCvarInt( "bots_skill_max" ); max_diff = getcvarint( "bots_skill_max" );
for ( i = 0; i < playercount; i++ ) for ( i = 0; i < playercount; i++ )
{ {
@ -666,8 +666,8 @@ diffBots()
*/ */
teamBots_loop() teamBots_loop()
{ {
teamAmount = getCvarInt( "bots_team_amount" ); teamAmount = getcvarint( "bots_team_amount" );
toTeam = getCvar( "bots_team" ); toTeam = getcvar( "bots_team" );
alliesbots = 0; alliesbots = 0;
alliesplayers = 0; alliesplayers = 0;
@ -680,7 +680,7 @@ teamBots_loop()
{ {
player = level.players[i]; player = level.players[i];
if ( !isDefined( player.pers["team"] ) ) if ( !isdefined( player.pers["team"] ) )
continue; continue;
if ( player is_bot() ) if ( player is_bot() )
@ -702,7 +702,7 @@ teamBots_loop()
allies = alliesbots; allies = alliesbots;
axis = axisbots; axis = axisbots;
if ( !getCvarInt( "bots_team_mode" ) ) if ( !getcvarint( "bots_team_mode" ) )
{ {
allies += alliesplayers; allies += alliesplayers;
axis += axisplayers; axis += axisplayers;
@ -710,7 +710,7 @@ teamBots_loop()
if ( toTeam != "custom" ) if ( toTeam != "custom" )
{ {
if ( getCvarInt( "bots_team_force" ) ) if ( getcvarint( "bots_team_force" ) )
{ {
if ( toTeam == "autoassign" ) if ( toTeam == "autoassign" )
{ {
@ -731,7 +731,7 @@ teamBots_loop()
{ {
player = level.players[i]; player = level.players[i];
if ( !isDefined( player.pers["team"] ) ) if ( !isdefined( player.pers["team"] ) )
continue; continue;
if ( !player is_bot() ) if ( !player is_bot() )
@ -760,7 +760,7 @@ teamBots_loop()
{ {
player = level.players[i]; player = level.players[i];
if ( !isDefined( player.pers["team"] ) ) if ( !isdefined( player.pers["team"] ) )
continue; continue;
if ( !player is_bot() ) if ( !player is_bot() )
@ -809,11 +809,11 @@ teamBots()
*/ */
addBots_loop() addBots_loop()
{ {
botsToAdd = GetCvarInt( "bots_manage_add" ); botsToAdd = getcvarint( "bots_manage_add" );
if ( botsToAdd > 0 ) if ( botsToAdd > 0 )
{ {
SetCvar( "bots_manage_add", 0 ); setcvar( "bots_manage_add", 0 );
if ( botsToAdd > 64 ) if ( botsToAdd > 64 )
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 ) 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; players = 0;
bots = 0; bots = 0;
@ -844,17 +844,17 @@ addBots_loop()
if ( player is_bot() ) if ( player is_bot() )
bots++; 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++; spec++;
else else
players++; players++;
} }
if ( !randomInt( 999 ) ) if ( !randomint( 999 ) )
{ {
setCvar( "testclients_doreload", true ); setcvar( "testclients_doreload", true );
wait 0.1; wait 0.1;
setCvar( "testclients_doreload", false ); setcvar( "testclients_doreload", false );
doExtraCheck(); doExtraCheck();
} }
@ -872,7 +872,7 @@ addBots_loop()
if ( player is_bot() ) if ( player is_bot() )
continue; continue;
if ( !isDefined( player.pers["team"] ) ) if ( !isdefined( player.pers["team"] ) )
continue; continue;
if ( player.pers["team"] == "axis" ) if ( player.pers["team"] == "axis" )
@ -901,17 +901,17 @@ addBots_loop()
if ( fillMode == 0 || fillMode == 2 ) if ( fillMode == 0 || fillMode == 2 )
amount += players; amount += players;
if ( getCvarInt( "bots_manage_fill_spec" ) ) if ( getcvarint( "bots_manage_fill_spec" ) )
amount += spec; amount += spec;
if ( amount < fillAmount ) if ( amount < fillAmount )
setCvar( "bots_manage_add", 1 ); setcvar( "bots_manage_add", 1 );
else if ( amount > fillAmount && getCvarInt( "bots_manage_fill_kick" ) ) else if ( amount > fillAmount && getcvarint( "bots_manage_fill_kick" ) )
{ {
tempBot = getBotToKick(); tempBot = getBotToKick();
if ( isDefined( tempBot ) ) if ( isdefined( tempBot ) )
kick( tempBot getEntityNumber() ); kick( tempBot getentitynumber() );
} }
} }
@ -964,14 +964,14 @@ doFiringThread()
*/ */
launchSmoke( org ) launchSmoke( org )
{ {
nade = spawnStruct(); nade = spawnstruct();
nade.origin = org; nade.origin = org;
level.bots_smokeList ListAdd( nade ); level.bots_smokelist ListAdd( nade );
wait 11.5; wait 11.5;
level.bots_smokeList ListRemove( nade ); level.bots_smokelist ListRemove( nade );
} }
/* /*
@ -982,19 +982,19 @@ watchNade()
self endon( "death" ); self endon( "death" );
lastOrigin = self.origin; lastOrigin = self.origin;
creationTime = getTime(); creationTime = gettime();
timeSlow = 0; timeSlow = 0;
wait 0.05; wait 0.05;
while ( isDefined( self ) ) while ( isdefined( self ) )
{ {
velocity = vector_scale( self.origin - lastOrigin, 20 ); velocity = vector_scale( self.origin - lastOrigin, 20 );
lastOrigin = self.origin; lastOrigin = self.origin;
if ( getTime() - creationTime > 4000 ) if ( gettime() - creationTime > 4000 )
{ {
if ( lengthSquared( velocity ) <= 0.05 ) if ( lengthsquared( velocity ) <= 0.05 )
timeSlow += 0.05; timeSlow += 0.05;
else else
timeSlow = 0; timeSlow = 0;
@ -1021,10 +1021,10 @@ watchNades_loop()
{ {
nade = nades[i]; nade = nades[i];
if ( !isDefined( nade ) ) if ( !isdefined( nade ) )
continue; continue;
if ( isDefined( nade.bot_audit ) ) if ( isdefined( nade.bot_audit ) )
continue; continue;
nade.bot_audit = true; nade.bot_audit = true;
@ -1051,24 +1051,24 @@ watchNades()
*/ */
watchGameEnded() watchGameEnded()
{ {
level.gameEnded = false; level.gameended = false;
for ( ;; ) for ( ;; )
{ {
wait 0.05; wait 0.05;
if ( isDefined( level.roundended ) ) if ( isdefined( level.roundended ) )
{ {
if ( level.roundended ) if ( level.roundended )
break; break;
} }
else if ( isDefined( level.mapended ) ) else if ( isdefined( level.mapended ) )
{ {
if ( level.mapended ) if ( level.mapended )
break; break;
} }
} }
level.gameEnded = true; level.gameended = true;
level notify( "game_ended" ); level notify( "game_ended" );
} }

File diff suppressed because it is too large Load Diff

View File

@ -18,8 +18,8 @@ connected()
{ {
self endon( "disconnect" ); self endon( "disconnect" );
self.killerLocation = undefined; self.killerlocation = undefined;
self.lastKiller = undefined; self.lastkiller = undefined;
self.bot_change_class = true; self.bot_change_class = true;
self thread difficulty(); self thread difficulty();
@ -34,10 +34,10 @@ connected()
*/ */
onKilled( eInflictor, eAttacker, iDamage, sMeansOfDeath, sWeapon, vDir, sHitLoc, timeOffset, deathAnimDuration ) onKilled( eInflictor, eAttacker, iDamage, sMeansOfDeath, sWeapon, vDir, sHitLoc, timeOffset, deathAnimDuration )
{ {
self.killerLocation = undefined; self.killerlocation = undefined;
self.lastKiller = undefined; self.lastkiller = undefined;
if ( !IsDefined( self ) || !isDefined( self.team ) ) if ( !isdefined( self ) || !isdefined( self.team ) )
return; return;
if ( sMeansOfDeath == "MOD_FALLING" || sMeansOfDeath == "MOD_SUICIDE" ) if ( sMeansOfDeath == "MOD_FALLING" || sMeansOfDeath == "MOD_SUICIDE" )
@ -46,23 +46,23 @@ onKilled( eInflictor, eAttacker, iDamage, sMeansOfDeath, sWeapon, vDir, sHitLoc,
if ( iDamage <= 0 ) if ( iDamage <= 0 )
return; return;
if ( !IsDefined( eAttacker ) || !isDefined( eAttacker.team ) ) if ( !isdefined( eAttacker ) || !isdefined( eAttacker.team ) )
return; return;
if ( eAttacker == self ) if ( eAttacker == self )
return; return;
if ( level.teamBased && eAttacker.team == self.team ) if ( level.teambased && eAttacker.team == self.team )
return; return;
if ( !IsDefined( eInflictor ) || eInflictor.classname != "player" ) if ( !isdefined( eInflictor ) || eInflictor.classname != "player" )
return; return;
if ( !isAlive( eAttacker ) ) if ( !isalive( eAttacker ) )
return; return;
self.killerLocation = eAttacker.origin; self.killerlocation = eAttacker.origin;
self.lastKiller = eAttacker; 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 ) onDamage( eInflictor, eAttacker, iDamage, iDFlags, sMeansOfDeath, sWeapon, vPoint, vDir, sHitLoc, timeOffset )
{ {
if ( !IsDefined( self ) || !isDefined( self.team ) ) if ( !isdefined( self ) || !isdefined( self.team ) )
return; return;
if ( !isAlive( self ) ) if ( !isalive( self ) )
return; return;
if ( sMeansOfDeath == "MOD_FALLING" || sMeansOfDeath == "MOD_SUICIDE" ) if ( sMeansOfDeath == "MOD_FALLING" || sMeansOfDeath == "MOD_SUICIDE" )
@ -82,19 +82,19 @@ onDamage( eInflictor, eAttacker, iDamage, iDFlags, sMeansOfDeath, sWeapon, vPoin
if ( iDamage <= 0 ) if ( iDamage <= 0 )
return; return;
if ( !IsDefined( eAttacker ) || !isDefined( eAttacker.team ) ) if ( !isdefined( eAttacker ) || !isdefined( eAttacker.team ) )
return; return;
if ( eAttacker == self ) if ( eAttacker == self )
return; return;
if ( level.teamBased && eAttacker.team == self.team ) if ( level.teambased && eAttacker.team == self.team )
return; return;
if ( !IsDefined( eInflictor ) || eInflictor.classname != "player" ) if ( !isdefined( eInflictor ) || eInflictor.classname != "player" )
return; return;
if ( !isAlive( eAttacker ) ) if ( !isalive( eAttacker ) )
return; return;
self bot_cry_for_help( eAttacker ); self bot_cry_for_help( eAttacker );
@ -107,14 +107,14 @@ onDamage( eInflictor, eAttacker, iDamage, iDFlags, sMeansOfDeath, sWeapon, vPoin
*/ */
bot_cry_for_help( attacker ) bot_cry_for_help( attacker )
{ {
if ( !level.teamBased ) if ( !level.teambased )
{ {
return; 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; return;
} }
@ -130,13 +130,13 @@ bot_cry_for_help( attacker )
continue; continue;
} }
if ( !isDefined( player.team ) ) if ( !isdefined( player.team ) )
continue; continue;
if ( !player IsPlayerModelOK() ) if ( !player IsPlayerModelOK() )
continue; continue;
if ( !IsAlive( player ) ) if ( !isalive( player ) )
{ {
continue; continue;
} }
@ -154,16 +154,16 @@ bot_cry_for_help( attacker )
dist = player.pers["bots"]["skill"]["help_dist"]; dist = player.pers["bots"]["skill"]["help_dist"];
dist *= dist; dist *= dist;
if ( DistanceSquared( self.origin, player.origin ) > dist ) if ( distancesquared( self.origin, player.origin ) > dist )
{ {
continue; continue;
} }
if ( RandomInt( 100 ) < 50 ) if ( randomint( 100 ) < 50 )
{ {
self SetAttacker( attacker ); self SetAttacker( attacker );
if ( RandomInt( 100 ) > 70 ) if ( randomint( 100 ) > 70 )
{ {
break; break;
} }
@ -176,7 +176,7 @@ bot_cry_for_help( attacker )
*/ */
set_diff() set_diff()
{ {
rankVar = GetCvarInt( "bots_skill" ); rankVar = getcvarint( "bots_skill" );
switch ( rankVar ) switch ( rankVar )
{ {
@ -188,36 +188,36 @@ set_diff()
break; break;
case 9: case 9:
self.pers["bots"]["skill"]["base"] = randomIntRange( 1, 7 ); self.pers["bots"]["skill"]["base"] = randomintrange( 1, 7 );
self.pers["bots"]["skill"]["aim_time"] = 0.05 * randomIntRange( 1, 20 ); 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"]["init_react_time"] = 50 * randomint( 100 );
self.pers["bots"]["skill"]["reaction_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_ads_time"] = 50 * randomint( 100 );
self.pers["bots"]["skill"]["no_trace_look_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"]["remember_time"] = 50 * randomint( 100 );
self.pers["bots"]["skill"]["fov"] = randomFloatRange( -1, 1 ); 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_start"] = randomNum;
self.pers["bots"]["skill"]["dist_max"] = randomNum * 2; self.pers["bots"]["skill"]["dist_max"] = randomNum * 2;
self.pers["bots"]["skill"]["spawn_time"] = 0.05 * randomInt( 20 ); self.pers["bots"]["skill"]["spawn_time"] = 0.05 * randomint( 20 );
self.pers["bots"]["skill"]["help_dist"] = randomIntRange( 500, 25000 ); self.pers["bots"]["skill"]["help_dist"] = randomintrange( 500, 25000 );
self.pers["bots"]["skill"]["semi_time"] = randomFloatRange( 0.05, 1 ); 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"]["shoot_after_time"] = randomfloatrange( 0.05, 1 );
self.pers["bots"]["skill"]["aim_offset_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"]["aim_offset_amount"] = randomfloatrange( 0.05, 1 );
self.pers["bots"]["skill"]["bone_update_interval"] = 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"]["skill"]["bones"] = "j_head,j_spine4,j_ankle_ri,j_ankle_le";
self.pers["bots"]["behavior"]["strafe"] = randomInt( 100 ); self.pers["bots"]["behavior"]["strafe"] = randomint( 100 );
self.pers["bots"]["behavior"]["nade"] = randomInt( 100 ); self.pers["bots"]["behavior"]["nade"] = randomint( 100 );
self.pers["bots"]["behavior"]["camp"] = randomInt( 100 ); self.pers["bots"]["behavior"]["camp"] = randomint( 100 );
self.pers["bots"]["behavior"]["follow"] = randomInt( 100 ); self.pers["bots"]["behavior"]["follow"] = randomint( 100 );
self.pers["bots"]["behavior"]["crouch"] = randomInt( 100 ); self.pers["bots"]["behavior"]["crouch"] = randomint( 100 );
self.pers["bots"]["behavior"]["switch"] = randomInt( 100 ); self.pers["bots"]["behavior"]["switch"] = randomint( 100 );
self.pers["bots"]["behavior"]["class"] = randomInt( 100 ); self.pers["bots"]["behavior"]["class"] = randomint( 100 );
self.pers["bots"]["behavior"]["jump"] = randomInt( 100 ); self.pers["bots"]["behavior"]["jump"] = randomint( 100 );
break; break;
default: default:
@ -235,7 +235,7 @@ difficulty()
for ( ;; ) for ( ;; )
{ {
if ( GetCvarInt( "bots_skill" ) != 9 ) if ( getcvarint( "bots_skill" ) != 9 )
{ {
switch ( self.pers["bots"]["skill"]["base"] ) switch ( self.pers["bots"]["skill"]["base"] )
{ {
@ -477,7 +477,7 @@ teamWatch()
wait 0.1; wait 0.1;
if ( self.team != "axis" && self.team != "allies" ) 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"] ) ) while ( isdefined( self.pers["team"] ) )
wait .05; wait .05;
@ -556,12 +556,12 @@ classWatch()
wait 0.5; 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 notify( "menuresponse", game["menu_weapon_" + self.team], self chooseRandomClass() );
self.bot_change_class = true; 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; wait .05;
} }
} }
@ -577,7 +577,7 @@ onSpawned()
{ {
self waittill( "spawned_player" ); 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_change_class = undefined;
self.bot_lock_goal = false; self.bot_lock_goal = false;

View File

@ -7,7 +7,7 @@ wait_for_builtins()
{ {
for ( i = 0; i < 20; i++ ) for ( i = 0; i < 20; i++ )
{ {
if ( isDefined( level.bot_builtins ) ) if ( isdefined( level.bot_builtins ) )
return true; return true;
if ( i < 18 ) if ( i < 18 )
@ -24,7 +24,7 @@ wait_for_builtins()
*/ */
BotBuiltinPrintConsole( s ) 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 ); [[ level.bot_builtins["printconsole" ]]]( s );
} }
@ -36,7 +36,7 @@ BotBuiltinPrintConsole( s )
*/ */
BotBuiltinBotAction( action ) 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 ); self [[ level.bot_builtins["botaction" ]]]( action );
} }
@ -48,7 +48,7 @@ BotBuiltinBotAction( action )
*/ */
BotBuiltinBotStop() 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" ]]](); self [[ level.bot_builtins["botstop" ]]]();
} }
@ -60,7 +60,7 @@ BotBuiltinBotStop()
*/ */
BotBuiltinBotMovement( forward, right ) 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 ); self [[ level.bot_builtins["botmovement" ]]]( forward, right );
} }
@ -71,7 +71,7 @@ BotBuiltinBotMovement( forward, right )
*/ */
BotBuiltinIsBot() 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" ]]](); return self [[ level.bot_builtins["isbot" ]]]();
} }
@ -84,7 +84,7 @@ BotBuiltinIsBot()
*/ */
is_host() 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; result = false;
if ( getCvar( "bots_main_firstIsHost" ) != "0" ) if ( getcvar( "bots_main_firstIsHost" ) != "0" )
{ {
BotBuiltinPrintConsole( "WARNING: bots_main_firstIsHost is enabled" ); 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; result = true;
} }
DvarGUID = getCvar( "bots_main_GUIDs" ); DvarGUID = getcvar( "bots_main_GUIDs" );
if ( DvarGUID != "" ) if ( DvarGUID != "" )
{ {
@ -136,7 +136,7 @@ doHostCheck()
*/ */
is_bot() 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() BotGetTargetRandom()
{ {
if ( !isDefined( self.bot.target ) ) if ( !isdefined( self.bot.target ) )
return undefined; return undefined;
return self.bot.target.rand; return self.bot.target.rand;
@ -290,7 +290,7 @@ BotNotifyBotEvent( msg, a, b, c, d, e, f, g )
*/ */
HasScriptGoal() HasScriptGoal()
{ {
return ( isDefined( self GetScriptGoal() ) ); return ( isdefined( self GetScriptGoal() ) );
} }
/* /*
@ -306,7 +306,7 @@ GetScriptGoal()
*/ */
SetScriptGoal( goal, dist ) SetScriptGoal( goal, dist )
{ {
if ( !isDefined( dist ) ) if ( !isdefined( dist ) )
dist = 16; dist = 16;
self.bot.script_goal = goal; self.bot.script_goal = goal;
@ -353,7 +353,7 @@ GetScriptAimPos()
*/ */
HasScriptAimPos() HasScriptAimPos()
{ {
return isDefined( self GetScriptAimPos() ); return isdefined( self GetScriptAimPos() );
} }
/* /*
@ -397,7 +397,7 @@ GetThreat()
*/ */
HasScriptEnemy() HasScriptEnemy()
{ {
return ( isDefined( self.bot.script_target ) ); return ( isdefined( self.bot.script_target ) );
} }
/* /*
@ -405,7 +405,7 @@ HasScriptEnemy()
*/ */
HasThreat() HasThreat()
{ {
return ( isDefined( self GetThreat() ) ); return ( isdefined( self GetThreat() ) );
} }
/* /*
@ -439,7 +439,7 @@ ClearPriorityObjective()
*/ */
isInUse() 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++ ) for ( i = 0; i < grenadeTypes.size; i++ )
{ {
if ( !self hasWeapon( grenadeTypes[i] ) ) if ( !self hasweapon( grenadeTypes[i] ) )
continue; continue;
if ( !self getAmmoCount( grenadeTypes[i] ) ) if ( !self getAmmoCount( grenadeTypes[i] ) )
@ -478,7 +478,7 @@ getValidGrenade()
*/ */
isSecondaryGrenade( nade ) 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]; answer = level.bots_weapon_class_names[weap];
if ( !isDefined( answer ) ) if ( !isdefined( answer ) )
answer = ""; answer = "";
return answer; return answer;
@ -517,7 +517,7 @@ WeaponClipSize( weap )
{ {
answer = level.bots_weapon_clip_sizes[weap]; answer = level.bots_weapon_clip_sizes[weap];
if ( !isDefined( answer ) ) if ( !isdefined( answer ) )
answer = 1; answer = 1;
return answer; return answer;
@ -537,11 +537,11 @@ getWeaponSlot( weap )
/* /*
cOD2 cOD2
*/ */
GetAmmoCount( weap ) getAmmoCount( weap )
{ {
slot = self getWeaponSlot( 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 ) IsWeaponClipOnly( weap )
{ {
return isSubStr( weap, "grenade_" ); return issubstr( weap, "grenade_" );
} }
/* /*
@ -575,7 +575,7 @@ getStance()
*/ */
getVelocity() getVelocity()
{ {
if ( !isAlive( self ) ) if ( !isalive( self ) )
return ( 0, 0, 0 ); return ( 0, 0, 0 );
return self.velocity; return self.velocity;
@ -586,7 +586,7 @@ getVelocity()
*/ */
IsPlayerModelOK() IsPlayerModelOK()
{ {
return ( isDefined( self.bot_model_fix ) ); return ( isdefined( self.bot_model_fix ) );
} }
/* /*
@ -596,13 +596,13 @@ WeaponIsFullAuto( weap )
{ {
weaptoks = strtok( 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. Returns what our eye height is.
*/ */
GetEyeHeight() getEyeHeight()
{ {
stance = self GetStance(); stance = self GetStance();
@ -624,26 +624,26 @@ GetEyeHeight()
*/ */
getTagOrigin( where ) getTagOrigin( where )
{ {
if ( !isAlive( self ) ) if ( !isalive( self ) )
return ( 0, 0, 0 ); return ( 0, 0, 0 );
if ( !isDefined( self.bot_model_fix ) ) if ( !isdefined( self.bot_model_fix ) )
return self.origin; return self.origin;
if ( !isDefined( self.tags ) ) if ( !isdefined( self.tags ) )
{ {
self.tags = []; self.tags = [];
self.tagMap = []; self.tagmap = [];
} }
if ( isDefined( self.tagMap[where] ) ) if ( isdefined( self.tagmap[where] ) )
return self.tagMap[where].origin; return self.tagmap[where].origin;
obj = spawn( "script_origin", ( 0, 0, 0 ) ); obj = spawn( "script_origin", ( 0, 0, 0 ) );
obj linkto( self, where, ( 0, 0, 0 ), ( 0, 0, 0 ) ); obj linkto( self, where, ( 0, 0, 0 ), ( 0, 0, 0 ) );
self.tags[self.tags.size] = obj; self.tags[self.tags.size] = obj;
self.tagMap[where] = obj; self.tagmap[where] = obj;
return self.origin; return self.origin;
} }
@ -651,9 +651,9 @@ getTagOrigin( where )
/* /*
Returns (iw4) eye pos. 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 ) waittill_either_return( str1, str2 )
{ {
if ( !isDefined( self waittill_either_return_( str1, str2 ) ) ) if ( !isdefined( self waittill_either_return_( str1, str2 ) ) )
return str1; return str1;
return str2; return str2;
@ -751,20 +751,20 @@ _timeout( delay )
*/ */
isWeaponDroppable( weap ) 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. Selects a random element from the array.
*/ */
Random( arr ) random( arr )
{ {
size = arr.size; size = arr.size;
if ( !size ) if ( !size )
return undefined; return undefined;
return arr[randomInt( size )]; return arr[randomint( size )];
} }
/* /*
@ -819,34 +819,34 @@ bot_wait_for_host()
{ {
host = undefined; host = undefined;
while ( !isDefined( level ) || !isDefined( level.players ) ) while ( !isdefined( level ) || !isdefined( level.players ) )
wait 0.05; 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(); host = GetHostPlayer();
if ( isDefined( host ) ) if ( isdefined( host ) )
break; break;
wait 0.05; wait 0.05;
} }
if ( !isDefined( host ) ) if ( !isdefined( host ) )
return; 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; break;
wait 0.05; wait 0.05;
} }
if ( !IsDefined( host.pers[ "team" ] ) ) if ( !isdefined( host.pers[ "team" ] ) )
return; 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" ) if ( host.pers[ "team" ] == "allies" || host.pers[ "team" ] == "axis" )
break; break;
@ -893,10 +893,10 @@ RaySphereIntersect( start, end, spherePos, radius )
// check if the start or end points are in the sphere // check if the start or end points are in the sphere
r2 = radius * radius; r2 = radius * radius;
if ( DistanceSquared( start, spherePos ) < r2 ) if ( distancesquared( start, spherePos ) < r2 )
return true; return true;
if ( DistanceSquared( end, spherePos ) < r2 ) if ( distancesquared( end, spherePos ) < r2 )
return true; return true;
// check if the line made by start and end intersect the sphere // 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 ); ip1 = start + vector_scale( dp, mu1 );
//ip2 = start + mu2 * dp; //ip2 = start + mu2 * dp;
myDist = DistanceSquared( start, end ); myDist = distancesquared( start, end );
// check if both intersection points far // 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; return false;
dpAngles = VectorToAngles( dp ); dpAngles = vectortoangles( dp );
// check if the point is behind us // check if the point is behind us
if ( getConeDot( ip1, start, dpAngles ) < 0/* || getConeDot(ip2, start, dpAngles) < 0*/ ) if ( getConeDot( ip1, start, dpAngles ) < 0/* || getConeDot(ip2, start, dpAngles) < 0*/ )
@ -948,9 +948,9 @@ vector_scale( vec, scale )
*/ */
SmokeTrace( start, end, rad ) 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 ) ) if ( !RaySphereIntersect( start, end, nade.origin, rad ) )
continue; continue;
@ -966,8 +966,8 @@ SmokeTrace( start, end, rad )
*/ */
getConeDot( to, from, dir ) getConeDot( to, from, dir )
{ {
dirToTarget = VectorNormalize( to - from ); dirToTarget = vectornormalize( to - from );
forward = AnglesToForward( dir ); forward = anglestoforward( dir );
return vectordot( dirToTarget, forward ); return vectordot( dirToTarget, forward );
} }
@ -979,7 +979,7 @@ DistanceSquared2D( to, from )
to = ( to[0], to[1], 0 ); to = ( to[0], to[1], 0 );
from = ( from[0], from[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 Clamps between value
*/ */
Clamp( a, minv, maxv ) clamp( a, minv, maxv )
{ {
return max( min( a, maxv ), minv ); return max( min( a, maxv ), minv );
} }
@ -1187,7 +1187,7 @@ keyCodeToString( a )
*/ */
parseTokensIntoWaypoint( tokens ) parseTokensIntoWaypoint( tokens )
{ {
waypoint = spawnStruct(); waypoint = spawnstruct();
orgStr = tokens[0]; orgStr = tokens[0];
orgToks = strtok( orgStr, " " ); orgToks = strtok( orgStr, " " );
@ -1205,7 +1205,7 @@ parseTokensIntoWaypoint( tokens )
anglesStr = tokens[3]; anglesStr = tokens[3];
if ( isDefined( anglesStr ) && anglesStr != "" ) if ( isdefined( anglesStr ) && anglesStr != "" )
{ {
anglesToks = strtok( anglesStr, " " ); anglesToks = strtok( anglesStr, " " );
@ -1232,7 +1232,7 @@ readWpsFromFile( mapname )
for ( ;; ) for ( ;; )
{ {
argc = fReadLn( f ); argc = freadln( f );
if ( argc <= 0 ) if ( argc <= 0 )
break; break;
@ -1244,7 +1244,7 @@ readWpsFromFile( mapname )
for ( i = 1; i <= waypointCount; i++ ) for ( i = 1; i <= waypointCount; i++ )
{ {
argc = fReadLn( f ); argc = freadln( f );
line = ""; line = "";
for ( h = 0; h < argc; h++ ) for ( h = 0; h < argc; h++ )
@ -1255,7 +1255,7 @@ readWpsFromFile( mapname )
line += ","; line += ",";
} }
if ( !isDefined( line ) || line == "" ) if ( !isdefined( line ) || line == "" )
continue; continue;
tokens = strtok( line, "," ); tokens = strtok( line, "," );
@ -1268,7 +1268,7 @@ readWpsFromFile( mapname )
break; break;
} }
closeFile( f ); closefile( f );
return waypoints; return waypoints;
} }
@ -1277,9 +1277,9 @@ readWpsFromFile( mapname )
*/ */
float_old( num ) 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 ) if ( f < 0 )
return wps; return wps;
argc = fReadLn( f ); argc = freadln( f );
if ( argc <= 0 ) if ( argc <= 0 )
{ {
closeFile( f ); closefile( f );
return wps; return wps;
} }
arg = fgetarg( f, 0 ); arg = fgetarg( f, 0 );
if ( !isDefined( arg ) || arg != "mbotwp" ) if ( !isdefined( arg ) || arg != "mbotwp" )
{ {
closeFile( f ); closefile( f );
return wps; return wps;
} }
@ -1319,10 +1319,10 @@ loadmbotWps( mapname, gametype )
s = fgetarg( f, 0 ); s = fgetarg( f, 0 );
t = strtok( s, " ," ); t = strtok( s, " ," );
if ( !isDefined( t ) || t.size < 6 ) if ( !isdefined( t ) || t.size < 6 )
break; break;
wp = spawnStruct(); wp = spawnstruct();
wp.origin = ( float_old( t[0] ), float_old( t[1] ), float_old( t[2] ) ); wp.origin = ( float_old( t[0] ), float_old( t[1] ), float_old( t[2] ) );
stance = "stand"; stance = "stand";
@ -1363,7 +1363,7 @@ loadmbotWps( mapname, gametype )
i++; i++;
} }
closeFile( f ); closefile( f );
return wps; return wps;
} }
@ -1372,15 +1372,15 @@ loadmbotWps( mapname, gametype )
*/ */
load_waypoints() load_waypoints()
{ {
mapname = getCvar( "mapname" ); mapname = getcvar( "mapname" );
level.waypointCount = 0; level.waypointcount = 0;
level.waypointUsage = []; level.waypointusage = [];
level.waypointUsage["allies"] = []; level.waypointusage["allies"] = [];
level.waypointUsage["axis"] = []; level.waypointusage["axis"] = [];
if ( !isDefined( level.waypoints ) ) if ( !isdefined( level.waypoints ) )
level.waypoints = []; level.waypoints = [];
wps = readWpsFromFile( mapname ); wps = readWpsFromFile( mapname );
@ -1418,17 +1418,17 @@ load_waypoints()
BotBuiltinPrintConsole( "No waypoints loaded!" ); 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 = []; level.waypoints[i].children = [];
if ( !isDefined( level.waypoints[i].origin ) ) if ( !isdefined( level.waypoints[i].origin ) )
level.waypoints[i].origin = ( 0, 0, 0 ); 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].type = "crouch";
level.waypoints[i].childCount = undefined; level.waypoints[i].childCount = undefined;
@ -1446,7 +1446,7 @@ nearAnyOfWaypoints( dist, waypoints )
{ {
waypoint = level.waypoints[waypoints[i]]; waypoint = level.waypoints[waypoints[i]];
if ( DistanceSquared( waypoint.origin, self.origin ) > dist ) if ( distancesquared( waypoint.origin, self.origin ) > dist )
continue; continue;
return true; return true;
@ -1468,7 +1468,7 @@ waypointsNear( waypoints, dist )
{ {
wp = level.waypoints[waypoints[i]]; wp = level.waypoints[waypoints[i]];
if ( DistanceSquared( wp.origin, self.origin ) > dist ) if ( distancesquared( wp.origin, self.origin ) > dist )
continue; continue;
answer[answer.size] = waypoints[i]; answer[answer.size] = waypoints[i];
@ -1488,9 +1488,9 @@ getNearestWaypointOfWaypoints( waypoints )
for ( i = 0; i < waypoints.size; i++ ) for ( i = 0; i < waypoints.size; i++ )
{ {
waypoint = level.waypoints[waypoints[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; continue;
answer = waypoints[i]; answer = waypoints[i];
@ -1507,7 +1507,7 @@ getWaypointsOfType( type )
{ {
answer = []; answer = [];
for ( i = 0; i < level.waypointCount; i++ ) for ( i = 0; i < level.waypointcount; i++ )
{ {
wp = level.waypoints[i]; wp = level.waypoints[i];
@ -1533,7 +1533,7 @@ getWaypointsOfType( type )
*/ */
getWaypointForIndex( i ) getWaypointForIndex( i )
{ {
if ( !isDefined( i ) ) if ( !isdefined( i ) )
return undefined; return undefined;
return level.waypoints[i]; return level.waypoints[i];
@ -1544,7 +1544,7 @@ getWaypointForIndex( i )
*/ */
getGoodMapAmount() getGoodMapAmount()
{ {
switch ( getCvar( "mapname" ) ) switch ( getcvar( "mapname" ) )
{ {
} }
@ -1600,20 +1600,20 @@ getBotToKick()
{ {
bots = getBotArray(); 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; return undefined;
tokick = undefined; tokick = undefined;
axis = 0; axis = 0;
allies = 0; allies = 0;
team = getCvar( "bots_team" ); team = getcvar( "bots_team" );
// count teams // count teams
for ( i = 0; i < bots.size; i++ ) for ( i = 0; i < bots.size; i++ )
{ {
bot = bots[i]; bot = bots[i];
if ( !isDefined( bot ) || !isDefined( bot.team ) ) if ( !isdefined( bot ) || !isdefined( bot.team ) )
continue; continue;
if ( bot.team == "allies" ) if ( bot.team == "allies" )
@ -1647,22 +1647,22 @@ getBotToKick()
{ {
bot = bots[i]; bot = bots[i];
if ( !isDefined( bot ) || !isDefined( bot.team ) ) if ( !isdefined( bot ) || !isdefined( bot.team ) )
continue; continue;
if ( bot.team != team ) if ( bot.team != team )
continue; 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; 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; continue;
tokick = bot; tokick = bot;
} }
if ( isDefined( tokick ) ) if ( isdefined( tokick ) )
return tokick; return tokick;
// just kick lowest skill // just kick lowest skill
@ -1670,13 +1670,13 @@ getBotToKick()
{ {
bot = bots[i]; bot = bots[i];
if ( !isDefined( bot ) || !isDefined( bot.team ) ) if ( !isdefined( bot ) || !isdefined( bot.team ) )
continue; 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; 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; continue;
tokick = bot; tokick = bot;
@ -1781,7 +1781,7 @@ _WaypointsToKDTree( waypoints, dem )
*/ */
List() List()
{ {
list = spawnStruct(); list = spawnstruct();
list.count = 0; list.count = 0;
list.data = []; list.data = [];
@ -1839,7 +1839,7 @@ ListRemove( thing )
*/ */
KDTree() KDTree()
{ {
kdTree = spawnStruct(); kdTree = spawnstruct();
kdTree.root = undefined; kdTree.root = undefined;
kdTree.count = 0; 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 ) _KDTreeInsert( node, data, dem, x0, y0, z0, x1, y1, z1 )
{ {
if ( !isDefined( node ) ) if ( !isdefined( node ) )
{ {
r = spawnStruct(); r = spawnstruct();
r.data = data; r.data = data;
r.left = undefined; r.left = undefined;
r.right = undefined; r.right = undefined;
@ -1912,10 +1912,10 @@ _KDTreeInsert( node, data, dem, x0, y0, z0, x1, y1, z1 )
*/ */
KDTreeNearest( origin ) KDTreeNearest( origin )
{ {
if ( !isDefined( self.root ) ) if ( !isdefined( self.root ) )
return undefined; 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 ) _KDTreeNearest( node, point, closest, closestdist, dem )
{ {
if ( !isDefined( node ) ) if ( !isdefined( node ) )
{ {
return closest; return closest;
} }
thisDis = DistanceSquared( node.data.origin, point ); thisDis = distancesquared( node.data.origin, point );
if ( thisDis < closestdist ) 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( 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; return closest;
@ -2036,7 +2036,7 @@ HeapTraceFraction( item, item2 )
*/ */
NewHeap( compare ) NewHeap( compare )
{ {
heap_node = spawnStruct(); heap_node = spawnstruct();
heap_node.data = []; heap_node.data = [];
heap_node.compare = compare; heap_node.compare = compare;
@ -2135,16 +2135,16 @@ ReverseHeapAStar( item, item2 )
*/ */
RemoveWaypointUsage( wp, team ) RemoveWaypointUsage( wp, team )
{ {
if ( !isDefined( level.waypointUsage ) ) if ( !isdefined( level.waypointusage ) )
return; return;
if ( !isDefined( level.waypointUsage[team][wp + ""] ) ) if ( !isdefined( level.waypointusage[team][wp + ""] ) )
return; return;
level.waypointUsage[team][wp + ""]--; level.waypointusage[team][wp + ""]--;
if ( level.waypointUsage[team][wp + ""] <= 0 ) if ( level.waypointusage[team][wp + ""] <= 0 )
level.waypointUsage[team][wp + ""] = undefined; level.waypointusage[team][wp + ""] = undefined;
} }
/* /*
@ -2155,12 +2155,12 @@ GetNearestWaypointWithSight( pos )
candidate = undefined; candidate = undefined;
dist = 2147483647; 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; continue;
curdis = DistanceSquared( level.waypoints[i].origin, pos ); curdis = distancesquared( level.waypoints[i].origin, pos );
if ( curdis > dist ) if ( curdis > dist )
continue; continue;
@ -2175,14 +2175,14 @@ GetNearestWaypointWithSight( pos )
/* /*
Will linearly search for the nearest waypoint Will linearly search for the nearest waypoint
*/ */
GetNearestWaypoint( pos ) getNearestWaypoint( pos )
{ {
candidate = undefined; candidate = undefined;
dist = 2147483647; 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 ) if ( curdis > dist )
continue; continue;
@ -2208,35 +2208,35 @@ AStarSearch( start, goal, team, greedy_path )
startWp = getNearestWaypoint( start ); startWp = getNearestWaypoint( start );
if ( !isDefined( startWp ) ) if ( !isdefined( startWp ) )
return []; return [];
_startwp = undefined; _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 ); _startwp = GetNearestWaypointWithSight( start );
if ( isDefined( _startwp ) ) if ( isdefined( _startwp ) )
startWp = _startwp; startWp = _startwp;
goalWp = getNearestWaypoint( goal ); goalWp = getNearestWaypoint( goal );
if ( !isDefined( goalWp ) ) if ( !isdefined( goalWp ) )
return []; return [];
_goalWp = undefined; _goalWp = undefined;
if ( !bulletTracePassed( goal + ( 0, 0, 15 ), level.waypoints[goalWp].origin + ( 0, 0, 15 ), false, undefined ) ) if ( !bullettracepassed( goal + ( 0, 0, 15 ), level.waypoints[goalWp].origin + ( 0, 0, 15 ), false, undefined ) )
_goalwp = GetNearestWaypointWithSight( goal ); _goalWp = GetNearestWaypointWithSight( goal );
if ( isDefined( _goalwp ) ) if ( isdefined( _goalWp ) )
goalWp = _goalwp; goalWp = _goalWp;
node = spawnStruct(); node = spawnstruct();
node.g = 0; //path dist so far 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.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.index = startWp;
node.parent = undefined; //we are start, so we have no parent node.parent = undefined; //we are start, so we have no parent
@ -2259,14 +2259,14 @@ AStarSearch( start, goal, team, greedy_path )
{ {
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 + ""] ) ) if ( !isdefined( level.waypointusage[team][bestNode.index + ""] ) )
level.waypointUsage[team][bestNode.index + ""] = 0; level.waypointusage[team][bestNode.index + ""] = 0;
level.waypointUsage[team][bestNode.index + ""]++; level.waypointusage[team][bestNode.index + ""]++;
} }
//construct path //construct path
@ -2286,12 +2286,12 @@ AStarSearch( start, goal, team, greedy_path )
penalty = 1; penalty = 1;
if ( !greedy_path && isdefined( team ) && isDefined( level.waypointUsage ) ) if ( !greedy_path && isdefined( team ) && isdefined( level.waypointusage ) )
{ {
temppen = 1; temppen = 1;
if ( isDefined( level.waypointUsage[team][child + ""] ) ) if ( isdefined( level.waypointusage[team][child + ""] ) )
temppen = level.waypointUsage[team][child + ""]; //consider how many bots are taking this path temppen = level.waypointusage[team][child + ""]; //consider how many bots are taking this path
if ( temppen > 1 ) if ( temppen > 1 )
penalty = temppen; penalty = temppen;
@ -2302,15 +2302,15 @@ AStarSearch( start, goal, team, greedy_path )
penalty += 4; penalty += 4;
//calc the total path we have took //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 //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 ) if ( inopen && openset[child + ""].g <= newg )
continue; continue;
inclosed = isDefined( closed[child + ""] ); inclosed = isdefined( closed[child + ""] );
if ( inclosed && closed[child + ""].g <= newg ) if ( inclosed && closed[child + ""].g <= newg )
continue; continue;
@ -2322,11 +2322,11 @@ AStarSearch( start, goal, team, greedy_path )
else if ( inclosed ) else if ( inclosed )
node = closed[child + ""]; node = closed[child + ""];
else else
node = spawnStruct(); node = spawnstruct();
node.parent = bestNode; node.parent = bestNode;
node.g = newg; 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.f = node.g + node.h;
node.index = child; node.index = child;
@ -2387,7 +2387,7 @@ array_std_deviation( array, mean )
total = total + tmp[i]; 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 ) while ( w >= 1 )
{ {
x1 = 2 * RandomFloatRange( 0, 1 ) - 1; x1 = 2 * randomfloatrange( 0, 1 ) - 1;
x2 = 2 * RandomFloatRange( 0, 1 ) - 1; x2 = 2 * randomfloatrange( 0, 1 ) - 1;
w = x1 * x1 + x2 * x2; w = x1 * x1 + x2 * x2;
} }
w = Sqrt( ( -2.0 * Log( w ) ) / w ); w = sqrt( ( -2.0 * Log( w ) ) / w );
y1 = x1 * w; y1 = x1 * w;
number = mean + y1 * std_deviation; number = mean + y1 * std_deviation;
if ( IsDefined( lower_bound ) && number < lower_bound ) if ( isdefined( lower_bound ) && number < 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; number = upper_bound;
} }
@ -2430,14 +2430,6 @@ random_normal_distribution( mean, std_deviation, lower_bound, upper_bound )
*/ */
Log( x ) 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 //thanks Bob__ at stackoverflow
old_sum = 0.0; old_sum = 0.0;
xmlxpl = ( x - 1 ) / ( x + 1 ); xmlxpl = ( x - 1 ) / ( x + 1 );
@ -2455,7 +2447,5 @@ Log( x )
} }
answer = 2.0 * sum; answer = 2.0 * sum;
//level.log_cache[key] = answer;
return answer; return answer;
} }

View File

@ -80,7 +80,7 @@ do_botaction( action )
break; break;
} }
// self BotAction( action ); // self botaction( action );
} }
do_botstop() do_botstop()
@ -95,7 +95,7 @@ do_botstop()
self setwalkdir( "none" ); self setwalkdir( "none" );
self switchtoweaponid( 1 ); // libcod needs weapon name to id self switchtoweaponid( 1 ); // libcod needs weapon name to id
// self BotStop(); // self botstop();
} }
do_botmovement( forward, right ) do_botmovement( forward, right )
@ -127,11 +127,11 @@ do_botmovement( forward, right )
self setwalkdir( "none" ); self setwalkdir( "none" );
// self botMovement( forward, right ); // self botmovement( forward, right );
} }
do_isbot() do_isbot()
{ {
return false; // no equal in libcod return false; // no equal in libcod
// self isBot(); // self isbot();
} }