Пример #1
0
            public override void OnResponse(Mobile from, string text)
            {
                int page = m_Page;
                BaseBulletinBoard board = m_Board;

                if (!from.InRange(board.GetWorldLocation(), 2) || !from.InLOS(board))
                {
                    from.LocalOverheadMessage(MessageType.Regular, 0x3B2, 1019045); // I can't reach that.
                    return;
                }

                text = text.Trim();

                if (text.Length > 255)
                {
                    text = text.Substring(0, 255);
                }

                if (text.Length > 0)
                {
                    board.Title = text;
                }

                from.SendGump(new BulletinBoardGump(from, board, page));
            }
Пример #2
0
            public override void OnResponse(Mobile from, string text)
            {
                int page = m_Page;
                BaseBulletinBoard board = m_Board;

                if (!from.InRange(board.GetWorldLocation(), 2) || !from.InLOS(board))
                {
                    from.LocalOverheadMessage(MessageType.Regular, 0x3B2, 1019045); // I can't reach that.
                    return;
                }

                text = text.Trim();

                if (text.Length > 255)
                {
                    text = text.Substring(0, 255);
                }

                if (text.Length > 0)
                {
                    BulletinBoardMessage message = new BulletinBoardMessage(DateTime.Now, from, text);

                    if (m_Greeting)
                    {
                        board.Greeting = message;
                    }
                    else
                    {
                        board.Messages.Add(message);

                        if (board.Messages.Count > 50)
                        {
                            board.Messages.RemoveAt(0);

                            if (page > 0)
                            {
                                --page;
                            }
                        }
                    }
                }

                from.SendGump(new BulletinBoardGump(from, board, page));
            }
Пример #3
0
        public override void OnResponse(NetState sender, RelayInfo info)
        {
            int               page  = m_Page;
            Mobile            from  = m_From;
            BaseBulletinBoard board = m_Board;

            if (!from.InRange(board.GetWorldLocation(), 2) || !from.InLOS(board))
            {
                from.LocalOverheadMessage(MessageType.Regular, 0x3B2, 1019045); // I can't reach that.
                return;
            }

            switch (info.ButtonID)
            {
            case 1:     // Post message
            {
                if (m_Board.BannedPlayers != null && m_Board.BannedPlayers.Contains(from))
                {
                    from.SendGump(new BulletinBoardGump(from, board, page));
                    from.SendAsciiMessage("You are banned from posting on this board");
                }
                else
                {
                    from.Prompt = new BaseBulletinBoard.PostPrompt(page, board, false);
                    from.SendLocalizedMessage(1062397);         // Please enter your message:
                }

                break;
            }

            case 2:     // Set title
            {
                if (from.AccessLevel >= AccessLevel.GameMaster)
                {
                    from.Prompt = new BaseBulletinBoard.SetTitlePrompt(page, board);
                    from.SendLocalizedMessage(1062402);         // Enter new title:
                }

                break;
            }

            case 3:     // Post greeting
            {
                if (from.AccessLevel >= AccessLevel.GameMaster)
                {
                    from.Prompt = new BaseBulletinBoard.PostPrompt(page, board, true);
                    from.SendLocalizedMessage(1062404);         // Enter new greeting (this will always be the first post):
                }

                break;
            }

            case 4:     // Scroll up
            {
                if (page == 0)
                {
                    page = board.Messages.Count;
                }
                else
                {
                    page -= 1;
                }

                from.SendGump(new BulletinBoardGump(from, board, page));

                break;
            }

            case 5:     // Scroll down
            {
                page += 1;
                page %= board.Messages.Count + 1;

                from.SendGump(new BulletinBoardGump(from, board, page));

                break;
            }

            case 6:     // Banish poster
            {
                if (from.AccessLevel >= AccessLevel.GameMaster)
                {
                    if (page >= 1 && page <= board.Messages.Count)
                    {
                        BulletinBoardMessage message = board.Messages[page - 1];
                        Mobile poster = message.Poster;

                        if (poster == null)
                        {
                            from.SendGump(new BulletinBoardGump(from, board, page));
                            return;
                        }

                        if (poster.AccessLevel > AccessLevel.Player && from.AccessLevel <= poster.AccessLevel)
                        {
                            from.SendLocalizedMessage(501354);         // Uh oh...a bigger boot may be required.
                        }
                        else if (poster is PlayerVendor)
                        {
                            from.SendLocalizedMessage(501351);         // You cannot eject a vendor.
                        }
                        else if (m_Board.BannedPlayers != null && m_Board.BannedPlayers.Contains(poster))
                        {
                            from.SendLocalizedMessage(501356);         // This person is already banned!
                        }
                        else if (poster is BaseCreature && ((BaseCreature)poster).NoHouseRestrictions)
                        {
                            from.SendLocalizedMessage(1062040);         // You cannot ban that.
                        }
                        else
                        {
                            if (m_Board.BannedPlayers == null)
                            {
                                m_Board.BannedPlayers = new ArrayList();
                            }

                            m_Board.BannedPlayers.Add(poster);

                            from.SendAsciiMessage("That person can no longer post messages on this board");
                        }
                    }

                    from.SendGump(new BulletinBoardGump(from, board, page));
                }

                break;
            }

            case 7:     // Delete message
            {
                if (from.AccessLevel >= AccessLevel.GameMaster)
                {
                    if (page >= 1 && page <= board.Messages.Count)
                    {
                        board.Messages.RemoveAt(page - 1);
                    }

                    from.SendGump(new BulletinBoardGump(from, board, 0));
                }

                break;
            }

            case 8:     // Post props
            {
                if (from.AccessLevel >= AccessLevel.GameMaster)
                {
                    BulletinBoardMessage message = board.Greeting;

                    if (page >= 1 && page <= board.Messages.Count)
                    {
                        message = board.Messages[page - 1];
                    }

                    from.SendGump(new BulletinBoardGump(from, board, page));
                    from.SendGump(new PropertiesGump(from, message));
                }

                break;
            }
            }
        }