mirror of
https://github.com/ineedbots/iw4_bot_warfare.git
synced 2025-04-22 05:55:42 +00:00
fix bot laptop aim
add bot mw2
This commit is contained in:
parent
e7fef2e080
commit
c417ddba39
@ -368,7 +368,7 @@ getKillstreaks()
|
||||
/*
|
||||
bots chooses a random perk
|
||||
*/
|
||||
chooseRandomPerk(perkkind, primary)
|
||||
chooseRandomPerk(perkkind, primary, primaryAtts)
|
||||
{
|
||||
perks = getPerks(perkkind);
|
||||
rank = self maps\mp\gametypes\_rank::getRankForXp( self getPlayerData("experience") );
|
||||
@ -396,12 +396,8 @@ chooseRandomPerk(perkkind, primary)
|
||||
|
||||
if (reasonable)
|
||||
{
|
||||
if (perk == "specialty_onemanarmy")
|
||||
continue;
|
||||
if (perk == "specialty_bling")
|
||||
continue;
|
||||
if (perk == "specialty_explosivedamage")
|
||||
continue;
|
||||
if (perk == "specialty_localjammer")
|
||||
continue;
|
||||
if (perk == "throwingknife_mp")
|
||||
@ -415,12 +411,29 @@ chooseRandomPerk(perkkind, primary)
|
||||
if (perk == "specialty_copycat")
|
||||
continue;
|
||||
|
||||
if (perkkind == "perk1")
|
||||
{
|
||||
if (perk == "specialty_onemanarmy")
|
||||
{
|
||||
if (primaryAtts[0] != "gl"/* && primaryAtts[1] != "gl"*/)
|
||||
continue;
|
||||
}
|
||||
}
|
||||
|
||||
if (perkkind == "perk2")
|
||||
{
|
||||
if (perk != "specialty_bulletdamage")
|
||||
{
|
||||
if (randomInt(100) < 35)
|
||||
if (perk == "specialty_explosivedamage")
|
||||
{
|
||||
if (primaryAtts[0] != "gl"/* && primaryAtts[1] != "gl"*/)
|
||||
continue;
|
||||
}
|
||||
else
|
||||
{
|
||||
if (randomInt(100) < 10)
|
||||
continue;
|
||||
|
||||
if (primary == "cheytac")
|
||||
continue;
|
||||
if (primary == "rpd")
|
||||
@ -448,6 +461,7 @@ chooseRandomPerk(perkkind, primary)
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
if (perk == "specialty_null")
|
||||
continue;
|
||||
@ -601,8 +615,13 @@ chooseRandomAttachmentComboForGun(gun)
|
||||
{
|
||||
if (att1 == "shotgun" || att2 == "shotgun")
|
||||
continue;
|
||||
if ((att1 == "akimbo" || att2 == "akimbo") && gun != "ranger" && gun != "model1887" && gun != "glock")
|
||||
|
||||
if (att1 == "akimbo" || att2 == "akimbo")
|
||||
{
|
||||
if (gun != "ranger" && gun != "model1887" && gun != "glock")
|
||||
continue;
|
||||
}
|
||||
|
||||
if (att1 == "acog" || att2 == "acog")
|
||||
continue;
|
||||
if (att1 == "thermal" || att2 == "thermal")
|
||||
@ -660,17 +679,24 @@ setClasses()
|
||||
for (i = 0; i < 5; i++)
|
||||
{
|
||||
equipment = chooseRandomPerk("equipment");
|
||||
perk1 = chooseRandomPerk("perk1");
|
||||
perk3 = chooseRandomPerk("perk3");
|
||||
deathstreak = chooseRandomPerk("perk4");
|
||||
tactical = chooseRandomTactical();
|
||||
primary = chooseRandomPrimary();
|
||||
perk2 = chooseRandomPerk("perk2", primary);
|
||||
primaryAtts = chooseRandomAttachmentComboForGun(primary);
|
||||
perk1 = chooseRandomPerk("perk1", primary, primaryAtts);
|
||||
|
||||
if (perk1 != "specialty_bling")
|
||||
primaryAtts[1] = "none";
|
||||
|
||||
perk2 = chooseRandomPerk("perk2", primary, primaryAtts);
|
||||
primaryCamo = chooseRandomCamo();
|
||||
secondary = chooseRandomSecondary(perk1);
|
||||
secondaryAtts = chooseRandomAttachmentComboForGun(secondary);
|
||||
|
||||
if (perk1 != "specialty_bling" || !isDefined(self.pers["bots"]["unlocks"]["upgraded_specialty_bling"]))
|
||||
secondaryAtts[1] = "none";
|
||||
|
||||
self setPlayerData("customClasses", i, "weaponSetups", 0, "weapon", primary);
|
||||
self setPlayerData("customClasses", i, "weaponSetups", 0, "attachment", 0, primaryAtts[0]);
|
||||
self setPlayerData("customClasses", i, "weaponSetups", 0, "attachment", 1, primaryAtts[1]);
|
||||
@ -1063,7 +1089,7 @@ difficulty()
|
||||
|
||||
for(;;)
|
||||
{
|
||||
wait 1;
|
||||
wait 5;
|
||||
|
||||
rankVar = GetDvarInt("bots_skill");
|
||||
|
||||
@ -1090,6 +1116,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;
|
||||
@ -1119,6 +1147,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;
|
||||
@ -1148,6 +1178,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;
|
||||
@ -1177,6 +1209,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;
|
||||
@ -1206,6 +1240,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;
|
||||
@ -1235,6 +1271,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;
|
||||
@ -1264,6 +1302,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;
|
||||
@ -1463,6 +1503,7 @@ start_bot_threads()
|
||||
self thread bot_use_grenade_think();
|
||||
self thread bot_use_equipment_think();
|
||||
self thread bot_watch_riot_weapons();
|
||||
self thread bot_watch_think_mw2(); // bots play mw2
|
||||
}
|
||||
|
||||
// obj
|
||||
@ -2660,6 +2701,57 @@ bot_use_grenade_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 IsUsingRemote())
|
||||
continue;
|
||||
|
||||
if (self InLastStand() && !self InFinalStand())
|
||||
continue;
|
||||
|
||||
if (self HasThreat())
|
||||
continue;
|
||||
|
||||
tube = self getValidTube();
|
||||
if (!isDefined(tube))
|
||||
{
|
||||
if (self GetAmmoCount("at4_mp"))
|
||||
tube = "at4_mp";
|
||||
else 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);
|
||||
}
|
||||
}
|
||||
|
||||
/*
|
||||
Bots will use gremades/wweapons while having a target while using a shield
|
||||
*/
|
||||
@ -2673,6 +2765,18 @@ bot_watch_riot_weapons()
|
||||
{
|
||||
wait randomIntRange(2, 4);
|
||||
|
||||
if(self BotIsFrozen())
|
||||
continue;
|
||||
|
||||
if(self isDefusing() || self isPlanting())
|
||||
continue;
|
||||
|
||||
if (self IsUsingRemote())
|
||||
continue;
|
||||
|
||||
if (self InLastStand() && !self InFinalStand())
|
||||
continue;
|
||||
|
||||
if (!self HasThreat())
|
||||
continue;
|
||||
|
||||
@ -2681,7 +2785,6 @@ bot_watch_riot_weapons()
|
||||
|
||||
threat = self GetThreat();
|
||||
dist = DistanceSquared(threat.origin, self.origin);
|
||||
rand = randomInt(100);
|
||||
curWeap = self GetCurrentWeapon();
|
||||
|
||||
if (randomInt(2))
|
||||
@ -2694,14 +2797,14 @@ bot_watch_riot_weapons()
|
||||
if (dist <= level.bots_minGrenadeDistance || dist >= level.bots_maxGrenadeDistance)
|
||||
continue;
|
||||
|
||||
if (rand > self.pers["bots"]["behavior"]["nade"])
|
||||
if (randomInt(100) > self.pers["bots"]["behavior"]["nade"])
|
||||
continue;
|
||||
|
||||
self botThrowGrenade(nade);
|
||||
}
|
||||
else
|
||||
{
|
||||
if (rand > self.pers["bots"]["behavior"]["switch"])
|
||||
if (randomInt(100) > self.pers["bots"]["behavior"]["switch"] * 10)
|
||||
continue;
|
||||
|
||||
weaponslist = self getweaponslistall();
|
||||
@ -4085,8 +4188,12 @@ bot_killstreak_think()
|
||||
|
||||
if (isDefined(location))
|
||||
{
|
||||
self BotFreezeControls(true);
|
||||
|
||||
self notify( "confirm_location", location, directionYaw );
|
||||
wait 1;
|
||||
|
||||
self BotFreezeControls(false);
|
||||
}
|
||||
|
||||
self thread changeToWeapon(curWeap);
|
||||
|
Loading…
x
Reference in New Issue
Block a user