if ( player.team == self.team )
{
- if ( clienttype(player) != CLIENTTYPE_REAL || discard )
+ if ( !IS_REAL_CLIENT(player) || discard )
continue;
if( d > friend_distance)
if( head.armorvalue && player.armorvalue > self.armorvalue)
continue;
- if( !WEPSET_EMPTY_E(head) )
- if( !WEPSET_CONTAINS_ALL_EE(player, head) )
+ if( head.weapons )
+ if( head.weapons & ~player.weapons )
continue;
if (head.ammo_shells && player.ammo_shells > self.ammo_shells)
if (head.ammo_rockets && player.ammo_rockets > self.ammo_rockets)
continue;
- if (head.ammo_cells && player.ammo_cells > self.ammo_cells )
+ if (head.ammo_cells && player.ammo_cells > self.ammo_cells)
+ continue;
+
+ if (head.ammo_plasma && player.ammo_plasma > self.ammo_plasma)
continue;
discard = FALSE;
continue;
*/
- if(head.flags & FL_INWATER || head.flags & FL_PARTIALGROUND)
+ if((head.flags & FL_INWATER) || (head.flags & FL_PARTIALGROUND))
continue;
// not falling
- if(head.flags & FL_ONGROUND == 0)
+ if((head.flags & FL_ONGROUND) == 0)
{
traceline(head.origin, head.origin + '0 0 -1500', TRUE, world);
t = pointcontents(trace_endpos + '0 0 1');
// choose a role according to the situation
void havocbot_role_dm();
-//DOM:
-//go to best items, or control points you don't own
-void havocbot_role_dom()
-{
- if(self.deadflag != DEAD_NO)
- return;
-
- if (self.bot_strategytime < time)
- {
- self.bot_strategytime = time + autocvar_bot_ai_strategyinterval;
- navigation_goalrating_start();
- havocbot_goalrating_controlpoints(10000, self.origin, 15000);
- havocbot_goalrating_items(8000, self.origin, 8000);
- //havocbot_goalrating_enemyplayers(3000, self.origin, 2000);
- //havocbot_goalrating_waypoints(1, self.origin, 1000);
- navigation_goalrating_end();
- }
-}
-
//DM:
//go to best items
void havocbot_role_dm()
self.havocbot_role = havocbot_role_race;
}
-void havocbot_chooserole_dom()
-{
- self.havocbot_role = havocbot_role_dom;
-}
-
void havocbot_chooserole()
{
dprint("choosing a role...\n");
self.bot_strategytime = 0;
if (MUTATOR_CALLHOOK(HavocBot_ChooseRule))
return;
- else if (g_domination)
- havocbot_chooserole_dom();
else if (g_keyhunt)
havocbot_chooserole_kh();
else if (g_race || g_cts)
havocbot_chooserole_race();
else if (g_onslaught)
havocbot_chooserole_ons();
- else if (g_freezetag)
- havocbot_chooserole_ft();
- else if (g_assault)
- havocbot_chooserole_ast();
else // assume anything else is deathmatch
havocbot_chooserole_dm();
}