예제 #1
0
            public override void OnResponse(NetState sender, RelayInfo info)
            {
                Mobile m = sender.Mobile;

                switch (info.ButtonID)
                {
                case 0:
                {
                    m.CloseGump(typeof(CommandInfoGump));
                    break;
                }

                case 1:
                {
                    if (m_Page > 0)
                    {
                        m.SendGump(new CommandListGump(m_Page - 1, m, m_List));
                    }

                    break;
                }

                case 2:
                {
                    if ((m_Page + 1) * EntriesPerPage < m_SortedHelpInfo.Count)
                    {
                        m.SendGump(new CommandListGump(m_Page + 1, m, m_List));
                    }

                    break;
                }

                default:
                {
                    int v = info.ButtonID - 3;

                    if (v >= 0 && v < m_List.Count)
                    {
                        CommandInfo c = m_List[v];

                        if (m.AccessLevel >= c.AccessLevel)
                        {
                            m.SendGump(new CommandInfoGump(c));
                            m.SendGump(new CommandListGump(m_Page, m, m_List));
                        }
                        else
                        {
                            m.SendMessage("You no longer have access to that command.");
                            m.SendGump(new CommandListGump(m_Page, m, null));
                        }
                    }
                    break;
                }
                }
            }
예제 #2
0
            public CommandInfoGump(CommandInfo info, int width, int height)
                : base(300, 50)
            {
                AddPage(0);

                AddBackground(0, 0, width, height, 5054);

                //AddImageTiled( 10, 10, width - 20, 20, 2624 );
                //AddAlphaRegion( 10, 10, width - 20, 20 );
                //AddHtmlLocalized( 10, 10, width - 20, 20, header, headerColor, false, false );
                AddHtml(10, 10, width - 20, 20, Color(Center(info.Name), 0xFF0000), false, false);

                //AddImageTiled( 10, 40, width - 20, height - 80, 2624 );
                //AddAlphaRegion( 10, 40, width - 20, height - 80 );

                StringBuilder sb = new StringBuilder();

                sb.Append("Usage: ");
                sb.Append(info.Usage.Replace("<", "(").Replace(">", ")"));
                sb.Append("<BR>");

                string[] aliases = info.Aliases;

                if (aliases != null && aliases.Length != 0)
                {
                    sb.Append(String.Format("Alias{0}: ", aliases.Length == 1 ? "" : "es"));

                    for (int i = 0; i < aliases.Length; ++i)
                    {
                        if (i != 0)
                        {
                            sb.Append(", ");
                        }

                        sb.Append(aliases[i]);
                    }

                    sb.Append("<BR>");
                }

                sb.Append("AccessLevel: ");
                sb.Append(info.AccessLevel.ToString());
                sb.Append("<BR>");
                sb.Append("<BR>");

                sb.Append(info.Description);

                AddHtml(10, 40, width - 20, height - 80, sb.ToString(), false, true);

                //AddImageTiled( 10, height - 30, width - 20, 20, 2624 );
                //AddAlphaRegion( 10, height - 30, width - 20, 20 );
            }
예제 #3
0
 public CommandInfoGump(CommandInfo info)
     : this(info, 320, 200)
 {
 }
예제 #4
0
            public CommandListGump(int page, Mobile from, List <CommandInfo> list)
                : base(30, 30)
            {
                m_Page = page;

                if (list == null)
                {
                    m_List = new List <CommandInfo>();

                    foreach (CommandInfo c in m_SortedHelpInfo)
                    {
                        if (from.AccessLevel >= c.AccessLevel)
                        {
                            m_List.Add(c);
                        }
                    }
                }
                else
                {
                    m_List = list;
                }


                AddNewPage();

                if (m_Page > 0)
                {
                    AddEntryButton(20, ArrowLeftID1, ArrowLeftID2, 1, ArrowLeftWidth, ArrowLeftHeight);
                }
                else
                {
                    AddEntryHeader(20);
                }

                AddEntryHtml(160, Center(String.Format("Page {0} of {1}", m_Page + 1, (m_List.Count + EntriesPerPage - 1) / EntriesPerPage)));

                if ((m_Page + 1) * EntriesPerPage < m_List.Count)
                {
                    AddEntryButton(20, ArrowRightID1, ArrowRightID2, 2, ArrowRightWidth, ArrowRightHeight);
                }
                else
                {
                    AddEntryHeader(20);
                }

                int last = (int)AccessLevel.Player - 1;

                for (int i = m_Page * EntriesPerPage, line = 0; line < EntriesPerPage && i < m_List.Count; ++i, ++line)
                {
                    CommandInfo c = m_List[i];
                    if (from.AccessLevel >= c.AccessLevel)
                    {
                        if ((int)c.AccessLevel != last)
                        {
                            AddNewLine();

                            AddEntryHtml(20 + OffsetSize + 160, Color(c.AccessLevel.ToString(), 0xFF0000));
                            AddEntryHeader(20);
                            line++;
                        }

                        last = (int)c.AccessLevel;

                        AddNewLine();

                        AddEntryHtml(20 + OffsetSize + 160, c.Name);

                        AddEntryButton(20, ArrowRightID1, ArrowRightID2, 3 + i, ArrowRightWidth, ArrowRightHeight);
                    }
                }

                FinishPage();
            }