private static async void VoteMapTimer() { Debug.WriteLine("START VOTE"); await Delay(30000); Debug.WriteLine("CHECK VOTE"); var votes = new Dictionary <string, int>(); foreach (var p in new PlayerList()) { if (!Sync.Data.Has(User.GetPlayerServerId(p), "voteMap")) { continue; } string map = (string)Sync.Data.Get(User.GetPlayerServerId(p), "voteMap"); Debug.WriteLine("VOTE " + map); if (votes.ContainsKey(map)) { votes[map]++; } else { votes.Add(map, 1); } } MapManager.SetMap(votes.FirstOrDefault(x => x.Value == votes.Values.Max()).Key); Debug.WriteLine("END VOTE"); }
private static async Task LobbyTimer() { await Delay(1000); var lobbyList = new PlayerList().Where(p => Sync.Data.Has(User.GetPlayerServerId(p), "Lobby")).ToList(); if (lobbyList.Any()) { if (Sync.Data.Has(-1, "StartTimer") && (int)Sync.Data.Get(-1, "StartTimer") > 0) { Sync.Data.Set(-1, "StartTimer", (int)Sync.Data.Get(-1, "StartTimer") - 1); int voteCam1 = 0; int voteCam2 = 0; foreach (var player in new PlayerList()) { if (!Sync.Data.Has(User.GetPlayerServerId(player), "CameraType")) { continue; } if ((int)Sync.Data.Get(User.GetPlayerServerId(player), "CameraType") == 0) { voteCam1++; } else { voteCam2++; } } foreach (var p in lobbyList) { p.TriggerEvent("TTT:UpdateLobbyInfo", (int)Sync.Data.Get(-1, "StartTimer"), voteCam1, voteCam2, lobbyList.Count); } if ((int)Sync.Data.Get(-1, "StartTimer") > 15) { if (lobbyList.Count / 2 <= voteCam1 + voteCam2) { Sync.Data.Set(-1, "StartTimer", 10); } } if ((int)Sync.Data.Get(-1, "StartTimer") < 1) { Sync.Data.Reset(-1, "StartTimer"); Sync.Data.Set(-1, "CameraType", voteCam1 > voteCam2 ? 0 : 1); if (await MapManager.LoadMap(MapManager.GetMap(), lobbyList)) { var weatherList = new List <string> { "EXTRASUNNY", "CLEAR", "CLOUDS", "SMOG", "FOGGY", "OVERCAST", "CLEARING", "XMAS" }; var rand = new Random(); string weatherMap = weatherList[rand.Next(weatherList.Count)]; int hourMap = rand.Next(23); Sync.Data.Set(-1, "BriefingTimer", MapManager.MapData.Briefing); foreach (var p in lobbyList) { Sync.Data.Set(User.GetPlayerServerId(p), "InGame", true); p.TriggerEvent("TTT:StartBriefing", MapManager.MapData.Name, MapManager.MapData.Briefing, MapManager.MapData.CenterX, MapManager.MapData.CenterY, MapManager.MapData.CenterZ, MapManager.MapData.MaxRadius, MapManager.MapData.CanSwim, MapManager.MapData.EnableScope, weatherMap, hourMap); } } else { MapManager.SetMap(MapManager.MapList.First()); StopGame(lobbyList, PlayerTypes.Unknown); } foreach (var player in new PlayerList()) { Sync.Data.Reset(User.GetPlayerServerId(player), "CameraType"); Sync.Data.Reset(User.GetPlayerServerId(player), "Lobby"); } } } } else if (Sync.Data.Has(-1, "StartTimer")) { Sync.Data.Reset(-1, "StartTimer"); } }