void Player_PlayerCommand(string cmd, Player p, string message) { if (started) { if (cmd == "teamchat" && p.level == mainlevel) { if (GetPlayer(p) != null) { Data d = GetPlayer(p); if (d.chatting) { Player.SendMessage(d.p, "You are no longer chatting with your team!"); d.chatting = !d.chatting; } else { Player.SendMessage(d.p, "You are now chatting with your team!"); d.chatting = !d.chatting; } Plugin.CancelPlayerEvent(PlayerEvents.PlayerCommand, p); } } if (cmd == "goto") { if (message == "ctf" && p.level != mainlevel) { if (blueteam.members.Count > redteam.members.Count) { if (GetPlayer(p) == null) { cache.Add(new Data(false, p)); } else { GetPlayer(p).hasflag = false; GetPlayer(p).blue = false; } redteam.Add(p); Player.GlobalMessageLevel(mainlevel, p.color + p.name + " " + c.Parse("red") + "joined the RED Team"); Player.SendMessage(p, c.Parse("red") + "You are now on the red team!"); } else if (redteam.members.Count > blueteam.members.Count) { if (GetPlayer(p) == null) { cache.Add(new Data(true, p)); } else { GetPlayer(p).hasflag = false; GetPlayer(p).blue = true; } blueteam.Add(p); Player.GlobalMessageLevel(mainlevel, p.color + p.name + " " + c.Parse("blue") + "joined the BLUE Team"); Player.SendMessage(p, c.Parse("blue") + "You are now on the blue team!"); } else if (new Random().Next(2) == 0) { if (GetPlayer(p) == null) { cache.Add(new Data(false, p)); } else { GetPlayer(p).hasflag = false; GetPlayer(p).blue = false; } redteam.Add(p); Player.GlobalMessageLevel(mainlevel, p.color + p.name + " " + c.Parse("red") + "joined the RED Team"); Player.SendMessage(p, c.Parse("red") + "You are now on the red team!"); } else { if (GetPlayer(p) == null) { cache.Add(new Data(true, p)); } else { GetPlayer(p).hasflag = false; GetPlayer(p).blue = true; } blueteam.Add(p); Player.GlobalMessageLevel(mainlevel, p.color + p.name + " " + c.Parse("blue") + "joined the BLUE Team"); Player.SendMessage(p, c.Parse("blue") + "You are now on the blue team!"); } } else if (message != "ctf" && p.level == mainlevel) { if (blueteam.members.Contains(p)) { //cache.Remove(GetPlayer(p)); blueteam.members.Remove(p); Player.GlobalMessageLevel(mainlevel, p.color + p.name + " " + blueteam.color + "left the ctf game"); } else if (redteam.members.Contains(p)) { //cache.Remove(GetPlayer(p)); redteam.members.Remove(p); Player.GlobalMessageLevel(mainlevel, p.color + p.name + " " + redteam.color + "left the ctf game"); } } } } }
void Player_PlayerChat(Player p, string message) { if (voting) { if (message == "1" || message.ToLower() == map1) { Player.SendMessage(p, "Thanks for voting :D"); vote1++; Plugin.CancelPlayerEvent(PlayerEvents.PlayerChat, p); } else if (message == "2" || message.ToLower() == map2) { Player.SendMessage(p, "Thanks for voting :D"); vote2++; Plugin.CancelPlayerEvent(PlayerEvents.PlayerChat, p); } else if (message == "3" || message.ToLower() == map3) { Player.SendMessage(p, "Thanks for voting :D"); vote3++; Plugin.CancelPlayerEvent(PlayerEvents.PlayerChat, p); } else { Player.SendMessage(p, "%2VOTE:"); Player.SendMessage(p, "1. " + map1 + " 2. " + map2 + " 3. " + map3); Plugin.CancelPlayerEvent(PlayerEvents.PlayerChat, p); } } if (started) { if (p.level == mainlevel) { if (GetPlayer(p).chatting) { if (blueteam.members.Contains(p)) { Player.players.ForEach(delegate(Player p1) { if (blueteam.members.Contains(p1)) { Player.SendMessage(p1, "(Blue) " + p.color + p.name + ":&f " + message); } }); Plugin.CancelPlayerEvent(PlayerEvents.PlayerChat, p); } if (redteam.members.Contains(p)) { Player.players.ForEach(delegate(Player p1) { if (redteam.members.Contains(p1)) { Player.SendMessage(p1, "(Red) " + p.color + p.name + ":&f " + message); } }); Plugin.CancelPlayerEvent(PlayerEvents.PlayerChat, p); } } } } }
void Player_PlayerBlockChange(Player p, ushort x, ushort y, ushort z, byte type) { if (started) { if (p.level == mainlevel && !blueteam.members.Contains(p) && !redteam.members.Contains(p)) { p.SendBlockchange(x, y, z, p.level.GetTile(x, y, z)); Player.SendMessage(p, "You are not on a team!"); Plugin.CancelPlayerEvent(PlayerEvents.BlockChange, p); } if (p.level == mainlevel && blueteam.members.Contains(p) && x == redbase.x && y == redbase.y && z == redbase.z && mainlevel.GetTile(redbase.x, redbase.y, redbase.z) != Block.air) { Player.GlobalMessageLevel(mainlevel, blueteam.color + p.name + " took the " + redteam.color + " red team's FLAG!"); GetPlayer(p).hasflag = true; } if (p.level == mainlevel && redteam.members.Contains(p) && x == bluebase.x && y == bluebase.y && z == bluebase.z && mainlevel.GetTile(bluebase.x, bluebase.y, bluebase.z) != Block.air) { Player.GlobalMessageLevel(mainlevel, redteam.color + p.name + " took the " + blueteam.color + " blue team's FLAG"); GetPlayer(p).hasflag = true; } if (p.level == mainlevel && blueteam.members.Contains(p) && x == bluebase.x && y == bluebase.y && z == bluebase.z && mainlevel.GetTile(bluebase.x, bluebase.y, bluebase.z) != Block.air) { if (GetPlayer(p).hasflag) { Player.GlobalMessageLevel(mainlevel, blueteam.color + p.name + " RETURNED THE FLAG!"); GetPlayer(p).hasflag = false; GetPlayer(p).cap++; GetPlayer(p).points += cappoint; blueteam.points++; mainlevel.Blockchange(redbase.x, redbase.y, redbase.z, Block.red); p.SendBlockchange(x, y, z, p.level.GetTile(x, y, z)); Plugin.CancelPlayerEvent(PlayerEvents.BlockChange, p); if (blueteam.points >= maxpoints) { End(); return; } } else { Player.SendMessage(p, "You cant take your own flag!"); p.SendBlockchange(x, y, z, p.level.GetTile(x, y, z)); Plugin.CancelPlayerEvent(PlayerEvents.BlockChange, p); } } if (p.level == mainlevel && redteam.members.Contains(p) && x == redbase.x && y == redbase.y && z == redbase.z && mainlevel.GetTile(redbase.x, redbase.y, redbase.z) != Block.air) { if (GetPlayer(p).hasflag) { Player.GlobalMessageLevel(mainlevel, redteam.color + p.name + " RETURNED THE FLAG!"); GetPlayer(p).hasflag = false; GetPlayer(p).points += cappoint; GetPlayer(p).cap++; redteam.points++; mainlevel.Blockchange(bluebase.x, bluebase.y, bluebase.z, Block.blue); p.SendBlockchange(x, y, z, p.level.GetTile(x, y, z)); Plugin.CancelPlayerEvent(PlayerEvents.BlockChange, p); if (redteam.points >= maxpoints) { End(); return; } } else { Player.SendMessage(p, "You cant take your own flag!"); p.SendBlockchange(x, y, z, p.level.GetTile(x, y, z)); Plugin.CancelPlayerEvent(PlayerEvents.BlockChange, p); } } } }