Bots use ac130, osprey and agm

This commit is contained in:
ineedbots 2021-06-01 16:30:48 -06:00
parent 5e3f787f54
commit 42802dce54
2 changed files with 95 additions and 34 deletions

View File

@ -319,25 +319,41 @@ watchUsingRemote()
if (isDefined(level.chopper) && isDefined(level.chopper.gunner) && level.chopper.gunner == self) if (isDefined(level.chopper) && isDefined(level.chopper.gunner) && level.chopper.gunner == self)
{ {
self watchUsingMinigun(); self watchUsingMinigun();
if (isReallyAlive(self))
{
self changeToWeap(self getLastWeapon());
self.bot.targets = [];
}
} }
if (isDefined(level.ac130Player) && level.ac130player == self) if (isDefined(level.ac130Player) && level.ac130player == self)
{ {
self thread watchAc130Weapon(); self thread watchAc130Weapon();
self watchUsingAc130(); self watchUsingAc130();
}
if (isReallyAlive(self)) if (isDefined(level.remote_mortar) && isDefined(level.remote_mortar.owner) && level.remote_mortar.owner == self)
{ {
self changeToWeap(self getLastWeapon()); self watchUsingMortar();
}
self.bot.targets = []; self.bot.targets = [];
} }
} }
/*
Uses mortar
*/
watchUsingMortar()
{
level.remote_mortar endon("remote_done");
while (isDefined(level.remote_mortar) && isDefined(level.remote_mortar.owner) && level.remote_mortar.owner == self)
{
if (self getCurrentWeapon() != "mortar_remote_mp")
{
self changeToWeap("mortar_remote_mp");
}
if (isDefined(self.bot.target))
self thread pressFire();
wait 0.05;
} }
} }

View File

@ -1891,11 +1891,11 @@ changeToWeapon(weap)
if (!self HasWeapon(weap)) if (!self HasWeapon(weap))
return false; return false;
self BotChangeToWeapon(weap);
if (self GetCurrentWeapon() == weap) if (self GetCurrentWeapon() == weap)
return true; return true;
self BotChangeToWeapon(weap);
self waittill_any_timeout(5, "weapon_change"); self waittill_any_timeout(5, "weapon_change");
return (self GetCurrentWeapon() == weap); return (self GetCurrentWeapon() == weap);
@ -2649,7 +2649,7 @@ bot_watch_think_mw2_loop()
if (randomInt(100) > self.pers["bots"]["behavior"]["nade"]) if (randomInt(100) > self.pers["bots"]["behavior"]["nade"])
return; return;
self ChangeToWeapon(tube); self thread ChangeToWeapon(tube);
} }
/* /*
@ -2736,7 +2736,7 @@ bot_watch_riot_weapons_loop()
if(weap == "") if(weap == "")
return; return;
self ChangeToWeapon(weap); self thread ChangeToWeapon(weap);
} }
} }
@ -4053,9 +4053,9 @@ doReloadCancel_loop()
// do the cancel // do the cancel
wait 0.1; wait 0.1;
self BotChangeToWeapon(weap); self thread ChangeToWeapon(weap);
wait 0.25; wait 0.25;
self BotChangeToWeapon(curWeap); self thread ChangeToWeapon(curWeap);
wait 2; wait 2;
} }
@ -4437,6 +4437,15 @@ bot_killstreak_think_loop(data)
if (self HasScriptAimPos()) if (self HasScriptAimPos())
return; return;
if (streakName == "remote_uav" || streakName == "remote_tank")
{
if ( (isDefined( level.remote_uav[self.team] ) || level.littleBirds.size >= 4) && streakName == "remote_uav" )
return;
if( currentActiveVehicleCount() >= maxVehiclesAllowed() || level.fauxVehicleCount + 1 >= maxVehiclesAllowed() )
return;
}
myEye = self GetEye(); myEye = self GetEye();
angles = self GetPlayerAngles(); angles = self GetPlayerAngles();
@ -4492,8 +4501,6 @@ bot_killstreak_think_loop(data)
self notify(cancelNot); self notify(cancelNot);
wait 0.5; wait 0.5;
self thread changeToWeapon(curWeap);
self BotStopMoving(false); self BotStopMoving(false);
self ClearScriptAimPos(); self ClearScriptAimPos();
} }
@ -4517,13 +4524,13 @@ bot_killstreak_think_loop(data)
} }
wait 0.05; wait 0.05;
self BotChangeToWeapon(ksWeap); self thread ChangeToWeapon(ksWeap); // prevent script from changing back
wait 1; wait 1;
self notify("bot_clear_remote_on_death"); self notify("bot_clear_remote_on_death");
self BotStopMoving(false); self BotStopMoving(false);
if (self isEMPed()) if (self isEMPed() || self isNuked())
{ {
self ClearUsingRemote(); self ClearUsingRemote();
self thread changeToWeapon(curWeap); self thread changeToWeapon(curWeap);
@ -4547,21 +4554,55 @@ bot_killstreak_think_loop(data)
wait 1; wait 1;
self BotFreezeControls(false); self BotFreezeControls(false);
self thread changeToWeapon(curWeap);
} }
else if (streakName == "ac130") // remote_mortar osprey_gunner deployable_vest else if (streakName == "ac130" || streakName == "remote_mortar" || streakName == "osprey_gunner")
{
if (streakName == "ac130")
{ {
if ( isDefined( level.ac130player ) || level.ac130InUse ) if ( isDefined( level.ac130player ) || level.ac130InUse )
return; return;
}
if (streakName == "remote_mortar")
{
if (isDefined( level.remote_mortar ))
return;
}
location = undefined;
directionYaw = undefined;
if (streakName == "osprey_gunner")
{
if ( isDefined( level.chopper ) )
return;
if( currentActiveVehicleCount() >= maxVehiclesAllowed() || level.fauxVehicleCount + 1 >= maxVehiclesAllowed() )
return;
location = self getKillstreakTargetLocation();
directionYaw = randomInt(360);
if (!isDefined(location))
return;
}
self BotStopMoving(true); self BotStopMoving(true);
self changeToWeapon(ksWeap);
if (self changeToWeapon(ksWeap))
{
wait 1;
if (isDefined(location))
{
self notify( "confirm_location", location, directionYaw );
}
}
wait 2;
self BotStopMoving(false); self BotStopMoving(false);
}
else if (streakName == "deployable_vest")
{
wait 3;
if ( !isDefined( level.ac130player ) || level.ac130player != self )
self thread changeToWeapon(curWeap);
} }
} }
else else
@ -4609,7 +4650,6 @@ bot_killstreak_think_loop(data)
ret = self waittill_any_timeout( 5, "grenade_fire" ); ret = self waittill_any_timeout( 5, "grenade_fire" );
self notify("stop_firing_weapon"); self notify("stop_firing_weapon");
self thread changeToWeapon(curWeap);
if (ret == "timeout") if (ret == "timeout")
{ {
@ -4690,8 +4730,6 @@ bot_killstreak_think_loop(data)
self BotFreezeControls(false); self BotFreezeControls(false);
} }
self thread changeToWeapon(curWeap);
} }
self BotStopMoving(false); self BotStopMoving(false);
@ -4713,6 +4751,13 @@ bot_killstreak_think()
data = spawnStruct(); data = spawnStruct();
data.doFastContinue = undefined; data.doFastContinue = undefined;
if (randomInt(2))
self maps\mp\killstreaks\_killstreaks::giveKillstreak("ac130");
else if (randomInt(2))
self maps\mp\killstreaks\_killstreaks::giveKillstreak("osprey_gunner");
else
self maps\mp\killstreaks\_killstreaks::giveKillstreak("remote_mortar");
for (;;) for (;;)
{ {
self bot_killstreak_think_loop(data); self bot_killstreak_think_loop(data);