possible fix for script vars

This commit is contained in:
INeedBots 2020-11-05 18:06:09 -06:00
parent b697c9e20d
commit f7c04beb26
2 changed files with 29 additions and 51 deletions

View File

@ -38,8 +38,7 @@ added()
self.pers["bots"]["skill"]["aim_offset_time"] = 1; self.pers["bots"]["skill"]["aim_offset_time"] = 1;
self.pers["bots"]["skill"]["aim_offset_amount"] = 1; self.pers["bots"]["skill"]["aim_offset_amount"] = 1;
self.pers["bots"]["skill"]["bone_update_interval"] = 0.05; self.pers["bots"]["skill"]["bone_update_interval"] = 0.05;
self.pers["bots"]["skill"]["bones"] = []; self.pers["bots"]["skill"]["bones"] = "j_head";
self.pers["bots"]["skill"]["bones"][0] = "j_head";
self.pers["bots"]["behavior"] = []; self.pers["bots"]["behavior"] = [];
self.pers["bots"]["behavior"]["strafe"] = 50; self.pers["bots"]["behavior"]["strafe"] = 50;
@ -146,6 +145,7 @@ resetBotVars()
self.bot.target_this_frame = undefined; self.bot.target_this_frame = undefined;
self.bot.jav_loc = undefined; self.bot.jav_loc = undefined;
self.bot.after_target = undefined; self.bot.after_target = undefined;
self.bot.after_target_pos = undefined;
self.bot.script_aimpos = undefined; self.bot.script_aimpos = undefined;
@ -1610,9 +1610,12 @@ updateBones()
self endon("disconnect"); self endon("disconnect");
self endon("spawned_player"); self endon("spawned_player");
bones = strtok(self.pers["bots"]["skill"]["bones"], ",");
waittime = self.pers["bots"]["skill"]["bone_update_interval"];
for(;;) for(;;)
{ {
self waittill_any_timeout(self.pers["bots"]["skill"]["bone_update_interval"], "new_enemy"); self waittill_any_timeout(waittime, "new_enemy");
if (!isAlive(self)) if (!isAlive(self))
return; return;
@ -1620,7 +1623,7 @@ updateBones()
if (!isDefined(self.bot.target)) if (!isDefined(self.bot.target))
continue; 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 (!isDefined(obj.aim_offset_base))
{ {
if (self.pers["bots"]["skill"]["aim_offset_amount"] > 0) offsetAmount = self.pers["bots"]["skill"]["aim_offset_amount"];
obj.aim_offset_base = (randomFloatRange(0-self.pers["bots"]["skill"]["aim_offset_amount"], self.pers["bots"]["skill"]["aim_offset_amount"]), if (offsetAmount > 0)
randomFloatRange(0-self.pers["bots"]["skill"]["aim_offset_amount"], self.pers["bots"]["skill"]["aim_offset_amount"]), obj.aim_offset_base = (randomFloatRange(0-offsetAmount, offsetAmount),
randomFloatRange(0-self.pers["bots"]["skill"]["aim_offset_amount"], self.pers["bots"]["skill"]["aim_offset_amount"])); randomFloatRange(0-offsetAmount, offsetAmount),
randomFloatRange(0-offsetAmount, offsetAmount));
else else
obj.aim_offset_base = (0,0,0); obj.aim_offset_base = (0,0,0);
} }
@ -1747,6 +1751,8 @@ target()
playercount = level.players.size; playercount = level.players.size;
for(i = -1; i < playercount; i++) for(i = -1; i < playercount; i++)
{ {
obj = undefined;
if (i == -1) if (i == -1)
{ {
if (!isDefined(self.bot.script_target)) if (!isDefined(self.bot.script_target))
@ -1867,6 +1873,9 @@ target()
} }
} }
if (!isdefined(obj))
continue;
if(theTime - obj.time < initReactTime) if(theTime - obj.time < initReactTime)
continue; continue;
@ -2012,9 +2021,8 @@ start_bot_after_target(who)
self endon("disconnect"); self endon("disconnect");
self endon("spawned_player"); self endon("spawned_player");
self.bot.after_target = spawnStruct(); self.bot.after_target = who;
self.bot.after_target.target = who; self.bot.after_target_pos = who.origin;
self.bot.after_target.last_pos = who.origin;
self notify("kill_after_target"); self notify("kill_after_target");
self endon("kill_after_target"); self endon("kill_after_target");
@ -2112,7 +2120,7 @@ aim()
nadeAimOffset = dist/3000; 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) if(no_trace_time > no_trace_ads_time && !usingRemote)
{ {
@ -2211,7 +2219,7 @@ aim()
if (isDefined(self.bot.after_target) && !isClimbing) if (isDefined(self.bot.after_target) && !isClimbing)
{ {
nadeAimOffset = 0; nadeAimOffset = 0;
last_pos = self.bot.after_target.last_pos; last_pos = self.bot.after_target_pos;
dist = DistanceSquared(self.origin, last_pos); dist = DistanceSquared(self.origin, last_pos);
if(weaponClass(curweap) == "grenade" || curweap == "throwingknife_mp") if(weaponClass(curweap) == "grenade" || curweap == "throwingknife_mp")

View File

@ -1026,10 +1026,7 @@ difficulty()
self.pers["bots"]["skill"]["aim_offset_time"] = 1.5; self.pers["bots"]["skill"]["aim_offset_time"] = 1.5;
self.pers["bots"]["skill"]["aim_offset_amount"] = 4; self.pers["bots"]["skill"]["aim_offset_amount"] = 4;
self.pers["bots"]["skill"]["bone_update_interval"] = 2; self.pers["bots"]["skill"]["bone_update_interval"] = 2;
self.pers["bots"]["skill"]["bones"] = []; self.pers["bots"]["skill"]["bones"] = "j_spineupper,j_ankle_le,j_ankle_ri";
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"]["behavior"]["strafe"] = 0; self.pers["bots"]["behavior"]["strafe"] = 0;
self.pers["bots"]["behavior"]["nade"] = 10; 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_time"] = 1;
self.pers["bots"]["skill"]["aim_offset_amount"] = 3; self.pers["bots"]["skill"]["aim_offset_amount"] = 3;
self.pers["bots"]["skill"]["bone_update_interval"] = 1.5; self.pers["bots"]["skill"]["bone_update_interval"] = 1.5;
self.pers["bots"]["skill"]["bones"] = []; self.pers["bots"]["skill"]["bones"] = "j_spineupper,j_ankle_le,j_ankle_ri,j_head";
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"]["behavior"]["strafe"] = 10; self.pers["bots"]["behavior"]["strafe"] = 10;
self.pers["bots"]["behavior"]["nade"] = 15; 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_time"] = 0.75;
self.pers["bots"]["skill"]["aim_offset_amount"] = 2.5; self.pers["bots"]["skill"]["aim_offset_amount"] = 2.5;
self.pers["bots"]["skill"]["bone_update_interval"] = 1; self.pers["bots"]["skill"]["bone_update_interval"] = 1;
self.pers["bots"]["skill"]["bones"] = []; self.pers["bots"]["skill"]["bones"] = "j_spineupper,j_spineupper,j_ankle_le,j_ankle_ri,j_head";
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"]["behavior"]["strafe"] = 20; self.pers["bots"]["behavior"]["strafe"] = 20;
self.pers["bots"]["behavior"]["nade"] = 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_time"] = 0.5;
self.pers["bots"]["skill"]["aim_offset_amount"] = 2; self.pers["bots"]["skill"]["aim_offset_amount"] = 2;
self.pers["bots"]["skill"]["bone_update_interval"] = 0.75; self.pers["bots"]["skill"]["bone_update_interval"] = 0.75;
self.pers["bots"]["skill"]["bones"] = []; self.pers["bots"]["skill"]["bones"] = "j_spineupper,j_spineupper,j_ankle_le,j_ankle_ri,j_head,j_head";
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"]["behavior"]["strafe"] = 30; self.pers["bots"]["behavior"]["strafe"] = 30;
self.pers["bots"]["behavior"]["nade"] = 25; 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_time"] = 0.35;
self.pers["bots"]["skill"]["aim_offset_amount"] = 1.5; self.pers["bots"]["skill"]["aim_offset_amount"] = 1.5;
self.pers["bots"]["skill"]["bone_update_interval"] = 0.5; self.pers["bots"]["skill"]["bone_update_interval"] = 0.5;
self.pers["bots"]["skill"]["bones"] = []; self.pers["bots"]["skill"]["bones"] = "j_spineupper,j_head";
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"]["behavior"]["strafe"] = 40; self.pers["bots"]["behavior"]["strafe"] = 40;
self.pers["bots"]["behavior"]["nade"] = 35; 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_time"] = 0.25;
self.pers["bots"]["skill"]["aim_offset_amount"] = 1; self.pers["bots"]["skill"]["aim_offset_amount"] = 1;
self.pers["bots"]["skill"]["bone_update_interval"] = 0.25; self.pers["bots"]["skill"]["bone_update_interval"] = 0.25;
self.pers["bots"]["skill"]["bones"] = []; self.pers["bots"]["skill"]["bones"] = "j_spineupper,j_head,j_head";
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"]["behavior"]["strafe"] = 50; self.pers["bots"]["behavior"]["strafe"] = 50;
self.pers["bots"]["behavior"]["nade"] = 45; 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_time"] = 0;
self.pers["bots"]["skill"]["aim_offset_amount"] = 0; self.pers["bots"]["skill"]["aim_offset_amount"] = 0;
self.pers["bots"]["skill"]["bone_update_interval"] = 0.05; self.pers["bots"]["skill"]["bone_update_interval"] = 0.05;
self.pers["bots"]["skill"]["bones"] = []; self.pers["bots"]["skill"]["bones"] = "j_head";
self.pers["bots"]["skill"]["bones"][0] = "j_head";
self.pers["bots"]["behavior"]["strafe"] = 65; self.pers["bots"]["behavior"]["strafe"] = 65;
self.pers["bots"]["behavior"]["nade"] = 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_time"] = randomFloatRange(0.05, 1);
self.pers["bots"]["skill"]["aim_offset_amount"] = 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"]["bone_update_interval"] = randomFloatRange(0.05, 1);
self.pers["bots"]["skill"]["bones"] = []; self.pers["bots"]["skill"]["bones"] = "j_head,j_spineupper,j_ankle_le,j_ankle_ri";
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"]["behavior"]["strafe"] = randomInt(100); self.pers["bots"]["behavior"]["strafe"] = randomInt(100);
self.pers["bots"]["behavior"]["nade"] = randomInt(100); self.pers["bots"]["behavior"]["nade"] = randomInt(100);