예제 #1
0
        private void plist(Player sender, ChatEventArgs eventargs)
        {
            sender.OnPlayerChat.Normal -= new ChatEvent.EventHandler(plist);
            if (eventargs.Message.ToLower() != "yes" || sender.ExtraData.GetIfExist <object, object>("LastCmd") != "mapinfo" && sender.ExtraData.GetIfExist("LastCmd") != "mi")
            {
                return;
            }

            eventargs.Cancel();
            Level         l        = (Level)sender.GetDatapass("mapinfoLevel");
            List <Player> templist = Server.Players.FindAll((p) => { return(p.Level == l); });

            if (templist.Count == 0)
            {
                sender.SendMessage("No one is on " + l.Name + ".");
                return;
            }
            if (templist.Count == 1 && sender.Level == l)
            {
                sender.SendMessage("No one besides you is on " + l.Name + ".");
                return;
            }

            templist.ForEach((p) => {
                sender.SendMessage(String.Concat(p.Color, p.Username));
            });
        }
예제 #2
0
        private void plist(Player sender, ChatEventArgs eventargs) {
            sender.OnPlayerChat.Normal -= new ChatEvent.EventHandler(plist);
            if (eventargs.Message.ToLower() != "yes" || sender.ExtraData.GetIfExist<object, object>("LastCmd") != "mapinfo" && sender.ExtraData.GetIfExist("LastCmd") != "mi")
                return;

            eventargs.Cancel();
            Level l = (Level)sender.GetDatapass("mapinfoLevel");
            List<Player> templist = Server.Players.FindAll((p) => { return p.Level == l; });

            if (templist.Count == 0) {
                sender.SendMessage("No one is on " + l.Name + ".");
                return;
            }
            if (templist.Count == 1 && sender.Level == l) {
                sender.SendMessage("No one besides you is on " + l.Name + ".");
                return;
            }

            templist.ForEach((p) => {
                sender.SendMessage(String.Concat(p.Color, p.Username));
            });
        }
예제 #3
0
        void OnAllPlayersChat_Normal(Player p, ChatEventArgs args)
        {
            #region Spam Check
            if (hasPlayerInfo(p))
            {
                PlayerInfo pi = getPlayerInfo(p);
                if (pi.LastMessage.ToLower() == args.Message.ToLower())
                {
                    pi.offense++;
                }
                else
                {
                    pi.LastMessage = args.Message;
                    pi.offense--;
                }
            }
            #endregion

            #region Caps Check
            int  rage = 0;
            bool skip = false;
goagain:    //EWW LABELS
            string newmessage = "";
            string message = args.Message;
            for (int i = 0; i < message.Length; i++)
            {
                char c = message[i];
                if (caps.IndexOf(c) != -1)
                {
                    rage++;
                }
                else
                {
                    rage--;
                }
                if (rage >= 5 && caps.IndexOf(c) != -1)
                {
                    c = nocaps[caps.IndexOf(c)];
                }
                newmessage += c;
            }
            if (rage == message.Length)
            {
                skip = true;
                p.SendMessage("Lay off the caps :/");
                goto goagain;
            }
            else if (rage >= 7 && !skip)
            {
                p.SendMessage("Lay off the caps :/");
                if (!hasPlayerInfo(p))
                {
                    PlayerInfo pi = new PlayerInfo(p);
                    pi.LastMessageSent = DateTime.Now;
                    pi.LastMessage     = message;
                    players.Add(pi);
                }
                else
                {
                    PlayerInfo pi = getPlayerInfo(p);
                    pi.offense++;
                }
            }
            args.Message = newmessage;
            #endregion

            if (hasPlayerInfo(p) && getPlayerInfo(p).kicked)
            {
                args.Cancel();
            }
        }
예제 #4
0
 public void OnChat(Player Player, ChatEventArgs args)
 {
     ExtraPlayerData P = FindPlayer(Player);
     if (Voting && IsNotImportant(args.Message))
     {
         int l = args.Message.Length;
         if (l > 3)
             l = 3;
         else if (l <= 0)
             l = 1;
         Player.ExtraData.CreateIfNotExist("Voted", false);
         var didVote = (bool)Player.ExtraData.GetIfExist("Voted");
         if (args.Message.ToLower().Equals(LevelChoices[0].Substring(0, l).ToString().ToLower()) && !didVote)
         {
             Player.SendMessage("[Zombie Survival]: " + Colors.red + "Thank you for voting for " + LevelChoices[0]);
             LevelVotes.x += 1;
             Player.ExtraData["Voted"] = true;
             args.Cancel();
         }
         else if (args.Message.ToLower().Equals(LevelChoices[1].Substring(0, l).ToString().ToLower()))
         {
             Player.SendMessage("[Zombie Survival]: " + Colors.red + "Thank you for voting for " + LevelChoices[1]);
             LevelVotes.y += 1;
             Player.ExtraData["Voted"] = true;
             args.Cancel();
         }
         else if (args.Message.ToLower().Equals("random".Substring(0, l).ToString().ToLower()))
         {
             Player.SendMessage("[Zombie Survival]: " + Colors.red + "Thank you for voting for random");
             LevelVotes.z += 1;
             Player.ExtraData["Voted"] = true;
             args.Cancel();
         }
         else if (!(bool)Player.ExtraData.GetIfExist("Voiced") && !P.Referee)
         {
             Player.SendMessage("[Zombie Survival]: " + Colors.red + "You may not speak while voting, sorry :(");
             args.Cancel();
         }
         else
         {
             args.Message = ZombieHelper.CleanString(Player, args.Message);
             if (args.Message == "")
             {
                 args.Cancel();
                 return;
             }
             return;
         }
     }
     else if (IsNotImportant(args.Message))
     {
         var voiceString = (string)Player.ExtraData.GetIfExist("VoiceString") ?? "";
         var mColor = Player.Group.Color;
         var mPrefix = (string)Player.ExtraData.GetIfExist("Title") ?? "";
         string msg = voiceString + mPrefix + mColor + Player.Username + ": &f" + args.Message;
         if (P.Referee)
         {
             msg = Colors.gold + "[Referee] " + msg;
         }
         else if (P.Infected)
         {
             msg = Colors.red + "[Infected] " + msg;
         }
         else
         {
             msg = Colors.green + "[Survivor] " + msg;
         }
         string l = ZombieHelper.CleanString(Player, msg);
         if (l == "")
         {
             args.Cancel();
             return;
         }
         Player.UniversalChat(l);
         Server.IRC.SendMessage(l);
         args.Cancel();
         return;
     }
     else
     {
         args.Message = ZombieHelper.CleanString(Player, args.Message);
         if (args.Message == "")
         {
             args.Cancel();
             return;
         }
         return;
     }
 }
        void OnAllPlayersChat_Normal(Player p, ChatEventArgs args) {
            #region Spam Check
            if (hasPlayerInfo(p)) {
                PlayerInfo pi = getPlayerInfo(p);
                if (pi.LastMessage.ToLower() == args.Message.ToLower())
                    pi.offense++;
                else {
                    pi.LastMessage = args.Message;
                    pi.offense--;
                }
            }
            #endregion

            #region Caps Check
            int rage = 0;
            bool skip = false;
        goagain: //EWW LABELS
            string newmessage = "";
            string message = args.Message;
            for (int i = 0; i < message.Length; i++) {
                char c = message[i];
                if (caps.IndexOf(c) != -1)
                    rage++;
                else
                    rage--;
                if (rage >= 5 && caps.IndexOf(c) != -1)
                    c = nocaps[caps.IndexOf(c)];
                newmessage += c;
            }
            if (rage == message.Length) {
                skip = true;
                p.SendMessage("Lay off the caps :/");
                goto goagain;
            }
            else if (rage >= 7 && !skip) {
                p.SendMessage("Lay off the caps :/");
                if (!hasPlayerInfo(p)) {
                    PlayerInfo pi = new PlayerInfo(p);
                    pi.LastMessageSent = DateTime.Now;
                    pi.LastMessage = message;
                    players.Add(pi);
                }
                else {
                    PlayerInfo pi = getPlayerInfo(p);
                    pi.offense++;
                }
            }
            args.Message = newmessage;
            #endregion

            if (hasPlayerInfo(p) && getPlayerInfo(p).kicked)
                args.Cancel();
        }