casing fixes

This commit is contained in:
ineed bots 2023-12-18 23:42:48 -06:00
parent b85f5af73a
commit 271ea76c3e
13 changed files with 3064 additions and 3075 deletions

View File

@ -7,100 +7,100 @@
*/ */
init() init()
{ {
level.bw_VERSION = "z0.1"; level.bw_version = "z0.1";
if ( getDvar( "bots_main" ) == "" ) if ( getdvar( "bots_main" ) == "" )
setDvar( "bots_main", true ); setdvar( "bots_main", true );
if ( !getDvarInt( "bots_main" ) ) if ( !getdvarint( "bots_main" ) )
return; return;
if ( !wait_for_builtins() ) if ( !wait_for_builtins() )
PrintLn( "FATAL: NO BUILT-INS FOR BOTS" ); println( "FATAL: NO BUILT-INS FOR BOTS" );
thread load_waypoints(); thread load_waypoints();
thread hook_callbacks(); thread hook_callbacks();
if ( getDvar( "bots_main_GUIDs" ) == "" ) if ( getdvar( "bots_main_GUIDs" ) == "" )
setDvar( "bots_main_GUIDs", "" ); //guids of players who will be given host powers, comma seperated setdvar( "bots_main_GUIDs", "" ); //guids of players who will be given host powers, comma seperated
if ( getDvar( "bots_main_firstIsHost" ) == "" ) if ( getdvar( "bots_main_firstIsHost" ) == "" )
setDvar( "bots_main_firstIsHost", false ); //first player to connect is a host setdvar( "bots_main_firstIsHost", false ); //first player to connect is a host
if ( getDvar( "bots_main_waitForHostTime" ) == "" ) if ( getdvar( "bots_main_waitForHostTime" ) == "" )
setDvar( "bots_main_waitForHostTime", 10.0 ); //how long to wait to wait for the host player setdvar( "bots_main_waitForHostTime", 10.0 ); //how long to wait to wait for the host player
if ( getDvar( "bots_main_kickBotsAtEnd" ) == "" ) if ( getdvar( "bots_main_kickBotsAtEnd" ) == "" )
setDvar( "bots_main_kickBotsAtEnd", false ); //kicks the bots at game end setdvar( "bots_main_kickBotsAtEnd", false ); //kicks the bots at game end
if ( getDvar( "bots_manage_add" ) == "" ) if ( getdvar( "bots_manage_add" ) == "" )
setDvar( "bots_manage_add", 0 ); //amount of bots to add to the game setdvar( "bots_manage_add", 0 ); //amount of bots to add to the game
if ( getDvar( "bots_manage_fill" ) == "" ) if ( getdvar( "bots_manage_fill" ) == "" )
setDvar( "bots_manage_fill", 0 ); //amount of bots to maintain setdvar( "bots_manage_fill", 0 ); //amount of bots to maintain
if ( getDvar( "bots_manage_fill_mode" ) == "" ) if ( getdvar( "bots_manage_fill_mode" ) == "" )
setDvar( "bots_manage_fill_mode", 0 ); //fill mode, 0 adds everyone, 1 just bots, 2 maintains at maps, 3 is 2 with 1 setdvar( "bots_manage_fill_mode", 0 ); //fill mode, 0 adds everyone, 1 just bots, 2 maintains at maps, 3 is 2 with 1
if ( getDvar( "bots_manage_fill_kick" ) == "" ) if ( getdvar( "bots_manage_fill_kick" ) == "" )
setDvar( "bots_manage_fill_kick", false ); //kick bots if too many setdvar( "bots_manage_fill_kick", false ); //kick bots if too many
if ( getDvar( "bots_skill" ) == "" ) if ( getdvar( "bots_skill" ) == "" )
setDvar( "bots_skill", 0 ); //0 is random, 1 is easy 7 is hard, 8 is custom, 9 is completely random setdvar( "bots_skill", 0 ); //0 is random, 1 is easy 7 is hard, 8 is custom, 9 is completely random
if ( getDvar( "bots_skill_hard" ) == "" ) if ( getdvar( "bots_skill_hard" ) == "" )
setDvar( "bots_skill_hard", 0 ); //amount of hard bots on axis team setdvar( "bots_skill_hard", 0 ); //amount of hard bots on axis team
if ( getDvar( "bots_skill_med" ) == "" ) if ( getdvar( "bots_skill_med" ) == "" )
setDvar( "bots_skill_med", 0 ); setdvar( "bots_skill_med", 0 );
if ( getDvar( "bots_loadout_rank" ) == "" ) // what rank the bots should be around, -1 is around the players, 0 is all random if ( getdvar( "bots_loadout_rank" ) == "" ) // what rank the bots should be around, -1 is around the players, 0 is all random
setDvar( "bots_loadout_rank", -1 ); setdvar( "bots_loadout_rank", -1 );
if ( getDvar( "bots_loadout_prestige" ) == "" ) // what pretige the bots will be, -1 is the players, -2 is random if ( getdvar( "bots_loadout_prestige" ) == "" ) // what pretige the bots will be, -1 is the players, -2 is random
setDvar( "bots_loadout_prestige", -1 ); setdvar( "bots_loadout_prestige", -1 );
if ( getDvar( "bots_play_move" ) == "" ) //bots move if ( getdvar( "bots_play_move" ) == "" ) //bots move
setDvar( "bots_play_move", true ); setdvar( "bots_play_move", true );
if ( getDvar( "bots_play_knife" ) == "" ) //bots knife if ( getdvar( "bots_play_knife" ) == "" ) //bots knife
setDvar( "bots_play_knife", true ); setdvar( "bots_play_knife", true );
if ( getDvar( "bots_play_fire" ) == "" ) //bots fire if ( getdvar( "bots_play_fire" ) == "" ) //bots fire
setDvar( "bots_play_fire", true ); setdvar( "bots_play_fire", true );
if ( getDvar( "bots_play_nade" ) == "" ) //bots grenade if ( getdvar( "bots_play_nade" ) == "" ) //bots grenade
setDvar( "bots_play_nade", true ); setdvar( "bots_play_nade", true );
if ( getDvar( "bots_play_ads" ) == "" ) //bot ads if ( getdvar( "bots_play_ads" ) == "" ) //bot ads
setDvar( "bots_play_ads", true ); setdvar( "bots_play_ads", true );
if ( getDvar( "bots_play_aim" ) == "" ) if ( getdvar( "bots_play_aim" ) == "" )
setDvar( "bots_play_aim", true ); setdvar( "bots_play_aim", true );
if ( getDvar( "bots_t8_mode" ) == "" ) if ( getdvar( "bots_t8_mode" ) == "" )
setDvar( "bots_t8_mode", false ); setdvar( "bots_t8_mode", false );
if ( getDvar( "bots_play_opendoors" ) == "" ) if ( getdvar( "bots_play_opendoors" ) == "" )
setDvar( "bots_play_opendoors", true ); setdvar( "bots_play_opendoors", true );
if ( !isDefined( game["botWarfare"] ) ) if ( !isdefined( game["botWarfare"] ) )
game["botWarfare"] = true; game["botWarfare"] = true;
level.bots_minSprintDistance = 315; level.bots_minsprintdistance = 315;
level.bots_minSprintDistance *= level.bots_minSprintDistance; level.bots_minsprintdistance *= level.bots_minsprintdistance;
level.bots_minGrenadeDistance = 256; level.bots_mingrenadedistance = 256;
level.bots_minGrenadeDistance *= level.bots_minGrenadeDistance; level.bots_mingrenadedistance *= level.bots_mingrenadedistance;
level.bots_maxGrenadeDistance = 1024; level.bots_maxgrenadedistance = 1024;
level.bots_maxGrenadeDistance *= level.bots_maxGrenadeDistance; level.bots_maxgrenadedistance *= level.bots_maxgrenadedistance;
level.bots_maxKnifeDistance = 128; level.bots_maxknifedistance = 128;
level.bots_maxKnifeDistance *= level.bots_maxKnifeDistance; level.bots_maxknifedistance *= level.bots_maxknifedistance;
level.bots_goalDistance = 27.5; level.bots_goaldistance = 27.5;
level.bots_goalDistance *= level.bots_goalDistance; level.bots_goaldistance *= level.bots_goaldistance;
level.bots_noADSDistance = 200; level.bots_noadsdistance = 200;
level.bots_noADSDistance *= level.bots_noADSDistance; level.bots_noadsdistance *= level.bots_noadsdistance;
level.bots_maxShotgunDistance = 500; level.bots_maxshotgundistance = 500;
level.bots_maxShotgunDistance *= level.bots_maxShotgunDistance; level.bots_maxshotgundistance *= level.bots_maxshotgundistance;
level.players = []; level.players = [];
level.bots = []; level.bots = [];
@ -132,19 +132,19 @@ handleBots()
level thread diffBots(); level thread diffBots();
level addBots(); level addBots();
while ( !isDefined( level.intermission ) || !level.intermission ) while ( !isdefined( level.intermission ) || !level.intermission )
wait 0.05; wait 0.05;
setDvar( "bots_manage_add", getBotArray().size ); setdvar( "bots_manage_add", getBotArray().size );
if ( !getDvarInt( "bots_main_kickBotsAtEnd" ) ) if ( !getdvarint( "bots_main_kickBotsAtEnd" ) )
return; return;
bots = getBotArray(); bots = getBotArray();
for ( i = 0; i < bots.size; i++ ) for ( i = 0; i < bots.size; i++ )
{ {
BotBuiltinCmdExec( "clientkick " + bots[i] getEntityNumber() ); BotBuiltinCmdExec( "clientkick " + bots[i] getentitynumber() );
} }
} }
@ -153,9 +153,9 @@ handleBots()
*/ */
onPlayerDamage( eInflictor, eAttacker, iDamage, iDFlags, sMeansOfDeath, sWeapon, vPoint, vDir, sHitLoc, modelIndex, psOffsetTime ) onPlayerDamage( eInflictor, eAttacker, iDamage, iDFlags, sMeansOfDeath, sWeapon, vPoint, vDir, sHitLoc, modelIndex, psOffsetTime )
{ {
if ( self is_bot() && getDvarInt( "bots_t8_mode" ) ) if ( self is_bot() && getdvarint( "bots_t8_mode" ) )
{ {
if ( ( level.script == "nazi_zombie_asylum" || level.script == "nazi_zombie_sumpf" ) && self hasPerk( "specialty_armorvest" ) ) if ( ( level.script == "nazi_zombie_asylum" || level.script == "nazi_zombie_sumpf" ) && self hasperk( "specialty_armorvest" ) )
{ {
iDamage = int( iDamage * 0.333 ); iDamage = int( iDamage * 0.333 );
} }
@ -171,17 +171,17 @@ onPlayerDamage( eInflictor, eAttacker, iDamage, iDFlags, sMeansOfDeath, sWeapon,
self maps\bots\_bot_script::onDamage( eInflictor, eAttacker, iDamage, iDFlags, sMeansOfDeath, sWeapon, vPoint, vDir, sHitLoc, modelIndex, psOffsetTime ); self maps\bots\_bot_script::onDamage( eInflictor, eAttacker, iDamage, iDFlags, sMeansOfDeath, sWeapon, vPoint, vDir, sHitLoc, modelIndex, psOffsetTime );
} }
self [[level.prevCallbackPlayerDamage]]( eInflictor, eAttacker, iDamage, iDFlags, sMeansOfDeath, sWeapon, vPoint, vDir, sHitLoc, modelIndex, psOffsetTime ); self [[level.prevcallbackplayerdamage]]( eInflictor, eAttacker, iDamage, iDFlags, sMeansOfDeath, sWeapon, vPoint, vDir, sHitLoc, modelIndex, psOffsetTime );
} }
onActorDamage( eInflictor, eAttacker, iDamage, iDFlags, sMeansOfDeath, sWeapon, vPoint, vDir, sHitLoc, iModelIndex, iTimeOffset ) onActorDamage( eInflictor, eAttacker, iDamage, iDFlags, sMeansOfDeath, sWeapon, vPoint, vDir, sHitLoc, iModelIndex, iTimeOffset )
{ {
if ( isDefined( eAttacker ) && isPlayer( eAttacker ) && eAttacker is_bot() && getDvarInt( "bots_t8_mode" ) && ( !isDefined( self.magic_bullet_shield ) || !self.magic_bullet_shield ) ) if ( isdefined( eAttacker ) && isplayer( eAttacker ) && eAttacker is_bot() && getdvarint( "bots_t8_mode" ) && ( !isdefined( self.magic_bullet_shield ) || !self.magic_bullet_shield ) )
{ {
iDamage += int( self.maxhealth * randomFloatRange( 0.25, 1.25 ) ); iDamage += int( self.maxhealth * randomfloatrange( 0.25, 1.25 ) );
} }
self [[level.prevCallbackActorDamage]]( eInflictor, eAttacker, iDamage, iDFlags, sMeansOfDeath, sWeapon, vPoint, vDir, sHitLoc, iModelIndex, iTimeOffset ); self [[level.prevcallbackactordamage]]( eInflictor, eAttacker, iDamage, iDFlags, sMeansOfDeath, sWeapon, vPoint, vDir, sHitLoc, iModelIndex, iTimeOffset );
} }
/* /*
@ -190,11 +190,11 @@ onActorDamage( eInflictor, eAttacker, iDamage, iDFlags, sMeansOfDeath, sWeapon,
hook_callbacks() hook_callbacks()
{ {
wait 0.05; wait 0.05;
level.prevCallbackPlayerDamage = level.callbackPlayerDamage; level.prevcallbackplayerdamage = level.callbackplayerdamage;
level.callbackPlayerDamage = ::onPlayerDamage; level.callbackplayerdamage = ::onPlayerDamage;
level.prevCallbackActorDamage = level.callbackActorDamage; level.prevcallbackactordamage = level.callbackactordamage;
level.callbackActorDamage = ::onActorDamage; level.callbackactordamage = ::onActorDamage;
} }
/* /*
@ -231,9 +231,9 @@ onSpawnedAll()
{ {
self waittill( "spawned_player" ); self waittill( "spawned_player" );
self.lastSpawnTime = getTime(); self.lastspawntime = gettime();
if ( getDvarInt( "bots_main_debug" ) ) if ( getdvarint( "bots_main_debug" ) )
{ {
self.score = 100000; self.score = 100000;
} }
@ -257,7 +257,7 @@ connected()
{ {
self endon( "disconnect" ); self endon( "disconnect" );
if ( !isDefined( self.pers["bot_host"] ) ) if ( !isdefined( self.pers["bot_host"] ) )
self thread doHostCheck(); self thread doHostCheck();
level.players[level.players.size] = self; level.players[level.players.size] = self;
@ -268,13 +268,13 @@ connected()
if ( !self is_bot() ) if ( !self is_bot() )
return; return;
if ( !isDefined( self.pers["isBot"] ) ) if ( !isdefined( self.pers["isBot"] ) )
{ {
// fast restart... // fast restart...
self.pers["isBot"] = true; self.pers["isBot"] = true;
} }
if ( !isDefined( self.pers["isBotWarfare"] ) ) if ( !isdefined( self.pers["isBotWarfare"] ) )
{ {
self.pers["isBotWarfare"] = true; self.pers["isBotWarfare"] = true;
self thread added(); self thread added();
@ -302,34 +302,34 @@ watchBotDebugEvent()
{ {
self waittill( "bot_event", msg, str, b, c, d, e, f, g ); self waittill( "bot_event", msg, str, b, c, d, e, f, g );
if ( GetDvarInt( "bots_main_debug" ) >= 2 ) if ( getdvarint( "bots_main_debug" ) >= 2 )
{ {
big_str = "Bot Warfare debug: " + self.playername + ": " + msg; big_str = "Bot Warfare debug: " + self.playername + ": " + msg;
if ( isDefined( str ) && isString( str ) ) if ( isdefined( str ) && isstring( str ) )
big_str += ", " + str; big_str += ", " + str;
if ( isDefined( b ) && isString( b ) ) if ( isdefined( b ) && isstring( b ) )
big_str += ", " + b; big_str += ", " + b;
if ( isDefined( c ) && isString( c ) ) if ( isdefined( c ) && isstring( c ) )
big_str += ", " + c; big_str += ", " + c;
if ( isDefined( d ) && isString( d ) ) if ( isdefined( d ) && isstring( d ) )
big_str += ", " + d; big_str += ", " + d;
if ( isDefined( e ) && isString( e ) ) if ( isdefined( e ) && isstring( e ) )
big_str += ", " + e; big_str += ", " + e;
if ( isDefined( f ) && isString( f ) ) if ( isdefined( f ) && isstring( f ) )
big_str += ", " + f; big_str += ", " + f;
if ( isDefined( g ) && isString( g ) ) if ( isdefined( g ) && isstring( g ) )
big_str += ", " + g; big_str += ", " + g;
BotBuiltinPrintConsole( big_str ); BotBuiltinPrintConsole( big_str );
} }
else if ( msg == "debug" && GetDvarInt( "bots_main_debug" ) ) else if ( msg == "debug" && getdvarint( "bots_main_debug" ) )
{ {
BotBuiltinPrintConsole( "Bot Warfare debug: " + self.playername + ": " + str ); BotBuiltinPrintConsole( "Bot Warfare debug: " + self.playername + ": " + str );
} }
@ -367,9 +367,9 @@ add_bot()
*/ */
diffBots_loop() diffBots_loop()
{ {
var_hard = getDVarInt( "bots_skill_hard" ); var_hard = getdvarint( "bots_skill_hard" );
var_med = getDVarInt( "bots_skill_med" ); var_med = getdvarint( "bots_skill_med" );
var_skill = getDvarInt( "bots_skill" ); var_skill = getdvarint( "bots_skill" );
hard = 0; hard = 0;
med = 0; med = 0;
@ -382,7 +382,7 @@ diffBots_loop()
{ {
player = level.players[i]; player = level.players[i];
if ( !isDefined( player.pers["team"] ) ) if ( !isdefined( player.pers["team"] ) )
continue; continue;
if ( !player is_bot() ) if ( !player is_bot() )
@ -436,11 +436,11 @@ diffBots()
*/ */
addBots_loop() addBots_loop()
{ {
botsToAdd = GetDvarInt( "bots_manage_add" ); botsToAdd = getdvarint( "bots_manage_add" );
if ( botsToAdd > 0 ) if ( botsToAdd > 0 )
{ {
SetDvar( "bots_manage_add", 0 ); setdvar( "bots_manage_add", 0 );
if ( botsToAdd > 4 ) if ( botsToAdd > 4 )
botsToAdd = 4; botsToAdd = 4;
@ -452,12 +452,12 @@ addBots_loop()
} }
} }
fillMode = getDVarInt( "bots_manage_fill_mode" ); fillMode = getdvarint( "bots_manage_fill_mode" );
if ( fillMode == 2 || fillMode == 3 ) if ( fillMode == 2 || fillMode == 3 )
setDvar( "bots_manage_fill", getGoodMapAmount() ); setdvar( "bots_manage_fill", getGoodMapAmount() );
fillAmount = getDvarInt( "bots_manage_fill" ); fillAmount = getdvarint( "bots_manage_fill" );
players = 0; players = 0;
bots = 0; bots = 0;
@ -480,13 +480,13 @@ addBots_loop()
amount += players; amount += players;
if ( amount < fillAmount ) if ( amount < fillAmount )
setDvar( "bots_manage_add", 1 ); setdvar( "bots_manage_add", 1 );
else if ( amount > fillAmount && getDvarInt( "bots_manage_fill_kick" ) ) else if ( amount > fillAmount && getdvarint( "bots_manage_fill_kick" ) )
{ {
tempBot = getBotToKick(); tempBot = getBotToKick();
if ( isDefined( tempBot ) ) if ( isdefined( tempBot ) )
BotBuiltinCmdExec( "clientkick " + tempBot getEntityNumber() ); BotBuiltinCmdExec( "clientkick " + tempBot getentitynumber() );
} }
} }
@ -499,7 +499,7 @@ addBots()
bot_wait_for_host(); bot_wait_for_host();
while ( !isDefined( level.intermission ) || !level.intermission ) while ( !isdefined( level.intermission ) || !level.intermission )
{ {
wait 1.5; wait 1.5;

View File

@ -12,41 +12,41 @@
init() init()
{ {
if ( getDvar( "bots_main_debug" ) == "" ) if ( getdvar( "bots_main_debug" ) == "" )
setDvar( "bots_main_debug", 0 ); setdvar( "bots_main_debug", 0 );
if ( !getDVarint( "bots_main_debug" ) || !getDVarint( "bots_main_debug_wp_vis" ) ) if ( !getdvarint( "bots_main_debug" ) || !getdvarint( "bots_main_debug_wp_vis" ) )
return; return;
if ( !getDVarint( "developer" ) ) if ( !getdvarint( "developer" ) )
{ {
setdvar( "developer_script", 1 ); setdvar( "developer_script", 1 );
setdvar( "developer", 2 ); setdvar( "developer", 2 );
setdvar( "sv_mapRotation", "map " + getDvar( "mapname" ) ); setdvar( "sv_mapRotation", "map " + getdvar( "mapname" ) );
exitLevel( false ); exitlevel( false );
return; return;
} }
setDvar( "bots_main", false ); setdvar( "bots_main", false );
setdvar( "bots_main_menu", false ); setdvar( "bots_main_menu", false );
setdvar( "bots_manage_fill_mode", 0 ); setdvar( "bots_manage_fill_mode", 0 );
setdvar( "bots_manage_fill", 0 ); setdvar( "bots_manage_fill", 0 );
setdvar( "bots_manage_add", 0 ); setdvar( "bots_manage_add", 0 );
setdvar( "bots_manage_fill_kick", true ); setdvar( "bots_manage_fill_kick", true );
setDvar( "bots_manage_fill_spec", true ); setdvar( "bots_manage_fill_spec", true );
if ( getDvar( "bots_main_debug_distance" ) == "" ) if ( getdvar( "bots_main_debug_distance" ) == "" )
setDvar( "bots_main_debug_distance", 512.0 ); setdvar( "bots_main_debug_distance", 512.0 );
if ( getDvar( "bots_main_debug_cone" ) == "" ) if ( getdvar( "bots_main_debug_cone" ) == "" )
setDvar( "bots_main_debug_cone", 0.65 ); setdvar( "bots_main_debug_cone", 0.65 );
if ( getDvar( "bots_main_debug_minDist" ) == "" ) if ( getdvar( "bots_main_debug_minDist" ) == "" )
setDvar( "bots_main_debug_minDist", 32.0 ); setdvar( "bots_main_debug_minDist", 32.0 );
if ( getDvar( "bots_main_debug_drawThrough" ) == "" ) if ( getdvar( "bots_main_debug_drawThrough" ) == "" )
setDvar( "bots_main_debug_drawThrough", false ); setdvar( "bots_main_debug_drawThrough", false );
thread load_waypoints(); thread load_waypoints();
@ -149,7 +149,7 @@ toggle_link( firstwp, secondwp )
return; return;
} }
if ( isDefined( level.bot_ignore_links[key] ) && array_contains( level.bot_ignore_links[key], secnum ) ) if ( isdefined( level.bot_ignore_links[key] ) && array_contains( level.bot_ignore_links[key], secnum ) )
{ {
a = level.bot_ignore_links[key]; a = level.bot_ignore_links[key];
@ -169,7 +169,7 @@ toggle_link( firstwp, secondwp )
} }
else else
{ {
if ( !isDefined( level.bot_ignore_links[key] ) ) if ( !isdefined( level.bot_ignore_links[key] ) )
{ {
level.bot_ignore_links[key] = []; level.bot_ignore_links[key] = [];
} }
@ -196,24 +196,24 @@ debug()
wait 0.05; wait 0.05;
closest = -1; closest = -1;
myEye = self getTagOrigin( "j_head" ); myEye = self gettagorigin( "j_head" );
myAngles = self GetPlayerAngles(); myAngles = self getplayerangles();
for ( i = 0; i < level.waypointCount; i++ ) for ( i = 0; i < level.waypointcount; i++ )
{ {
if ( closest == -1 || closer( self.origin, level.waypoints[i].origin, level.waypoints[closest].origin ) ) if ( closest == -1 || closer( self.origin, level.waypoints[i].origin, level.waypoints[closest].origin ) )
closest = i; closest = i;
wpOrg = level.waypoints[i].origin + ( 0, 0, 25 ); wpOrg = level.waypoints[i].origin + ( 0, 0, 25 );
if ( distance( level.waypoints[i].origin, self.origin ) < getDvarFloat( "bots_main_debug_distance" ) && ( sightTracePassed( myEye, wpOrg, false, self ) || getDVarint( "bots_main_debug_drawThrough" ) ) && getConeDot( wpOrg, myEye, myAngles ) > getDvarFloat( "bots_main_debug_cone" ) ) if ( distance( level.waypoints[i].origin, self.origin ) < getdvarfloat( "bots_main_debug_distance" ) && ( sighttracepassed( myEye, wpOrg, false, self ) || getdvarint( "bots_main_debug_drawThrough" ) ) && getConeDot( wpOrg, myEye, myAngles ) > getdvarfloat( "bots_main_debug_cone" ) )
{ {
linked = level.waypoints[i] BotBuiltinGetLinkedNodes(); linked = level.waypoints[i] BotBuiltinGetLinkedNodes();
node_num_str = level.waypoints[i] BotBuiltinGetNodeNumber() + ""; node_num_str = level.waypoints[i] BotBuiltinGetNodeNumber() + "";
for ( h = linked.size - 1; h >= 0; h-- ) for ( h = linked.size - 1; h >= 0; h-- )
{ {
if ( isDefined( level.bot_ignore_links[node_num_str] ) ) if ( isdefined( level.bot_ignore_links[node_num_str] ) )
{ {
found = false; found = false;
this_node_num = linked[h] BotBuiltinGetNodeNumber(); this_node_num = linked[h] BotBuiltinGetNodeNumber();
@ -236,9 +236,9 @@ debug()
print3d( wpOrg, node_num_str, ( 1, 0, 0 ), 2 ); print3d( wpOrg, node_num_str, ( 1, 0, 0 ), 2 );
if ( isDefined( level.waypoints[i].animscript ) ) if ( isdefined( level.waypoints[i].animscript ) )
{ {
line( wpOrg, wpOrg + AnglesToForward( level.waypoints[i].angles ) * 64, ( 1, 1, 1 ) ); line( wpOrg, wpOrg + anglestoforward( level.waypoints[i].angles ) * 64, ( 1, 1, 1 ) );
print3d( wpOrg + ( 0, 0, 15 ), level.waypoints[i].animscript, ( 1, 0, 0 ), 2 ); print3d( wpOrg + ( 0, 0, 15 ), level.waypoints[i].animscript, ( 1, 0, 0 ), 2 );
} }
} }
@ -264,18 +264,18 @@ textScroll( string )
self endon( "disconnect" ); self endon( "disconnect" );
//thanks ActionScript //thanks ActionScript
back = createBar( ( 0, 0, 0 ), 1000, 30 ); back = createbar( ( 0, 0, 0 ), 1000, 30 );
back setPoint( "CENTER", undefined, 0, 220 ); back setpoint( "CENTER", undefined, 0, 220 );
self thread destroyOnDeath( back ); self thread destroyOnDeath( back );
text = createFontString( "default", 1.5 ); text = createfontstring( "default", 1.5 );
text setText( string ); text settext( string );
self thread destroyOnDeath( text ); self thread destroyOnDeath( text );
for ( ;; ) for ( ;; )
{ {
text setPoint( "CENTER", undefined, 1200, 220 ); text setpoint( "CENTER", undefined, 1200, 220 );
text setPoint( "CENTER", undefined, -1200, 220, 20 ); text setpoint( "CENTER", undefined, -1200, 220, 20 );
wait 20; wait 20;
} }
} }

File diff suppressed because it is too large Load Diff

View File

@ -1,498 +1,498 @@
#include common_scripts\utility; #include common_scripts\utility;
#include maps\_utility; #include maps\_utility;
#include maps\bots\_bot_utility; #include maps\bots\_bot_utility;
/* /*
Initialize bot script level functions Initialize bot script level functions
*/ */
bot_script_init() bot_script_init()
{ {
level thread maps\bots\objectives\_manager::init(); level thread maps\bots\objectives\_manager::init();
} }
/* /*
When the bot gets added into the game. When the bot gets added into the game.
*/ */
added() added()
{ {
self endon( "disconnect" ); self endon( "disconnect" );
self set_diff(); self set_diff();
} }
/* /*
When the bot connects to the game. When the bot connects to the game.
*/ */
connected() connected()
{ {
self endon( "disconnect" ); self endon( "disconnect" );
self thread difficulty(); self thread difficulty();
self thread onBotSpawned(); self thread onBotSpawned();
self thread onSpawned(); self thread onSpawned();
self thread maps\bots\objectives\_manager::connected(); self thread maps\bots\objectives\_manager::connected();
} }
/* /*
The callback for when the bot gets damaged. The callback for when the bot gets damaged.
*/ */
onDamage( eInflictor, eAttacker, iDamage, iDFlags, sMeansOfDeath, sWeapon, vPoint, vDir, sHitLoc, modelIndex, psOffsetTime ) onDamage( eInflictor, eAttacker, iDamage, iDFlags, sMeansOfDeath, sWeapon, vPoint, vDir, sHitLoc, modelIndex, psOffsetTime )
{ {
if ( !IsDefined( self ) || !isDefined( self.team ) ) if ( !isdefined( self ) || !isdefined( self.team ) )
return; return;
if ( !isAlive( self ) ) if ( !isalive( self ) )
return; return;
if ( sMeansOfDeath == "MOD_FALLING" || sMeansOfDeath == "MOD_SUICIDE" ) if ( sMeansOfDeath == "MOD_FALLING" || sMeansOfDeath == "MOD_SUICIDE" )
return; return;
if ( iDamage <= 0 ) if ( iDamage <= 0 )
return; return;
if ( !IsDefined( eAttacker ) || !isDefined( eAttacker.team ) ) if ( !isdefined( eAttacker ) || !isdefined( eAttacker.team ) )
return; return;
if ( eAttacker == self ) if ( eAttacker == self )
return; return;
if ( !isAlive( eAttacker ) ) if ( !isalive( eAttacker ) )
return; return;
self SetAttacker( eAttacker ); self SetAttacker( eAttacker );
} }
/* /*
Updates the bot's difficulty variables. Updates the bot's difficulty variables.
*/ */
difficulty() difficulty()
{ {
self endon( "disconnect" ); self endon( "disconnect" );
for ( ;; ) for ( ;; )
{ {
if ( GetDvarInt( "bots_skill" ) != 9 ) if ( getdvarint( "bots_skill" ) != 9 )
{ {
switch ( self.pers["bots"]["skill"]["base"] ) switch ( self.pers["bots"]["skill"]["base"] )
{ {
case 1: case 1:
self.pers["bots"]["skill"]["aim_time"] = 0.6; self.pers["bots"]["skill"]["aim_time"] = 0.6;
self.pers["bots"]["skill"]["init_react_time"] = 1500; self.pers["bots"]["skill"]["init_react_time"] = 1500;
self.pers["bots"]["skill"]["reaction_time"] = 1000; self.pers["bots"]["skill"]["reaction_time"] = 1000;
self.pers["bots"]["skill"]["no_trace_ads_time"] = 500; self.pers["bots"]["skill"]["no_trace_ads_time"] = 500;
self.pers["bots"]["skill"]["no_trace_look_time"] = 600; self.pers["bots"]["skill"]["no_trace_look_time"] = 600;
self.pers["bots"]["skill"]["remember_time"] = 750; self.pers["bots"]["skill"]["remember_time"] = 750;
self.pers["bots"]["skill"]["fov"] = 0.7; self.pers["bots"]["skill"]["fov"] = 0.7;
self.pers["bots"]["skill"]["dist_max"] = 2500; self.pers["bots"]["skill"]["dist_max"] = 2500;
self.pers["bots"]["skill"]["dist_start"] = 1000; self.pers["bots"]["skill"]["dist_start"] = 1000;
self.pers["bots"]["skill"]["spawn_time"] = 0.75; self.pers["bots"]["skill"]["spawn_time"] = 0.75;
self.pers["bots"]["skill"]["help_dist"] = 0; self.pers["bots"]["skill"]["help_dist"] = 0;
self.pers["bots"]["skill"]["semi_time"] = 0.9; self.pers["bots"]["skill"]["semi_time"] = 0.9;
self.pers["bots"]["skill"]["shoot_after_time"] = 1; self.pers["bots"]["skill"]["shoot_after_time"] = 1;
self.pers["bots"]["skill"]["aim_offset_time"] = 1.5; self.pers["bots"]["skill"]["aim_offset_time"] = 1.5;
self.pers["bots"]["skill"]["aim_offset_amount"] = 4; self.pers["bots"]["skill"]["aim_offset_amount"] = 4;
self.pers["bots"]["skill"]["bone_update_interval"] = 2; self.pers["bots"]["skill"]["bone_update_interval"] = 2;
self.pers["bots"]["skill"]["bones"] = "j_spineupper,j_ankle_le,j_ankle_ri"; self.pers["bots"]["skill"]["bones"] = "j_spineupper,j_ankle_le,j_ankle_ri";
self.pers["bots"]["skill"]["ads_fov_multi"] = 0.5; self.pers["bots"]["skill"]["ads_fov_multi"] = 0.5;
self.pers["bots"]["skill"]["ads_aimspeed_multi"] = 0.5; self.pers["bots"]["skill"]["ads_aimspeed_multi"] = 0.5;
self.pers["bots"]["behavior"]["strafe"] = 0; self.pers["bots"]["behavior"]["strafe"] = 0;
self.pers["bots"]["behavior"]["nade"] = 10; self.pers["bots"]["behavior"]["nade"] = 10;
self.pers["bots"]["behavior"]["sprint"] = 30; self.pers["bots"]["behavior"]["sprint"] = 30;
self.pers["bots"]["behavior"]["camp"] = 5; self.pers["bots"]["behavior"]["camp"] = 5;
self.pers["bots"]["behavior"]["follow"] = 5; self.pers["bots"]["behavior"]["follow"] = 5;
self.pers["bots"]["behavior"]["crouch"] = 20; self.pers["bots"]["behavior"]["crouch"] = 20;
self.pers["bots"]["behavior"]["switch"] = 2; self.pers["bots"]["behavior"]["switch"] = 2;
self.pers["bots"]["behavior"]["jump"] = 0; self.pers["bots"]["behavior"]["jump"] = 0;
break; break;
case 2: case 2:
self.pers["bots"]["skill"]["aim_time"] = 0.55; self.pers["bots"]["skill"]["aim_time"] = 0.55;
self.pers["bots"]["skill"]["init_react_time"] = 1000; self.pers["bots"]["skill"]["init_react_time"] = 1000;
self.pers["bots"]["skill"]["reaction_time"] = 800; self.pers["bots"]["skill"]["reaction_time"] = 800;
self.pers["bots"]["skill"]["no_trace_ads_time"] = 1000; self.pers["bots"]["skill"]["no_trace_ads_time"] = 1000;
self.pers["bots"]["skill"]["no_trace_look_time"] = 1250; self.pers["bots"]["skill"]["no_trace_look_time"] = 1250;
self.pers["bots"]["skill"]["remember_time"] = 1500; self.pers["bots"]["skill"]["remember_time"] = 1500;
self.pers["bots"]["skill"]["fov"] = 0.65; self.pers["bots"]["skill"]["fov"] = 0.65;
self.pers["bots"]["skill"]["dist_max"] = 3000; self.pers["bots"]["skill"]["dist_max"] = 3000;
self.pers["bots"]["skill"]["dist_start"] = 1500; self.pers["bots"]["skill"]["dist_start"] = 1500;
self.pers["bots"]["skill"]["spawn_time"] = 0.65; self.pers["bots"]["skill"]["spawn_time"] = 0.65;
self.pers["bots"]["skill"]["help_dist"] = 500; self.pers["bots"]["skill"]["help_dist"] = 500;
self.pers["bots"]["skill"]["semi_time"] = 0.75; self.pers["bots"]["skill"]["semi_time"] = 0.75;
self.pers["bots"]["skill"]["shoot_after_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_time"] = 1;
self.pers["bots"]["skill"]["aim_offset_amount"] = 3; self.pers["bots"]["skill"]["aim_offset_amount"] = 3;
self.pers["bots"]["skill"]["bone_update_interval"] = 1.5; self.pers["bots"]["skill"]["bone_update_interval"] = 1.5;
self.pers["bots"]["skill"]["bones"] = "j_spineupper,j_ankle_le,j_ankle_ri,j_head"; self.pers["bots"]["skill"]["bones"] = "j_spineupper,j_ankle_le,j_ankle_ri,j_head";
self.pers["bots"]["skill"]["ads_fov_multi"] = 0.5; self.pers["bots"]["skill"]["ads_fov_multi"] = 0.5;
self.pers["bots"]["skill"]["ads_aimspeed_multi"] = 0.5; self.pers["bots"]["skill"]["ads_aimspeed_multi"] = 0.5;
self.pers["bots"]["behavior"]["strafe"] = 10; self.pers["bots"]["behavior"]["strafe"] = 10;
self.pers["bots"]["behavior"]["nade"] = 15; self.pers["bots"]["behavior"]["nade"] = 15;
self.pers["bots"]["behavior"]["sprint"] = 45; self.pers["bots"]["behavior"]["sprint"] = 45;
self.pers["bots"]["behavior"]["camp"] = 5; self.pers["bots"]["behavior"]["camp"] = 5;
self.pers["bots"]["behavior"]["follow"] = 5; self.pers["bots"]["behavior"]["follow"] = 5;
self.pers["bots"]["behavior"]["crouch"] = 15; self.pers["bots"]["behavior"]["crouch"] = 15;
self.pers["bots"]["behavior"]["switch"] = 2; self.pers["bots"]["behavior"]["switch"] = 2;
self.pers["bots"]["behavior"]["jump"] = 10; self.pers["bots"]["behavior"]["jump"] = 10;
break; break;
case 3: case 3:
self.pers["bots"]["skill"]["aim_time"] = 0.4; self.pers["bots"]["skill"]["aim_time"] = 0.4;
self.pers["bots"]["skill"]["init_react_time"] = 750; self.pers["bots"]["skill"]["init_react_time"] = 750;
self.pers["bots"]["skill"]["reaction_time"] = 500; self.pers["bots"]["skill"]["reaction_time"] = 500;
self.pers["bots"]["skill"]["no_trace_ads_time"] = 1000; self.pers["bots"]["skill"]["no_trace_ads_time"] = 1000;
self.pers["bots"]["skill"]["no_trace_look_time"] = 1500; self.pers["bots"]["skill"]["no_trace_look_time"] = 1500;
self.pers["bots"]["skill"]["remember_time"] = 2000; self.pers["bots"]["skill"]["remember_time"] = 2000;
self.pers["bots"]["skill"]["fov"] = 0.6; self.pers["bots"]["skill"]["fov"] = 0.6;
self.pers["bots"]["skill"]["dist_max"] = 4000; self.pers["bots"]["skill"]["dist_max"] = 4000;
self.pers["bots"]["skill"]["dist_start"] = 2250; self.pers["bots"]["skill"]["dist_start"] = 2250;
self.pers["bots"]["skill"]["spawn_time"] = 0.5; self.pers["bots"]["skill"]["spawn_time"] = 0.5;
self.pers["bots"]["skill"]["help_dist"] = 750; self.pers["bots"]["skill"]["help_dist"] = 750;
self.pers["bots"]["skill"]["semi_time"] = 0.65; self.pers["bots"]["skill"]["semi_time"] = 0.65;
self.pers["bots"]["skill"]["shoot_after_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_time"] = 0.75;
self.pers["bots"]["skill"]["aim_offset_amount"] = 2.5; self.pers["bots"]["skill"]["aim_offset_amount"] = 2.5;
self.pers["bots"]["skill"]["bone_update_interval"] = 1; self.pers["bots"]["skill"]["bone_update_interval"] = 1;
self.pers["bots"]["skill"]["bones"] = "j_spineupper,j_spineupper,j_ankle_le,j_ankle_ri,j_head"; self.pers["bots"]["skill"]["bones"] = "j_spineupper,j_spineupper,j_ankle_le,j_ankle_ri,j_head";
self.pers["bots"]["skill"]["ads_fov_multi"] = 0.5; self.pers["bots"]["skill"]["ads_fov_multi"] = 0.5;
self.pers["bots"]["skill"]["ads_aimspeed_multi"] = 0.5; self.pers["bots"]["skill"]["ads_aimspeed_multi"] = 0.5;
self.pers["bots"]["behavior"]["strafe"] = 20; self.pers["bots"]["behavior"]["strafe"] = 20;
self.pers["bots"]["behavior"]["nade"] = 20; self.pers["bots"]["behavior"]["nade"] = 20;
self.pers["bots"]["behavior"]["sprint"] = 50; self.pers["bots"]["behavior"]["sprint"] = 50;
self.pers["bots"]["behavior"]["camp"] = 5; self.pers["bots"]["behavior"]["camp"] = 5;
self.pers["bots"]["behavior"]["follow"] = 5; self.pers["bots"]["behavior"]["follow"] = 5;
self.pers["bots"]["behavior"]["crouch"] = 10; self.pers["bots"]["behavior"]["crouch"] = 10;
self.pers["bots"]["behavior"]["switch"] = 2; self.pers["bots"]["behavior"]["switch"] = 2;
self.pers["bots"]["behavior"]["jump"] = 25; self.pers["bots"]["behavior"]["jump"] = 25;
break; break;
case 4: case 4:
self.pers["bots"]["skill"]["aim_time"] = 0.3; self.pers["bots"]["skill"]["aim_time"] = 0.3;
self.pers["bots"]["skill"]["init_react_time"] = 600; self.pers["bots"]["skill"]["init_react_time"] = 600;
self.pers["bots"]["skill"]["reaction_time"] = 400; self.pers["bots"]["skill"]["reaction_time"] = 400;
self.pers["bots"]["skill"]["no_trace_ads_time"] = 1000; self.pers["bots"]["skill"]["no_trace_ads_time"] = 1000;
self.pers["bots"]["skill"]["no_trace_look_time"] = 1500; self.pers["bots"]["skill"]["no_trace_look_time"] = 1500;
self.pers["bots"]["skill"]["remember_time"] = 3000; self.pers["bots"]["skill"]["remember_time"] = 3000;
self.pers["bots"]["skill"]["fov"] = 0.55; self.pers["bots"]["skill"]["fov"] = 0.55;
self.pers["bots"]["skill"]["dist_max"] = 5000; self.pers["bots"]["skill"]["dist_max"] = 5000;
self.pers["bots"]["skill"]["dist_start"] = 3350; self.pers["bots"]["skill"]["dist_start"] = 3350;
self.pers["bots"]["skill"]["spawn_time"] = 0.35; self.pers["bots"]["skill"]["spawn_time"] = 0.35;
self.pers["bots"]["skill"]["help_dist"] = 1000; self.pers["bots"]["skill"]["help_dist"] = 1000;
self.pers["bots"]["skill"]["semi_time"] = 0.5; self.pers["bots"]["skill"]["semi_time"] = 0.5;
self.pers["bots"]["skill"]["shoot_after_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_time"] = 0.5;
self.pers["bots"]["skill"]["aim_offset_amount"] = 2; self.pers["bots"]["skill"]["aim_offset_amount"] = 2;
self.pers["bots"]["skill"]["bone_update_interval"] = 0.75; self.pers["bots"]["skill"]["bone_update_interval"] = 0.75;
self.pers["bots"]["skill"]["bones"] = "j_spineupper,j_spineupper,j_ankle_le,j_ankle_ri,j_head,j_head"; self.pers["bots"]["skill"]["bones"] = "j_spineupper,j_spineupper,j_ankle_le,j_ankle_ri,j_head,j_head";
self.pers["bots"]["skill"]["ads_fov_multi"] = 0.5; self.pers["bots"]["skill"]["ads_fov_multi"] = 0.5;
self.pers["bots"]["skill"]["ads_aimspeed_multi"] = 0.5; self.pers["bots"]["skill"]["ads_aimspeed_multi"] = 0.5;
self.pers["bots"]["behavior"]["strafe"] = 30; self.pers["bots"]["behavior"]["strafe"] = 30;
self.pers["bots"]["behavior"]["nade"] = 25; self.pers["bots"]["behavior"]["nade"] = 25;
self.pers["bots"]["behavior"]["sprint"] = 55; self.pers["bots"]["behavior"]["sprint"] = 55;
self.pers["bots"]["behavior"]["camp"] = 5; self.pers["bots"]["behavior"]["camp"] = 5;
self.pers["bots"]["behavior"]["follow"] = 5; self.pers["bots"]["behavior"]["follow"] = 5;
self.pers["bots"]["behavior"]["crouch"] = 10; self.pers["bots"]["behavior"]["crouch"] = 10;
self.pers["bots"]["behavior"]["switch"] = 2; self.pers["bots"]["behavior"]["switch"] = 2;
self.pers["bots"]["behavior"]["jump"] = 35; self.pers["bots"]["behavior"]["jump"] = 35;
break; break;
case 5: case 5:
self.pers["bots"]["skill"]["aim_time"] = 0.25; self.pers["bots"]["skill"]["aim_time"] = 0.25;
self.pers["bots"]["skill"]["init_react_time"] = 500; self.pers["bots"]["skill"]["init_react_time"] = 500;
self.pers["bots"]["skill"]["reaction_time"] = 300; self.pers["bots"]["skill"]["reaction_time"] = 300;
self.pers["bots"]["skill"]["no_trace_ads_time"] = 1500; self.pers["bots"]["skill"]["no_trace_ads_time"] = 1500;
self.pers["bots"]["skill"]["no_trace_look_time"] = 2000; self.pers["bots"]["skill"]["no_trace_look_time"] = 2000;
self.pers["bots"]["skill"]["remember_time"] = 4000; self.pers["bots"]["skill"]["remember_time"] = 4000;
self.pers["bots"]["skill"]["fov"] = 0.5; self.pers["bots"]["skill"]["fov"] = 0.5;
self.pers["bots"]["skill"]["dist_max"] = 7500; self.pers["bots"]["skill"]["dist_max"] = 7500;
self.pers["bots"]["skill"]["dist_start"] = 5000; self.pers["bots"]["skill"]["dist_start"] = 5000;
self.pers["bots"]["skill"]["spawn_time"] = 0.25; self.pers["bots"]["skill"]["spawn_time"] = 0.25;
self.pers["bots"]["skill"]["help_dist"] = 1500; self.pers["bots"]["skill"]["help_dist"] = 1500;
self.pers["bots"]["skill"]["semi_time"] = 0.4; self.pers["bots"]["skill"]["semi_time"] = 0.4;
self.pers["bots"]["skill"]["shoot_after_time"] = 0.35; self.pers["bots"]["skill"]["shoot_after_time"] = 0.35;
self.pers["bots"]["skill"]["aim_offset_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"]["aim_offset_amount"] = 1.5;
self.pers["bots"]["skill"]["bone_update_interval"] = 0.5; self.pers["bots"]["skill"]["bone_update_interval"] = 0.5;
self.pers["bots"]["skill"]["bones"] = "j_spineupper,j_head"; self.pers["bots"]["skill"]["bones"] = "j_spineupper,j_head";
self.pers["bots"]["skill"]["ads_fov_multi"] = 0.5; self.pers["bots"]["skill"]["ads_fov_multi"] = 0.5;
self.pers["bots"]["skill"]["ads_aimspeed_multi"] = 0.5; self.pers["bots"]["skill"]["ads_aimspeed_multi"] = 0.5;
self.pers["bots"]["behavior"]["strafe"] = 40; self.pers["bots"]["behavior"]["strafe"] = 40;
self.pers["bots"]["behavior"]["nade"] = 35; self.pers["bots"]["behavior"]["nade"] = 35;
self.pers["bots"]["behavior"]["sprint"] = 60; self.pers["bots"]["behavior"]["sprint"] = 60;
self.pers["bots"]["behavior"]["camp"] = 5; self.pers["bots"]["behavior"]["camp"] = 5;
self.pers["bots"]["behavior"]["follow"] = 5; self.pers["bots"]["behavior"]["follow"] = 5;
self.pers["bots"]["behavior"]["crouch"] = 10; self.pers["bots"]["behavior"]["crouch"] = 10;
self.pers["bots"]["behavior"]["switch"] = 2; self.pers["bots"]["behavior"]["switch"] = 2;
self.pers["bots"]["behavior"]["jump"] = 50; self.pers["bots"]["behavior"]["jump"] = 50;
break; break;
case 6: case 6:
self.pers["bots"]["skill"]["aim_time"] = 0.2; self.pers["bots"]["skill"]["aim_time"] = 0.2;
self.pers["bots"]["skill"]["init_react_time"] = 250; self.pers["bots"]["skill"]["init_react_time"] = 250;
self.pers["bots"]["skill"]["reaction_time"] = 150; self.pers["bots"]["skill"]["reaction_time"] = 150;
self.pers["bots"]["skill"]["no_trace_ads_time"] = 2000; self.pers["bots"]["skill"]["no_trace_ads_time"] = 2000;
self.pers["bots"]["skill"]["no_trace_look_time"] = 3000; self.pers["bots"]["skill"]["no_trace_look_time"] = 3000;
self.pers["bots"]["skill"]["remember_time"] = 5000; self.pers["bots"]["skill"]["remember_time"] = 5000;
self.pers["bots"]["skill"]["fov"] = 0.45; self.pers["bots"]["skill"]["fov"] = 0.45;
self.pers["bots"]["skill"]["dist_max"] = 10000; self.pers["bots"]["skill"]["dist_max"] = 10000;
self.pers["bots"]["skill"]["dist_start"] = 7500; self.pers["bots"]["skill"]["dist_start"] = 7500;
self.pers["bots"]["skill"]["spawn_time"] = 0.2; self.pers["bots"]["skill"]["spawn_time"] = 0.2;
self.pers["bots"]["skill"]["help_dist"] = 2000; self.pers["bots"]["skill"]["help_dist"] = 2000;
self.pers["bots"]["skill"]["semi_time"] = 0.25; self.pers["bots"]["skill"]["semi_time"] = 0.25;
self.pers["bots"]["skill"]["shoot_after_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_time"] = 0.25;
self.pers["bots"]["skill"]["aim_offset_amount"] = 1; self.pers["bots"]["skill"]["aim_offset_amount"] = 1;
self.pers["bots"]["skill"]["bone_update_interval"] = 0.25; self.pers["bots"]["skill"]["bone_update_interval"] = 0.25;
self.pers["bots"]["skill"]["bones"] = "j_spineupper,j_head,j_head"; self.pers["bots"]["skill"]["bones"] = "j_spineupper,j_head,j_head";
self.pers["bots"]["skill"]["ads_fov_multi"] = 0.5; self.pers["bots"]["skill"]["ads_fov_multi"] = 0.5;
self.pers["bots"]["skill"]["ads_aimspeed_multi"] = 0.5; self.pers["bots"]["skill"]["ads_aimspeed_multi"] = 0.5;
self.pers["bots"]["behavior"]["strafe"] = 50; self.pers["bots"]["behavior"]["strafe"] = 50;
self.pers["bots"]["behavior"]["nade"] = 45; self.pers["bots"]["behavior"]["nade"] = 45;
self.pers["bots"]["behavior"]["sprint"] = 65; self.pers["bots"]["behavior"]["sprint"] = 65;
self.pers["bots"]["behavior"]["camp"] = 5; self.pers["bots"]["behavior"]["camp"] = 5;
self.pers["bots"]["behavior"]["follow"] = 5; self.pers["bots"]["behavior"]["follow"] = 5;
self.pers["bots"]["behavior"]["crouch"] = 10; self.pers["bots"]["behavior"]["crouch"] = 10;
self.pers["bots"]["behavior"]["switch"] = 2; self.pers["bots"]["behavior"]["switch"] = 2;
self.pers["bots"]["behavior"]["jump"] = 75; self.pers["bots"]["behavior"]["jump"] = 75;
break; break;
case 7: case 7:
self.pers["bots"]["skill"]["aim_time"] = 0.1; self.pers["bots"]["skill"]["aim_time"] = 0.1;
self.pers["bots"]["skill"]["init_react_time"] = 100; self.pers["bots"]["skill"]["init_react_time"] = 100;
self.pers["bots"]["skill"]["reaction_time"] = 50; self.pers["bots"]["skill"]["reaction_time"] = 50;
self.pers["bots"]["skill"]["no_trace_ads_time"] = 2500; self.pers["bots"]["skill"]["no_trace_ads_time"] = 2500;
self.pers["bots"]["skill"]["no_trace_look_time"] = 4000; self.pers["bots"]["skill"]["no_trace_look_time"] = 4000;
self.pers["bots"]["skill"]["remember_time"] = 7500; self.pers["bots"]["skill"]["remember_time"] = 7500;
self.pers["bots"]["skill"]["fov"] = 0.4; self.pers["bots"]["skill"]["fov"] = 0.4;
self.pers["bots"]["skill"]["dist_max"] = 15000; self.pers["bots"]["skill"]["dist_max"] = 15000;
self.pers["bots"]["skill"]["dist_start"] = 10000; self.pers["bots"]["skill"]["dist_start"] = 10000;
self.pers["bots"]["skill"]["spawn_time"] = 0.05; self.pers["bots"]["skill"]["spawn_time"] = 0.05;
self.pers["bots"]["skill"]["help_dist"] = 3000; self.pers["bots"]["skill"]["help_dist"] = 3000;
self.pers["bots"]["skill"]["semi_time"] = 0.1; self.pers["bots"]["skill"]["semi_time"] = 0.1;
self.pers["bots"]["skill"]["shoot_after_time"] = 0; self.pers["bots"]["skill"]["shoot_after_time"] = 0;
self.pers["bots"]["skill"]["aim_offset_time"] = 0; self.pers["bots"]["skill"]["aim_offset_time"] = 0;
self.pers["bots"]["skill"]["aim_offset_amount"] = 0; self.pers["bots"]["skill"]["aim_offset_amount"] = 0;
self.pers["bots"]["skill"]["bone_update_interval"] = 0.05; self.pers["bots"]["skill"]["bone_update_interval"] = 0.05;
self.pers["bots"]["skill"]["bones"] = "j_head"; self.pers["bots"]["skill"]["bones"] = "j_head";
self.pers["bots"]["skill"]["ads_fov_multi"] = 0.5; self.pers["bots"]["skill"]["ads_fov_multi"] = 0.5;
self.pers["bots"]["skill"]["ads_aimspeed_multi"] = 0.5; self.pers["bots"]["skill"]["ads_aimspeed_multi"] = 0.5;
self.pers["bots"]["behavior"]["strafe"] = 65; self.pers["bots"]["behavior"]["strafe"] = 65;
self.pers["bots"]["behavior"]["nade"] = 65; self.pers["bots"]["behavior"]["nade"] = 65;
self.pers["bots"]["behavior"]["sprint"] = 70; self.pers["bots"]["behavior"]["sprint"] = 70;
self.pers["bots"]["behavior"]["camp"] = 5; self.pers["bots"]["behavior"]["camp"] = 5;
self.pers["bots"]["behavior"]["follow"] = 5; self.pers["bots"]["behavior"]["follow"] = 5;
self.pers["bots"]["behavior"]["crouch"] = 5; self.pers["bots"]["behavior"]["crouch"] = 5;
self.pers["bots"]["behavior"]["switch"] = 2; self.pers["bots"]["behavior"]["switch"] = 2;
self.pers["bots"]["behavior"]["jump"] = 90; self.pers["bots"]["behavior"]["jump"] = 90;
break; break;
} }
} }
wait 5; wait 5;
} }
} }
/* /*
Sets the bot difficulty. Sets the bot difficulty.
*/ */
set_diff() set_diff()
{ {
rankVar = GetDvarInt( "bots_skill" ); rankVar = getdvarint( "bots_skill" );
switch ( rankVar ) switch ( rankVar )
{ {
case 0: case 0:
self.pers["bots"]["skill"]["base"] = Round( random_normal_distribution( 3.5, 1.75, 1, 7 ) ); self.pers["bots"]["skill"]["base"] = Round( random_normal_distribution( 3.5, 1.75, 1, 7 ) );
break; break;
case 8: case 8:
break; break;
case 9: case 9:
self.pers["bots"]["skill"]["base"] = randomIntRange( 1, 7 ); self.pers["bots"]["skill"]["base"] = randomintrange( 1, 7 );
self.pers["bots"]["skill"]["aim_time"] = 0.05 * randomIntRange( 1, 20 ); self.pers["bots"]["skill"]["aim_time"] = 0.05 * randomintrange( 1, 20 );
self.pers["bots"]["skill"]["init_react_time"] = 50 * randomInt( 100 ); self.pers["bots"]["skill"]["init_react_time"] = 50 * randomint( 100 );
self.pers["bots"]["skill"]["reaction_time"] = 50 * randomInt( 100 ); self.pers["bots"]["skill"]["reaction_time"] = 50 * randomint( 100 );
self.pers["bots"]["skill"]["no_trace_ads_time"] = 50 * randomInt( 100 ); self.pers["bots"]["skill"]["no_trace_ads_time"] = 50 * randomint( 100 );
self.pers["bots"]["skill"]["no_trace_look_time"] = 50 * randomInt( 100 ); self.pers["bots"]["skill"]["no_trace_look_time"] = 50 * randomint( 100 );
self.pers["bots"]["skill"]["remember_time"] = 50 * randomInt( 100 ); self.pers["bots"]["skill"]["remember_time"] = 50 * randomint( 100 );
self.pers["bots"]["skill"]["fov"] = randomFloatRange( -1, 1 ); self.pers["bots"]["skill"]["fov"] = randomfloatrange( -1, 1 );
randomNum = randomIntRange( 500, 25000 ); randomNum = randomintrange( 500, 25000 );
self.pers["bots"]["skill"]["dist_start"] = randomNum; self.pers["bots"]["skill"]["dist_start"] = randomNum;
self.pers["bots"]["skill"]["dist_max"] = randomNum * 2; self.pers["bots"]["skill"]["dist_max"] = randomNum * 2;
self.pers["bots"]["skill"]["spawn_time"] = 0.05 * randomInt( 20 ); self.pers["bots"]["skill"]["spawn_time"] = 0.05 * randomint( 20 );
self.pers["bots"]["skill"]["help_dist"] = randomIntRange( 500, 25000 ); self.pers["bots"]["skill"]["help_dist"] = randomintrange( 500, 25000 );
self.pers["bots"]["skill"]["semi_time"] = randomFloatRange( 0.05, 1 ); self.pers["bots"]["skill"]["semi_time"] = randomfloatrange( 0.05, 1 );
self.pers["bots"]["skill"]["shoot_after_time"] = randomFloatRange( 0.05, 1 ); self.pers["bots"]["skill"]["shoot_after_time"] = randomfloatrange( 0.05, 1 );
self.pers["bots"]["skill"]["aim_offset_time"] = randomFloatRange( 0.05, 1 ); self.pers["bots"]["skill"]["aim_offset_time"] = randomfloatrange( 0.05, 1 );
self.pers["bots"]["skill"]["aim_offset_amount"] = randomFloatRange( 0.05, 1 ); self.pers["bots"]["skill"]["aim_offset_amount"] = randomfloatrange( 0.05, 1 );
self.pers["bots"]["skill"]["bone_update_interval"] = randomFloatRange( 0.05, 1 ); self.pers["bots"]["skill"]["bone_update_interval"] = randomfloatrange( 0.05, 1 );
self.pers["bots"]["skill"]["bones"] = "j_head,j_spineupper,j_ankle_ri,j_ankle_le"; self.pers["bots"]["skill"]["bones"] = "j_head,j_spineupper,j_ankle_ri,j_ankle_le";
self.pers["bots"]["behavior"]["strafe"] = randomInt( 100 ); self.pers["bots"]["behavior"]["strafe"] = randomint( 100 );
self.pers["bots"]["behavior"]["nade"] = randomInt( 100 ); self.pers["bots"]["behavior"]["nade"] = randomint( 100 );
self.pers["bots"]["behavior"]["sprint"] = randomInt( 100 ); self.pers["bots"]["behavior"]["sprint"] = randomint( 100 );
self.pers["bots"]["behavior"]["camp"] = randomInt( 100 ); self.pers["bots"]["behavior"]["camp"] = randomint( 100 );
self.pers["bots"]["behavior"]["follow"] = randomInt( 100 ); self.pers["bots"]["behavior"]["follow"] = randomint( 100 );
self.pers["bots"]["behavior"]["crouch"] = randomInt( 100 ); self.pers["bots"]["behavior"]["crouch"] = randomint( 100 );
self.pers["bots"]["behavior"]["switch"] = randomInt( 100 ); self.pers["bots"]["behavior"]["switch"] = randomint( 100 );
self.pers["bots"]["behavior"]["jump"] = randomInt( 100 ); self.pers["bots"]["behavior"]["jump"] = randomint( 100 );
break; break;
default: default:
self.pers["bots"]["skill"]["base"] = rankVar; self.pers["bots"]["skill"]["base"] = rankVar;
break; break;
} }
} }
/* /*
When the bot spawned, after the difficulty wait. Start the logic for the bot. When the bot spawned, after the difficulty wait. Start the logic for the bot.
*/ */
onBotSpawned() onBotSpawned()
{ {
self endon( "disconnect" ); self endon( "disconnect" );
level endon( "intermission" ); level endon( "intermission" );
for ( ;; ) for ( ;; )
{ {
self waittill( "bot_spawned" ); self waittill( "bot_spawned" );
self thread start_bot_threads(); self thread start_bot_threads();
} }
} }
/* /*
When the bot spawns. When the bot spawns.
*/ */
onSpawned() onSpawned()
{ {
self endon( "disconnect" ); self endon( "disconnect" );
for ( ;; ) for ( ;; )
{ {
self waittill( "spawned_player" ); self waittill( "spawned_player" );
self thread maps\bots\objectives\_manager::spawned(); self thread maps\bots\objectives\_manager::spawned();
} }
} }
/* /*
Starts all the bot thinking Starts all the bot thinking
*/ */
start_bot_threads() start_bot_threads()
{ {
self endon( "disconnect" ); self endon( "disconnect" );
level endon( "intermission" ); level endon( "intermission" );
self endon( "zombified" ); self endon( "zombified" );
self thread doReloadCancel(); self thread doReloadCancel();
self thread maps\bots\objectives\_manager::start_bot_threads(); self thread maps\bots\objectives\_manager::start_bot_threads();
} }
/* /*
Changes to the weap Changes to the weap
*/ */
changeToWeapon( weap ) changeToWeapon( weap )
{ {
self endon( "disconnect" ); self endon( "disconnect" );
self endon( "zombified" ); self endon( "zombified" );
level endon( "game_ended" ); level endon( "game_ended" );
if ( !self HasWeapon( weap ) ) if ( !self hasweapon( weap ) )
return false; return false;
self switchToWeapon( weap ); self switchtoweapon( weap );
if ( self GetCurrentWeapon() == weap ) if ( self getcurrentweapon() == weap )
return true; return true;
self waittill_any_timeout( 5, "weapon_change" ); self waittill_any_timeout( 5, "weapon_change" );
return ( self GetCurrentWeapon() == weap ); return ( self getcurrentweapon() == weap );
} }
/* /*
Reload cancels Reload cancels
*/ */
doReloadCancel_loop() doReloadCancel_loop()
{ {
ret = self waittill_any_return( "reload", "weapon_change" ); ret = self waittill_any_return( "reload", "weapon_change" );
if ( self BotIsFrozen() ) if ( self BotIsFrozen() )
return; return;
if ( self useButtonPressed() ) if ( self usebuttonpressed() )
return; return;
if ( self InLastStand() ) if ( self inLastStand() )
return; return;
curWeap = self GetCurrentWeapon(); curWeap = self getcurrentweapon();
if ( !self isWeaponPrimary( curWeap ) ) if ( !self isWeaponPrimary( curWeap ) )
return; return;
if ( ret == "reload" ) if ( ret == "reload" )
{ {
// check single reloads // check single reloads
if ( self GetWeaponAmmoClip( curWeap ) < WeaponClipSize( curWeap ) ) if ( self getweaponammoclip( curWeap ) < weaponclipsize( curWeap ) )
return; return;
} }
// check difficulty // check difficulty
if ( self.pers["bots"]["skill"]["base"] <= 3 ) if ( self.pers["bots"]["skill"]["base"] <= 3 )
return; return;
// check if got another weapon // check if got another weapon
weaponslist = self GetWeaponsListPrimaries(); weaponslist = self getweaponslistprimaries();
weap = ""; weap = "";
while ( weaponslist.size ) while ( weaponslist.size )
{ {
weapon = weaponslist[randomInt( weaponslist.size )]; weapon = weaponslist[randomint( weaponslist.size )];
weaponslist = array_remove( weaponslist, weapon ); weaponslist = array_remove( weaponslist, weapon );
if ( !self isWeaponPrimary( weapon ) ) if ( !self isWeaponPrimary( weapon ) )
continue; continue;
if ( curWeap == weapon || weapon == "none" || weapon == "" ) if ( curWeap == weapon || weapon == "none" || weapon == "" )
continue; continue;
weap = weapon; weap = weapon;
break; break;
} }
if ( weap == "" ) if ( weap == "" )
return; return;
// do the cancel // do the cancel
wait 0.1; wait 0.1;
self thread ChangeToWeapon( weap ); self thread changeToWeapon( weap );
wait 0.25; wait 0.25;
self thread ChangeToWeapon( curWeap ); self thread changeToWeapon( curWeap );
wait 2; wait 2;
} }
/* /*
Reload cancels Reload cancels
*/ */
doReloadCancel() doReloadCancel()
{ {
self endon( "disconnect" ); self endon( "disconnect" );
self endon( "zombified" ); self endon( "zombified" );
for ( ;; ) for ( ;; )
{ {
self doReloadCancel_loop(); self doReloadCancel_loop();
} }
} }

View File

@ -8,7 +8,7 @@ wait_for_builtins()
{ {
for ( i = 0; i < 20; i++ ) for ( i = 0; i < 20; i++ )
{ {
if ( isDefined( level.bot_builtins ) ) if ( isdefined( level.bot_builtins ) )
return true; return true;
if ( i < 18 ) if ( i < 18 )
@ -25,7 +25,7 @@ wait_for_builtins()
*/ */
BotBuiltinPrintConsole( s ) BotBuiltinPrintConsole( s )
{ {
if ( isDefined( level.bot_builtins ) && isDefined( level.bot_builtins["printconsole"] ) ) if ( isdefined( level.bot_builtins ) && isdefined( level.bot_builtins["printconsole"] ) )
{ {
[[ level.bot_builtins["printconsole" ]]]( s ); [[ level.bot_builtins["printconsole" ]]]( s );
} }
@ -33,11 +33,11 @@ BotBuiltinPrintConsole( s )
/* /*
Bot action, does a bot action Bot action, does a bot action
<client> botAction(<action string (+ or - then action like frag or smoke)>) <client> botaction(<action string (+ or - then action like frag or smoke)>)
*/ */
BotBuiltinBotAction( action ) BotBuiltinBotAction( action )
{ {
if ( isDefined( level.bot_builtins ) && isDefined( level.bot_builtins["botaction"] ) ) if ( isdefined( level.bot_builtins ) && isdefined( level.bot_builtins["botaction"] ) )
{ {
self [[ level.bot_builtins["botaction" ]]]( action ); self [[ level.bot_builtins["botaction" ]]]( action );
} }
@ -45,11 +45,11 @@ BotBuiltinBotAction( action )
/* /*
Clears the bot from movement and actions Clears the bot from movement and actions
<client> botStop() <client> botstop()
*/ */
BotBuiltinBotStop() BotBuiltinBotStop()
{ {
if ( isDefined( level.bot_builtins ) && isDefined( level.bot_builtins["botstop"] ) ) if ( isdefined( level.bot_builtins ) && isdefined( level.bot_builtins["botstop"] ) )
{ {
self [[ level.bot_builtins["botstop" ]]](); self [[ level.bot_builtins["botstop" ]]]();
} }
@ -57,11 +57,11 @@ BotBuiltinBotStop()
/* /*
Sets the bot's movement Sets the bot's movement
<client> botMovement(<int left>, <int forward>) <client> botmovement(<int left>, <int forward>)
*/ */
BotBuiltinBotMovement( left, forward ) BotBuiltinBotMovement( left, forward )
{ {
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" ]]]( left, forward ); self [[ level.bot_builtins["botmovement" ]]]( left, forward );
} }
@ -72,7 +72,7 @@ BotBuiltinBotMovement( left, forward )
*/ */
BotBuiltinBotMeleeParams( yaw, dist ) BotBuiltinBotMeleeParams( yaw, dist )
{ {
if ( isDefined( level.bot_builtins ) && isDefined( level.bot_builtins["botmeleeparams"] ) ) if ( isdefined( level.bot_builtins ) && isdefined( level.bot_builtins["botmeleeparams"] ) )
{ {
self [[ level.bot_builtins["botmeleeparams" ]]]( yaw, dist ); self [[ level.bot_builtins["botmeleeparams" ]]]( yaw, dist );
} }
@ -84,7 +84,7 @@ BotBuiltinBotMeleeParams( yaw, dist )
*/ */
BotBuiltinIsBot() BotBuiltinIsBot()
{ {
if ( isDefined( level.bot_builtins ) && isDefined( level.bot_builtins["isbot"] ) ) if ( isdefined( level.bot_builtins ) && isdefined( level.bot_builtins["isbot"] ) )
{ {
return self [[ level.bot_builtins["isbot" ]]](); return self [[ level.bot_builtins["isbot" ]]]();
} }
@ -97,7 +97,7 @@ BotBuiltinIsBot()
*/ */
BotBuiltinGeneratePath( from, to, team, best_effort ) BotBuiltinGeneratePath( from, to, team, best_effort )
{ {
if ( isDefined( level.bot_builtins ) && isDefined( level.bot_builtins["generatepath"] ) ) if ( isdefined( level.bot_builtins ) && isdefined( level.bot_builtins["generatepath"] ) )
{ {
return [[ level.bot_builtins["generatepath" ]]]( from, to, team, best_effort ); return [[ level.bot_builtins["generatepath" ]]]( from, to, team, best_effort );
} }
@ -110,7 +110,7 @@ BotBuiltinGeneratePath( from, to, team, best_effort )
*/ */
BotBuiltinGetFunction( file, threadname ) BotBuiltinGetFunction( file, threadname )
{ {
if ( isDefined( level.bot_builtins ) && isDefined( level.bot_builtins["getfunction"] ) ) if ( isdefined( level.bot_builtins ) && isdefined( level.bot_builtins["getfunction"] ) )
{ {
return [[ level.bot_builtins["getfunction" ]]]( file, threadname ); return [[ level.bot_builtins["getfunction" ]]]( file, threadname );
} }
@ -123,7 +123,7 @@ BotBuiltinGetFunction( file, threadname )
*/ */
BotBuiltinGetMins() BotBuiltinGetMins()
{ {
if ( isDefined( level.bot_builtins ) && isDefined( level.bot_builtins["getmins"] ) ) if ( isdefined( level.bot_builtins ) && isdefined( level.bot_builtins["getmins"] ) )
{ {
return self [[ level.bot_builtins["getmins" ]]](); return self [[ level.bot_builtins["getmins" ]]]();
} }
@ -136,7 +136,7 @@ BotBuiltinGetMins()
*/ */
BotBuiltinGetMaxs() BotBuiltinGetMaxs()
{ {
if ( isDefined( level.bot_builtins ) && isDefined( level.bot_builtins["getmaxs"] ) ) if ( isdefined( level.bot_builtins ) && isdefined( level.bot_builtins["getmaxs"] ) )
{ {
return self [[ level.bot_builtins["getmaxs" ]]](); return self [[ level.bot_builtins["getmaxs" ]]]();
} }
@ -149,7 +149,7 @@ BotBuiltinGetMaxs()
*/ */
BotBuiltinGetGuid() BotBuiltinGetGuid()
{ {
if ( isDefined( level.bot_builtins ) && isDefined( level.bot_builtins["getguid"] ) ) if ( isdefined( level.bot_builtins ) && isdefined( level.bot_builtins["getguid"] ) )
{ {
return self [[ level.bot_builtins["getguid" ]]](); return self [[ level.bot_builtins["getguid" ]]]();
} }
@ -161,7 +161,7 @@ BotBuiltinGetGuid()
*/ */
BotBuiltinSetAllowedTraversals( bot_allowed_negotiation_links ) BotBuiltinSetAllowedTraversals( bot_allowed_negotiation_links )
{ {
if ( isDefined( level.bot_builtins ) && isDefined( level.bot_builtins["setallowedtraversals"] ) ) if ( isdefined( level.bot_builtins ) && isdefined( level.bot_builtins["setallowedtraversals"] ) )
{ {
[[ level.bot_builtins["setallowedtraversals" ]]]( bot_allowed_negotiation_links ); [[ level.bot_builtins["setallowedtraversals" ]]]( bot_allowed_negotiation_links );
} }
@ -171,7 +171,7 @@ BotBuiltinSetAllowedTraversals( bot_allowed_negotiation_links )
*/ */
BotBuiltinSetIgnoredLinks( bot_ignore_links ) BotBuiltinSetIgnoredLinks( bot_ignore_links )
{ {
if ( isDefined( level.bot_builtins ) && isDefined( level.bot_builtins["setignoredlinks"] ) ) if ( isdefined( level.bot_builtins ) && isdefined( level.bot_builtins["setignoredlinks"] ) )
{ {
[[ level.bot_builtins["setignoredlinks" ]]]( bot_ignore_links ); [[ level.bot_builtins["setignoredlinks" ]]]( bot_ignore_links );
} }
@ -181,7 +181,7 @@ BotBuiltinSetIgnoredLinks( bot_ignore_links )
*/ */
BotBuiltinGetNodeNumber() BotBuiltinGetNodeNumber()
{ {
if ( isDefined( level.bot_builtins ) && isDefined( level.bot_builtins["getnodenumber"] ) ) if ( isdefined( level.bot_builtins ) && isdefined( level.bot_builtins["getnodenumber"] ) )
{ {
return self [[ level.bot_builtins["getnodenumber" ]]](); return self [[ level.bot_builtins["getnodenumber" ]]]();
} }
@ -193,7 +193,7 @@ BotBuiltinGetNodeNumber()
*/ */
BotBuiltinGetLinkedNodes() BotBuiltinGetLinkedNodes()
{ {
if ( isDefined( level.bot_builtins ) && isDefined( level.bot_builtins["getlinkednodes"] ) ) if ( isdefined( level.bot_builtins ) && isdefined( level.bot_builtins["getlinkednodes"] ) )
{ {
return self [[ level.bot_builtins["getlinkednodes" ]]](); return self [[ level.bot_builtins["getlinkednodes" ]]]();
} }
@ -205,7 +205,7 @@ BotBuiltinGetLinkedNodes()
*/ */
BotBuiltinAddTestClient() BotBuiltinAddTestClient()
{ {
if ( isDefined( level.bot_builtins ) && isDefined( level.bot_builtins["addtestclient"] ) ) if ( isdefined( level.bot_builtins ) && isdefined( level.bot_builtins["addtestclient"] ) )
{ {
return [[ level.bot_builtins["addtestclient" ]]](); return [[ level.bot_builtins["addtestclient" ]]]();
} }
@ -217,7 +217,7 @@ BotBuiltinAddTestClient()
*/ */
BotBuiltinCmdExec( what ) BotBuiltinCmdExec( what )
{ {
if ( isDefined( level.bot_builtins ) && isDefined( level.bot_builtins["cmdexec"] ) ) if ( isdefined( level.bot_builtins ) && isdefined( level.bot_builtins["cmdexec"] ) )
{ {
[[ level.bot_builtins["cmdexec" ]]]( what ); [[ level.bot_builtins["cmdexec" ]]]( what );
} }
@ -227,7 +227,7 @@ BotBuiltinCmdExec( what )
*/ */
BotBuiltinNotifyOnPlayerCommand( cmd, notif ) BotBuiltinNotifyOnPlayerCommand( cmd, notif )
{ {
if ( isDefined( level.bot_builtins ) && isDefined( level.bot_builtins["notifyonplayercommand"] ) ) if ( isdefined( level.bot_builtins ) && isdefined( level.bot_builtins["notifyonplayercommand"] ) )
{ {
self [[ level.bot_builtins["notifyonplayercommand" ]]]( cmd, notif ); self [[ level.bot_builtins["notifyonplayercommand" ]]]( cmd, notif );
} }
@ -238,7 +238,7 @@ BotBuiltinNotifyOnPlayerCommand( cmd, notif )
*/ */
BotBuiltinIsHost() BotBuiltinIsHost()
{ {
if ( isDefined( level.bot_builtins ) && isDefined( level.bot_builtins["ishost"] ) ) if ( isdefined( level.bot_builtins ) && isdefined( level.bot_builtins["ishost"] ) )
{ {
return self [[ level.bot_builtins["ishost" ]]](); return self [[ level.bot_builtins["ishost" ]]]();
} }
@ -251,7 +251,7 @@ BotBuiltinIsHost()
*/ */
is_host() is_host()
{ {
return ( isDefined( self.pers["bot_host"] ) && self.pers["bot_host"] ); return ( isdefined( self.pers["bot_host"] ) && self.pers["bot_host"] );
} }
/* /*
@ -266,20 +266,20 @@ doHostCheck()
result = false; result = false;
if ( getDvar( "bots_main_firstIsHost" ) != "0" ) if ( getdvar( "bots_main_firstIsHost" ) != "0" )
{ {
BotBuiltinPrintConsole( "WARNING: bots_main_firstIsHost is enabled" ); BotBuiltinPrintConsole( "WARNING: bots_main_firstIsHost is enabled" );
if ( getDvar( "bots_main_firstIsHost" ) == "1" ) if ( getdvar( "bots_main_firstIsHost" ) == "1" )
{ {
setDvar( "bots_main_firstIsHost", self BotBuiltinGetGuid() ); setdvar( "bots_main_firstIsHost", self BotBuiltinGetGuid() );
} }
if ( getDvar( "bots_main_firstIsHost" ) == self BotBuiltinGetGuid() + "" ) if ( getdvar( "bots_main_firstIsHost" ) == self BotBuiltinGetGuid() + "" )
result = true; result = true;
} }
DvarGUID = getDvar( "bots_main_GUIDs" ); DvarGUID = getdvar( "bots_main_GUIDs" );
if ( DvarGUID != "" ) if ( DvarGUID != "" )
{ {
@ -388,7 +388,7 @@ BotGetRandom()
*/ */
BotGetTargetRandom() BotGetTargetRandom()
{ {
if ( !isDefined( self.bot.target ) ) if ( !isdefined( self.bot.target ) )
return undefined; return undefined;
return self.bot.target.rand; return self.bot.target.rand;
@ -486,7 +486,7 @@ BotHasObjective()
*/ */
HasScriptGoal() HasScriptGoal()
{ {
return ( isDefined( self GetScriptGoal() ) ); return ( isdefined( self GetScriptGoal() ) );
} }
/* /*
@ -502,7 +502,7 @@ GetScriptGoal()
*/ */
SetScriptGoal( goal, dist ) SetScriptGoal( goal, dist )
{ {
if ( !isDefined( dist ) ) if ( !isdefined( dist ) )
dist = 16; dist = 16;
self.bot.script_goal = goal; self.bot.script_goal = goal;
@ -575,7 +575,7 @@ GetScriptAimPos()
*/ */
HasScriptAimPos() HasScriptAimPos()
{ {
return isDefined( self GetScriptAimPos() ); return isdefined( self GetScriptAimPos() );
} }
/* /*
@ -619,7 +619,7 @@ GetThreat()
*/ */
HasScriptEnemy() HasScriptEnemy()
{ {
return ( isDefined( self.bot.script_target ) ); return ( isdefined( self.bot.script_target ) );
} }
/* /*
@ -627,7 +627,7 @@ HasScriptEnemy()
*/ */
HasThreat() HasThreat()
{ {
return ( isDefined( self GetThreat() ) ); return ( isdefined( self GetThreat() ) );
} }
/* /*
@ -641,10 +641,10 @@ getValidTube()
{ {
weap = weaps[i]; weap = weaps[i];
if ( !self getAmmoCount( weap ) ) if ( !self getammocount( weap ) )
continue; continue;
if ( isSubStr( weap, "gl_" ) && !isSubStr( weap, "_gl_" ) ) if ( issubstr( weap, "gl_" ) && !issubstr( weap, "_gl_" ) )
return weap; return weap;
} }
@ -663,10 +663,10 @@ getValidGrenade()
for ( i = 0; i < grenadeTypes.size; i++ ) for ( i = 0; i < grenadeTypes.size; i++ )
{ {
if ( !self hasWeapon( grenadeTypes[i] ) ) if ( !self hasweapon( grenadeTypes[i] ) )
continue; continue;
if ( !self getAmmoCount( grenadeTypes[i] ) ) if ( !self getammocount( grenadeTypes[i] ) )
continue; continue;
possibles[possibles.size] = grenadeTypes[i]; possibles[possibles.size] = grenadeTypes[i];
@ -683,7 +683,7 @@ PickRandom( arr )
if ( !arr.size ) if ( !arr.size )
return undefined; return undefined;
return arr[randomInt( arr.size )]; return arr[randomint( arr.size )];
} }
/* /*
@ -709,7 +709,7 @@ WeaponIsFullAuto( weap )
{ {
weaptoks = strtok( weap, "_" ); weaptoks = strtok( weap, "_" );
return isDefined( weaptoks[0] ) && isString( weaptoks[0] ) && isdefined( level.bots_fullautoguns[weaptoks[0]] ); return isdefined( weaptoks[0] ) && isstring( weaptoks[0] ) && isdefined( level.bots_fullautoguns[weaptoks[0]] );
} }
/* /*
@ -727,7 +727,7 @@ waittill_either_return_( str1, str2 )
*/ */
waittill_either_return( str1, str2 ) waittill_either_return( str1, str2 )
{ {
if ( !isDefined( self waittill_either_return_( str1, str2 ) ) ) if ( !isdefined( self waittill_either_return_( str1, str2 ) ) )
return str1; return str1;
return str2; return str2;
@ -805,34 +805,34 @@ bot_wait_for_host()
{ {
host = undefined; host = undefined;
while ( !isDefined( level ) || !isDefined( level.players ) ) while ( !isdefined( level ) || !isdefined( level.players ) )
wait 0.05; wait 0.05;
for ( i = getDvarFloat( "bots_main_waitForHostTime" ); i > 0; i -= 0.05 ) for ( i = getdvarfloat( "bots_main_waitForHostTime" ); i > 0; i -= 0.05 )
{ {
host = GetHostPlayer(); host = GetHostPlayer();
if ( isDefined( host ) ) if ( isdefined( host ) )
break; break;
wait 0.05; wait 0.05;
} }
if ( !isDefined( host ) ) if ( !isdefined( host ) )
return; return;
for ( i = getDvarFloat( "bots_main_waitForHostTime" ); i > 0; i -= 0.05 ) for ( i = getdvarfloat( "bots_main_waitForHostTime" ); i > 0; i -= 0.05 )
{ {
if ( IsDefined( host.pers[ "team" ] ) ) if ( isdefined( host.pers[ "team" ] ) )
break; break;
wait 0.05; wait 0.05;
} }
if ( !IsDefined( host.pers[ "team" ] ) ) if ( !isdefined( host.pers[ "team" ] ) )
return; return;
for ( i = getDvarFloat( "bots_main_waitForHostTime" ); i > 0; i -= 0.05 ) for ( i = getdvarfloat( "bots_main_waitForHostTime" ); i > 0; i -= 0.05 )
{ {
if ( host.pers[ "team" ] == "allies" || host.pers[ "team" ] == "axis" ) if ( host.pers[ "team" ] == "allies" || host.pers[ "team" ] == "axis" )
break; break;
@ -846,26 +846,26 @@ bot_wait_for_host()
*/ */
getConeDot( to, from, dir ) getConeDot( to, from, dir )
{ {
dirToTarget = VectorNormalize( to - from ); dirToTarget = vectornormalize( to - from );
forward = AnglesToForward( dir ); forward = anglestoforward( dir );
return vectordot( dirToTarget, forward ); return vectordot( dirToTarget, forward );
} }
/* /*
Returns the distance squared in a 2d space Returns the distance squared in a 2d space
*/ */
DistanceSquared2D( to, from ) distancesquared2D( to, from )
{ {
to = ( to[0], to[1], 0 ); to = ( to[0], to[1], 0 );
from = ( from[0], from[1], 0 ); from = ( from[0], from[1], 0 );
return DistanceSquared( to, from ); return distancesquared( to, from );
} }
/* /*
Distance from box distance from box
*/ */
RectDistanceSquared( origin ) Rectdistancesquared( origin )
{ {
dx = 0; dx = 0;
dy = 0; dy = 0;
@ -936,7 +936,7 @@ float( num )
{ {
setdvar( "temp_dvar_bot_util", num ); setdvar( "temp_dvar_bot_util", num );
return GetDvarFloat( "temp_dvar_bot_util" ); return getdvarfloat( "temp_dvar_bot_util" );
} }
/* /*
@ -944,7 +944,7 @@ float( num )
*/ */
get_nodes_in_playable_area() get_nodes_in_playable_area()
{ {
total_nodes = getAllNodes(); total_nodes = getallnodes();
filtered_nodes = []; filtered_nodes = [];
for ( i = 0; i < total_nodes.size; i++ ) for ( i = 0; i < total_nodes.size; i++ )
@ -974,7 +974,7 @@ is_point_in_playable_area( point )
in_playable_area = false; in_playable_area = false;
if ( !isDefined( playable_area ) || playable_area.size < 1 ) if ( !isdefined( playable_area ) || playable_area.size < 1 )
{ {
in_playable_area = true; in_playable_area = true;
} }
@ -985,7 +985,7 @@ is_point_in_playable_area( point )
{ {
for ( p = 0; p < playable_area.size; p++ ) for ( p = 0; p < playable_area.size; p++ )
{ {
if ( temp_ent isTouching( playable_area[ p ] ) ) if ( temp_ent istouching( playable_area[ p ] ) )
{ {
in_playable_area = true; in_playable_area = true;
break; break;
@ -1145,11 +1145,11 @@ load_waypoints()
BotBuiltinSetIgnoredLinks( bot_ignore_links ); BotBuiltinSetIgnoredLinks( bot_ignore_links );
level.bot_ignore_links = bot_ignore_links; level.bot_ignore_links = bot_ignore_links;
level.waypoints = GetAllNodes(); level.waypoints = getallnodes();
level.waypointCount = level.waypoints.size; level.waypointcount = level.waypoints.size;
level.waypointsInPlayableArea = []; level.waypointsinplayablearea = [];
level.waypointsInPlayableArea = get_nodes_in_playable_area(); level.waypointsinplayablearea = get_nodes_in_playable_area();
} }
/* /*
@ -1175,7 +1175,7 @@ getBotToKick()
{ {
bots = getBotArray(); bots = getBotArray();
if ( !isDefined( bots ) || !isDefined( bots.size ) || bots.size <= 0 || !isDefined( bots[0] ) ) if ( !isdefined( bots ) || !isdefined( bots.size ) || bots.size <= 0 || !isdefined( bots[0] ) )
return undefined; return undefined;
tokick = undefined; tokick = undefined;
@ -1185,13 +1185,13 @@ getBotToKick()
{ {
bot = bots[i]; bot = bots[i];
if ( !isDefined( bot ) ) if ( !isdefined( bot ) )
continue; continue;
if ( !isDefined( bot.pers ) || !isDefined( bot.pers["bots"] ) || !isDefined( bot.pers["bots"]["skill"] ) || !isDefined( bot.pers["bots"]["skill"]["base"] ) ) if ( !isdefined( bot.pers ) || !isdefined( bot.pers["bots"] ) || !isdefined( bot.pers["bots"]["skill"] ) || !isdefined( bot.pers["bots"]["skill"]["base"] ) )
continue; continue;
if ( isDefined( tokick ) && bot.pers["bots"]["skill"]["base"] > tokick.pers["bots"]["skill"]["base"] ) if ( isdefined( tokick ) && bot.pers["bots"]["skill"]["base"] > tokick.pers["bots"]["skill"]["base"] )
continue; continue;
tokick = bot; tokick = bot;
@ -1239,7 +1239,7 @@ ReverseHeap( item, item2 )
HeapPriority( item, item2 ) HeapPriority( item, item2 )
{ {
return item.fPriority > item2.fPriority; return item.fpriority > item2.fpriority;
} }
/* /*
@ -1255,7 +1255,7 @@ HeapTraceFraction( item, item2 )
*/ */
NewHeap( compare ) NewHeap( compare )
{ {
heap_node = spawnStruct(); heap_node = spawnstruct();
heap_node.data = []; heap_node.data = [];
heap_node.compare = compare; heap_node.compare = compare;
@ -1346,15 +1346,6 @@ HeapRemove()
*/ */
Log( x ) Log( x )
{ {
/* if (!isDefined(level.log_cache))
level.log_cache = [];
key = x + "";
if (isDefined(level.log_cache[key]))
return level.log_cache[key];*/
//thanks Bob__ at stackoverflow
old_sum = 0.0; old_sum = 0.0;
xmlxpl = ( x - 1 ) / ( x + 1 ); xmlxpl = ( x - 1 ) / ( x + 1 );
xmlxpl_2 = xmlxpl * xmlxpl; xmlxpl_2 = xmlxpl * xmlxpl;
@ -1371,8 +1362,6 @@ Log( x )
} }
answer = 2.0 * sum; answer = 2.0 * sum;
//level.log_cache[key] = answer;
return answer; return answer;
} }
@ -1414,7 +1403,7 @@ array_std_deviation( array, mean )
total = total + tmp[i]; total = total + tmp[i];
} }
return Sqrt( total / array.size ); return sqrt( total / array.size );
} }
/* /*
@ -1430,21 +1419,21 @@ random_normal_distribution( mean, std_deviation, lower_bound, upper_bound )
while ( w >= 1 ) while ( w >= 1 )
{ {
x1 = 2 * RandomFloatRange( 0, 1 ) - 1; x1 = 2 * randomfloatrange( 0, 1 ) - 1;
x2 = 2 * RandomFloatRange( 0, 1 ) - 1; x2 = 2 * randomfloatrange( 0, 1 ) - 1;
w = x1 * x1 + x2 * x2; w = x1 * x1 + x2 * x2;
} }
w = Sqrt( ( -2.0 * Log( w ) ) / w ); w = sqrt( ( -2.0 * Log( w ) ) / w );
y1 = x1 * w; y1 = x1 * w;
number = mean + y1 * std_deviation; number = mean + y1 * std_deviation;
if ( IsDefined( lower_bound ) && number < lower_bound ) if ( isdefined( lower_bound ) && number < lower_bound )
{ {
number = lower_bound; number = lower_bound;
} }
if ( IsDefined( upper_bound ) && number > upper_bound ) if ( isdefined( upper_bound ) && number > upper_bound )
{ {
number = upper_bound; number = upper_bound;
} }
@ -1477,12 +1466,12 @@ isReviving( revivee )
*/ */
getRandomGoal() getRandomGoal()
{ {
if ( !level.waypointsInPlayableArea.size ) if ( !level.waypointsinplayablearea.size )
{ {
return self.origin; return self.origin;
} }
return PickRandom( level.waypointsInPlayableArea ).origin; return PickRandom( level.waypointsinplayablearea ).origin;
} }
/* /*
@ -1490,7 +1479,7 @@ getRandomGoal()
*/ */
targetIsDog() targetIsDog()
{ {
return isDefined( self.targetname ) && self.targetname == "zombie_dog"; return isdefined( self.targetname ) && self.targetname == "zombie_dog";
} }
/* /*
@ -1498,7 +1487,7 @@ targetIsDog()
*/ */
targetIsGibbed() targetIsGibbed()
{ {
return isDefined( self.gibbed ) && self.gibbed; return isdefined( self.gibbed ) && self.gibbed;
} }
/* /*
@ -1506,7 +1495,7 @@ targetIsGibbed()
*/ */
isWeaponPrimary( weap ) isWeaponPrimary( weap )
{ {
weaps = self GetWeaponsListPrimaries(); weaps = self getweaponslistprimaries();
for ( i = 0; i < weaps.size; i++ ) for ( i = 0; i < weaps.size; i++ )
{ {
@ -1523,7 +1512,7 @@ isWeaponPrimary( weap )
GetPathIsInaccessible( from, to, team, best_effort ) GetPathIsInaccessible( from, to, team, best_effort )
{ {
path = BotBuiltinGeneratePath( from, to, team, best_effort ); path = BotBuiltinGeneratePath( from, to, team, best_effort );
return ( !isDefined( path ) || ( path.size <= 0 ) ); return ( !isdefined( path ) || ( path.size <= 0 ) );
} }
/* /*
@ -1533,7 +1522,7 @@ get_path_dist( start, end, team )
{ {
path = BotBuiltinGeneratePath( start, end, team, 192.0 ); path = BotBuiltinGeneratePath( start, end, team, 192.0 );
if ( !isDefined( path ) || path.size <= 0 ) if ( !isdefined( path ) || path.size <= 0 )
{ {
return 999999999; return 999999999;
} }
@ -1585,27 +1574,27 @@ ClampLerp( dist, min_dist, max_dist, max_bonus, min_bonus )
*/ */
get_angle_offset_node( forward_size, angle_offset, offset ) get_angle_offset_node( forward_size, angle_offset, offset )
{ {
if ( !isDefined( forward_size ) ) if ( !isdefined( forward_size ) )
{ {
forward_size = 40; forward_size = 40;
} }
if ( !isDefined( angle_offset ) ) if ( !isdefined( angle_offset ) )
{ {
angle_offset = ( 0, 0, 0 ); angle_offset = ( 0, 0, 0 );
} }
if ( !isDefined( offset ) ) if ( !isdefined( offset ) )
{ {
offset = ( 0, 0, 0 ); offset = ( 0, 0, 0 );
} }
angles = ( 0, self.angles[ 1 ], 0 ); angles = ( 0, self.angles[ 1 ], 0 );
angles += angle_offset; angles += angle_offset;
node = self.origin + ( AnglesToForward( angles ) * forward_size ) + offset; node = self.origin + ( anglestoforward( angles ) * forward_size ) + offset;
node = clamp_to_ground( node ); node = clamp_to_ground( node );
if ( getDvarInt( "bots_main_debug" ) ) if ( getdvarint( "bots_main_debug" ) )
{ {
self thread debug_offset_line( node ); self thread debug_offset_line( node );
} }
@ -1622,7 +1611,7 @@ debug_offset_line( node )
self notify( "debug_offset_line" ); self notify( "debug_offset_line" );
self endon( "debug_offset_line" ); self endon( "debug_offset_line" );
while ( isDefined( self ) ) while ( isdefined( self ) )
{ {
line( self.origin, node ); line( self.origin, node );
wait 0.05; wait 0.05;
@ -1634,7 +1623,7 @@ debug_offset_line( node )
*/ */
PointInsideUseTrigger( point ) PointInsideUseTrigger( point )
{ {
if ( getDvarInt( "bots_main_debug" ) ) if ( getdvarint( "bots_main_debug" ) )
{ {
self thread debug_bounding_box_for_ent(); self thread debug_bounding_box_for_ent();
} }
@ -1650,12 +1639,12 @@ PointInsideUseTrigger( point )
box.z0 = self.origin[2] + mins[2]; box.z0 = self.origin[2] + mins[2];
box.z1 = self.origin[2] + maxs[2]; box.z1 = self.origin[2] + maxs[2];
if ( box RectDistanceSquared( self.origin ) > 72 * 72 ) if ( box Rectdistancesquared( self.origin ) > 72 * 72 )
{ {
return false; return false;
} }
if ( !sightTracePassed( point, self.origin, false, undefined ) ) if ( !sighttracepassed( point, self.origin, false, undefined ) )
{ {
return false; return false;
} }
@ -1672,10 +1661,10 @@ debug_bounding_box_for_ent( color )
self notify( "debug_bounding_box_for_ent" ); self notify( "debug_bounding_box_for_ent" );
self endon( "debug_bounding_box_for_ent" ); self endon( "debug_bounding_box_for_ent" );
if ( !isDefined( color ) ) if ( !isdefined( color ) )
color = ( randomFloatRange( 0, 1 ), randomFloatRange( 0, 1 ), randomFloatRange( 0, 1 ) ); color = ( randomfloatrange( 0, 1 ), randomfloatrange( 0, 1 ), randomfloatrange( 0, 1 ) );
while ( isDefined( self ) ) while ( isdefined( self ) )
{ {
mins = self BotBuiltinGetMins(); mins = self BotBuiltinGetMins();
maxs = self BotBuiltinGetMaxs(); maxs = self BotBuiltinGetMaxs();
@ -1706,6 +1695,6 @@ debug_bounding_box_for_ent( color )
*/ */
clamp_to_ground( org ) clamp_to_ground( org )
{ {
trace = playerPhysicsTrace( org + ( 0, 0, 20 ), org - ( 0, 0, 2000 ) ); trace = playerphysicstrace( org + ( 0, 0, 20 ), org - ( 0, 0, 2000 ) );
return trace; return trace;
} }

View File

@ -39,9 +39,9 @@ watch_for_objective_canceled()
obj_name = "undefined"; obj_name = "undefined";
if ( isDefined( self.bot_current_objective ) ) if ( isdefined( self.bot_current_objective ) )
{ {
obj_name = self.bot_current_objective.sName; obj_name = self.bot_current_objective.sname;
} }
self BotNotifyBotEvent( "debug", "watch_for_objective_canceled: " + obj_name + ": " + reason ); self BotNotifyBotEvent( "debug", "watch_for_objective_canceled: " + obj_name + ": " + reason );
@ -60,11 +60,11 @@ clean_objective_on_completion()
obj_name = "undefined"; obj_name = "undefined";
if ( isDefined( self.bot_current_objective ) ) if ( isdefined( self.bot_current_objective ) )
{ {
obj_name = self.bot_current_objective.sName; obj_name = self.bot_current_objective.sname;
self.bot_current_objective.eParentObj.aBotProcessTimes[self GetEntityNumber() + ""] = getTime(); self.bot_current_objective.eparentobj.abotprocesstimes[self getentitynumber() + ""] = gettime();
} }
self BotNotifyBotEvent( "debug", "clean_objective_on_completion: " + obj_name + ": " + successful + ": " + reason ); self BotNotifyBotEvent( "debug", "clean_objective_on_completion: " + obj_name + ": " + successful + ": " + reason );
@ -95,21 +95,21 @@ bot_objective_think()
// find all avail objectives // find all avail objectives
objectives = []; objectives = [];
now = getTime(); now = gettime();
our_key = self GetEntityNumber() + ""; our_key = self getentitynumber() + "";
for ( i = 0; i < level.bot_objectives.size; i++ ) for ( i = 0; i < level.bot_objectives.size; i++ )
{ {
objective = level.bot_objectives[i]; objective = level.bot_objectives[i];
// check the process rate // check the process rate
if ( isDefined( objective.aBotProcessTimes[our_key] ) && now - objective.aBotProcessTimes[our_key] < objective.iProcessRate ) if ( isdefined( objective.abotprocesstimes[our_key] ) && now - objective.abotprocesstimes[our_key] < objective.iprocessrate )
{ {
continue; continue;
} }
objectives = array_merge( objectives, self [[objective.fpFinder]]( objective ) ); objectives = array_merge( objectives, self [[objective.fpfinder]]( objective ) );
objective.aBotProcessTimes[our_key] = now; objective.abotprocesstimes[our_key] = now;
} }
if ( objectives.size <= 0 ) if ( objectives.size <= 0 )
@ -122,7 +122,7 @@ bot_objective_think()
for ( i = 0; i < objectives.size; i++ ) for ( i = 0; i < objectives.size; i++ )
{ {
if ( objectives[i].fPriority <= -100 ) if ( objectives[i].fpriority <= -100 )
{ {
continue; continue;
} }
@ -133,36 +133,36 @@ bot_objective_think()
// pop the top! // pop the top!
best_prio = heap.data[0]; best_prio = heap.data[0];
if ( !isDefined( best_prio ) ) if ( !isdefined( best_prio ) )
{ {
continue; continue;
} }
// already on a better obj // already on a better obj
if ( isDefined( self.bot_current_objective ) && ( best_prio.GUID == self.bot_current_objective.GUID || best_prio.fPriority < self [[self.bot_current_objective.eParentObj.fpPriorty]]( self.bot_current_objective.eParentObj, self.bot_current_objective.eEnt ) ) ) if ( isdefined( self.bot_current_objective ) && ( best_prio.guid == self.bot_current_objective.guid || best_prio.fpriority < self [[self.bot_current_objective.eparentobj.fppriorty]]( self.bot_current_objective.eparentobj, self.bot_current_objective.eent ) ) )
{ {
continue; continue;
} }
// DO THE OBJ // DO THE OBJ
// cancel the old obj // cancel the old obj
if ( isDefined( self.bot_current_objective ) ) if ( isdefined( self.bot_current_objective ) )
{ {
// cancel it // cancel it
self CancelObjective( "new obj: " + best_prio.sName ); self CancelObjective( "new obj: " + best_prio.sname );
// wait for it to clean up // wait for it to clean up
self waittill( "completed_bot_objective" ); self waittill( "completed_bot_objective" );
// redo the loop, should do the obj next iteration // redo the loop, should do the obj next iteration
best_prio.eParentObj.aBotProcessTimes[our_key] = undefined; best_prio.eparentobj.abotprocesstimes[our_key] = undefined;
continue; continue;
} }
// ready to execute // ready to execute
self BotNotifyBotEvent( "debug", "bot_objective_think: " + best_prio.sName ); self BotNotifyBotEvent( "debug", "bot_objective_think: " + best_prio.sname );
self.bot_current_objective = best_prio; self.bot_current_objective = best_prio;
self thread [[best_prio.eParentObj.fpExecuter]]( best_prio ); self thread [[best_prio.eparentobj.fpexecuter]]( best_prio );
} }
} }

View File

@ -5,13 +5,13 @@
init() init()
{ {
vending_triggers = GetEntArray( "zombie_vending", "targetname" ); vending_triggers = getentarray( "zombie_vending", "targetname" );
if ( !isDefined( vending_triggers ) || vending_triggers.size < 1 ) if ( !isdefined( vending_triggers ) || vending_triggers.size < 1 )
{ {
vending_triggers = getEntArray( "harrybo21_perk_trigger", "targetname" ); vending_triggers = getentarray( "harrybo21_perk_trigger", "targetname" );
if ( !isDefined( vending_triggers ) || vending_triggers.size < 1 ) if ( !isdefined( vending_triggers ) || vending_triggers.size < 1 )
{ {
return; return;
} }
@ -55,13 +55,13 @@ Finder( eObj )
return answer; return answer;
} }
vending_triggers = GetEntArray( "zombie_vending", "targetname" ); vending_triggers = getentarray( "zombie_vending", "targetname" );
if ( !isDefined( vending_triggers ) || vending_triggers.size < 1 ) if ( !isdefined( vending_triggers ) || vending_triggers.size < 1 )
{ {
vending_triggers = getEntArray( "harrybo21_perk_trigger", "targetname" ); vending_triggers = getentarray( "harrybo21_perk_trigger", "targetname" );
if ( !isDefined( vending_triggers ) || vending_triggers.size < 1 ) if ( !isdefined( vending_triggers ) || vending_triggers.size < 1 )
{ {
return answer; return answer;
} }
@ -85,14 +85,14 @@ Finder( eObj )
} }
// perk limit?? // perk limit??
if ( self HasPerk( perk ) ) if ( self hasperk( perk ) )
{ {
continue; continue;
} }
machine = vending getMachine(); machine = vending getMachine();
if ( !isDefined( machine ) ) if ( !isdefined( machine ) )
{ {
continue; continue;
} }
@ -112,7 +112,7 @@ Finder( eObj )
getMachine() getMachine()
{ {
return GetEnt( self.target, "targetname" ); return getent( self.target, "targetname" );
} }
getVendingPerk() getVendingPerk()
@ -187,7 +187,7 @@ Executer( eObj )
self endon( "disconnect" ); self endon( "disconnect" );
self endon( "zombified" ); self endon( "zombified" );
vending = eObj.eEnt; vending = eObj.eent;
self thread WatchForCancel( vending ); self thread WatchForCancel( vending );
@ -197,7 +197,7 @@ Executer( eObj )
self ClearScriptAimPos(); self ClearScriptAimPos();
self ClearScriptGoal(); self ClearScriptGoal();
self CompletedObjective( eObj.bWasSuccessful, eObj.sReason ); self CompletedObjective( eObj.bwassuccessful, eObj.sreason );
} }
WatchForCancelCleanup() WatchForCancelCleanup()
@ -236,7 +236,7 @@ WatchToGoToMachine( vending )
{ {
wait 0.05; wait 0.05;
if ( self IsTouching( vending ) || vending PointInsideUseTrigger( self.origin ) ) if ( self istouching( vending ) || vending PointInsideUseTrigger( self.origin ) )
{ {
self notify( "goal" ); self notify( "goal" );
break; // is this needed? break; // is this needed?
@ -248,7 +248,7 @@ GoDoPerkMachine( eObj )
{ {
self endon( "cancel_bot_objective" ); self endon( "cancel_bot_objective" );
vending = eObj.eEnt; vending = eObj.eent;
machine = vending getMachine(); machine = vending getMachine();
perk = vending getVendingPerk(); perk = vending getVendingPerk();
org = self getOffset( machine ); org = self getOffset( machine );
@ -261,13 +261,13 @@ GoDoPerkMachine( eObj )
if ( result != "goal" ) if ( result != "goal" )
{ {
eObj.sReason = "didn't go to machine"; eObj.sreason = "didn't go to machine";
return; return;
} }
if ( !self IsTouching( vending ) && !vending PointInsideUseTrigger( self.origin ) ) if ( !self istouching( vending ) && !vending PointInsideUseTrigger( self.origin ) )
{ {
eObj.sReason = "not touching machine"; eObj.sreason = "not touching machine";
return; return;
} }
@ -282,6 +282,6 @@ GoDoPerkMachine( eObj )
wait 0.1; wait 0.1;
// ok we pressed use, DONE // ok we pressed use, DONE
eObj.sReason = "completed " + perk; eObj.sreason = "completed " + perk;
eObj.bWasSuccessful = true; eObj.bwassuccessful = true;
} }

View File

@ -17,7 +17,7 @@ Finder( eObj )
for ( i = 0; i < ents.size; i++ ) for ( i = 0; i < ents.size; i++ )
{ {
// not a powerup script_model // not a powerup script_model
if ( !isDefined( ents[i].powerup_name ) ) if ( !isdefined( ents[i].powerup_name ) )
{ {
continue; continue;
} }
@ -59,7 +59,7 @@ Executer( eObj )
self endon( "disconnect" ); self endon( "disconnect" );
self endon( "zombified" ); self endon( "zombified" );
powerup = eObj.eEnt; powerup = eObj.eent;
org = powerup.origin; org = powerup.origin;
self thread IncrementBotsForEntity( powerup ); self thread IncrementBotsForEntity( powerup );
@ -73,11 +73,11 @@ Executer( eObj )
if ( distance( org, self.origin ) <= 64 ) if ( distance( org, self.origin ) <= 64 )
{ {
eObj.sReason = "completed"; eObj.sreason = "completed";
eObj.bWasSuccessful = true; eObj.bwassuccessful = true;
} }
self CompletedObjective( eObj.bWasSuccessful, eObj.sReason ); self CompletedObjective( eObj.bwassuccessful, eObj.sreason );
} }
WatchForCancelCleanup() WatchForCancelCleanup()
@ -113,7 +113,7 @@ GoDoPowerup( eObj )
{ {
self endon( "cancel_bot_objective" ); self endon( "cancel_bot_objective" );
powerup = eObj.eEnt; powerup = eObj.eent;
// go to it // go to it
self SetScriptGoal( powerup.origin, 32 ); self SetScriptGoal( powerup.origin, 32 );
@ -122,21 +122,21 @@ GoDoPowerup( eObj )
if ( result != "goal" ) if ( result != "goal" )
{ {
eObj.sReason = "didn't go to powerup"; eObj.sreason = "didn't go to powerup";
return; return;
} }
if ( !isDefined( powerup ) || !isDefined( powerup.origin ) ) if ( !isdefined( powerup ) || !isdefined( powerup.origin ) )
{ {
return; return;
} }
if ( distance( powerup.origin, self.origin ) > 64 ) if ( distance( powerup.origin, self.origin ) > 64 )
{ {
eObj.sReason = "not touching it"; eObj.sreason = "not touching it";
return; return;
} }
eObj.sReason = "completed"; eObj.sreason = "completed";
eObj.bWasSuccessful = true; eObj.bwassuccessful = true;
} }

View File

@ -17,7 +17,7 @@ Finder( eObj )
{ {
Player = Players[i]; Player = Players[i];
if ( !IsDefined( Player ) || !IsDefined( Player.team ) ) if ( !isdefined( Player ) || !isdefined( Player.team ) )
{ {
continue; continue;
} }
@ -71,7 +71,7 @@ Executer( eObj )
self endon( "disconnect" ); self endon( "disconnect" );
self endon( "zombified" ); self endon( "zombified" );
revivee = eObj.eEnt; revivee = eObj.eent;
self thread IncrementBotsForEntity( revivee ); self thread IncrementBotsForEntity( revivee );
self thread WatchForCancelRevive( revivee ); self thread WatchForCancelRevive( revivee );
@ -84,7 +84,7 @@ Executer( eObj )
self ClearScriptGoal(); self ClearScriptGoal();
self ClearPriorityObjective(); self ClearPriorityObjective();
self CompletedObjective( eObj.bWasSuccessful, eObj.sReason ); self CompletedObjective( eObj.bwassuccessful, eObj.sreason );
} }
WatchForCancelReviveCleanup() WatchForCancelReviveCleanup()
@ -143,7 +143,7 @@ WatchToGoToGuy( revivee )
{ {
wait 1; wait 1;
if ( self IsTouching( revivee.revivetrigger ) ) if ( self istouching( revivee.revivetrigger ) )
{ {
self notify( "goal" ); self notify( "goal" );
break; // is this needed? break; // is this needed?
@ -156,14 +156,14 @@ WatchForSuccessRevive( eObj )
self endon( "disconnect" ); self endon( "disconnect" );
self endon( "zombified" ); self endon( "zombified" );
revivee = eObj.eEnt; revivee = eObj.eent;
ret = self waittill_either_return( "cancel_bot_objective", "completed_bot_objective" ); ret = self waittill_either_return( "cancel_bot_objective", "completed_bot_objective" );
if ( ret == "cancel_bot_objective" && isDefined( revivee ) && !revivee inLastStand() ) if ( ret == "cancel_bot_objective" && isdefined( revivee ) && !revivee inLastStand() )
{ {
eObj.bWasSuccessful = true; eObj.bwassuccessful = true;
eObj.sReason = "revived him!"; eObj.sreason = "revived him!";
} }
} }
@ -171,7 +171,7 @@ GoDoRevive( eObj )
{ {
self endon( "cancel_bot_objective" ); self endon( "cancel_bot_objective" );
revivee = eObj.eEnt; revivee = eObj.eent;
// go to guy // go to guy
self thread WatchToGoToGuy( revivee ); self thread WatchToGoToGuy( revivee );
@ -182,13 +182,13 @@ GoDoRevive( eObj )
if ( result != "goal" ) if ( result != "goal" )
{ {
eObj.sReason = "didn't go to guy"; eObj.sreason = "didn't go to guy";
return; return;
} }
if ( !self IsTouching( revivee.revivetrigger ) ) if ( !self istouching( revivee.revivetrigger ) )
{ {
eObj.sReason = "not touching guy"; eObj.sreason = "not touching guy";
return; return;
} }
@ -198,12 +198,12 @@ GoDoRevive( eObj )
// now lets hold use until he is up or otherwise // now lets hold use until he is up or otherwise
self thread WatchForSuccessRevive( eObj ); self thread WatchForSuccessRevive( eObj );
while ( self IsTouching( revivee.revivetrigger ) ) while ( self istouching( revivee.revivetrigger ) )
{ {
self thread BotPressUse( 0.15 ); self thread BotPressUse( 0.15 );
wait 0.1; wait 0.1;
} }
eObj.sReason = "not touching guy"; eObj.sreason = "not touching guy";
} }

View File

@ -12,17 +12,17 @@ Finder( eObj )
return answer; return answer;
} }
weapons = self GetWeaponsList(); weapons = self getweaponslist();
// TODO check if need a new weapon, rate weapons too is better then current etc // TODO check if need a new weapon, rate weapons too is better then current etc
chests = level.chests; chests = level.chests;
if ( !isDefined( chests ) ) if ( !isdefined( chests ) )
{ {
chests = GetEntArray( "treasure_chest_use", "targetname" ); chests = getentarray( "treasure_chest_use", "targetname" );
} }
if ( !isDefined( chests ) || chests.size <= 0 ) if ( !isdefined( chests ) || chests.size <= 0 )
{ {
return answer; return answer;
} }
@ -32,24 +32,24 @@ Finder( eObj )
chest = chests[i]; chest = chests[i];
// not active chest // not active chest
if ( isDefined( chest.disabled ) && chest.disabled ) if ( isdefined( chest.disabled ) && chest.disabled )
{ {
continue; continue;
} }
// box is waiting for someone to grab weapon // box is waiting for someone to grab weapon
if ( isDefined( chest.grab_weapon_hint ) && chest.grab_weapon_hint ) if ( isdefined( chest.grab_weapon_hint ) && chest.grab_weapon_hint )
{ {
continue; continue;
} }
cost = 950; cost = 950;
if ( IsDefined( level.zombie_treasure_chest_cost ) ) if ( isdefined( level.zombie_treasure_chest_cost ) )
{ {
cost = level.zombie_treasure_chest_cost; cost = level.zombie_treasure_chest_cost;
} }
else if ( isDefined( chest.zombie_cost ) ) else if ( isdefined( chest.zombie_cost ) )
{ {
cost = chest.zombie_cost; cost = chest.zombie_cost;
} }
@ -62,7 +62,7 @@ Finder( eObj )
lid = getent( chest.target, "targetname" ); lid = getent( chest.target, "targetname" );
if ( !isDefined( lid ) ) if ( !isdefined( lid ) )
{ {
continue; continue;
} }
@ -112,7 +112,7 @@ Executer( eObj )
self endon( "disconnect" ); self endon( "disconnect" );
self endon( "zombified" ); self endon( "zombified" );
chest = eObj.eEnt; chest = eObj.eent;
self thread WatchForCancel( chest ); self thread WatchForCancel( chest );
@ -123,7 +123,7 @@ Executer( eObj )
self ClearScriptGoal(); self ClearScriptGoal();
self ClearPriorityObjective(); self ClearPriorityObjective();
self CompletedObjective( eObj.bWasSuccessful, eObj.sReason ); self CompletedObjective( eObj.bwassuccessful, eObj.sreason );
} }
WatchForCancelCleanup() WatchForCancelCleanup()
@ -162,13 +162,13 @@ WatchToGoToChest( chest )
{ {
wait 0.05; wait 0.05;
if ( self IsTouching( chest ) || chest PointInsideUseTrigger( self.origin ) ) if ( self istouching( chest ) || chest PointInsideUseTrigger( self.origin ) )
{ {
self notify( "goal" ); self notify( "goal" );
break; // is this needed? break; // is this needed?
} }
if ( isDefined( chest.disabled ) && chest.disabled ) if ( isdefined( chest.disabled ) && chest.disabled )
{ {
self notify( "bad_path" ); self notify( "bad_path" );
break; // is this needed? break; // is this needed?
@ -180,14 +180,14 @@ GoDoTreasureChest( eObj )
{ {
self endon( "cancel_bot_objective" ); self endon( "cancel_bot_objective" );
chest = eObj.eEnt; chest = eObj.eent;
lid = getent( chest.target, "targetname" ); lid = getent( chest.target, "targetname" );
weapon_spawn_org = getent( lid.target, "targetname" ); weapon_spawn_org = getent( lid.target, "targetname" );
org = self getOffset( lid ); org = self getOffset( lid );
weap = self GetCurrentWeapon(); weap = self getcurrentweapon();
if ( weap == "none" || !self getAmmoCount( weap ) ) if ( weap == "none" || !self getammocount( weap ) )
{ {
self SetPriorityObjective(); self SetPriorityObjective();
} }
@ -200,13 +200,13 @@ GoDoTreasureChest( eObj )
if ( result != "goal" ) if ( result != "goal" )
{ {
eObj.sReason = "didn't go to chest"; eObj.sreason = "didn't go to chest";
return; return;
} }
if ( !self IsTouching( chest ) && !chest PointInsideUseTrigger( self.origin ) ) if ( !self istouching( chest ) && !chest PointInsideUseTrigger( self.origin ) )
{ {
eObj.sReason = "not touching chest"; eObj.sreason = "not touching chest";
return; return;
} }
@ -225,9 +225,9 @@ GoDoTreasureChest( eObj )
self ClearPriorityObjective(); self ClearPriorityObjective();
// randomization isnt happening... // randomization isnt happening...
if ( !isDefined( chest.disabled ) || !chest.disabled ) if ( !isdefined( chest.disabled ) || !chest.disabled )
{ {
eObj.sReason = "chest isnt randomizing"; eObj.sreason = "chest isnt randomizing";
return; return;
} }
@ -235,13 +235,13 @@ GoDoTreasureChest( eObj )
if (ret == "timeout") if (ret == "timeout")
{ {
eObj.sReason = "randomization_done timed out"; eObj.sreason = "randomization_done timed out";
return; return;
} }
if ( isDefined( level.flag[ "moving_chest_now" ] ) && flag( "moving_chest_now" ) ) if ( isdefined( level.flag[ "moving_chest_now" ] ) && flag( "moving_chest_now" ) )
{ {
eObj.sReason = "chest is moving!"; eObj.sreason = "chest is moving!";
return; return;
} }
@ -258,13 +258,13 @@ GoDoTreasureChest( eObj )
if ( result != "goal" ) if ( result != "goal" )
{ {
eObj.sReason = "didn't go to chest"; eObj.sreason = "didn't go to chest";
return; return;
} }
if ( !self IsTouching( chest ) && !chest PointInsideUseTrigger( self.origin ) ) if ( !self istouching( chest ) && !chest PointInsideUseTrigger( self.origin ) )
{ {
eObj.sReason = "not touching chest"; eObj.sreason = "not touching chest";
return; return;
} }
@ -279,6 +279,6 @@ GoDoTreasureChest( eObj )
wait 0.1; wait 0.1;
// complete! // complete!
eObj.sReason = "completed " + weap; eObj.sreason = "completed " + weap;
eObj.bWasSuccessful = true; eObj.bwassuccessful = true;
} }

View File

@ -4,43 +4,43 @@
CreateObjectiveForManger( sName, fpFinder, fpPriorty, fpExecuter, iProcessRate ) CreateObjectiveForManger( sName, fpFinder, fpPriorty, fpExecuter, iProcessRate )
{ {
Answer = SpawnStruct(); Answer = spawnstruct();
Answer.sName = sName; Answer.sname = sName;
Answer.fpFinder = fpFinder; Answer.fpfinder = fpFinder;
Answer.fpExecuter = fpExecuter; Answer.fpexecuter = fpExecuter;
Answer.fpPriorty = fpPriorty; Answer.fppriorty = fpPriorty;
Answer.aBotProcessTimes = []; Answer.abotprocesstimes = [];
Answer.iProcessRate = iProcessRate; Answer.iprocessrate = iProcessRate;
return Answer; return Answer;
} }
CreateFinderObjectiveEZ( eObj, eEnt ) CreateFinderObjectiveEZ( eObj, eEnt )
{ {
return self CreateFinderObjective( eObj, eObj.sName + "_" + eEnt GetEntityNumber(), eEnt, self [[eObj.fpPriorty]]( eObj, eEnt ) ); return self CreateFinderObjective( eObj, eObj.sname + "_" + eEnt getentitynumber(), eEnt, self [[eObj.fppriorty]]( eObj, eEnt ) );
} }
CreateFinderObjective( eObj, sName, eEnt, fPriority ) CreateFinderObjective( eObj, sName, eEnt, fPriority )
{ {
Answer = SpawnStruct(); Answer = spawnstruct();
Answer.eParentObj = eObj; Answer.eparentobj = eObj;
Answer.sName = sName; Answer.sname = sName;
Answer.eEnt = eEnt; Answer.eent = eEnt;
Answer.fPriority = fPriority; Answer.fpriority = fPriority;
Answer.GUID = eEnt GetEntityNumber(); Answer.guid = eEnt getentitynumber();
Answer.bWasSuccessful = false; Answer.bwassuccessful = false;
Answer.sReason = "canceled"; Answer.sreason = "canceled";
return Answer; return Answer;
} }
GetBotsAmountForEntity( eEnt ) GetBotsAmountForEntity( eEnt )
{ {
if ( !isDefined( eEnt.bots ) ) if ( !isdefined( eEnt.bots ) )
{ {
eEnt.bots = 0; eEnt.bots = 0;
} }
@ -56,7 +56,7 @@ IncrementBotsForEntity( eEnt )
self waittill_either( "disconnect", "zombified" ); self waittill_either( "disconnect", "zombified" );
if ( isDefined( eEnt ) ) if ( isdefined( eEnt ) )
{ {
eEnt.bots--; eEnt.bots--;
} }
@ -66,7 +66,7 @@ DecrementBotsForEntity( eEnt )
{ {
self notify( "bots_for_entity_cleanup" ); self notify( "bots_for_entity_cleanup" );
if ( isDefined( eEnt ) ) if ( isdefined( eEnt ) )
{ {
eEnt.bots--; eEnt.bots--;
} }
@ -94,7 +94,7 @@ GetBotObjectiveEnt()
return undefined; return undefined;
} }
return self GetBotObjective().eEnt; return self GetBotObjective().eent;
} }
/* /*
@ -110,5 +110,5 @@ GetBotObjective()
*/ */
HasBotObjective() HasBotObjective()
{ {
return isDefined( self GetBotObjective() ); return isdefined( self GetBotObjective() );
} }

View File

@ -12,14 +12,14 @@ Finder( eObj )
return answer; return answer;
} }
weapon_spawns = GetEntArray( "weapon_upgrade", "targetname" ); weapon_spawns = getentarray( "weapon_upgrade", "targetname" );
if ( !isDefined( weapon_spawns ) || weapon_spawns.size <= 0 ) if ( !isdefined( weapon_spawns ) || weapon_spawns.size <= 0 )
{ {
return answer; return answer;
} }
weapons = self GetWeaponsList(); weapons = self getweaponslist();
// TODO check if need a new weapon, rate weapons too is better then current etc // TODO check if need a new weapon, rate weapons too is better then current etc
@ -27,7 +27,7 @@ Finder( eObj )
{ {
player_has_weapon = false; player_has_weapon = false;
if ( !isDefined( weapon_spawns[i].zombie_weapon_upgrade ) ) if ( !isdefined( weapon_spawns[i].zombie_weapon_upgrade ) )
{ {
continue; continue;
} }
@ -40,7 +40,7 @@ Finder( eObj )
} }
} }
is_grenade = ( WeaponType( weapon_spawns[i].zombie_weapon_upgrade ) == "grenade" ); is_grenade = ( weapontype( weapon_spawns[i].zombie_weapon_upgrade ) == "grenade" );
if ( !player_has_weapon || is_grenade ) if ( !player_has_weapon || is_grenade )
{ {
@ -63,12 +63,12 @@ Finder( eObj )
model = weapon_spawns[ i ]; model = weapon_spawns[ i ];
if ( isDefined( weapon_spawns[ i ].target ) ) if ( isdefined( weapon_spawns[ i ].target ) )
{ {
model = getEnt( weapon_spawns[ i ].target, "targetname" ); model = getent( weapon_spawns[ i ].target, "targetname" );
} }
if ( !isDefined( model ) ) if ( !isdefined( model ) )
{ {
continue; continue;
} }
@ -112,7 +112,7 @@ Priority( eObj, eEnt )
base_priority -= 1; base_priority -= 1;
} }
if ( isSubStr( eEnt.zombie_weapon_upgrade, "kar98k" ) || isSubStr( eEnt.zombie_weapon_upgrade, "type99" ) ) if ( issubstr( eEnt.zombie_weapon_upgrade, "kar98k" ) || issubstr( eEnt.zombie_weapon_upgrade, "type99" ) )
{ {
base_priority -= 999; base_priority -= 999;
} }
@ -125,7 +125,7 @@ Executer( eObj )
self endon( "disconnect" ); self endon( "disconnect" );
self endon( "zombified" ); self endon( "zombified" );
weapon = eObj.eEnt; weapon = eObj.eent;
self thread WatchForCancel( weapon ); self thread WatchForCancel( weapon );
@ -136,7 +136,7 @@ Executer( eObj )
self ClearScriptGoal(); self ClearScriptGoal();
self ClearPriorityObjective(); self ClearPriorityObjective();
self CompletedObjective( eObj.bWasSuccessful, eObj.sReason ); self CompletedObjective( eObj.bwassuccessful, eObj.sreason );
} }
WatchForCancelCleanup() WatchForCancelCleanup()
@ -175,7 +175,7 @@ WatchToGoToWeapon( weapon )
{ {
wait 0.05; wait 0.05;
if ( self IsTouching( weapon ) || weapon PointInsideUseTrigger( self.origin ) ) if ( self istouching( weapon ) || weapon PointInsideUseTrigger( self.origin ) )
{ {
self notify( "goal" ); self notify( "goal" );
break; // is this needed? break; // is this needed?
@ -187,19 +187,19 @@ GoDoWallweapon( eObj )
{ {
self endon( "cancel_bot_objective" ); self endon( "cancel_bot_objective" );
weapon = eObj.eEnt; weapon = eObj.eent;
model = weapon; model = weapon;
if ( isDefined( weapon.target ) ) if ( isdefined( weapon.target ) )
{ {
model = getEnt( weapon.target, "targetname" ); model = getent( weapon.target, "targetname" );
} }
org = self getOffset( model, weapon ); org = self getOffset( model, weapon );
weap = self GetCurrentWeapon(); weap = self getcurrentweapon();
if ( weap == "none" || !self getAmmoCount( weap ) ) if ( weap == "none" || !self getammocount( weap ) )
{ {
self SetPriorityObjective(); self SetPriorityObjective();
} }
@ -212,13 +212,13 @@ GoDoWallweapon( eObj )
if ( result != "goal" ) if ( result != "goal" )
{ {
eObj.sReason = "didn't go to weapon"; eObj.sreason = "didn't go to weapon";
return; return;
} }
if ( !self IsTouching( weapon ) && !weapon PointInsideUseTrigger( self.origin ) ) if ( !self istouching( weapon ) && !weapon PointInsideUseTrigger( self.origin ) )
{ {
eObj.sReason = "not touching weapon"; eObj.sreason = "not touching weapon";
return; return;
} }
@ -232,6 +232,6 @@ GoDoWallweapon( eObj )
self thread BotPressUse( 0.15 ); self thread BotPressUse( 0.15 );
wait 0.1; wait 0.1;
eObj.sReason = "completed"; eObj.sreason = "completed";
eObj.bWasSuccessful = true; eObj.bwassuccessful = true;
} }

View File

@ -23,57 +23,57 @@ init()
do_printconsole( s ) do_printconsole( s )
{ {
PrintConsole( s ); printconsole( s );
} }
do_botaction( action ) do_botaction( action )
{ {
self BotAction( action ); self botaction( action );
} }
do_botstop() do_botstop()
{ {
self BotStop(); self botstop();
} }
do_botmovement( left, forward ) do_botmovement( left, forward )
{ {
self BotMovement( left, forward ); self botmovement( left, forward );
} }
do_botmeleeparams( yaw, dist ) do_botmeleeparams( yaw, dist )
{ {
// self BotMeleeParams( yaw, dist ); // self botmeleeparams( yaw, dist );
} }
do_isbot() do_isbot()
{ {
return self isBot(); return self isbot();
} }
do_generatepath( from, to, team, best_effort ) do_generatepath( from, to, team, best_effort )
{ {
return GeneratePath( from, to, team, best_effort ); return generatepath( from, to, team, best_effort );
} }
do_getfunction( file, threadname ) do_getfunction( file, threadname )
{ {
return GetFunction( file, threadname ); return getfunction( file, threadname );
} }
do_getmins() do_getmins()
{ {
return self GetMins(); return self getmins();
} }
do_getmaxs() do_getmaxs()
{ {
return self GetMaxs(); return self getmaxs();
} }
do_getguid() do_getguid()
{ {
return self GetGuid(); return self getguid();
} }
do_setallowedtraversals( a ) do_setallowedtraversals( a )
@ -88,12 +88,12 @@ do_setignoredlinks( a )
do_getnodenumber() do_getnodenumber()
{ {
return self GetNodeNumber(); return self getnodenumber();
} }
do_getlinkednodes() do_getlinkednodes()
{ {
return self GetLinkedNodes(); return self getlinkednodes();
} }
do_addtestclient() do_addtestclient()
@ -113,5 +113,5 @@ do_cmdexec( a )
do_ishost() do_ishost()
{ {
return self isHost(); return self ishost();
} }