예제 #1
0
        private static void HandleDiedInGame(ClientInfo player)
        {
            Map  map  = VariableContainer.GetMap(VariableContainer.selectedMap);
            Team team = TeamMaker.GetPlayerTeam(player.playerId);

            if (!VariableContainer.TeamDeaths.ContainsKey(team.id))
            {
                VariableContainer.TeamDeaths.Add(team.id, 0);
            }

            VariableContainer.TeamDeaths[team.id]++;

            foreach (Team.Member member in team.members)
            {
                member.ClientInfo().SendPackage(NetPackageManager.GetPackage <NetPackageChat>().Setup(EChatType.Whisper, member.entityId, "[FF3333]" + team.id + " Deaths to loose: " + (DEATHS_TO_LOOSE - VariableContainer.TeamDeaths[team.id]), null, false, null));
            }

            if (VariableContainer.TeamDeaths[team.id] < DEATHS_TO_LOOSE)
            {
                return;
            }

            VariableContainer.selectedMap = "none";
            refubrishedCords.Clear();
            VariableContainer.FreeMapSpawns();

            string msg = string.Format("[FFAAAA]Team of {0} [FFAAAA]has failed miserable.", team.GetMembers());

            foreach (ClientInfo pcli in ConnectionManager.Instance.Clients.List)
            {
                if (pcli == null)
                {
                    continue;
                }

                string pId = pcli.playerId;
                VariableContainer.SetPlayerState(pId, ModState.IN_LOBBY);
                pcli.SendPackage(NetPackageManager.GetPackage <NetPackageTeleportPlayer>().Setup(VariableContainer.GetLobbyPosition(), null, false));
                pcli.SendPackage(NetPackageManager.GetPackage <NetPackageChat>().Setup(EChatType.Whisper, pcli.entityId, msg, null, false, null));
            }

            TeamMaker.CleanUp();
        }