no_trace_look_time and no_trace_ads_time

This commit is contained in:
Your Name 2020-07-30 20:49:13 -06:00
parent 63f99ac24a
commit 2a93f48e3f
2 changed files with 111 additions and 88 deletions

View File

@ -18,7 +18,9 @@ added()
self.pers["bots"]["skill"]["aim_time"] = 0.05; self.pers["bots"]["skill"]["aim_time"] = 0.05;
self.pers["bots"]["skill"]["init_react_time"] = 0; self.pers["bots"]["skill"]["init_react_time"] = 0;
self.pers["bots"]["skill"]["reaction_time"] = 0; self.pers["bots"]["skill"]["reaction_time"] = 0;
self.pers["bots"]["skill"]["remember_time"] = 10000; self.pers["bots"]["skill"]["no_trace_ads_time"] = 2500;
self.pers["bots"]["skill"]["no_trace_look_time"] = 10000;
self.pers["bots"]["skill"]["remember_time"] = 25000;
self.pers["bots"]["skill"]["fov"] = -1; self.pers["bots"]["skill"]["fov"] = -1;
self.pers["bots"]["skill"]["dist"] = 100000; self.pers["bots"]["skill"]["dist"] = 100000;
self.pers["bots"]["skill"]["spawn_time"] = 0; self.pers["bots"]["skill"]["spawn_time"] = 0;
@ -420,7 +422,7 @@ check_reload()
for(;;) for(;;)
{ {
self waittill( "weapon_fired" ); self waittill_notify_or_timeout( "weapon_fired", 5 );
self thread reload_thread(); self thread reload_thread();
} }
} }
@ -820,111 +822,116 @@ aim()
if(isDefined(self.bot.target) && isDefined(self.bot.target.entity)) if(isDefined(self.bot.target) && isDefined(self.bot.target.entity))
{ {
trace_time = self.bot.target.trace_time;
no_trace_time = self.bot.target.no_trace_time; no_trace_time = self.bot.target.no_trace_time;
last_pos = self.bot.target.last_seen_pos; no_trace_look_time = self.pers["bots"]["skill"]["no_trace_look_time"];
target = self.bot.target.entity;
conedot = 0; if (no_trace_time <= no_trace_look_time)
isplay = self.bot.target.isplay;
offset = self.bot.target.offset;
dist = self.bot.target.dist;
curweap = self getCurrentWeapon();
eyePos = self getEyePos();
angles = self GetPlayerAngles();
rand = self.bot.target.rand;
remember_time = self.pers["bots"]["skill"]["remember_time"];
reaction_time = self.pers["bots"]["skill"]["reaction_time"];
nadeAimOffset = 0;
myeye = self getEyePos();
if(self.bot.isfraggingafter || self.bot.issmokingafter)
nadeAimOffset = dist/3000;
else if(weaponClass(curweap) == "grenade")
nadeAimOffset = dist/16000;
if(no_trace_time)
{ {
if(no_trace_time > remember_time/2) trace_time = self.bot.target.trace_time;
last_pos = self.bot.target.last_seen_pos;
target = self.bot.target.entity;
conedot = 0;
isplay = self.bot.target.isplay;
offset = self.bot.target.offset;
dist = self.bot.target.dist;
curweap = self getCurrentWeapon();
eyePos = self getEyePos();
angles = self GetPlayerAngles();
rand = self.bot.target.rand;
no_trace_ads_time = self.pers["bots"]["skill"]["no_trace_ads_time"];
reaction_time = self.pers["bots"]["skill"]["reaction_time"];
nadeAimOffset = 0;
myeye = self getEyePos();
if(self.bot.isfraggingafter || self.bot.issmokingafter)
nadeAimOffset = dist/3000;
else if(weaponClass(curweap) == "grenade")
nadeAimOffset = dist/16000;
if(no_trace_time)
{ {
self ads(false); if(no_trace_time > no_trace_ads_time)
if(isplay)
{ {
//better room to nade? cook time function with dist? self ads(false);
if(!self.bot.isfraggingafter && !self.bot.issmokingafter)
if(isplay)
{ {
nade = self getValidGrenade(); //better room to nade? cook time function with dist?
if(isDefined(nade) && rand <= self.pers["bots"]["behavior"]["nade"] && bulletTracePassed(myEye, myEye + (0, 0, 75), false, self) && bulletTracePassed(last_pos, last_pos + (0, 0, 100), false, target)) if(!self.bot.isfraggingafter && !self.bot.issmokingafter)
{ {
if(nade == "frag_grenade_mp") nade = self getValidGrenade();
self thread frag(2.5); if(isDefined(nade) && rand <= self.pers["bots"]["behavior"]["nade"] && bulletTracePassed(myEye, myEye + (0, 0, 75), false, self) && bulletTracePassed(last_pos, last_pos + (0, 0, 100), false, target))
else {
self thread smoke(0.5); if(nade == "frag_grenade_mp")
self thread frag(2.5);
self notify("kill_goal"); else
self thread smoke(0.5);
self notify("kill_goal");
}
} }
} }
else
{
self stopNading();
}
}
self botLookAt(last_pos + (0, 0, self getEyeHeight() + nadeAimOffset), aimspeed);
continue;
}
self stopNading();
if(isplay)
{
aimpos = target getTagOrigin( "j_spineupper" ) + (0, 0, nadeAimOffset);
conedot = getConeDot(aimpos, eyePos, angles);
if(!nadeAimOffset && conedot > 0.999)
{
self botLookAtPlayer(target, "j_spineupper");
} }
else else
{ {
self stopNading(); self botLookAt(aimpos, aimspeed);
} }
} }
self botLookAt(last_pos + (0, 0, self getEyeHeight() + nadeAimOffset), aimspeed);
continue;
}
self stopNading();
if(isplay)
{
aimpos = target getTagOrigin( "j_spineupper" ) + (0, 0, nadeAimOffset);
conedot = getConeDot(aimpos, eyePos, angles);
if(!nadeAimOffset && conedot > 0.999)
{
self botLookAtPlayer(target, "j_spineupper");
}
else else
{ {
aimpos = target.origin;
if (isDefined(offset))
aimpos += offset;
aimpos += (0, 0, nadeAimOffset);
conedot = getConeDot(aimpos, eyePos, angles);
self botLookAt(aimpos, aimspeed); self botLookAt(aimpos, aimspeed);
} }
}
else if(isplay && conedot > 0.9 && dist < level.bots_maxKnifeDistance && trace_time > reaction_time)
{ {
aimpos = target.origin; self ads(false);
if (isDefined(offset)) self knife();
aimpos += offset; continue;
aimpos += (0, 0, nadeAimOffset); }
conedot = getConeDot(aimpos, eyePos, angles);
self botLookAt(aimpos, aimspeed); if(!self canFire(curweap) || !self isInRange(dist, curweap))
} {
self ads(false);
if(isplay && conedot > 0.9 && dist < level.bots_maxKnifeDistance && trace_time > reaction_time) continue;
{ }
self ads(false);
self knife(); //c4 logic here, but doesnt work anyway
canADS = self canAds(dist, curweap);
self ads(canADS);
if((!canADS || self playerads() == 1.0) && (conedot > 0.95 || dist < level.bots_maxKnifeDistance) && trace_time > reaction_time)
{
self botFire();
}
continue; continue;
} }
if(!self canFire(curweap) || !self isInRange(dist, curweap))
{
self ads(false);
continue;
}
//c4 logic here, but doesnt work anyway
canADS = self canAds(dist, curweap);
self ads(canADS);
if((!canADS || self playerads() == 1.0) && (conedot > 0.999 || dist < level.bots_maxKnifeDistance) && trace_time > reaction_time)
{
self botFire();
}
continue;
} }
self ads(false); self ads(false);

View File

@ -266,6 +266,8 @@ difficulty()
self.pers["bots"]["skill"]["aim_time"] = 0.6; self.pers["bots"]["skill"]["aim_time"] = 0.6;
self.pers["bots"]["skill"]["init_react_time"] = 1500; self.pers["bots"]["skill"]["init_react_time"] = 1500;
self.pers["bots"]["skill"]["reaction_time"] = 1000; self.pers["bots"]["skill"]["reaction_time"] = 1000;
self.pers["bots"]["skill"]["no_trace_ads_time"] = 500;
self.pers["bots"]["skill"]["no_trace_look_time"] = 600;
self.pers["bots"]["skill"]["remember_time"] = 750; self.pers["bots"]["skill"]["remember_time"] = 750;
self.pers["bots"]["skill"]["fov"] = 0.7; self.pers["bots"]["skill"]["fov"] = 0.7;
self.pers["bots"]["skill"]["dist"] = 1000; self.pers["bots"]["skill"]["dist"] = 1000;
@ -286,6 +288,8 @@ difficulty()
self.pers["bots"]["skill"]["aim_time"] = 0.55; self.pers["bots"]["skill"]["aim_time"] = 0.55;
self.pers["bots"]["skill"]["init_react_time"] = 1000; self.pers["bots"]["skill"]["init_react_time"] = 1000;
self.pers["bots"]["skill"]["reaction_time"] = 800; self.pers["bots"]["skill"]["reaction_time"] = 800;
self.pers["bots"]["skill"]["no_trace_ads_time"] = 1000;
self.pers["bots"]["skill"]["no_trace_look_time"] = 1250;
self.pers["bots"]["skill"]["remember_time"] = 1500; self.pers["bots"]["skill"]["remember_time"] = 1500;
self.pers["bots"]["skill"]["fov"] = 0.65; self.pers["bots"]["skill"]["fov"] = 0.65;
self.pers["bots"]["skill"]["dist"] = 1500; self.pers["bots"]["skill"]["dist"] = 1500;
@ -306,6 +310,8 @@ difficulty()
self.pers["bots"]["skill"]["aim_time"] = 0.4; self.pers["bots"]["skill"]["aim_time"] = 0.4;
self.pers["bots"]["skill"]["init_react_time"] = 750; self.pers["bots"]["skill"]["init_react_time"] = 750;
self.pers["bots"]["skill"]["reaction_time"] = 500; self.pers["bots"]["skill"]["reaction_time"] = 500;
self.pers["bots"]["skill"]["no_trace_ads_time"] = 1000;
self.pers["bots"]["skill"]["no_trace_look_time"] = 1500;
self.pers["bots"]["skill"]["remember_time"] = 2000; self.pers["bots"]["skill"]["remember_time"] = 2000;
self.pers["bots"]["skill"]["fov"] = 0.6; self.pers["bots"]["skill"]["fov"] = 0.6;
self.pers["bots"]["skill"]["dist"] = 2250; self.pers["bots"]["skill"]["dist"] = 2250;
@ -326,6 +332,8 @@ difficulty()
self.pers["bots"]["skill"]["aim_time"] = 0.3; self.pers["bots"]["skill"]["aim_time"] = 0.3;
self.pers["bots"]["skill"]["init_react_time"] = 600; self.pers["bots"]["skill"]["init_react_time"] = 600;
self.pers["bots"]["skill"]["reaction_time"] = 400; self.pers["bots"]["skill"]["reaction_time"] = 400;
self.pers["bots"]["skill"]["no_trace_ads_time"] = 1000;
self.pers["bots"]["skill"]["no_trace_look_time"] = 1500;
self.pers["bots"]["skill"]["remember_time"] = 3000; self.pers["bots"]["skill"]["remember_time"] = 3000;
self.pers["bots"]["skill"]["fov"] = 0.55; self.pers["bots"]["skill"]["fov"] = 0.55;
self.pers["bots"]["skill"]["dist"] = 3350; self.pers["bots"]["skill"]["dist"] = 3350;
@ -346,6 +354,8 @@ difficulty()
self.pers["bots"]["skill"]["aim_time"] = 0.25; self.pers["bots"]["skill"]["aim_time"] = 0.25;
self.pers["bots"]["skill"]["init_react_time"] = 500; self.pers["bots"]["skill"]["init_react_time"] = 500;
self.pers["bots"]["skill"]["reaction_time"] = 300; self.pers["bots"]["skill"]["reaction_time"] = 300;
self.pers["bots"]["skill"]["no_trace_ads_time"] = 1500;
self.pers["bots"]["skill"]["no_trace_look_time"] = 2000;
self.pers["bots"]["skill"]["remember_time"] = 4000; self.pers["bots"]["skill"]["remember_time"] = 4000;
self.pers["bots"]["skill"]["fov"] = 0.5; self.pers["bots"]["skill"]["fov"] = 0.5;
self.pers["bots"]["skill"]["dist"] = 5000; self.pers["bots"]["skill"]["dist"] = 5000;
@ -366,6 +376,8 @@ difficulty()
self.pers["bots"]["skill"]["aim_time"] = 0.2; self.pers["bots"]["skill"]["aim_time"] = 0.2;
self.pers["bots"]["skill"]["init_react_time"] = 250; self.pers["bots"]["skill"]["init_react_time"] = 250;
self.pers["bots"]["skill"]["reaction_time"] = 150; self.pers["bots"]["skill"]["reaction_time"] = 150;
self.pers["bots"]["skill"]["no_trace_ads_time"] = 2000;
self.pers["bots"]["skill"]["no_trace_look_time"] = 3000;
self.pers["bots"]["skill"]["remember_time"] = 5000; self.pers["bots"]["skill"]["remember_time"] = 5000;
self.pers["bots"]["skill"]["fov"] = 0.45; self.pers["bots"]["skill"]["fov"] = 0.45;
self.pers["bots"]["skill"]["dist"] = 7500; self.pers["bots"]["skill"]["dist"] = 7500;
@ -386,6 +398,8 @@ difficulty()
self.pers["bots"]["skill"]["aim_time"] = 0.1; self.pers["bots"]["skill"]["aim_time"] = 0.1;
self.pers["bots"]["skill"]["init_react_time"] = 100; self.pers["bots"]["skill"]["init_react_time"] = 100;
self.pers["bots"]["skill"]["reaction_time"] = 50; self.pers["bots"]["skill"]["reaction_time"] = 50;
self.pers["bots"]["skill"]["no_trace_ads_time"] = 2500;
self.pers["bots"]["skill"]["no_trace_look_time"] = 4000;
self.pers["bots"]["skill"]["remember_time"] = 7500; self.pers["bots"]["skill"]["remember_time"] = 7500;
self.pers["bots"]["skill"]["fov"] = 0.4; self.pers["bots"]["skill"]["fov"] = 0.4;
self.pers["bots"]["skill"]["dist"] = 10000; self.pers["bots"]["skill"]["dist"] = 10000;
@ -425,6 +439,8 @@ set_diff()
self.pers["bots"]["skill"]["aim_time"] = 0.05 * randomIntRange(1, 20); self.pers["bots"]["skill"]["aim_time"] = 0.05 * randomIntRange(1, 20);
self.pers["bots"]["skill"]["init_react_time"] = 50 * randomInt(100); self.pers["bots"]["skill"]["init_react_time"] = 50 * randomInt(100);
self.pers["bots"]["skill"]["reaction_time"] = 50 * randomInt(100); self.pers["bots"]["skill"]["reaction_time"] = 50 * randomInt(100);
self.pers["bots"]["skill"]["no_trace_ads_time"] = 50 * randomInt(100);
self.pers["bots"]["skill"]["no_trace_look_time"] = 50 * randomInt(100);
self.pers["bots"]["skill"]["remember_time"] = 50 * randomInt(100); self.pers["bots"]["skill"]["remember_time"] = 50 * randomInt(100);
self.pers["bots"]["skill"]["fov"] = randomFloatRange(-1, 1); self.pers["bots"]["skill"]["fov"] = randomFloatRange(-1, 1);
self.pers["bots"]["skill"]["dist"] = randomIntRange(500, 25000); self.pers["bots"]["skill"]["dist"] = randomIntRange(500, 25000);