X-Git-Url: http://de.git.xonotic.org/?p=xonotic%2Fxonotic-data.pk3dir.git;a=blobdiff_plain;f=qcsrc%2Fserver%2Fbot%2Fhavocbot%2Frole_ctf.qc;h=74c611ea18ddf6bdfe8f54dc94c3de1c29c59c57;hp=0ec0abb3ce5c1427d7fb8140928bd65b75cb943a;hb=a7b24450e4c7ca75636df1375d01d2266bd00c8c;hpb=1eadc66440474af5c3d2b2f7e5a24935da3ffbdf diff --git a/qcsrc/server/bot/havocbot/role_ctf.qc b/qcsrc/server/bot/havocbot/role_ctf.qc index 0ec0abb3c..74c611ea1 100644 --- a/qcsrc/server/bot/havocbot/role_ctf.qc +++ b/qcsrc/server/bot/havocbot/role_ctf.qc @@ -40,7 +40,7 @@ entity havocbot_ctf_find_flag(entity bot) f = f.ctf_worldflagnext; } return world; -}; +} entity havocbot_ctf_find_enemy_flag(entity bot) { @@ -53,11 +53,11 @@ entity havocbot_ctf_find_enemy_flag(entity bot) f = f.ctf_worldflagnext; } return world; -}; +} float havocbot_ctf_teamcount(entity bot, vector org, float radius) { - if not(teams_matter) + if not(teamplay) return 0; float c; @@ -73,11 +73,11 @@ float havocbot_ctf_teamcount(entity bot, vector org, float radius) } return c; -}; +} void havocbot_goalrating_ctf_ourflag(float ratingscale) { - local entity head; + entity head; head = ctf_worldflaglist; while (head) { @@ -87,11 +87,11 @@ void havocbot_goalrating_ctf_ourflag(float ratingscale) } if (head) navigation_routerating(head, ratingscale, 10000); -}; +} void havocbot_goalrating_ctf_ourbase(float ratingscale) { - local entity head; + entity head; head = ctf_worldflaglist; while (head) { @@ -103,11 +103,11 @@ void havocbot_goalrating_ctf_ourbase(float ratingscale) return; navigation_routerating(head.basewaypoint, ratingscale, 10000); -}; +} void havocbot_goalrating_ctf_enemyflag(float ratingscale) { - local entity head; + entity head; head = ctf_worldflaglist; while (head) { @@ -117,7 +117,7 @@ void havocbot_goalrating_ctf_enemyflag(float ratingscale) } if (head) navigation_routerating(head, ratingscale, 10000); -}; +} void havocbot_goalrating_ctf_enemybase(float ratingscale) { @@ -127,7 +127,7 @@ void havocbot_goalrating_ctf_enemybase(float ratingscale) return; } - local entity head; + entity head; head = havocbot_ctf_find_enemy_flag(self); @@ -135,23 +135,24 @@ void havocbot_goalrating_ctf_enemybase(float ratingscale) return; navigation_routerating(head.basewaypoint, ratingscale, 10000); -}; +} void havocbot_goalrating_ctf_ourstolenflag(float ratingscale) { - local entity mf; + entity mf; mf = havocbot_ctf_find_flag(self); if(mf.cnt == FLAG_BASE) return; - navigation_routerating(mf, ratingscale, 10000); -}; + if(mf.tag_entity) + navigation_routerating(mf.tag_entity, ratingscale, 10000); +} void havocbot_goalrating_ctf_droppedflags(float ratingscale, vector org, float radius) { - local entity head; + entity head; head = ctf_worldflaglist; while (head) { @@ -170,12 +171,12 @@ void havocbot_goalrating_ctf_droppedflags(float ratingscale, vector org, float r head = head.ctf_worldflagnext; } -}; +} void havocbot_goalrating_ctf_carrieritems(float ratingscale, vector org, float sradius) { - local entity head; - local float t; + entity head; + float t; head = findchainfloat(bot_pickup, TRUE); while (head) { @@ -191,7 +192,7 @@ void havocbot_goalrating_ctf_carrieritems(float ratingscale, vector org, float s } head = head.chain; } -}; +} void havocbot_role_ctf_setrole(entity bot, float role) { @@ -203,6 +204,7 @@ void havocbot_role_ctf_setrole(entity bot, float role) bot.havocbot_role = havocbot_role_ctf_carrier; bot.havocbot_role_timeout = 0; bot.havocbot_cantfindflag = time + 10; + bot.bot_strategytime = 0; break; case HAVOCBOT_CTF_ROLE_DEFENSE: dprint("defense"); @@ -224,16 +226,18 @@ void havocbot_role_ctf_setrole(entity bot, float role) bot.havocbot_previous_role = bot.havocbot_role; bot.havocbot_role = havocbot_role_ctf_retriever; bot.havocbot_role_timeout = time + 10; + bot.bot_strategytime = 0; break; case HAVOCBOT_CTF_ROLE_ESCORT: dprint("escort"); bot.havocbot_previous_role = bot.havocbot_role; bot.havocbot_role = havocbot_role_ctf_escort; bot.havocbot_role_timeout = time + 30; + bot.bot_strategytime = 0; break; } dprint("\n"); -}; +} void havocbot_role_ctf_carrier() { @@ -271,11 +275,11 @@ void havocbot_role_ctf_carrier() return; } } -}; +} void havocbot_role_ctf_escort() { - local entity mf, ef; + entity mf, ef; if(self.deadflag != DEAD_NO) { @@ -331,12 +335,12 @@ void havocbot_role_ctf_escort() havocbot_goalrating_items(10000, self.origin, 10000); navigation_goalrating_end(); } -}; +} void havocbot_role_ctf_offense() { - local entity mf, ef; - local vector pos; + entity mf, ef; + vector pos; if(self.deadflag != DEAD_NO) { @@ -412,12 +416,12 @@ void havocbot_role_ctf_offense() havocbot_goalrating_items(1000, self.origin, 10000); navigation_goalrating_end(); } -}; +} // Retriever (temporary role): void havocbot_role_ctf_retriever() { - local entity mf; + entity mf; if(self.deadflag != DEAD_NO) { @@ -450,7 +454,7 @@ void havocbot_role_ctf_retriever() if (self.bot_strategytime < time) { - local float radius; + float radius; radius = 10000; self.bot_strategytime = time + autocvar_bot_ai_strategyinterval; @@ -461,11 +465,11 @@ void havocbot_role_ctf_retriever() havocbot_goalrating_items(500, self.origin, radius); navigation_goalrating_end(); } -}; +} void havocbot_role_ctf_middle() { - local entity mf; + entity mf; if(self.deadflag != DEAD_NO) { @@ -497,7 +501,7 @@ void havocbot_role_ctf_middle() if (self.bot_strategytime < time) { - local vector org; + vector org; org = havocbot_ctf_middlepoint; org_z = self.origin_z; @@ -512,11 +516,11 @@ void havocbot_role_ctf_middle() havocbot_goalrating_ctf_enemybase(2500); navigation_goalrating_end(); } -}; +} void havocbot_role_ctf_defense() { - local entity mf; + entity mf; if(self.deadflag != DEAD_NO) { @@ -548,8 +552,8 @@ void havocbot_role_ctf_defense() } if (self.bot_strategytime < time) { - local float radius; - local vector org; + float radius; + vector org; org = mf.dropped_origin; radius = havocbot_ctf_middlepoint_radius; @@ -558,8 +562,8 @@ void havocbot_role_ctf_defense() navigation_goalrating_start(); // if enemies are closer to our base, go there - local entity head, closestplayer; - local float distance, bestdistance; + entity head, closestplayer; + float distance, bestdistance; distance = 10000; FOR_EACH_PLAYER(head) { @@ -587,7 +591,7 @@ void havocbot_role_ctf_defense() havocbot_goalrating_items(5000, self.origin, 10000); navigation_goalrating_end(); } -}; +} void havocbot_calculate_middlepoint() { @@ -606,13 +610,13 @@ void havocbot_calculate_middlepoint() } havocbot_ctf_middlepoint = p1 + ((p2-p1) * 0.5); havocbot_ctf_middlepoint_radius = vlen(p2-p1) * 0.5; -}; +} void havocbot_ctf_reset_role(entity bot) { - local float cdefense, cmiddle, coffense; - local entity mf, ef, head; - local float c; + float cdefense, cmiddle, coffense; + entity mf, ef, head; + float c; if(bot.deadflag != DEAD_NO) return; @@ -672,9 +676,9 @@ void havocbot_ctf_reset_role(entity bot) havocbot_role_ctf_setrole(bot, HAVOCBOT_CTF_ROLE_OFFENSE); else havocbot_role_ctf_setrole(bot, HAVOCBOT_CTF_ROLE_MIDDLE); -}; +} void havocbot_chooserole_ctf() { havocbot_ctf_reset_role(self); -}; +}