From c42abed4f924997364128296f0714514d9c59657 Mon Sep 17 00:00:00 2001 From: INeedBots Date: Sat, 31 Oct 2020 15:21:52 -0600 Subject: [PATCH] aimoffset --- main_shared/maps/mp/bots/_bot_internal.gsc | 34 +++++++++++++++++----- 1 file changed, 27 insertions(+), 7 deletions(-) diff --git a/main_shared/maps/mp/bots/_bot_internal.gsc b/main_shared/maps/mp/bots/_bot_internal.gsc index 6d6e6d9..f2ec211 100644 --- a/main_shared/maps/mp/bots/_bot_internal.gsc +++ b/main_shared/maps/mp/bots/_bot_internal.gsc @@ -501,6 +501,7 @@ createTargetObj(ent, theTime) obj.offset = undefined; obj.bone = undefined; obj.aim_offset = undefined; + obj.aim_offset_base = undefined; return obj; } @@ -510,6 +511,25 @@ createTargetObj(ent, theTime) */ updateAimOffset(obj) { + if (!isDefined(obj.aim_offset_base)) + { + if (self.pers["bots"]["skill"]["aim_offset_amount"] > 0) + obj.aim_offset_base = (randomFloatRange(0-self.pers["bots"]["skill"]["aim_offset_amount"], self.pers["bots"]["skill"]["aim_offset_amount"]), + randomFloatRange(0-self.pers["bots"]["skill"]["aim_offset_amount"], self.pers["bots"]["skill"]["aim_offset_amount"]), + randomFloatRange(0-self.pers["bots"]["skill"]["aim_offset_amount"], self.pers["bots"]["skill"]["aim_offset_amount"])); + else + obj.aim_offset_base = (0,0,0); + } + + aimDiffTime = self.pers["bots"]["skill"]["aim_offset_time"] * 1000; + objCreatedFor = obj.trace_time; + + if (objCreatedFor >= aimDiffTime) + offsetScalar = 0; + else + offsetScalar = 1 - objCreatedFor / aimDiffTime; + + obj.aim_offset = obj.aim_offset_base * offsetScalar; } /* @@ -523,7 +543,7 @@ targetObjUpdateTraced(obj, daDist, ent, theTime) obj.last_seen_pos = ent.origin; obj.trace_time_time = theTime; - updateAimOffset(obj); + self updateAimOffset(obj); } /* @@ -590,20 +610,20 @@ target() { if(!isObjDef) { - obj = createTargetObj(ent, theTime); + obj = self createTargetObj(ent, theTime); obj.offset = self.bot.script_target_offset; self.bot.targets[key] = obj; } - targetObjUpdateTraced(obj, daDist, ent, theTime); + self targetObjUpdateTraced(obj, daDist, ent, theTime); } else { if(!isObjDef) continue; - targetObjUpdateNoTrace(obj); + self targetObjUpdateNoTrace(obj); if(obj.no_trace_time > rememberTime) { @@ -658,19 +678,19 @@ target() { if(!isObjDef) { - obj = createTargetObj(player, theTime); + obj = self createTargetObj(player, theTime); self.bot.targets[key] = obj; } - targetObjUpdateTraced(obj, daDist, player, theTime); + self targetObjUpdateTraced(obj, daDist, player, theTime); } else { if(!isObjDef) continue; - targetObjUpdateNoTrace(obj); + self targetObjUpdateNoTrace(obj); if(obj.no_trace_time > rememberTime) {