This commit is contained in:
ineed bots
2024-01-04 16:02:38 -06:00
parent 18abf5e007
commit dd1ea5ca07
14 changed files with 1051 additions and 1045 deletions

View File

@@ -16,22 +16,22 @@ init()
{
setdvar( "bots_main_debug", 0 );
}
if ( !getdvarint( "bots_main_debug" ) || !getdvarint( "bots_main_debug_wp_vis" ) )
{
return;
}
if ( !getdvarint( "developer" ) )
{
setdvar( "developer_script", 1 );
setdvar( "developer", 2 );
setdvar( "sv_mapRotation", "map " + getdvar( "mapname" ) );
exitlevel( false );
return;
}
setdvar( "bots_main", false );
setdvar( "bots_main_menu", false );
setdvar( "bots_manage_fill_mode", 0 );
@@ -39,29 +39,29 @@ init()
setdvar( "bots_manage_add", 0 );
setdvar( "bots_manage_fill_kick", 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_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_drawThrough" ) == "" )
{
setdvar( "bots_main_debug_drawThrough", false );
}
thread load_waypoints();
level waittill( "connected", player );
player thread onPlayerSpawned();
}
@@ -69,7 +69,7 @@ init()
onPlayerSpawned()
{
self endon( "disconnect" );
for ( ;; )
{
self waittill( "spawned_player" );
@@ -81,7 +81,7 @@ beginDebug()
{
self endon( "disconnect" );
self endon( "zombified" );
self thread debug();
self thread watch_for_unlink();
self thread textScroll( "^1xDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDD" );
@@ -91,31 +91,31 @@ watch_for_unlink()
{
self endon( "disconnect" );
self endon( "zombified" );
self BotBuiltinNotifyOnPlayerCommand( "+smoke", "toggle_unlink" );
for ( ;; )
{
self waittill( "toggle_unlink" );
if ( self.closest == -1 )
{
self iprintln( "not close to node" );
continue;
}
firstwp = level.waypoints[ self.closest ];
self iprintln( "wp selected for unlink: " + firstwp BotBuiltinGetNodeNumber() );
self waittill( "toggle_unlink" );
if ( self.closest == -1 )
{
self iprintln( "not close to node" );
continue;
}
self toggle_link( firstwp, level.waypoints[ self.closest ] );
}
}
@@ -129,7 +129,7 @@ array_contains( arr, it )
return true;
}
}
return false;
}
@@ -138,10 +138,10 @@ toggle_link( firstwp, secondwp )
// check if it exists
key = firstwp BotBuiltinGetNodeNumber() + "";
secnum = secondwp BotBuiltinGetNodeNumber();
links = firstwp BotBuiltinGetLinkedNodes();
linked = false;
for ( i = 0; i < links.size; i++ )
{
if ( links[ i ] BotBuiltinGetNodeNumber() == secnum )
@@ -150,25 +150,25 @@ toggle_link( firstwp, secondwp )
break;
}
}
if ( !linked )
{
self iprintln( "no link: " + key + " " + secnum );
return;
}
if ( key == secnum + "" )
{
self iprintln( "same unlink: " + key + " " + secnum );
return;
}
if ( isdefined( level.bot_ignore_links[ key ] ) && array_contains( level.bot_ignore_links[ key ], secnum ) )
{
a = level.bot_ignore_links[ key ];
a = array_remove( a, secnum );
if ( a.size <= 0 )
{
level.bot_ignore_links[ key ] = undefined;
@@ -177,7 +177,7 @@ toggle_link( firstwp, secondwp )
{
level.bot_ignore_links[ key ] = a;
}
self iprintln( "removed unlink: " + key + " " + secnum );
BotBuiltinPrintConsole( "toggle_link: add: " + key + " " + secnum );
}
@@ -187,12 +187,12 @@ toggle_link( firstwp, secondwp )
{
level.bot_ignore_links[ key ] = [];
}
a = level.bot_ignore_links[ key ];
a[ a.size ] = secnum;
level.bot_ignore_links[ key ] = a;
self iprintln( "added unlink: " + key + " " + secnum );
BotBuiltinPrintConsole( "toggle_link: del: " + key + " " + secnum );
}
@@ -202,38 +202,38 @@ debug()
{
self endon( "disconnect" );
self endon( "zombified" );
self.closest = -1;
for ( ;; )
{
wait 0.05;
closest = -1;
myEye = self gettagorigin( "j_head" );
myAngles = self getplayerangles();
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" ) )
{
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 ] ) )
{
found = false;
this_node_num = linked[ h ] BotBuiltinGetNodeNumber();
for ( j = 0; j < level.bot_ignore_links[ node_num_str ].size; j++ )
{
if ( level.bot_ignore_links[ node_num_str ][ j ] == this_node_num )
@@ -242,18 +242,18 @@ debug()
break;
}
}
if ( found )
{
continue;
}
}
line( wpOrg, linked[ h ].origin + ( 0, 0, 25 ), ( 1, 0, 1 ) );
}
print3d( wpOrg, node_num_str, ( 1, 0, 0 ), 2 );
if ( isdefined( level.waypoints[ i ].animscript ) )
{
line( wpOrg, wpOrg + anglestoforward( level.waypoints[ i ].angles ) * 64, ( 1, 1, 1 ) );
@@ -261,7 +261,7 @@ debug()
}
}
}
if ( distance( self.origin, level.waypoints[ closest ].origin ) < 64 )
{
self.closest = closest;
@@ -285,15 +285,15 @@ textScroll( string )
self endon( "zombified" );
self endon( "disconnect" );
// thanks ActionScript
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 );
self thread destroyOnDeath( text );
for ( ;; )
{
text setpoint( "CENTER", undefined, 1200, 220 );