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
|
bots chooses a random perk
|
||||||
*/
|
*/
|
||||||
chooseRandomPerk(perkkind, primary)
|
chooseRandomPerk(perkkind, primary, primaryAtts)
|
||||||
{
|
{
|
||||||
perks = getPerks(perkkind);
|
perks = getPerks(perkkind);
|
||||||
rank = self maps\mp\gametypes\_rank::getRankForXp( self getPlayerData("experience") );
|
rank = self maps\mp\gametypes\_rank::getRankForXp( self getPlayerData("experience") );
|
||||||
@ -396,12 +396,8 @@ chooseRandomPerk(perkkind, primary)
|
|||||||
|
|
||||||
if (reasonable)
|
if (reasonable)
|
||||||
{
|
{
|
||||||
if (perk == "specialty_onemanarmy")
|
|
||||||
continue;
|
|
||||||
if (perk == "specialty_bling")
|
if (perk == "specialty_bling")
|
||||||
continue;
|
continue;
|
||||||
if (perk == "specialty_explosivedamage")
|
|
||||||
continue;
|
|
||||||
if (perk == "specialty_localjammer")
|
if (perk == "specialty_localjammer")
|
||||||
continue;
|
continue;
|
||||||
if (perk == "throwingknife_mp")
|
if (perk == "throwingknife_mp")
|
||||||
@ -415,12 +411,29 @@ chooseRandomPerk(perkkind, primary)
|
|||||||
if (perk == "specialty_copycat")
|
if (perk == "specialty_copycat")
|
||||||
continue;
|
continue;
|
||||||
|
|
||||||
|
if (perkkind == "perk1")
|
||||||
|
{
|
||||||
|
if (perk == "specialty_onemanarmy")
|
||||||
|
{
|
||||||
|
if (primaryAtts[0] != "gl"/* && primaryAtts[1] != "gl"*/)
|
||||||
|
continue;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
if (perkkind == "perk2")
|
if (perkkind == "perk2")
|
||||||
{
|
{
|
||||||
if (perk != "specialty_bulletdamage")
|
if (perk != "specialty_bulletdamage")
|
||||||
{
|
{
|
||||||
if (randomInt(100) < 35)
|
if (perk == "specialty_explosivedamage")
|
||||||
|
{
|
||||||
|
if (primaryAtts[0] != "gl"/* && primaryAtts[1] != "gl"*/)
|
||||||
continue;
|
continue;
|
||||||
|
}
|
||||||
|
else
|
||||||
|
{
|
||||||
|
if (randomInt(100) < 10)
|
||||||
|
continue;
|
||||||
|
|
||||||
if (primary == "cheytac")
|
if (primary == "cheytac")
|
||||||
continue;
|
continue;
|
||||||
if (primary == "rpd")
|
if (primary == "rpd")
|
||||||
@ -448,6 +461,7 @@ chooseRandomPerk(perkkind, primary)
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
}
|
||||||
|
|
||||||
if (perk == "specialty_null")
|
if (perk == "specialty_null")
|
||||||
continue;
|
continue;
|
||||||
@ -601,8 +615,13 @@ chooseRandomAttachmentComboForGun(gun)
|
|||||||
{
|
{
|
||||||
if (att1 == "shotgun" || att2 == "shotgun")
|
if (att1 == "shotgun" || att2 == "shotgun")
|
||||||
continue;
|
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;
|
continue;
|
||||||
|
}
|
||||||
|
|
||||||
if (att1 == "acog" || att2 == "acog")
|
if (att1 == "acog" || att2 == "acog")
|
||||||
continue;
|
continue;
|
||||||
if (att1 == "thermal" || att2 == "thermal")
|
if (att1 == "thermal" || att2 == "thermal")
|
||||||
@ -660,17 +679,24 @@ setClasses()
|
|||||||
for (i = 0; i < 5; i++)
|
for (i = 0; i < 5; i++)
|
||||||
{
|
{
|
||||||
equipment = chooseRandomPerk("equipment");
|
equipment = chooseRandomPerk("equipment");
|
||||||
perk1 = chooseRandomPerk("perk1");
|
|
||||||
perk3 = chooseRandomPerk("perk3");
|
perk3 = chooseRandomPerk("perk3");
|
||||||
deathstreak = chooseRandomPerk("perk4");
|
deathstreak = chooseRandomPerk("perk4");
|
||||||
tactical = chooseRandomTactical();
|
tactical = chooseRandomTactical();
|
||||||
primary = chooseRandomPrimary();
|
primary = chooseRandomPrimary();
|
||||||
perk2 = chooseRandomPerk("perk2", primary);
|
|
||||||
primaryAtts = chooseRandomAttachmentComboForGun(primary);
|
primaryAtts = chooseRandomAttachmentComboForGun(primary);
|
||||||
|
perk1 = chooseRandomPerk("perk1", primary, primaryAtts);
|
||||||
|
|
||||||
|
if (perk1 != "specialty_bling")
|
||||||
|
primaryAtts[1] = "none";
|
||||||
|
|
||||||
|
perk2 = chooseRandomPerk("perk2", primary, primaryAtts);
|
||||||
primaryCamo = chooseRandomCamo();
|
primaryCamo = chooseRandomCamo();
|
||||||
secondary = chooseRandomSecondary(perk1);
|
secondary = chooseRandomSecondary(perk1);
|
||||||
secondaryAtts = chooseRandomAttachmentComboForGun(secondary);
|
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, "weapon", primary);
|
||||||
self setPlayerData("customClasses", i, "weaponSetups", 0, "attachment", 0, primaryAtts[0]);
|
self setPlayerData("customClasses", i, "weaponSetups", 0, "attachment", 0, primaryAtts[0]);
|
||||||
self setPlayerData("customClasses", i, "weaponSetups", 0, "attachment", 1, primaryAtts[1]);
|
self setPlayerData("customClasses", i, "weaponSetups", 0, "attachment", 1, primaryAtts[1]);
|
||||||
@ -1063,7 +1089,7 @@ difficulty()
|
|||||||
|
|
||||||
for(;;)
|
for(;;)
|
||||||
{
|
{
|
||||||
wait 1;
|
wait 5;
|
||||||
|
|
||||||
rankVar = GetDvarInt("bots_skill");
|
rankVar = GetDvarInt("bots_skill");
|
||||||
|
|
||||||
@ -1090,6 +1116,8 @@ difficulty()
|
|||||||
self.pers["bots"]["skill"]["aim_offset_amount"] = 4;
|
self.pers["bots"]["skill"]["aim_offset_amount"] = 4;
|
||||||
self.pers["bots"]["skill"]["bone_update_interval"] = 2;
|
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"]["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"]["strafe"] = 0;
|
||||||
self.pers["bots"]["behavior"]["nade"] = 10;
|
self.pers["bots"]["behavior"]["nade"] = 10;
|
||||||
@ -1119,6 +1147,8 @@ difficulty()
|
|||||||
self.pers["bots"]["skill"]["aim_offset_amount"] = 3;
|
self.pers["bots"]["skill"]["aim_offset_amount"] = 3;
|
||||||
self.pers["bots"]["skill"]["bone_update_interval"] = 1.5;
|
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"]["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"]["strafe"] = 10;
|
||||||
self.pers["bots"]["behavior"]["nade"] = 15;
|
self.pers["bots"]["behavior"]["nade"] = 15;
|
||||||
@ -1148,6 +1178,8 @@ difficulty()
|
|||||||
self.pers["bots"]["skill"]["aim_offset_amount"] = 2.5;
|
self.pers["bots"]["skill"]["aim_offset_amount"] = 2.5;
|
||||||
self.pers["bots"]["skill"]["bone_update_interval"] = 1;
|
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"]["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"]["strafe"] = 20;
|
||||||
self.pers["bots"]["behavior"]["nade"] = 20;
|
self.pers["bots"]["behavior"]["nade"] = 20;
|
||||||
@ -1177,6 +1209,8 @@ difficulty()
|
|||||||
self.pers["bots"]["skill"]["aim_offset_amount"] = 2;
|
self.pers["bots"]["skill"]["aim_offset_amount"] = 2;
|
||||||
self.pers["bots"]["skill"]["bone_update_interval"] = 0.75;
|
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"]["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"]["strafe"] = 30;
|
||||||
self.pers["bots"]["behavior"]["nade"] = 25;
|
self.pers["bots"]["behavior"]["nade"] = 25;
|
||||||
@ -1206,6 +1240,8 @@ difficulty()
|
|||||||
self.pers["bots"]["skill"]["aim_offset_amount"] = 1.5;
|
self.pers["bots"]["skill"]["aim_offset_amount"] = 1.5;
|
||||||
self.pers["bots"]["skill"]["bone_update_interval"] = 0.5;
|
self.pers["bots"]["skill"]["bone_update_interval"] = 0.5;
|
||||||
self.pers["bots"]["skill"]["bones"] = "j_spineupper,j_head";
|
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"]["strafe"] = 40;
|
||||||
self.pers["bots"]["behavior"]["nade"] = 35;
|
self.pers["bots"]["behavior"]["nade"] = 35;
|
||||||
@ -1235,6 +1271,8 @@ difficulty()
|
|||||||
self.pers["bots"]["skill"]["aim_offset_amount"] = 1;
|
self.pers["bots"]["skill"]["aim_offset_amount"] = 1;
|
||||||
self.pers["bots"]["skill"]["bone_update_interval"] = 0.25;
|
self.pers["bots"]["skill"]["bone_update_interval"] = 0.25;
|
||||||
self.pers["bots"]["skill"]["bones"] = "j_spineupper,j_head,j_head";
|
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"]["strafe"] = 50;
|
||||||
self.pers["bots"]["behavior"]["nade"] = 45;
|
self.pers["bots"]["behavior"]["nade"] = 45;
|
||||||
@ -1264,6 +1302,8 @@ difficulty()
|
|||||||
self.pers["bots"]["skill"]["aim_offset_amount"] = 0;
|
self.pers["bots"]["skill"]["aim_offset_amount"] = 0;
|
||||||
self.pers["bots"]["skill"]["bone_update_interval"] = 0.05;
|
self.pers["bots"]["skill"]["bone_update_interval"] = 0.05;
|
||||||
self.pers["bots"]["skill"]["bones"] = "j_head";
|
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"]["strafe"] = 65;
|
||||||
self.pers["bots"]["behavior"]["nade"] = 65;
|
self.pers["bots"]["behavior"]["nade"] = 65;
|
||||||
@ -1463,6 +1503,7 @@ start_bot_threads()
|
|||||||
self thread bot_use_grenade_think();
|
self thread bot_use_grenade_think();
|
||||||
self thread bot_use_equipment_think();
|
self thread bot_use_equipment_think();
|
||||||
self thread bot_watch_riot_weapons();
|
self thread bot_watch_riot_weapons();
|
||||||
|
self thread bot_watch_think_mw2(); // bots play mw2
|
||||||
}
|
}
|
||||||
|
|
||||||
// obj
|
// 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
|
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);
|
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())
|
if (!self HasThreat())
|
||||||
continue;
|
continue;
|
||||||
|
|
||||||
@ -2681,7 +2785,6 @@ bot_watch_riot_weapons()
|
|||||||
|
|
||||||
threat = self GetThreat();
|
threat = self GetThreat();
|
||||||
dist = DistanceSquared(threat.origin, self.origin);
|
dist = DistanceSquared(threat.origin, self.origin);
|
||||||
rand = randomInt(100);
|
|
||||||
curWeap = self GetCurrentWeapon();
|
curWeap = self GetCurrentWeapon();
|
||||||
|
|
||||||
if (randomInt(2))
|
if (randomInt(2))
|
||||||
@ -2694,14 +2797,14 @@ bot_watch_riot_weapons()
|
|||||||
if (dist <= level.bots_minGrenadeDistance || dist >= level.bots_maxGrenadeDistance)
|
if (dist <= level.bots_minGrenadeDistance || dist >= level.bots_maxGrenadeDistance)
|
||||||
continue;
|
continue;
|
||||||
|
|
||||||
if (rand > self.pers["bots"]["behavior"]["nade"])
|
if (randomInt(100) > self.pers["bots"]["behavior"]["nade"])
|
||||||
continue;
|
continue;
|
||||||
|
|
||||||
self botThrowGrenade(nade);
|
self botThrowGrenade(nade);
|
||||||
}
|
}
|
||||||
else
|
else
|
||||||
{
|
{
|
||||||
if (rand > self.pers["bots"]["behavior"]["switch"])
|
if (randomInt(100) > self.pers["bots"]["behavior"]["switch"] * 10)
|
||||||
continue;
|
continue;
|
||||||
|
|
||||||
weaponslist = self getweaponslistall();
|
weaponslist = self getweaponslistall();
|
||||||
@ -4085,8 +4188,12 @@ bot_killstreak_think()
|
|||||||
|
|
||||||
if (isDefined(location))
|
if (isDefined(location))
|
||||||
{
|
{
|
||||||
|
self BotFreezeControls(true);
|
||||||
|
|
||||||
self notify( "confirm_location", location, directionYaw );
|
self notify( "confirm_location", location, directionYaw );
|
||||||
wait 1;
|
wait 1;
|
||||||
|
|
||||||
|
self BotFreezeControls(false);
|
||||||
}
|
}
|
||||||
|
|
||||||
self thread changeToWeapon(curWeap);
|
self thread changeToWeapon(curWeap);
|
||||||
|
Loading…
x
Reference in New Issue
Block a user