From f7c04beb269dc532c35b46e5d0038426e648a5cd Mon Sep 17 00:00:00 2001 From: INeedBots Date: Thu, 5 Nov 2020 18:06:09 -0600 Subject: [PATCH] possible fix for script vars --- userraw/maps/mp/bots/_bot_internal.gsc | 34 +++++++++++-------- userraw/maps/mp/bots/_bot_script.gsc | 46 +++++--------------------- 2 files changed, 29 insertions(+), 51 deletions(-) diff --git a/userraw/maps/mp/bots/_bot_internal.gsc b/userraw/maps/mp/bots/_bot_internal.gsc index f89098a..f6bf4fc 100644 --- a/userraw/maps/mp/bots/_bot_internal.gsc +++ b/userraw/maps/mp/bots/_bot_internal.gsc @@ -38,8 +38,7 @@ added() self.pers["bots"]["skill"]["aim_offset_time"] = 1; self.pers["bots"]["skill"]["aim_offset_amount"] = 1; self.pers["bots"]["skill"]["bone_update_interval"] = 0.05; - self.pers["bots"]["skill"]["bones"] = []; - self.pers["bots"]["skill"]["bones"][0] = "j_head"; + self.pers["bots"]["skill"]["bones"] = "j_head"; self.pers["bots"]["behavior"] = []; self.pers["bots"]["behavior"]["strafe"] = 50; @@ -146,6 +145,7 @@ resetBotVars() self.bot.target_this_frame = undefined; self.bot.jav_loc = undefined; self.bot.after_target = undefined; + self.bot.after_target_pos = undefined; self.bot.script_aimpos = undefined; @@ -1609,10 +1609,13 @@ updateBones() { self endon("disconnect"); self endon("spawned_player"); + + bones = strtok(self.pers["bots"]["skill"]["bones"], ","); + waittime = self.pers["bots"]["skill"]["bone_update_interval"]; for(;;) { - self waittill_any_timeout(self.pers["bots"]["skill"]["bone_update_interval"], "new_enemy"); + self waittill_any_timeout(waittime, "new_enemy"); if (!isAlive(self)) return; @@ -1620,7 +1623,7 @@ updateBones() if (!isDefined(self.bot.target)) continue; - self.bot.target.bone = random(self.pers["bots"]["skill"]["bones"]); + self.bot.target.bone = random(bones); } } @@ -1655,10 +1658,11 @@ updateAimOffset(obj, theTime) { 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"])); + offsetAmount = self.pers["bots"]["skill"]["aim_offset_amount"]; + if (offsetAmount > 0) + obj.aim_offset_base = (randomFloatRange(0-offsetAmount, offsetAmount), + randomFloatRange(0-offsetAmount, offsetAmount), + randomFloatRange(0-offsetAmount, offsetAmount)); else obj.aim_offset_base = (0,0,0); } @@ -1747,6 +1751,8 @@ target() playercount = level.players.size; for(i = -1; i < playercount; i++) { + obj = undefined; + if (i == -1) { if (!isDefined(self.bot.script_target)) @@ -1866,6 +1872,9 @@ target() } } } + + if (!isdefined(obj)) + continue; if(theTime - obj.time < initReactTime) continue; @@ -2012,9 +2021,8 @@ start_bot_after_target(who) self endon("disconnect"); self endon("spawned_player"); - self.bot.after_target = spawnStruct(); - self.bot.after_target.target = who; - self.bot.after_target.last_pos = who.origin; + self.bot.after_target = who; + self.bot.after_target_pos = who.origin; self notify("kill_after_target"); self endon("kill_after_target"); @@ -2112,7 +2120,7 @@ aim() nadeAimOffset = dist/3000; } - if(no_trace_time && (!isDefined(self.bot.after_target) || self.bot.after_target.target != target)) + if(no_trace_time && (!isDefined(self.bot.after_target) || self.bot.after_target != target)) { if(no_trace_time > no_trace_ads_time && !usingRemote) { @@ -2211,7 +2219,7 @@ aim() if (isDefined(self.bot.after_target) && !isClimbing) { nadeAimOffset = 0; - last_pos = self.bot.after_target.last_pos; + last_pos = self.bot.after_target_pos; dist = DistanceSquared(self.origin, last_pos); if(weaponClass(curweap) == "grenade" || curweap == "throwingknife_mp") diff --git a/userraw/maps/mp/bots/_bot_script.gsc b/userraw/maps/mp/bots/_bot_script.gsc index c25308a..12ef869 100644 --- a/userraw/maps/mp/bots/_bot_script.gsc +++ b/userraw/maps/mp/bots/_bot_script.gsc @@ -1026,10 +1026,7 @@ difficulty() self.pers["bots"]["skill"]["aim_offset_time"] = 1.5; self.pers["bots"]["skill"]["aim_offset_amount"] = 4; self.pers["bots"]["skill"]["bone_update_interval"] = 2; - self.pers["bots"]["skill"]["bones"] = []; - self.pers["bots"]["skill"]["bones"][0] = "j_spineupper"; - self.pers["bots"]["skill"]["bones"][1] = "j_ankle_le"; - self.pers["bots"]["skill"]["bones"][2] = "j_ankle_ri"; + self.pers["bots"]["skill"]["bones"] = "j_spineupper,j_ankle_le,j_ankle_ri"; self.pers["bots"]["behavior"]["strafe"] = 0; self.pers["bots"]["behavior"]["nade"] = 10; @@ -1057,11 +1054,7 @@ difficulty() self.pers["bots"]["skill"]["aim_offset_time"] = 1; self.pers["bots"]["skill"]["aim_offset_amount"] = 3; self.pers["bots"]["skill"]["bone_update_interval"] = 1.5; - self.pers["bots"]["skill"]["bones"] = []; - self.pers["bots"]["skill"]["bones"][0] = "j_spineupper"; - self.pers["bots"]["skill"]["bones"][1] = "j_ankle_le"; - self.pers["bots"]["skill"]["bones"][2] = "j_ankle_ri"; - self.pers["bots"]["skill"]["bones"][3] = "j_head"; + self.pers["bots"]["skill"]["bones"] = "j_spineupper,j_ankle_le,j_ankle_ri,j_head"; self.pers["bots"]["behavior"]["strafe"] = 10; self.pers["bots"]["behavior"]["nade"] = 15; @@ -1089,12 +1082,7 @@ difficulty() self.pers["bots"]["skill"]["aim_offset_time"] = 0.75; self.pers["bots"]["skill"]["aim_offset_amount"] = 2.5; self.pers["bots"]["skill"]["bone_update_interval"] = 1; - self.pers["bots"]["skill"]["bones"] = []; - self.pers["bots"]["skill"]["bones"][0] = "j_spineupper"; - self.pers["bots"]["skill"]["bones"][1] = "j_spineupper"; - self.pers["bots"]["skill"]["bones"][2] = "j_ankle_le"; - self.pers["bots"]["skill"]["bones"][3] = "j_ankle_ri"; - self.pers["bots"]["skill"]["bones"][4] = "j_head"; + self.pers["bots"]["skill"]["bones"] = "j_spineupper,j_spineupper,j_ankle_le,j_ankle_ri,j_head"; self.pers["bots"]["behavior"]["strafe"] = 20; self.pers["bots"]["behavior"]["nade"] = 20; @@ -1122,13 +1110,7 @@ difficulty() self.pers["bots"]["skill"]["aim_offset_time"] = 0.5; self.pers["bots"]["skill"]["aim_offset_amount"] = 2; self.pers["bots"]["skill"]["bone_update_interval"] = 0.75; - self.pers["bots"]["skill"]["bones"] = []; - self.pers["bots"]["skill"]["bones"][0] = "j_spineupper"; - self.pers["bots"]["skill"]["bones"][1] = "j_spineupper"; - self.pers["bots"]["skill"]["bones"][2] = "j_ankle_le"; - self.pers["bots"]["skill"]["bones"][3] = "j_ankle_ri"; - self.pers["bots"]["skill"]["bones"][4] = "j_head"; - self.pers["bots"]["skill"]["bones"][5] = "j_head"; + self.pers["bots"]["skill"]["bones"] = "j_spineupper,j_spineupper,j_ankle_le,j_ankle_ri,j_head,j_head"; self.pers["bots"]["behavior"]["strafe"] = 30; self.pers["bots"]["behavior"]["nade"] = 25; @@ -1156,11 +1138,7 @@ difficulty() self.pers["bots"]["skill"]["aim_offset_time"] = 0.35; self.pers["bots"]["skill"]["aim_offset_amount"] = 1.5; self.pers["bots"]["skill"]["bone_update_interval"] = 0.5; - self.pers["bots"]["skill"]["bones"] = []; - self.pers["bots"]["skill"]["bones"][0] = "j_spineupper"; - self.pers["bots"]["skill"]["bones"][1] = "j_spineupper"; - self.pers["bots"]["skill"]["bones"][2] = "j_head"; - self.pers["bots"]["skill"]["bones"][3] = "j_head"; + self.pers["bots"]["skill"]["bones"] = "j_spineupper,j_head"; self.pers["bots"]["behavior"]["strafe"] = 40; self.pers["bots"]["behavior"]["nade"] = 35; @@ -1188,10 +1166,7 @@ difficulty() self.pers["bots"]["skill"]["aim_offset_time"] = 0.25; self.pers["bots"]["skill"]["aim_offset_amount"] = 1; self.pers["bots"]["skill"]["bone_update_interval"] = 0.25; - self.pers["bots"]["skill"]["bones"] = []; - self.pers["bots"]["skill"]["bones"][0] = "j_spineupper"; - self.pers["bots"]["skill"]["bones"][1] = "j_head"; - self.pers["bots"]["skill"]["bones"][2] = "j_head"; + self.pers["bots"]["skill"]["bones"] = "j_spineupper,j_head,j_head"; self.pers["bots"]["behavior"]["strafe"] = 50; self.pers["bots"]["behavior"]["nade"] = 45; @@ -1219,8 +1194,7 @@ difficulty() self.pers["bots"]["skill"]["aim_offset_time"] = 0; self.pers["bots"]["skill"]["aim_offset_amount"] = 0; self.pers["bots"]["skill"]["bone_update_interval"] = 0.05; - self.pers["bots"]["skill"]["bones"] = []; - self.pers["bots"]["skill"]["bones"][0] = "j_head"; + self.pers["bots"]["skill"]["bones"] = "j_head"; self.pers["bots"]["behavior"]["strafe"] = 65; self.pers["bots"]["behavior"]["nade"] = 65; @@ -1267,11 +1241,7 @@ set_diff() self.pers["bots"]["skill"]["aim_offset_time"] = randomFloatRange(0.05, 1); self.pers["bots"]["skill"]["aim_offset_amount"] = randomFloatRange(0.05, 1); self.pers["bots"]["skill"]["bone_update_interval"] = randomFloatRange(0.05, 1); - self.pers["bots"]["skill"]["bones"] = []; - self.pers["bots"]["skill"]["bones"][0] = "j_head"; - self.pers["bots"]["skill"]["bones"][1] = "j_spineupper"; - self.pers["bots"]["skill"]["bones"][2] = "j_ankle_ri"; - self.pers["bots"]["skill"]["bones"][3] = "j_ankle_le"; + self.pers["bots"]["skill"]["bones"] = "j_head,j_spineupper,j_ankle_le,j_ankle_ri"; self.pers["bots"]["behavior"]["strafe"] = randomInt(100); self.pers["bots"]["behavior"]["nade"] = randomInt(100);