mirror of
https://github.com/ineedbots/iw3_bot_warfare.git
synced 2025-04-21 01:55:43 +00:00
no_trace_look_time and no_trace_ads_time
This commit is contained in:
parent
63f99ac24a
commit
2a93f48e3f
@ -18,7 +18,9 @@ added()
|
||||
self.pers["bots"]["skill"]["aim_time"] = 0.05;
|
||||
self.pers["bots"]["skill"]["init_react_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"]["dist"] = 100000;
|
||||
self.pers["bots"]["skill"]["spawn_time"] = 0;
|
||||
@ -420,7 +422,7 @@ check_reload()
|
||||
|
||||
for(;;)
|
||||
{
|
||||
self waittill( "weapon_fired" );
|
||||
self waittill_notify_or_timeout( "weapon_fired", 5 );
|
||||
self thread reload_thread();
|
||||
}
|
||||
}
|
||||
@ -820,111 +822,116 @@ aim()
|
||||
|
||||
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;
|
||||
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;
|
||||
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)
|
||||
no_trace_look_time = self.pers["bots"]["skill"]["no_trace_look_time"];
|
||||
|
||||
if (no_trace_time <= no_trace_look_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(isplay)
|
||||
if(no_trace_time > no_trace_ads_time)
|
||||
{
|
||||
//better room to nade? cook time function with dist?
|
||||
if(!self.bot.isfraggingafter && !self.bot.issmokingafter)
|
||||
self ads(false);
|
||||
|
||||
if(isplay)
|
||||
{
|
||||
nade = self getValidGrenade();
|
||||
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))
|
||||
//better room to nade? cook time function with dist?
|
||||
if(!self.bot.isfraggingafter && !self.bot.issmokingafter)
|
||||
{
|
||||
if(nade == "frag_grenade_mp")
|
||||
self thread frag(2.5);
|
||||
else
|
||||
self thread smoke(0.5);
|
||||
|
||||
self notify("kill_goal");
|
||||
nade = self getValidGrenade();
|
||||
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(nade == "frag_grenade_mp")
|
||||
self thread frag(2.5);
|
||||
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
|
||||
{
|
||||
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
|
||||
{
|
||||
aimpos = target.origin;
|
||||
if (isDefined(offset))
|
||||
aimpos += offset;
|
||||
aimpos += (0, 0, nadeAimOffset);
|
||||
conedot = getConeDot(aimpos, eyePos, angles);
|
||||
self botLookAt(aimpos, aimspeed);
|
||||
}
|
||||
}
|
||||
else
|
||||
{
|
||||
aimpos = target.origin;
|
||||
if (isDefined(offset))
|
||||
aimpos += offset;
|
||||
aimpos += (0, 0, nadeAimOffset);
|
||||
conedot = getConeDot(aimpos, eyePos, angles);
|
||||
self botLookAt(aimpos, aimspeed);
|
||||
}
|
||||
|
||||
if(isplay && conedot > 0.9 && dist < level.bots_maxKnifeDistance && trace_time > reaction_time)
|
||||
{
|
||||
self ads(false);
|
||||
self knife();
|
||||
|
||||
if(isplay && conedot > 0.9 && dist < level.bots_maxKnifeDistance && trace_time > reaction_time)
|
||||
{
|
||||
self ads(false);
|
||||
self knife();
|
||||
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.95 || dist < level.bots_maxKnifeDistance) && trace_time > reaction_time)
|
||||
{
|
||||
self botFire();
|
||||
}
|
||||
|
||||
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);
|
||||
|
@ -266,6 +266,8 @@ difficulty()
|
||||
self.pers["bots"]["skill"]["aim_time"] = 0.6;
|
||||
self.pers["bots"]["skill"]["init_react_time"] = 1500;
|
||||
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"]["fov"] = 0.7;
|
||||
self.pers["bots"]["skill"]["dist"] = 1000;
|
||||
@ -286,6 +288,8 @@ difficulty()
|
||||
self.pers["bots"]["skill"]["aim_time"] = 0.55;
|
||||
self.pers["bots"]["skill"]["init_react_time"] = 1000;
|
||||
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"]["fov"] = 0.65;
|
||||
self.pers["bots"]["skill"]["dist"] = 1500;
|
||||
@ -306,6 +310,8 @@ difficulty()
|
||||
self.pers["bots"]["skill"]["aim_time"] = 0.4;
|
||||
self.pers["bots"]["skill"]["init_react_time"] = 750;
|
||||
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"]["fov"] = 0.6;
|
||||
self.pers["bots"]["skill"]["dist"] = 2250;
|
||||
@ -326,6 +332,8 @@ difficulty()
|
||||
self.pers["bots"]["skill"]["aim_time"] = 0.3;
|
||||
self.pers["bots"]["skill"]["init_react_time"] = 600;
|
||||
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"]["fov"] = 0.55;
|
||||
self.pers["bots"]["skill"]["dist"] = 3350;
|
||||
@ -346,6 +354,8 @@ difficulty()
|
||||
self.pers["bots"]["skill"]["aim_time"] = 0.25;
|
||||
self.pers["bots"]["skill"]["init_react_time"] = 500;
|
||||
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"]["fov"] = 0.5;
|
||||
self.pers["bots"]["skill"]["dist"] = 5000;
|
||||
@ -366,6 +376,8 @@ difficulty()
|
||||
self.pers["bots"]["skill"]["aim_time"] = 0.2;
|
||||
self.pers["bots"]["skill"]["init_react_time"] = 250;
|
||||
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"]["fov"] = 0.45;
|
||||
self.pers["bots"]["skill"]["dist"] = 7500;
|
||||
@ -386,6 +398,8 @@ difficulty()
|
||||
self.pers["bots"]["skill"]["aim_time"] = 0.1;
|
||||
self.pers["bots"]["skill"]["init_react_time"] = 100;
|
||||
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"]["fov"] = 0.4;
|
||||
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"]["init_react_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"]["fov"] = randomFloatRange(-1, 1);
|
||||
self.pers["bots"]["skill"]["dist"] = randomIntRange(500, 25000);
|
||||
|
Loading…
x
Reference in New Issue
Block a user