//During Game Main Methods public void Start() { GameStatus = TntWarsGameStatus.AboutToStart; //Checking Backups & physics etc. { BackupNumber = lvl.Backup(true); if (BackupNumber <= 0) { SendAllPlayersMessage(c.red + "Backing up Level for TNT Wars failed, Stopping game"); Player.GlobalMessageOps(c.red + "Backing up Level for TNT Wars failed, Stopping game"); GameStatus = TntWarsGameStatus.Finished; return; } Server.s.Log("Backed up " + lvl.name + " (" + BackupNumber.ToString() + ") for TNT Wars"); } //Map stuff lvl.setPhysics(3); lvl.permissionbuild = Group.Find(Server.defaultRank).Permission; lvl.permissionvisit = Group.Find(Server.defaultRank).Permission; lvl.Killer = true; //Seting Up Some Player stuff { foreach (player p in Players) { p.p.PlayingTntWars = true; p.p.CurrentAmountOfTnt = 0; p.p.CurrentTntGameNumber = GameNumber; if (GameDifficulty == TntWarsDifficulty.Easy || GameDifficulty == TntWarsDifficulty.Normal) { p.p.TntWarsHealth = 2; } else { p.p.TntWarsHealth = 1; } p.p.HarmedBy = null; if (GracePeriod) { p.p.canBuild = false; } if (p.spec) { p.p.canBuild = false; Player.SendMessage(p.p, "TNT Wars: Disabled building because you are a spectator!"); } p.p.TntWarsKillStreak = 0; p.p.TntWarsScoreMultiplier = 1f; p.p.TNTWarsLastKillStreakAnnounced = 0; SetTitlesAndColor(p); } if (GracePeriod) { SendAllPlayersMessage("TNT Wars: Disabled building during Grace Period!"); } } //Spawn them (And if needed, move them to the correct level!) { foreach (player p in Players.Where(p => p.p.level != lvl)) { Command.all.Find("goto").Use(p.p, lvl.name); while (p.p.Loading) { Thread.Sleep(250); } p.p.inTNTwarsMap = true; } if (GameMode == TntWarsGameMode.TDM) { Command.all.Find("reveal").Use(null, "all " + lvl.name); } //So peoples names apear above their heads in the right color! foreach (player p in Players) { Command.all.Find("spawn").Use(p.p, ""); //This has to be after reveal so that they spawn in the correct place!! Thread.Sleep(250); } } //Announcing Etc. string Gamemode = "Free For All"; if (GameMode == TntWarsGameMode.TDM) { Gamemode = "Team Deathmatch"; } string Difficulty = "Normal"; string HitsToDie = "2"; string explosiontime = "medium"; string explosionsize = "normal"; switch (GameDifficulty) { case TntWarsDifficulty.Easy: Difficulty = "Easy"; explosiontime = "long"; break; case TntWarsDifficulty.Normal: Difficulty = "Normal"; break; case TntWarsDifficulty.Hard: HitsToDie = "1"; Difficulty = "Hard"; break; case TntWarsDifficulty.Extreme: HitsToDie = "1"; explosiontime = "short"; explosionsize = "big"; Difficulty = "Extreme"; break; } string teamkillling = "Disabled"; if (TeamKills) { teamkillling = "Enabled"; } Player.GlobalMessage(c.red + "TNT Wars " + Server.DefaultColor + "on '" + lvl.name + "' has started " + c.teal + Gamemode + Server.DefaultColor + " with a difficulty of " + c.teal + Difficulty + Server.DefaultColor + " (" + c.teal + HitsToDie + Server.DefaultColor + " hits to die, a " + c.teal + explosiontime + Server.DefaultColor + " explosion delay and with a " + c.teal + explosionsize + Server.DefaultColor + " explosion size)" + ", team killing is " + c.teal + teamkillling + Server.DefaultColor + " and you can place " + c.teal + TntPerPlayerAtATime.ToString() + Server.DefaultColor + " TNT at a time and there is a score limit of " + c.teal + ScoreLimit.ToString() + Server.DefaultColor + "!!"); if (GameMode == TntWarsGameMode.TDM) { SendAllPlayersMessage("TNT Wars: Start your message with ':' to send it as a team chat!"); } //GracePeriod if (GracePeriod) //Check This Grace Stuff { GameStatus = TntWarsGameStatus.GracePeriod; int GracePeriodSecsRemaining = GracePeriodSecs; SendAllPlayersMessage("TNT Wars: Grace Period of " + c.lime + GracePeriodSecsRemaining.ToString() + Server.DefaultColor + " seconds"); while (GracePeriodSecsRemaining > 0) { switch (GracePeriodSecsRemaining) { case 300: SendAllPlayersMessage("TNT Wars: " + c.teal + "5" + Server.DefaultColor + " minutes remaining!"); break; case 240: SendAllPlayersMessage("TNT Wars: " + c.teal + "4" + Server.DefaultColor + " minutes remaining!"); break; case 180: SendAllPlayersMessage("TNT Wars: " + c.teal + "3" + Server.DefaultColor + " minutes remaining!"); break; case 120: SendAllPlayersMessage("TNT Wars: " + c.teal + "2" + Server.DefaultColor + " minutes remaining!"); break; case 90: SendAllPlayersMessage("TNT Wars: " + c.teal + "1" + Server.DefaultColor + " minute and " + c.teal + "30" + Server.DefaultColor + " seconds remaining!"); break; case 60: SendAllPlayersMessage("TNT Wars: " + c.teal + "1" + Server.DefaultColor + " minute remaining!"); break; case 45: SendAllPlayersMessage("TNT Wars: " + c.teal + "45" + Server.DefaultColor + " seconds remaining!"); break; case 30: SendAllPlayersMessage("TNT Wars: " + c.teal + "30" + Server.DefaultColor + " seconds remaining!"); break; case 15: SendAllPlayersMessage("TNT Wars: " + c.teal + "15" + Server.DefaultColor + " seconds remaining!"); break; case 10: SendAllPlayersMessage("TNT Wars: " + c.teal + "10" + Server.DefaultColor + " seconds remaining!"); break; case 9: SendAllPlayersMessage("TNT Wars: " + c.teal + "9" + Server.DefaultColor + " seconds remaining!"); break; case 8: SendAllPlayersMessage("TNT Wars: " + c.teal + "8" + Server.DefaultColor + " seconds remaining!"); break; case 7: SendAllPlayersMessage("TNT Wars: " + c.teal + "7" + Server.DefaultColor + " seconds remaining!"); break; case 6: SendAllPlayersMessage("TNT Wars: " + c.teal + "6" + Server.DefaultColor + " seconds remaining!"); break; case 5: SendAllPlayersMessage("TNT Wars: " + c.teal + "5" + Server.DefaultColor + " seconds remaining!"); break; case 4: SendAllPlayersMessage("TNT Wars: " + c.teal + "4" + Server.DefaultColor + " seconds remaining!"); break; case 3: SendAllPlayersMessage("TNT Wars: " + c.teal + "3" + Server.DefaultColor + " seconds remaining!"); break; case 2: SendAllPlayersMessage("TNT Wars: " + c.teal + "2" + Server.DefaultColor + " seconds remaining!"); break; case 1: SendAllPlayersMessage("TNT Wars: " + c.teal + "1" + Server.DefaultColor + " second remaining!"); break; } Thread.Sleep(1000); GracePeriodSecsRemaining -= 1; } SendAllPlayersMessage("TNT Wars: Grace Period is over!!!!!"); SendAllPlayersMessage("TNT Wars: You may now place " + c.red + "TNT"); } SendAllPlayersMessage("TNT Wars: " + c.white + "The Game Has Started!!!!!"); GameStatus = TntWarsGameStatus.InProgress; foreach (player p in Players) { if (p.spec == false) { p.p.canBuild = true; } } if (GracePeriod) { SendAllPlayersMessage("TNT Wars: You can now build!!"); } //MainLoop while (!Finished()) { int i = 1; //For making a top 5 (or whatever) players announcement every 3 loops (if TDM) Thread.Sleep(3 * 1000); if (Finished()) { break; //--\\ } Thread.Sleep(3 * 1000); if (Finished()) { break; //----\ } Thread.Sleep(3 * 1000); if (Finished()) { break; //-----> So that if it finsihes, we don't have to wait like 10 secs for the announcement!! } Thread.Sleep(3 * 1000); if (Finished()) { break; //----/ } Thread.Sleep(3 * 1000); if (Finished()) { break; //--// } if (GameMode == TntWarsGameMode.TDM) { if (i < 3) { SendAllPlayersScore(true, true); } if (i >= 3) { SendAllPlayersScore(true, true, true); i = 0; } i++; } else if (GameMode == TntWarsGameMode.FFA) { SendAllPlayersScore(false, true, true); } } END(); }