This seems to fix team modes in campaign. Yay.
authorFruitieX <fruitiex@gmail.com>
Sun, 5 Dec 2010 21:39:15 +0000 (23:39 +0200)
committerFruitieX <fruitiex@gmail.com>
Sun, 5 Dec 2010 21:39:15 +0000 (23:39 +0200)
qcsrc/server/bot/bot.qc
qcsrc/server/teamplay.qc

index 581e3f0..e237160 100644 (file)
@@ -173,7 +173,8 @@ void bot_setnameandstuff()
        if(argv(4) != "" && stof(argv(4)) >= 0) bot_pants = argv(4);
        else bot_pants = ftos(floor(random() * 15));
 
-       self.bot_forced_team = stof(argv(5));
+    if(!autocvar_g_campaign) // no forced teams in campaign
+        self.bot_forced_team = stof(argv(5));
 
        prio = 6;
 
index d47115e..fa02ea2 100644 (file)
@@ -842,6 +842,13 @@ float FindSmallestTeam(entity pl, float ignore_pl)
        // c1...c4 now have counts of each team
        // figure out which is smallest, giving priority to the team the player is already on as a tie-breaker
 
+    if(autocvar_g_campaign)
+    {
+        entity e;
+        FOR_EACH_REALCLIENT(e)
+            if(e.team != COLOR_TEAM1) // player is forced to the red team in campaign
+                ++c1; // player will join the red team, join bots accordingly
+    }
        // 2 gives priority to what team you're already on, 1 goes in order
        // 2 doesn't seem to work though...
        balance_type = 1;