mirror of
https://github.com/JezuzLizard/t4sp_bot_warfare.git
synced 2025-04-22 14:35:44 +00:00
casing fixes
This commit is contained in:
parent
b85f5af73a
commit
271ea76c3e
@ -7,100 +7,100 @@
|
||||
*/
|
||||
init()
|
||||
{
|
||||
level.bw_VERSION = "z0.1";
|
||||
level.bw_version = "z0.1";
|
||||
|
||||
if ( getDvar( "bots_main" ) == "" )
|
||||
setDvar( "bots_main", true );
|
||||
if ( getdvar( "bots_main" ) == "" )
|
||||
setdvar( "bots_main", true );
|
||||
|
||||
if ( !getDvarInt( "bots_main" ) )
|
||||
if ( !getdvarint( "bots_main" ) )
|
||||
return;
|
||||
|
||||
if ( !wait_for_builtins() )
|
||||
PrintLn( "FATAL: NO BUILT-INS FOR BOTS" );
|
||||
println( "FATAL: NO BUILT-INS FOR BOTS" );
|
||||
|
||||
thread load_waypoints();
|
||||
thread hook_callbacks();
|
||||
|
||||
if ( getDvar( "bots_main_GUIDs" ) == "" )
|
||||
setDvar( "bots_main_GUIDs", "" ); //guids of players who will be given host powers, comma seperated
|
||||
if ( getdvar( "bots_main_GUIDs" ) == "" )
|
||||
setdvar( "bots_main_GUIDs", "" ); //guids of players who will be given host powers, comma seperated
|
||||
|
||||
if ( getDvar( "bots_main_firstIsHost" ) == "" )
|
||||
setDvar( "bots_main_firstIsHost", false ); //first player to connect is a host
|
||||
if ( getdvar( "bots_main_firstIsHost" ) == "" )
|
||||
setdvar( "bots_main_firstIsHost", false ); //first player to connect is a host
|
||||
|
||||
if ( getDvar( "bots_main_waitForHostTime" ) == "" )
|
||||
setDvar( "bots_main_waitForHostTime", 10.0 ); //how long to wait to wait for the host player
|
||||
if ( getdvar( "bots_main_waitForHostTime" ) == "" )
|
||||
setdvar( "bots_main_waitForHostTime", 10.0 ); //how long to wait to wait for the host player
|
||||
|
||||
if ( getDvar( "bots_main_kickBotsAtEnd" ) == "" )
|
||||
setDvar( "bots_main_kickBotsAtEnd", false ); //kicks the bots at game end
|
||||
if ( getdvar( "bots_main_kickBotsAtEnd" ) == "" )
|
||||
setdvar( "bots_main_kickBotsAtEnd", false ); //kicks the bots at game end
|
||||
|
||||
if ( getDvar( "bots_manage_add" ) == "" )
|
||||
setDvar( "bots_manage_add", 0 ); //amount of bots to add to the game
|
||||
if ( getdvar( "bots_manage_add" ) == "" )
|
||||
setdvar( "bots_manage_add", 0 ); //amount of bots to add to the game
|
||||
|
||||
if ( getDvar( "bots_manage_fill" ) == "" )
|
||||
setDvar( "bots_manage_fill", 0 ); //amount of bots to maintain
|
||||
if ( getdvar( "bots_manage_fill" ) == "" )
|
||||
setdvar( "bots_manage_fill", 0 ); //amount of bots to maintain
|
||||
|
||||
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
|
||||
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
|
||||
|
||||
if ( getDvar( "bots_manage_fill_kick" ) == "" )
|
||||
setDvar( "bots_manage_fill_kick", false ); //kick bots if too many
|
||||
if ( getdvar( "bots_manage_fill_kick" ) == "" )
|
||||
setdvar( "bots_manage_fill_kick", false ); //kick bots if too many
|
||||
|
||||
if ( getDvar( "bots_skill" ) == "" )
|
||||
setDvar( "bots_skill", 0 ); //0 is random, 1 is easy 7 is hard, 8 is custom, 9 is completely random
|
||||
if ( getdvar( "bots_skill" ) == "" )
|
||||
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" ) == "" )
|
||||
setDvar( "bots_skill_hard", 0 ); //amount of hard bots on axis team
|
||||
if ( getdvar( "bots_skill_hard" ) == "" )
|
||||
setdvar( "bots_skill_hard", 0 ); //amount of hard bots on axis team
|
||||
|
||||
if ( getDvar( "bots_skill_med" ) == "" )
|
||||
setDvar( "bots_skill_med", 0 );
|
||||
if ( getdvar( "bots_skill_med" ) == "" )
|
||||
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
|
||||
setDvar( "bots_loadout_rank", -1 );
|
||||
if ( getdvar( "bots_loadout_rank" ) == "" ) // what rank the bots should be around, -1 is around the players, 0 is all random
|
||||
setdvar( "bots_loadout_rank", -1 );
|
||||
|
||||
if ( getDvar( "bots_loadout_prestige" ) == "" ) // what pretige the bots will be, -1 is the players, -2 is random
|
||||
setDvar( "bots_loadout_prestige", -1 );
|
||||
if ( getdvar( "bots_loadout_prestige" ) == "" ) // what pretige the bots will be, -1 is the players, -2 is random
|
||||
setdvar( "bots_loadout_prestige", -1 );
|
||||
|
||||
if ( getDvar( "bots_play_move" ) == "" ) //bots move
|
||||
setDvar( "bots_play_move", true );
|
||||
if ( getdvar( "bots_play_move" ) == "" ) //bots move
|
||||
setdvar( "bots_play_move", true );
|
||||
|
||||
if ( getDvar( "bots_play_knife" ) == "" ) //bots knife
|
||||
setDvar( "bots_play_knife", true );
|
||||
if ( getdvar( "bots_play_knife" ) == "" ) //bots knife
|
||||
setdvar( "bots_play_knife", true );
|
||||
|
||||
if ( getDvar( "bots_play_fire" ) == "" ) //bots fire
|
||||
setDvar( "bots_play_fire", true );
|
||||
if ( getdvar( "bots_play_fire" ) == "" ) //bots fire
|
||||
setdvar( "bots_play_fire", true );
|
||||
|
||||
if ( getDvar( "bots_play_nade" ) == "" ) //bots grenade
|
||||
setDvar( "bots_play_nade", true );
|
||||
if ( getdvar( "bots_play_nade" ) == "" ) //bots grenade
|
||||
setdvar( "bots_play_nade", true );
|
||||
|
||||
if ( getDvar( "bots_play_ads" ) == "" ) //bot ads
|
||||
setDvar( "bots_play_ads", true );
|
||||
if ( getdvar( "bots_play_ads" ) == "" ) //bot ads
|
||||
setdvar( "bots_play_ads", true );
|
||||
|
||||
if ( getDvar( "bots_play_aim" ) == "" )
|
||||
setDvar( "bots_play_aim", true );
|
||||
if ( getdvar( "bots_play_aim" ) == "" )
|
||||
setdvar( "bots_play_aim", true );
|
||||
|
||||
if ( getDvar( "bots_t8_mode" ) == "" )
|
||||
setDvar( "bots_t8_mode", false );
|
||||
if ( getdvar( "bots_t8_mode" ) == "" )
|
||||
setdvar( "bots_t8_mode", false );
|
||||
|
||||
if ( getDvar( "bots_play_opendoors" ) == "" )
|
||||
setDvar( "bots_play_opendoors", true );
|
||||
if ( getdvar( "bots_play_opendoors" ) == "" )
|
||||
setdvar( "bots_play_opendoors", true );
|
||||
|
||||
if ( !isDefined( game["botWarfare"] ) )
|
||||
if ( !isdefined( game["botWarfare"] ) )
|
||||
game["botWarfare"] = true;
|
||||
|
||||
level.bots_minSprintDistance = 315;
|
||||
level.bots_minSprintDistance *= level.bots_minSprintDistance;
|
||||
level.bots_minGrenadeDistance = 256;
|
||||
level.bots_minGrenadeDistance *= level.bots_minGrenadeDistance;
|
||||
level.bots_maxGrenadeDistance = 1024;
|
||||
level.bots_maxGrenadeDistance *= level.bots_maxGrenadeDistance;
|
||||
level.bots_maxKnifeDistance = 128;
|
||||
level.bots_maxKnifeDistance *= level.bots_maxKnifeDistance;
|
||||
level.bots_goalDistance = 27.5;
|
||||
level.bots_goalDistance *= level.bots_goalDistance;
|
||||
level.bots_noADSDistance = 200;
|
||||
level.bots_noADSDistance *= level.bots_noADSDistance;
|
||||
level.bots_maxShotgunDistance = 500;
|
||||
level.bots_maxShotgunDistance *= level.bots_maxShotgunDistance;
|
||||
level.bots_minsprintdistance = 315;
|
||||
level.bots_minsprintdistance *= level.bots_minsprintdistance;
|
||||
level.bots_mingrenadedistance = 256;
|
||||
level.bots_mingrenadedistance *= level.bots_mingrenadedistance;
|
||||
level.bots_maxgrenadedistance = 1024;
|
||||
level.bots_maxgrenadedistance *= level.bots_maxgrenadedistance;
|
||||
level.bots_maxknifedistance = 128;
|
||||
level.bots_maxknifedistance *= level.bots_maxknifedistance;
|
||||
level.bots_goaldistance = 27.5;
|
||||
level.bots_goaldistance *= level.bots_goaldistance;
|
||||
level.bots_noadsdistance = 200;
|
||||
level.bots_noadsdistance *= level.bots_noadsdistance;
|
||||
level.bots_maxshotgundistance = 500;
|
||||
level.bots_maxshotgundistance *= level.bots_maxshotgundistance;
|
||||
|
||||
level.players = [];
|
||||
level.bots = [];
|
||||
@ -132,19 +132,19 @@ handleBots()
|
||||
level thread diffBots();
|
||||
level addBots();
|
||||
|
||||
while ( !isDefined( level.intermission ) || !level.intermission )
|
||||
while ( !isdefined( level.intermission ) || !level.intermission )
|
||||
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;
|
||||
|
||||
bots = getBotArray();
|
||||
|
||||
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 )
|
||||
{
|
||||
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 );
|
||||
}
|
||||
@ -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 [[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 )
|
||||
{
|
||||
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()
|
||||
{
|
||||
wait 0.05;
|
||||
level.prevCallbackPlayerDamage = level.callbackPlayerDamage;
|
||||
level.callbackPlayerDamage = ::onPlayerDamage;
|
||||
level.prevcallbackplayerdamage = level.callbackplayerdamage;
|
||||
level.callbackplayerdamage = ::onPlayerDamage;
|
||||
|
||||
level.prevCallbackActorDamage = level.callbackActorDamage;
|
||||
level.callbackActorDamage = ::onActorDamage;
|
||||
level.prevcallbackactordamage = level.callbackactordamage;
|
||||
level.callbackactordamage = ::onActorDamage;
|
||||
}
|
||||
|
||||
/*
|
||||
@ -231,9 +231,9 @@ onSpawnedAll()
|
||||
{
|
||||
self waittill( "spawned_player" );
|
||||
|
||||
self.lastSpawnTime = getTime();
|
||||
self.lastspawntime = gettime();
|
||||
|
||||
if ( getDvarInt( "bots_main_debug" ) )
|
||||
if ( getdvarint( "bots_main_debug" ) )
|
||||
{
|
||||
self.score = 100000;
|
||||
}
|
||||
@ -257,7 +257,7 @@ connected()
|
||||
{
|
||||
self endon( "disconnect" );
|
||||
|
||||
if ( !isDefined( self.pers["bot_host"] ) )
|
||||
if ( !isdefined( self.pers["bot_host"] ) )
|
||||
self thread doHostCheck();
|
||||
|
||||
level.players[level.players.size] = self;
|
||||
@ -268,13 +268,13 @@ connected()
|
||||
if ( !self is_bot() )
|
||||
return;
|
||||
|
||||
if ( !isDefined( self.pers["isBot"] ) )
|
||||
if ( !isdefined( self.pers["isBot"] ) )
|
||||
{
|
||||
// fast restart...
|
||||
self.pers["isBot"] = true;
|
||||
}
|
||||
|
||||
if ( !isDefined( self.pers["isBotWarfare"] ) )
|
||||
if ( !isdefined( self.pers["isBotWarfare"] ) )
|
||||
{
|
||||
self.pers["isBotWarfare"] = true;
|
||||
self thread added();
|
||||
@ -302,34 +302,34 @@ watchBotDebugEvent()
|
||||
{
|
||||
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;
|
||||
|
||||
if ( isDefined( str ) && isString( str ) )
|
||||
if ( isdefined( str ) && isstring( str ) )
|
||||
big_str += ", " + str;
|
||||
|
||||
if ( isDefined( b ) && isString( b ) )
|
||||
if ( isdefined( b ) && isstring( b ) )
|
||||
big_str += ", " + b;
|
||||
|
||||
if ( isDefined( c ) && isString( c ) )
|
||||
if ( isdefined( c ) && isstring( c ) )
|
||||
big_str += ", " + c;
|
||||
|
||||
if ( isDefined( d ) && isString( d ) )
|
||||
if ( isdefined( d ) && isstring( d ) )
|
||||
big_str += ", " + d;
|
||||
|
||||
if ( isDefined( e ) && isString( e ) )
|
||||
if ( isdefined( e ) && isstring( e ) )
|
||||
big_str += ", " + e;
|
||||
|
||||
if ( isDefined( f ) && isString( f ) )
|
||||
if ( isdefined( f ) && isstring( f ) )
|
||||
big_str += ", " + f;
|
||||
|
||||
if ( isDefined( g ) && isString( g ) )
|
||||
if ( isdefined( g ) && isstring( g ) )
|
||||
big_str += ", " + g;
|
||||
|
||||
BotBuiltinPrintConsole( big_str );
|
||||
}
|
||||
else if ( msg == "debug" && GetDvarInt( "bots_main_debug" ) )
|
||||
else if ( msg == "debug" && getdvarint( "bots_main_debug" ) )
|
||||
{
|
||||
BotBuiltinPrintConsole( "Bot Warfare debug: " + self.playername + ": " + str );
|
||||
}
|
||||
@ -367,9 +367,9 @@ add_bot()
|
||||
*/
|
||||
diffBots_loop()
|
||||
{
|
||||
var_hard = getDVarInt( "bots_skill_hard" );
|
||||
var_med = getDVarInt( "bots_skill_med" );
|
||||
var_skill = getDvarInt( "bots_skill" );
|
||||
var_hard = getdvarint( "bots_skill_hard" );
|
||||
var_med = getdvarint( "bots_skill_med" );
|
||||
var_skill = getdvarint( "bots_skill" );
|
||||
|
||||
hard = 0;
|
||||
med = 0;
|
||||
@ -382,7 +382,7 @@ diffBots_loop()
|
||||
{
|
||||
player = level.players[i];
|
||||
|
||||
if ( !isDefined( player.pers["team"] ) )
|
||||
if ( !isdefined( player.pers["team"] ) )
|
||||
continue;
|
||||
|
||||
if ( !player is_bot() )
|
||||
@ -436,11 +436,11 @@ diffBots()
|
||||
*/
|
||||
addBots_loop()
|
||||
{
|
||||
botsToAdd = GetDvarInt( "bots_manage_add" );
|
||||
botsToAdd = getdvarint( "bots_manage_add" );
|
||||
|
||||
if ( botsToAdd > 0 )
|
||||
{
|
||||
SetDvar( "bots_manage_add", 0 );
|
||||
setdvar( "bots_manage_add", 0 );
|
||||
|
||||
if ( 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 )
|
||||
setDvar( "bots_manage_fill", getGoodMapAmount() );
|
||||
setdvar( "bots_manage_fill", getGoodMapAmount() );
|
||||
|
||||
fillAmount = getDvarInt( "bots_manage_fill" );
|
||||
fillAmount = getdvarint( "bots_manage_fill" );
|
||||
|
||||
players = 0;
|
||||
bots = 0;
|
||||
@ -480,13 +480,13 @@ addBots_loop()
|
||||
amount += players;
|
||||
|
||||
if ( amount < fillAmount )
|
||||
setDvar( "bots_manage_add", 1 );
|
||||
else if ( amount > fillAmount && getDvarInt( "bots_manage_fill_kick" ) )
|
||||
setdvar( "bots_manage_add", 1 );
|
||||
else if ( amount > fillAmount && getdvarint( "bots_manage_fill_kick" ) )
|
||||
{
|
||||
tempBot = getBotToKick();
|
||||
|
||||
if ( isDefined( tempBot ) )
|
||||
BotBuiltinCmdExec( "clientkick " + tempBot getEntityNumber() );
|
||||
if ( isdefined( tempBot ) )
|
||||
BotBuiltinCmdExec( "clientkick " + tempBot getentitynumber() );
|
||||
}
|
||||
}
|
||||
|
||||
@ -499,7 +499,7 @@ addBots()
|
||||
|
||||
bot_wait_for_host();
|
||||
|
||||
while ( !isDefined( level.intermission ) || !level.intermission )
|
||||
while ( !isdefined( level.intermission ) || !level.intermission )
|
||||
{
|
||||
wait 1.5;
|
||||
|
||||
|
@ -12,41 +12,41 @@
|
||||
|
||||
init()
|
||||
{
|
||||
if ( getDvar( "bots_main_debug" ) == "" )
|
||||
setDvar( "bots_main_debug", 0 );
|
||||
if ( getdvar( "bots_main_debug" ) == "" )
|
||||
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;
|
||||
|
||||
if ( !getDVarint( "developer" ) )
|
||||
if ( !getdvarint( "developer" ) )
|
||||
{
|
||||
setdvar( "developer_script", 1 );
|
||||
setdvar( "developer", 2 );
|
||||
|
||||
setdvar( "sv_mapRotation", "map " + getDvar( "mapname" ) );
|
||||
exitLevel( false );
|
||||
setdvar( "sv_mapRotation", "map " + getdvar( "mapname" ) );
|
||||
exitlevel( false );
|
||||
return;
|
||||
}
|
||||
|
||||
setDvar( "bots_main", false );
|
||||
setdvar( "bots_main", false );
|
||||
setdvar( "bots_main_menu", false );
|
||||
setdvar( "bots_manage_fill_mode", 0 );
|
||||
setdvar( "bots_manage_fill", 0 );
|
||||
setdvar( "bots_manage_add", 0 );
|
||||
setdvar( "bots_manage_fill_kick", true );
|
||||
setDvar( "bots_manage_fill_spec", true );
|
||||
setdvar( "bots_manage_fill_spec", true );
|
||||
|
||||
if ( getDvar( "bots_main_debug_distance" ) == "" )
|
||||
setDvar( "bots_main_debug_distance", 512.0 );
|
||||
if ( getdvar( "bots_main_debug_distance" ) == "" )
|
||||
setdvar( "bots_main_debug_distance", 512.0 );
|
||||
|
||||
if ( getDvar( "bots_main_debug_cone" ) == "" )
|
||||
setDvar( "bots_main_debug_cone", 0.65 );
|
||||
if ( getdvar( "bots_main_debug_cone" ) == "" )
|
||||
setdvar( "bots_main_debug_cone", 0.65 );
|
||||
|
||||
if ( getDvar( "bots_main_debug_minDist" ) == "" )
|
||||
setDvar( "bots_main_debug_minDist", 32.0 );
|
||||
if ( getdvar( "bots_main_debug_minDist" ) == "" )
|
||||
setdvar( "bots_main_debug_minDist", 32.0 );
|
||||
|
||||
if ( getDvar( "bots_main_debug_drawThrough" ) == "" )
|
||||
setDvar( "bots_main_debug_drawThrough", false );
|
||||
if ( getdvar( "bots_main_debug_drawThrough" ) == "" )
|
||||
setdvar( "bots_main_debug_drawThrough", false );
|
||||
|
||||
thread load_waypoints();
|
||||
|
||||
@ -149,7 +149,7 @@ toggle_link( firstwp, secondwp )
|
||||
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];
|
||||
|
||||
@ -169,7 +169,7 @@ toggle_link( firstwp, secondwp )
|
||||
}
|
||||
else
|
||||
{
|
||||
if ( !isDefined( level.bot_ignore_links[key] ) )
|
||||
if ( !isdefined( level.bot_ignore_links[key] ) )
|
||||
{
|
||||
level.bot_ignore_links[key] = [];
|
||||
}
|
||||
@ -196,24 +196,24 @@ debug()
|
||||
wait 0.05;
|
||||
|
||||
closest = -1;
|
||||
myEye = self getTagOrigin( "j_head" );
|
||||
myAngles = self GetPlayerAngles();
|
||||
myEye = self gettagorigin( "j_head" );
|
||||
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 ) )
|
||||
closest = i;
|
||||
|
||||
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();
|
||||
node_num_str = level.waypoints[i] BotBuiltinGetNodeNumber() + "";
|
||||
|
||||
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;
|
||||
this_node_num = linked[h] BotBuiltinGetNodeNumber();
|
||||
@ -236,9 +236,9 @@ debug()
|
||||
|
||||
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 );
|
||||
}
|
||||
}
|
||||
@ -264,18 +264,18 @@ textScroll( string )
|
||||
self endon( "disconnect" );
|
||||
//thanks ActionScript
|
||||
|
||||
back = createBar( ( 0, 0, 0 ), 1000, 30 );
|
||||
back setPoint( "CENTER", undefined, 0, 220 );
|
||||
back = createbar( ( 0, 0, 0 ), 1000, 30 );
|
||||
back setpoint( "CENTER", undefined, 0, 220 );
|
||||
self thread destroyOnDeath( back );
|
||||
|
||||
text = createFontString( "default", 1.5 );
|
||||
text setText( string );
|
||||
text = createfontstring( "default", 1.5 );
|
||||
text settext( string );
|
||||
self thread destroyOnDeath( text );
|
||||
|
||||
for ( ;; )
|
||||
{
|
||||
text setPoint( "CENTER", undefined, 1200, 220 );
|
||||
text setPoint( "CENTER", undefined, -1200, 220, 20 );
|
||||
text setpoint( "CENTER", undefined, 1200, 220 );
|
||||
text setpoint( "CENTER", undefined, -1200, 220, 20 );
|
||||
wait 20;
|
||||
}
|
||||
}
|
||||
|
File diff suppressed because it is too large
Load Diff
@ -1,498 +1,498 @@
|
||||
#include common_scripts\utility;
|
||||
#include maps\_utility;
|
||||
#include maps\bots\_bot_utility;
|
||||
|
||||
/*
|
||||
Initialize bot script level functions
|
||||
*/
|
||||
bot_script_init()
|
||||
{
|
||||
level thread maps\bots\objectives\_manager::init();
|
||||
}
|
||||
|
||||
/*
|
||||
When the bot gets added into the game.
|
||||
*/
|
||||
added()
|
||||
{
|
||||
self endon( "disconnect" );
|
||||
|
||||
self set_diff();
|
||||
}
|
||||
|
||||
/*
|
||||
When the bot connects to the game.
|
||||
*/
|
||||
connected()
|
||||
{
|
||||
self endon( "disconnect" );
|
||||
|
||||
self thread difficulty();
|
||||
self thread onBotSpawned();
|
||||
self thread onSpawned();
|
||||
|
||||
self thread maps\bots\objectives\_manager::connected();
|
||||
}
|
||||
|
||||
/*
|
||||
The callback for when the bot gets damaged.
|
||||
*/
|
||||
onDamage( eInflictor, eAttacker, iDamage, iDFlags, sMeansOfDeath, sWeapon, vPoint, vDir, sHitLoc, modelIndex, psOffsetTime )
|
||||
{
|
||||
if ( !IsDefined( self ) || !isDefined( self.team ) )
|
||||
return;
|
||||
|
||||
if ( !isAlive( self ) )
|
||||
return;
|
||||
|
||||
if ( sMeansOfDeath == "MOD_FALLING" || sMeansOfDeath == "MOD_SUICIDE" )
|
||||
return;
|
||||
|
||||
if ( iDamage <= 0 )
|
||||
return;
|
||||
|
||||
if ( !IsDefined( eAttacker ) || !isDefined( eAttacker.team ) )
|
||||
return;
|
||||
|
||||
if ( eAttacker == self )
|
||||
return;
|
||||
|
||||
if ( !isAlive( eAttacker ) )
|
||||
return;
|
||||
|
||||
self SetAttacker( eAttacker );
|
||||
}
|
||||
|
||||
/*
|
||||
Updates the bot's difficulty variables.
|
||||
*/
|
||||
difficulty()
|
||||
{
|
||||
self endon( "disconnect" );
|
||||
|
||||
for ( ;; )
|
||||
{
|
||||
if ( GetDvarInt( "bots_skill" ) != 9 )
|
||||
{
|
||||
switch ( self.pers["bots"]["skill"]["base"] )
|
||||
{
|
||||
case 1:
|
||||
self.pers["bots"]["skill"]["aim_time"] = 0.6;
|
||||
self.pers["bots"]["skill"]["init_react_time"] = 1500;
|
||||
self.pers["bots"]["skill"]["reaction_time"] = 1000;
|
||||
self.pers["bots"]["skill"]["no_trace_ads_time"] = 500;
|
||||
self.pers["bots"]["skill"]["no_trace_look_time"] = 600;
|
||||
self.pers["bots"]["skill"]["remember_time"] = 750;
|
||||
self.pers["bots"]["skill"]["fov"] = 0.7;
|
||||
self.pers["bots"]["skill"]["dist_max"] = 2500;
|
||||
self.pers["bots"]["skill"]["dist_start"] = 1000;
|
||||
self.pers["bots"]["skill"]["spawn_time"] = 0.75;
|
||||
self.pers["bots"]["skill"]["help_dist"] = 0;
|
||||
self.pers["bots"]["skill"]["semi_time"] = 0.9;
|
||||
self.pers["bots"]["skill"]["shoot_after_time"] = 1;
|
||||
self.pers["bots"]["skill"]["aim_offset_time"] = 1.5;
|
||||
self.pers["bots"]["skill"]["aim_offset_amount"] = 4;
|
||||
self.pers["bots"]["skill"]["bone_update_interval"] = 2;
|
||||
self.pers["bots"]["skill"]["bones"] = "j_spineupper,j_ankle_le,j_ankle_ri";
|
||||
self.pers["bots"]["skill"]["ads_fov_multi"] = 0.5;
|
||||
self.pers["bots"]["skill"]["ads_aimspeed_multi"] = 0.5;
|
||||
|
||||
self.pers["bots"]["behavior"]["strafe"] = 0;
|
||||
self.pers["bots"]["behavior"]["nade"] = 10;
|
||||
self.pers["bots"]["behavior"]["sprint"] = 30;
|
||||
self.pers["bots"]["behavior"]["camp"] = 5;
|
||||
self.pers["bots"]["behavior"]["follow"] = 5;
|
||||
self.pers["bots"]["behavior"]["crouch"] = 20;
|
||||
self.pers["bots"]["behavior"]["switch"] = 2;
|
||||
self.pers["bots"]["behavior"]["jump"] = 0;
|
||||
break;
|
||||
|
||||
case 2:
|
||||
self.pers["bots"]["skill"]["aim_time"] = 0.55;
|
||||
self.pers["bots"]["skill"]["init_react_time"] = 1000;
|
||||
self.pers["bots"]["skill"]["reaction_time"] = 800;
|
||||
self.pers["bots"]["skill"]["no_trace_ads_time"] = 1000;
|
||||
self.pers["bots"]["skill"]["no_trace_look_time"] = 1250;
|
||||
self.pers["bots"]["skill"]["remember_time"] = 1500;
|
||||
self.pers["bots"]["skill"]["fov"] = 0.65;
|
||||
self.pers["bots"]["skill"]["dist_max"] = 3000;
|
||||
self.pers["bots"]["skill"]["dist_start"] = 1500;
|
||||
self.pers["bots"]["skill"]["spawn_time"] = 0.65;
|
||||
self.pers["bots"]["skill"]["help_dist"] = 500;
|
||||
self.pers["bots"]["skill"]["semi_time"] = 0.75;
|
||||
self.pers["bots"]["skill"]["shoot_after_time"] = 0.75;
|
||||
self.pers["bots"]["skill"]["aim_offset_time"] = 1;
|
||||
self.pers["bots"]["skill"]["aim_offset_amount"] = 3;
|
||||
self.pers["bots"]["skill"]["bone_update_interval"] = 1.5;
|
||||
self.pers["bots"]["skill"]["bones"] = "j_spineupper,j_ankle_le,j_ankle_ri,j_head";
|
||||
self.pers["bots"]["skill"]["ads_fov_multi"] = 0.5;
|
||||
self.pers["bots"]["skill"]["ads_aimspeed_multi"] = 0.5;
|
||||
|
||||
self.pers["bots"]["behavior"]["strafe"] = 10;
|
||||
self.pers["bots"]["behavior"]["nade"] = 15;
|
||||
self.pers["bots"]["behavior"]["sprint"] = 45;
|
||||
self.pers["bots"]["behavior"]["camp"] = 5;
|
||||
self.pers["bots"]["behavior"]["follow"] = 5;
|
||||
self.pers["bots"]["behavior"]["crouch"] = 15;
|
||||
self.pers["bots"]["behavior"]["switch"] = 2;
|
||||
self.pers["bots"]["behavior"]["jump"] = 10;
|
||||
break;
|
||||
|
||||
case 3:
|
||||
self.pers["bots"]["skill"]["aim_time"] = 0.4;
|
||||
self.pers["bots"]["skill"]["init_react_time"] = 750;
|
||||
self.pers["bots"]["skill"]["reaction_time"] = 500;
|
||||
self.pers["bots"]["skill"]["no_trace_ads_time"] = 1000;
|
||||
self.pers["bots"]["skill"]["no_trace_look_time"] = 1500;
|
||||
self.pers["bots"]["skill"]["remember_time"] = 2000;
|
||||
self.pers["bots"]["skill"]["fov"] = 0.6;
|
||||
self.pers["bots"]["skill"]["dist_max"] = 4000;
|
||||
self.pers["bots"]["skill"]["dist_start"] = 2250;
|
||||
self.pers["bots"]["skill"]["spawn_time"] = 0.5;
|
||||
self.pers["bots"]["skill"]["help_dist"] = 750;
|
||||
self.pers["bots"]["skill"]["semi_time"] = 0.65;
|
||||
self.pers["bots"]["skill"]["shoot_after_time"] = 0.65;
|
||||
self.pers["bots"]["skill"]["aim_offset_time"] = 0.75;
|
||||
self.pers["bots"]["skill"]["aim_offset_amount"] = 2.5;
|
||||
self.pers["bots"]["skill"]["bone_update_interval"] = 1;
|
||||
self.pers["bots"]["skill"]["bones"] = "j_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_aimspeed_multi"] = 0.5;
|
||||
|
||||
self.pers["bots"]["behavior"]["strafe"] = 20;
|
||||
self.pers["bots"]["behavior"]["nade"] = 20;
|
||||
self.pers["bots"]["behavior"]["sprint"] = 50;
|
||||
self.pers["bots"]["behavior"]["camp"] = 5;
|
||||
self.pers["bots"]["behavior"]["follow"] = 5;
|
||||
self.pers["bots"]["behavior"]["crouch"] = 10;
|
||||
self.pers["bots"]["behavior"]["switch"] = 2;
|
||||
self.pers["bots"]["behavior"]["jump"] = 25;
|
||||
break;
|
||||
|
||||
case 4:
|
||||
self.pers["bots"]["skill"]["aim_time"] = 0.3;
|
||||
self.pers["bots"]["skill"]["init_react_time"] = 600;
|
||||
self.pers["bots"]["skill"]["reaction_time"] = 400;
|
||||
self.pers["bots"]["skill"]["no_trace_ads_time"] = 1000;
|
||||
self.pers["bots"]["skill"]["no_trace_look_time"] = 1500;
|
||||
self.pers["bots"]["skill"]["remember_time"] = 3000;
|
||||
self.pers["bots"]["skill"]["fov"] = 0.55;
|
||||
self.pers["bots"]["skill"]["dist_max"] = 5000;
|
||||
self.pers["bots"]["skill"]["dist_start"] = 3350;
|
||||
self.pers["bots"]["skill"]["spawn_time"] = 0.35;
|
||||
self.pers["bots"]["skill"]["help_dist"] = 1000;
|
||||
self.pers["bots"]["skill"]["semi_time"] = 0.5;
|
||||
self.pers["bots"]["skill"]["shoot_after_time"] = 0.5;
|
||||
self.pers["bots"]["skill"]["aim_offset_time"] = 0.5;
|
||||
self.pers["bots"]["skill"]["aim_offset_amount"] = 2;
|
||||
self.pers["bots"]["skill"]["bone_update_interval"] = 0.75;
|
||||
self.pers["bots"]["skill"]["bones"] = "j_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_aimspeed_multi"] = 0.5;
|
||||
|
||||
self.pers["bots"]["behavior"]["strafe"] = 30;
|
||||
self.pers["bots"]["behavior"]["nade"] = 25;
|
||||
self.pers["bots"]["behavior"]["sprint"] = 55;
|
||||
self.pers["bots"]["behavior"]["camp"] = 5;
|
||||
self.pers["bots"]["behavior"]["follow"] = 5;
|
||||
self.pers["bots"]["behavior"]["crouch"] = 10;
|
||||
self.pers["bots"]["behavior"]["switch"] = 2;
|
||||
self.pers["bots"]["behavior"]["jump"] = 35;
|
||||
break;
|
||||
|
||||
case 5:
|
||||
self.pers["bots"]["skill"]["aim_time"] = 0.25;
|
||||
self.pers["bots"]["skill"]["init_react_time"] = 500;
|
||||
self.pers["bots"]["skill"]["reaction_time"] = 300;
|
||||
self.pers["bots"]["skill"]["no_trace_ads_time"] = 1500;
|
||||
self.pers["bots"]["skill"]["no_trace_look_time"] = 2000;
|
||||
self.pers["bots"]["skill"]["remember_time"] = 4000;
|
||||
self.pers["bots"]["skill"]["fov"] = 0.5;
|
||||
self.pers["bots"]["skill"]["dist_max"] = 7500;
|
||||
self.pers["bots"]["skill"]["dist_start"] = 5000;
|
||||
self.pers["bots"]["skill"]["spawn_time"] = 0.25;
|
||||
self.pers["bots"]["skill"]["help_dist"] = 1500;
|
||||
self.pers["bots"]["skill"]["semi_time"] = 0.4;
|
||||
self.pers["bots"]["skill"]["shoot_after_time"] = 0.35;
|
||||
self.pers["bots"]["skill"]["aim_offset_time"] = 0.35;
|
||||
self.pers["bots"]["skill"]["aim_offset_amount"] = 1.5;
|
||||
self.pers["bots"]["skill"]["bone_update_interval"] = 0.5;
|
||||
self.pers["bots"]["skill"]["bones"] = "j_spineupper,j_head";
|
||||
self.pers["bots"]["skill"]["ads_fov_multi"] = 0.5;
|
||||
self.pers["bots"]["skill"]["ads_aimspeed_multi"] = 0.5;
|
||||
|
||||
self.pers["bots"]["behavior"]["strafe"] = 40;
|
||||
self.pers["bots"]["behavior"]["nade"] = 35;
|
||||
self.pers["bots"]["behavior"]["sprint"] = 60;
|
||||
self.pers["bots"]["behavior"]["camp"] = 5;
|
||||
self.pers["bots"]["behavior"]["follow"] = 5;
|
||||
self.pers["bots"]["behavior"]["crouch"] = 10;
|
||||
self.pers["bots"]["behavior"]["switch"] = 2;
|
||||
self.pers["bots"]["behavior"]["jump"] = 50;
|
||||
break;
|
||||
|
||||
case 6:
|
||||
self.pers["bots"]["skill"]["aim_time"] = 0.2;
|
||||
self.pers["bots"]["skill"]["init_react_time"] = 250;
|
||||
self.pers["bots"]["skill"]["reaction_time"] = 150;
|
||||
self.pers["bots"]["skill"]["no_trace_ads_time"] = 2000;
|
||||
self.pers["bots"]["skill"]["no_trace_look_time"] = 3000;
|
||||
self.pers["bots"]["skill"]["remember_time"] = 5000;
|
||||
self.pers["bots"]["skill"]["fov"] = 0.45;
|
||||
self.pers["bots"]["skill"]["dist_max"] = 10000;
|
||||
self.pers["bots"]["skill"]["dist_start"] = 7500;
|
||||
self.pers["bots"]["skill"]["spawn_time"] = 0.2;
|
||||
self.pers["bots"]["skill"]["help_dist"] = 2000;
|
||||
self.pers["bots"]["skill"]["semi_time"] = 0.25;
|
||||
self.pers["bots"]["skill"]["shoot_after_time"] = 0.25;
|
||||
self.pers["bots"]["skill"]["aim_offset_time"] = 0.25;
|
||||
self.pers["bots"]["skill"]["aim_offset_amount"] = 1;
|
||||
self.pers["bots"]["skill"]["bone_update_interval"] = 0.25;
|
||||
self.pers["bots"]["skill"]["bones"] = "j_spineupper,j_head,j_head";
|
||||
self.pers["bots"]["skill"]["ads_fov_multi"] = 0.5;
|
||||
self.pers["bots"]["skill"]["ads_aimspeed_multi"] = 0.5;
|
||||
|
||||
self.pers["bots"]["behavior"]["strafe"] = 50;
|
||||
self.pers["bots"]["behavior"]["nade"] = 45;
|
||||
self.pers["bots"]["behavior"]["sprint"] = 65;
|
||||
self.pers["bots"]["behavior"]["camp"] = 5;
|
||||
self.pers["bots"]["behavior"]["follow"] = 5;
|
||||
self.pers["bots"]["behavior"]["crouch"] = 10;
|
||||
self.pers["bots"]["behavior"]["switch"] = 2;
|
||||
self.pers["bots"]["behavior"]["jump"] = 75;
|
||||
break;
|
||||
|
||||
case 7:
|
||||
self.pers["bots"]["skill"]["aim_time"] = 0.1;
|
||||
self.pers["bots"]["skill"]["init_react_time"] = 100;
|
||||
self.pers["bots"]["skill"]["reaction_time"] = 50;
|
||||
self.pers["bots"]["skill"]["no_trace_ads_time"] = 2500;
|
||||
self.pers["bots"]["skill"]["no_trace_look_time"] = 4000;
|
||||
self.pers["bots"]["skill"]["remember_time"] = 7500;
|
||||
self.pers["bots"]["skill"]["fov"] = 0.4;
|
||||
self.pers["bots"]["skill"]["dist_max"] = 15000;
|
||||
self.pers["bots"]["skill"]["dist_start"] = 10000;
|
||||
self.pers["bots"]["skill"]["spawn_time"] = 0.05;
|
||||
self.pers["bots"]["skill"]["help_dist"] = 3000;
|
||||
self.pers["bots"]["skill"]["semi_time"] = 0.1;
|
||||
self.pers["bots"]["skill"]["shoot_after_time"] = 0;
|
||||
self.pers["bots"]["skill"]["aim_offset_time"] = 0;
|
||||
self.pers["bots"]["skill"]["aim_offset_amount"] = 0;
|
||||
self.pers["bots"]["skill"]["bone_update_interval"] = 0.05;
|
||||
self.pers["bots"]["skill"]["bones"] = "j_head";
|
||||
self.pers["bots"]["skill"]["ads_fov_multi"] = 0.5;
|
||||
self.pers["bots"]["skill"]["ads_aimspeed_multi"] = 0.5;
|
||||
|
||||
self.pers["bots"]["behavior"]["strafe"] = 65;
|
||||
self.pers["bots"]["behavior"]["nade"] = 65;
|
||||
self.pers["bots"]["behavior"]["sprint"] = 70;
|
||||
self.pers["bots"]["behavior"]["camp"] = 5;
|
||||
self.pers["bots"]["behavior"]["follow"] = 5;
|
||||
self.pers["bots"]["behavior"]["crouch"] = 5;
|
||||
self.pers["bots"]["behavior"]["switch"] = 2;
|
||||
self.pers["bots"]["behavior"]["jump"] = 90;
|
||||
break;
|
||||
}
|
||||
}
|
||||
|
||||
wait 5;
|
||||
}
|
||||
}
|
||||
|
||||
/*
|
||||
Sets the bot difficulty.
|
||||
*/
|
||||
set_diff()
|
||||
{
|
||||
rankVar = GetDvarInt( "bots_skill" );
|
||||
|
||||
switch ( rankVar )
|
||||
{
|
||||
case 0:
|
||||
self.pers["bots"]["skill"]["base"] = Round( random_normal_distribution( 3.5, 1.75, 1, 7 ) );
|
||||
break;
|
||||
|
||||
case 8:
|
||||
break;
|
||||
|
||||
case 9:
|
||||
self.pers["bots"]["skill"]["base"] = randomIntRange( 1, 7 );
|
||||
self.pers["bots"]["skill"]["aim_time"] = 0.05 * randomIntRange( 1, 20 );
|
||||
self.pers["bots"]["skill"]["init_react_time"] = 50 * randomInt( 100 );
|
||||
self.pers["bots"]["skill"]["reaction_time"] = 50 * randomInt( 100 );
|
||||
self.pers["bots"]["skill"]["no_trace_ads_time"] = 50 * randomInt( 100 );
|
||||
self.pers["bots"]["skill"]["no_trace_look_time"] = 50 * randomInt( 100 );
|
||||
self.pers["bots"]["skill"]["remember_time"] = 50 * randomInt( 100 );
|
||||
self.pers["bots"]["skill"]["fov"] = randomFloatRange( -1, 1 );
|
||||
|
||||
randomNum = randomIntRange( 500, 25000 );
|
||||
self.pers["bots"]["skill"]["dist_start"] = randomNum;
|
||||
self.pers["bots"]["skill"]["dist_max"] = randomNum * 2;
|
||||
|
||||
self.pers["bots"]["skill"]["spawn_time"] = 0.05 * randomInt( 20 );
|
||||
self.pers["bots"]["skill"]["help_dist"] = randomIntRange( 500, 25000 );
|
||||
self.pers["bots"]["skill"]["semi_time"] = randomFloatRange( 0.05, 1 );
|
||||
self.pers["bots"]["skill"]["shoot_after_time"] = randomFloatRange( 0.05, 1 );
|
||||
self.pers["bots"]["skill"]["aim_offset_time"] = randomFloatRange( 0.05, 1 );
|
||||
self.pers["bots"]["skill"]["aim_offset_amount"] = randomFloatRange( 0.05, 1 );
|
||||
self.pers["bots"]["skill"]["bone_update_interval"] = randomFloatRange( 0.05, 1 );
|
||||
self.pers["bots"]["skill"]["bones"] = "j_head,j_spineupper,j_ankle_ri,j_ankle_le";
|
||||
|
||||
self.pers["bots"]["behavior"]["strafe"] = randomInt( 100 );
|
||||
self.pers["bots"]["behavior"]["nade"] = randomInt( 100 );
|
||||
self.pers["bots"]["behavior"]["sprint"] = randomInt( 100 );
|
||||
self.pers["bots"]["behavior"]["camp"] = randomInt( 100 );
|
||||
self.pers["bots"]["behavior"]["follow"] = randomInt( 100 );
|
||||
self.pers["bots"]["behavior"]["crouch"] = randomInt( 100 );
|
||||
self.pers["bots"]["behavior"]["switch"] = randomInt( 100 );
|
||||
self.pers["bots"]["behavior"]["jump"] = randomInt( 100 );
|
||||
break;
|
||||
|
||||
default:
|
||||
self.pers["bots"]["skill"]["base"] = rankVar;
|
||||
break;
|
||||
}
|
||||
}
|
||||
|
||||
/*
|
||||
When the bot spawned, after the difficulty wait. Start the logic for the bot.
|
||||
*/
|
||||
onBotSpawned()
|
||||
{
|
||||
self endon( "disconnect" );
|
||||
level endon( "intermission" );
|
||||
|
||||
for ( ;; )
|
||||
{
|
||||
self waittill( "bot_spawned" );
|
||||
|
||||
self thread start_bot_threads();
|
||||
}
|
||||
}
|
||||
|
||||
/*
|
||||
When the bot spawns.
|
||||
*/
|
||||
onSpawned()
|
||||
{
|
||||
self endon( "disconnect" );
|
||||
|
||||
for ( ;; )
|
||||
{
|
||||
self waittill( "spawned_player" );
|
||||
|
||||
self thread maps\bots\objectives\_manager::spawned();
|
||||
}
|
||||
}
|
||||
|
||||
/*
|
||||
Starts all the bot thinking
|
||||
*/
|
||||
start_bot_threads()
|
||||
{
|
||||
self endon( "disconnect" );
|
||||
level endon( "intermission" );
|
||||
self endon( "zombified" );
|
||||
|
||||
self thread doReloadCancel();
|
||||
|
||||
self thread maps\bots\objectives\_manager::start_bot_threads();
|
||||
}
|
||||
|
||||
/*
|
||||
Changes to the weap
|
||||
*/
|
||||
changeToWeapon( weap )
|
||||
{
|
||||
self endon( "disconnect" );
|
||||
self endon( "zombified" );
|
||||
level endon( "game_ended" );
|
||||
|
||||
if ( !self HasWeapon( weap ) )
|
||||
return false;
|
||||
|
||||
self switchToWeapon( weap );
|
||||
|
||||
if ( self GetCurrentWeapon() == weap )
|
||||
return true;
|
||||
|
||||
self waittill_any_timeout( 5, "weapon_change" );
|
||||
|
||||
return ( self GetCurrentWeapon() == weap );
|
||||
}
|
||||
|
||||
/*
|
||||
Reload cancels
|
||||
*/
|
||||
doReloadCancel_loop()
|
||||
{
|
||||
ret = self waittill_any_return( "reload", "weapon_change" );
|
||||
|
||||
if ( self BotIsFrozen() )
|
||||
return;
|
||||
|
||||
if ( self useButtonPressed() )
|
||||
return;
|
||||
|
||||
if ( self InLastStand() )
|
||||
return;
|
||||
|
||||
curWeap = self GetCurrentWeapon();
|
||||
|
||||
if ( !self isWeaponPrimary( curWeap ) )
|
||||
return;
|
||||
|
||||
if ( ret == "reload" )
|
||||
{
|
||||
// check single reloads
|
||||
if ( self GetWeaponAmmoClip( curWeap ) < WeaponClipSize( curWeap ) )
|
||||
return;
|
||||
}
|
||||
|
||||
// check difficulty
|
||||
if ( self.pers["bots"]["skill"]["base"] <= 3 )
|
||||
return;
|
||||
|
||||
// check if got another weapon
|
||||
weaponslist = self GetWeaponsListPrimaries();
|
||||
weap = "";
|
||||
|
||||
while ( weaponslist.size )
|
||||
{
|
||||
weapon = weaponslist[randomInt( weaponslist.size )];
|
||||
weaponslist = array_remove( weaponslist, weapon );
|
||||
|
||||
if ( !self isWeaponPrimary( weapon ) )
|
||||
continue;
|
||||
|
||||
if ( curWeap == weapon || weapon == "none" || weapon == "" )
|
||||
continue;
|
||||
|
||||
weap = weapon;
|
||||
break;
|
||||
}
|
||||
|
||||
if ( weap == "" )
|
||||
return;
|
||||
|
||||
// do the cancel
|
||||
wait 0.1;
|
||||
self thread ChangeToWeapon( weap );
|
||||
wait 0.25;
|
||||
self thread ChangeToWeapon( curWeap );
|
||||
wait 2;
|
||||
}
|
||||
|
||||
/*
|
||||
Reload cancels
|
||||
*/
|
||||
doReloadCancel()
|
||||
{
|
||||
self endon( "disconnect" );
|
||||
self endon( "zombified" );
|
||||
|
||||
for ( ;; )
|
||||
{
|
||||
self doReloadCancel_loop();
|
||||
}
|
||||
}
|
||||
#include common_scripts\utility;
|
||||
#include maps\_utility;
|
||||
#include maps\bots\_bot_utility;
|
||||
|
||||
/*
|
||||
Initialize bot script level functions
|
||||
*/
|
||||
bot_script_init()
|
||||
{
|
||||
level thread maps\bots\objectives\_manager::init();
|
||||
}
|
||||
|
||||
/*
|
||||
When the bot gets added into the game.
|
||||
*/
|
||||
added()
|
||||
{
|
||||
self endon( "disconnect" );
|
||||
|
||||
self set_diff();
|
||||
}
|
||||
|
||||
/*
|
||||
When the bot connects to the game.
|
||||
*/
|
||||
connected()
|
||||
{
|
||||
self endon( "disconnect" );
|
||||
|
||||
self thread difficulty();
|
||||
self thread onBotSpawned();
|
||||
self thread onSpawned();
|
||||
|
||||
self thread maps\bots\objectives\_manager::connected();
|
||||
}
|
||||
|
||||
/*
|
||||
The callback for when the bot gets damaged.
|
||||
*/
|
||||
onDamage( eInflictor, eAttacker, iDamage, iDFlags, sMeansOfDeath, sWeapon, vPoint, vDir, sHitLoc, modelIndex, psOffsetTime )
|
||||
{
|
||||
if ( !isdefined( self ) || !isdefined( self.team ) )
|
||||
return;
|
||||
|
||||
if ( !isalive( self ) )
|
||||
return;
|
||||
|
||||
if ( sMeansOfDeath == "MOD_FALLING" || sMeansOfDeath == "MOD_SUICIDE" )
|
||||
return;
|
||||
|
||||
if ( iDamage <= 0 )
|
||||
return;
|
||||
|
||||
if ( !isdefined( eAttacker ) || !isdefined( eAttacker.team ) )
|
||||
return;
|
||||
|
||||
if ( eAttacker == self )
|
||||
return;
|
||||
|
||||
if ( !isalive( eAttacker ) )
|
||||
return;
|
||||
|
||||
self SetAttacker( eAttacker );
|
||||
}
|
||||
|
||||
/*
|
||||
Updates the bot's difficulty variables.
|
||||
*/
|
||||
difficulty()
|
||||
{
|
||||
self endon( "disconnect" );
|
||||
|
||||
for ( ;; )
|
||||
{
|
||||
if ( getdvarint( "bots_skill" ) != 9 )
|
||||
{
|
||||
switch ( self.pers["bots"]["skill"]["base"] )
|
||||
{
|
||||
case 1:
|
||||
self.pers["bots"]["skill"]["aim_time"] = 0.6;
|
||||
self.pers["bots"]["skill"]["init_react_time"] = 1500;
|
||||
self.pers["bots"]["skill"]["reaction_time"] = 1000;
|
||||
self.pers["bots"]["skill"]["no_trace_ads_time"] = 500;
|
||||
self.pers["bots"]["skill"]["no_trace_look_time"] = 600;
|
||||
self.pers["bots"]["skill"]["remember_time"] = 750;
|
||||
self.pers["bots"]["skill"]["fov"] = 0.7;
|
||||
self.pers["bots"]["skill"]["dist_max"] = 2500;
|
||||
self.pers["bots"]["skill"]["dist_start"] = 1000;
|
||||
self.pers["bots"]["skill"]["spawn_time"] = 0.75;
|
||||
self.pers["bots"]["skill"]["help_dist"] = 0;
|
||||
self.pers["bots"]["skill"]["semi_time"] = 0.9;
|
||||
self.pers["bots"]["skill"]["shoot_after_time"] = 1;
|
||||
self.pers["bots"]["skill"]["aim_offset_time"] = 1.5;
|
||||
self.pers["bots"]["skill"]["aim_offset_amount"] = 4;
|
||||
self.pers["bots"]["skill"]["bone_update_interval"] = 2;
|
||||
self.pers["bots"]["skill"]["bones"] = "j_spineupper,j_ankle_le,j_ankle_ri";
|
||||
self.pers["bots"]["skill"]["ads_fov_multi"] = 0.5;
|
||||
self.pers["bots"]["skill"]["ads_aimspeed_multi"] = 0.5;
|
||||
|
||||
self.pers["bots"]["behavior"]["strafe"] = 0;
|
||||
self.pers["bots"]["behavior"]["nade"] = 10;
|
||||
self.pers["bots"]["behavior"]["sprint"] = 30;
|
||||
self.pers["bots"]["behavior"]["camp"] = 5;
|
||||
self.pers["bots"]["behavior"]["follow"] = 5;
|
||||
self.pers["bots"]["behavior"]["crouch"] = 20;
|
||||
self.pers["bots"]["behavior"]["switch"] = 2;
|
||||
self.pers["bots"]["behavior"]["jump"] = 0;
|
||||
break;
|
||||
|
||||
case 2:
|
||||
self.pers["bots"]["skill"]["aim_time"] = 0.55;
|
||||
self.pers["bots"]["skill"]["init_react_time"] = 1000;
|
||||
self.pers["bots"]["skill"]["reaction_time"] = 800;
|
||||
self.pers["bots"]["skill"]["no_trace_ads_time"] = 1000;
|
||||
self.pers["bots"]["skill"]["no_trace_look_time"] = 1250;
|
||||
self.pers["bots"]["skill"]["remember_time"] = 1500;
|
||||
self.pers["bots"]["skill"]["fov"] = 0.65;
|
||||
self.pers["bots"]["skill"]["dist_max"] = 3000;
|
||||
self.pers["bots"]["skill"]["dist_start"] = 1500;
|
||||
self.pers["bots"]["skill"]["spawn_time"] = 0.65;
|
||||
self.pers["bots"]["skill"]["help_dist"] = 500;
|
||||
self.pers["bots"]["skill"]["semi_time"] = 0.75;
|
||||
self.pers["bots"]["skill"]["shoot_after_time"] = 0.75;
|
||||
self.pers["bots"]["skill"]["aim_offset_time"] = 1;
|
||||
self.pers["bots"]["skill"]["aim_offset_amount"] = 3;
|
||||
self.pers["bots"]["skill"]["bone_update_interval"] = 1.5;
|
||||
self.pers["bots"]["skill"]["bones"] = "j_spineupper,j_ankle_le,j_ankle_ri,j_head";
|
||||
self.pers["bots"]["skill"]["ads_fov_multi"] = 0.5;
|
||||
self.pers["bots"]["skill"]["ads_aimspeed_multi"] = 0.5;
|
||||
|
||||
self.pers["bots"]["behavior"]["strafe"] = 10;
|
||||
self.pers["bots"]["behavior"]["nade"] = 15;
|
||||
self.pers["bots"]["behavior"]["sprint"] = 45;
|
||||
self.pers["bots"]["behavior"]["camp"] = 5;
|
||||
self.pers["bots"]["behavior"]["follow"] = 5;
|
||||
self.pers["bots"]["behavior"]["crouch"] = 15;
|
||||
self.pers["bots"]["behavior"]["switch"] = 2;
|
||||
self.pers["bots"]["behavior"]["jump"] = 10;
|
||||
break;
|
||||
|
||||
case 3:
|
||||
self.pers["bots"]["skill"]["aim_time"] = 0.4;
|
||||
self.pers["bots"]["skill"]["init_react_time"] = 750;
|
||||
self.pers["bots"]["skill"]["reaction_time"] = 500;
|
||||
self.pers["bots"]["skill"]["no_trace_ads_time"] = 1000;
|
||||
self.pers["bots"]["skill"]["no_trace_look_time"] = 1500;
|
||||
self.pers["bots"]["skill"]["remember_time"] = 2000;
|
||||
self.pers["bots"]["skill"]["fov"] = 0.6;
|
||||
self.pers["bots"]["skill"]["dist_max"] = 4000;
|
||||
self.pers["bots"]["skill"]["dist_start"] = 2250;
|
||||
self.pers["bots"]["skill"]["spawn_time"] = 0.5;
|
||||
self.pers["bots"]["skill"]["help_dist"] = 750;
|
||||
self.pers["bots"]["skill"]["semi_time"] = 0.65;
|
||||
self.pers["bots"]["skill"]["shoot_after_time"] = 0.65;
|
||||
self.pers["bots"]["skill"]["aim_offset_time"] = 0.75;
|
||||
self.pers["bots"]["skill"]["aim_offset_amount"] = 2.5;
|
||||
self.pers["bots"]["skill"]["bone_update_interval"] = 1;
|
||||
self.pers["bots"]["skill"]["bones"] = "j_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_aimspeed_multi"] = 0.5;
|
||||
|
||||
self.pers["bots"]["behavior"]["strafe"] = 20;
|
||||
self.pers["bots"]["behavior"]["nade"] = 20;
|
||||
self.pers["bots"]["behavior"]["sprint"] = 50;
|
||||
self.pers["bots"]["behavior"]["camp"] = 5;
|
||||
self.pers["bots"]["behavior"]["follow"] = 5;
|
||||
self.pers["bots"]["behavior"]["crouch"] = 10;
|
||||
self.pers["bots"]["behavior"]["switch"] = 2;
|
||||
self.pers["bots"]["behavior"]["jump"] = 25;
|
||||
break;
|
||||
|
||||
case 4:
|
||||
self.pers["bots"]["skill"]["aim_time"] = 0.3;
|
||||
self.pers["bots"]["skill"]["init_react_time"] = 600;
|
||||
self.pers["bots"]["skill"]["reaction_time"] = 400;
|
||||
self.pers["bots"]["skill"]["no_trace_ads_time"] = 1000;
|
||||
self.pers["bots"]["skill"]["no_trace_look_time"] = 1500;
|
||||
self.pers["bots"]["skill"]["remember_time"] = 3000;
|
||||
self.pers["bots"]["skill"]["fov"] = 0.55;
|
||||
self.pers["bots"]["skill"]["dist_max"] = 5000;
|
||||
self.pers["bots"]["skill"]["dist_start"] = 3350;
|
||||
self.pers["bots"]["skill"]["spawn_time"] = 0.35;
|
||||
self.pers["bots"]["skill"]["help_dist"] = 1000;
|
||||
self.pers["bots"]["skill"]["semi_time"] = 0.5;
|
||||
self.pers["bots"]["skill"]["shoot_after_time"] = 0.5;
|
||||
self.pers["bots"]["skill"]["aim_offset_time"] = 0.5;
|
||||
self.pers["bots"]["skill"]["aim_offset_amount"] = 2;
|
||||
self.pers["bots"]["skill"]["bone_update_interval"] = 0.75;
|
||||
self.pers["bots"]["skill"]["bones"] = "j_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_aimspeed_multi"] = 0.5;
|
||||
|
||||
self.pers["bots"]["behavior"]["strafe"] = 30;
|
||||
self.pers["bots"]["behavior"]["nade"] = 25;
|
||||
self.pers["bots"]["behavior"]["sprint"] = 55;
|
||||
self.pers["bots"]["behavior"]["camp"] = 5;
|
||||
self.pers["bots"]["behavior"]["follow"] = 5;
|
||||
self.pers["bots"]["behavior"]["crouch"] = 10;
|
||||
self.pers["bots"]["behavior"]["switch"] = 2;
|
||||
self.pers["bots"]["behavior"]["jump"] = 35;
|
||||
break;
|
||||
|
||||
case 5:
|
||||
self.pers["bots"]["skill"]["aim_time"] = 0.25;
|
||||
self.pers["bots"]["skill"]["init_react_time"] = 500;
|
||||
self.pers["bots"]["skill"]["reaction_time"] = 300;
|
||||
self.pers["bots"]["skill"]["no_trace_ads_time"] = 1500;
|
||||
self.pers["bots"]["skill"]["no_trace_look_time"] = 2000;
|
||||
self.pers["bots"]["skill"]["remember_time"] = 4000;
|
||||
self.pers["bots"]["skill"]["fov"] = 0.5;
|
||||
self.pers["bots"]["skill"]["dist_max"] = 7500;
|
||||
self.pers["bots"]["skill"]["dist_start"] = 5000;
|
||||
self.pers["bots"]["skill"]["spawn_time"] = 0.25;
|
||||
self.pers["bots"]["skill"]["help_dist"] = 1500;
|
||||
self.pers["bots"]["skill"]["semi_time"] = 0.4;
|
||||
self.pers["bots"]["skill"]["shoot_after_time"] = 0.35;
|
||||
self.pers["bots"]["skill"]["aim_offset_time"] = 0.35;
|
||||
self.pers["bots"]["skill"]["aim_offset_amount"] = 1.5;
|
||||
self.pers["bots"]["skill"]["bone_update_interval"] = 0.5;
|
||||
self.pers["bots"]["skill"]["bones"] = "j_spineupper,j_head";
|
||||
self.pers["bots"]["skill"]["ads_fov_multi"] = 0.5;
|
||||
self.pers["bots"]["skill"]["ads_aimspeed_multi"] = 0.5;
|
||||
|
||||
self.pers["bots"]["behavior"]["strafe"] = 40;
|
||||
self.pers["bots"]["behavior"]["nade"] = 35;
|
||||
self.pers["bots"]["behavior"]["sprint"] = 60;
|
||||
self.pers["bots"]["behavior"]["camp"] = 5;
|
||||
self.pers["bots"]["behavior"]["follow"] = 5;
|
||||
self.pers["bots"]["behavior"]["crouch"] = 10;
|
||||
self.pers["bots"]["behavior"]["switch"] = 2;
|
||||
self.pers["bots"]["behavior"]["jump"] = 50;
|
||||
break;
|
||||
|
||||
case 6:
|
||||
self.pers["bots"]["skill"]["aim_time"] = 0.2;
|
||||
self.pers["bots"]["skill"]["init_react_time"] = 250;
|
||||
self.pers["bots"]["skill"]["reaction_time"] = 150;
|
||||
self.pers["bots"]["skill"]["no_trace_ads_time"] = 2000;
|
||||
self.pers["bots"]["skill"]["no_trace_look_time"] = 3000;
|
||||
self.pers["bots"]["skill"]["remember_time"] = 5000;
|
||||
self.pers["bots"]["skill"]["fov"] = 0.45;
|
||||
self.pers["bots"]["skill"]["dist_max"] = 10000;
|
||||
self.pers["bots"]["skill"]["dist_start"] = 7500;
|
||||
self.pers["bots"]["skill"]["spawn_time"] = 0.2;
|
||||
self.pers["bots"]["skill"]["help_dist"] = 2000;
|
||||
self.pers["bots"]["skill"]["semi_time"] = 0.25;
|
||||
self.pers["bots"]["skill"]["shoot_after_time"] = 0.25;
|
||||
self.pers["bots"]["skill"]["aim_offset_time"] = 0.25;
|
||||
self.pers["bots"]["skill"]["aim_offset_amount"] = 1;
|
||||
self.pers["bots"]["skill"]["bone_update_interval"] = 0.25;
|
||||
self.pers["bots"]["skill"]["bones"] = "j_spineupper,j_head,j_head";
|
||||
self.pers["bots"]["skill"]["ads_fov_multi"] = 0.5;
|
||||
self.pers["bots"]["skill"]["ads_aimspeed_multi"] = 0.5;
|
||||
|
||||
self.pers["bots"]["behavior"]["strafe"] = 50;
|
||||
self.pers["bots"]["behavior"]["nade"] = 45;
|
||||
self.pers["bots"]["behavior"]["sprint"] = 65;
|
||||
self.pers["bots"]["behavior"]["camp"] = 5;
|
||||
self.pers["bots"]["behavior"]["follow"] = 5;
|
||||
self.pers["bots"]["behavior"]["crouch"] = 10;
|
||||
self.pers["bots"]["behavior"]["switch"] = 2;
|
||||
self.pers["bots"]["behavior"]["jump"] = 75;
|
||||
break;
|
||||
|
||||
case 7:
|
||||
self.pers["bots"]["skill"]["aim_time"] = 0.1;
|
||||
self.pers["bots"]["skill"]["init_react_time"] = 100;
|
||||
self.pers["bots"]["skill"]["reaction_time"] = 50;
|
||||
self.pers["bots"]["skill"]["no_trace_ads_time"] = 2500;
|
||||
self.pers["bots"]["skill"]["no_trace_look_time"] = 4000;
|
||||
self.pers["bots"]["skill"]["remember_time"] = 7500;
|
||||
self.pers["bots"]["skill"]["fov"] = 0.4;
|
||||
self.pers["bots"]["skill"]["dist_max"] = 15000;
|
||||
self.pers["bots"]["skill"]["dist_start"] = 10000;
|
||||
self.pers["bots"]["skill"]["spawn_time"] = 0.05;
|
||||
self.pers["bots"]["skill"]["help_dist"] = 3000;
|
||||
self.pers["bots"]["skill"]["semi_time"] = 0.1;
|
||||
self.pers["bots"]["skill"]["shoot_after_time"] = 0;
|
||||
self.pers["bots"]["skill"]["aim_offset_time"] = 0;
|
||||
self.pers["bots"]["skill"]["aim_offset_amount"] = 0;
|
||||
self.pers["bots"]["skill"]["bone_update_interval"] = 0.05;
|
||||
self.pers["bots"]["skill"]["bones"] = "j_head";
|
||||
self.pers["bots"]["skill"]["ads_fov_multi"] = 0.5;
|
||||
self.pers["bots"]["skill"]["ads_aimspeed_multi"] = 0.5;
|
||||
|
||||
self.pers["bots"]["behavior"]["strafe"] = 65;
|
||||
self.pers["bots"]["behavior"]["nade"] = 65;
|
||||
self.pers["bots"]["behavior"]["sprint"] = 70;
|
||||
self.pers["bots"]["behavior"]["camp"] = 5;
|
||||
self.pers["bots"]["behavior"]["follow"] = 5;
|
||||
self.pers["bots"]["behavior"]["crouch"] = 5;
|
||||
self.pers["bots"]["behavior"]["switch"] = 2;
|
||||
self.pers["bots"]["behavior"]["jump"] = 90;
|
||||
break;
|
||||
}
|
||||
}
|
||||
|
||||
wait 5;
|
||||
}
|
||||
}
|
||||
|
||||
/*
|
||||
Sets the bot difficulty.
|
||||
*/
|
||||
set_diff()
|
||||
{
|
||||
rankVar = getdvarint( "bots_skill" );
|
||||
|
||||
switch ( rankVar )
|
||||
{
|
||||
case 0:
|
||||
self.pers["bots"]["skill"]["base"] = Round( random_normal_distribution( 3.5, 1.75, 1, 7 ) );
|
||||
break;
|
||||
|
||||
case 8:
|
||||
break;
|
||||
|
||||
case 9:
|
||||
self.pers["bots"]["skill"]["base"] = randomintrange( 1, 7 );
|
||||
self.pers["bots"]["skill"]["aim_time"] = 0.05 * randomintrange( 1, 20 );
|
||||
self.pers["bots"]["skill"]["init_react_time"] = 50 * randomint( 100 );
|
||||
self.pers["bots"]["skill"]["reaction_time"] = 50 * randomint( 100 );
|
||||
self.pers["bots"]["skill"]["no_trace_ads_time"] = 50 * randomint( 100 );
|
||||
self.pers["bots"]["skill"]["no_trace_look_time"] = 50 * randomint( 100 );
|
||||
self.pers["bots"]["skill"]["remember_time"] = 50 * randomint( 100 );
|
||||
self.pers["bots"]["skill"]["fov"] = randomfloatrange( -1, 1 );
|
||||
|
||||
randomNum = randomintrange( 500, 25000 );
|
||||
self.pers["bots"]["skill"]["dist_start"] = randomNum;
|
||||
self.pers["bots"]["skill"]["dist_max"] = randomNum * 2;
|
||||
|
||||
self.pers["bots"]["skill"]["spawn_time"] = 0.05 * randomint( 20 );
|
||||
self.pers["bots"]["skill"]["help_dist"] = randomintrange( 500, 25000 );
|
||||
self.pers["bots"]["skill"]["semi_time"] = randomfloatrange( 0.05, 1 );
|
||||
self.pers["bots"]["skill"]["shoot_after_time"] = randomfloatrange( 0.05, 1 );
|
||||
self.pers["bots"]["skill"]["aim_offset_time"] = randomfloatrange( 0.05, 1 );
|
||||
self.pers["bots"]["skill"]["aim_offset_amount"] = randomfloatrange( 0.05, 1 );
|
||||
self.pers["bots"]["skill"]["bone_update_interval"] = randomfloatrange( 0.05, 1 );
|
||||
self.pers["bots"]["skill"]["bones"] = "j_head,j_spineupper,j_ankle_ri,j_ankle_le";
|
||||
|
||||
self.pers["bots"]["behavior"]["strafe"] = randomint( 100 );
|
||||
self.pers["bots"]["behavior"]["nade"] = randomint( 100 );
|
||||
self.pers["bots"]["behavior"]["sprint"] = randomint( 100 );
|
||||
self.pers["bots"]["behavior"]["camp"] = randomint( 100 );
|
||||
self.pers["bots"]["behavior"]["follow"] = randomint( 100 );
|
||||
self.pers["bots"]["behavior"]["crouch"] = randomint( 100 );
|
||||
self.pers["bots"]["behavior"]["switch"] = randomint( 100 );
|
||||
self.pers["bots"]["behavior"]["jump"] = randomint( 100 );
|
||||
break;
|
||||
|
||||
default:
|
||||
self.pers["bots"]["skill"]["base"] = rankVar;
|
||||
break;
|
||||
}
|
||||
}
|
||||
|
||||
/*
|
||||
When the bot spawned, after the difficulty wait. Start the logic for the bot.
|
||||
*/
|
||||
onBotSpawned()
|
||||
{
|
||||
self endon( "disconnect" );
|
||||
level endon( "intermission" );
|
||||
|
||||
for ( ;; )
|
||||
{
|
||||
self waittill( "bot_spawned" );
|
||||
|
||||
self thread start_bot_threads();
|
||||
}
|
||||
}
|
||||
|
||||
/*
|
||||
When the bot spawns.
|
||||
*/
|
||||
onSpawned()
|
||||
{
|
||||
self endon( "disconnect" );
|
||||
|
||||
for ( ;; )
|
||||
{
|
||||
self waittill( "spawned_player" );
|
||||
|
||||
self thread maps\bots\objectives\_manager::spawned();
|
||||
}
|
||||
}
|
||||
|
||||
/*
|
||||
Starts all the bot thinking
|
||||
*/
|
||||
start_bot_threads()
|
||||
{
|
||||
self endon( "disconnect" );
|
||||
level endon( "intermission" );
|
||||
self endon( "zombified" );
|
||||
|
||||
self thread doReloadCancel();
|
||||
|
||||
self thread maps\bots\objectives\_manager::start_bot_threads();
|
||||
}
|
||||
|
||||
/*
|
||||
Changes to the weap
|
||||
*/
|
||||
changeToWeapon( weap )
|
||||
{
|
||||
self endon( "disconnect" );
|
||||
self endon( "zombified" );
|
||||
level endon( "game_ended" );
|
||||
|
||||
if ( !self hasweapon( weap ) )
|
||||
return false;
|
||||
|
||||
self switchtoweapon( weap );
|
||||
|
||||
if ( self getcurrentweapon() == weap )
|
||||
return true;
|
||||
|
||||
self waittill_any_timeout( 5, "weapon_change" );
|
||||
|
||||
return ( self getcurrentweapon() == weap );
|
||||
}
|
||||
|
||||
/*
|
||||
Reload cancels
|
||||
*/
|
||||
doReloadCancel_loop()
|
||||
{
|
||||
ret = self waittill_any_return( "reload", "weapon_change" );
|
||||
|
||||
if ( self BotIsFrozen() )
|
||||
return;
|
||||
|
||||
if ( self usebuttonpressed() )
|
||||
return;
|
||||
|
||||
if ( self inLastStand() )
|
||||
return;
|
||||
|
||||
curWeap = self getcurrentweapon();
|
||||
|
||||
if ( !self isWeaponPrimary( curWeap ) )
|
||||
return;
|
||||
|
||||
if ( ret == "reload" )
|
||||
{
|
||||
// check single reloads
|
||||
if ( self getweaponammoclip( curWeap ) < weaponclipsize( curWeap ) )
|
||||
return;
|
||||
}
|
||||
|
||||
// check difficulty
|
||||
if ( self.pers["bots"]["skill"]["base"] <= 3 )
|
||||
return;
|
||||
|
||||
// check if got another weapon
|
||||
weaponslist = self getweaponslistprimaries();
|
||||
weap = "";
|
||||
|
||||
while ( weaponslist.size )
|
||||
{
|
||||
weapon = weaponslist[randomint( weaponslist.size )];
|
||||
weaponslist = array_remove( weaponslist, weapon );
|
||||
|
||||
if ( !self isWeaponPrimary( weapon ) )
|
||||
continue;
|
||||
|
||||
if ( curWeap == weapon || weapon == "none" || weapon == "" )
|
||||
continue;
|
||||
|
||||
weap = weapon;
|
||||
break;
|
||||
}
|
||||
|
||||
if ( weap == "" )
|
||||
return;
|
||||
|
||||
// do the cancel
|
||||
wait 0.1;
|
||||
self thread changeToWeapon( weap );
|
||||
wait 0.25;
|
||||
self thread changeToWeapon( curWeap );
|
||||
wait 2;
|
||||
}
|
||||
|
||||
/*
|
||||
Reload cancels
|
||||
*/
|
||||
doReloadCancel()
|
||||
{
|
||||
self endon( "disconnect" );
|
||||
self endon( "zombified" );
|
||||
|
||||
for ( ;; )
|
||||
{
|
||||
self doReloadCancel_loop();
|
||||
}
|
||||
}
|
||||
|
@ -8,7 +8,7 @@ wait_for_builtins()
|
||||
{
|
||||
for ( i = 0; i < 20; i++ )
|
||||
{
|
||||
if ( isDefined( level.bot_builtins ) )
|
||||
if ( isdefined( level.bot_builtins ) )
|
||||
return true;
|
||||
|
||||
if ( i < 18 )
|
||||
@ -25,7 +25,7 @@ wait_for_builtins()
|
||||
*/
|
||||
BotBuiltinPrintConsole( s )
|
||||
{
|
||||
if ( isDefined( level.bot_builtins ) && isDefined( level.bot_builtins["printconsole"] ) )
|
||||
if ( isdefined( level.bot_builtins ) && isdefined( level.bot_builtins["printconsole"] ) )
|
||||
{
|
||||
[[ level.bot_builtins["printconsole" ]]]( s );
|
||||
}
|
||||
@ -33,11 +33,11 @@ BotBuiltinPrintConsole( s )
|
||||
|
||||
/*
|
||||
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 )
|
||||
{
|
||||
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 );
|
||||
}
|
||||
@ -45,11 +45,11 @@ BotBuiltinBotAction( action )
|
||||
|
||||
/*
|
||||
Clears the bot from movement and actions
|
||||
<client> botStop()
|
||||
<client> botstop()
|
||||
*/
|
||||
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" ]]]();
|
||||
}
|
||||
@ -57,11 +57,11 @@ BotBuiltinBotStop()
|
||||
|
||||
/*
|
||||
Sets the bot's movement
|
||||
<client> botMovement(<int left>, <int forward>)
|
||||
<client> botmovement(<int left>, <int 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 );
|
||||
}
|
||||
@ -72,7 +72,7 @@ BotBuiltinBotMovement( left, forward )
|
||||
*/
|
||||
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 );
|
||||
}
|
||||
@ -84,7 +84,7 @@ BotBuiltinBotMeleeParams( yaw, dist )
|
||||
*/
|
||||
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" ]]]();
|
||||
}
|
||||
@ -97,7 +97,7 @@ BotBuiltinIsBot()
|
||||
*/
|
||||
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 );
|
||||
}
|
||||
@ -110,7 +110,7 @@ BotBuiltinGeneratePath( from, to, team, best_effort )
|
||||
*/
|
||||
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 );
|
||||
}
|
||||
@ -123,7 +123,7 @@ BotBuiltinGetFunction( file, threadname )
|
||||
*/
|
||||
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" ]]]();
|
||||
}
|
||||
@ -136,7 +136,7 @@ BotBuiltinGetMins()
|
||||
*/
|
||||
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" ]]]();
|
||||
}
|
||||
@ -149,7 +149,7 @@ BotBuiltinGetMaxs()
|
||||
*/
|
||||
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" ]]]();
|
||||
}
|
||||
@ -161,7 +161,7 @@ BotBuiltinGetGuid()
|
||||
*/
|
||||
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 );
|
||||
}
|
||||
@ -171,7 +171,7 @@ BotBuiltinSetAllowedTraversals( bot_allowed_negotiation_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 );
|
||||
}
|
||||
@ -181,7 +181,7 @@ BotBuiltinSetIgnoredLinks( bot_ignore_links )
|
||||
*/
|
||||
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" ]]]();
|
||||
}
|
||||
@ -193,7 +193,7 @@ BotBuiltinGetNodeNumber()
|
||||
*/
|
||||
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" ]]]();
|
||||
}
|
||||
@ -205,7 +205,7 @@ BotBuiltinGetLinkedNodes()
|
||||
*/
|
||||
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" ]]]();
|
||||
}
|
||||
@ -217,7 +217,7 @@ BotBuiltinAddTestClient()
|
||||
*/
|
||||
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 );
|
||||
}
|
||||
@ -227,7 +227,7 @@ BotBuiltinCmdExec( what )
|
||||
*/
|
||||
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 );
|
||||
}
|
||||
@ -238,7 +238,7 @@ BotBuiltinNotifyOnPlayerCommand( cmd, notif )
|
||||
*/
|
||||
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" ]]]();
|
||||
}
|
||||
@ -251,7 +251,7 @@ BotBuiltinIsHost()
|
||||
*/
|
||||
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;
|
||||
|
||||
if ( getDvar( "bots_main_firstIsHost" ) != "0" )
|
||||
if ( getdvar( "bots_main_firstIsHost" ) != "0" )
|
||||
{
|
||||
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;
|
||||
}
|
||||
|
||||
DvarGUID = getDvar( "bots_main_GUIDs" );
|
||||
DvarGUID = getdvar( "bots_main_GUIDs" );
|
||||
|
||||
if ( DvarGUID != "" )
|
||||
{
|
||||
@ -388,7 +388,7 @@ BotGetRandom()
|
||||
*/
|
||||
BotGetTargetRandom()
|
||||
{
|
||||
if ( !isDefined( self.bot.target ) )
|
||||
if ( !isdefined( self.bot.target ) )
|
||||
return undefined;
|
||||
|
||||
return self.bot.target.rand;
|
||||
@ -486,7 +486,7 @@ BotHasObjective()
|
||||
*/
|
||||
HasScriptGoal()
|
||||
{
|
||||
return ( isDefined( self GetScriptGoal() ) );
|
||||
return ( isdefined( self GetScriptGoal() ) );
|
||||
}
|
||||
|
||||
/*
|
||||
@ -502,7 +502,7 @@ GetScriptGoal()
|
||||
*/
|
||||
SetScriptGoal( goal, dist )
|
||||
{
|
||||
if ( !isDefined( dist ) )
|
||||
if ( !isdefined( dist ) )
|
||||
dist = 16;
|
||||
|
||||
self.bot.script_goal = goal;
|
||||
@ -575,7 +575,7 @@ GetScriptAimPos()
|
||||
*/
|
||||
HasScriptAimPos()
|
||||
{
|
||||
return isDefined( self GetScriptAimPos() );
|
||||
return isdefined( self GetScriptAimPos() );
|
||||
}
|
||||
|
||||
/*
|
||||
@ -619,7 +619,7 @@ GetThreat()
|
||||
*/
|
||||
HasScriptEnemy()
|
||||
{
|
||||
return ( isDefined( self.bot.script_target ) );
|
||||
return ( isdefined( self.bot.script_target ) );
|
||||
}
|
||||
|
||||
/*
|
||||
@ -627,7 +627,7 @@ HasScriptEnemy()
|
||||
*/
|
||||
HasThreat()
|
||||
{
|
||||
return ( isDefined( self GetThreat() ) );
|
||||
return ( isdefined( self GetThreat() ) );
|
||||
}
|
||||
|
||||
/*
|
||||
@ -641,10 +641,10 @@ getValidTube()
|
||||
{
|
||||
weap = weaps[i];
|
||||
|
||||
if ( !self getAmmoCount( weap ) )
|
||||
if ( !self getammocount( weap ) )
|
||||
continue;
|
||||
|
||||
if ( isSubStr( weap, "gl_" ) && !isSubStr( weap, "_gl_" ) )
|
||||
if ( issubstr( weap, "gl_" ) && !issubstr( weap, "_gl_" ) )
|
||||
return weap;
|
||||
}
|
||||
|
||||
@ -663,10 +663,10 @@ getValidGrenade()
|
||||
|
||||
for ( i = 0; i < grenadeTypes.size; i++ )
|
||||
{
|
||||
if ( !self hasWeapon( grenadeTypes[i] ) )
|
||||
if ( !self hasweapon( grenadeTypes[i] ) )
|
||||
continue;
|
||||
|
||||
if ( !self getAmmoCount( grenadeTypes[i] ) )
|
||||
if ( !self getammocount( grenadeTypes[i] ) )
|
||||
continue;
|
||||
|
||||
possibles[possibles.size] = grenadeTypes[i];
|
||||
@ -683,7 +683,7 @@ PickRandom( arr )
|
||||
if ( !arr.size )
|
||||
return undefined;
|
||||
|
||||
return arr[randomInt( arr.size )];
|
||||
return arr[randomint( arr.size )];
|
||||
}
|
||||
|
||||
/*
|
||||
@ -709,7 +709,7 @@ WeaponIsFullAuto( weap )
|
||||
{
|
||||
weaptoks = strtok( weap, "_" );
|
||||
|
||||
return isDefined( weaptoks[0] ) && isString( weaptoks[0] ) && isdefined( level.bots_fullautoguns[weaptoks[0]] );
|
||||
return isdefined( weaptoks[0] ) && isstring( weaptoks[0] ) && isdefined( level.bots_fullautoguns[weaptoks[0]] );
|
||||
}
|
||||
|
||||
/*
|
||||
@ -727,7 +727,7 @@ waittill_either_return_( str1, str2 )
|
||||
*/
|
||||
waittill_either_return( str1, str2 )
|
||||
{
|
||||
if ( !isDefined( self waittill_either_return_( str1, str2 ) ) )
|
||||
if ( !isdefined( self waittill_either_return_( str1, str2 ) ) )
|
||||
return str1;
|
||||
|
||||
return str2;
|
||||
@ -805,34 +805,34 @@ bot_wait_for_host()
|
||||
{
|
||||
host = undefined;
|
||||
|
||||
while ( !isDefined( level ) || !isDefined( level.players ) )
|
||||
while ( !isdefined( level ) || !isdefined( level.players ) )
|
||||
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();
|
||||
|
||||
if ( isDefined( host ) )
|
||||
if ( isdefined( host ) )
|
||||
break;
|
||||
|
||||
wait 0.05;
|
||||
}
|
||||
|
||||
if ( !isDefined( host ) )
|
||||
if ( !isdefined( host ) )
|
||||
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;
|
||||
|
||||
wait 0.05;
|
||||
}
|
||||
|
||||
if ( !IsDefined( host.pers[ "team" ] ) )
|
||||
if ( !isdefined( host.pers[ "team" ] ) )
|
||||
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" )
|
||||
break;
|
||||
@ -846,26 +846,26 @@ bot_wait_for_host()
|
||||
*/
|
||||
getConeDot( to, from, dir )
|
||||
{
|
||||
dirToTarget = VectorNormalize( to - from );
|
||||
forward = AnglesToForward( dir );
|
||||
dirToTarget = vectornormalize( to - from );
|
||||
forward = anglestoforward( dir );
|
||||
return vectordot( dirToTarget, forward );
|
||||
}
|
||||
|
||||
/*
|
||||
Returns the distance squared in a 2d space
|
||||
*/
|
||||
DistanceSquared2D( to, from )
|
||||
distancesquared2D( to, from )
|
||||
{
|
||||
to = ( to[0], to[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;
|
||||
dy = 0;
|
||||
@ -936,7 +936,7 @@ float( 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()
|
||||
{
|
||||
total_nodes = getAllNodes();
|
||||
total_nodes = getallnodes();
|
||||
filtered_nodes = [];
|
||||
|
||||
for ( i = 0; i < total_nodes.size; i++ )
|
||||
@ -974,7 +974,7 @@ is_point_in_playable_area( point )
|
||||
|
||||
in_playable_area = false;
|
||||
|
||||
if ( !isDefined( playable_area ) || playable_area.size < 1 )
|
||||
if ( !isdefined( playable_area ) || playable_area.size < 1 )
|
||||
{
|
||||
in_playable_area = true;
|
||||
}
|
||||
@ -985,7 +985,7 @@ is_point_in_playable_area( point )
|
||||
{
|
||||
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;
|
||||
break;
|
||||
@ -1145,11 +1145,11 @@ load_waypoints()
|
||||
BotBuiltinSetIgnoredLinks( bot_ignore_links );
|
||||
level.bot_ignore_links = bot_ignore_links;
|
||||
|
||||
level.waypoints = GetAllNodes();
|
||||
level.waypointCount = level.waypoints.size;
|
||||
level.waypoints = getallnodes();
|
||||
level.waypointcount = level.waypoints.size;
|
||||
|
||||
level.waypointsInPlayableArea = [];
|
||||
level.waypointsInPlayableArea = get_nodes_in_playable_area();
|
||||
level.waypointsinplayablearea = [];
|
||||
level.waypointsinplayablearea = get_nodes_in_playable_area();
|
||||
}
|
||||
|
||||
/*
|
||||
@ -1175,7 +1175,7 @@ getBotToKick()
|
||||
{
|
||||
bots = getBotArray();
|
||||
|
||||
if ( !isDefined( bots ) || !isDefined( bots.size ) || bots.size <= 0 || !isDefined( bots[0] ) )
|
||||
if ( !isdefined( bots ) || !isdefined( bots.size ) || bots.size <= 0 || !isdefined( bots[0] ) )
|
||||
return undefined;
|
||||
|
||||
tokick = undefined;
|
||||
@ -1185,13 +1185,13 @@ getBotToKick()
|
||||
{
|
||||
bot = bots[i];
|
||||
|
||||
if ( !isDefined( bot ) )
|
||||
if ( !isdefined( bot ) )
|
||||
continue;
|
||||
|
||||
if ( !isDefined( bot.pers ) || !isDefined( bot.pers["bots"] ) || !isDefined( bot.pers["bots"]["skill"] ) || !isDefined( bot.pers["bots"]["skill"]["base"] ) )
|
||||
if ( !isdefined( bot.pers ) || !isdefined( bot.pers["bots"] ) || !isdefined( bot.pers["bots"]["skill"] ) || !isdefined( bot.pers["bots"]["skill"]["base"] ) )
|
||||
continue;
|
||||
|
||||
if ( isDefined( tokick ) && bot.pers["bots"]["skill"]["base"] > tokick.pers["bots"]["skill"]["base"] )
|
||||
if ( isdefined( tokick ) && bot.pers["bots"]["skill"]["base"] > tokick.pers["bots"]["skill"]["base"] )
|
||||
continue;
|
||||
|
||||
tokick = bot;
|
||||
@ -1239,7 +1239,7 @@ ReverseHeap( item, item2 )
|
||||
|
||||
HeapPriority( item, item2 )
|
||||
{
|
||||
return item.fPriority > item2.fPriority;
|
||||
return item.fpriority > item2.fpriority;
|
||||
}
|
||||
|
||||
/*
|
||||
@ -1255,7 +1255,7 @@ HeapTraceFraction( item, item2 )
|
||||
*/
|
||||
NewHeap( compare )
|
||||
{
|
||||
heap_node = spawnStruct();
|
||||
heap_node = spawnstruct();
|
||||
heap_node.data = [];
|
||||
heap_node.compare = compare;
|
||||
|
||||
@ -1346,15 +1346,6 @@ HeapRemove()
|
||||
*/
|
||||
Log( x )
|
||||
{
|
||||
/* if (!isDefined(level.log_cache))
|
||||
level.log_cache = [];
|
||||
|
||||
key = x + "";
|
||||
|
||||
if (isDefined(level.log_cache[key]))
|
||||
return level.log_cache[key];*/
|
||||
|
||||
//thanks Bob__ at stackoverflow
|
||||
old_sum = 0.0;
|
||||
xmlxpl = ( x - 1 ) / ( x + 1 );
|
||||
xmlxpl_2 = xmlxpl * xmlxpl;
|
||||
@ -1371,8 +1362,6 @@ Log( x )
|
||||
}
|
||||
|
||||
answer = 2.0 * sum;
|
||||
|
||||
//level.log_cache[key] = answer;
|
||||
return answer;
|
||||
}
|
||||
|
||||
@ -1414,7 +1403,7 @@ array_std_deviation( array, mean )
|
||||
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 )
|
||||
{
|
||||
x1 = 2 * RandomFloatRange( 0, 1 ) - 1;
|
||||
x2 = 2 * RandomFloatRange( 0, 1 ) - 1;
|
||||
x1 = 2 * randomfloatrange( 0, 1 ) - 1;
|
||||
x2 = 2 * randomfloatrange( 0, 1 ) - 1;
|
||||
w = x1 * x1 + x2 * x2;
|
||||
}
|
||||
|
||||
w = Sqrt( ( -2.0 * Log( w ) ) / w );
|
||||
w = sqrt( ( -2.0 * Log( w ) ) / w );
|
||||
y1 = x1 * w;
|
||||
number = mean + y1 * std_deviation;
|
||||
|
||||
if ( IsDefined( lower_bound ) && number < lower_bound )
|
||||
if ( isdefined( lower_bound ) && number < lower_bound )
|
||||
{
|
||||
number = lower_bound;
|
||||
}
|
||||
|
||||
if ( IsDefined( upper_bound ) && number > upper_bound )
|
||||
if ( isdefined( upper_bound ) && number > upper_bound )
|
||||
{
|
||||
number = upper_bound;
|
||||
}
|
||||
@ -1477,12 +1466,12 @@ isReviving( revivee )
|
||||
*/
|
||||
getRandomGoal()
|
||||
{
|
||||
if ( !level.waypointsInPlayableArea.size )
|
||||
if ( !level.waypointsinplayablearea.size )
|
||||
{
|
||||
return self.origin;
|
||||
}
|
||||
|
||||
return PickRandom( level.waypointsInPlayableArea ).origin;
|
||||
return PickRandom( level.waypointsinplayablearea ).origin;
|
||||
}
|
||||
|
||||
/*
|
||||
@ -1490,7 +1479,7 @@ getRandomGoal()
|
||||
*/
|
||||
targetIsDog()
|
||||
{
|
||||
return isDefined( self.targetname ) && self.targetname == "zombie_dog";
|
||||
return isdefined( self.targetname ) && self.targetname == "zombie_dog";
|
||||
}
|
||||
|
||||
/*
|
||||
@ -1498,7 +1487,7 @@ targetIsDog()
|
||||
*/
|
||||
targetIsGibbed()
|
||||
{
|
||||
return isDefined( self.gibbed ) && self.gibbed;
|
||||
return isdefined( self.gibbed ) && self.gibbed;
|
||||
}
|
||||
|
||||
/*
|
||||
@ -1506,7 +1495,7 @@ targetIsGibbed()
|
||||
*/
|
||||
isWeaponPrimary( weap )
|
||||
{
|
||||
weaps = self GetWeaponsListPrimaries();
|
||||
weaps = self getweaponslistprimaries();
|
||||
|
||||
for ( i = 0; i < weaps.size; i++ )
|
||||
{
|
||||
@ -1523,7 +1512,7 @@ isWeaponPrimary( weap )
|
||||
GetPathIsInaccessible( 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 );
|
||||
|
||||
if ( !isDefined( path ) || path.size <= 0 )
|
||||
if ( !isdefined( path ) || path.size <= 0 )
|
||||
{
|
||||
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 )
|
||||
{
|
||||
if ( !isDefined( forward_size ) )
|
||||
if ( !isdefined( forward_size ) )
|
||||
{
|
||||
forward_size = 40;
|
||||
}
|
||||
|
||||
if ( !isDefined( angle_offset ) )
|
||||
if ( !isdefined( angle_offset ) )
|
||||
{
|
||||
angle_offset = ( 0, 0, 0 );
|
||||
}
|
||||
|
||||
if ( !isDefined( offset ) )
|
||||
if ( !isdefined( offset ) )
|
||||
{
|
||||
offset = ( 0, 0, 0 );
|
||||
}
|
||||
|
||||
angles = ( 0, self.angles[ 1 ], 0 );
|
||||
angles += angle_offset;
|
||||
node = self.origin + ( AnglesToForward( angles ) * forward_size ) + offset;
|
||||
node = self.origin + ( anglestoforward( angles ) * forward_size ) + offset;
|
||||
node = clamp_to_ground( node );
|
||||
|
||||
if ( getDvarInt( "bots_main_debug" ) )
|
||||
if ( getdvarint( "bots_main_debug" ) )
|
||||
{
|
||||
self thread debug_offset_line( node );
|
||||
}
|
||||
@ -1622,7 +1611,7 @@ debug_offset_line( node )
|
||||
self notify( "debug_offset_line" );
|
||||
self endon( "debug_offset_line" );
|
||||
|
||||
while ( isDefined( self ) )
|
||||
while ( isdefined( self ) )
|
||||
{
|
||||
line( self.origin, node );
|
||||
wait 0.05;
|
||||
@ -1634,7 +1623,7 @@ debug_offset_line( node )
|
||||
*/
|
||||
PointInsideUseTrigger( point )
|
||||
{
|
||||
if ( getDvarInt( "bots_main_debug" ) )
|
||||
if ( getdvarint( "bots_main_debug" ) )
|
||||
{
|
||||
self thread debug_bounding_box_for_ent();
|
||||
}
|
||||
@ -1650,12 +1639,12 @@ PointInsideUseTrigger( point )
|
||||
box.z0 = self.origin[2] + mins[2];
|
||||
box.z1 = self.origin[2] + maxs[2];
|
||||
|
||||
if ( box RectDistanceSquared( self.origin ) > 72 * 72 )
|
||||
if ( box Rectdistancesquared( self.origin ) > 72 * 72 )
|
||||
{
|
||||
return false;
|
||||
}
|
||||
|
||||
if ( !sightTracePassed( point, self.origin, false, undefined ) )
|
||||
if ( !sighttracepassed( point, self.origin, false, undefined ) )
|
||||
{
|
||||
return false;
|
||||
}
|
||||
@ -1672,10 +1661,10 @@ debug_bounding_box_for_ent( color )
|
||||
self notify( "debug_bounding_box_for_ent" );
|
||||
self endon( "debug_bounding_box_for_ent" );
|
||||
|
||||
if ( !isDefined( color ) )
|
||||
color = ( randomFloatRange( 0, 1 ), randomFloatRange( 0, 1 ), randomFloatRange( 0, 1 ) );
|
||||
if ( !isdefined( color ) )
|
||||
color = ( randomfloatrange( 0, 1 ), randomfloatrange( 0, 1 ), randomfloatrange( 0, 1 ) );
|
||||
|
||||
while ( isDefined( self ) )
|
||||
while ( isdefined( self ) )
|
||||
{
|
||||
mins = self BotBuiltinGetMins();
|
||||
maxs = self BotBuiltinGetMaxs();
|
||||
@ -1706,6 +1695,6 @@ debug_bounding_box_for_ent( color )
|
||||
*/
|
||||
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;
|
||||
}
|
||||
|
@ -39,9 +39,9 @@ watch_for_objective_canceled()
|
||||
|
||||
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 );
|
||||
@ -60,11 +60,11 @@ clean_objective_on_completion()
|
||||
|
||||
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 );
|
||||
@ -95,21 +95,21 @@ bot_objective_think()
|
||||
|
||||
// find all avail objectives
|
||||
objectives = [];
|
||||
now = getTime();
|
||||
our_key = self GetEntityNumber() + "";
|
||||
now = gettime();
|
||||
our_key = self getentitynumber() + "";
|
||||
|
||||
for ( i = 0; i < level.bot_objectives.size; i++ )
|
||||
{
|
||||
objective = level.bot_objectives[i];
|
||||
|
||||
// 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;
|
||||
}
|
||||
|
||||
objectives = array_merge( objectives, self [[objective.fpFinder]]( objective ) );
|
||||
objective.aBotProcessTimes[our_key] = now;
|
||||
objectives = array_merge( objectives, self [[objective.fpfinder]]( objective ) );
|
||||
objective.abotprocesstimes[our_key] = now;
|
||||
}
|
||||
|
||||
if ( objectives.size <= 0 )
|
||||
@ -122,7 +122,7 @@ bot_objective_think()
|
||||
|
||||
for ( i = 0; i < objectives.size; i++ )
|
||||
{
|
||||
if ( objectives[i].fPriority <= -100 )
|
||||
if ( objectives[i].fpriority <= -100 )
|
||||
{
|
||||
continue;
|
||||
}
|
||||
@ -133,36 +133,36 @@ bot_objective_think()
|
||||
// pop the top!
|
||||
best_prio = heap.data[0];
|
||||
|
||||
if ( !isDefined( best_prio ) )
|
||||
if ( !isdefined( best_prio ) )
|
||||
{
|
||||
continue;
|
||||
}
|
||||
|
||||
// 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;
|
||||
}
|
||||
|
||||
// DO THE OBJ
|
||||
// cancel the old obj
|
||||
if ( isDefined( self.bot_current_objective ) )
|
||||
if ( isdefined( self.bot_current_objective ) )
|
||||
{
|
||||
// cancel it
|
||||
self CancelObjective( "new obj: " + best_prio.sName );
|
||||
self CancelObjective( "new obj: " + best_prio.sname );
|
||||
|
||||
// wait for it to clean up
|
||||
self waittill( "completed_bot_objective" );
|
||||
|
||||
// redo the loop, should do the obj next iteration
|
||||
best_prio.eParentObj.aBotProcessTimes[our_key] = undefined;
|
||||
best_prio.eparentobj.abotprocesstimes[our_key] = undefined;
|
||||
continue;
|
||||
}
|
||||
|
||||
// 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 thread [[best_prio.eParentObj.fpExecuter]]( best_prio );
|
||||
self thread [[best_prio.eparentobj.fpexecuter]]( best_prio );
|
||||
}
|
||||
}
|
||||
|
@ -5,13 +5,13 @@
|
||||
|
||||
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;
|
||||
}
|
||||
@ -55,13 +55,13 @@ Finder( eObj )
|
||||
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;
|
||||
}
|
||||
@ -85,14 +85,14 @@ Finder( eObj )
|
||||
}
|
||||
|
||||
// perk limit??
|
||||
if ( self HasPerk( perk ) )
|
||||
if ( self hasperk( perk ) )
|
||||
{
|
||||
continue;
|
||||
}
|
||||
|
||||
machine = vending getMachine();
|
||||
|
||||
if ( !isDefined( machine ) )
|
||||
if ( !isdefined( machine ) )
|
||||
{
|
||||
continue;
|
||||
}
|
||||
@ -112,7 +112,7 @@ Finder( eObj )
|
||||
|
||||
getMachine()
|
||||
{
|
||||
return GetEnt( self.target, "targetname" );
|
||||
return getent( self.target, "targetname" );
|
||||
}
|
||||
|
||||
getVendingPerk()
|
||||
@ -187,7 +187,7 @@ Executer( eObj )
|
||||
self endon( "disconnect" );
|
||||
self endon( "zombified" );
|
||||
|
||||
vending = eObj.eEnt;
|
||||
vending = eObj.eent;
|
||||
|
||||
self thread WatchForCancel( vending );
|
||||
|
||||
@ -197,7 +197,7 @@ Executer( eObj )
|
||||
self ClearScriptAimPos();
|
||||
self ClearScriptGoal();
|
||||
|
||||
self CompletedObjective( eObj.bWasSuccessful, eObj.sReason );
|
||||
self CompletedObjective( eObj.bwassuccessful, eObj.sreason );
|
||||
}
|
||||
|
||||
WatchForCancelCleanup()
|
||||
@ -236,7 +236,7 @@ WatchToGoToMachine( vending )
|
||||
{
|
||||
wait 0.05;
|
||||
|
||||
if ( self IsTouching( vending ) || vending PointInsideUseTrigger( self.origin ) )
|
||||
if ( self istouching( vending ) || vending PointInsideUseTrigger( self.origin ) )
|
||||
{
|
||||
self notify( "goal" );
|
||||
break; // is this needed?
|
||||
@ -248,7 +248,7 @@ GoDoPerkMachine( eObj )
|
||||
{
|
||||
self endon( "cancel_bot_objective" );
|
||||
|
||||
vending = eObj.eEnt;
|
||||
vending = eObj.eent;
|
||||
machine = vending getMachine();
|
||||
perk = vending getVendingPerk();
|
||||
org = self getOffset( machine );
|
||||
@ -261,13 +261,13 @@ GoDoPerkMachine( eObj )
|
||||
|
||||
if ( result != "goal" )
|
||||
{
|
||||
eObj.sReason = "didn't go to machine";
|
||||
eObj.sreason = "didn't go to machine";
|
||||
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;
|
||||
}
|
||||
|
||||
@ -282,6 +282,6 @@ GoDoPerkMachine( eObj )
|
||||
wait 0.1;
|
||||
|
||||
// ok we pressed use, DONE
|
||||
eObj.sReason = "completed " + perk;
|
||||
eObj.bWasSuccessful = true;
|
||||
eObj.sreason = "completed " + perk;
|
||||
eObj.bwassuccessful = true;
|
||||
}
|
||||
|
@ -17,7 +17,7 @@ Finder( eObj )
|
||||
for ( i = 0; i < ents.size; i++ )
|
||||
{
|
||||
// not a powerup script_model
|
||||
if ( !isDefined( ents[i].powerup_name ) )
|
||||
if ( !isdefined( ents[i].powerup_name ) )
|
||||
{
|
||||
continue;
|
||||
}
|
||||
@ -59,7 +59,7 @@ Executer( eObj )
|
||||
self endon( "disconnect" );
|
||||
self endon( "zombified" );
|
||||
|
||||
powerup = eObj.eEnt;
|
||||
powerup = eObj.eent;
|
||||
org = powerup.origin;
|
||||
|
||||
self thread IncrementBotsForEntity( powerup );
|
||||
@ -73,11 +73,11 @@ Executer( eObj )
|
||||
|
||||
if ( distance( org, self.origin ) <= 64 )
|
||||
{
|
||||
eObj.sReason = "completed";
|
||||
eObj.bWasSuccessful = true;
|
||||
eObj.sreason = "completed";
|
||||
eObj.bwassuccessful = true;
|
||||
}
|
||||
|
||||
self CompletedObjective( eObj.bWasSuccessful, eObj.sReason );
|
||||
self CompletedObjective( eObj.bwassuccessful, eObj.sreason );
|
||||
}
|
||||
|
||||
WatchForCancelCleanup()
|
||||
@ -113,7 +113,7 @@ GoDoPowerup( eObj )
|
||||
{
|
||||
self endon( "cancel_bot_objective" );
|
||||
|
||||
powerup = eObj.eEnt;
|
||||
powerup = eObj.eent;
|
||||
|
||||
// go to it
|
||||
self SetScriptGoal( powerup.origin, 32 );
|
||||
@ -122,21 +122,21 @@ GoDoPowerup( eObj )
|
||||
|
||||
if ( result != "goal" )
|
||||
{
|
||||
eObj.sReason = "didn't go to powerup";
|
||||
eObj.sreason = "didn't go to powerup";
|
||||
return;
|
||||
}
|
||||
|
||||
if ( !isDefined( powerup ) || !isDefined( powerup.origin ) )
|
||||
if ( !isdefined( powerup ) || !isdefined( powerup.origin ) )
|
||||
{
|
||||
return;
|
||||
}
|
||||
|
||||
if ( distance( powerup.origin, self.origin ) > 64 )
|
||||
{
|
||||
eObj.sReason = "not touching it";
|
||||
eObj.sreason = "not touching it";
|
||||
return;
|
||||
}
|
||||
|
||||
eObj.sReason = "completed";
|
||||
eObj.bWasSuccessful = true;
|
||||
eObj.sreason = "completed";
|
||||
eObj.bwassuccessful = true;
|
||||
}
|
||||
|
@ -17,7 +17,7 @@ Finder( eObj )
|
||||
{
|
||||
Player = Players[i];
|
||||
|
||||
if ( !IsDefined( Player ) || !IsDefined( Player.team ) )
|
||||
if ( !isdefined( Player ) || !isdefined( Player.team ) )
|
||||
{
|
||||
continue;
|
||||
}
|
||||
@ -71,7 +71,7 @@ Executer( eObj )
|
||||
self endon( "disconnect" );
|
||||
self endon( "zombified" );
|
||||
|
||||
revivee = eObj.eEnt;
|
||||
revivee = eObj.eent;
|
||||
|
||||
self thread IncrementBotsForEntity( revivee );
|
||||
self thread WatchForCancelRevive( revivee );
|
||||
@ -84,7 +84,7 @@ Executer( eObj )
|
||||
self ClearScriptGoal();
|
||||
self ClearPriorityObjective();
|
||||
|
||||
self CompletedObjective( eObj.bWasSuccessful, eObj.sReason );
|
||||
self CompletedObjective( eObj.bwassuccessful, eObj.sreason );
|
||||
}
|
||||
|
||||
WatchForCancelReviveCleanup()
|
||||
@ -143,7 +143,7 @@ WatchToGoToGuy( revivee )
|
||||
{
|
||||
wait 1;
|
||||
|
||||
if ( self IsTouching( revivee.revivetrigger ) )
|
||||
if ( self istouching( revivee.revivetrigger ) )
|
||||
{
|
||||
self notify( "goal" );
|
||||
break; // is this needed?
|
||||
@ -156,14 +156,14 @@ WatchForSuccessRevive( eObj )
|
||||
self endon( "disconnect" );
|
||||
self endon( "zombified" );
|
||||
|
||||
revivee = eObj.eEnt;
|
||||
revivee = eObj.eent;
|
||||
|
||||
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.sReason = "revived him!";
|
||||
eObj.bwassuccessful = true;
|
||||
eObj.sreason = "revived him!";
|
||||
}
|
||||
}
|
||||
|
||||
@ -171,7 +171,7 @@ GoDoRevive( eObj )
|
||||
{
|
||||
self endon( "cancel_bot_objective" );
|
||||
|
||||
revivee = eObj.eEnt;
|
||||
revivee = eObj.eent;
|
||||
|
||||
// go to guy
|
||||
self thread WatchToGoToGuy( revivee );
|
||||
@ -182,13 +182,13 @@ GoDoRevive( eObj )
|
||||
|
||||
if ( result != "goal" )
|
||||
{
|
||||
eObj.sReason = "didn't go to guy";
|
||||
eObj.sreason = "didn't go to guy";
|
||||
return;
|
||||
}
|
||||
|
||||
if ( !self IsTouching( revivee.revivetrigger ) )
|
||||
if ( !self istouching( revivee.revivetrigger ) )
|
||||
{
|
||||
eObj.sReason = "not touching guy";
|
||||
eObj.sreason = "not touching guy";
|
||||
return;
|
||||
}
|
||||
|
||||
@ -198,12 +198,12 @@ GoDoRevive( eObj )
|
||||
// now lets hold use until he is up or otherwise
|
||||
self thread WatchForSuccessRevive( eObj );
|
||||
|
||||
while ( self IsTouching( revivee.revivetrigger ) )
|
||||
while ( self istouching( revivee.revivetrigger ) )
|
||||
{
|
||||
self thread BotPressUse( 0.15 );
|
||||
|
||||
wait 0.1;
|
||||
}
|
||||
|
||||
eObj.sReason = "not touching guy";
|
||||
eObj.sreason = "not touching guy";
|
||||
}
|
||||
|
@ -12,17 +12,17 @@ Finder( eObj )
|
||||
return answer;
|
||||
}
|
||||
|
||||
weapons = self GetWeaponsList();
|
||||
weapons = self getweaponslist();
|
||||
|
||||
// TODO check if need a new weapon, rate weapons too is better then current etc
|
||||
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;
|
||||
}
|
||||
@ -32,24 +32,24 @@ Finder( eObj )
|
||||
chest = chests[i];
|
||||
|
||||
// not active chest
|
||||
if ( isDefined( chest.disabled ) && chest.disabled )
|
||||
if ( isdefined( chest.disabled ) && chest.disabled )
|
||||
{
|
||||
continue;
|
||||
}
|
||||
|
||||
// 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;
|
||||
}
|
||||
|
||||
cost = 950;
|
||||
|
||||
if ( IsDefined( level.zombie_treasure_chest_cost ) )
|
||||
if ( isdefined( 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;
|
||||
}
|
||||
@ -62,7 +62,7 @@ Finder( eObj )
|
||||
|
||||
lid = getent( chest.target, "targetname" );
|
||||
|
||||
if ( !isDefined( lid ) )
|
||||
if ( !isdefined( lid ) )
|
||||
{
|
||||
continue;
|
||||
}
|
||||
@ -112,7 +112,7 @@ Executer( eObj )
|
||||
self endon( "disconnect" );
|
||||
self endon( "zombified" );
|
||||
|
||||
chest = eObj.eEnt;
|
||||
chest = eObj.eent;
|
||||
|
||||
self thread WatchForCancel( chest );
|
||||
|
||||
@ -123,7 +123,7 @@ Executer( eObj )
|
||||
self ClearScriptGoal();
|
||||
self ClearPriorityObjective();
|
||||
|
||||
self CompletedObjective( eObj.bWasSuccessful, eObj.sReason );
|
||||
self CompletedObjective( eObj.bwassuccessful, eObj.sreason );
|
||||
}
|
||||
|
||||
WatchForCancelCleanup()
|
||||
@ -162,13 +162,13 @@ WatchToGoToChest( chest )
|
||||
{
|
||||
wait 0.05;
|
||||
|
||||
if ( self IsTouching( chest ) || chest PointInsideUseTrigger( self.origin ) )
|
||||
if ( self istouching( chest ) || chest PointInsideUseTrigger( self.origin ) )
|
||||
{
|
||||
self notify( "goal" );
|
||||
break; // is this needed?
|
||||
}
|
||||
|
||||
if ( isDefined( chest.disabled ) && chest.disabled )
|
||||
if ( isdefined( chest.disabled ) && chest.disabled )
|
||||
{
|
||||
self notify( "bad_path" );
|
||||
break; // is this needed?
|
||||
@ -180,14 +180,14 @@ GoDoTreasureChest( eObj )
|
||||
{
|
||||
self endon( "cancel_bot_objective" );
|
||||
|
||||
chest = eObj.eEnt;
|
||||
chest = eObj.eent;
|
||||
lid = getent( chest.target, "targetname" );
|
||||
weapon_spawn_org = getent( lid.target, "targetname" );
|
||||
org = self getOffset( lid );
|
||||
|
||||
weap = self GetCurrentWeapon();
|
||||
weap = self getcurrentweapon();
|
||||
|
||||
if ( weap == "none" || !self getAmmoCount( weap ) )
|
||||
if ( weap == "none" || !self getammocount( weap ) )
|
||||
{
|
||||
self SetPriorityObjective();
|
||||
}
|
||||
@ -200,13 +200,13 @@ GoDoTreasureChest( eObj )
|
||||
|
||||
if ( result != "goal" )
|
||||
{
|
||||
eObj.sReason = "didn't go to chest";
|
||||
eObj.sreason = "didn't go to chest";
|
||||
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;
|
||||
}
|
||||
|
||||
@ -225,9 +225,9 @@ GoDoTreasureChest( eObj )
|
||||
self ClearPriorityObjective();
|
||||
|
||||
// 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;
|
||||
}
|
||||
|
||||
@ -235,13 +235,13 @@ GoDoTreasureChest( eObj )
|
||||
|
||||
if (ret == "timeout")
|
||||
{
|
||||
eObj.sReason = "randomization_done timed out";
|
||||
eObj.sreason = "randomization_done timed out";
|
||||
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;
|
||||
}
|
||||
|
||||
@ -258,13 +258,13 @@ GoDoTreasureChest( eObj )
|
||||
|
||||
if ( result != "goal" )
|
||||
{
|
||||
eObj.sReason = "didn't go to chest";
|
||||
eObj.sreason = "didn't go to chest";
|
||||
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;
|
||||
}
|
||||
|
||||
@ -279,6 +279,6 @@ GoDoTreasureChest( eObj )
|
||||
wait 0.1;
|
||||
|
||||
// complete!
|
||||
eObj.sReason = "completed " + weap;
|
||||
eObj.bWasSuccessful = true;
|
||||
eObj.sreason = "completed " + weap;
|
||||
eObj.bwassuccessful = true;
|
||||
}
|
||||
|
@ -4,43 +4,43 @@
|
||||
|
||||
CreateObjectiveForManger( sName, fpFinder, fpPriorty, fpExecuter, iProcessRate )
|
||||
{
|
||||
Answer = SpawnStruct();
|
||||
Answer = spawnstruct();
|
||||
|
||||
Answer.sName = sName;
|
||||
Answer.fpFinder = fpFinder;
|
||||
Answer.fpExecuter = fpExecuter;
|
||||
Answer.fpPriorty = fpPriorty;
|
||||
Answer.sname = sName;
|
||||
Answer.fpfinder = fpFinder;
|
||||
Answer.fpexecuter = fpExecuter;
|
||||
Answer.fppriorty = fpPriorty;
|
||||
|
||||
Answer.aBotProcessTimes = [];
|
||||
Answer.iProcessRate = iProcessRate;
|
||||
Answer.abotprocesstimes = [];
|
||||
Answer.iprocessrate = iProcessRate;
|
||||
|
||||
return Answer;
|
||||
}
|
||||
|
||||
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 )
|
||||
{
|
||||
Answer = SpawnStruct();
|
||||
Answer = spawnstruct();
|
||||
|
||||
Answer.eParentObj = eObj;
|
||||
Answer.sName = sName;
|
||||
Answer.eEnt = eEnt;
|
||||
Answer.fPriority = fPriority;
|
||||
Answer.GUID = eEnt GetEntityNumber();
|
||||
Answer.eparentobj = eObj;
|
||||
Answer.sname = sName;
|
||||
Answer.eent = eEnt;
|
||||
Answer.fpriority = fPriority;
|
||||
Answer.guid = eEnt getentitynumber();
|
||||
|
||||
Answer.bWasSuccessful = false;
|
||||
Answer.sReason = "canceled";
|
||||
Answer.bwassuccessful = false;
|
||||
Answer.sreason = "canceled";
|
||||
|
||||
return Answer;
|
||||
}
|
||||
|
||||
GetBotsAmountForEntity( eEnt )
|
||||
{
|
||||
if ( !isDefined( eEnt.bots ) )
|
||||
if ( !isdefined( eEnt.bots ) )
|
||||
{
|
||||
eEnt.bots = 0;
|
||||
}
|
||||
@ -56,7 +56,7 @@ IncrementBotsForEntity( eEnt )
|
||||
|
||||
self waittill_either( "disconnect", "zombified" );
|
||||
|
||||
if ( isDefined( eEnt ) )
|
||||
if ( isdefined( eEnt ) )
|
||||
{
|
||||
eEnt.bots--;
|
||||
}
|
||||
@ -66,7 +66,7 @@ DecrementBotsForEntity( eEnt )
|
||||
{
|
||||
self notify( "bots_for_entity_cleanup" );
|
||||
|
||||
if ( isDefined( eEnt ) )
|
||||
if ( isdefined( eEnt ) )
|
||||
{
|
||||
eEnt.bots--;
|
||||
}
|
||||
@ -94,7 +94,7 @@ GetBotObjectiveEnt()
|
||||
return undefined;
|
||||
}
|
||||
|
||||
return self GetBotObjective().eEnt;
|
||||
return self GetBotObjective().eent;
|
||||
}
|
||||
|
||||
/*
|
||||
@ -110,5 +110,5 @@ GetBotObjective()
|
||||
*/
|
||||
HasBotObjective()
|
||||
{
|
||||
return isDefined( self GetBotObjective() );
|
||||
return isdefined( self GetBotObjective() );
|
||||
}
|
||||
|
@ -12,14 +12,14 @@ Finder( eObj )
|
||||
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;
|
||||
}
|
||||
|
||||
weapons = self GetWeaponsList();
|
||||
weapons = self getweaponslist();
|
||||
|
||||
// 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;
|
||||
|
||||
if ( !isDefined( weapon_spawns[i].zombie_weapon_upgrade ) )
|
||||
if ( !isdefined( weapon_spawns[i].zombie_weapon_upgrade ) )
|
||||
{
|
||||
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 )
|
||||
{
|
||||
@ -63,12 +63,12 @@ Finder( eObj )
|
||||
|
||||
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;
|
||||
}
|
||||
@ -112,7 +112,7 @@ Priority( eObj, eEnt )
|
||||
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;
|
||||
}
|
||||
@ -125,7 +125,7 @@ Executer( eObj )
|
||||
self endon( "disconnect" );
|
||||
self endon( "zombified" );
|
||||
|
||||
weapon = eObj.eEnt;
|
||||
weapon = eObj.eent;
|
||||
|
||||
self thread WatchForCancel( weapon );
|
||||
|
||||
@ -136,7 +136,7 @@ Executer( eObj )
|
||||
self ClearScriptGoal();
|
||||
self ClearPriorityObjective();
|
||||
|
||||
self CompletedObjective( eObj.bWasSuccessful, eObj.sReason );
|
||||
self CompletedObjective( eObj.bwassuccessful, eObj.sreason );
|
||||
}
|
||||
|
||||
WatchForCancelCleanup()
|
||||
@ -175,7 +175,7 @@ WatchToGoToWeapon( weapon )
|
||||
{
|
||||
wait 0.05;
|
||||
|
||||
if ( self IsTouching( weapon ) || weapon PointInsideUseTrigger( self.origin ) )
|
||||
if ( self istouching( weapon ) || weapon PointInsideUseTrigger( self.origin ) )
|
||||
{
|
||||
self notify( "goal" );
|
||||
break; // is this needed?
|
||||
@ -187,19 +187,19 @@ GoDoWallweapon( eObj )
|
||||
{
|
||||
self endon( "cancel_bot_objective" );
|
||||
|
||||
weapon = eObj.eEnt;
|
||||
weapon = eObj.eent;
|
||||
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 );
|
||||
|
||||
weap = self GetCurrentWeapon();
|
||||
weap = self getcurrentweapon();
|
||||
|
||||
if ( weap == "none" || !self getAmmoCount( weap ) )
|
||||
if ( weap == "none" || !self getammocount( weap ) )
|
||||
{
|
||||
self SetPriorityObjective();
|
||||
}
|
||||
@ -212,13 +212,13 @@ GoDoWallweapon( eObj )
|
||||
|
||||
if ( result != "goal" )
|
||||
{
|
||||
eObj.sReason = "didn't go to weapon";
|
||||
eObj.sreason = "didn't go to weapon";
|
||||
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;
|
||||
}
|
||||
|
||||
@ -232,6 +232,6 @@ GoDoWallweapon( eObj )
|
||||
self thread BotPressUse( 0.15 );
|
||||
wait 0.1;
|
||||
|
||||
eObj.sReason = "completed";
|
||||
eObj.bWasSuccessful = true;
|
||||
eObj.sreason = "completed";
|
||||
eObj.bwassuccessful = true;
|
||||
}
|
||||
|
@ -23,57 +23,57 @@ init()
|
||||
|
||||
do_printconsole( s )
|
||||
{
|
||||
PrintConsole( s );
|
||||
printconsole( s );
|
||||
}
|
||||
|
||||
do_botaction( action )
|
||||
{
|
||||
self BotAction( action );
|
||||
self botaction( action );
|
||||
}
|
||||
|
||||
do_botstop()
|
||||
{
|
||||
self BotStop();
|
||||
self botstop();
|
||||
}
|
||||
|
||||
do_botmovement( left, forward )
|
||||
{
|
||||
self BotMovement( left, forward );
|
||||
self botmovement( left, forward );
|
||||
}
|
||||
|
||||
do_botmeleeparams( yaw, dist )
|
||||
{
|
||||
// self BotMeleeParams( yaw, dist );
|
||||
// self botmeleeparams( yaw, dist );
|
||||
}
|
||||
|
||||
do_isbot()
|
||||
{
|
||||
return self isBot();
|
||||
return self isbot();
|
||||
}
|
||||
|
||||
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 )
|
||||
{
|
||||
return GetFunction( file, threadname );
|
||||
return getfunction( file, threadname );
|
||||
}
|
||||
|
||||
do_getmins()
|
||||
{
|
||||
return self GetMins();
|
||||
return self getmins();
|
||||
}
|
||||
|
||||
do_getmaxs()
|
||||
{
|
||||
return self GetMaxs();
|
||||
return self getmaxs();
|
||||
}
|
||||
|
||||
do_getguid()
|
||||
{
|
||||
return self GetGuid();
|
||||
return self getguid();
|
||||
}
|
||||
|
||||
do_setallowedtraversals( a )
|
||||
@ -88,12 +88,12 @@ do_setignoredlinks( a )
|
||||
|
||||
do_getnodenumber()
|
||||
{
|
||||
return self GetNodeNumber();
|
||||
return self getnodenumber();
|
||||
}
|
||||
|
||||
do_getlinkednodes()
|
||||
{
|
||||
return self GetLinkedNodes();
|
||||
return self getlinkednodes();
|
||||
}
|
||||
|
||||
do_addtestclient()
|
||||
@ -113,5 +113,5 @@ do_cmdexec( a )
|
||||
|
||||
do_ishost()
|
||||
{
|
||||
return self isHost();
|
||||
return self ishost();
|
||||
}
|
||||
|
Loading…
x
Reference in New Issue
Block a user