mirror of
https://github.com/ineedbots/iw4_bot_warfare.git
synced 2025-04-22 13:55:43 +00:00
target cleanup
This commit is contained in:
parent
70e734b121
commit
d6ea6e0d35
@ -1621,6 +1621,48 @@ updateBones()
|
||||
}
|
||||
}
|
||||
|
||||
createTargetObj(ent, theTime)
|
||||
{
|
||||
obj = spawnStruct();
|
||||
obj.entity = ent;
|
||||
obj.last_seen_pos = (0, 0, 0);
|
||||
obj.dist = 0;
|
||||
obj.time = theTime;
|
||||
obj.trace_time = 0;
|
||||
obj.no_trace_time = 0;
|
||||
obj.trace_time_time = 0;
|
||||
obj.rand = randomInt(100);
|
||||
obj.didlook = false;
|
||||
obj.isplay = isPlayer(ent);
|
||||
obj.offset = undefined;
|
||||
obj.bone = undefined;
|
||||
obj.aim_offset = undefined;
|
||||
|
||||
return obj;
|
||||
}
|
||||
|
||||
updateAimOffset(obj)
|
||||
{
|
||||
}
|
||||
|
||||
targetObjUpdateTraced(obj, daDist, ent, theTime)
|
||||
{
|
||||
obj.no_trace_time = 0;
|
||||
obj.trace_time += 50;
|
||||
obj.dist = daDist;
|
||||
obj.last_seen_pos = ent.origin;
|
||||
obj.trace_time_time = theTime;
|
||||
|
||||
updateAimOffset(obj);
|
||||
}
|
||||
|
||||
targetObjUpdateNoTrace(obj)
|
||||
{
|
||||
obj.no_trace_time += 50;
|
||||
obj.trace_time = 0;
|
||||
obj.didlook = false;
|
||||
}
|
||||
|
||||
/*
|
||||
The main target thread, will update the bot's main target. Will auto target enemy players and handle script targets.
|
||||
*/
|
||||
@ -1667,8 +1709,14 @@ target()
|
||||
hasTarget = false;
|
||||
}
|
||||
|
||||
if(isDefined(self.bot.script_target))
|
||||
playercount = level.players.size;
|
||||
for(i = -1; i < playercount; i++)
|
||||
{
|
||||
if (i == -1)
|
||||
{
|
||||
if (!isDefined(self.bot.script_target))
|
||||
continue;
|
||||
|
||||
ent = self.bot.script_target;
|
||||
key = ent getEntityNumber()+"";
|
||||
daDist = distanceSquared(self.origin, ent.origin);
|
||||
@ -1678,107 +1726,33 @@ target()
|
||||
if (isDefined(self.bot.script_target_offset))
|
||||
entOrigin += self.bot.script_target_offset;
|
||||
|
||||
for(;;)
|
||||
{
|
||||
if(SmokeTrace(myEye, entOrigin, level.smokeRadius) && bulletTracePassed(myEye, entOrigin, false, ent))
|
||||
{
|
||||
if(!isObjDef)
|
||||
{
|
||||
obj = spawnStruct();
|
||||
obj.entity = ent;
|
||||
obj.last_seen_pos = (0, 0, 0);
|
||||
obj.dist = 0;
|
||||
obj.time = theTime;
|
||||
obj.trace_time = 0;
|
||||
obj.no_trace_time = 0;
|
||||
obj.trace_time_time = 0;
|
||||
obj.rand = randomInt(100);
|
||||
obj.didlook = false;
|
||||
obj.isplay = isPlayer(ent);
|
||||
obj = createTargetObj(ent, theTime);
|
||||
obj.offset = self.bot.script_target_offset;
|
||||
obj.bone = undefined;
|
||||
obj.aim_offset = undefined;
|
||||
|
||||
self.bot.targets[key] = obj;
|
||||
}
|
||||
|
||||
obj.no_trace_time = 0;
|
||||
obj.trace_time += 50;
|
||||
obj.dist = daDist;
|
||||
obj.last_seen_pos = ent.origin;
|
||||
obj.trace_time_time = theTime;
|
||||
targetObjUpdateTraced(obj, daDist, ent, theTime);
|
||||
}
|
||||
else
|
||||
{
|
||||
if(!isObjDef)
|
||||
break;
|
||||
continue;
|
||||
|
||||
obj.no_trace_time += 50;
|
||||
obj.trace_time = 0;
|
||||
obj.didlook = false;
|
||||
targetObjUpdateNoTrace(obj);
|
||||
|
||||
if(obj.no_trace_time > rememberTime)
|
||||
{
|
||||
self.bot.targets[key] = undefined;
|
||||
break;
|
||||
continue;
|
||||
}
|
||||
}
|
||||
|
||||
if(theTime - obj.time < initReactTime)
|
||||
break;
|
||||
|
||||
timeDiff = theTime - obj.trace_time_time;
|
||||
if(timeDiff < bestTime)
|
||||
{
|
||||
bestTargets = [];
|
||||
bestTime = timeDiff;
|
||||
}
|
||||
|
||||
if(timeDiff == bestTime)
|
||||
bestTargets[key] = obj;
|
||||
break;
|
||||
}
|
||||
}
|
||||
|
||||
if(isDefined(self.bot.target_this_frame))
|
||||
{
|
||||
player = self.bot.target_this_frame;
|
||||
|
||||
key = player getEntityNumber()+"";
|
||||
obj = self.bot.targets[key];
|
||||
daDist = distanceSquared(self.origin, player.origin);
|
||||
|
||||
if(!isDefined(obj))
|
||||
{
|
||||
obj = spawnStruct();
|
||||
obj.entity = player;
|
||||
obj.last_seen_pos = (0, 0, 0);
|
||||
obj.dist = 0;
|
||||
obj.time = theTime;
|
||||
obj.trace_time = 0;
|
||||
obj.no_trace_time = 0;
|
||||
obj.trace_time_time = 0;
|
||||
obj.rand = randomInt(100);
|
||||
obj.didlook = false;
|
||||
obj.isplay = isPlayer(player);
|
||||
obj.offset = undefined;
|
||||
obj.bone = undefined;
|
||||
obj.aim_offset = undefined;
|
||||
|
||||
self.bot.targets[key] = obj;
|
||||
}
|
||||
|
||||
obj.no_trace_time = 0;
|
||||
obj.trace_time += 50;
|
||||
obj.dist = daDist;
|
||||
obj.last_seen_pos = player.origin;
|
||||
obj.trace_time_time = theTime;
|
||||
|
||||
self.bot.target_this_frame = undefined;
|
||||
}
|
||||
|
||||
playercount = level.players.size;
|
||||
for(i = 0; i < playercount; i++)
|
||||
else
|
||||
{
|
||||
player = level.players[i];
|
||||
|
||||
@ -1825,42 +1799,30 @@ target()
|
||||
(isObjDef && obj.trace_time)));
|
||||
}
|
||||
|
||||
if (isDefined(self.bot.target_this_frame) && self.bot.target_this_frame == player)
|
||||
{
|
||||
self.bot.target_this_frame = undefined;
|
||||
|
||||
canTargetPlayer = true;
|
||||
}
|
||||
|
||||
if(canTargetPlayer)
|
||||
{
|
||||
if(!isObjDef)
|
||||
{
|
||||
obj = spawnStruct();
|
||||
obj.entity = player;
|
||||
obj.last_seen_pos = (0, 0, 0);
|
||||
obj.dist = 0;
|
||||
obj.time = theTime;
|
||||
obj.trace_time = 0;
|
||||
obj.no_trace_time = 0;
|
||||
obj.trace_time_time = 0;
|
||||
obj.rand = randomInt(100);
|
||||
obj.didlook = false;
|
||||
obj.isplay = isPlayer(player);
|
||||
obj.offset = undefined;
|
||||
obj.bone = undefined;
|
||||
obj.aim_offset = undefined;
|
||||
obj = createTargetObj(player, theTime);
|
||||
|
||||
self.bot.targets[key] = obj;
|
||||
}
|
||||
|
||||
obj.no_trace_time = 0;
|
||||
obj.trace_time += 50;
|
||||
obj.dist = daDist;
|
||||
obj.last_seen_pos = player.origin;
|
||||
obj.trace_time_time = theTime;
|
||||
targetObjUpdateTraced(obj, daDist, player, theTime);
|
||||
}
|
||||
else
|
||||
{
|
||||
if(!isObjDef)
|
||||
continue;
|
||||
|
||||
obj.no_trace_time += 50;
|
||||
obj.trace_time = 0;
|
||||
obj.didlook = false;
|
||||
targetObjUpdateNoTrace(obj);
|
||||
|
||||
if(obj.no_trace_time > rememberTime)
|
||||
{
|
||||
@ -1868,6 +1830,7 @@ target()
|
||||
continue;
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
if(theTime - obj.time < initReactTime)
|
||||
continue;
|
||||
|
Loading…
x
Reference in New Issue
Block a user