mirror of
https://github.com/ineedbots/iw3_bot_warfare.git
synced 2025-04-22 18:25:44 +00:00
added ads aimspeed delay
This commit is contained in:
parent
8e1c57c2a3
commit
b1357c8855
@ -32,6 +32,8 @@ added()
|
||||
self.pers["bots"]["skill"]["aim_offset_amount"] = 1; // how far a bot's incorrect aim is
|
||||
self.pers["bots"]["skill"]["bone_update_interval"] = 0.05; // how often a bot changes their bone target
|
||||
self.pers["bots"]["skill"]["bones"] = "j_head"; // a list of comma seperated bones the bot will aim at
|
||||
self.pers["bots"]["skill"]["ads_fov_multi"] = 0.5; // a factor of how much ads to reduce when adsing
|
||||
self.pers["bots"]["skill"]["ads_aimspeed_multi"] = 0.5; // a factor of how much more aimspeed delay to add
|
||||
|
||||
self.pers["bots"]["behavior"] = [];
|
||||
self.pers["bots"]["behavior"]["strafe"] = 50; // percentage of how often the bot strafes a target
|
||||
@ -664,9 +666,14 @@ target()
|
||||
rememberTime = self.pers["bots"]["skill"]["remember_time"];
|
||||
initReactTime = self.pers["bots"]["skill"]["init_react_time"];
|
||||
hasTarget = isDefined(self.bot.target);
|
||||
adsAmount = self PlayerADS();
|
||||
adsFovFact = self.pers["bots"]["skill"]["ads_fov_multi"];
|
||||
|
||||
// reduce fov if ads'ing
|
||||
myFov *= 1 - 0.5 * self PlayerADS();
|
||||
if (adsAmount > 0)
|
||||
{
|
||||
myFov *= 1 - adsFovFact * adsAmount;
|
||||
}
|
||||
|
||||
if(hasTarget && !isDefined(self.bot.target.entity))
|
||||
{
|
||||
@ -983,6 +990,14 @@ aim()
|
||||
eyePos = self getEyePos();
|
||||
curweap = self getCurrentWeapon();
|
||||
angles = self GetPlayerAngles();
|
||||
adsAmount = self PlayerADS();
|
||||
adsAimSpeedFact = self.pers["bots"]["skill"]["ads_aimspeed_multi"];
|
||||
|
||||
// reduce aimspeed if ads'ing
|
||||
if (adsAmount > 0)
|
||||
{
|
||||
aimspeed *= 1 + adsAimSpeedFact * adsAmount;
|
||||
}
|
||||
|
||||
if(isDefined(self.bot.target) && isDefined(self.bot.target.entity))
|
||||
{
|
||||
@ -1099,13 +1114,13 @@ aim()
|
||||
|
||||
//c4 logic here, but doesnt work anyway
|
||||
|
||||
canADS = self canAds(dist, curweap);
|
||||
canADS = (self canAds(dist, curweap) && conedot > 0.65);
|
||||
if (canADS)
|
||||
self thread pressADS();
|
||||
|
||||
if (trace_time > reaction_time)
|
||||
{
|
||||
if((!canADS || self playerads() == 1.0 || self InLastStand() || self GetStance() == "prone") && (conedot > 0.95 || dist < level.bots_maxKnifeDistance) && getDvarInt("bots_play_fire"))
|
||||
if((!canADS || adsAmount >= 1.0 || self InLastStand() || self GetStance() == "prone") && (conedot > 0.95 || dist < level.bots_maxKnifeDistance) && getDvarInt("bots_play_fire"))
|
||||
self botFire();
|
||||
|
||||
if (isplay)
|
||||
@ -1136,11 +1151,11 @@ aim()
|
||||
if(!self canFire(curweap) || !self isInRange(dist, curweap))
|
||||
continue;
|
||||
|
||||
canADS = self canAds(dist, curweap);
|
||||
canADS = (self canAds(dist, curweap) && conedot > 0.65);
|
||||
if (canADS)
|
||||
self thread pressADS();
|
||||
|
||||
if((!canADS || self playerads() == 1.0 || self InLastStand() || self GetStance() == "prone") && (conedot > 0.95 || dist < level.bots_maxKnifeDistance) && getDvarInt("bots_play_fire"))
|
||||
if((!canADS || adsAmount >= 1.0 || self InLastStand() || self GetStance() == "prone") && (conedot > 0.95 || dist < level.bots_maxKnifeDistance) && getDvarInt("bots_play_fire"))
|
||||
self botFire();
|
||||
|
||||
continue;
|
||||
|
@ -260,7 +260,7 @@ difficulty()
|
||||
|
||||
for(;;)
|
||||
{
|
||||
wait 1;
|
||||
wait 5;
|
||||
|
||||
rankVar = GetDvarInt("bots_skill");
|
||||
|
||||
@ -287,6 +287,8 @@ difficulty()
|
||||
self.pers["bots"]["skill"]["aim_offset_amount"] = 4;
|
||||
self.pers["bots"]["skill"]["bone_update_interval"] = 2;
|
||||
self.pers["bots"]["skill"]["bones"] = "j_spineupper,j_ankle_le,j_ankle_ri";
|
||||
self.pers["bots"]["skill"]["ads_fov_multi"] = 0.5;
|
||||
self.pers["bots"]["skill"]["ads_aimspeed_multi"] = 0.5;
|
||||
|
||||
self.pers["bots"]["behavior"]["strafe"] = 0;
|
||||
self.pers["bots"]["behavior"]["nade"] = 10;
|
||||
@ -316,6 +318,8 @@ difficulty()
|
||||
self.pers["bots"]["skill"]["aim_offset_amount"] = 3;
|
||||
self.pers["bots"]["skill"]["bone_update_interval"] = 1.5;
|
||||
self.pers["bots"]["skill"]["bones"] = "j_spineupper,j_ankle_le,j_ankle_ri,j_head";
|
||||
self.pers["bots"]["skill"]["ads_fov_multi"] = 0.5;
|
||||
self.pers["bots"]["skill"]["ads_aimspeed_multi"] = 0.5;
|
||||
|
||||
self.pers["bots"]["behavior"]["strafe"] = 10;
|
||||
self.pers["bots"]["behavior"]["nade"] = 15;
|
||||
@ -345,6 +349,8 @@ difficulty()
|
||||
self.pers["bots"]["skill"]["aim_offset_amount"] = 2.5;
|
||||
self.pers["bots"]["skill"]["bone_update_interval"] = 1;
|
||||
self.pers["bots"]["skill"]["bones"] = "j_spineupper,j_spineupper,j_ankle_le,j_ankle_ri,j_head";
|
||||
self.pers["bots"]["skill"]["ads_fov_multi"] = 0.5;
|
||||
self.pers["bots"]["skill"]["ads_aimspeed_multi"] = 0.5;
|
||||
|
||||
self.pers["bots"]["behavior"]["strafe"] = 20;
|
||||
self.pers["bots"]["behavior"]["nade"] = 20;
|
||||
@ -374,6 +380,8 @@ difficulty()
|
||||
self.pers["bots"]["skill"]["aim_offset_amount"] = 2;
|
||||
self.pers["bots"]["skill"]["bone_update_interval"] = 0.75;
|
||||
self.pers["bots"]["skill"]["bones"] = "j_spineupper,j_spineupper,j_ankle_le,j_ankle_ri,j_head,j_head";
|
||||
self.pers["bots"]["skill"]["ads_fov_multi"] = 0.5;
|
||||
self.pers["bots"]["skill"]["ads_aimspeed_multi"] = 0.5;
|
||||
|
||||
self.pers["bots"]["behavior"]["strafe"] = 30;
|
||||
self.pers["bots"]["behavior"]["nade"] = 25;
|
||||
@ -403,6 +411,8 @@ difficulty()
|
||||
self.pers["bots"]["skill"]["aim_offset_amount"] = 1.5;
|
||||
self.pers["bots"]["skill"]["bone_update_interval"] = 0.5;
|
||||
self.pers["bots"]["skill"]["bones"] = "j_spineupper,j_head";
|
||||
self.pers["bots"]["skill"]["ads_fov_multi"] = 0.5;
|
||||
self.pers["bots"]["skill"]["ads_aimspeed_multi"] = 0.5;
|
||||
|
||||
self.pers["bots"]["behavior"]["strafe"] = 40;
|
||||
self.pers["bots"]["behavior"]["nade"] = 35;
|
||||
@ -432,6 +442,8 @@ difficulty()
|
||||
self.pers["bots"]["skill"]["aim_offset_amount"] = 1;
|
||||
self.pers["bots"]["skill"]["bone_update_interval"] = 0.25;
|
||||
self.pers["bots"]["skill"]["bones"] = "j_spineupper,j_head,j_head";
|
||||
self.pers["bots"]["skill"]["ads_fov_multi"] = 0.5;
|
||||
self.pers["bots"]["skill"]["ads_aimspeed_multi"] = 0.5;
|
||||
|
||||
self.pers["bots"]["behavior"]["strafe"] = 50;
|
||||
self.pers["bots"]["behavior"]["nade"] = 45;
|
||||
@ -461,6 +473,8 @@ difficulty()
|
||||
self.pers["bots"]["skill"]["aim_offset_amount"] = 0;
|
||||
self.pers["bots"]["skill"]["bone_update_interval"] = 0.05;
|
||||
self.pers["bots"]["skill"]["bones"] = "j_head";
|
||||
self.pers["bots"]["skill"]["ads_fov_multi"] = 0.5;
|
||||
self.pers["bots"]["skill"]["ads_aimspeed_multi"] = 0.5;
|
||||
|
||||
self.pers["bots"]["behavior"]["strafe"] = 65;
|
||||
self.pers["bots"]["behavior"]["nade"] = 65;
|
||||
@ -944,6 +958,7 @@ start_bot_threads()
|
||||
self thread bot_use_tube_think();
|
||||
self thread bot_use_grenade_think();
|
||||
self thread bot_use_equipment_think();
|
||||
self thread bot_watch_think_mw2();
|
||||
}
|
||||
|
||||
// obj
|
||||
@ -2185,6 +2200,52 @@ bot_weapon_think()
|
||||
}
|
||||
}
|
||||
|
||||
/*
|
||||
Bots play mw2
|
||||
*/
|
||||
bot_watch_think_mw2()
|
||||
{
|
||||
self endon("disconnect");
|
||||
self endon("death");
|
||||
level endon("game_ended");
|
||||
|
||||
for (;;)
|
||||
{
|
||||
wait randomIntRange(1, 4);
|
||||
|
||||
if(self BotIsFrozen())
|
||||
continue;
|
||||
|
||||
if(self isDefusing() || self isPlanting())
|
||||
continue;
|
||||
|
||||
if (self InLastStand())
|
||||
continue;
|
||||
|
||||
if (self HasThreat())
|
||||
continue;
|
||||
|
||||
tube = self getValidTube();
|
||||
if (!isDefined(tube))
|
||||
{
|
||||
if (self GetAmmoCount("rpg_mp"))
|
||||
tube = "rpg_mp";
|
||||
else
|
||||
continue;
|
||||
}
|
||||
|
||||
if (self GetCurrentWeapon() == tube)
|
||||
continue;
|
||||
|
||||
chance = self.pers["bots"]["behavior"]["nade"];
|
||||
|
||||
if (randomInt(100) > chance)
|
||||
continue;
|
||||
|
||||
self ChangeToWeapon(tube);
|
||||
}
|
||||
}
|
||||
|
||||
/*
|
||||
Bot logic for killstreaks.
|
||||
*/
|
||||
@ -2290,8 +2351,12 @@ bot_killstreak_think()
|
||||
|
||||
if (isAirstrikePos && !isDefined( level.airstrikeInProgress ))
|
||||
{
|
||||
self BotFreezeControls(true);
|
||||
|
||||
self notify( "confirm_location", targetPos );
|
||||
wait 1;
|
||||
|
||||
self BotFreezeControls(false);
|
||||
}
|
||||
|
||||
self thread changeToWeapon(curWeap);
|
||||
|
Loading…
x
Reference in New Issue
Block a user