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.
|
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;
|
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;
|
ent = self.bot.script_target;
|
||||||
key = ent getEntityNumber()+"";
|
key = ent getEntityNumber()+"";
|
||||||
daDist = distanceSquared(self.origin, ent.origin);
|
daDist = distanceSquared(self.origin, ent.origin);
|
||||||
@ -1678,107 +1726,33 @@ target()
|
|||||||
if (isDefined(self.bot.script_target_offset))
|
if (isDefined(self.bot.script_target_offset))
|
||||||
entOrigin += self.bot.script_target_offset;
|
entOrigin += self.bot.script_target_offset;
|
||||||
|
|
||||||
for(;;)
|
|
||||||
{
|
|
||||||
if(SmokeTrace(myEye, entOrigin, level.smokeRadius) && bulletTracePassed(myEye, entOrigin, false, ent))
|
if(SmokeTrace(myEye, entOrigin, level.smokeRadius) && bulletTracePassed(myEye, entOrigin, false, ent))
|
||||||
{
|
{
|
||||||
if(!isObjDef)
|
if(!isObjDef)
|
||||||
{
|
{
|
||||||
obj = spawnStruct();
|
obj = createTargetObj(ent, theTime);
|
||||||
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 = self.bot.script_target_offset;
|
obj.offset = self.bot.script_target_offset;
|
||||||
obj.bone = undefined;
|
|
||||||
obj.aim_offset = undefined;
|
|
||||||
|
|
||||||
self.bot.targets[key] = obj;
|
self.bot.targets[key] = obj;
|
||||||
}
|
}
|
||||||
|
|
||||||
obj.no_trace_time = 0;
|
targetObjUpdateTraced(obj, daDist, ent, theTime);
|
||||||
obj.trace_time += 50;
|
|
||||||
obj.dist = daDist;
|
|
||||||
obj.last_seen_pos = ent.origin;
|
|
||||||
obj.trace_time_time = theTime;
|
|
||||||
}
|
}
|
||||||
else
|
else
|
||||||
{
|
{
|
||||||
if(!isObjDef)
|
if(!isObjDef)
|
||||||
break;
|
continue;
|
||||||
|
|
||||||
obj.no_trace_time += 50;
|
targetObjUpdateNoTrace(obj);
|
||||||
obj.trace_time = 0;
|
|
||||||
obj.didlook = false;
|
|
||||||
|
|
||||||
if(obj.no_trace_time > rememberTime)
|
if(obj.no_trace_time > rememberTime)
|
||||||
{
|
{
|
||||||
self.bot.targets[key] = undefined;
|
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;
|
|
||||||
}
|
}
|
||||||
|
else
|
||||||
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++)
|
|
||||||
{
|
{
|
||||||
player = level.players[i];
|
player = level.players[i];
|
||||||
|
|
||||||
@ -1825,42 +1799,30 @@ target()
|
|||||||
(isObjDef && obj.trace_time)));
|
(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(canTargetPlayer)
|
||||||
{
|
{
|
||||||
if(!isObjDef)
|
if(!isObjDef)
|
||||||
{
|
{
|
||||||
obj = spawnStruct();
|
obj = createTargetObj(player, theTime);
|
||||||
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;
|
self.bot.targets[key] = obj;
|
||||||
}
|
}
|
||||||
|
|
||||||
obj.no_trace_time = 0;
|
targetObjUpdateTraced(obj, daDist, player, theTime);
|
||||||
obj.trace_time += 50;
|
|
||||||
obj.dist = daDist;
|
|
||||||
obj.last_seen_pos = player.origin;
|
|
||||||
obj.trace_time_time = theTime;
|
|
||||||
}
|
}
|
||||||
else
|
else
|
||||||
{
|
{
|
||||||
if(!isObjDef)
|
if(!isObjDef)
|
||||||
continue;
|
continue;
|
||||||
|
|
||||||
obj.no_trace_time += 50;
|
targetObjUpdateNoTrace(obj);
|
||||||
obj.trace_time = 0;
|
|
||||||
obj.didlook = false;
|
|
||||||
|
|
||||||
if(obj.no_trace_time > rememberTime)
|
if(obj.no_trace_time > rememberTime)
|
||||||
{
|
{
|
||||||
@ -1868,6 +1830,7 @@ target()
|
|||||||
continue;
|
continue;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
}
|
||||||
|
|
||||||
if(theTime - obj.time < initReactTime)
|
if(theTime - obj.time < initReactTime)
|
||||||
continue;
|
continue;
|
||||||
|
Loading…
x
Reference in New Issue
Block a user