public void onGameFinish(xCoreLevel level) { var players = level.Points.OrderByDescending((KeyValuePair <string, int> arg) => arg.Value); //string st = "§a!====§7[§fTop §4Kills§7]§a====!\n"; string st = "§a§l--------------------§r\n"; st += new String(' ', (20 - NameGame.Length) / 2) + NameGame + "\n\n"; string winner = level.GetSurvivalPlayers()[0].Username; st += new String(' ', (20 - winner.Length) / 2) + "§7" + winner + "\n"; int ii = 1; string ll = "1st Killer - 0"; foreach (var s in players) { /*if (ii <= 3) * { * st += "§a#" + ii + " §f|§4 " + s.Key + " §f| §4Kills §a" + s.Value + "\n"; * }*/ if (ii == 1) { st += new String(' ', (20 - ll.Length) / 2) + "§e1st Killer - §7" + s.Key + " - " + s.Value + "\n"; } else if (ii == 2) { st += new String(' ', (20 - ll.Length) / 2) + "§62nd Killer - §7" + s.Key + " - " + s.Value + "\n"; } else if (ii == 3) { st += new String(' ', (20 - ll.Length) / 2) + "§c3rd Killer - §7" + s.Key + " - " + s.Value + "\n"; } ii++; } st += "\n§a§l--------------------"; foreach (xPlayer pl in level.GetSurvivalPlayers()) { Core.BossBar.SetNameTag(level, pl.Username + " win!"); pl.SendMessage(Prefix + pl.PlayerData.lang.get("sw.finish.win")); //Core.UpdateStats(pl, 50, 10, Booster); //Core.UpdateData(pl, "wins", 1, this); } level.BroadcastMessage(st); level.Time = 10; level.Status = Status.Finish; }
public void onGameMatch(xCoreLevel level) { level.Status = Status.Match; level.Time = 10; level.pvp = false; int i = 0; List <PlayerLocation> loc = DeathPoints[level.Map.Name]; foreach (Player player in level.GetSurvivalPlayers()) { player.Teleport(loc[i]); player.SetNoAi(true); i++; } }
public void Timer(Player[] players, xCoreLevel level) { if (level.Status == Status.Game) { switch (level.Time) { case 600: foreach (xPlayer p in level.GetSpawnedPlayers()) { p.SendMessage(p.PlayerData.lang.get("sw.timer.game.prerefill5")); } break; case 580: // break; case 420: foreach (xPlayer p in level.GetSpawnedPlayers()) { p.SendMessage(p.PlayerData.lang.get("sw.timer.game.prerefill2")); } break; case 300: ChestFill(level); foreach (xPlayer p in level.GetSpawnedPlayers()) { p.SendMessage(p.PlayerData.lang.get("sw.timer.game.refill")); } break; case 0: onGameMatch(level); break; default: Player[] Survided = level.GetSurvivalPlayers(); if (Survided.Count() <= 3) { if (Survided.Count() <= 1) { onGameFinish(level); return; } if (level.Time > 30) { level.Time = 30; } } Core.BossBar.SetNameTag(level, "sw.game.timer.string", true); foreach (xPlayer p in level.GetSpawnedPlayers()) { /*level.BroadcastPopup(p, */Core.BossBar.SendName(p, string.Format(p.PlayerData.lang.get("sw.game.timer.string"), Survided.Count(), level.Map.Name, level.TimeString)); } break; } level.Time--; } else if (level.Status == Status.Finish) { switch (level.Time) { case 10: foreach (xPlayer p in level.GetSpawnedPlayers()) { p.SendMessage(Prefix + p.PlayerData.lang.get("xcore.finish.to")); } break; case 0: onGameReload(level); break; default: if (players.Length == 0) { onGameReload(level); } /*foreach (Player p in level.GetSpawnedPlayers()) * { * level.BroadcastPopup(p, level.TimeString); * }*/ Core.BossBar.SetNameTag(level, level.TimeString); break; } level.Time--; } else if (level.Status == Status.Match) { if (level.Time > 0) { Core.BossBar.SetNameTag(level, level.TimeString); } else if (level.Time == 0) { level.pvp = true; Core.BossBar.SetNameTag(level, "Deathmatch"); foreach (xPlayer player in level.GetSpawnedPlayers()) { player.SendMessage(Prefix + player.PlayerData.lang.get("sg.timer.dm.start")); player.SetNoAi(false); } } Player[] Survided = level.GetSurvivalPlayers(); if (Survided.Count() <= 1) { onGameFinish(level); return; } level.Time--; } else if (level.Status == Status.Start) { if (players.Length >= MinPlayers) { switch (level.Time) { case 160: case 120: case 60: case 30: case 20: case 10: case 4: case 3: case 2: case 1: foreach (xPlayer player in level.GetSpawnedPlayers()) { player.SendMessage(Prefix + string.Format(player.PlayerData.lang.get("xcore.start.to"), level.Time)); } break; case 5: onGamePreStart(level); break; case 0: onGameStart(level); break; default: if (players.Length >= (level.Slots / 2)) { if (level.Time > 60) { level.Time = 55; return; } } break; } Core.BossBar.SetNameTag(level, level.TimeString); level.Time--; } else { Core.BossBar.SetNameTag(level, "xcore.start.noplayers", true); foreach (xPlayer player in level.GetSpawnedPlayers()) { Core.BossBar.SendName(player, string.Format(player.PlayerData.lang.get("xcore.start.noplayers"), MinPlayers)); } level.Time = 85; level.PreStarted = false; } } }