mirror of
https://github.com/ineedbots/iw4_bot_warfare.git
synced 2025-04-22 05:55:42 +00:00
Fixed distance
This commit is contained in:
parent
15d878a12e
commit
c2d88e9f17
@ -351,7 +351,7 @@ watchScrabler()
|
||||
if(level.teamBased && player2.team == player.team)
|
||||
continue;
|
||||
|
||||
if (Distance(player2.origin, player.origin) > 100)
|
||||
if (DistanceSquared(player2.origin, player.origin) > 100*100)
|
||||
continue;
|
||||
|
||||
player.bot_isScrambled = true;
|
||||
|
@ -195,6 +195,7 @@ resetBotVars()
|
||||
|
||||
self.bot.knifing = false;
|
||||
self.bot.knifingafter = false;
|
||||
self.bot.knifeteleport = false;
|
||||
}
|
||||
|
||||
/*
|
||||
@ -947,17 +948,18 @@ moveHack()
|
||||
if (!isReallyAlive(player))
|
||||
continue;
|
||||
|
||||
dist = distance(self.origin, player.origin);
|
||||
|
||||
if (dist > level.botPushOutDist)
|
||||
if (distanceSquared(self.origin, player.origin) > level.botPushOutDist*level.botPushOutDist)
|
||||
continue;
|
||||
|
||||
dist = distance(self.origin, player.origin);
|
||||
pushOutDist = level.botPushOutDist;
|
||||
|
||||
pushOutDir = VectorNormalize((self.origin[0], self.origin[1], 0)-(player.origin[0], player.origin[1], 0));
|
||||
trace = bulletTrace(self.origin + (0,0,20), (self.origin + (0,0,20)) + (pushOutDir * ((level.botPushOutDist-dist)+10)), false, self);
|
||||
trace = bulletTrace(self.origin + (0,0,20), (self.origin + (0,0,20)) + (pushOutDir * ((pushOutDist-dist)+10)), false, self);
|
||||
//no collision, so push out
|
||||
if(trace["fraction"] == 1)
|
||||
{
|
||||
pushoutPos = self.origin + (pushOutDir * (level.botPushOutDist-dist));
|
||||
pushoutPos = self.origin + (pushOutDir * (pushOutDist-dist));
|
||||
self SetOrigin((pushoutPos[0], pushoutPos[1], self.origin[2]));
|
||||
}
|
||||
}
|
||||
@ -2221,7 +2223,7 @@ walk()
|
||||
|
||||
self botMoveTo(self.origin);
|
||||
|
||||
if(self.bot.isfrozen || self.bot.stop_move)
|
||||
if(self.bot.isfrozen || self.bot.stop_move || self.bot.knifeteleport)
|
||||
continue;
|
||||
|
||||
if(self maps\mp\_flashgrenades::isFlashbanged() && !self.bot.jumpingafter)
|
||||
@ -2265,7 +2267,7 @@ walk()
|
||||
goal = PhysicsTrace(goal + (0, 0, 50), goal + (0, 0, -40), false, self);
|
||||
|
||||
// too small, lets bounce off the wall
|
||||
if (Distance(goal, myOrg) < stepDist - 1 || randomInt(100) < 5)
|
||||
if (DistanceSquared(goal, myOrg) < stepDist*stepDist - 1 || randomInt(100) < 5)
|
||||
{
|
||||
trace = bulletTrace(myOrg, myOrg + forward, false, self);
|
||||
|
||||
@ -2535,6 +2537,19 @@ movetowards(goal)
|
||||
self notify("completed_move_to");
|
||||
}
|
||||
|
||||
dontMoveForABit()
|
||||
{
|
||||
self endon("disconnect");
|
||||
self endon("death");
|
||||
level endon ( "game_ended" );
|
||||
|
||||
self.bot.knifeteleport = true;
|
||||
|
||||
wait 0.3;
|
||||
|
||||
self.bot.knifeteleport = false;
|
||||
}
|
||||
|
||||
/*
|
||||
Bot will knife.
|
||||
*/
|
||||
@ -2566,7 +2581,7 @@ knife(ent, knifeDist)
|
||||
|
||||
isplay = (isDefined(ent) && isPlayer(ent));
|
||||
usedRiot = self.hasRiotShieldEquipped;
|
||||
org = (0, 0, 99999999);
|
||||
org = self.origin;
|
||||
if (isDefined(ent))
|
||||
org = ent.origin;
|
||||
distsq = DistanceSquared(self.origin, org);
|
||||
@ -2598,7 +2613,7 @@ knife(ent, knifeDist)
|
||||
}
|
||||
else
|
||||
{
|
||||
if ((distsq / knifeDist) < 0.5)
|
||||
if ((distsq / knifeDist) < 0.75)
|
||||
{
|
||||
self playSound("melee_swing_small");
|
||||
if (stance != "prone")
|
||||
@ -2631,7 +2646,13 @@ knife(ent, knifeDist)
|
||||
|
||||
wait 0.15;
|
||||
|
||||
if (isDefined(ent) && isAlive(ent) && randomInt(20)) // 5percent chance of missing
|
||||
allIsStillGood = false;
|
||||
if (isDefined(ent) && isAlive(ent))
|
||||
{
|
||||
allIsStillGood = (getConeDot(ent.origin, self.origin, self GetPlayerAngles()) > 0.85); // make sure that the bot is looking at the target
|
||||
}
|
||||
|
||||
if (allIsStillGood)
|
||||
{
|
||||
if (isplay)
|
||||
{
|
||||
@ -2642,14 +2663,18 @@ knife(ent, knifeDist)
|
||||
pushoutPos = self.origin + (pushOutDir * (60-distance(ent.origin,self.origin)));
|
||||
self SetOrigin((pushoutPos[0], pushoutPos[1], ent.origin[2]));
|
||||
self notify("kill_goal");
|
||||
self thread dontMoveForABit();
|
||||
}
|
||||
|
||||
for (;;)
|
||||
{
|
||||
if (!randomInt(20)) // 5 percent chance to miss
|
||||
break;
|
||||
|
||||
// check riotshield
|
||||
if (ent.hasRiotShield)
|
||||
{
|
||||
entCone = ent getConeDot((self.origin[0], self.origin[1], 0), (ent.origin[0], ent.origin[1], 0), (0, ent GetPlayerAngles()[1], 0));
|
||||
entCone = getConeDot((self.origin[0], self.origin[1], 0), (ent.origin[0], ent.origin[1], 0), (0, ent GetPlayerAngles()[1], 0));
|
||||
if ((entCone > 0.65 && ent.hasRiotShieldEquipped) || (entCone < -0.65 && !ent.hasRiotShieldEquipped))
|
||||
{
|
||||
// play riot shield hitting knife sound
|
||||
|
@ -1188,14 +1188,17 @@ nearAnyOfWaypoints(dist, waypoints)
|
||||
getNearestWaypointOfWaypoints(waypoints)
|
||||
{
|
||||
answer = undefined;
|
||||
closestDist = -1;
|
||||
for (i = 0; i < waypoints.size; i++)
|
||||
{
|
||||
waypoint = waypoints[i];
|
||||
thisDist = DistanceSquared(self.origin, waypoint.origin);
|
||||
|
||||
if (isDefined(answer) && closer(self.origin, answer.origin, waypoint.origin))
|
||||
if (isDefined(answer) && thisDist < closestDist)
|
||||
continue;
|
||||
|
||||
answer = waypoint;
|
||||
closestDist = thisDist;
|
||||
}
|
||||
|
||||
return answer;
|
||||
@ -1377,9 +1380,10 @@ bot_think_camp()
|
||||
continue;
|
||||
|
||||
campSpots = [];
|
||||
distSq = 1024*1024;
|
||||
for (i = 0; i < level.waypointsCamp.size; i++)
|
||||
{
|
||||
if (Distance(self.origin, level.waypointsCamp[i].origin) > 1024)
|
||||
if (DistanceSquared(self.origin, level.waypointsCamp[i].origin) > distSq)
|
||||
continue;
|
||||
|
||||
campSpots[campSpots.size] = level.waypointsCamp[i];
|
||||
@ -1484,6 +1488,7 @@ bot_think_follow()
|
||||
continue;
|
||||
|
||||
follows = [];
|
||||
distSq = self.pers["bots"]["skill"]["help_dist"] * self.pers["bots"]["skill"]["help_dist"];
|
||||
for (i = level.players.size - 1; i >= 0; i--)
|
||||
{
|
||||
player = level.players[i];
|
||||
@ -1497,7 +1502,7 @@ bot_think_follow()
|
||||
if (player.team != self.team)
|
||||
continue;
|
||||
|
||||
if (Distance(player.origin, self.origin) > self.pers["bots"]["skill"]["help_dist"])
|
||||
if (DistanceSquared(player.origin, self.origin) > distSq)
|
||||
continue;
|
||||
|
||||
follows[follows.size] = player;
|
||||
@ -1568,7 +1573,7 @@ followPlayer(who)
|
||||
self SetScriptAimPos(who.origin + (0, 0, 42));
|
||||
myGoal = self GetScriptGoal();
|
||||
|
||||
if (isDefined(myGoal) && Distance(myGoal, who.origin) < 64)
|
||||
if (isDefined(myGoal) && DistanceSquared(myGoal, who.origin) < 64*64)
|
||||
continue;
|
||||
|
||||
self.bot_was_follow_script_update = true;
|
||||
@ -1775,9 +1780,10 @@ bot_use_tube_think()
|
||||
if (!self nearAnyOfWaypoints(128, level.waypointsTube))
|
||||
{
|
||||
tubeWps = [];
|
||||
distSq = 1024*1024;
|
||||
for (i = 0; i < level.waypointsTube.size; i++)
|
||||
{
|
||||
if (Distance(self.origin, level.waypointsTube[i].origin) > 1024)
|
||||
if (DistanceSquared(self.origin, level.waypointsTube[i].origin) > distSq)
|
||||
continue;
|
||||
|
||||
tubeWps[tubeWps.size] = level.waypointsTube[i];
|
||||
@ -1930,9 +1936,10 @@ bot_use_equipment_think()
|
||||
if (!self nearAnyOfWaypoints(128, level.waypointsClay))
|
||||
{
|
||||
clayWps = [];
|
||||
distSq = 1024*1024;
|
||||
for (i = 0; i < level.waypointsClay.size; i++)
|
||||
{
|
||||
if (Distance(self.origin, level.waypointsClay[i].origin) > 1024)
|
||||
if (DistanceSquared(self.origin, level.waypointsClay[i].origin) > distSq)
|
||||
continue;
|
||||
|
||||
clayWps[clayWps.size] = level.waypointsClay[i];
|
||||
@ -2044,9 +2051,10 @@ bot_use_grenade_think()
|
||||
if (!self nearAnyOfWaypoints(128, level.waypointsGren))
|
||||
{
|
||||
nadeWps = [];
|
||||
distSq = 1024*1024;
|
||||
for (i = 0; i < level.waypointsGren.size; i++)
|
||||
{
|
||||
if (Distance(self.origin, level.waypointsGren[i].origin) > 1024)
|
||||
if (DistanceSquared(self.origin, level.waypointsGren[i].origin) > distSq)
|
||||
continue;
|
||||
|
||||
nadeWps[nadeWps.size] = level.waypointsGren[i];
|
||||
@ -2172,9 +2180,10 @@ bot_jav_loc_think()
|
||||
if (!self nearAnyOfWaypoints(128, level.waypointsJav))
|
||||
{
|
||||
javWps = [];
|
||||
distSq = 1024*1024;
|
||||
for (i = 0; i < level.waypointsJav.size; i++)
|
||||
{
|
||||
if (Distance(self.origin, level.waypointsJav[i].origin) > 1024)
|
||||
if (DistanceSquared(self.origin, level.waypointsJav[i].origin) > distSq)
|
||||
continue;
|
||||
|
||||
javWps[javWps.size] = level.waypointsJav[i];
|
||||
@ -2533,12 +2542,14 @@ bot_uav_think()
|
||||
if(!isReallyAlive(player))
|
||||
continue;
|
||||
|
||||
if(DistanceSquared(self.origin, player.origin) > dist)
|
||||
distFromPlayer = DistanceSquared(self.origin, player.origin);
|
||||
if(distFromPlayer > dist)
|
||||
continue;
|
||||
|
||||
if((!isSubStr(player getCurrentWeapon(), "_silencer_") && player.bots_firing) || (hasRadar && !player hasPerk("specialty_coldblooded")))
|
||||
{
|
||||
if (Distance(self.origin, player.origin) < self.pers["bots"]["skill"]["help_dist"] && bulletTracePassed(self getEye(), player getTagOrigin( "j_spineupper" ), false, player))
|
||||
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))
|
||||
{
|
||||
self SetAttacker(player);
|
||||
}
|
||||
@ -2799,7 +2810,7 @@ bot_crate_think()
|
||||
{
|
||||
if (wantsClosest)
|
||||
{
|
||||
if (Distance(crate.origin, self.origin) < Distance(tempCrate.origin, self.origin))
|
||||
if (DistanceSquared(crate.origin, self.origin) < DistanceSquared(tempCrate.origin, self.origin))
|
||||
continue;
|
||||
}
|
||||
else
|
||||
@ -3221,9 +3232,10 @@ bot_killstreak_think()
|
||||
if (self.pers["killstreaks"][0].lifeId == self.pers["deaths"] && !self HasScriptGoal() && !self.bot_lock_goal && streakName != "sentry" && !self nearAnyOfWaypoints(128, level.waypointsCamp))
|
||||
{
|
||||
campSpots = [];
|
||||
distSq = 1024*1024;
|
||||
for (i = 0; i < level.waypointsCamp.size; i++)
|
||||
{
|
||||
if (Distance(self.origin, level.waypointsCamp[i].origin) > 1024)
|
||||
if (DistanceSquared(self.origin, level.waypointsCamp[i].origin) > distSq)
|
||||
continue;
|
||||
|
||||
campSpots[campSpots.size] = level.waypointsCamp[i];
|
||||
@ -3249,7 +3261,7 @@ bot_killstreak_think()
|
||||
|
||||
forwardTrace = bulletTrace(myEye, myEye + AnglesToForward(angles)*1024, false, self);
|
||||
|
||||
if (Distance(self.origin, forwardTrace["position"]) < 1000 && self.pers["bots"]["skill"]["base"] > 3)
|
||||
if (DistanceSquared(self.origin, forwardTrace["position"]) < 1000*1000 && self.pers["bots"]["skill"]["base"] > 3)
|
||||
continue;
|
||||
|
||||
self BotFreezeControls(true);
|
||||
@ -3386,7 +3398,7 @@ bot_killstreak_think()
|
||||
|
||||
forwardTrace = bulletTrace(myEye, myEye + AnglesToForward(angles)*256, false, self);
|
||||
|
||||
if (Distance(self.origin, forwardTrace["position"]) < 96 && self.pers["bots"]["skill"]["base"] > 3)
|
||||
if (DistanceSquared(self.origin, forwardTrace["position"]) < 96*96 && self.pers["bots"]["skill"]["base"] > 3)
|
||||
continue;
|
||||
|
||||
if (!bulletTracePassed(forwardTrace["position"], forwardTrace["position"]+(0,0,2048), false, self) && self.pers["bots"]["skill"]["base"] > 3)
|
||||
|
Loading…
x
Reference in New Issue
Block a user