This commit is contained in:
Your Name 2020-08-17 14:00:16 -06:00
parent 86097d7d51
commit bc79ea7e9c
2 changed files with 170 additions and 41 deletions

View File

@ -925,7 +925,7 @@ onLastStand()
while (!self inLastStand()) while (!self inLastStand())
wait 0.05; wait 0.05;
if (!self inFinalStand()) if (!self inFinalStand() && !self IsUsingRemote())
{ {
pistol = undefined; pistol = undefined;
weaponsList = self GetWeaponsListPrimaries(); weaponsList = self GetWeaponsListPrimaries();
@ -1015,10 +1015,13 @@ watchUsingAc130()
while (isDefined(level.ac130Player) && level.ac130player == self) while (isDefined(level.ac130Player) && level.ac130player == self)
{ {
self SetWeaponAmmoClip("ac130_105mm_mp", 999);
self setspawnweapon("ac130_105mm_mp"); self setspawnweapon("ac130_105mm_mp");
wait 3+randomInt(3); wait 3+randomInt(3);
self SetWeaponAmmoClip("ac130_40mm_mp", 999);
self setspawnweapon("ac130_40mm_mp"); self setspawnweapon("ac130_40mm_mp");
wait 4+randomInt(3); wait 4+randomInt(3);
self SetWeaponAmmoClip("ac130_25mm_mp", 999);
self setspawnweapon("ac130_25mm_mp"); self setspawnweapon("ac130_25mm_mp");
wait 4+randomInt(3); wait 4+randomInt(3);
} }
@ -1060,7 +1063,7 @@ grenade_danager()
if (self.bot.isfrozen || level.gameEnded || !gameFlag( "prematch_done" )) if (self.bot.isfrozen || level.gameEnded || !gameFlag( "prematch_done" ))
continue; continue;
if(self.bot.isfraggingafter || self.bot.climbing || self.bot.knifingafter) if(self.bot.isfraggingafter || self.bot.climbing || self.bot.knifingafter || self IsUsingRemote())
continue; continue;
curWeap = self GetCurrentWeapon(); curWeap = self GetCurrentWeapon();
@ -1705,7 +1708,7 @@ aim()
knifeDist = level.bots_maxKnifeDistance; knifeDist = level.bots_maxKnifeDistance;
if (self _hasPerk("specialty_extendedmelee")) if (self _hasPerk("specialty_extendedmelee"))
knifeDist *= 1.4; knifeDist *= 1.4;
if((isplay || target.classname == "misc_turret") && !self.bot.knifing && conedot > 0.9 && dist < knifeDist && trace_time > reaction_time) if((isplay || target.classname == "misc_turret") && !self.bot.knifing && conedot > 0.9 && dist < knifeDist && trace_time > reaction_time && !usingRemote)
{ {
self thread knife(target, knifeDist); self thread knife(target, knifeDist);
continue; continue;
@ -2120,7 +2123,7 @@ knife(ent, knifeDist)
self endon("death"); self endon("death");
level endon ( "game_ended" ); level endon ( "game_ended" );
if (level.gameEnded || !gameFlag( "prematch_done" ) || self.bot.isfrozen) if (level.gameEnded || !gameFlag( "prematch_done" ) || self.bot.isfrozen || self IsUsingRemote())
return; return;
curWeap = self GetCurrentWeapon(); curWeap = self GetCurrentWeapon();
@ -2281,7 +2284,7 @@ reload()
{ {
cur = self GetCurrentWeapon(); cur = self GetCurrentWeapon();
if (level.gameEnded || !gameFlag( "prematch_done" ) || self.bot.isfrozen) if (level.gameEnded || !gameFlag( "prematch_done" ) || self.bot.isfrozen || self IsUsingRemote())
return; return;
self SetWeaponAmmoStock(cur, self GetWeaponAmmoClip(cur) + self GetWeaponAmmoStock(cur)); self SetWeaponAmmoStock(cur, self GetWeaponAmmoClip(cur) + self GetWeaponAmmoStock(cur));
@ -2298,7 +2301,7 @@ botThrowGrenade(grenName)
if (self inLastStand() && !self _hasPerk("specialty_laststandoffhand") && !self inFinalStand()) if (self inLastStand() && !self _hasPerk("specialty_laststandoffhand") && !self inFinalStand())
return "laststand"; return "laststand";
if (level.gameEnded || !gameFlag( "prematch_done" ) || self.bot.isfrozen || self.bot.climbing) if (level.gameEnded || !gameFlag( "prematch_done" ) || self.bot.isfrozen || self.bot.climbing || self IsUsingRemote())
return "can't move"; return "can't move";
curWeap = self GetCurrentWeapon(); curWeap = self GetCurrentWeapon();
@ -2417,6 +2420,9 @@ jump()
*/ */
stand() stand()
{ {
if (self IsUsingRemote())
return;
self.bot.stance = "stand"; self.bot.stance = "stand";
} }
@ -2425,6 +2431,9 @@ stand()
*/ */
crouch() crouch()
{ {
if (self IsUsingRemote())
return;
self.bot.stance = "crouch"; self.bot.stance = "crouch";
} }
@ -2433,6 +2442,9 @@ crouch()
*/ */
prone() prone()
{ {
if (self IsUsingRemote())
return;
curWeap = self GetCurrentWeapon(); curWeap = self GetCurrentWeapon();
if (curWeap == "riotshield_mp") if (curWeap == "riotshield_mp")

View File

@ -1013,12 +1013,53 @@ onBotSpawned()
} }
} }
getKillstreakTargetLocation()
{
location = undefined;
players = [];
for(i = level.players.size - 1; i >= 0; i--)
{
player = level.players[i];
if(player == self)
continue;
if(!isDefined(player.team))
continue;
if(level.teamBased && self.team == player.team)
continue;
if(player.sessionstate != "playing")
continue;
if(!isReallyAlive(player))
continue;
if(player _hasPerk("specialty_coldblooded"))
continue;
if(!bulletTracePassed(player.origin, player.origin+(0,0,2048), false, player) && self.pers["bots"]["skill"]["base"] > 3)
continue;
players[players.size] = player;
}
target = random(players);
if(isDefined(target))
location = target.origin + (randomIntRange((8-self.pers["bots"]["skill"]["base"])*-75, (8-self.pers["bots"]["skill"]["base"])*75), randomIntRange((8-self.pers["bots"]["skill"]["base"])*-75, (8-self.pers["bots"]["skill"]["base"])*75), 0);
else if(self.pers["bots"]["skill"]["base"] <= 3)
location = self.origin + (randomIntRange(-512, 512), randomIntRange(-512, 512), 0);
return location;
}
bot_killstreak_think() bot_killstreak_think()
{ {
self endon("disconnect"); self endon("disconnect");
self endon("death"); self endon("death");
level endon("game_ended"); level endon("game_ended");
if (randomInt(2))
self maps\mp\killstreaks\_killstreaks::tryGiveKillstreak("ac130");
else
self maps\mp\killstreaks\_killstreaks::tryGiveKillstreak("helicopter_minigun");
for (;;) for (;;)
{ {
wait randomIntRange(1, 3); wait randomIntRange(1, 3);
@ -1048,16 +1089,121 @@ bot_killstreak_think()
if (self botIsClimbing()) if (self botIsClimbing())
continue; continue;
if (self IsUsingRemote())
continue;
streakName = self.pers["killstreaks"][0].streakName; streakName = self.pers["killstreaks"][0].streakName;
if (level.inGracePeriod && maps\mp\killstreaks\_killstreaks::deadlyKillstreak(streakName))
continue;
ksWeap = maps\mp\killstreaks\_killstreaks::getKillstreakWeapon( streakName ); ksWeap = maps\mp\killstreaks\_killstreaks::getKillstreakWeapon( streakName );
if (maps\mp\killstreaks\_killstreaks::isRideKillstreak(streakName) || maps\mp\killstreaks\_killstreaks::isCarryKillstreak(streakName)) if (maps\mp\killstreaks\_killstreaks::isRideKillstreak(streakName) || maps\mp\killstreaks\_killstreaks::isCarryKillstreak(streakName))
{ {
// sentry if (self inLastStand())
// predator_missile continue;
// ac130
// helicopter_minigun if (streakName == "sentry")
{
myEye = self GetEye();
angles = self GetPlayerAngles();
forwardTrace = bulletTrace(myEye, myEye + AnglesToForward(angles)*1024, false, self);
if (Distance(self.origin, forwardTrace["position"]) < 1000 && self.pers["bots"]["skill"]["base"] > 3)
continue;
self BotFreezeControls(true);
wait 1;
sentryGun = maps\mp\killstreaks\_autosentry::createSentryForPlayer( "sentry_minigun", self );
sentryGun maps\mp\killstreaks\_autosentry::sentry_setPlaced();
self notify( "sentry_placement_finished", sentryGun );
self maps\mp\_matchdata::logKillstreakEvent( "sentry", self.origin );
self maps\mp\killstreaks\_killstreaks::usedKillstreak( "sentry", true );
self maps\mp\killstreaks\_killstreaks::shuffleKillStreaksFILO( "sentry" );
self maps\mp\killstreaks\_killstreaks::giveOwnedKillstreakItem();
wait 1;
self BotFreezeControls(false);
}
else if (streakName == "predator_missile")
{
location = self getKillstreakTargetLocation();
if(!isDefined(location))
continue;
self setUsingRemote( "remotemissile" );
self setSpawnWeapon(ksWeap);
self BotFreezeControls(true);
wait 1;
self maps\mp\killstreaks\_killstreaks::usedKillstreak( "predator_missile", true );
self maps\mp\killstreaks\_killstreaks::shuffleKillStreaksFILO( "predator_missile" );
self maps\mp\killstreaks\_killstreaks::giveOwnedKillstreakItem();
rocket = MagicBullet( "remotemissile_projectile_mp", self.origin + (0.0,0.0,7000.0 - (self.pers["bots"]["skill"]["base"] * 400)), location, self );
rocket.lifeId = self.pers["killstreaks"][0].lifeId;
rocket.type = "remote";
rocket thread maps\mp\gametypes\_weapons::AddMissileToSightTraces( self.pers["team"] );
rocket thread maps\mp\killstreaks\_remotemissile::handleDamage();
thread maps\mp\killstreaks\_remotemissile::MissileEyes( self, rocket );
self waittill( "stopped_using_remote" );
wait 1;
self setSpawnWeapon(curWeap);
self BotFreezeControls(false);
}
else if (streakName == "ac130")
{
if ( isDefined( level.ac130player ) || level.ac130InUse )
continue;
level.ac130InUse = true;
self setUsingRemote( "ac130" );
self setSpawnWeapon(ksWeap);
self maps\mp\_matchdata::logKillstreakEvent( "ac130", self.origin );
self.ac130LifeId = self.pers["killstreaks"][0].lifeId;
level.ac130.planeModel.crashed = undefined;
thread maps\mp\killstreaks\_ac130::setAC130Player( self );
self maps\mp\killstreaks\_killstreaks::usedKillstreak( "ac130", true );
self maps\mp\killstreaks\_killstreaks::shuffleKillStreaksFILO( "ac130" );
self maps\mp\killstreaks\_killstreaks::giveOwnedKillstreakItem();
self waittill( "stopped_using_remote" );
wait 1;
self setSpawnWeapon(curWeap);
}
else if (streakName == "helicopter_minigun")
{
if (isDefined( level.chopper ))
continue;
self setUsingRemote( "helicopter_minigun" );
self setSpawnWeapon(ksWeap);
self thread maps\mp\killstreaks\_helicopter::startHelicopter(self.pers["killstreaks"][0].lifeId, "minigun");
self maps\mp\killstreaks\_killstreaks::usedKillstreak( "helicopter_minigun", true );
self maps\mp\killstreaks\_killstreaks::shuffleKillStreaksFILO( "helicopter_minigun" );
self maps\mp\killstreaks\_killstreaks::giveOwnedKillstreakItem();
self waittill( "stopped_using_remote" );
wait 1;
self setSpawnWeapon(curWeap);
}
} }
else else
{ {
@ -1077,7 +1223,7 @@ bot_killstreak_think()
forwardTrace = bulletTrace(myEye, myEye + AnglesToForward(angles)*256, false, self); forwardTrace = bulletTrace(myEye, myEye + AnglesToForward(angles)*256, false, self);
if (Distance(self.origin, forwardTrace["position"]) < 96) if (Distance(self.origin, forwardTrace["position"]) < 96 && self.pers["bots"]["skill"]["base"] > 3)
continue; continue;
if (!bulletTracePassed(forwardTrace["position"], forwardTrace["position"]+(0,0,2048), false, self) && self.pers["bots"]["skill"]["base"] > 3) if (!bulletTracePassed(forwardTrace["position"], forwardTrace["position"]+(0,0,2048), false, self) && self.pers["bots"]["skill"]["base"] > 3)
@ -1108,36 +1254,7 @@ bot_killstreak_think()
case "harrier_airstrike": case "harrier_airstrike":
case "stealth_airstrike": case "stealth_airstrike":
case "precision_airstrike": case "precision_airstrike":
players = []; location = self getKillstreakTargetLocation();
for(i = level.players.size - 1; i >= 0; i--)
{
player = level.players[i];
if(player == self)
continue;
if(!isDefined(player.team))
continue;
if(level.teamBased && self.team == player.team)
continue;
if(player.sessionstate != "playing")
continue;
if(!isReallyAlive(player))
continue;
if(player _hasPerk("specialty_coldblooded"))
continue;
if(!bulletTracePassed(player.origin, player.origin+(0,0,512), false, player) && self.pers["bots"]["skill"]["base"] > 3)
continue;
players[players.size] = player;
}
target = random(players);
if(isDefined(target))
location = target.origin + (randomIntRange((8-self.pers["bots"]["skill"]["base"])*-75, (8-self.pers["bots"]["skill"]["base"])*75), randomIntRange((8-self.pers["bots"]["skill"]["base"])*-75, (8-self.pers["bots"]["skill"]["base"])*75), 0);
else if(self.pers["bots"]["skill"]["base"] <= 3)
location = self.origin + (randomIntRange(-512, 512), randomIntRange(-512, 512), 0);
directionYaw = randomInt(360); directionYaw = randomInt(360);
if (!isDefined(location)) if (!isDefined(location))