예제 #1
0
        void HandleDisconnect(Player p, string reason)
        {
            if (p.level != Game.Map)
            {
                return;
            }
            CtfTeam2 team = Game.TeamOf(p);

            if (team == null)
            {
                return;
            }

            Game.DropFlag(p, team);
            team.Remove(p);
            Chat.MessageLevel(Game.Map, team.Color + p.DisplayName + " %Sleft the ctf game");
        }
예제 #2
0
        void HandleOnJoinedLevel(Player p, Level prevLevel, Level level)
        {
            if (p == null || !Game.started)
            {
                return;
            }

            if (prevLevel == Game.Map)
            {
                CtfTeam2 team = Game.TeamOf(p);
                if (team == null)
                {
                    return;
                }

                Game.DropFlag(p, team);
                team.Remove(p);
                Chat.MessageLevel(Game.Map, team.Color + p.DisplayName + " %Sleft the ctf game");
            }
            else if (level == Game.Map)
            {
                if (Game.Blue.Members.Count > Game.Red.Members.Count)
                {
                    Game.JoinTeam(p, Game.Red);
                }
                else if (Game.Red.Members.Count > Game.Blue.Members.Count)
                {
                    Game.JoinTeam(p, Game.Blue);
                }
                else if (new Random().Next(2) == 0)
                {
                    Game.JoinTeam(p, Game.Red);
                }
                else
                {
                    Game.JoinTeam(p, Game.Blue);
                }
            }
        }