Move funcs around

This commit is contained in:
INeedBots 2020-11-25 00:50:42 -06:00
parent 461bd1cc09
commit 16d4f4795d

View File

@ -1268,31 +1268,6 @@ set_diff()
}
}
/*
When the bot spawns.
*/
onSpawned()
{
self endon("disconnect");
for(;;)
{
self waittill("spawned_player");
if(randomInt(100) <= self.pers["bots"]["behavior"]["class"])
self.bot_change_class = undefined;
self.bot_lock_goal = false;
self.bot_oma_class = undefined;
self.help_time = undefined;
self.bot_was_follow_script_update = undefined;
self.bot_stuck_on_carepackage = undefined;
if (getDvarInt("bots_play_obj"))
self thread bot_dom_cap_think();
}
}
/*
Allows the bot to spawn when force respawn is disabled
Watches when the bot dies
@ -1329,6 +1304,123 @@ onGiveLoadout()
}
}
/*
When the bot spawns.
*/
onSpawned()
{
self endon("disconnect");
for(;;)
{
self waittill("spawned_player");
if(randomInt(100) <= self.pers["bots"]["behavior"]["class"])
self.bot_change_class = undefined;
self.bot_lock_goal = false;
self.bot_oma_class = undefined;
self.help_time = undefined;
self.bot_was_follow_script_update = undefined;
self.bot_stuck_on_carepackage = undefined;
if (getDvarInt("bots_play_obj"))
self thread bot_dom_cap_think();
}
}
/*
When the bot spawned, after the difficulty wait. Start the logic for the bot.
*/
onBotSpawned()
{
self endon("disconnect");
level endon("game_ended");
for(;;)
{
self waittill("bot_spawned");
self thread start_bot_threads();
}
}
/*
Starts all the bot thinking
*/
start_bot_threads()
{
self endon("disconnect");
level endon("game_ended");
self endon("death");
gameFlagWait("prematch_done");
// inventory usage
if (getDvarInt("bots_play_killstreak"))
self thread bot_killstreak_think();
self thread bot_weapon_think();
self thread bot_perk_think();
// script targeting
if (getDvarInt("bots_play_target_other"))
{
self thread bot_target_vehicle();
self thread bot_equipment_kill_think();
self thread bot_turret_think();
}
// airdrop
if (getDvarInt("bots_play_take_carepackages"))
{
self thread bot_watch_stuck_on_crate();
self thread bot_crate_think();
}
// awareness
self thread bot_revenge_think();
self thread bot_uav_think();
self thread bot_listen_to_steps();
self thread follow_target();
// camp and follow
if (getDvarInt("bots_play_camp"))
{
self thread bot_think_follow();
self thread bot_think_camp();
}
// nades
if (getDvarInt("bots_play_nade"))
{
self thread bot_jav_loc_think();
self thread bot_use_tube_think();
self thread bot_use_grenade_think();
self thread bot_use_equipment_think();
self thread bot_watch_riot_weapons();
}
// obj
if (getDvarInt("bots_play_obj"))
{
self thread bot_dom_def_think();
self thread bot_dom_spawn_kill_think();
self thread bot_hq();
self thread bot_cap();
self thread bot_sab();
self thread bot_sd_defenders();
self thread bot_sd_attackers();
self thread bot_dem_attackers();
self thread bot_dem_defenders();
}
}
/*
Increments the number of bots approching the obj, decrements when needed
Used for preventing too many bots going to one obj, or unreachable objs
@ -1665,95 +1757,113 @@ bot_use_bomb(bomb)
}
/*
When the bot spawned, after the difficulty wait. Start the logic for the bot.
Fires the bots weapon until told to stop
*/
onBotSpawned()
fire_current_weapon()
{
self endon("death");
self endon("disconnect");
level endon("game_ended");
for(;;)
self endon("weapon_change");
self endon("stop_firing_weapon");
for (;;)
{
self waittill("bot_spawned");
self thread start_bot_threads();
self thread BotPressAttack(0.05);
wait 0.1;
}
}
/*
Starts all the bot thinking
Changes to the weap
*/
start_bot_threads()
changeToWeapon(weap)
{
self endon("disconnect");
level endon("game_ended");
self endon("death");
level endon("game_ended");
if (!self HasWeapon(weap))
return false;
if (self GetCurrentWeapon() == weap)
return true;
self BotChangeToWeapon(weap);
self waittill_any_timeout(5, "weapon_change");
return (self GetCurrentWeapon() == weap);
}
/*
Bots throw the grenade
*/
botThrowGrenade(nade, time)
{
self endon("disconnect");
self endon("death");
level endon("game_ended");
if (!self GetAmmoCount(nade))
return false;
if (isSecondaryGrenade(nade))
self thread BotPressSmoke(time);
else
self thread BotPressFrag(time);
ret = self waittill_any_timeout(5, "grenade_fire");
return (ret == "grenade_fire");
}
/*
Gets the object thats the closest in the array
*/
bot_array_nearest_curorigin(array)
{
result = undefined;
gameFlagWait("prematch_done");
for(i = 0; i < array.size; i++)
if(!isDefined(result) || DistanceSquared(self.origin,array[i].curorigin) < DistanceSquared(self.origin,result.curorigin))
result = array[i];
return result;
}
// inventory usage
if (getDvarInt("bots_play_killstreak"))
self thread bot_killstreak_think();
/*
Returns an weapon thats a rocket with ammo
*/
getRocketAmmo()
{
answer = self getLockonAmmo();
self thread bot_weapon_think();
self thread bot_perk_think();
if (isDefined(answer))
return answer;
// script targeting
if (getDvarInt("bots_play_target_other"))
{
self thread bot_target_vehicle();
self thread bot_equipment_kill_think();
self thread bot_turret_think();
}
if(self getAmmoCount("rpg_mp"))
answer = "rpg_mp";
// airdrop
if (getDvarInt("bots_play_take_carepackages"))
{
self thread bot_watch_stuck_on_crate();
self thread bot_crate_think();
}
return answer;
}
// awareness
self thread bot_revenge_think();
self thread bot_uav_think();
self thread bot_listen_to_steps();
self thread follow_target();
/*
Returns a weapon thats lockon with ammo
*/
getLockonAmmo()
{
answer = undefined;
if(self getAmmoCount("at4_mp"))
answer = "at4_mp";
if(self getAmmoCount("stinger_mp"))
answer = "stinger_mp";
// camp and follow
if (getDvarInt("bots_play_camp"))
{
self thread bot_think_follow();
self thread bot_think_camp();
}
if(self getAmmoCount("javelin_mp"))
answer = "javelin_mp";
// nades
if (getDvarInt("bots_play_nade"))
{
self thread bot_jav_loc_think();
self thread bot_use_tube_think();
self thread bot_use_grenade_think();
self thread bot_use_equipment_think();
self thread bot_watch_riot_weapons();
}
// obj
if (getDvarInt("bots_play_obj"))
{
self thread bot_dom_def_think();
self thread bot_dom_spawn_kill_think();
self thread bot_hq();
self thread bot_cap();
self thread bot_sab();
self thread bot_sd_defenders();
self thread bot_sd_attackers();
self thread bot_dem_attackers();
self thread bot_dem_defenders();
}
return answer;
}
/*
@ -2247,23 +2357,6 @@ bot_use_tube_think()
}
}
/*
Fires the bots weapon until told to stop
*/
fire_current_weapon()
{
self endon("death");
self endon("disconnect");
self endon("weapon_change");
self endon("stop_firing_weapon");
for (;;)
{
self thread BotPressAttack(0.05);
wait 0.1;
}
}
/*
Bots thinking of using claymores and TIs
*/
@ -2498,28 +2591,6 @@ bot_use_grenade_think()
}
}
/*
Changes to the weap
*/
changeToWeapon(weap)
{
self endon("disconnect");
self endon("death");
level endon("game_ended");
if (!self HasWeapon(weap))
return false;
if (self GetCurrentWeapon() == weap)
return true;
self BotChangeToWeapon(weap);
self waittill_any_timeout(5, "weapon_change");
return (self GetCurrentWeapon() == weap);
}
/*
Bots will use gremades/wweapons while having a target while using a shield
*/
@ -2592,28 +2663,6 @@ bot_watch_riot_weapons()
}
}
/*
Bots throw the grenade
*/
botThrowGrenade(nade, time)
{
self endon("disconnect");
self endon("death");
level endon("game_ended");
if (!self GetAmmoCount(nade))
return false;
if (isSecondaryGrenade(nade))
self thread BotPressSmoke(time);
else
self thread BotPressFrag(time);
ret = self waittill_any_timeout(5, "grenade_fire");
return (ret == "grenade_fire");
}
/*
BOts thinking of using javelins
*/
@ -3489,41 +3538,6 @@ bot_weapon_think()
}
}
/*
Returns an weapon thats a rocket with ammo
*/
getRocketAmmo()
{
answer = self getLockonAmmo();
if (isDefined(answer))
return answer;
if(self getAmmoCount("rpg_mp"))
answer = "rpg_mp";
return answer;
}
/*
Returns a weapon thats lockon with ammo
*/
getLockonAmmo()
{
answer = undefined;
if(self getAmmoCount("at4_mp"))
answer = "at4_mp";
if(self getAmmoCount("stinger_mp"))
answer = "stinger_mp";
if(self getAmmoCount("javelin_mp"))
answer = "javelin_mp";
return answer;
}
/*
Bots think when to target vehicles
*/
@ -4883,20 +4897,6 @@ bot_sab()
}
}
/*
Gets the object thats the closest in the array
*/
bot_array_nearest_curorigin(array)
{
result = undefined;
for(i = 0; i < array.size; i++)
if(!isDefined(result) || DistanceSquared(self.origin,array[i].curorigin) < DistanceSquared(self.origin,result.curorigin))
result = array[i];
return result;
}
/*
Bots play sd defenders
*/