From c62ca5f2f344e5d540abf368b5f0a71ebb707274 Mon Sep 17 00:00:00 2001 From: UnknownShadow200 Date: Sun, 27 Mar 2016 12:40:01 +1100 Subject: [PATCH] Don't prevent players from talking when voting for the next map in zombie survival, don't spam ingame/IRC with 'X joined Y' messages. --- Commands/Information/CmdTime.cs | 4 ++-- Commands/World/CmdGoto.cs | 2 +- Games/ZombieSurvival/ZombieGame.Core.cs | 19 +++++++++++++++++-- Games/ZombieSurvival/ZombieGame.Game.cs | 9 +++++---- Games/ZombieSurvival/ZombieGame.cs | 2 +- 5 files changed, 26 insertions(+), 10 deletions(-) diff --git a/Commands/Information/CmdTime.cs b/Commands/Information/CmdTime.cs index b4a84d523..25a10f60b 100644 --- a/Commands/Information/CmdTime.cs +++ b/Commands/Information/CmdTime.cs @@ -32,11 +32,11 @@ namespace MCGalaxy.Commands { string time = DateTime.Now.ToString("HH:mm:ss"); //DateTime.Now.ToString(); Player.SendMessage(p, "Server time is " + time); if (Server.zombie.Status != ZombieGameStatus.NotStarted) { - int delta = (int)(DateTime.UtcNow - Server.zombie.RoundEnd).TotalSeconds; + int delta = (int)(Server.zombie.RoundEnd - DateTime.UtcNow).TotalSeconds; if (delta > 0) { Player.SendMessage(p, "&a" + delta + " %Sseconds until the round ends."); } else { - delta = (int)(DateTime.UtcNow - Server.zombie.RoundStart).TotalSeconds; + delta = (int)(Server.zombie.RoundStart - DateTime.UtcNow).TotalSeconds; if (delta > 0) Player.SendMessage(p, "&a" + delta + " %Sseconds until the round starts."); } diff --git a/Commands/World/CmdGoto.cs b/Commands/World/CmdGoto.cs index 19f1ec129..aa93b58f3 100644 --- a/Commands/World/CmdGoto.cs +++ b/Commands/World/CmdGoto.cs @@ -131,7 +131,7 @@ namespace MCGalaxy.Commands { p.Loading = false; CheckGamesJoin(p, oldLevel); - if (!p.hidden) { + if (!p.hidden && p.level.ShouldSaveLevelFile()) { Player.SendChatFrom(p, p.color + "*" + p.DisplayName + Server.DefaultColor + " went to &b" + lvl.name, false); Server.IRC.Say(p.color + p.DisplayName + " %rwent to &8" + lvl.name, false, true); } diff --git a/Games/ZombieSurvival/ZombieGame.Core.cs b/Games/ZombieSurvival/ZombieGame.Core.cs index 2035c2e63..850b8b7d4 100644 --- a/Games/ZombieSurvival/ZombieGame.Core.cs +++ b/Games/ZombieSurvival/ZombieGame.Core.cs @@ -358,8 +358,11 @@ namespace MCGalaxy.Games { if (initialChangeLevel) { Server.votingforlevel = true; - CurLevel.ChatLevel(" " + Colors.black + "Level Vote: %S" + selectedLevel1 + ", " + selectedLevel2 + - " or random " + "(" + Colors.lime + "1%S/" + Colors.red + "2%S/" + Colors.blue + "3%S)"); + Player[] players = PlayerInfo.Online.Items; + foreach (Player pl in players) { + if (pl.level != CurLevel) continue; + SendVoteMessage(pl, selectedLevel1, selectedLevel2); + } System.Threading.Thread.Sleep(15000); Server.votingforlevel = false; } else { Level1Vote = 1; Level2Vote = 0; Level3Vote = 0; } @@ -398,5 +401,17 @@ namespace MCGalaxy.Games { maps.Add(fil.Name.Split('.')[0]); return maps; } + + void SendVoteMessage(Player p, string lvl1, string lvl2) { + const string line1 = "&eVote for the next level! Type &a1&e, &c2&e or &93"; + string line2 = "&eLevels: &a" + lvl1 + "&e, &c" + lvl2 + "&e, &9random"; + if (p.HasCpeExt(CpeExt.MessageTypes)) { + p.SendCpeMessage(CpeMessageType.BottomRight2, line1, true); + p.SendCpeMessage(CpeMessageType.BottomRight1, line2, true); + } else { + p.SendMessage(line1, true); + p.SendMessage(line2, true); + } + } } } diff --git a/Games/ZombieSurvival/ZombieGame.Game.cs b/Games/ZombieSurvival/ZombieGame.Game.cs index 0eb9372bc..9e3df455d 100644 --- a/Games/ZombieSurvival/ZombieGame.Game.cs +++ b/Games/ZombieSurvival/ZombieGame.Game.cs @@ -108,10 +108,6 @@ namespace MCGalaxy.Games { Player.CheckVote(message, p, "2", "two", ref Level2Vote) || Player.CheckVote(message, p, "3", "three", ref Level3Vote)) return true; - - if (!p.voice) { - p.SendMessage("Chat moderation is on while voting is on!"); return true; - } return false; } @@ -129,6 +125,8 @@ namespace MCGalaxy.Games { } public override void PlayerJoinedLevel(Player p, Level oldLvl) { + p.SendCpeMessage(CpeMessageType.BottomRight2, ""); + p.SendCpeMessage(CpeMessageType.BottomRight1, ""); if (RoundInProgress && p.level.name.CaselessEq(CurLevelName)) { if (Status != ZombieGameStatus.NotStarted && p != null) { p.SendMessage("You joined in the middle of a round. &cYou are now infected!"); @@ -151,6 +149,9 @@ namespace MCGalaxy.Games { p.SendMessage("It was created by " + CurLevel.Authors); p.SendCpeMessage(CpeMessageType.Status3, "%SYou have &a" + p.money + " %S" + Server.moneys); UpdatePlayerStatus(p); + + if (Server.votingforlevel) + SendVoteMessage(p, lastLevel1, lastLevel2); return; } diff --git a/Games/ZombieSurvival/ZombieGame.cs b/Games/ZombieSurvival/ZombieGame.cs index 9c440864f..da1ee7845 100644 --- a/Games/ZombieSurvival/ZombieGame.cs +++ b/Games/ZombieSurvival/ZombieGame.cs @@ -185,7 +185,7 @@ namespace MCGalaxy.Games { pl.ratedMap = false; pl.pledgeSurvive = false; if (!pl.level.name.CaselessEq(next) && pl.level.name.CaselessEq(LastLevelName)) { - pl.SendMessage("Going to the next map!"); + pl.SendMessage("Going to the next map - &a" + next); Command.all.Find("goto").Use(pl, next); } }