mirror of
https://github.com/ineedbots/iw4_bot_warfare.git
synced 2025-04-20 13:15:44 +00:00
Small vip fix, added chat notifications
This commit is contained in:
parent
d740ae15f6
commit
d851ad1ebc
@ -2050,11 +2050,15 @@ follow_target_loop()
|
|||||||
if ( randomInt( 100 ) > self.pers["bots"]["behavior"]["follow"] * 5 )
|
if ( randomInt( 100 ) > self.pers["bots"]["behavior"]["follow"] * 5 )
|
||||||
return;
|
return;
|
||||||
|
|
||||||
|
self BotNotifyBotChat( "follow_threat", "start", threat );
|
||||||
|
|
||||||
self SetScriptGoal( threat.origin, 64 );
|
self SetScriptGoal( threat.origin, 64 );
|
||||||
self thread stop_go_target_on_death( threat );
|
self thread stop_go_target_on_death( threat );
|
||||||
|
|
||||||
if ( self waittill_any_return( "new_goal", "goal", "bad_path" ) != "new_goal" )
|
if ( self waittill_any_return( "new_goal", "goal", "bad_path" ) != "new_goal" )
|
||||||
self ClearScriptGoal();
|
self ClearScriptGoal();
|
||||||
|
|
||||||
|
self BotNotifyBotChat( "follow_threat", "stop", threat );
|
||||||
}
|
}
|
||||||
|
|
||||||
/*
|
/*
|
||||||
@ -2089,6 +2093,8 @@ bot_think_camp_loop()
|
|||||||
if ( !isDefined( campSpot ) )
|
if ( !isDefined( campSpot ) )
|
||||||
return;
|
return;
|
||||||
|
|
||||||
|
self BotNotifyBotChat( "camp", "go", campSpot );
|
||||||
|
|
||||||
self SetScriptGoal( campSpot.origin, 16 );
|
self SetScriptGoal( campSpot.origin, 16 );
|
||||||
|
|
||||||
ret = self waittill_any_return( "new_goal", "goal", "bad_path" );
|
ret = self waittill_any_return( "new_goal", "goal", "bad_path" );
|
||||||
@ -2099,8 +2105,12 @@ bot_think_camp_loop()
|
|||||||
if ( ret != "goal" )
|
if ( ret != "goal" )
|
||||||
return;
|
return;
|
||||||
|
|
||||||
|
self BotNotifyBotChat( "camp", "start", campSpot );
|
||||||
|
|
||||||
self thread killCampAfterTime( randomIntRange( 30, 90 ) );
|
self thread killCampAfterTime( randomIntRange( 30, 90 ) );
|
||||||
self CampAtSpot( campSpot.origin, campSpot.origin + AnglesToForward( campSpot.angles ) * 2048 );
|
self CampAtSpot( campSpot.origin, campSpot.origin + AnglesToForward( campSpot.angles ) * 2048 );
|
||||||
|
|
||||||
|
self BotNotifyBotChat( "camp", "stop", campSpot );
|
||||||
}
|
}
|
||||||
|
|
||||||
/*
|
/*
|
||||||
@ -2226,8 +2236,12 @@ bot_think_follow_loop()
|
|||||||
if ( !isDefined( toFollow ) )
|
if ( !isDefined( toFollow ) )
|
||||||
return;
|
return;
|
||||||
|
|
||||||
|
self BotNotifyBotChat( "follow", "start", toFollow );
|
||||||
|
|
||||||
self thread killFollowAfterTime( randomIntRange( 10, 20 ) );
|
self thread killFollowAfterTime( randomIntRange( 10, 20 ) );
|
||||||
self followPlayer( toFollow );
|
self followPlayer( toFollow );
|
||||||
|
|
||||||
|
self BotNotifyBotChat( "follow", "stop", toFollow );
|
||||||
}
|
}
|
||||||
|
|
||||||
/*
|
/*
|
||||||
@ -2494,6 +2508,8 @@ bot_use_tube_think_loop( data )
|
|||||||
}
|
}
|
||||||
else
|
else
|
||||||
{
|
{
|
||||||
|
self BotNotifyBotChat( "tube", "go", tubeWp, tube );
|
||||||
|
|
||||||
self SetScriptGoal( tubeWp.origin, 16 );
|
self SetScriptGoal( tubeWp.origin, 16 );
|
||||||
|
|
||||||
ret = self waittill_any_return( "new_goal", "goal", "bad_path" );
|
ret = self waittill_any_return( "new_goal", "goal", "bad_path" );
|
||||||
@ -2517,6 +2533,8 @@ bot_use_tube_think_loop( data )
|
|||||||
if ( !isDefined( loc ) )
|
if ( !isDefined( loc ) )
|
||||||
return;
|
return;
|
||||||
|
|
||||||
|
self BotNotifyBotChat( "tube", "start", loc, tube );
|
||||||
|
|
||||||
self SetScriptAimPos( loc );
|
self SetScriptAimPos( loc );
|
||||||
self BotStopMoving( true );
|
self BotStopMoving( true );
|
||||||
wait 1;
|
wait 1;
|
||||||
@ -2618,6 +2636,8 @@ bot_use_equipment_think_loop( data )
|
|||||||
}
|
}
|
||||||
else
|
else
|
||||||
{
|
{
|
||||||
|
self BotNotifyBotChat( "equ", "go", clayWp, nade );
|
||||||
|
|
||||||
self SetScriptGoal( clayWp.origin, 16 );
|
self SetScriptGoal( clayWp.origin, 16 );
|
||||||
|
|
||||||
ret = self waittill_any_return( "new_goal", "goal", "bad_path" );
|
ret = self waittill_any_return( "new_goal", "goal", "bad_path" );
|
||||||
@ -2641,6 +2661,8 @@ bot_use_equipment_think_loop( data )
|
|||||||
if ( !isDefined( loc ) )
|
if ( !isDefined( loc ) )
|
||||||
return;
|
return;
|
||||||
|
|
||||||
|
self BotNotifyBotChat( "equ", "start", loc, nade );
|
||||||
|
|
||||||
self SetScriptAimPos( loc );
|
self SetScriptAimPos( loc );
|
||||||
self BotStopMoving( true );
|
self BotStopMoving( true );
|
||||||
wait 1;
|
wait 1;
|
||||||
@ -2740,6 +2762,8 @@ bot_use_grenade_think_loop( data )
|
|||||||
}
|
}
|
||||||
else
|
else
|
||||||
{
|
{
|
||||||
|
self BotNotifyBotChat( "nade", "go", nadeWp, nade );
|
||||||
|
|
||||||
self SetScriptGoal( nadeWp.origin, 16 );
|
self SetScriptGoal( nadeWp.origin, 16 );
|
||||||
|
|
||||||
ret = self waittill_any_return( "new_goal", "goal", "bad_path" );
|
ret = self waittill_any_return( "new_goal", "goal", "bad_path" );
|
||||||
@ -2763,6 +2787,8 @@ bot_use_grenade_think_loop( data )
|
|||||||
if ( !isDefined( loc ) )
|
if ( !isDefined( loc ) )
|
||||||
return;
|
return;
|
||||||
|
|
||||||
|
self BotNotifyBotChat( "nade", "start", loc, nade );
|
||||||
|
|
||||||
self SetScriptAimPos( loc );
|
self SetScriptAimPos( loc );
|
||||||
self BotStopMoving( true );
|
self BotStopMoving( true );
|
||||||
wait 1;
|
wait 1;
|
||||||
@ -3015,6 +3041,8 @@ bot_jav_loc_think_loop( data )
|
|||||||
}
|
}
|
||||||
else
|
else
|
||||||
{
|
{
|
||||||
|
self BotNotifyBotChat( "jav", "go", javWp );
|
||||||
|
|
||||||
self SetScriptGoal( javWp.origin, 16 );
|
self SetScriptGoal( javWp.origin, 16 );
|
||||||
|
|
||||||
ret = self waittill_any_return( "new_goal", "goal", "bad_path" );
|
ret = self waittill_any_return( "new_goal", "goal", "bad_path" );
|
||||||
@ -3038,6 +3066,8 @@ bot_jav_loc_think_loop( data )
|
|||||||
if ( !isDefined( loc ) )
|
if ( !isDefined( loc ) )
|
||||||
return;
|
return;
|
||||||
|
|
||||||
|
self BotNotifyBotChat( "jav", "start", loc );
|
||||||
|
|
||||||
self SetBotJavelinLocation( loc );
|
self SetBotJavelinLocation( loc );
|
||||||
|
|
||||||
if ( self changeToWeapon( "javelin_mp" ) )
|
if ( self changeToWeapon( "javelin_mp" ) )
|
||||||
@ -3155,6 +3185,8 @@ bot_equipment_kill_think_loop()
|
|||||||
|
|
||||||
if ( isDefined( target.enemyTrigger ) && !self HasScriptGoal() && !self.bot_lock_goal )
|
if ( isDefined( target.enemyTrigger ) && !self HasScriptGoal() && !self.bot_lock_goal )
|
||||||
{
|
{
|
||||||
|
self BotNotifyBotChat( "attack_equ", "go_ti", target );
|
||||||
|
|
||||||
self SetScriptGoal( target.origin, 64 );
|
self SetScriptGoal( target.origin, 64 );
|
||||||
self thread bot_inc_bots( target, true );
|
self thread bot_inc_bots( target, true );
|
||||||
self thread bots_watch_touch_obj( target );
|
self thread bots_watch_touch_obj( target );
|
||||||
@ -3169,20 +3201,30 @@ bot_equipment_kill_think_loop()
|
|||||||
|
|
||||||
if ( randomInt( 100 ) < self.pers["bots"]["behavior"]["camp"] * 8 )
|
if ( randomInt( 100 ) < self.pers["bots"]["behavior"]["camp"] * 8 )
|
||||||
{
|
{
|
||||||
|
self BotNotifyBotChat( "attack_equ", "camp_ti", target );
|
||||||
|
|
||||||
self thread killCampAfterTime( randomIntRange( 10, 20 ) );
|
self thread killCampAfterTime( randomIntRange( 10, 20 ) );
|
||||||
self thread killCampAfterEntGone( target );
|
self thread killCampAfterEntGone( target );
|
||||||
self CampAtSpot( target.origin, target.origin + ( 0, 0, 42 ) );
|
self CampAtSpot( target.origin, target.origin + ( 0, 0, 42 ) );
|
||||||
}
|
}
|
||||||
|
|
||||||
if ( isDefined( target ) )
|
if ( isDefined( target ) )
|
||||||
|
{
|
||||||
|
self BotNotifyBotChat( "attack_equ", "trigger_ti", target );
|
||||||
|
|
||||||
target.enemyTrigger notify( "trigger", self );
|
target.enemyTrigger notify( "trigger", self );
|
||||||
|
}
|
||||||
|
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
self BotNotifyBotChat( "attack_equ", "start", target );
|
||||||
|
|
||||||
self SetScriptEnemy( target );
|
self SetScriptEnemy( target );
|
||||||
self bot_equipment_attack( target );
|
self bot_equipment_attack( target );
|
||||||
self ClearScriptEnemy();
|
self ClearScriptEnemy();
|
||||||
|
|
||||||
|
self BotNotifyBotChat( "attack_equ", "stop", target );
|
||||||
}
|
}
|
||||||
|
|
||||||
/*
|
/*
|
||||||
@ -3307,6 +3349,8 @@ bot_listen_to_steps_loop()
|
|||||||
if ( !IsDefined( heard ) )
|
if ( !IsDefined( heard ) )
|
||||||
return;
|
return;
|
||||||
|
|
||||||
|
self BotNotifyBotChat( "heard_target", "start", heard );
|
||||||
|
|
||||||
if ( bulletTracePassed( self getEye(), heard getTagOrigin( "j_spineupper" ), false, heard ) )
|
if ( bulletTracePassed( self getEye(), heard getTagOrigin( "j_spineupper" ), false, heard ) )
|
||||||
{
|
{
|
||||||
self setAttacker( heard );
|
self setAttacker( heard );
|
||||||
@ -3320,6 +3364,8 @@ bot_listen_to_steps_loop()
|
|||||||
|
|
||||||
if ( self waittill_any_return( "goal", "bad_path", "new_goal" ) != "new_goal" )
|
if ( self waittill_any_return( "goal", "bad_path", "new_goal" ) != "new_goal" )
|
||||||
self ClearScriptGoal();
|
self ClearScriptGoal();
|
||||||
|
|
||||||
|
self BotNotifyBotChat( "heard_target", "stop", heard );
|
||||||
}
|
}
|
||||||
|
|
||||||
/*
|
/*
|
||||||
@ -3380,6 +3426,8 @@ bot_uav_think_loop()
|
|||||||
|
|
||||||
if ( ( !isSubStr( player getCurrentWeapon(), "_silencer_" ) && player.bots_firing ) || ( hasRadar && !player _hasPerk( "specialty_coldblooded" ) ) )
|
if ( ( !isSubStr( player getCurrentWeapon(), "_silencer_" ) && player.bots_firing ) || ( hasRadar && !player _hasPerk( "specialty_coldblooded" ) ) )
|
||||||
{
|
{
|
||||||
|
self BotNotifyBotChat( "uav_target", "start", player );
|
||||||
|
|
||||||
distSq = self.pers["bots"]["skill"]["help_dist"] * self.pers["bots"]["skill"]["help_dist"];
|
distSq = self.pers["bots"]["skill"]["help_dist"] * self.pers["bots"]["skill"]["help_dist"];
|
||||||
|
|
||||||
if ( distFromPlayer < distSq && bulletTracePassed( self getEye(), player getTagOrigin( "j_spineupper" ), false, player ) )
|
if ( distFromPlayer < distSq && bulletTracePassed( self getEye(), player getTagOrigin( "j_spineupper" ), false, player ) )
|
||||||
@ -3394,6 +3442,8 @@ bot_uav_think_loop()
|
|||||||
|
|
||||||
if ( self waittill_any_return( "goal", "bad_path", "new_goal" ) != "new_goal" )
|
if ( self waittill_any_return( "goal", "bad_path", "new_goal" ) != "new_goal" )
|
||||||
self ClearScriptGoal();
|
self ClearScriptGoal();
|
||||||
|
|
||||||
|
self BotNotifyBotChat( "uav_target", "stop", player );
|
||||||
}
|
}
|
||||||
|
|
||||||
break;
|
break;
|
||||||
@ -3463,10 +3513,14 @@ bot_revenge_think()
|
|||||||
if ( randomint( 100 ) < 75 )
|
if ( randomint( 100 ) < 75 )
|
||||||
return;
|
return;
|
||||||
|
|
||||||
|
self BotNotifyBotChat( "revenge", "start", loc, self.lastKiller );
|
||||||
|
|
||||||
self SetScriptGoal( loc, 64 );
|
self SetScriptGoal( loc, 64 );
|
||||||
|
|
||||||
if ( self waittill_any_return( "goal", "bad_path", "new_goal" ) != "new_goal" )
|
if ( self waittill_any_return( "goal", "bad_path", "new_goal" ) != "new_goal" )
|
||||||
self ClearScriptGoal();
|
self ClearScriptGoal();
|
||||||
|
|
||||||
|
self BotNotifyBotChat( "revenge", "stop", loc, self.lastKiller );
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -3606,6 +3660,8 @@ bot_turret_think_loop()
|
|||||||
|
|
||||||
if ( !facing && !self HasScriptGoal() && !self.bot_lock_goal )
|
if ( !facing && !self HasScriptGoal() && !self.bot_lock_goal )
|
||||||
{
|
{
|
||||||
|
self BotNotifyBotChat( "turret_attack", "go", turret );
|
||||||
|
|
||||||
self SetScriptGoal( turret.origin, 32 );
|
self SetScriptGoal( turret.origin, 32 );
|
||||||
self thread bot_inc_bots( turret, true );
|
self thread bot_inc_bots( turret, true );
|
||||||
self thread turret_death_monitor( turret );
|
self thread turret_death_monitor( turret );
|
||||||
@ -3618,9 +3674,13 @@ bot_turret_think_loop()
|
|||||||
if ( !isDefined( turret ) )
|
if ( !isDefined( turret ) )
|
||||||
return;
|
return;
|
||||||
|
|
||||||
|
self BotNotifyBotChat( "turret_attack", "start", turret );
|
||||||
|
|
||||||
self SetScriptEnemy( turret, ( 0, 0, 25 ) );
|
self SetScriptEnemy( turret, ( 0, 0, 25 ) );
|
||||||
self bot_turret_attack( turret );
|
self bot_turret_attack( turret );
|
||||||
self ClearScriptEnemy();
|
self ClearScriptEnemy();
|
||||||
|
|
||||||
|
self BotNotifyBotChat( "turret_attack", "stop", turret );
|
||||||
}
|
}
|
||||||
|
|
||||||
/*
|
/*
|
||||||
@ -3780,6 +3840,8 @@ bot_crate_think_loop( data )
|
|||||||
if ( !isDefined( crate ) )
|
if ( !isDefined( crate ) )
|
||||||
return;
|
return;
|
||||||
|
|
||||||
|
self BotNotifyBotChat( "crate_cap", "go", crate );
|
||||||
|
|
||||||
self.bot_lock_goal = true;
|
self.bot_lock_goal = true;
|
||||||
|
|
||||||
radius = GetDvarFloat( "player_useRadius" );
|
radius = GetDvarFloat( "player_useRadius" );
|
||||||
@ -3798,6 +3860,8 @@ bot_crate_think_loop( data )
|
|||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
self BotNotifyBotChat( "crate_cap", "start", crate );
|
||||||
|
|
||||||
self BotRandomStance();
|
self BotRandomStance();
|
||||||
|
|
||||||
self _DisableWeapon();
|
self _DisableWeapon();
|
||||||
@ -3818,6 +3882,8 @@ bot_crate_think_loop( data )
|
|||||||
if ( !isDefined( crate ) )
|
if ( !isDefined( crate ) )
|
||||||
return;
|
return;
|
||||||
|
|
||||||
|
self BotNotifyBotChat( "crate_cap", "stop", crate );
|
||||||
|
|
||||||
crate notify ( "captured", self );
|
crate notify ( "captured", self );
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -4080,10 +4146,14 @@ bot_target_vehicle_loop()
|
|||||||
if ( !isDefined( target ) )
|
if ( !isDefined( target ) )
|
||||||
return;
|
return;
|
||||||
|
|
||||||
|
self BotNotifyBotChat( "attack_vehicle", "start", target );
|
||||||
|
|
||||||
self SetScriptEnemy( target, ( 0, 0, 0 ) );
|
self SetScriptEnemy( target, ( 0, 0, 0 ) );
|
||||||
self bot_attack_vehicle( target );
|
self bot_attack_vehicle( target );
|
||||||
self ClearScriptEnemy();
|
self ClearScriptEnemy();
|
||||||
self notify( "bot_force_check_switch" );
|
self notify( "bot_force_check_switch" );
|
||||||
|
|
||||||
|
self BotNotifyBotChat( "attack_vehicle", "stop", target );
|
||||||
}
|
}
|
||||||
|
|
||||||
/*
|
/*
|
||||||
@ -4294,6 +4364,8 @@ bot_killstreak_think_loop( data )
|
|||||||
|
|
||||||
if ( isDefined( campSpot ) )
|
if ( isDefined( campSpot ) )
|
||||||
{
|
{
|
||||||
|
self BotNotifyBotChat( "killstreak", "camp", streakName, campSpot );
|
||||||
|
|
||||||
self SetScriptGoal( campSpot.origin, 16 );
|
self SetScriptGoal( campSpot.origin, 16 );
|
||||||
|
|
||||||
if ( self waittill_any_return( "new_goal", "goal", "bad_path" ) != "new_goal" )
|
if ( self waittill_any_return( "new_goal", "goal", "bad_path" ) != "new_goal" )
|
||||||
@ -4327,6 +4399,8 @@ bot_killstreak_think_loop( data )
|
|||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
self BotNotifyBotChat( "killstreak", "call", streakName );
|
||||||
|
|
||||||
wait 1;
|
wait 1;
|
||||||
self notify( "place_sentry" );
|
self notify( "place_sentry" );
|
||||||
wait 0.05;
|
wait 0.05;
|
||||||
@ -4358,6 +4432,8 @@ bot_killstreak_think_loop( data )
|
|||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
self BotNotifyBotChat( "killstreak", "call", streakName );
|
||||||
|
|
||||||
wait 1;
|
wait 1;
|
||||||
self notify( "bot_clear_remote_on_death" );
|
self notify( "bot_clear_remote_on_death" );
|
||||||
self BotStopMoving( false );
|
self BotStopMoving( false );
|
||||||
@ -4394,6 +4470,8 @@ bot_killstreak_think_loop( data )
|
|||||||
if ( isDefined( level.ac130player ) || level.ac130InUse )
|
if ( isDefined( level.ac130player ) || level.ac130InUse )
|
||||||
return;
|
return;
|
||||||
|
|
||||||
|
self BotNotifyBotChat( "killstreak", "call", streakName );
|
||||||
|
|
||||||
self BotRandomStance();
|
self BotRandomStance();
|
||||||
self BotStopMoving( true );
|
self BotStopMoving( true );
|
||||||
self changeToWeapon( ksWeap );
|
self changeToWeapon( ksWeap );
|
||||||
@ -4409,6 +4487,8 @@ bot_killstreak_think_loop( data )
|
|||||||
if ( isDefined( level.chopper ) )
|
if ( isDefined( level.chopper ) )
|
||||||
return;
|
return;
|
||||||
|
|
||||||
|
self BotNotifyBotChat( "killstreak", "call", streakName );
|
||||||
|
|
||||||
self BotRandomStance();
|
self BotRandomStance();
|
||||||
self BotStopMoving( true );
|
self BotStopMoving( true );
|
||||||
self changeToWeapon( ksWeap );
|
self changeToWeapon( ksWeap );
|
||||||
@ -4454,6 +4534,8 @@ bot_killstreak_think_loop( data )
|
|||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
self BotNotifyBotChat( "killstreak", "call", streakName );
|
||||||
|
|
||||||
self thread fire_current_weapon();
|
self thread fire_current_weapon();
|
||||||
|
|
||||||
ret = self waittill_any_timeout( 5, "grenade_fire" );
|
ret = self waittill_any_timeout( 5, "grenade_fire" );
|
||||||
@ -4513,6 +4595,8 @@ bot_killstreak_think_loop( data )
|
|||||||
case "emp":
|
case "emp":
|
||||||
self BotStopMoving( true );
|
self BotStopMoving( true );
|
||||||
|
|
||||||
|
self BotNotifyBotChat( "killstreak", "call", streakName );
|
||||||
|
|
||||||
if ( self changeToWeapon( ksWeap ) )
|
if ( self changeToWeapon( ksWeap ) )
|
||||||
{
|
{
|
||||||
wait 1;
|
wait 1;
|
||||||
@ -4709,12 +4793,16 @@ bot_dom_spawn_kill_think_loop()
|
|||||||
if ( DistanceSquared( self.origin, flag.origin ) < 2048 * 2048 )
|
if ( DistanceSquared( self.origin, flag.origin ) < 2048 * 2048 )
|
||||||
return;
|
return;
|
||||||
|
|
||||||
|
self BotNotifyBotChat( "dom", "start", "spawnkill", flag );
|
||||||
|
|
||||||
self SetScriptGoal( flag.origin, 1024 );
|
self SetScriptGoal( flag.origin, 1024 );
|
||||||
|
|
||||||
self thread bot_dom_watch_flags( myFlagCount, myTeam );
|
self thread bot_dom_watch_flags( myFlagCount, myTeam );
|
||||||
|
|
||||||
if ( self waittill_any_return( "goal", "bad_path", "new_goal" ) != "new_goal" )
|
if ( self waittill_any_return( "goal", "bad_path", "new_goal" ) != "new_goal" )
|
||||||
self ClearScriptGoal();
|
self ClearScriptGoal();
|
||||||
|
|
||||||
|
self BotNotifyBotChat( "dom", "stop", "spawnkill", flag );
|
||||||
}
|
}
|
||||||
|
|
||||||
/*
|
/*
|
||||||
@ -4787,6 +4875,8 @@ bot_dom_def_think_loop()
|
|||||||
if ( !isDefined( flag ) )
|
if ( !isDefined( flag ) )
|
||||||
return;
|
return;
|
||||||
|
|
||||||
|
self BotNotifyBotChat( "dom", "start", "defend", flag );
|
||||||
|
|
||||||
self SetScriptGoal( flag.origin, 128 );
|
self SetScriptGoal( flag.origin, 128 );
|
||||||
|
|
||||||
self thread bot_dom_watch_for_flashing( flag, myTeam );
|
self thread bot_dom_watch_for_flashing( flag, myTeam );
|
||||||
@ -4794,6 +4884,8 @@ bot_dom_def_think_loop()
|
|||||||
|
|
||||||
if ( self waittill_any_return( "goal", "bad_path", "new_goal" ) != "new_goal" )
|
if ( self waittill_any_return( "goal", "bad_path", "new_goal" ) != "new_goal" )
|
||||||
self ClearScriptGoal();
|
self ClearScriptGoal();
|
||||||
|
|
||||||
|
self BotNotifyBotChat( "dom", "stop", "defend", flag );
|
||||||
}
|
}
|
||||||
|
|
||||||
/*
|
/*
|
||||||
@ -4907,6 +4999,8 @@ bot_dom_cap_think_loop()
|
|||||||
if ( !isDefined( flag ) )
|
if ( !isDefined( flag ) )
|
||||||
return;
|
return;
|
||||||
|
|
||||||
|
self BotNotifyBotChat( "dom", "go", "cap", flag );
|
||||||
|
|
||||||
self.bot_lock_goal = true;
|
self.bot_lock_goal = true;
|
||||||
self SetScriptGoal( flag.origin, 64 );
|
self SetScriptGoal( flag.origin, 64 );
|
||||||
|
|
||||||
@ -4923,6 +5017,8 @@ bot_dom_cap_think_loop()
|
|||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
self BotNotifyBotChat( "dom", "start", "cap", flag );
|
||||||
|
|
||||||
self SetScriptGoal( self.origin, 64 );
|
self SetScriptGoal( self.origin, 64 );
|
||||||
|
|
||||||
while ( flag maps\mp\gametypes\dom::getFlagTeam() != myTeam && self isTouching( flag ) )
|
while ( flag maps\mp\gametypes\dom::getFlagTeam() != myTeam && self isTouching( flag ) )
|
||||||
@ -4936,6 +5032,8 @@ bot_dom_cap_think_loop()
|
|||||||
self thread bot_do_random_action_for_objective( flag );
|
self thread bot_do_random_action_for_objective( flag );
|
||||||
}
|
}
|
||||||
|
|
||||||
|
self BotNotifyBotChat( "dom", "stop", "cap", flag );
|
||||||
|
|
||||||
self ClearScriptGoal();
|
self ClearScriptGoal();
|
||||||
|
|
||||||
self.bot_lock_goal = false;
|
self.bot_lock_goal = false;
|
||||||
@ -5032,6 +5130,8 @@ bot_hq_loop()
|
|||||||
|
|
||||||
//capture it
|
//capture it
|
||||||
|
|
||||||
|
self BotNotifyBotChat( "hq", "go", "cap" );
|
||||||
|
|
||||||
self.bot_lock_goal = true;
|
self.bot_lock_goal = true;
|
||||||
self SetScriptGoal( origin, 64 );
|
self SetScriptGoal( origin, 64 );
|
||||||
self thread bot_hq_go_cap( gameobj, radio );
|
self thread bot_hq_go_cap( gameobj, radio );
|
||||||
@ -5053,6 +5153,8 @@ bot_hq_loop()
|
|||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
self BotNotifyBotChat( "hq", "start", "cap" );
|
||||||
|
|
||||||
self SetScriptGoal( self.origin, 64 );
|
self SetScriptGoal( self.origin, 64 );
|
||||||
|
|
||||||
while ( self isTouching( gameobj.trigger ) && gameobj.ownerTeam != myTeam && level.radio == radio )
|
while ( self isTouching( gameobj.trigger ) && gameobj.ownerTeam != myTeam && level.radio == radio )
|
||||||
@ -5068,11 +5170,15 @@ bot_hq_loop()
|
|||||||
|
|
||||||
self ClearScriptGoal();
|
self ClearScriptGoal();
|
||||||
self.bot_lock_goal = false;
|
self.bot_lock_goal = false;
|
||||||
|
|
||||||
|
self BotNotifyBotChat( "hq", "stop", "cap" );
|
||||||
}
|
}
|
||||||
else//we own it
|
else//we own it
|
||||||
{
|
{
|
||||||
if ( gameobj.objPoints[myteam].isFlashing ) //underattack
|
if ( gameobj.objPoints[myteam].isFlashing ) //underattack
|
||||||
{
|
{
|
||||||
|
self BotNotifyBotChat( "hq", "start", "defend" );
|
||||||
|
|
||||||
self.bot_lock_goal = true;
|
self.bot_lock_goal = true;
|
||||||
self SetScriptGoal( origin, 64 );
|
self SetScriptGoal( origin, 64 );
|
||||||
self thread bot_hq_watch_flashing( gameobj, radio );
|
self thread bot_hq_watch_flashing( gameobj, radio );
|
||||||
@ -5081,6 +5187,8 @@ bot_hq_loop()
|
|||||||
self ClearScriptGoal();
|
self ClearScriptGoal();
|
||||||
|
|
||||||
self.bot_lock_goal = false;
|
self.bot_lock_goal = false;
|
||||||
|
|
||||||
|
self BotNotifyBotChat( "hq", "stop", "defend" );
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -5213,6 +5321,8 @@ bot_sab_loop()
|
|||||||
// kill defuser
|
// kill defuser
|
||||||
if ( site isInUse() ) //somebody is defusing our bomb we planted
|
if ( site isInUse() ) //somebody is defusing our bomb we planted
|
||||||
{
|
{
|
||||||
|
self BotNotifyBotChat( "sab", "start", "defuser" );
|
||||||
|
|
||||||
self.bot_lock_goal = true;
|
self.bot_lock_goal = true;
|
||||||
self SetScriptGoal( origin, 64 );
|
self SetScriptGoal( origin, 64 );
|
||||||
|
|
||||||
@ -5222,6 +5332,8 @@ bot_sab_loop()
|
|||||||
self ClearScriptGoal();
|
self ClearScriptGoal();
|
||||||
|
|
||||||
self.bot_lock_goal = false;
|
self.bot_lock_goal = false;
|
||||||
|
|
||||||
|
self BotNotifyBotChat( "sab", "stop", "defuser" );
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -5266,6 +5378,8 @@ bot_sab_loop()
|
|||||||
if ( timepassed < 120 && timeleft >= 90 && randomInt( 100 ) < 98 )
|
if ( timepassed < 120 && timeleft >= 90 && randomInt( 100 ) < 98 )
|
||||||
return;
|
return;
|
||||||
|
|
||||||
|
self BotNotifyBotChat( "sab", "go", "plant" );
|
||||||
|
|
||||||
self.bot_lock_goal = true;
|
self.bot_lock_goal = true;
|
||||||
self SetScriptGoal( origin, 1 );
|
self SetScriptGoal( origin, 1 );
|
||||||
|
|
||||||
@ -5281,6 +5395,8 @@ bot_sab_loop()
|
|||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
self BotNotifyBotChat( "sab", "start", "plant" );
|
||||||
|
|
||||||
self BotRandomStance();
|
self BotRandomStance();
|
||||||
self SetScriptGoal( self.origin, 64 );
|
self SetScriptGoal( self.origin, 64 );
|
||||||
|
|
||||||
@ -5289,6 +5405,8 @@ bot_sab_loop()
|
|||||||
|
|
||||||
self ClearScriptGoal();
|
self ClearScriptGoal();
|
||||||
self.bot_lock_goal = false;
|
self.bot_lock_goal = false;
|
||||||
|
|
||||||
|
self BotNotifyBotChat( "sab", "stop", "plant" );
|
||||||
}
|
}
|
||||||
else if ( bombteam == otherTeam ) // the bomb is theirs, we are on the defense
|
else if ( bombteam == otherTeam ) // the bomb is theirs, we are on the defense
|
||||||
{
|
{
|
||||||
@ -5327,6 +5445,8 @@ bot_sab_loop()
|
|||||||
|
|
||||||
if ( site isInUse() ) //somebody is planting
|
if ( site isInUse() ) //somebody is planting
|
||||||
{
|
{
|
||||||
|
self BotNotifyBotChat( "sab", "start", "planter" );
|
||||||
|
|
||||||
self.bot_lock_goal = true;
|
self.bot_lock_goal = true;
|
||||||
self SetScriptGoal( origin, 64 );
|
self SetScriptGoal( origin, 64 );
|
||||||
self thread bot_inc_bots( site );
|
self thread bot_inc_bots( site );
|
||||||
@ -5337,6 +5457,8 @@ bot_sab_loop()
|
|||||||
self ClearScriptGoal();
|
self ClearScriptGoal();
|
||||||
|
|
||||||
self.bot_lock_goal = false;
|
self.bot_lock_goal = false;
|
||||||
|
|
||||||
|
self BotNotifyBotChat( "sab", "stop", "planter" );
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -5382,6 +5504,8 @@ bot_sab_loop()
|
|||||||
}
|
}
|
||||||
|
|
||||||
// lets go defuse
|
// lets go defuse
|
||||||
|
self BotNotifyBotChat( "sab", "go", "defuse" );
|
||||||
|
|
||||||
self.bot_lock_goal = true;
|
self.bot_lock_goal = true;
|
||||||
|
|
||||||
self SetScriptGoal( origin, 1 );
|
self SetScriptGoal( origin, 1 );
|
||||||
@ -5399,6 +5523,8 @@ bot_sab_loop()
|
|||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
self BotNotifyBotChat( "sab", "start", "defuse" );
|
||||||
|
|
||||||
self BotRandomStance();
|
self BotRandomStance();
|
||||||
self SetScriptGoal( self.origin, 64 );
|
self SetScriptGoal( self.origin, 64 );
|
||||||
|
|
||||||
@ -5407,11 +5533,15 @@ bot_sab_loop()
|
|||||||
self ClearScriptGoal();
|
self ClearScriptGoal();
|
||||||
|
|
||||||
self.bot_lock_goal = false;
|
self.bot_lock_goal = false;
|
||||||
|
|
||||||
|
self BotNotifyBotChat( "sab", "stop", "defuse" );
|
||||||
}
|
}
|
||||||
else // we need to go get the bomb!
|
else // we need to go get the bomb!
|
||||||
{
|
{
|
||||||
origin = ( bomb.curorigin[0], bomb.curorigin[1], bomb.curorigin[2] + 5 );
|
origin = ( bomb.curorigin[0], bomb.curorigin[1], bomb.curorigin[2] + 5 );
|
||||||
|
|
||||||
|
self BotNotifyBotChat( "sab", "start", "bomb" );
|
||||||
|
|
||||||
self.bot_lock_goal = true;
|
self.bot_lock_goal = true;
|
||||||
self SetScriptGoal( origin, 64 );
|
self SetScriptGoal( origin, 64 );
|
||||||
|
|
||||||
@ -5421,6 +5551,8 @@ bot_sab_loop()
|
|||||||
self ClearScriptGoal();
|
self ClearScriptGoal();
|
||||||
|
|
||||||
self.bot_lock_goal = false;
|
self.bot_lock_goal = false;
|
||||||
|
|
||||||
|
self BotNotifyBotChat( "sab", "stop", "bomb" );
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
@ -5529,6 +5661,8 @@ bot_sd_defenders_loop( data )
|
|||||||
|
|
||||||
if ( site isInUse() ) //somebody is planting
|
if ( site isInUse() ) //somebody is planting
|
||||||
{
|
{
|
||||||
|
self BotNotifyBotChat( "sd", "start", "planter", site );
|
||||||
|
|
||||||
self.bot_lock_goal = true;
|
self.bot_lock_goal = true;
|
||||||
self SetScriptGoal( origin, 64 );
|
self SetScriptGoal( origin, 64 );
|
||||||
|
|
||||||
@ -5538,6 +5672,8 @@ bot_sd_defenders_loop( data )
|
|||||||
self ClearScriptGoal();
|
self ClearScriptGoal();
|
||||||
|
|
||||||
self.bot_lock_goal = false;
|
self.bot_lock_goal = false;
|
||||||
|
|
||||||
|
self BotNotifyBotChat( "sd", "stop", "planter", site );
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -5585,6 +5721,8 @@ bot_sd_defenders_loop( data )
|
|||||||
}
|
}
|
||||||
|
|
||||||
// lets defuse
|
// lets defuse
|
||||||
|
self BotNotifyBotChat( "sd", "go", "defuse" );
|
||||||
|
|
||||||
self.bot_lock_goal = true;
|
self.bot_lock_goal = true;
|
||||||
self SetScriptGoal( origin, 1 );
|
self SetScriptGoal( origin, 1 );
|
||||||
self thread bot_inc_bots( defuse );
|
self thread bot_inc_bots( defuse );
|
||||||
@ -5601,6 +5739,8 @@ bot_sd_defenders_loop( data )
|
|||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
self BotNotifyBotChat( "sd", "start", "defuse" );
|
||||||
|
|
||||||
self BotRandomStance();
|
self BotRandomStance();
|
||||||
self SetScriptGoal( self.origin, 64 );
|
self SetScriptGoal( self.origin, 64 );
|
||||||
|
|
||||||
@ -5608,6 +5748,8 @@ bot_sd_defenders_loop( data )
|
|||||||
wait 1;
|
wait 1;
|
||||||
self ClearScriptGoal();
|
self ClearScriptGoal();
|
||||||
self.bot_lock_goal = false;
|
self.bot_lock_goal = false;
|
||||||
|
|
||||||
|
self BotNotifyBotChat( "sd", "stop", "defuse" );
|
||||||
}
|
}
|
||||||
|
|
||||||
/*
|
/*
|
||||||
@ -5674,6 +5816,8 @@ bot_sd_attackers_loop( data )
|
|||||||
|
|
||||||
if ( site IsInUse() ) //somebody is defusing
|
if ( site IsInUse() ) //somebody is defusing
|
||||||
{
|
{
|
||||||
|
self BotNotifyBotChat( "sd", "start", "defuser" );
|
||||||
|
|
||||||
self.bot_lock_goal = true;
|
self.bot_lock_goal = true;
|
||||||
|
|
||||||
self SetScriptGoal( origin, 64 );
|
self SetScriptGoal( origin, 64 );
|
||||||
@ -5684,6 +5828,8 @@ bot_sd_attackers_loop( data )
|
|||||||
self ClearScriptGoal();
|
self ClearScriptGoal();
|
||||||
|
|
||||||
self.bot_lock_goal = false;
|
self.bot_lock_goal = false;
|
||||||
|
|
||||||
|
self BotNotifyBotChat( "sd", "stop", "defuser" );
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -5759,6 +5905,8 @@ bot_sd_attackers_loop( data )
|
|||||||
}
|
}
|
||||||
|
|
||||||
// go get the bomb
|
// go get the bomb
|
||||||
|
self BotNotifyBotChat( "sd", "start", "bomb" );
|
||||||
|
|
||||||
self.bot_lock_goal = true;
|
self.bot_lock_goal = true;
|
||||||
self SetScriptGoal( origin, 64 );
|
self SetScriptGoal( origin, 64 );
|
||||||
self thread bot_inc_bots( bomb );
|
self thread bot_inc_bots( bomb );
|
||||||
@ -5768,6 +5916,8 @@ bot_sd_attackers_loop( data )
|
|||||||
self ClearScriptGoal();
|
self ClearScriptGoal();
|
||||||
|
|
||||||
self.bot_lock_goal = false;
|
self.bot_lock_goal = false;
|
||||||
|
|
||||||
|
self BotNotifyBotChat( "sd", "stop", "bomb" );
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -5798,6 +5948,8 @@ bot_sd_attackers_loop( data )
|
|||||||
|
|
||||||
origin = ( plant.curorigin[0] + 50, plant.curorigin[1] + 50, plant.curorigin[2] + 5 );
|
origin = ( plant.curorigin[0] + 50, plant.curorigin[1] + 50, plant.curorigin[2] + 5 );
|
||||||
|
|
||||||
|
self BotNotifyBotChat( "sd", "go", "plant", plant );
|
||||||
|
|
||||||
self.bot_lock_goal = true;
|
self.bot_lock_goal = true;
|
||||||
self SetScriptGoal( origin, 1 );
|
self SetScriptGoal( origin, 1 );
|
||||||
self thread bot_go_plant( plant );
|
self thread bot_go_plant( plant );
|
||||||
@ -5813,6 +5965,8 @@ bot_sd_attackers_loop( data )
|
|||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
self BotNotifyBotChat( "sd", "start", "plant", plant );
|
||||||
|
|
||||||
self BotRandomStance();
|
self BotRandomStance();
|
||||||
self SetScriptGoal( self.origin, 64 );
|
self SetScriptGoal( self.origin, 64 );
|
||||||
|
|
||||||
@ -5821,6 +5975,8 @@ bot_sd_attackers_loop( data )
|
|||||||
|
|
||||||
self ClearScriptGoal();
|
self ClearScriptGoal();
|
||||||
self.bot_lock_goal = false;
|
self.bot_lock_goal = false;
|
||||||
|
|
||||||
|
self BotNotifyBotChat( "sd", "stop", "plant", plant );
|
||||||
}
|
}
|
||||||
|
|
||||||
/*
|
/*
|
||||||
@ -5869,10 +6025,22 @@ bot_cap_loop()
|
|||||||
if ( !isDefined( carrier ) ) //someone doesnt has our flag
|
if ( !isDefined( carrier ) ) //someone doesnt has our flag
|
||||||
{
|
{
|
||||||
if ( !isDefined( theirflag.carrier ) && DistanceSquared( self.origin, theirflag.curorigin ) < DistanceSquared( self.origin, myflag.curorigin ) ) //no one has their flag and its closer
|
if ( !isDefined( theirflag.carrier ) && DistanceSquared( self.origin, theirflag.curorigin ) < DistanceSquared( self.origin, myflag.curorigin ) ) //no one has their flag and its closer
|
||||||
|
{
|
||||||
|
self BotNotifyBotChat( "cap", "start", "their_flag", theirflag );
|
||||||
|
|
||||||
self bot_cap_get_flag( theirflag );
|
self bot_cap_get_flag( theirflag );
|
||||||
|
|
||||||
|
self BotNotifyBotChat( "cap", "stop", "their_flag", theirflag );
|
||||||
|
}
|
||||||
else//go get it
|
else//go get it
|
||||||
|
{
|
||||||
|
self BotNotifyBotChat( "cap", "start", "my_flag", myflag );
|
||||||
|
|
||||||
self bot_cap_get_flag( myflag );
|
self bot_cap_get_flag( myflag );
|
||||||
|
|
||||||
|
self BotNotifyBotChat( "cap", "stop", "my_flag", myflag );
|
||||||
|
}
|
||||||
|
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
else
|
else
|
||||||
@ -5880,7 +6048,11 @@ bot_cap_loop()
|
|||||||
if ( theirflag maps\mp\gametypes\_gameobjects::isHome() && randomint( 100 ) < 50 )
|
if ( theirflag maps\mp\gametypes\_gameobjects::isHome() && randomint( 100 ) < 50 )
|
||||||
{
|
{
|
||||||
//take their flag
|
//take their flag
|
||||||
|
self BotNotifyBotChat( "cap", "start", "their_flag", theirflag );
|
||||||
|
|
||||||
self bot_cap_get_flag( theirflag );
|
self bot_cap_get_flag( theirflag );
|
||||||
|
|
||||||
|
self BotNotifyBotChat( "cap", "stop", "their_flag", theirflag );
|
||||||
}
|
}
|
||||||
else
|
else
|
||||||
{
|
{
|
||||||
@ -5936,6 +6108,8 @@ bot_cap_loop()
|
|||||||
//go cap
|
//go cap
|
||||||
origin = myzone.curorigin;
|
origin = myzone.curorigin;
|
||||||
|
|
||||||
|
self BotNotifyBotChat( "cap", "start", "cap" );
|
||||||
|
|
||||||
self.bot_lock_goal = true;
|
self.bot_lock_goal = true;
|
||||||
self SetScriptGoal( origin, 32 );
|
self SetScriptGoal( origin, 32 );
|
||||||
|
|
||||||
@ -5948,6 +6122,8 @@ bot_cap_loop()
|
|||||||
self ClearScriptGoal();
|
self ClearScriptGoal();
|
||||||
|
|
||||||
self.bot_lock_goal = false;
|
self.bot_lock_goal = false;
|
||||||
|
|
||||||
|
self BotNotifyBotChat( "cap", "stop", "cap" );
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -6227,6 +6403,8 @@ bot_dem_attackers_loop()
|
|||||||
|
|
||||||
if ( site IsInUse() ) //somebody is defusing
|
if ( site IsInUse() ) //somebody is defusing
|
||||||
{
|
{
|
||||||
|
self BotNotifyBotChat( "dem", "start", "defuser", site );
|
||||||
|
|
||||||
self.bot_lock_goal = true;
|
self.bot_lock_goal = true;
|
||||||
self SetScriptGoal( origin, 64 );
|
self SetScriptGoal( origin, 64 );
|
||||||
|
|
||||||
@ -6236,6 +6414,8 @@ bot_dem_attackers_loop()
|
|||||||
self ClearScriptGoal();
|
self ClearScriptGoal();
|
||||||
|
|
||||||
self.bot_lock_goal = false;
|
self.bot_lock_goal = false;
|
||||||
|
|
||||||
|
self BotNotifyBotChat( "dem", "stop", "defuser", site );
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -6285,6 +6465,8 @@ bot_dem_attackers_loop()
|
|||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
self BotNotifyBotChat( "dem", "go", "plant", plant );
|
||||||
|
|
||||||
self.bot_lock_goal = true;
|
self.bot_lock_goal = true;
|
||||||
|
|
||||||
self SetScriptGoal( origin, 1 );
|
self SetScriptGoal( origin, 1 );
|
||||||
@ -6302,6 +6484,8 @@ bot_dem_attackers_loop()
|
|||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
self BotNotifyBotChat( "dem", "start", "plant", plant );
|
||||||
|
|
||||||
self BotRandomStance();
|
self BotRandomStance();
|
||||||
self SetScriptGoal( self.origin, 64 );
|
self SetScriptGoal( self.origin, 64 );
|
||||||
|
|
||||||
@ -6311,6 +6495,8 @@ bot_dem_attackers_loop()
|
|||||||
self ClearScriptGoal();
|
self ClearScriptGoal();
|
||||||
|
|
||||||
self.bot_lock_goal = false;
|
self.bot_lock_goal = false;
|
||||||
|
|
||||||
|
self BotNotifyBotChat( "dem", "stop", "plant", plant );
|
||||||
}
|
}
|
||||||
|
|
||||||
/*
|
/*
|
||||||
@ -6453,6 +6639,8 @@ bot_dem_defenders_loop()
|
|||||||
|
|
||||||
if ( site IsInUse() ) //somebody is planting
|
if ( site IsInUse() ) //somebody is planting
|
||||||
{
|
{
|
||||||
|
self BotNotifyBotChat( "dem", "start", "planter", site );
|
||||||
|
|
||||||
self.bot_lock_goal = true;
|
self.bot_lock_goal = true;
|
||||||
self SetScriptGoal( origin, 64 );
|
self SetScriptGoal( origin, 64 );
|
||||||
|
|
||||||
@ -6462,6 +6650,8 @@ bot_dem_defenders_loop()
|
|||||||
self ClearScriptGoal();
|
self ClearScriptGoal();
|
||||||
|
|
||||||
self.bot_lock_goal = false;
|
self.bot_lock_goal = false;
|
||||||
|
|
||||||
|
self BotNotifyBotChat( "dem", "stop", "planter", site );
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -6514,6 +6704,8 @@ bot_dem_defenders_loop()
|
|||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
self BotNotifyBotChat( "dem", "go", "defuse", defuse );
|
||||||
|
|
||||||
self.bot_lock_goal = true;
|
self.bot_lock_goal = true;
|
||||||
|
|
||||||
self SetScriptGoal( origin, 1 );
|
self SetScriptGoal( origin, 1 );
|
||||||
@ -6531,6 +6723,8 @@ bot_dem_defenders_loop()
|
|||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
self BotNotifyBotChat( "dem", "start", "defuse", defuse );
|
||||||
|
|
||||||
self BotRandomStance();
|
self BotRandomStance();
|
||||||
self SetScriptGoal( self.origin, 64 );
|
self SetScriptGoal( self.origin, 64 );
|
||||||
|
|
||||||
@ -6540,6 +6734,8 @@ bot_dem_defenders_loop()
|
|||||||
self ClearScriptGoal();
|
self ClearScriptGoal();
|
||||||
|
|
||||||
self.bot_lock_goal = false;
|
self.bot_lock_goal = false;
|
||||||
|
|
||||||
|
self BotNotifyBotChat( "dem", "stop", "defuse", defuse );
|
||||||
}
|
}
|
||||||
|
|
||||||
/*
|
/*
|
||||||
@ -6650,6 +6846,8 @@ bot_think_revive_loop()
|
|||||||
return;
|
return;
|
||||||
|
|
||||||
revive = random( needsRevives );
|
revive = random( needsRevives );
|
||||||
|
|
||||||
|
self BotNotifyBotChat( "revive", "go", revive );
|
||||||
self.bot_lock_goal = true;
|
self.bot_lock_goal = true;
|
||||||
|
|
||||||
self SetScriptGoal( revive.origin, 64 );
|
self SetScriptGoal( revive.origin, 64 );
|
||||||
@ -6665,6 +6863,8 @@ bot_think_revive_loop()
|
|||||||
if ( ret != "goal" || !isDefined( revive ) || distanceSquared( self.origin, revive.origin ) >= 100 * 100 || !revive inLastStand() || revive isBeingRevived() || !isAlive( revive ) )
|
if ( ret != "goal" || !isDefined( revive ) || distanceSquared( self.origin, revive.origin ) >= 100 * 100 || !revive inLastStand() || revive isBeingRevived() || !isAlive( revive ) )
|
||||||
return;
|
return;
|
||||||
|
|
||||||
|
self BotNotifyBotChat( "revive", "start", revive );
|
||||||
|
|
||||||
self _DisableWeapon();
|
self _DisableWeapon();
|
||||||
self BotFreezeControls( true );
|
self BotFreezeControls( true );
|
||||||
|
|
||||||
@ -6696,6 +6896,8 @@ bot_think_revive_loop()
|
|||||||
revive.beingRevived = false;
|
revive.beingRevived = false;
|
||||||
|
|
||||||
// reviveEnt delete();
|
// reviveEnt delete();
|
||||||
|
|
||||||
|
self BotNotifyBotChat( "revive", "stop", revive );
|
||||||
}
|
}
|
||||||
|
|
||||||
/*
|
/*
|
||||||
@ -6747,6 +6949,8 @@ bot_gtnw_loop()
|
|||||||
if ( ( !ourCapCount && !theirCapCount ) || rand <= 20 )
|
if ( ( !ourCapCount && !theirCapCount ) || rand <= 20 )
|
||||||
{
|
{
|
||||||
// go cap the obj
|
// go cap the obj
|
||||||
|
self BotNotifyBotChat( "gtnw", "go", "cap" );
|
||||||
|
|
||||||
self.bot_lock_goal = true;
|
self.bot_lock_goal = true;
|
||||||
self SetScriptGoal( origin, 64 );
|
self SetScriptGoal( origin, 64 );
|
||||||
self thread bots_watch_touch_obj( trigger );
|
self thread bots_watch_touch_obj( trigger );
|
||||||
@ -6762,6 +6966,8 @@ bot_gtnw_loop()
|
|||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
self BotNotifyBotChat( "gtnw", "start", "cap" );
|
||||||
|
|
||||||
self SetScriptGoal( self.origin, 64 );
|
self SetScriptGoal( self.origin, 64 );
|
||||||
|
|
||||||
while ( self isTouching( trigger ) )
|
while ( self isTouching( trigger ) )
|
||||||
@ -6777,6 +6983,8 @@ bot_gtnw_loop()
|
|||||||
|
|
||||||
self ClearScriptGoal();
|
self ClearScriptGoal();
|
||||||
self.bot_lock_goal = false;
|
self.bot_lock_goal = false;
|
||||||
|
|
||||||
|
self BotNotifyBotChat( "gtnw", "stop", "cap" );
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -6854,6 +7062,8 @@ bot_oneflag_loop()
|
|||||||
//go cap
|
//go cap
|
||||||
origin = myzone.curorigin;
|
origin = myzone.curorigin;
|
||||||
|
|
||||||
|
self BotNotifyBotChat( "oneflag", "start", "cap" );
|
||||||
|
|
||||||
self.bot_lock_goal = true;
|
self.bot_lock_goal = true;
|
||||||
self SetScriptGoal( origin, 32 );
|
self SetScriptGoal( origin, 32 );
|
||||||
|
|
||||||
@ -6865,6 +7075,8 @@ bot_oneflag_loop()
|
|||||||
self ClearScriptGoal();
|
self ClearScriptGoal();
|
||||||
|
|
||||||
self.bot_lock_goal = false;
|
self.bot_lock_goal = false;
|
||||||
|
|
||||||
|
self BotNotifyBotChat( "oneflag", "stop", "cap" );
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -6872,7 +7084,9 @@ bot_oneflag_loop()
|
|||||||
|
|
||||||
if ( !isDefined( carrier ) ) //if no one has enemy flag
|
if ( !isDefined( carrier ) ) //if no one has enemy flag
|
||||||
{
|
{
|
||||||
|
self BotNotifyBotChat( "oneflag", "start", "their_flag" );
|
||||||
self bot_cap_get_flag( theirflag );
|
self bot_cap_get_flag( theirflag );
|
||||||
|
self BotNotifyBotChat( "oneflag", "stop", "their_flag" );
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -6903,7 +7117,9 @@ bot_oneflag_loop()
|
|||||||
|
|
||||||
if ( !isDefined( carrier ) ) //someone doesnt has our flag
|
if ( !isDefined( carrier ) ) //someone doesnt has our flag
|
||||||
{
|
{
|
||||||
|
self BotNotifyBotChat( "oneflag", "start", "my_flag" );
|
||||||
self bot_cap_get_flag( myflag );
|
self bot_cap_get_flag( myflag );
|
||||||
|
self BotNotifyBotChat( "oneflag", "stop", "my_flag" );
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -7006,6 +7222,8 @@ bot_arena_loop()
|
|||||||
flag = level.arenaFlag;
|
flag = level.arenaFlag;
|
||||||
myTeam = self.team;
|
myTeam = self.team;
|
||||||
|
|
||||||
|
self BotNotifyBotChat( "arena", "go", "cap" );
|
||||||
|
|
||||||
self.bot_lock_goal = true;
|
self.bot_lock_goal = true;
|
||||||
self SetScriptGoal( flag.trigger.origin, 64 );
|
self SetScriptGoal( flag.trigger.origin, 64 );
|
||||||
|
|
||||||
@ -7020,6 +7238,8 @@ bot_arena_loop()
|
|||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
self BotNotifyBotChat( "arena", "start", "cap" );
|
||||||
|
|
||||||
self SetScriptGoal( self.origin, 64 );
|
self SetScriptGoal( self.origin, 64 );
|
||||||
|
|
||||||
while ( self isTouching( flag.trigger ) && flag.ownerTeam != myTeam )
|
while ( self isTouching( flag.trigger ) && flag.ownerTeam != myTeam )
|
||||||
@ -7035,6 +7255,8 @@ bot_arena_loop()
|
|||||||
|
|
||||||
self ClearScriptGoal();
|
self ClearScriptGoal();
|
||||||
self.bot_lock_goal = false;
|
self.bot_lock_goal = false;
|
||||||
|
|
||||||
|
self BotNotifyBotChat( "arena", "stop", "cap" );
|
||||||
}
|
}
|
||||||
|
|
||||||
/*
|
/*
|
||||||
@ -7085,7 +7307,7 @@ bot_vip_loop()
|
|||||||
if ( !isReallyAlive( player ) )
|
if ( !isReallyAlive( player ) )
|
||||||
continue;
|
continue;
|
||||||
|
|
||||||
if ( isDefined( self.isVip ) && self.isVip )
|
if ( isDefined( player.isVip ) && player.isVip )
|
||||||
vip = player;
|
vip = player;
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -7096,6 +7318,8 @@ bot_vip_loop()
|
|||||||
if ( isDefined( level.extractionZone ) && !isDefined( level.extractionTime ) )
|
if ( isDefined( level.extractionZone ) && !isDefined( level.extractionTime ) )
|
||||||
{
|
{
|
||||||
// go to extraction zone
|
// go to extraction zone
|
||||||
|
self BotNotifyBotChat( "vip", "start", "cap" );
|
||||||
|
|
||||||
self.bot_lock_goal = true;
|
self.bot_lock_goal = true;
|
||||||
self SetScriptGoal( level.extractionZone.trigger.origin, 32 );
|
self SetScriptGoal( level.extractionZone.trigger.origin, 32 );
|
||||||
|
|
||||||
@ -7107,6 +7331,8 @@ bot_vip_loop()
|
|||||||
self ClearScriptGoal();
|
self ClearScriptGoal();
|
||||||
|
|
||||||
self.bot_lock_goal = false;
|
self.bot_lock_goal = false;
|
||||||
|
|
||||||
|
self BotNotifyBotChat( "vip", "stop", "cap" );
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
else if ( isDefined( vip ) )
|
else if ( isDefined( vip ) )
|
||||||
|
@ -230,6 +230,14 @@ BotStopMoving( what )
|
|||||||
self notify( "kill_goal" );
|
self notify( "kill_goal" );
|
||||||
}
|
}
|
||||||
|
|
||||||
|
/*
|
||||||
|
Notify the bot chat message
|
||||||
|
*/
|
||||||
|
BotNotifyBotChat( msg, a, b, c, d, e, f, g )
|
||||||
|
{
|
||||||
|
self notify( "bot_chat_" + msg, a, b, c, d, e, f, g );
|
||||||
|
}
|
||||||
|
|
||||||
/*
|
/*
|
||||||
Returns if the bot has a script goal.
|
Returns if the bot has a script goal.
|
||||||
(like t5 gsc bot)
|
(like t5 gsc bot)
|
||||||
@ -781,19 +789,6 @@ Round( x )
|
|||||||
return y;
|
return y;
|
||||||
}
|
}
|
||||||
|
|
||||||
/*
|
|
||||||
Rounds up the given value.
|
|
||||||
*/
|
|
||||||
RoundUp( floatVal )
|
|
||||||
{
|
|
||||||
i = int( floatVal );
|
|
||||||
|
|
||||||
if ( i != floatVal )
|
|
||||||
return i + 1;
|
|
||||||
else
|
|
||||||
return i;
|
|
||||||
}
|
|
||||||
|
|
||||||
/*
|
/*
|
||||||
converts a string into a float
|
converts a string into a float
|
||||||
*/
|
*/
|
||||||
|
Loading…
x
Reference in New Issue
Block a user