mirror of
https://github.com/ineedbots/iw4_bot_warfare.git
synced 2025-04-22 13:55:43 +00:00
airdrop test
This commit is contained in:
parent
a43849dcb3
commit
e143a65941
@ -1669,6 +1669,11 @@ aim()
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
else
|
||||||
|
{
|
||||||
|
if (self canAds(dist, curweap))
|
||||||
|
self thread pressAds();
|
||||||
|
}
|
||||||
|
|
||||||
if (!usingRemote)
|
if (!usingRemote)
|
||||||
self thread bot_lookat(last_pos + (0, 0, self getEyeHeight() + nadeAimOffset), aimspeed);
|
self thread bot_lookat(last_pos + (0, 0, self getEyeHeight() + nadeAimOffset), aimspeed);
|
||||||
@ -2293,7 +2298,7 @@ botThrowGrenade(grenName)
|
|||||||
if (isDefined(self.lastStand) && !self _hasPerk("specialty_laststandoffhand") && (!isDefined(self.inFinalStand) || !self.inFinalStand))
|
if (isDefined(self.lastStand) && !self _hasPerk("specialty_laststandoffhand") && (!isDefined(self.inFinalStand) || !self.inFinalStand))
|
||||||
return "laststand";
|
return "laststand";
|
||||||
|
|
||||||
if (level.gameEnded || !gameFlag( "prematch_done" ) || self.bot.isfrozen)
|
if (level.gameEnded || !gameFlag( "prematch_done" ) || self.bot.isfrozen || self.bot.climbing)
|
||||||
return "can't move";
|
return "can't move";
|
||||||
|
|
||||||
curWeap = self GetCurrentWeapon();
|
curWeap = self GetCurrentWeapon();
|
||||||
|
@ -1019,6 +1019,13 @@ bot_killstreak_think()
|
|||||||
self endon("death");
|
self endon("death");
|
||||||
level endon("game_ended");
|
level endon("game_ended");
|
||||||
|
|
||||||
|
if (randomInt(2))
|
||||||
|
self maps\mp\killstreaks\_killstreaks::tryGiveKillstreak("airdrop");
|
||||||
|
else if (randomInt(2))
|
||||||
|
self maps\mp\killstreaks\_killstreaks::tryGiveKillstreak("airdrop_sentry_minigun");
|
||||||
|
else
|
||||||
|
self maps\mp\killstreaks\_killstreaks::tryGiveKillstreak("airdrop_mega");
|
||||||
|
|
||||||
for (;;)
|
for (;;)
|
||||||
{
|
{
|
||||||
wait randomIntRange(1, 3);
|
wait randomIntRange(1, 3);
|
||||||
@ -1042,6 +1049,9 @@ bot_killstreak_think()
|
|||||||
if (!isWeaponDroppable(curWeap))
|
if (!isWeaponDroppable(curWeap))
|
||||||
continue;
|
continue;
|
||||||
|
|
||||||
|
if (self isEMPed())
|
||||||
|
continue;
|
||||||
|
|
||||||
streakName = self.pers["killstreaks"][0].streakName;
|
streakName = self.pers["killstreaks"][0].streakName;
|
||||||
|
|
||||||
ksWeap = maps\mp\killstreaks\_killstreaks::getKillstreakWeapon( streakName );
|
ksWeap = maps\mp\killstreaks\_killstreaks::getKillstreakWeapon( streakName );
|
||||||
@ -1055,14 +1065,80 @@ bot_killstreak_think()
|
|||||||
}
|
}
|
||||||
else
|
else
|
||||||
{
|
{
|
||||||
// airdrop_mega
|
if (streakName == "airdrop_mega" || streakName == "airdrop_sentry_minigun" || streakName == "airdrop")
|
||||||
// airdrop_sentry_minigun
|
{
|
||||||
// airdrop
|
if (self.bot_lock_goal || self HasScriptGoal())
|
||||||
// case "harrier_airstrike":
|
continue;
|
||||||
// case "stealth_airstrike":
|
|
||||||
// case "precision_airstrike":
|
if (streakName != "airdrop_mega" && level.littleBirds > 2)
|
||||||
|
continue;
|
||||||
|
|
||||||
|
if(!bulletTracePassed(self.origin, self.origin+(0,0,2048), false, self) && self.pers["bots"]["skill"]["base"] > 3)
|
||||||
|
continue;
|
||||||
|
|
||||||
|
myEye = self GetEye();
|
||||||
|
angles = self GetPlayerAngles();
|
||||||
|
|
||||||
|
forwardTrace = bulletTrace(myEye, myEye + AnglesToForward(angles)*256, false, self);
|
||||||
|
|
||||||
|
if (Distance(self.origin, forwardTrace["position"]) < 96)
|
||||||
|
continue;
|
||||||
|
|
||||||
|
if (!bulletTracePassed(forwardTrace["position"], forwardTrace["position"]+(0,0,2048), false, self) && self.pers["bots"]["skill"]["base"] > 3)
|
||||||
|
continue;
|
||||||
|
|
||||||
|
self SetScriptGoal(self.origin, 16);
|
||||||
|
self throwBotGrenade(ksWeap);
|
||||||
|
|
||||||
|
self waittill_any_timeout( 1, "bad_path" );
|
||||||
|
self ClearScriptGoal();
|
||||||
|
}
|
||||||
|
else
|
||||||
|
{
|
||||||
|
if (streakName == "harrier_airstrike" && level.planes > 1)
|
||||||
|
continue;
|
||||||
|
|
||||||
|
if (streakName == "nuke" && isDefined( level.nukeIncoming ))
|
||||||
|
continue;
|
||||||
|
|
||||||
|
location = undefined;
|
||||||
|
directionYaw = undefined;
|
||||||
switch (streakName)
|
switch (streakName)
|
||||||
{
|
{
|
||||||
|
case "harrier_airstrike":
|
||||||
|
case "stealth_airstrike":
|
||||||
|
case "precision_airstrike":
|
||||||
|
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,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);
|
||||||
case "helicopter":
|
case "helicopter":
|
||||||
case "helicopter_flares":
|
case "helicopter_flares":
|
||||||
case "uav":
|
case "uav":
|
||||||
@ -1072,6 +1148,11 @@ bot_killstreak_think()
|
|||||||
self BotFreezeControls(true);
|
self BotFreezeControls(true);
|
||||||
self setSpawnWeapon(ksWeap);
|
self setSpawnWeapon(ksWeap);
|
||||||
wait 1;
|
wait 1;
|
||||||
|
if (isDefined(location))
|
||||||
|
{
|
||||||
|
self notify( "confirm_location", location, directionYaw );
|
||||||
|
wait 1;
|
||||||
|
}
|
||||||
self setSpawnWeapon(curWeap);
|
self setSpawnWeapon(curWeap);
|
||||||
self BotFreezeControls(false);
|
self BotFreezeControls(false);
|
||||||
break;
|
break;
|
||||||
@ -1079,3 +1160,4 @@ bot_killstreak_think()
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
}
|
||||||
|
@ -36,6 +36,11 @@ throwBotGrenade(gname)
|
|||||||
return self maps\mp\bots\_bot_internal::botThrowGrenade(gname);
|
return self maps\mp\bots\_bot_internal::botThrowGrenade(gname);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
botIsClimbing()
|
||||||
|
{
|
||||||
|
return self.bot.climbing;
|
||||||
|
}
|
||||||
|
|
||||||
BotGetTargetRandom()
|
BotGetTargetRandom()
|
||||||
{
|
{
|
||||||
if (!isDefined(self.bot.target))
|
if (!isDefined(self.bot.target))
|
||||||
|
Loading…
x
Reference in New Issue
Block a user