public override void Use(Player p, string message) { if (message == "") { Help(p); return; } if (message == "list" || message == "liste") { if (listGame.Count == 0) { Player.SendMessage(p, "Aucun jeu ne propose de statistiques"); } string li = ""; foreach (string g in listGame) { li += g + ", "; } Player.SendMessage(p, "Jeux avec statistiques : " + li.Remove(li.Length - 2)); return; } if (message.Split(' ').Length < 2) { Help(p); return; } switch (message.Split(' ')[0]) { case "top": switch (message.Split(' ')[1]) { case "bomberman": BombermanGame.top(p); break; case "ctf": CTFGame2.top(p); break; case "infection": InfectionGame.top(p); break; default: Player.SendMessage(p, "Le jeu '" + message.Split(' ')[1] + "' n'a pas de statistiques"); break; } break; case "reset": if (p.group.Permission < LevelPermission.Admin) { Player.SendMessage(p, "Tu n'a pas les permissions de faire ca"); } if (!listGame.Exists(m => m == message.Split(' ')[1])) { Player.SendMessage(p, "Le jeu '" + message.Split(' ')[1] + "' n'a pas de statistiques"); } if (message.Split(' ').Length == 2) //resetjeu { BaseGame.resetGame(message.Split(' ')[1]); Player.SendMessage(p, "Statistiques du jeu '" + message.Split(' ')[1] + "' reinitialise"); } else { BaseGame.resetPlayer(message.Split(' ')[2], message.Split(' ')[1]); Player.SendMessage(p, "Statistique de '" + message.Split(' ')[2] + "' reset sur '" + message.Split(' ')[1] + "'"); } break; case "bomberman": BombermanGame.stats(p, message.Split(' ')[1]); break; case "ctf": CTFGame2.stats(p, message.Split(' ')[1]); break; case "infection": InfectionGame.stats(p, message.Split(' ')[1]); break; default: Player.SendMessage(p, "Le jeu '" + message.Split(' ')[0] + "' n'a pas de statistiques"); break; } }
public override void Use(Player p, string message) { if (p == null) { Player.SendMessage(p, "Impossible depuis la console ou l'irc"); return; } BaseGame gameInfo = Server.allGames.Find(g => g.lvl == p.level); InfectionGame InfInfo = null; if (gameInfo != null) { if (gameInfo.typeGame == "infection") { InfInfo = (InfectionGame)gameInfo; } } string key = ""; if (message == "") { ; } else if (message.IndexOf(' ') == -1) { key = message; message = ""; } else { key = message.Split(' ')[0]; message = message.Substring(message.IndexOf(' ') + 1); } switch (key.ToLower()) { case "start": if (!verif(gameInfo, p)) { return; } if (InfInfo.gameOn) { Player.SendMessage(p, "Le jeu est deja lance"); return; } InfInfo.startGame(p); break; case "stop": if (!verif(gameInfo, p)) { return; } if (!InfInfo.gameOn) { Player.SendMessage(p, "Le jeu n'est pas lance"); return; } InfInfo.gameOn = false; InfInfo.stopGame(p); break; case "info": if (gameInfo == null) { Player.SendMessage(p, "Il y a aucune partie en cours sur la map"); return; } if (gameInfo.typeGame.ToLower() != "infection") { Player.SendMessage(p, "L'infection n'est pas actif sur cette map"); return; } InfInfo.GameInfo(p); break; case "list": BaseGame.listSave(p, "ctf"); break; case "save": if (!verif(gameInfo, p)) { return; } if (InfInfo.gameOn) { Player.SendMessage(p, "Impossible de sauvegarder les configurations quand l'infection est lance"); return; } InfInfo.saveGame(p, message); break; case "load": if (!verif(gameInfo, p)) { return; } if (InfInfo.gameOn) { Player.SendMessage(p, "Impossible de charger une configuration quand l'infection est lance"); return; } InfInfo.loadGame(p, message); break; case "blocs": case "blocks": if (!verif(gameInfo, p)) { return; } int nbBlocs = 0; Int32.TryParse(message, out nbBlocs); if (nbBlocs <= 0) { Player.SendMessage(p, "Vous devez choisir un nombre de blocs superieur a 0 !"); return; } InfInfo.nbBlocsAllow = nbBlocs; Player.SendMessage(p, "Le nombre de blocs posable a ete mis a " + nbBlocs); break; case "time": case "temps": if (!verif(gameInfo, p)) { return; } int nbMins = 0; Int32.TryParse(message, out nbMins); if (nbMins <= 0) { Player.SendMessage(p, "Vous devez choisir un temps superieur a 0 !"); return; } if (nbMins >= 30) { Player.SendMessage(p, "Vous devez choisir un temps de moins de 30 min !"); return; } InfInfo.time = nbMins; Player.SendMessage(p, "Le temps d'une partie est regle a " + nbMins + " minutes"); break; default: if (gameInfo == null) { if (p.level.world != p.name.ToLower() && p.group.Permission < LevelPermission.Operator) { Player.SendMessage(p, "Vous ne pouvez pas lancer de jeu dans ce monde"); return; } if (Server.allGames.Count > Server.maxGames) { Player.SendMessage(p, "Le maximum de jeux en simultanees est attein"); Player.SendMessage(p, "Attendez qu'une partie se finisse avant d'en lancer une autre"); return; } InfectionGame infection = new InfectionGame(p.level); infection.owner = p; if (key == "") { Player.SendMessage(p, "Vous devez donner un nom a la partie"); return; } if (message != "") { Player.SendMessage(p, "Le nom de la partie doit etre fait d'un seul mot"); return; } infection.name = key; if (!BaseGame.addGame(infection)) { Player.SendMessage(p, "Impossible de creer le jeu, reessayez !"); return; } Player.SendMessage(p, "Creation du ctf termine"); Player.GlobalMessage("Une infection vas bientot demarrer sur &b" + infection.lvl.name + Server.DefaultColor + " du monde &b" + infection.lvl.world); return; } if (gameInfo.typeGame.ToLower() != "infection") { Player.SendMessage(p, "Un jeu est deja actif sur cette map"); return; } if (gameInfo != null) { if (p != gameInfo.owner || p.group.Permission < LevelPermission.Operator) { Player.SendMessage(p, "Vous n'etes pas le maitre de la partie"); return; } if (gameInfo.gameOn) { Player.SendMessage(p, "Arettez la partie avant de desactiver l'infection"); return; } gameInfo.deleteGame(p); Player.GlobalMessageLevel(p.level, "Infection desactive"); return; } break; } }