mirror of
https://github.com/ineedbots/t4_bot_warfare.git
synced 2025-04-23 00:15:44 +00:00
Added ads aimspeed delay
This commit is contained in:
parent
795ed863f6
commit
ff413d513b
@ -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
|
||||
@ -694,6 +696,8 @@ 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"];
|
||||
|
||||
if(hasTarget && !isDefined(self.bot.target.entity))
|
||||
{
|
||||
@ -702,7 +706,10 @@ target()
|
||||
}
|
||||
|
||||
// reduce fov if ads'ing
|
||||
myFov *= 1 - 0.5 * self PlayerADS();
|
||||
if (adsAmount > 0)
|
||||
{
|
||||
myFov *= 1 - adsFovFact * adsAmount;
|
||||
}
|
||||
|
||||
playercount = level.players.size;
|
||||
for(i = -1; i < playercount; i++)
|
||||
@ -1013,6 +1020,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))
|
||||
{
|
||||
@ -1133,13 +1148,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)
|
||||
@ -1170,11 +1185,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;
|
||||
|
@ -275,7 +275,7 @@ difficulty()
|
||||
|
||||
for(;;)
|
||||
{
|
||||
wait 1;
|
||||
wait 5;
|
||||
|
||||
rankVar = GetDvarInt("bots_skill");
|
||||
|
||||
@ -302,6 +302,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;
|
||||
@ -331,6 +333,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;
|
||||
@ -360,6 +364,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;
|
||||
@ -389,6 +395,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;
|
||||
@ -418,6 +426,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;
|
||||
@ -447,6 +457,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;
|
||||
@ -476,6 +488,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;
|
||||
@ -997,6 +1011,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
|
||||
@ -2452,6 +2467,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("bazooka_mp"))
|
||||
tube = "bazooka_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.
|
||||
*/
|
||||
@ -2549,8 +2610,12 @@ bot_killstreak_think()
|
||||
|
||||
if (isAirstrikePos && !isDefined( level.artilleryInProgress ))
|
||||
{
|
||||
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