X-Git-Url: http://de.git.xonotic.org/?a=blobdiff_plain;f=qcsrc%2Fserver%2Fbot%2Fhavocbot%2Froles.qc;h=45f5a6e692c4bbc0cda20f2a1d99a10caa0f805c;hb=5d3d1339d4934d8c0be431b8f18a0a16cc8f90c3;hp=ac8ddd161b05c749a1e94bf79b29799bf2674c95;hpb=8ec332c7d3cffdc6b39c3ada385fa41995630589;p=xonotic%2Fxonotic-data.pk3dir.git diff --git a/qcsrc/server/bot/havocbot/roles.qc b/qcsrc/server/bot/havocbot/roles.qc index ac8ddd161..45f5a6e69 100644 --- a/qcsrc/server/bot/havocbot/roles.qc +++ b/qcsrc/server/bot/havocbot/roles.qc @@ -69,7 +69,7 @@ void havocbot_goalrating_items(float ratingscale, vector org, float sradius) if ( player.team == self.team ) { - if ( clienttype(player) != CLIENTTYPE_REAL || discard ) + if ( !IS_REAL_CLIENT(player) || discard ) continue; if( d > friend_distance) @@ -85,8 +85,8 @@ void havocbot_goalrating_items(float ratingscale, vector org, float sradius) 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) @@ -175,11 +175,11 @@ void havocbot_goalrating_enemyplayers(float ratingscale, vector org, float sradi 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'); @@ -203,25 +203,6 @@ void havocbot_goalrating_enemyplayers(float ratingscale, vector org, float sradi // 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() @@ -284,31 +265,18 @@ void havocbot_chooserole_race() 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 (g_ctf) - havocbot_chooserole_ctf(); - else if (g_domination) - havocbot_chooserole_dom(); + if (MUTATOR_CALLHOOK(HavocBot_ChooseRole)) + return; 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_keepaway) - havocbot_chooserole_ka(); - else if (g_freezetag) - havocbot_chooserole_ft(); - else if (g_assault) - havocbot_chooserole_ast(); else // assume anything else is deathmatch havocbot_chooserole_dm(); }