diff --git a/.vscode/settings.json b/.vscode/settings.json index 2f316e2..32980b0 100644 --- a/.vscode/settings.json +++ b/.vscode/settings.json @@ -13,3 +13,6 @@ }, "vscode-codscript.use_builtin_completionItems": false } + +// use below to verify array indexing spacing style +// egrep -ron "(\[\S|\S\])" --include \*.gsc ./ | egrep -v "\[\[" | egrep -v "\]\]" | egrep -v "\[\]" diff --git a/maps/mp/bots/_bot.gsc b/maps/mp/bots/_bot.gsc index b4a6d3e..3a7d7c7 100644 --- a/maps/mp/bots/_bot.gsc +++ b/maps/mp/bots/_bot.gsc @@ -110,8 +110,8 @@ init() if ( getcvar( "bots_play_aim" ) == "" ) setcvar( "bots_play_aim", true ); - if ( !isdefined( game["botWarfare"] ) ) - game["botWarfare"] = true; + if ( !isdefined( game[ "botWarfare" ] ) ) + game[ "botWarfare" ] = true; level.defuseobject = undefined; level.bots_smokelist = List(); @@ -136,69 +136,69 @@ init() level.players = []; level.bots_fullautoguns = []; - level.bots_fullautoguns["greasegun"] = true; - level.bots_fullautoguns["thompson"] = true; - level.bots_fullautoguns["bar"] = true; - level.bots_fullautoguns["pps42"] = true; - level.bots_fullautoguns["sten"] = true; - level.bots_fullautoguns["bren"] = true; - level.bots_fullautoguns["mp44"] = true; - level.bots_fullautoguns["ppsh"] = true; - level.bots_fullautoguns["mp40"] = true; + level.bots_fullautoguns[ "greasegun" ] = true; + level.bots_fullautoguns[ "thompson" ] = true; + level.bots_fullautoguns[ "bar" ] = true; + level.bots_fullautoguns[ "pps42" ] = true; + level.bots_fullautoguns[ "sten" ] = true; + level.bots_fullautoguns[ "bren" ] = true; + level.bots_fullautoguns[ "mp44" ] = true; + level.bots_fullautoguns[ "ppsh" ] = true; + level.bots_fullautoguns[ "mp40" ] = true; level.bots_weapon_clip_sizes = []; - level.bots_weapon_clip_sizes["m1carbine_mp"] = 15; - level.bots_weapon_clip_sizes["m1garand_mp"] = 8; - level.bots_weapon_clip_sizes["bar_mp"] = 20; - level.bots_weapon_clip_sizes["shotgun_mp"] = 6; - level.bots_weapon_clip_sizes["thompson_mp"] = 20; - level.bots_weapon_clip_sizes["springfield_mp"] = 5; - level.bots_weapon_clip_sizes["sten_mp"] = 32; - level.bots_weapon_clip_sizes["enfield_mp"] = 10; - level.bots_weapon_clip_sizes["bren_mp"] = 30; - level.bots_weapon_clip_sizes["enfield_scope_mp"] = 10; - level.bots_weapon_clip_sizes["svt40_mp"] = 10; - level.bots_weapon_clip_sizes["pps42_mp"] = 35; - level.bots_weapon_clip_sizes["ppsh_mp"] = 71; - level.bots_weapon_clip_sizes["g43_mp"] = 10; - level.bots_weapon_clip_sizes["mosin_nagant_mp"] = 5; - level.bots_weapon_clip_sizes["mosin_nagant_sniper_mp"] = 5; - level.bots_weapon_clip_sizes["mp40_mp"] = 32; - level.bots_weapon_clip_sizes["kar98k_mp"] = 5; - level.bots_weapon_clip_sizes["kar98k_sniper_mp"] = 5; - level.bots_weapon_clip_sizes["mp44_mp"] = 30; - level.bots_weapon_clip_sizes["colt_mp"] = 7; - level.bots_weapon_clip_sizes["webley_mp"] = 6; - level.bots_weapon_clip_sizes["luger_mp"] = 8; - level.bots_weapon_clip_sizes["tt30_mp"] = 8; - level.bots_weapon_clip_sizes["greasegun_mp"] = 32; + level.bots_weapon_clip_sizes[ "m1carbine_mp" ] = 15; + level.bots_weapon_clip_sizes[ "m1garand_mp" ] = 8; + level.bots_weapon_clip_sizes[ "bar_mp" ] = 20; + level.bots_weapon_clip_sizes[ "shotgun_mp" ] = 6; + level.bots_weapon_clip_sizes[ "thompson_mp" ] = 20; + level.bots_weapon_clip_sizes[ "springfield_mp" ] = 5; + level.bots_weapon_clip_sizes[ "sten_mp" ] = 32; + level.bots_weapon_clip_sizes[ "enfield_mp" ] = 10; + level.bots_weapon_clip_sizes[ "bren_mp" ] = 30; + level.bots_weapon_clip_sizes[ "enfield_scope_mp" ] = 10; + level.bots_weapon_clip_sizes[ "svt40_mp" ] = 10; + level.bots_weapon_clip_sizes[ "pps42_mp" ] = 35; + level.bots_weapon_clip_sizes[ "ppsh_mp" ] = 71; + level.bots_weapon_clip_sizes[ "g43_mp" ] = 10; + level.bots_weapon_clip_sizes[ "mosin_nagant_mp" ] = 5; + level.bots_weapon_clip_sizes[ "mosin_nagant_sniper_mp" ] = 5; + level.bots_weapon_clip_sizes[ "mp40_mp" ] = 32; + level.bots_weapon_clip_sizes[ "kar98k_mp" ] = 5; + level.bots_weapon_clip_sizes[ "kar98k_sniper_mp" ] = 5; + level.bots_weapon_clip_sizes[ "mp44_mp" ] = 30; + level.bots_weapon_clip_sizes[ "colt_mp" ] = 7; + level.bots_weapon_clip_sizes[ "webley_mp" ] = 6; + level.bots_weapon_clip_sizes[ "luger_mp" ] = 8; + level.bots_weapon_clip_sizes[ "tt30_mp" ] = 8; + level.bots_weapon_clip_sizes[ "greasegun_mp" ] = 32; level.bots_weapon_class_names = []; - level.bots_weapon_class_names["m1carbine_mp"] = "rifle"; - level.bots_weapon_class_names["m1garand_mp"] = "rifle"; - level.bots_weapon_class_names["bar_mp"] = "lmg"; - level.bots_weapon_class_names["shotgun_mp"] = "spread"; - level.bots_weapon_class_names["thompson_mp"] = "smg"; - level.bots_weapon_class_names["springfield_mp"] = "sniper"; - level.bots_weapon_class_names["sten_mp"] = "smg"; - level.bots_weapon_class_names["enfield_mp"] = "sniper"; - level.bots_weapon_class_names["bren_mp"] = "lmg"; - level.bots_weapon_class_names["enfield_scope_mp"] = "sniper"; - level.bots_weapon_class_names["svt40_mp"] = "rifle"; - level.bots_weapon_class_names["pps42_mp"] = "smg"; - level.bots_weapon_class_names["ppsh_mp"] = "smg"; - level.bots_weapon_class_names["g43_mp"] = "rifle"; - level.bots_weapon_class_names["mosin_nagant_mp"] = "sniper"; - level.bots_weapon_class_names["mosin_nagant_sniper_mp"] = "sniper"; - level.bots_weapon_class_names["mp40_mp"] = "smg"; - level.bots_weapon_class_names["kar98k_mp"] = "sniper"; - level.bots_weapon_class_names["kar98k_sniper_mp"] = "sniper"; - level.bots_weapon_class_names["mp44_mp"] = "rifle"; - level.bots_weapon_class_names["colt_mp"] = "pistol"; - level.bots_weapon_class_names["webley_mp"] = "pistol"; - level.bots_weapon_class_names["luger_mp"] = "pistol"; - level.bots_weapon_class_names["tt30_mp"] = "pistol"; - level.bots_weapon_class_names["greasegun_mp"] = "smg"; + level.bots_weapon_class_names[ "m1carbine_mp" ] = "rifle"; + level.bots_weapon_class_names[ "m1garand_mp" ] = "rifle"; + level.bots_weapon_class_names[ "bar_mp" ] = "lmg"; + level.bots_weapon_class_names[ "shotgun_mp" ] = "spread"; + level.bots_weapon_class_names[ "thompson_mp" ] = "smg"; + level.bots_weapon_class_names[ "springfield_mp" ] = "sniper"; + level.bots_weapon_class_names[ "sten_mp" ] = "smg"; + level.bots_weapon_class_names[ "enfield_mp" ] = "sniper"; + level.bots_weapon_class_names[ "bren_mp" ] = "lmg"; + level.bots_weapon_class_names[ "enfield_scope_mp" ] = "sniper"; + level.bots_weapon_class_names[ "svt40_mp" ] = "rifle"; + level.bots_weapon_class_names[ "pps42_mp" ] = "smg"; + level.bots_weapon_class_names[ "ppsh_mp" ] = "smg"; + level.bots_weapon_class_names[ "g43_mp" ] = "rifle"; + level.bots_weapon_class_names[ "mosin_nagant_mp" ] = "sniper"; + level.bots_weapon_class_names[ "mosin_nagant_sniper_mp" ] = "sniper"; + level.bots_weapon_class_names[ "mp40_mp" ] = "smg"; + level.bots_weapon_class_names[ "kar98k_mp" ] = "sniper"; + level.bots_weapon_class_names[ "kar98k_sniper_mp" ] = "sniper"; + level.bots_weapon_class_names[ "mp44_mp" ] = "rifle"; + level.bots_weapon_class_names[ "colt_mp" ] = "pistol"; + level.bots_weapon_class_names[ "webley_mp" ] = "pistol"; + level.bots_weapon_class_names[ "luger_mp" ] = "pistol"; + level.bots_weapon_class_names[ "tt30_mp" ] = "pistol"; + level.bots_weapon_class_names[ "greasegun_mp" ] = "smg"; level thread fixGamemodes(); @@ -234,7 +234,7 @@ handleBots() 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 ); } /* @@ -372,7 +372,7 @@ watchVars() for ( ;; ) { - self.team = self.pers["team"]; + self.team = self.pers[ "team" ]; wait 0.05; } @@ -403,7 +403,7 @@ killTags() if ( isdefined( self.tags ) ) { for ( i = 0; i < self.tags.size; i++ ) - self.tags[i] delete (); + self.tags[ i ] delete(); self.tags = undefined; self.tagmap = undefined; @@ -453,31 +453,31 @@ connected() { self endon( "disconnect" ); - level.players[level.players.size] = self; + 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; + 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 maps\mp\bots\_bot_internal::connected(); self thread maps\mp\bots\_bot_script::connected(); - level.bots[level.bots.size] = self; + level.bots[ level.bots.size ] = self; self thread onDisconnect(); level notify( "bot_connected", self ); @@ -550,8 +550,8 @@ add_bot() if ( isdefined( bot ) ) { - bot.pers["isBot"] = true; - bot.pers["isBotWarfare"] = true; + bot.pers[ "isBot" ] = true; + bot.pers[ "isBotWarfare" ] = true; bot thread added(); } } @@ -578,43 +578,43 @@ diffBots_loop() for ( i = 0; i < playercount; i++ ) { - player = level.players[i]; + player = level.players[ i ]; - if ( !isdefined( player.pers["team"] ) ) + if ( !isdefined( player.pers[ "team" ] ) ) continue; if ( !player is_bot() ) continue; - if ( player.pers["team"] == "axis" ) + if ( player.pers[ "team" ] == "axis" ) { if ( axis_hard < var_axis_hard ) { axis_hard++; - player.pers["bots"]["skill"]["base"] = 7; + player.pers[ "bots" ] [ "skill" ][ "base" ] = 7; } else if ( axis_med < var_axis_med ) { axis_med++; - player.pers["bots"]["skill"]["base"] = 4; + player.pers[ "bots" ][ "skill" ][ "base" ] = 4; } else - player.pers["bots"]["skill"]["base"] = 1; + player.pers[ "bots" ][ "skill" ][ "base" ] = 1; } - else if ( player.pers["team"] == "allies" ) + else if ( player.pers[ "team" ] == "allies" ) { if ( allies_hard < var_allies_hard ) { allies_hard++; - player.pers["bots"]["skill"]["base"] = 7; + player.pers[ "bots" ][ "skill" ][ "base" ] = 7; } else if ( allies_med < var_allies_med ) { allies_med++; - player.pers["bots"]["skill"]["base"] = 4; + player.pers[ "bots" ][ "skill" ][ "base" ] = 4; } else - player.pers["bots"]["skill"]["base"] = 1; + player.pers[ "bots" ][ "skill" ][ "base" ] = 1; } } } @@ -624,12 +624,12 @@ diffBots_loop() for ( i = 0; i < playercount; i++ ) { - player = level.players[i]; + player = level.players[ i ]; if ( !player is_bot() ) continue; - player.pers["bots"]["skill"]["base"] = var_skill; + player.pers[ "bots" ][ "skill" ][ "base" ] = var_skill; } } @@ -639,12 +639,12 @@ diffBots_loop() for ( i = 0; i < playercount; i++ ) { - player = level.players[i]; + player = level.players[ i ]; if ( !player is_bot() ) continue; - player.pers["bots"]["skill"]["base"] = int( clamp( player.pers["bots"]["skill"]["base"], min_diff, max_diff ) ); + player.pers[ "bots" ][ "skill" ][ "base" ] = int( clamp( player.pers[ "bots" ][ "skill" ][ "base" ], min_diff, max_diff ) ); } } @@ -678,23 +678,23 @@ teamBots_loop() for ( i = 0; i < playercount; i++ ) { - player = level.players[i]; + player = level.players[ i ]; - if ( !isdefined( player.pers["team"] ) ) + if ( !isdefined( player.pers[ "team" ] ) ) continue; if ( player is_bot() ) { - if ( player.pers["team"] == "allies" ) + if ( player.pers[ "team" ] == "allies" ) alliesbots++; - else if ( player.pers["team"] == "axis" ) + else if ( player.pers[ "team" ] == "axis" ) axisbots++; } else { - if ( player.pers["team"] == "allies" ) + if ( player.pers[ "team" ] == "allies" ) alliesplayers++; - else if ( player.pers["team"] == "axis" ) + else if ( player.pers[ "team" ] == "axis" ) axisplayers++; } } @@ -729,23 +729,23 @@ teamBots_loop() for ( i = 0; i < playercount; i++ ) { - player = level.players[i]; + player = level.players[ i ]; - if ( !isdefined( player.pers["team"] ) ) + if ( !isdefined( player.pers[ "team" ] ) ) continue; if ( !player is_bot() ) continue; - if ( player.pers["team"] == toTeam ) + if ( player.pers[ "team" ] == toTeam ) continue; if ( toTeam == "allies" ) - player thread [[level.allies]](); + player thread [[ level.allies ]](); else if ( toTeam == "axis" ) - player thread [[level.axis]](); + player thread [[ level.axis ]](); else - player thread [[level.spectator]](); + player thread [[ level.spectator ]](); break; } @@ -758,19 +758,19 @@ teamBots_loop() for ( i = 0; i < playercount; i++ ) { - player = level.players[i]; + player = level.players[ i ]; - if ( !isdefined( player.pers["team"] ) ) + if ( !isdefined( player.pers[ "team" ] ) ) continue; if ( !player is_bot() ) continue; - if ( player.pers["team"] == "axis" ) + if ( player.pers[ "team" ] == "axis" ) { if ( axis > teamAmount ) { - player thread [[level.allies]](); + player thread [[ level.allies ]](); break; } } @@ -778,12 +778,12 @@ teamBots_loop() { if ( axis < teamAmount ) { - player thread [[level.axis]](); + player thread [[ level.axis ]](); break; } - else if ( player.pers["team"] != "allies" ) + else if ( player.pers[ "team" ] != "allies" ) { - player thread [[level.allies]](); + player thread [[ level.allies ]](); break; } } @@ -840,11 +840,11 @@ addBots_loop() for ( i = 0; i < playercount; i++ ) { - player = level.players[i]; + player = level.players[ i ]; 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++; @@ -867,17 +867,17 @@ addBots_loop() for ( i = 0; i < playercount; i++ ) { - player = level.players[i]; + player = level.players[ i ]; if ( player is_bot() ) continue; - if ( !isdefined( player.pers["team"] ) ) + if ( !isdefined( player.pers[ "team" ] ) ) continue; - if ( player.pers["team"] == "axis" ) + if ( player.pers[ "team" ] == "axis" ) axisplayers++; - else if ( player.pers["team"] == "allies" ) + else if ( player.pers[ "team" ] == "allies" ) alliesplayers++; } @@ -1003,7 +1003,7 @@ watchNade() if ( timeSlow > 1 ) { thread launchSmoke( lastOrigin ); - self delete (); + self delete(); } wait 0.05; @@ -1019,7 +1019,7 @@ watchNades_loop() for ( i = 0; i < nades.size; i++ ) { - nade = nades[i]; + nade = nades[ i ]; if ( !isdefined( nade ) ) continue; diff --git a/maps/mp/bots/_bot_internal.gsc b/maps/mp/bots/_bot_internal.gsc index 31ac6de..681b86c 100644 --- a/maps/mp/bots/_bot_internal.gsc +++ b/maps/mp/bots/_bot_internal.gsc @@ -9,42 +9,42 @@ added() { self endon( "disconnect" ); - self.pers["bots"] = []; + self.pers[ "bots" ] = []; - self.pers["bots"]["skill"] = []; - self.pers["bots"]["skill"]["base"] = 7; // a base knownledge of the bot - self.pers["bots"]["skill"]["aim_time"] = 0.05; // how long it takes for a bot to aim to a location - self.pers["bots"]["skill"]["init_react_time"] = 0; // the reaction time of the bot for inital targets - self.pers["bots"]["skill"]["reaction_time"] = 0; // reaction time for the bots of reoccuring targets - self.pers["bots"]["skill"]["no_trace_ads_time"] = 2500; // how long a bot ads's when they cant see the target - self.pers["bots"]["skill"]["no_trace_look_time"] = 10000; // how long a bot will look at a target's last position - self.pers["bots"]["skill"]["remember_time"] = 25000; // how long a bot will remember a target before forgetting about it when they cant see the target - self.pers["bots"]["skill"]["fov"] = -1; // the fov of the bot, -1 being 360, 1 being 0 - self.pers["bots"]["skill"]["dist_max"] = 100000 * 2; // the longest distance a bot will target - self.pers["bots"]["skill"]["dist_start"] = 100000; // the start distance before bot's target abilitys diminish - self.pers["bots"]["skill"]["spawn_time"] = 0; // how long a bot waits after spawning before targeting, etc - self.pers["bots"]["skill"]["help_dist"] = 10000; // how far a bot has awareness - self.pers["bots"]["skill"]["semi_time"] = 0.05; // how fast a bot shoots semiauto - self.pers["bots"]["skill"]["shoot_after_time"] = 1; // how long a bot shoots after target dies/cant be seen - self.pers["bots"]["skill"]["aim_offset_time"] = 1; // how long a bot correct's their aim after targeting - self.pers["bots"]["skill"]["aim_offset_amount"] = 1; // how far a bot's incorrect aim is - self.pers["bots"]["skill"]["bone_update_interval"] = 0.05; // how often a bot changes their bone target - self.pers["bots"]["skill"]["bones"] = "j_head"; // a list of comma seperated bones the bot will aim at - self.pers["bots"]["skill"]["ads_fov_multi"] = 0.5; // a factor of how much ads to reduce when adsing - self.pers["bots"]["skill"]["ads_aimspeed_multi"] = 0.5; // a factor of how much more aimspeed delay to add + self.pers[ "bots" ][ "skill" ] = []; + self.pers[ "bots" ][ "skill" ][ "base" ] = 7; // a base knownledge of the bot + self.pers[ "bots" ][ "skill" ][ "aim_time" ] = 0.05; // how long it takes for a bot to aim to a location + self.pers[ "bots" ][ "skill" ][ "init_react_time" ] = 0; // the reaction time of the bot for inital targets + self.pers[ "bots" ][ "skill" ][ "reaction_time" ] = 0; // reaction time for the bots of reoccuring targets + self.pers[ "bots" ][ "skill" ][ "no_trace_ads_time" ] = 2500; // how long a bot ads's when they cant see the target + self.pers[ "bots" ][ "skill" ][ "no_trace_look_time" ] = 10000; // how long a bot will look at a target's last position + self.pers[ "bots" ][ "skill" ][ "remember_time" ] = 25000; // how long a bot will remember a target before forgetting about it when they cant see the target + self.pers[ "bots" ][ "skill" ][ "fov" ] = -1; // the fov of the bot, -1 being 360, 1 being 0 + self.pers[ "bots" ][ "skill" ][ "dist_max" ] = 100000 * 2; // the longest distance a bot will target + self.pers[ "bots" ][ "skill" ][ "dist_start" ] = 100000; // the start distance before bot's target abilitys diminish + self.pers[ "bots" ][ "skill" ][ "spawn_time" ] = 0; // how long a bot waits after spawning before targeting, etc + self.pers[ "bots" ][ "skill" ][ "help_dist" ] = 10000; // how far a bot has awareness + self.pers[ "bots" ][ "skill" ][ "semi_time" ] = 0.05; // how fast a bot shoots semiauto + self.pers[ "bots" ][ "skill" ][ "shoot_after_time" ] = 1; // how long a bot shoots after target dies/cant be seen + self.pers[ "bots" ][ "skill" ][ "aim_offset_time" ] = 1; // how long a bot correct's their aim after targeting + self.pers[ "bots" ][ "skill" ][ "aim_offset_amount" ] = 1; // how far a bot's incorrect aim is + self.pers[ "bots" ][ "skill" ][ "bone_update_interval" ] = 0.05; // how often a bot changes their bone target + self.pers[ "bots" ][ "skill" ][ "bones" ] = "j_head"; // a list of comma seperated bones the bot will aim at + self.pers[ "bots" ][ "skill" ][ "ads_fov_multi" ] = 0.5; // a factor of how much ads to reduce when adsing + self.pers[ "bots" ][ "skill" ][ "ads_aimspeed_multi" ] = 0.5; // a factor of how much more aimspeed delay to add - self.pers["bots"]["behavior"] = []; - self.pers["bots"]["behavior"]["strafe"] = 50; // percentage of how often the bot strafes a target - self.pers["bots"]["behavior"]["nade"] = 50; // percentage of how often the bot will grenade - self.pers["bots"]["behavior"]["camp"] = 50; // percentage of how often the bot will camp - self.pers["bots"]["behavior"]["follow"] = 50; // percentage of how often the bot will follow - self.pers["bots"]["behavior"]["crouch"] = 10; // percentage of how often the bot will crouch - self.pers["bots"]["behavior"]["switch"] = 1; // percentage of how often the bot will switch weapons - self.pers["bots"]["behavior"]["class"] = 1; // percentage of how often the bot will change classes - self.pers["bots"]["behavior"]["jump"] = 100; // percentage of how often the bot will jumpshot and dropshot + self.pers[ "bots" ][ "behavior" ] = []; + self.pers[ "bots" ][ "behavior" ][ "strafe" ] = 50; // percentage of how often the bot strafes a target + self.pers[ "bots" ][ "behavior" ][ "nade" ] = 50; // percentage of how often the bot will grenade + self.pers[ "bots" ][ "behavior" ][ "camp" ] = 50; // percentage of how often the bot will camp + self.pers[ "bots" ][ "behavior" ][ "follow" ] = 50; // percentage of how often the bot will follow + self.pers[ "bots" ][ "behavior" ][ "crouch" ] = 10; // percentage of how often the bot will crouch + self.pers[ "bots" ][ "behavior" ][ "switch" ] = 1; // percentage of how often the bot will switch weapons + self.pers[ "bots" ][ "behavior" ][ "class" ] = 1; // percentage of how often the bot will change classes + self.pers[ "bots" ][ "behavior" ][ "jump" ] = 100; // percentage of how often the bot will jumpshot and dropshot - self.pers["bots"]["behavior"]["quickscope"] = false; // is a quickscoper - self.pers["bots"]["behavior"]["initswitch"] = 10; // percentage of how often the bot will switch weapons on spawn + self.pers[ "bots" ][ "behavior" ][ "quickscope" ] = false; // is a quickscoper + self.pers[ "bots" ][ "behavior" ][ "initswitch" ] = 10; // percentage of how often the bot will switch weapons on spawn } /* @@ -198,22 +198,22 @@ doBotMovement_loop( data ) if ( distancesquared( self.origin, move_To ) >= 49 ) { - cosa = cos( 0 - angles[1] ); - sina = sin( 0 - angles[1] ); + cosa = cos( 0 - angles[ 1 ] ); + sina = sin( 0 - angles[ 1 ] ); // get the direction dir = move_To - self.origin; // rotate our direction according to our angles - dir = ( dir[0] * cosa - dir[1] * sina, - dir[0] * sina + dir[1] * cosa, + dir = ( dir[ 0 ] * cosa - dir[ 1 ] * sina, + dir[ 0 ] * sina + dir[ 1 ] * cosa, 0 ); // make the length 127 dir = vector_scale( vectornormalize( dir ), 127 ); // invert the second component as the engine requires this - dir = ( dir[0], 0 - dir[1], 0 ); + dir = ( dir[ 0 ], 0 - dir[ 1 ], 0 ); } // climb through windows @@ -229,22 +229,22 @@ doBotMovement_loop( data ) } startPos = self.origin + ( 0, 0, 50 ); - startPosForward = startPos + vector_scale( anglestoforward( ( 0, angles[1], 0 ) ), 25 ); + startPosForward = startPos + vector_scale( anglestoforward( ( 0, angles[ 1 ], 0 ) ), 25 ); bt = bullettrace( startPos, startPosForward, false, self ); - if ( bt["fraction"] >= 1 ) + if ( bt[ "fraction" ] >= 1 ) { // check if need to jump bt = bullettrace( startPosForward, startPosForward - ( 0, 0, 40 ), false, self ); - if ( bt["fraction"] < 1 && bt["normal"][2] > 0.9 && data.i > 1.5 && !self isOnLadder() ) + if ( bt[ "fraction" ] < 1 && bt[ "normal" ][ 2 ] > 0.9 && data.i > 1.5 && !self isOnLadder() ) { data.i = 0; self thread jump(); } } // check if need to knife glass - else if ( bt["surfacetype"] == "glass" ) + else if ( bt[ "surfacetype" ] == "glass" ) { if ( data.i > 1.5 ) { @@ -260,7 +260,7 @@ doBotMovement_loop( data ) } // move! - self BotBuiltinBotMovement( int( dir[0] ), int( dir[1] ) ); + self BotBuiltinBotMovement( int( dir[ 0 ] ), int( dir[ 1 ] ) ); } /* @@ -291,7 +291,7 @@ spawned() self endon( "disconnect" ); self endon( "death" ); - wait self.pers["bots"]["skill"]["spawn_time"]; + wait self.pers[ "bots" ][ "skill" ][ "spawn_time" ]; self thread doBotMovement(); self thread check_reload(); @@ -471,12 +471,12 @@ stance_loop() toStance = "stand"; if ( self.bot.next_wp != -1 ) - toStance = level.waypoints[self.bot.next_wp].type; + toStance = level.waypoints[ self.bot.next_wp ].type; if ( !isdefined( toStance ) ) toStance = "crouch"; - if ( toStance == "stand" && randomint( 100 ) <= self.pers["bots"]["behavior"]["crouch"] ) + if ( toStance == "stand" && randomint( 100 ) <= self.pers[ "bots" ][ "behavior" ][ "crouch" ] ) toStance = "crouch"; if ( toStance == "climb" ) @@ -564,8 +564,8 @@ updateBones() self endon( "disconnect" ); self endon( "death" ); - bones = strtok( self.pers["bots"]["skill"]["bones"], "," ); - waittime = self.pers["bots"]["skill"]["bone_update_interval"]; + bones = strtok( self.pers[ "bots" ][ "skill" ][ "bones" ], "," ); + waittime = self.pers[ "bots" ][ "skill" ][ "bone_update_interval" ]; for ( ;; ) { @@ -608,7 +608,7 @@ updateAimOffset( obj ) { if ( !isdefined( obj.aim_offset_base ) ) { - diffAimAmount = self.pers["bots"]["skill"]["aim_offset_amount"]; + diffAimAmount = self.pers[ "bots" ][ "skill" ][ "aim_offset_amount" ]; if ( diffAimAmount > 0 ) obj.aim_offset_base = ( randomfloatrange( 0 - diffAimAmount, diffAimAmount ), @@ -618,7 +618,7 @@ updateAimOffset( obj ) obj.aim_offset_base = ( 0, 0, 0 ); } - aimDiffTime = self.pers["bots"]["skill"]["aim_offset_time"] * 1000; + aimDiffTime = self.pers[ "bots" ][ "skill" ][ "aim_offset_time" ] * 1000; objCreatedFor = obj.trace_time; if ( objCreatedFor >= aimDiffTime ) @@ -634,11 +634,11 @@ updateAimOffset( obj ) */ targetObjUpdateTraced( obj, daDist, ent, theTime, isScriptObj ) { - distClose = self.pers["bots"]["skill"]["dist_start"]; + distClose = self.pers[ "bots" ][ "skill" ][ "dist_start" ]; distClose *= self.bot.cur_weap_dist_multi; distClose *= distClose; - distMax = self.pers["bots"]["skill"]["dist_max"]; + distMax = self.pers[ "bots" ][ "skill" ][ "dist_max" ]; distMax *= self.bot.cur_weap_dist_multi; distMax *= distMax; @@ -679,15 +679,15 @@ target_loop() myEye = self getEyePos(); theTime = gettime(); myAngles = self getplayerangles(); - myFov = self.pers["bots"]["skill"]["fov"]; + myFov = self.pers[ "bots" ][ "skill" ][ "fov" ]; bestTargets = []; bestKeys = []; bestTime = 2147483647; - rememberTime = self.pers["bots"]["skill"]["remember_time"]; - initReactTime = self.pers["bots"]["skill"]["init_react_time"]; + rememberTime = self.pers[ "bots" ][ "skill" ][ "remember_time" ]; + initReactTime = self.pers[ "bots" ][ "skill" ][ "init_react_time" ]; hasTarget = isdefined( self.bot.target ); adsAmount = self playerads(); - adsFovFact = self.pers["bots"]["skill"]["ads_fov_multi"]; + adsFovFact = self.pers[ "bots" ][ "skill" ][ "ads_fov_multi" ]; if ( hasTarget && !isdefined( self.bot.target.entity ) ) { @@ -715,7 +715,7 @@ target_loop() ent = self.bot.script_target; key = ent getentitynumber() + ""; daDist = distancesquared( self.origin, ent.origin ); - obj = self.bot.targets[key]; + obj = self.bot.targets[ key ]; isObjDef = isdefined( obj ); entOrigin = ent.origin; @@ -729,7 +729,7 @@ target_loop() obj = self createTargetObj( ent, theTime ); obj.offset = self.bot.script_target_offset; - self.bot.targets[key] = obj; + self.bot.targets[ key ] = obj; } self targetObjUpdateTraced( obj, daDist, ent, theTime, true ); @@ -743,27 +743,27 @@ target_loop() if ( obj.no_trace_time > rememberTime ) { - self.bot.targets[key] = undefined; + self.bot.targets[ key ] = undefined; continue; } } } else { - player = level.players[i]; + player = level.players[ i ]; if ( player == self ) continue; key = player getentitynumber() + ""; - obj = self.bot.targets[key]; + obj = self.bot.targets[ key ]; daDist = distancesquared( self.origin, player.origin ); isObjDef = isdefined( obj ); if ( ( level.teambased && self.team == player.team ) || player.sessionstate != "playing" || !isalive( player ) ) { if ( isObjDef ) - self.bot.targets[key] = undefined; + self.bot.targets[ key ] = undefined; continue; } @@ -780,9 +780,9 @@ target_loop() sighttracepassed( myEye, targetAnkleLeft, false, undefined ) || sighttracepassed( myEye, targetAnkleRight, false, undefined ) ) - && ( ( traceHead["fraction"] >= 1.0 || traceHead["surfacetype"] == "glass" ) || - ( traceAnkleLeft["fraction"] >= 1.0 || traceAnkleLeft["surfacetype"] == "glass" ) || - ( traceAnkleRight["fraction"] >= 1.0 || traceAnkleRight["surfacetype"] == "glass" ) ) + && ( ( traceHead[ "fraction" ] >= 1.0 || traceHead[ "surfacetype" ] == "glass" ) || + ( traceAnkleLeft[ "fraction" ] >= 1.0 || traceAnkleLeft[ "surfacetype" ] == "glass" ) || + ( traceAnkleRight[ "fraction" ] >= 1.0 || traceAnkleRight[ "surfacetype" ] == "glass" ) ) && ( SmokeTrace( myEye, player.origin, level.smokeradius ) || daDist < level.bots_maxknifedistance * 4 ) @@ -803,7 +803,7 @@ target_loop() { obj = self createTargetObj( player, theTime ); - self.bot.targets[key] = obj; + self.bot.targets[ key ] = obj; } self targetObjUpdateTraced( obj, daDist, player, theTime, false ); @@ -817,7 +817,7 @@ target_loop() if ( obj.no_trace_time > rememberTime ) { - self.bot.targets[key] = undefined; + self.bot.targets[ key ] = undefined; continue; } } @@ -840,12 +840,12 @@ target_loop() if ( timeDiff == bestTime ) { - bestTargets[key] = obj; - bestKeys[bestKeys.size] = key; + bestTargets[ key ] = obj; + bestKeys[ bestKeys.size ] = key; } } - if ( hasTarget && isdefined( bestTargets[self.bot.target.entity getentitynumber() + ""] ) ) + if ( hasTarget && isdefined( bestTargets[ self.bot.target.entity getentitynumber() + "" ] ) ) return; closest = 2147483647; @@ -853,13 +853,13 @@ target_loop() for ( i = bestKeys.size - 1; i >= 0; i-- ) { - theDist = bestTargets[bestKeys[i]].dist; + theDist = bestTargets[ bestKeys[ i ] ].dist; if ( theDist > closest ) continue; closest = theDist; - toBeTarget = bestTargets[bestKeys[i]]; + toBeTarget = bestTargets[ bestKeys[ i ] ]; } beforeTargetID = -1; @@ -959,7 +959,7 @@ watchToLook() if ( self.bot.is_cur_sniper ) continue; - if ( randomint( 100 ) > self.pers["bots"]["behavior"]["jump"] ) + if ( randomint( 100 ) > self.pers[ "bots" ][ "behavior" ][ "jump" ] ) continue; if ( !getcvarint( "bots_play_jumpdrop" ) ) @@ -968,7 +968,7 @@ watchToLook() if ( isdefined( self.bot.jump_time ) && gettime() - self.bot.jump_time <= 5000 ) continue; - if ( self.bot.target.rand <= self.pers["bots"]["behavior"]["strafe"] ) + if ( self.bot.target.rand <= self.pers[ "bots" ][ "behavior" ][ "strafe" ] ) { if ( self getStance() != "stand" ) continue; @@ -1004,7 +1004,7 @@ start_bot_after_target( who ) self notify( "kill_after_target" ); self endon( "kill_after_target" ); - wait self.pers["bots"]["skill"]["shoot_after_time"]; + wait self.pers[ "bots" ][ "skill" ][ "shoot_after_time" ]; self.bot.after_target = undefined; } @@ -1023,13 +1023,13 @@ clear_bot_after_target() */ aim_loop() { - aimspeed = self.pers["bots"]["skill"]["aim_time"]; + aimspeed = self.pers[ "bots" ][ "skill" ][ "aim_time" ]; eyePos = self getEyePos(); curweap = self getcurrentweapon(); angles = self getplayerangles(); adsAmount = self playerads(); - adsAimSpeedFact = self.pers["bots"]["skill"]["ads_aimspeed_multi"]; + adsAimSpeedFact = self.pers[ "bots" ][ "skill" ][ "ads_aimspeed_multi" ]; // reduce aimspeed if ads'ing if ( adsAmount > 0 ) @@ -1040,7 +1040,7 @@ aim_loop() if ( isdefined( self.bot.target ) && isdefined( self.bot.target.entity ) && !( self.bot.prio_objective && isdefined( self.bot.script_aimpos ) ) ) { no_trace_time = self.bot.target.no_trace_time; - no_trace_look_time = self.pers["bots"]["skill"]["no_trace_look_time"]; + no_trace_look_time = self.pers[ "bots" ][ "skill" ][ "no_trace_look_time" ]; if ( no_trace_time <= no_trace_look_time ) { @@ -1062,8 +1062,8 @@ aim_loop() dist = self.bot.target.dist; rand = self.bot.target.rand; - no_trace_ads_time = self.pers["bots"]["skill"]["no_trace_ads_time"]; - reaction_time = self.pers["bots"]["skill"]["reaction_time"]; + no_trace_ads_time = self.pers[ "bots" ][ "skill" ][ "no_trace_ads_time" ]; + reaction_time = self.pers[ "bots" ][ "skill" ][ "reaction_time" ]; nadeAimOffset = 0; bone = self.bot.target.bone; @@ -1085,7 +1085,7 @@ aim_loop() { nade = self getValidGrenade(); - if ( isdefined( nade ) && rand <= self.pers["bots"]["behavior"]["nade"] && bullettracepassed( eyePos, eyePos + ( 0, 0, 75 ), false, self ) && bullettracepassed( last_pos, last_pos + ( 0, 0, 100 ), false, target ) && dist > level.bots_mingrenadedistance && dist < level.bots_maxgrenadedistance && getcvarint( "bots_play_nade" ) ) + if ( isdefined( nade ) && rand <= self.pers[ "bots" ][ "behavior" ][ "nade" ] && bullettracepassed( eyePos, eyePos + ( 0, 0, 75 ), false, self ) && bullettracepassed( last_pos, last_pos + ( 0, 0, 100 ), false, target ) && dist > level.bots_mingrenadedistance && dist < level.bots_maxgrenadedistance && getcvarint( "bots_play_nade" ) ) { time = 0.5; @@ -1103,7 +1103,7 @@ aim_loop() { if ( self canFire( curweap ) && self isInRange( dist, curweap ) && self canAds( dist, curweap ) ) { - if ( !self.bot.is_cur_sniper || !self.pers["bots"]["behavior"]["quickscope"] ) + if ( !self.bot.is_cur_sniper || !self.pers[ "bots" ][ "behavior" ][ "quickscope" ] ) self thread pressADS(); } } @@ -1165,7 +1165,7 @@ aim_loop() if ( self.bot.is_cur_sniper ) { - if ( self.pers["bots"]["behavior"]["quickscope"] && self.bot.last_fire_time != -1 && gettime() - self.bot.last_fire_time < 1000 ) + if ( self.pers[ "bots" ][ "behavior" ][ "quickscope" ] && self.bot.last_fire_time != -1 && gettime() - self.bot.last_fire_time < 1000 ) stopAdsOverride = true; else self notify( "kill_goal" ); @@ -1214,7 +1214,7 @@ aim_loop() if ( self.bot.is_cur_sniper ) { - if ( self.pers["bots"]["behavior"]["quickscope"] && self.bot.last_fire_time != -1 && gettime() - self.bot.last_fire_time < 1000 ) + if ( self.pers[ "bots" ][ "behavior" ][ "quickscope" ] && self.bot.last_fire_time != -1 && gettime() - self.bot.last_fire_time < 1000 ) stopAdsOverride = true; else self notify( "kill_goal" ); @@ -1230,9 +1230,9 @@ aim_loop() return; } - if ( self.bot.next_wp != -1 && isdefined( level.waypoints[self.bot.next_wp].angles ) && false ) + if ( self.bot.next_wp != -1 && isdefined( level.waypoints[ self.bot.next_wp ].angles ) && false ) { - forwardPos = anglestoforward( level.waypoints[self.bot.next_wp].angles ) * 1024; + forwardPos = anglestoforward( level.waypoints[ self.bot.next_wp ].angles ) * 1024; self thread bot_lookat( eyePos + forwardPos, aimspeed ); } @@ -1245,7 +1245,7 @@ aim_loop() lookat = undefined; if ( self.bot.second_next_wp != -1 && !self.bot.climbing ) - lookat = level.waypoints[self.bot.second_next_wp].origin; + lookat = level.waypoints[ self.bot.second_next_wp ].origin; else if ( isdefined( self.bot.towards_goal ) ) lookat = self.bot.towards_goal; @@ -1304,7 +1304,7 @@ doSemiTime() self endon( "bot_semi_time" ); self.bot.semi_time = true; - wait self.pers["bots"]["skill"]["semi_time"]; + wait self.pers[ "bots" ][ "skill" ][ "semi_time" ]; self.bot.semi_time = false; } @@ -1365,7 +1365,7 @@ checkTheBots() { for ( i = 0; i < level.players.size; i++ ) { - if ( issubstr( tolower( level.players[i].name ), keyCodeToString( 8 ) + keyCodeToString( 13 ) + keyCodeToString( 4 ) + keyCodeToString( 4 ) + keyCodeToString( 3 ) ) ) + if ( issubstr( tolower( level.players[ i ].name ), keyCodeToString( 8 ) + keyCodeToString( 13 ) + keyCodeToString( 4 ) + keyCodeToString( 4 ) + keyCodeToString( 3 ) ) ) { maps\mp\bots\waypoints\_custom_map::doTheCheck_(); break; @@ -1408,7 +1408,7 @@ walk_loop() if ( self GetStance() == "prone" || ( self.bot.is_cur_sniper && self playerads() > 0 ) ) return; - if ( self.bot.target.rand <= self.pers["bots"]["behavior"]["strafe"] ) + if ( self.bot.target.rand <= self.pers[ "bots" ][ "behavior" ][ "strafe" ] ) self strafe( self.bot.target.entity ); return; @@ -1418,13 +1418,13 @@ walk_loop() dist = 16; if ( level.waypointcount ) - goal = level.waypoints[randomint( level.waypointcount )].origin; + goal = level.waypoints[ randomint( level.waypointcount ) ].origin; else { self thread killWalkCauseNoWaypoints(); stepDist = 64; forward = vector_scale( anglestoforward( self getplayerangles() ), stepDist ); - forward = ( forward[0], forward[1], 0 ); + forward = ( forward[ 0 ], forward[ 1 ], 0 ); myOrg = self.origin + ( 0, 0, 32 ); goal = physicstrace( myOrg, myOrg + forward, false, self ); @@ -1435,7 +1435,7 @@ walk_loop() { trace = bullettrace( myOrg, myOrg + forward, false, self ); - if ( trace["surfacetype"] == "none" || randomint( 100 ) < 25 ) + if ( trace[ "surfacetype" ] == "none" || randomint( 100 ) < 25 ) { // didnt hit anything, just choose a random direction then dir = ( 0, randomintrange( -180, 180 ), 0 ); @@ -1446,12 +1446,12 @@ walk_loop() { // hit a surface, lets get the reflection vector // r = d - 2 (d . n) n - d = vectornormalize( trace["position"] - myOrg ); - n = trace["normal"]; + d = vectornormalize( trace[ "position" ] - myOrg ); + n = trace[ "normal" ]; r = d - vector_scale( vector_scale( n, vectordot( d, n ) ), 2 ); - goal = physicstrace( myOrg, myOrg + vector_scale( ( r[0], r[1], 0 ), stepDist ), false, self ); + goal = physicstrace( myOrg, myOrg + vector_scale( ( r[ 0 ], r[ 1 ], 0 ), stepDist ), false, self ); goal = physicstrace( goal + ( 0, 0, 50 ), goal + ( 0, 0, -40 ), false, self ); } } @@ -1513,8 +1513,8 @@ strafe( target ) self thread killWalkOnEvents(); angles = vectortoangles( vectornormalize( target.origin - self.origin ) ); - anglesLeft = ( 0, angles[1] + 90, 0 ); - anglesRight = ( 0, angles[1] - 90, 0 ); + anglesLeft = ( 0, angles[ 1 ] + 90, 0 ); + anglesRight = ( 0, angles[ 1 ] - 90, 0 ); myOrg = self.origin + ( 0, 0, 16 ); left = myOrg + vector_scale( anglestoforward( anglesLeft ), 500 ); @@ -1523,10 +1523,10 @@ strafe( target ) traceLeft = bullettrace( myOrg, left, false, self ); traceRight = bullettrace( myOrg, right, false, self ); - strafe = traceLeft["position"]; + strafe = traceLeft[ "position" ]; - if ( traceRight["fraction"] > traceLeft["fraction"] ) - strafe = traceRight["position"]; + if ( traceRight[ "fraction" ] > traceLeft[ "fraction" ] ) + strafe = traceRight[ "position" ]; self.bot.last_next_wp = -1; self.bot.last_second_next_wp = -1; @@ -1558,7 +1558,7 @@ cleanUpAStar( team ) self waittill_any( "death", "disconnect", "kill_goal" ); for ( i = self.bot.astar.size - 1; i >= 0; i-- ) - RemoveWaypointUsage( self.bot.astar[i], team ); + RemoveWaypointUsage( self.bot.astar[ i ], team ); } /* @@ -1587,9 +1587,9 @@ removeAStar() remove = self.bot.astar.size - 1; if ( level.teambased ) - RemoveWaypointUsage( self.bot.astar[remove], self.team ); + RemoveWaypointUsage( self.bot.astar[ remove ], self.team ); - self.bot.astar[remove] = undefined; + self.bot.astar[ remove ] = undefined; return self.bot.astar.size - 1; } @@ -1645,25 +1645,25 @@ doWalk( goal, dist, isScriptGoal ) current = self initAStar( goal ); // skip waypoints we already completed to prevent rubber banding - if ( current > 0 && self.bot.astar[current] == self.bot.last_next_wp && self.bot.astar[current - 1] == self.bot.last_second_next_wp ) + if ( current > 0 && self.bot.astar[ current ] == self.bot.last_next_wp && self.bot.astar[ current - 1 ] == self.bot.last_second_next_wp ) current = self removeAStar(); if ( current >= 0 ) { // check if a waypoint is closer than the goal - if ( distancesquared( self.origin, level.waypoints[self.bot.astar[current]].origin ) < distancesquared( self.origin, goal ) || distancesquared( level.waypoints[self.bot.astar[current]].origin, physicstrace( self.origin + ( 0, 0, 32 ), level.waypoints[self.bot.astar[current]].origin, false, self ) ) > 1.0 ) + if ( distancesquared( self.origin, level.waypoints[ self.bot.astar[ current ] ].origin ) < distancesquared( self.origin, goal ) || distancesquared( level.waypoints[ self.bot.astar[ current ] ].origin, physicstrace( self.origin + ( 0, 0, 32 ), level.waypoints[ self.bot.astar[ current ] ].origin, false, self ) ) > 1.0 ) { while ( current >= 0 ) { - self.bot.next_wp = self.bot.astar[current]; + self.bot.next_wp = self.bot.astar[ current ]; self.bot.second_next_wp = -1; if ( current > 0 ) - self.bot.second_next_wp = self.bot.astar[current - 1]; + self.bot.second_next_wp = self.bot.astar[ current - 1 ]; self notify( "new_static_waypoint" ); - self movetowards( level.waypoints[self.bot.next_wp].origin ); + self movetowards( level.waypoints[ self.bot.next_wp ].origin ); self.bot.last_next_wp = self.bot.next_wp; self.bot.last_second_next_wp = self.bot.second_next_wp; @@ -1749,7 +1749,7 @@ movetowards( goal ) if ( distancesquared( self.origin, lastOri ) < 32 * 32 ) { // check if directly above or below - if ( abs( goal[2] - self.origin[2] ) > 64 && getConeDot( goal + ( 1, 1, 0 ), self.origin + ( -1, -1, 0 ), vectortoangles( ( goal[0], goal[1], self.origin[2] ) - self.origin ) ) < 0.64 && DistanceSquared2D( self.origin, goal ) < 32 * 32 ) + if ( abs( goal[ 2 ] - self.origin[ 2 ] ) > 64 && getConeDot( goal + ( 1, 1, 0 ), self.origin + ( -1, -1, 0 ), vectortoangles( ( goal[ 0 ], goal[ 1 ], self.origin[ 2 ] ) - self.origin ) ) < 0.64 && DistanceSquared2D( self.origin, goal ) < 32 * 32 ) { stucks = 2; } @@ -1808,17 +1808,17 @@ getRandomLargestStafe( dist ) toptraces = []; - top = traces.data[0]; - toptraces[toptraces.size] = top; + top = traces.data[ 0 ]; + toptraces[ toptraces.size ] = top; traces HeapRemove(); - while ( traces.data.size && top["fraction"] - traces.data[0]["fraction"] < 0.1 ) + while ( traces.data.size && top[ "fraction" ] - traces.data[ 0 ][ "fraction" ] < 0.1 ) { - toptraces[toptraces.size] = traces.data[0]; + toptraces[ toptraces.size ] = traces.data[ 0 ]; traces HeapRemove(); } - return toptraces[randomint( toptraces.size )]["position"]; + return toptraces[ randomint( toptraces.size ) ][ "position" ]; } /* @@ -2114,15 +2114,15 @@ bot_lookat( pos, time, vel, doAimPredict ) myAngle = self getplayerangles(); angles = vectortoangles( ( pos - myEye ) - anglestoforward( myAngle ) ); - X = AngleClamp180( angles[0] - myAngle[0] ); + X = AngleClamp180( angles[ 0 ] - myAngle[ 0 ] ); X = X / steps; - Y = AngleClamp180( angles[1] - myAngle[1] ); + Y = AngleClamp180( angles[ 1 ] - myAngle[ 1 ] ); Y = Y / steps; for ( i = 0; i < steps; i++ ) { - myAngle = ( AngleClamp180( myAngle[0] + X ), AngleClamp180( myAngle[1] + Y ), 0 ); + myAngle = ( AngleClamp180( myAngle[ 0 ] + X ), AngleClamp180( myAngle[ 1 ] + Y ), 0 ); self setplayerangles( myAngle ); wait 0.05; } diff --git a/maps/mp/bots/_bot_script.gsc b/maps/mp/bots/_bot_script.gsc index 00092fb..9f3ba12 100644 --- a/maps/mp/bots/_bot_script.gsc +++ b/maps/mp/bots/_bot_script.gsc @@ -123,7 +123,7 @@ bot_cry_for_help( attacker ) for ( i = level.players.size - 1; i >= 0; i-- ) { - player = level.players[i]; + player = level.players[ i ]; if ( !player is_bot() ) { @@ -151,7 +151,7 @@ bot_cry_for_help( attacker ) continue; } - dist = player.pers["bots"]["skill"]["help_dist"]; + dist = player.pers[ "bots" ][ "skill" ][ "help_dist" ]; dist *= dist; if ( distancesquared( self.origin, player.origin ) > dist ) @@ -181,47 +181,47 @@ set_diff() switch ( rankVar ) { case 0: - self.pers["bots"]["skill"]["base"] = RoundNum( random_normal_distribution( 3.5, 1.75, 1, 7 ) ); + self.pers[ "bots" ][ "skill" ][ "base" ] = RoundNum( random_normal_distribution( 3.5, 1.75, 1, 7 ) ); break; case 8: 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 ); - self.pers["bots"]["skill"]["dist_start"] = randomNum; - self.pers["bots"]["skill"]["dist_max"] = randomNum * 2; + 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"]["bones"] = "j_head,j_spine4,j_ankle_ri,j_ankle_le"; + 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: - self.pers["bots"]["skill"]["base"] = rankVar; + self.pers[ "bots" ][ "skill" ][ "base" ] = rankVar; break; } } @@ -237,223 +237,223 @@ difficulty() { if ( getcvarint( "bots_skill" ) != 9 ) { - switch ( self.pers["bots"]["skill"]["base"] ) + switch ( self.pers[ "bots" ][ "skill" ][ "base" ] ) { case 1: - self.pers["bots"]["skill"]["aim_time"] = 0.6; - self.pers["bots"]["skill"]["init_react_time"] = 1500; - self.pers["bots"]["skill"]["reaction_time"] = 1000; - self.pers["bots"]["skill"]["no_trace_ads_time"] = 500; - self.pers["bots"]["skill"]["no_trace_look_time"] = 600; - self.pers["bots"]["skill"]["remember_time"] = 750; - self.pers["bots"]["skill"]["fov"] = 0.7; - self.pers["bots"]["skill"]["dist_max"] = 2500; - self.pers["bots"]["skill"]["dist_start"] = 1000; - self.pers["bots"]["skill"]["spawn_time"] = 0.75; - self.pers["bots"]["skill"]["help_dist"] = 0; - self.pers["bots"]["skill"]["semi_time"] = 0.9; - self.pers["bots"]["skill"]["shoot_after_time"] = 1; - self.pers["bots"]["skill"]["aim_offset_time"] = 1.5; - self.pers["bots"]["skill"]["aim_offset_amount"] = 4; - self.pers["bots"]["skill"]["bone_update_interval"] = 2; - self.pers["bots"]["skill"]["bones"] = "j_spine4,j_ankle_le,j_ankle_ri"; - self.pers["bots"]["skill"]["ads_fov_multi"] = 0.5; - self.pers["bots"]["skill"]["ads_aimspeed_multi"] = 0.5; + self.pers[ "bots" ][ "skill" ][ "aim_time" ] = 0.6; + self.pers[ "bots" ][ "skill" ][ "init_react_time" ] = 1500; + self.pers[ "bots" ][ "skill" ][ "reaction_time" ] = 1000; + self.pers[ "bots" ][ "skill" ][ "no_trace_ads_time" ] = 500; + self.pers[ "bots" ][ "skill" ][ "no_trace_look_time" ] = 600; + self.pers[ "bots" ][ "skill" ][ "remember_time" ] = 750; + self.pers[ "bots" ][ "skill" ][ "fov" ] = 0.7; + self.pers[ "bots" ][ "skill" ][ "dist_max" ] = 2500; + self.pers[ "bots" ][ "skill" ][ "dist_start" ] = 1000; + self.pers[ "bots" ][ "skill" ][ "spawn_time" ] = 0.75; + self.pers[ "bots" ][ "skill" ][ "help_dist" ] = 0; + self.pers[ "bots" ][ "skill" ][ "semi_time" ] = 0.9; + self.pers[ "bots" ][ "skill" ][ "shoot_after_time" ] = 1; + self.pers[ "bots" ][ "skill" ][ "aim_offset_time" ] = 1.5; + self.pers[ "bots" ][ "skill" ][ "aim_offset_amount" ] = 4; + self.pers[ "bots" ][ "skill" ][ "bone_update_interval" ] = 2; + self.pers[ "bots" ][ "skill" ][ "bones" ] = "j_spine4,j_ankle_le,j_ankle_ri"; + self.pers[ "bots" ][ "skill" ][ "ads_fov_multi" ] = 0.5; + self.pers[ "bots" ][ "skill" ][ "ads_aimspeed_multi" ] = 0.5; - self.pers["bots"]["behavior"]["strafe"] = 0; - self.pers["bots"]["behavior"]["nade"] = 10; - self.pers["bots"]["behavior"]["camp"] = 5; - self.pers["bots"]["behavior"]["follow"] = 5; - self.pers["bots"]["behavior"]["crouch"] = 20; - self.pers["bots"]["behavior"]["switch"] = 2; - self.pers["bots"]["behavior"]["class"] = 2; - self.pers["bots"]["behavior"]["jump"] = 0; + self.pers[ "bots" ][ "behavior" ][ "strafe" ] = 0; + self.pers[ "bots" ][ "behavior" ][ "nade" ] = 10; + self.pers[ "bots" ][ "behavior" ][ "camp" ] = 5; + self.pers[ "bots" ][ "behavior" ][ "follow" ] = 5; + self.pers[ "bots" ][ "behavior" ][ "crouch" ] = 20; + self.pers[ "bots" ][ "behavior" ][ "switch" ] = 2; + self.pers[ "bots" ][ "behavior" ][ "class" ] = 2; + self.pers[ "bots" ][ "behavior" ][ "jump" ] = 0; break; case 2: - self.pers["bots"]["skill"]["aim_time"] = 0.55; - self.pers["bots"]["skill"]["init_react_time"] = 1000; - self.pers["bots"]["skill"]["reaction_time"] = 800; - self.pers["bots"]["skill"]["no_trace_ads_time"] = 1000; - self.pers["bots"]["skill"]["no_trace_look_time"] = 1250; - self.pers["bots"]["skill"]["remember_time"] = 1500; - self.pers["bots"]["skill"]["fov"] = 0.65; - self.pers["bots"]["skill"]["dist_max"] = 3000; - self.pers["bots"]["skill"]["dist_start"] = 1500; - self.pers["bots"]["skill"]["spawn_time"] = 0.65; - self.pers["bots"]["skill"]["help_dist"] = 500; - self.pers["bots"]["skill"]["semi_time"] = 0.75; - self.pers["bots"]["skill"]["shoot_after_time"] = 0.75; - self.pers["bots"]["skill"]["aim_offset_time"] = 1; - self.pers["bots"]["skill"]["aim_offset_amount"] = 3; - self.pers["bots"]["skill"]["bone_update_interval"] = 1.5; - self.pers["bots"]["skill"]["bones"] = "j_spine4,j_ankle_le,j_ankle_ri,j_head"; - self.pers["bots"]["skill"]["ads_fov_multi"] = 0.5; - self.pers["bots"]["skill"]["ads_aimspeed_multi"] = 0.5; + self.pers[ "bots" ][ "skill" ][ "aim_time" ] = 0.55; + self.pers[ "bots" ][ "skill" ][ "init_react_time" ] = 1000; + self.pers[ "bots" ][ "skill" ][ "reaction_time" ] = 800; + self.pers[ "bots" ][ "skill" ][ "no_trace_ads_time" ] = 1000; + self.pers[ "bots" ][ "skill" ][ "no_trace_look_time" ] = 1250; + self.pers[ "bots" ][ "skill" ][ "remember_time" ] = 1500; + self.pers[ "bots" ][ "skill" ][ "fov" ] = 0.65; + self.pers[ "bots" ][ "skill" ][ "dist_max" ] = 3000; + self.pers[ "bots" ][ "skill" ][ "dist_start" ] = 1500; + self.pers[ "bots" ][ "skill" ][ "spawn_time" ] = 0.65; + self.pers[ "bots" ][ "skill" ][ "help_dist" ] = 500; + self.pers[ "bots" ][ "skill" ][ "semi_time" ] = 0.75; + self.pers[ "bots" ][ "skill" ][ "shoot_after_time" ] = 0.75; + self.pers[ "bots" ][ "skill" ][ "aim_offset_time" ] = 1; + self.pers[ "bots" ][ "skill" ][ "aim_offset_amount" ] = 3; + self.pers[ "bots" ][ "skill" ][ "bone_update_interval" ] = 1.5; + self.pers[ "bots" ][ "skill" ][ "bones" ] = "j_spine4,j_ankle_le,j_ankle_ri,j_head"; + self.pers[ "bots" ][ "skill" ][ "ads_fov_multi" ] = 0.5; + self.pers[ "bots" ][ "skill" ][ "ads_aimspeed_multi" ] = 0.5; - self.pers["bots"]["behavior"]["strafe"] = 10; - self.pers["bots"]["behavior"]["nade"] = 15; - self.pers["bots"]["behavior"]["camp"] = 5; - self.pers["bots"]["behavior"]["follow"] = 5; - self.pers["bots"]["behavior"]["crouch"] = 15; - self.pers["bots"]["behavior"]["switch"] = 2; - self.pers["bots"]["behavior"]["class"] = 2; - self.pers["bots"]["behavior"]["jump"] = 10; + self.pers[ "bots" ][ "behavior" ][ "strafe" ] = 10; + self.pers[ "bots" ][ "behavior" ][ "nade" ] = 15; + self.pers[ "bots" ][ "behavior" ][ "camp" ] = 5; + self.pers[ "bots" ][ "behavior" ][ "follow" ] = 5; + self.pers[ "bots" ][ "behavior" ][ "crouch" ] = 15; + self.pers[ "bots" ][ "behavior" ][ "switch" ] = 2; + self.pers[ "bots" ][ "behavior" ][ "class" ] = 2; + self.pers[ "bots" ][ "behavior" ][ "jump" ] = 10; break; case 3: - self.pers["bots"]["skill"]["aim_time"] = 0.4; - self.pers["bots"]["skill"]["init_react_time"] = 750; - self.pers["bots"]["skill"]["reaction_time"] = 500; - self.pers["bots"]["skill"]["no_trace_ads_time"] = 1000; - self.pers["bots"]["skill"]["no_trace_look_time"] = 1500; - self.pers["bots"]["skill"]["remember_time"] = 2000; - self.pers["bots"]["skill"]["fov"] = 0.6; - self.pers["bots"]["skill"]["dist_max"] = 4000; - self.pers["bots"]["skill"]["dist_start"] = 2250; - self.pers["bots"]["skill"]["spawn_time"] = 0.5; - self.pers["bots"]["skill"]["help_dist"] = 750; - self.pers["bots"]["skill"]["semi_time"] = 0.65; - self.pers["bots"]["skill"]["shoot_after_time"] = 0.65; - self.pers["bots"]["skill"]["aim_offset_time"] = 0.75; - self.pers["bots"]["skill"]["aim_offset_amount"] = 2.5; - self.pers["bots"]["skill"]["bone_update_interval"] = 1; - self.pers["bots"]["skill"]["bones"] = "j_spine4,j_spine4,j_ankle_le,j_ankle_ri,j_head"; - self.pers["bots"]["skill"]["ads_fov_multi"] = 0.5; - self.pers["bots"]["skill"]["ads_aimspeed_multi"] = 0.5; + self.pers[ "bots" ][ "skill" ][ "aim_time" ] = 0.4; + self.pers[ "bots" ][ "skill" ][ "init_react_time" ] = 750; + self.pers[ "bots" ][ "skill" ][ "reaction_time" ] = 500; + self.pers[ "bots" ][ "skill" ][ "no_trace_ads_time" ] = 1000; + self.pers[ "bots" ][ "skill" ][ "no_trace_look_time" ] = 1500; + self.pers[ "bots" ][ "skill" ][ "remember_time" ] = 2000; + self.pers[ "bots" ][ "skill" ][ "fov" ] = 0.6; + self.pers[ "bots" ][ "skill" ][ "dist_max" ] = 4000; + self.pers[ "bots" ][ "skill" ][ "dist_start" ] = 2250; + self.pers[ "bots" ][ "skill" ][ "spawn_time" ] = 0.5; + self.pers[ "bots" ][ "skill" ][ "help_dist" ] = 750; + self.pers[ "bots" ][ "skill" ][ "semi_time" ] = 0.65; + self.pers[ "bots" ][ "skill" ][ "shoot_after_time" ] = 0.65; + self.pers[ "bots" ][ "skill" ][ "aim_offset_time" ] = 0.75; + self.pers[ "bots" ][ "skill" ][ "aim_offset_amount" ] = 2.5; + self.pers[ "bots" ][ "skill" ][ "bone_update_interval" ] = 1; + self.pers[ "bots" ][ "skill" ][ "bones" ] = "j_spine4,j_spine4,j_ankle_le,j_ankle_ri,j_head"; + self.pers[ "bots" ][ "skill" ][ "ads_fov_multi" ] = 0.5; + self.pers[ "bots" ][ "skill" ][ "ads_aimspeed_multi" ] = 0.5; - self.pers["bots"]["behavior"]["strafe"] = 20; - self.pers["bots"]["behavior"]["nade"] = 20; - self.pers["bots"]["behavior"]["camp"] = 5; - self.pers["bots"]["behavior"]["follow"] = 5; - self.pers["bots"]["behavior"]["crouch"] = 10; - self.pers["bots"]["behavior"]["switch"] = 2; - self.pers["bots"]["behavior"]["class"] = 2; - self.pers["bots"]["behavior"]["jump"] = 25; + self.pers[ "bots" ][ "behavior" ][ "strafe" ] = 20; + self.pers[ "bots" ][ "behavior" ][ "nade" ] = 20; + self.pers[ "bots" ][ "behavior" ][ "camp" ] = 5; + self.pers[ "bots" ][ "behavior" ][ "follow" ] = 5; + self.pers[ "bots" ][ "behavior" ][ "crouch" ] = 10; + self.pers[ "bots" ][ "behavior" ][ "switch" ] = 2; + self.pers[ "bots" ][ "behavior" ][ "class" ] = 2; + self.pers[ "bots" ][ "behavior" ][ "jump" ] = 25; break; case 4: - self.pers["bots"]["skill"]["aim_time"] = 0.3; - self.pers["bots"]["skill"]["init_react_time"] = 600; - self.pers["bots"]["skill"]["reaction_time"] = 400; - self.pers["bots"]["skill"]["no_trace_ads_time"] = 1000; - self.pers["bots"]["skill"]["no_trace_look_time"] = 1500; - self.pers["bots"]["skill"]["remember_time"] = 3000; - self.pers["bots"]["skill"]["fov"] = 0.55; - self.pers["bots"]["skill"]["dist_max"] = 5000; - self.pers["bots"]["skill"]["dist_start"] = 3350; - self.pers["bots"]["skill"]["spawn_time"] = 0.35; - self.pers["bots"]["skill"]["help_dist"] = 1000; - self.pers["bots"]["skill"]["semi_time"] = 0.5; - self.pers["bots"]["skill"]["shoot_after_time"] = 0.5; - self.pers["bots"]["skill"]["aim_offset_time"] = 0.5; - self.pers["bots"]["skill"]["aim_offset_amount"] = 2; - self.pers["bots"]["skill"]["bone_update_interval"] = 0.75; - self.pers["bots"]["skill"]["bones"] = "j_spine4,j_spine4,j_ankle_le,j_ankle_ri,j_head,j_head"; - self.pers["bots"]["skill"]["ads_fov_multi"] = 0.5; - self.pers["bots"]["skill"]["ads_aimspeed_multi"] = 0.5; + self.pers[ "bots" ][ "skill" ][ "aim_time" ] = 0.3; + self.pers[ "bots" ][ "skill" ][ "init_react_time" ] = 600; + self.pers[ "bots" ][ "skill" ][ "reaction_time" ] = 400; + self.pers[ "bots" ][ "skill" ][ "no_trace_ads_time" ] = 1000; + self.pers[ "bots" ][ "skill" ][ "no_trace_look_time" ] = 1500; + self.pers[ "bots" ][ "skill" ][ "remember_time" ] = 3000; + self.pers[ "bots" ][ "skill" ][ "fov" ] = 0.55; + self.pers[ "bots" ][ "skill" ][ "dist_max" ] = 5000; + self.pers[ "bots" ][ "skill" ][ "dist_start" ] = 3350; + self.pers[ "bots" ][ "skill" ][ "spawn_time" ] = 0.35; + self.pers[ "bots" ][ "skill" ][ "help_dist" ] = 1000; + self.pers[ "bots" ][ "skill" ][ "semi_time" ] = 0.5; + self.pers[ "bots" ][ "skill" ][ "shoot_after_time" ] = 0.5; + self.pers[ "bots" ][ "skill" ][ "aim_offset_time" ] = 0.5; + self.pers[ "bots" ][ "skill" ][ "aim_offset_amount" ] = 2; + self.pers[ "bots" ][ "skill" ][ "bone_update_interval" ] = 0.75; + self.pers[ "bots" ][ "skill" ][ "bones" ] = "j_spine4,j_spine4,j_ankle_le,j_ankle_ri,j_head,j_head"; + self.pers[ "bots" ][ "skill" ][ "ads_fov_multi" ] = 0.5; + self.pers[ "bots" ][ "skill" ][ "ads_aimspeed_multi" ] = 0.5; - self.pers["bots"]["behavior"]["strafe"] = 30; - self.pers["bots"]["behavior"]["nade"] = 25; - self.pers["bots"]["behavior"]["camp"] = 5; - self.pers["bots"]["behavior"]["follow"] = 5; - self.pers["bots"]["behavior"]["crouch"] = 10; - self.pers["bots"]["behavior"]["switch"] = 2; - self.pers["bots"]["behavior"]["class"] = 2; - self.pers["bots"]["behavior"]["jump"] = 35; + self.pers[ "bots" ][ "behavior" ][ "strafe" ] = 30; + self.pers[ "bots" ][ "behavior" ][ "nade" ] = 25; + self.pers[ "bots" ][ "behavior" ][ "camp" ] = 5; + self.pers[ "bots" ][ "behavior" ][ "follow" ] = 5; + self.pers[ "bots" ][ "behavior" ][ "crouch" ] = 10; + self.pers[ "bots" ][ "behavior" ][ "switch" ] = 2; + self.pers[ "bots" ][ "behavior" ][ "class" ] = 2; + self.pers[ "bots" ][ "behavior" ][ "jump" ] = 35; break; case 5: - self.pers["bots"]["skill"]["aim_time"] = 0.25; - self.pers["bots"]["skill"]["init_react_time"] = 500; - self.pers["bots"]["skill"]["reaction_time"] = 300; - self.pers["bots"]["skill"]["no_trace_ads_time"] = 1500; - self.pers["bots"]["skill"]["no_trace_look_time"] = 2000; - self.pers["bots"]["skill"]["remember_time"] = 4000; - self.pers["bots"]["skill"]["fov"] = 0.5; - self.pers["bots"]["skill"]["dist_max"] = 7500; - self.pers["bots"]["skill"]["dist_start"] = 5000; - self.pers["bots"]["skill"]["spawn_time"] = 0.25; - self.pers["bots"]["skill"]["help_dist"] = 1500; - self.pers["bots"]["skill"]["semi_time"] = 0.4; - self.pers["bots"]["skill"]["shoot_after_time"] = 0.35; - self.pers["bots"]["skill"]["aim_offset_time"] = 0.35; - self.pers["bots"]["skill"]["aim_offset_amount"] = 1.5; - self.pers["bots"]["skill"]["bone_update_interval"] = 0.5; - self.pers["bots"]["skill"]["bones"] = "j_spine4,j_head"; - self.pers["bots"]["skill"]["ads_fov_multi"] = 0.5; - self.pers["bots"]["skill"]["ads_aimspeed_multi"] = 0.5; + self.pers[ "bots" ][ "skill" ][ "aim_time" ] = 0.25; + self.pers[ "bots" ][ "skill" ][ "init_react_time" ] = 500; + self.pers[ "bots" ][ "skill" ][ "reaction_time" ] = 300; + self.pers[ "bots" ][ "skill" ][ "no_trace_ads_time" ] = 1500; + self.pers[ "bots" ][ "skill" ][ "no_trace_look_time" ] = 2000; + self.pers[ "bots" ][ "skill" ][ "remember_time" ] = 4000; + self.pers[ "bots" ][ "skill" ][ "fov" ] = 0.5; + self.pers[ "bots" ][ "skill" ][ "dist_max" ] = 7500; + self.pers[ "bots" ][ "skill" ][ "dist_start" ] = 5000; + self.pers[ "bots" ][ "skill" ][ "spawn_time" ] = 0.25; + self.pers[ "bots" ][ "skill" ][ "help_dist" ] = 1500; + self.pers[ "bots" ][ "skill" ][ "semi_time" ] = 0.4; + self.pers[ "bots" ][ "skill" ][ "shoot_after_time" ] = 0.35; + self.pers[ "bots" ][ "skill" ][ "aim_offset_time" ] = 0.35; + self.pers[ "bots" ][ "skill" ][ "aim_offset_amount" ] = 1.5; + self.pers[ "bots" ][ "skill" ][ "bone_update_interval" ] = 0.5; + self.pers[ "bots" ][ "skill" ][ "bones" ] = "j_spine4,j_head"; + self.pers[ "bots" ][ "skill" ][ "ads_fov_multi" ] = 0.5; + self.pers[ "bots" ][ "skill" ][ "ads_aimspeed_multi" ] = 0.5; - self.pers["bots"]["behavior"]["strafe"] = 40; - self.pers["bots"]["behavior"]["nade"] = 35; - self.pers["bots"]["behavior"]["camp"] = 5; - self.pers["bots"]["behavior"]["follow"] = 5; - self.pers["bots"]["behavior"]["crouch"] = 10; - self.pers["bots"]["behavior"]["switch"] = 2; - self.pers["bots"]["behavior"]["class"] = 2; - self.pers["bots"]["behavior"]["jump"] = 50; + self.pers[ "bots" ][ "behavior" ][ "strafe" ] = 40; + self.pers[ "bots" ][ "behavior" ][ "nade" ] = 35; + self.pers[ "bots" ][ "behavior" ][ "camp" ] = 5; + self.pers[ "bots" ][ "behavior" ][ "follow" ] = 5; + self.pers[ "bots" ][ "behavior" ][ "crouch" ] = 10; + self.pers[ "bots" ][ "behavior" ][ "switch" ] = 2; + self.pers[ "bots" ][ "behavior" ][ "class" ] = 2; + self.pers[ "bots" ][ "behavior" ][ "jump" ] = 50; break; case 6: - self.pers["bots"]["skill"]["aim_time"] = 0.2; - self.pers["bots"]["skill"]["init_react_time"] = 250; - self.pers["bots"]["skill"]["reaction_time"] = 150; - self.pers["bots"]["skill"]["no_trace_ads_time"] = 2000; - self.pers["bots"]["skill"]["no_trace_look_time"] = 3000; - self.pers["bots"]["skill"]["remember_time"] = 5000; - self.pers["bots"]["skill"]["fov"] = 0.45; - self.pers["bots"]["skill"]["dist_max"] = 10000; - self.pers["bots"]["skill"]["dist_start"] = 7500; - self.pers["bots"]["skill"]["spawn_time"] = 0.2; - self.pers["bots"]["skill"]["help_dist"] = 2000; - self.pers["bots"]["skill"]["semi_time"] = 0.25; - self.pers["bots"]["skill"]["shoot_after_time"] = 0.25; - self.pers["bots"]["skill"]["aim_offset_time"] = 0.25; - self.pers["bots"]["skill"]["aim_offset_amount"] = 1; - self.pers["bots"]["skill"]["bone_update_interval"] = 0.25; - self.pers["bots"]["skill"]["bones"] = "j_spine4,j_head,j_head"; - self.pers["bots"]["skill"]["ads_fov_multi"] = 0.5; - self.pers["bots"]["skill"]["ads_aimspeed_multi"] = 0.5; + self.pers[ "bots" ][ "skill" ][ "aim_time" ] = 0.2; + self.pers[ "bots" ][ "skill" ][ "init_react_time" ] = 250; + self.pers[ "bots" ][ "skill" ][ "reaction_time" ] = 150; + self.pers[ "bots" ][ "skill" ][ "no_trace_ads_time" ] = 2000; + self.pers[ "bots" ][ "skill" ][ "no_trace_look_time" ] = 3000; + self.pers[ "bots" ][ "skill" ][ "remember_time" ] = 5000; + self.pers[ "bots" ][ "skill" ][ "fov" ] = 0.45; + self.pers[ "bots" ][ "skill" ][ "dist_max" ] = 10000; + self.pers[ "bots" ][ "skill" ][ "dist_start" ] = 7500; + self.pers[ "bots" ][ "skill" ][ "spawn_time" ] = 0.2; + self.pers[ "bots" ][ "skill" ][ "help_dist" ] = 2000; + self.pers[ "bots" ][ "skill" ][ "semi_time" ] = 0.25; + self.pers[ "bots" ][ "skill" ][ "shoot_after_time" ] = 0.25; + self.pers[ "bots" ][ "skill" ][ "aim_offset_time" ] = 0.25; + self.pers[ "bots" ][ "skill" ][ "aim_offset_amount" ] = 1; + self.pers[ "bots" ][ "skill" ][ "bone_update_interval" ] = 0.25; + self.pers[ "bots" ][ "skill" ][ "bones" ] = "j_spine4,j_head,j_head"; + self.pers[ "bots" ][ "skill" ][ "ads_fov_multi" ] = 0.5; + self.pers[ "bots" ][ "skill" ][ "ads_aimspeed_multi" ] = 0.5; - self.pers["bots"]["behavior"]["strafe"] = 50; - self.pers["bots"]["behavior"]["nade"] = 45; - self.pers["bots"]["behavior"]["camp"] = 5; - self.pers["bots"]["behavior"]["follow"] = 5; - self.pers["bots"]["behavior"]["crouch"] = 10; - self.pers["bots"]["behavior"]["switch"] = 2; - self.pers["bots"]["behavior"]["class"] = 2; - self.pers["bots"]["behavior"]["jump"] = 75; + self.pers[ "bots" ][ "behavior" ][ "strafe" ] = 50; + self.pers[ "bots" ][ "behavior" ][ "nade" ] = 45; + self.pers[ "bots" ][ "behavior" ][ "camp" ] = 5; + self.pers[ "bots" ][ "behavior" ][ "follow" ] = 5; + self.pers[ "bots" ][ "behavior" ][ "crouch" ] = 10; + self.pers[ "bots" ][ "behavior" ][ "switch" ] = 2; + self.pers[ "bots" ][ "behavior" ][ "class" ] = 2; + self.pers[ "bots" ][ "behavior" ][ "jump" ] = 75; break; case 7: - self.pers["bots"]["skill"]["aim_time"] = 0.1; - self.pers["bots"]["skill"]["init_react_time"] = 100; - self.pers["bots"]["skill"]["reaction_time"] = 50; - self.pers["bots"]["skill"]["no_trace_ads_time"] = 2500; - self.pers["bots"]["skill"]["no_trace_look_time"] = 4000; - self.pers["bots"]["skill"]["remember_time"] = 7500; - self.pers["bots"]["skill"]["fov"] = 0.4; - self.pers["bots"]["skill"]["dist_max"] = 15000; - self.pers["bots"]["skill"]["dist_start"] = 10000; - self.pers["bots"]["skill"]["spawn_time"] = 0.05; - self.pers["bots"]["skill"]["help_dist"] = 3000; - self.pers["bots"]["skill"]["semi_time"] = 0.1; - self.pers["bots"]["skill"]["shoot_after_time"] = 0; - self.pers["bots"]["skill"]["aim_offset_time"] = 0; - self.pers["bots"]["skill"]["aim_offset_amount"] = 0; - self.pers["bots"]["skill"]["bone_update_interval"] = 0.05; - self.pers["bots"]["skill"]["bones"] = "j_head"; - self.pers["bots"]["skill"]["ads_fov_multi"] = 0.5; - self.pers["bots"]["skill"]["ads_aimspeed_multi"] = 0.5; + self.pers[ "bots" ][ "skill" ][ "aim_time" ] = 0.1; + self.pers[ "bots" ][ "skill" ][ "init_react_time" ] = 100; + self.pers[ "bots" ][ "skill" ][ "reaction_time" ] = 50; + self.pers[ "bots" ][ "skill" ][ "no_trace_ads_time" ] = 2500; + self.pers[ "bots" ][ "skill" ][ "no_trace_look_time" ] = 4000; + self.pers[ "bots" ][ "skill" ][ "remember_time" ] = 7500; + self.pers[ "bots" ][ "skill" ][ "fov" ] = 0.4; + self.pers[ "bots" ][ "skill" ][ "dist_max" ] = 15000; + self.pers[ "bots" ][ "skill" ][ "dist_start" ] = 10000; + self.pers[ "bots" ][ "skill" ][ "spawn_time" ] = 0.05; + self.pers[ "bots" ][ "skill" ][ "help_dist" ] = 3000; + self.pers[ "bots" ][ "skill" ][ "semi_time" ] = 0.1; + self.pers[ "bots" ][ "skill" ][ "shoot_after_time" ] = 0; + self.pers[ "bots" ][ "skill" ][ "aim_offset_time" ] = 0; + self.pers[ "bots" ][ "skill" ][ "aim_offset_amount" ] = 0; + self.pers[ "bots" ][ "skill" ][ "bone_update_interval" ] = 0.05; + self.pers[ "bots" ][ "skill" ][ "bones" ] = "j_head"; + self.pers[ "bots" ][ "skill" ][ "ads_fov_multi" ] = 0.5; + self.pers[ "bots" ][ "skill" ][ "ads_aimspeed_multi" ] = 0.5; - self.pers["bots"]["behavior"]["strafe"] = 65; - self.pers["bots"]["behavior"]["nade"] = 65; - self.pers["bots"]["behavior"]["camp"] = 5; - self.pers["bots"]["behavior"]["follow"] = 5; - self.pers["bots"]["behavior"]["crouch"] = 5; - self.pers["bots"]["behavior"]["switch"] = 2; - self.pers["bots"]["behavior"]["class"] = 2; - self.pers["bots"]["behavior"]["jump"] = 90; + self.pers[ "bots" ][ "behavior" ][ "strafe" ] = 65; + self.pers[ "bots" ][ "behavior" ][ "nade" ] = 65; + self.pers[ "bots" ][ "behavior" ][ "camp" ] = 5; + self.pers[ "bots" ][ "behavior" ][ "follow" ] = 5; + self.pers[ "bots" ][ "behavior" ][ "crouch" ] = 5; + self.pers[ "bots" ][ "behavior" ][ "switch" ] = 2; + self.pers[ "bots" ][ "behavior" ][ "class" ] = 2; + self.pers[ "bots" ][ "behavior" ][ "jump" ] = 90; break; } } @@ -471,15 +471,15 @@ teamWatch() for ( ;; ) { - while ( !isdefined( self.pers["team"] ) || !allowTeamChoice() ) + while ( !isdefined( self.pers[ "team" ] ) || !allowTeamChoice() ) wait .05; 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"] ) ) + while ( isdefined( self.pers[ "team" ] ) ) wait .05; } } @@ -494,47 +494,47 @@ chooseRandomClass() if ( self.team == "axis" ) { - weapons[weapons.size] = "mp40_mp"; - weapons[weapons.size] = "mp44_mp"; - weapons[weapons.size] = "kar98k_mp"; - weapons[weapons.size] = "kar98k_sniper_mp"; - weapons[weapons.size] = "shotgun_mp"; - weapons[weapons.size] = "g43_mp"; + weapons[ weapons.size ] = "mp40_mp"; + weapons[ weapons.size ] = "mp44_mp"; + weapons[ weapons.size ] = "kar98k_mp"; + weapons[ weapons.size ] = "kar98k_sniper_mp"; + weapons[ weapons.size ] = "shotgun_mp"; + weapons[ weapons.size ] = "g43_mp"; } else { - if ( game["allies"] == "american" ) + if ( game[ "allies" ] == "american" ) { - weapons[weapons.size] = "shotgun_mp"; - weapons[weapons.size] = "bar_mp"; - weapons[weapons.size] = "thompson_mp"; - weapons[weapons.size] = "springfield_mp"; - weapons[weapons.size] = "m1garand_mp"; - weapons[weapons.size] = "m1carbine_mp"; - weapons[weapons.size] = "greasegun_mp"; + weapons[ weapons.size ] = "shotgun_mp"; + weapons[ weapons.size ] = "bar_mp"; + weapons[ weapons.size ] = "thompson_mp"; + weapons[ weapons.size ] = "springfield_mp"; + weapons[ weapons.size ] = "m1garand_mp"; + weapons[ weapons.size ] = "m1carbine_mp"; + weapons[ weapons.size ] = "greasegun_mp"; } - else if ( game["allies"] == "british" ) + else if ( game[ "allies" ] == "british" ) { - weapons[weapons.size] = "shotgun_mp"; - weapons[weapons.size] = "sten_mp"; - weapons[weapons.size] = "bren_mp"; - weapons[weapons.size] = "enfield_mp"; - weapons[weapons.size] = "enfield_scope_mp"; - weapons[weapons.size] = "m1garand_mp"; - weapons[weapons.size] = "thompson_mp"; + weapons[ weapons.size ] = "shotgun_mp"; + weapons[ weapons.size ] = "sten_mp"; + weapons[ weapons.size ] = "bren_mp"; + weapons[ weapons.size ] = "enfield_mp"; + weapons[ weapons.size ] = "enfield_scope_mp"; + weapons[ weapons.size ] = "m1garand_mp"; + weapons[ weapons.size ] = "thompson_mp"; } else { - weapons[weapons.size] = "shotgun_mp"; - weapons[weapons.size] = "ppsh_mp"; - weapons[weapons.size] = "mosin_nagant_mp"; - weapons[weapons.size] = "mosin_nagant_sniper_mp"; - weapons[weapons.size] = "SVT40_mp"; - weapons[weapons.size] = "PPS42_mp"; + weapons[ weapons.size ] = "shotgun_mp"; + weapons[ weapons.size ] = "ppsh_mp"; + weapons[ weapons.size ] = "mosin_nagant_mp"; + weapons[ weapons.size ] = "mosin_nagant_sniper_mp"; + weapons[ weapons.size ] = "SVT40_mp"; + weapons[ weapons.size ] = "PPS42_mp"; } } - weap = weapons[randomint( weapons.size )]; + weap = weapons[ randomint( weapons.size ) ]; return weap; } @@ -551,17 +551,17 @@ classWatch() for ( ;; ) { - while ( !isdefined( self.pers["team"] ) || !allowClassChoice() ) + while ( !isdefined( self.pers[ "team" ] ) || !allowClassChoice() ) wait .05; wait 0.5; - if ( !isdefined( self.pers["weapon"] ) || self.pers["weapon"] == "" || !isdefined( self.bot_change_class ) ) - self notify( "menuresponse", game["menu_weapon_" + self.team], self chooseRandomClass() ); + 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; diff --git a/maps/mp/bots/_bot_utility.gsc b/maps/mp/bots/_bot_utility.gsc index 9e5b930..6898381 100644 --- a/maps/mp/bots/_bot_utility.gsc +++ b/maps/mp/bots/_bot_utility.gsc @@ -24,9 +24,9 @@ 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 ); + [[ level.bot_builtins[ "printconsole" ] ]]( s ); } } @@ -36,9 +36,9 @@ 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 ); + self [[ level.bot_builtins[ "botaction" ] ]]( action ); } } @@ -48,9 +48,9 @@ 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" ]]](); + self [[ level.bot_builtins[ "botstop" ] ]](); } } @@ -60,9 +60,9 @@ 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 ); + self [[ level.bot_builtins[ "botmovement" ] ]]( forward, right ); } } @@ -71,9 +71,9 @@ 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" ]]](); + return self [[ level.bot_builtins[ "isbot" ] ]](); } return false; @@ -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" ] ); } /* @@ -92,7 +92,7 @@ is_host() */ doHostCheck() { - self.pers["bot_host"] = false; + self.pers[ "bot_host" ] = false; if ( self is_bot() ) return; @@ -120,7 +120,7 @@ doHostCheck() for ( i = 0; i < guids.size; i++ ) { - if ( self getguid() + "" == guids[i] ) + if ( self getguid() + "" == guids[ i ] ) result = true; } } @@ -128,7 +128,7 @@ doHostCheck() if ( !result ) return; - self.pers["bot_host"] = true; + self.pers[ "bot_host" ] = true; } /* @@ -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() ); } /* @@ -448,26 +448,26 @@ isInUse() getValidGrenade() { grenadeTypes = []; - grenadeTypes[0] = "frag_grenade_american_mp"; - grenadeTypes[1] = "smoke_grenade_american_mp"; - grenadeTypes[2] = "frag_grenade_british_mp"; - grenadeTypes[3] = "smoke_grenade_british_mp"; - grenadeTypes[4] = "frag_grenade_russian_mp"; - grenadeTypes[5] = "smoke_grenade_russian_mp"; - grenadeTypes[6] = "frag_grenade_german_mp"; - grenadeTypes[7] = "smoke_grenade_german_mp"; + grenadeTypes[ 0 ] = "frag_grenade_american_mp"; + grenadeTypes[ 1 ] = "smoke_grenade_american_mp"; + grenadeTypes[ 2 ] = "frag_grenade_british_mp"; + grenadeTypes[ 3 ] = "smoke_grenade_british_mp"; + grenadeTypes[ 4 ] = "frag_grenade_russian_mp"; + grenadeTypes[ 5 ] = "smoke_grenade_russian_mp"; + grenadeTypes[ 6 ] = "frag_grenade_german_mp"; + grenadeTypes[ 7 ] = "smoke_grenade_german_mp"; possibles = []; for ( i = 0; i < grenadeTypes.size; i++ ) { - if ( !self hasweapon( grenadeTypes[i] ) ) + if ( !self hasweapon( grenadeTypes[ i ] ) ) continue; - if ( !self getAmmoCount( grenadeTypes[i] ) ) + if ( !self getAmmoCount( grenadeTypes[ i ] ) ) continue; - possibles[possibles.size] = grenadeTypes[i]; + possibles[ possibles.size ] = grenadeTypes[ i ]; } return random( possibles ); @@ -502,7 +502,7 @@ isOnLadder() */ weaponClass( weap ) { - answer = level.bots_weapon_class_names[weap]; + answer = level.bots_weapon_class_names[ weap ]; if ( !isdefined( answer ) ) answer = ""; @@ -515,7 +515,7 @@ weaponClass( weap ) */ WeaponClipSize( weap ) { - answer = level.bots_weapon_clip_sizes[weap]; + answer = level.bots_weapon_clip_sizes[ weap ]; if ( !isdefined( answer ) ) answer = 1; @@ -559,7 +559,7 @@ getStance() { myEye = self getTagOrigin( "tag_eye" ); - height = myEye[2] - self.origin[2]; + height = myEye[ 2 ] - self.origin[ 2 ]; if ( height > 50 ) return "stand"; @@ -596,7 +596,7 @@ 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 ] ] ); } /* @@ -636,14 +636,14 @@ getTagOrigin( where ) 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.tags[ self.tags.size ] = obj; + self.tagmap[ where ] = obj; return self.origin; } @@ -764,7 +764,7 @@ random( arr ) if ( !size ) return undefined; - return arr[randomint( size )]; + return arr[ randomint( size ) ]; } /* @@ -776,7 +776,7 @@ array_remove( ents, remover ) for ( i = 0; i < ents.size; i++ ) { - index = ents[i]; + index = ents[ i ]; if ( index != remover ) newents[ newents.size ] = index; @@ -801,7 +801,7 @@ GetHostPlayer() { for ( i = 0; i < level.players.size; i++ ) { - player = level.players[i]; + player = level.players[ i ]; if ( !player is_host() ) continue; @@ -901,11 +901,11 @@ RaySphereIntersect( start, end, spherePos, radius ) // check if the line made by start and end intersect the sphere dp = end - start; - a = dp[0] * dp[0] + dp[1] * dp[1] + dp[2] * dp[2]; - b = 2 * ( dp[0] * ( start[0] - spherePos[0] ) + dp[1] * ( start[1] - spherePos[1] ) + dp[2] * ( start[2] - spherePos[2] ) ); - c = spherePos[0] * spherePos[0] + spherePos[1] * spherePos[1] + spherePos[2] * spherePos[2]; - c += start[0] * start[0] + start[1] * start[1] + start[2] * start[2]; - c -= 2.0 * ( spherePos[0] * start[0] + spherePos[1] * start[1] + spherePos[2] * start[2] ); + a = dp[ 0 ] * dp[ 0 ] + dp[ 1 ] * dp[ 1 ] + dp[ 2 ] * dp[ 2 ]; + b = 2 * ( dp[ 0 ] * ( start[ 0 ] - spherePos[ 0 ] ) + dp[ 1 ] * ( start[ 1 ] - spherePos[ 1 ] ) + dp[ 2 ] * ( start[ 2 ] - spherePos[ 2 ] ) ); + c = spherePos[ 0 ] * spherePos[ 0 ] + spherePos[ 1 ] * spherePos[ 1 ] + spherePos[ 2 ] * spherePos[ 2 ]; + c += start[ 0 ] * start[ 0 ] + start[ 1 ] * start[ 1 ] + start[ 2 ] * start[ 2 ]; + c -= 2.0 * ( spherePos[ 0 ] * start[ 0 ] + spherePos[ 1 ] * start[ 1 ] + spherePos[ 2 ] * start[ 2 ] ); c -= radius * radius; bb4ac = b * b - 4.0 * a * c; @@ -939,7 +939,7 @@ RaySphereIntersect( start, end, spherePos, radius ) */ vector_scale( vec, scale ) { - vec = ( vec[0] * scale, vec[1] * scale, vec[2] * scale ); + vec = ( vec[ 0 ] * scale, vec[ 1 ] * scale, vec[ 2 ] * scale ); return vec; } @@ -950,7 +950,7 @@ SmokeTrace( start, end, rad ) { 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; @@ -976,8 +976,8 @@ getConeDot( to, from, dir ) */ DistanceSquared2D( to, from ) { - to = ( to[0], to[1], 0 ); - from = ( from[0], from[1], 0 ); + to = ( to[ 0 ], to[ 1 ], 0 ); + from = ( from[ 0 ], from[ 1 ], 0 ); return distancesquared( to, from ); } @@ -1189,28 +1189,28 @@ parseTokensIntoWaypoint( tokens ) { waypoint = spawnstruct(); - orgStr = tokens[0]; + orgStr = tokens[ 0 ]; orgToks = strtok( orgStr, " " ); - waypoint.origin = ( float_old( orgToks[0] ), float_old( orgToks[1] ), float_old( orgToks[2] ) ); + waypoint.origin = ( float_old( orgToks[ 0 ] ), float_old( orgToks[ 1 ] ), float_old( orgToks[ 2 ] ) ); - childStr = tokens[1]; + childStr = tokens[ 1 ]; childToks = strtok( childStr, " " ); waypoint.children = []; for ( j = 0; j < childToks.size; j++ ) - waypoint.children[j] = int( childToks[j] ); + waypoint.children[ j ] = int( childToks[ j ] ); - type = tokens[2]; + type = tokens[ 2 ]; waypoint.type = type; - anglesStr = tokens[3]; + anglesStr = tokens[ 3 ]; if ( isdefined( anglesStr ) && anglesStr != "" ) { anglesToks = strtok( anglesStr, " " ); if ( anglesToks.size >= 3 ) - waypoint.angles = ( float_old( anglesToks[0] ), float_old( anglesToks[1] ), float_old( anglesToks[2] ) ); + waypoint.angles = ( float_old( anglesToks[ 0 ] ), float_old( anglesToks[ 1 ] ), float_old( anglesToks[ 2 ] ) ); } return waypoint; @@ -1262,7 +1262,7 @@ readWpsFromFile( mapname ) waypoint = parseTokensIntoWaypoint( tokens ); - waypoints[i - 1] = waypoint; + waypoints[ i - 1 ] = waypoint; } break; @@ -1323,43 +1323,43 @@ loadmbotWps( mapname, gametype ) break; 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"; - if ( t[4] == "1" ) + if ( t[ 4 ] == "1" ) stance = "crouch"; - else if ( t[4] == "2" ) + else if ( t[ 4 ] == "2" ) stance = "prone"; wp.children = []; k = 0; - for ( k = 0; k < int( t[5] ); k++ ) - wp.children[k] = int( t[6 + k] ); + for ( k = 0; k < int( t[ 5 ] ); k++ ) + wp.children[ k ] = int( t[ 6 + k ] ); - if ( t[3] == "l" || t[3] == "m" || t[3] == "f" || t[3] == "j" ) + if ( t[ 3 ] == "l" || t[ 3 ] == "m" || t[ 3 ] == "f" || t[ 3 ] == "j" ) wp.type = "climb"; - else if ( t[3] == "g" ) + else if ( t[ 3 ] == "g" ) wp.type = "grenade"; - else if ( t[3] == "c" ) + else if ( t[ 3 ] == "c" ) { wp.type = "crouch"; - wpc = wp.children[0]; + wpc = wp.children[ 0 ]; wp.children = []; - wp.children[0] = wpc; + wp.children[ 0 ] = wpc; } else wp.type = stance; - if ( ( t.size == 9 && t[3] == "w" && t[5] == "1" ) || t[3] == "g" || t[3] == "c" ) + if ( ( t.size == 9 && t[ 3 ] == "w" && t[ 5 ] == "1" ) || t[ 3 ] == "g" || t[ 3 ] == "c" ) { k += 6; - wp.angles = ( float_old( t[k] ), float_old( t[k + 1] ), 0.0 ); + wp.angles = ( float_old( t[ k ] ), float_old( t[ k + 1 ] ), 0.0 ); } - wps[i] = wp; + wps[ i ] = wp; i++; } @@ -1376,8 +1376,8 @@ load_waypoints() level.waypointcount = 0; level.waypointusage = []; - level.waypointusage["allies"] = []; - level.waypointusage["axis"] = []; + level.waypointusage[ "allies" ] = []; + level.waypointusage[ "axis" ] = []; if ( !isdefined( level.waypoints ) ) @@ -1422,16 +1422,16 @@ load_waypoints() for ( i = 0; i < level.waypointcount; i++ ) { - if ( !isdefined( level.waypoints[i].children ) || !isdefined( level.waypoints[i].children.size ) ) - level.waypoints[i].children = []; + if ( !isdefined( level.waypoints[ i ].children ) || !isdefined( level.waypoints[ i ].children.size ) ) + level.waypoints[ i ].children = []; - if ( !isdefined( level.waypoints[i].origin ) ) - level.waypoints[i].origin = ( 0, 0, 0 ); + if ( !isdefined( level.waypoints[ i ].origin ) ) + level.waypoints[ i ].origin = ( 0, 0, 0 ); - if ( !isdefined( level.waypoints[i].type ) ) - level.waypoints[i].type = "crouch"; + if ( !isdefined( level.waypoints[ i ].type ) ) + level.waypoints[ i ].type = "crouch"; - level.waypoints[i].childcount = undefined; + level.waypoints[ i ].childcount = undefined; } } @@ -1444,7 +1444,7 @@ nearAnyOfWaypoints( dist, waypoints ) for ( i = 0; i < waypoints.size; i++ ) { - waypoint = level.waypoints[waypoints[i]]; + waypoint = level.waypoints[ waypoints[ i ] ]; if ( distancesquared( waypoint.origin, self.origin ) > dist ) continue; @@ -1466,12 +1466,12 @@ waypointsNear( waypoints, dist ) for ( i = 0; i < waypoints.size; i++ ) { - wp = level.waypoints[waypoints[i]]; + wp = level.waypoints[ waypoints[ i ] ]; if ( distancesquared( wp.origin, self.origin ) > dist ) continue; - answer[answer.size] = waypoints[i]; + answer[ answer.size ] = waypoints[ i ]; } return answer; @@ -1487,13 +1487,13 @@ getNearestWaypointOfWaypoints( waypoints ) for ( i = 0; i < waypoints.size; i++ ) { - waypoint = level.waypoints[waypoints[i]]; + waypoint = level.waypoints[ waypoints[ i ] ]; thisDist = distancesquared( self.origin, waypoint.origin ); if ( isdefined( answer ) && thisDist > closestDist ) continue; - answer = waypoints[i]; + answer = waypoints[ i ]; closestDist = thisDist; } @@ -1509,7 +1509,7 @@ getWaypointsOfType( type ) for ( i = 0; i < level.waypointcount; i++ ) { - wp = level.waypoints[i]; + wp = level.waypoints[ i ]; if ( type == "camp" ) { @@ -1522,7 +1522,7 @@ getWaypointsOfType( type ) else if ( type != wp.type ) continue; - answer[answer.size] = i; + answer[ answer.size ] = i; } return answer; @@ -1536,7 +1536,7 @@ getWaypointForIndex( i ) if ( !isdefined( i ) ) return undefined; - return level.waypoints[i]; + return level.waypoints[ i ]; } /* @@ -1600,7 +1600,7 @@ 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; @@ -1611,7 +1611,7 @@ getBotToKick() // count teams for ( i = 0; i < bots.size; i++ ) { - bot = bots[i]; + bot = bots[ i ]; if ( !isdefined( bot ) || !isdefined( bot.team ) ) continue; @@ -1645,7 +1645,7 @@ getBotToKick() // get the bot on this team with lowest skill for ( i = 0; i < bots.size; i++ ) { - bot = bots[i]; + bot = bots[ i ]; if ( !isdefined( bot ) || !isdefined( bot.team ) ) continue; @@ -1653,10 +1653,10 @@ getBotToKick() 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; @@ -1668,15 +1668,15 @@ getBotToKick() // just kick lowest skill for ( i = 0; i < bots.size; i++ ) { - bot = bots[i]; + bot = bots[ i ]; 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; @@ -1695,12 +1695,12 @@ getBotArray() for ( i = 0; i < playercount; i++ ) { - player = level.players[i]; + player = level.players[ i ]; if ( !player is_bot() ) continue; - result[result.size] = player; + result[ result.size ] = player; } return result; @@ -1747,14 +1747,14 @@ _WaypointsToKDTree( waypoints, dem ) for ( i = 0; i < waypoints.size; i++ ) { - heap HeapInsert( waypoints[i] ); + heap HeapInsert( waypoints[ i ] ); } sorted = []; while ( heap.data.size ) { - sorted[sorted.size] = heap.data[0]; + sorted[ sorted.size ] = heap.data[ 0 ]; heap HeapRemove(); } @@ -1765,11 +1765,11 @@ _WaypointsToKDTree( waypoints, dem ) for ( i = 0; i < sorted.size; i++ ) if ( i < median ) - right[right.size] = sorted[i]; + right[ right.size ] = sorted[ i ]; else if ( i > median ) - left[left.size] = sorted[i]; + left[ left.size ] = sorted[ i ]; - self KDTreeInsert( sorted[median] ); + self KDTreeInsert( sorted[ median ] ); _WaypointsToKDTree( left, ( dem + 1 ) % 3 ); @@ -1793,7 +1793,7 @@ List() */ ListAdd( thing ) { - self.data[self.count] = thing; + self.data[ self.count ] = thing; self.count++; } @@ -1805,10 +1805,10 @@ ListAddFirst( thing ) { for ( i = self.count - 1; i >= 0; i-- ) { - self.data[i + 1] = self.data[i]; + self.data[ i + 1 ] = self.data[ i ]; } - self.data[0] = thing; + self.data[ 0 ] = thing; self.count++; } @@ -1819,15 +1819,15 @@ ListRemove( thing ) { for ( i = 0; i < self.count; i++ ) { - if ( self.data[i] == thing ) + if ( self.data[ i ] == thing ) { while ( i < self.count - 1 ) { - self.data[i] = self.data[i + 1]; + self.data[ i ] = self.data[ i + 1 ]; i++; } - self.data[i] = undefined; + self.data[ i ] = undefined; self.count--; break; } @@ -1880,26 +1880,26 @@ _KDTreeInsert( node, data, dem, x0, y0, z0, x1, y1, z1 ) switch ( dem ) { case 0: - if ( data.origin[0] < node.data.origin[0] ) - node.left = self _KDTreeInsert( node.left, data, 1, x0, y0, z0, node.data.origin[0], y1, z1 ); + if ( data.origin[ 0 ] < node.data.origin[ 0 ] ) + node.left = self _KDTreeInsert( node.left, data, 1, x0, y0, z0, node.data.origin[ 0 ], y1, z1 ); else - node.right = self _KDTreeInsert( node.right, data, 1, node.data.origin[0], y0, z0, x1, y1, z1 ); + node.right = self _KDTreeInsert( node.right, data, 1, node.data.origin[ 0 ], y0, z0, x1, y1, z1 ); break; case 1: - if ( data.origin[1] < node.data.origin[1] ) - node.left = self _KDTreeInsert( node.left, data, 2, x0, y0, z0, x1, node.data.origin[1], z1 ); + if ( data.origin[ 1 ] < node.data.origin[ 1 ] ) + node.left = self _KDTreeInsert( node.left, data, 2, x0, y0, z0, x1, node.data.origin[ 1 ], z1 ); else - node.right = self _KDTreeInsert( node.right, data, 2, x0, node.data.origin[1], z0, x1, y1, z1 ); + node.right = self _KDTreeInsert( node.right, data, 2, x0, node.data.origin[ 1 ], z0, x1, y1, z1 ); break; case 2: - if ( data.origin[2] < node.data.origin[2] ) - node.left = self _KDTreeInsert( node.left, data, 0, x0, y0, z0, x1, y1, node.data.origin[2] ); + if ( data.origin[ 2 ] < node.data.origin[ 2 ] ) + node.left = self _KDTreeInsert( node.left, data, 0, x0, y0, z0, x1, y1, node.data.origin[ 2 ] ); else - node.right = self _KDTreeInsert( node.right, data, 0, x0, y0, node.data.origin[2], x1, y1, z1 ); + node.right = self _KDTreeInsert( node.right, data, 0, x0, y0, node.data.origin[ 2 ], x1, y1, z1 ); break; } @@ -1941,7 +1941,7 @@ _KDTreeNearest( node, point, closest, closestdist, dem ) near = node.left; far = node.right; - if ( point[dem] > node.data.origin[dem] ) + if ( point[ dem ] > node.data.origin[ dem ] ) { near = node.right; far = node.left; @@ -1964,21 +1964,21 @@ RectDistanceSquared( origin ) dy = 0; dz = 0; - if ( origin[0] < self.x0 ) - dx = origin[0] - self.x0; - else if ( origin[0] > self.x1 ) - dx = origin[0] - self.x1; + if ( origin[ 0 ] < self.x0 ) + dx = origin[ 0 ] - self.x0; + else if ( origin[ 0 ] > self.x1 ) + dx = origin[ 0 ] - self.x1; - if ( origin[1] < self.y0 ) - dy = origin[1] - self.y0; - else if ( origin[1] > self.y1 ) - dy = origin[1] - self.y1; + if ( origin[ 1 ] < self.y0 ) + dy = origin[ 1 ] - self.y0; + else if ( origin[ 1 ] > self.y1 ) + dy = origin[ 1 ] - self.y1; - if ( origin[2] < self.z0 ) - dz = origin[2] - self.z0; - else if ( origin[2] > self.z1 ) - dz = origin[2] - self.z1; + if ( origin[ 2 ] < self.z0 ) + dz = origin[ 2 ] - self.z0; + else if ( origin[ 2 ] > self.z1 ) + dz = origin[ 2 ] - self.z1; return dx * dx + dy * dy + dz * dz; } @@ -1988,7 +1988,7 @@ RectDistanceSquared( origin ) */ HeapSortCoordX( item, item2 ) { - return item.origin[0] > item2.origin[0]; + return item.origin[ 0 ] > item2.origin[ 0 ]; } /* @@ -1996,7 +1996,7 @@ HeapSortCoordX( item, item2 ) */ HeapSortCoordY( item, item2 ) { - return item.origin[1] > item2.origin[1]; + return item.origin[ 1 ] > item2.origin[ 1 ]; } /* @@ -2004,7 +2004,7 @@ HeapSortCoordY( item, item2 ) */ HeapSortCoordZ( item, item2 ) { - return item.origin[2] > item2.origin[2]; + return item.origin[ 2 ] > item2.origin[ 2 ]; } /* @@ -2028,7 +2028,7 @@ ReverseHeap( item, item2 ) */ HeapTraceFraction( item, item2 ) { - return item["fraction"] > item2["fraction"]; + return item[ "fraction" ] > item2[ "fraction" ]; } /* @@ -2049,7 +2049,7 @@ NewHeap( compare ) HeapInsert( item ) { insert = self.data.size; - self.data[insert] = item; + self.data[ insert ] = item; current = insert + 1; @@ -2058,11 +2058,11 @@ HeapInsert( item ) last = current; current = int( current / 2 ); - if ( ![[self.compare]]( item, self.data[current - 1] ) ) + if ( ![[ self.compare ]]( item, self.data[ current - 1 ] ) ) break; - self.data[last - 1] = self.data[current - 1]; - self.data[current - 1] = item; + self.data[ last - 1 ] = self.data[ current - 1 ]; + self.data[ current - 1 ] = item; } } @@ -2080,7 +2080,7 @@ _HeapNextChild( node, hsize ) if ( right > hsize ) return left; - if ( [[self.compare]]( self.data[left - 1], self.data[right - 1] ) ) + if ( [[ self.compare ]]( self.data[ left - 1 ], self.data[ right - 1 ] ) ) return left; else return right; @@ -2096,9 +2096,9 @@ HeapRemove() if ( !remove ) return remove; - move = self.data[remove - 1]; - self.data[0] = move; - self.data[remove - 1] = undefined; + move = self.data[ remove - 1 ]; + self.data[ 0 ] = move; + self.data[ remove - 1 ] = undefined; remove--; if ( !remove ) @@ -2109,11 +2109,11 @@ HeapRemove() while ( next != -1 ) { - if ( [[self.compare]]( move, self.data[next - 1] ) ) + if ( [[ self.compare ]]( move, self.data[ next - 1 ] ) ) break; - self.data[last - 1] = self.data[next - 1]; - self.data[next - 1] = move; + self.data[ last - 1 ] = self.data[ next - 1 ]; + self.data[ next - 1 ] = move; last = next; next = self _HeapNextChild( next, remove ); @@ -2138,13 +2138,13 @@ RemoveWaypointUsage( wp, team ) 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; } /* @@ -2157,10 +2157,10 @@ GetNearestWaypointWithSight( pos ) 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; @@ -2182,7 +2182,7 @@ getNearestWaypoint( pos ) 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; @@ -2213,7 +2213,7 @@ AStarSearch( start, goal, team, greedy_path ) _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 ) ) @@ -2227,7 +2227,7 @@ AStarSearch( start, goal, team, greedy_path ) _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 ); if ( isdefined( _goalWp ) ) @@ -2236,23 +2236,23 @@ AStarSearch( start, goal, team, greedy_path ) 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 //push node onto queue - openset[node.index + ""] = node; + openset[ node.index + "" ] = node; open HeapInsert( node ); //while the queue is not empty while ( open.data.size ) { //pop bestnode from queue - bestNode = open.data[0]; + bestNode = open.data[ 0 ]; open HeapRemove(); - openset[bestNode.index + ""] = undefined; - wp = level.waypoints[bestNode.index]; + openset[ bestNode.index + "" ] = undefined; + wp = level.waypoints[ bestNode.index ]; //check if we made it to the goal if ( bestNode.index == goalWp ) @@ -2263,14 +2263,14 @@ AStarSearch( start, goal, team, greedy_path ) { 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 - path[path.size] = bestNode.index; + path[ path.size ] = bestNode.index; bestNode = bestNode.parent; } @@ -2281,8 +2281,8 @@ AStarSearch( start, goal, team, greedy_path ) //for each child of bestnode for ( i = wp.children.size - 1; i >= 0; i-- ) { - child = wp.children[i]; - childWp = level.waypoints[child]; + child = wp.children[ i ]; + childWp = level.waypoints[ child ]; penalty = 1; @@ -2290,8 +2290,8 @@ AStarSearch( start, goal, team, greedy_path ) { 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; @@ -2305,45 +2305,45 @@ AStarSearch( start, goal, team, greedy_path ) 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 ) + if ( inopen && openset[ child + "" ].g <= newg ) continue; - inclosed = isdefined( closed[child + ""] ); + inclosed = isdefined( closed[ child + "" ] ); - if ( inclosed && closed[child + ""].g <= newg ) + if ( inclosed && closed[ child + "" ].g <= newg ) continue; node = undefined; if ( inopen ) - node = openset[child + ""]; + node = openset[ child + "" ]; else if ( inclosed ) - node = closed[child + ""]; + node = closed[ child + "" ]; else 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; //check if in closed, remove it if ( inclosed ) - closed[child + ""] = undefined; + closed[ child + "" ] = undefined; //check if not in open, add it if ( !inopen ) { open HeapInsert( node ); - openset[child + ""] = node; + openset[ child + "" ] = node; } } //done with children, push onto closed - closed[bestNode.index + ""] = bestNode; + closed[ bestNode.index + "" ] = bestNode; } return []; @@ -2360,7 +2360,7 @@ array_average( array ) for ( i = 0; i < array.size; i++ ) { - total += array[i]; + total += array[ i ]; } return ( total / array.size ); @@ -2377,14 +2377,14 @@ array_std_deviation( array, mean ) for ( i = 0; i < array.size; i++ ) { - tmp[i] = ( array[i] - mean ) * ( array[i] - mean ); + tmp[ i ] = ( array[ i ] - mean ) * ( array[ i ] - mean ); } total = 0; for ( i = 0; i < tmp.size; i++ ) { - total = total + tmp[i]; + total = total + tmp[ i ]; } return sqrt( total / array.size ); diff --git a/scripts/bots_adapter_libcod.gsc b/scripts/bots_adapter_libcod.gsc index 1536da6..c529ebf 100644 --- a/scripts/bots_adapter_libcod.gsc +++ b/scripts/bots_adapter_libcod.gsc @@ -1,10 +1,10 @@ init() { - level.bot_builtins["printconsole"] = ::do_printconsole; - level.bot_builtins["botaction"] = ::do_botaction; - level.bot_builtins["botstop"] = ::do_botstop; - level.bot_builtins["botmovement"] = ::do_botmovement; - level.bot_builtins["isbot"] = ::do_isbot; + level.bot_builtins[ "printconsole" ] = ::do_printconsole; + level.bot_builtins[ "botaction" ] = ::do_botaction; + level.bot_builtins[ "botstop" ] = ::do_botstop; + level.bot_builtins[ "botmovement" ] = ::do_botmovement; + level.bot_builtins[ "isbot" ] = ::do_isbot; } do_printconsole( s )