コード例 #1
0
        public virtual void AddConversation(QuestConversation conv)
        {
            conv.System = this;

            if (conv.Logged)
            {
                m_Conversations.Add(conv);
            }

            m_From.CloseGump(typeof(QuestItemInfoGump));
            m_From.CloseGump(typeof(QuestObjectivesGump));
            m_From.CloseGump(typeof(QuestConversationsGump));

            if (conv.Logged)
            {
                m_From.SendGump(new QuestConversationsGump(m_Conversations));
            }
            else
            {
                m_From.SendGump(new QuestConversationsGump(conv));
            }

            if (conv.Info != null)
            {
                m_From.SendGump(new QuestItemInfoGump(conv.Info));
            }
        }
コード例 #2
0
        public static QuestConversation DeserializeConversation(Type[] referenceTable, GenericReader reader)
        {
            int encoding = reader.ReadEncodedInt();

            switch (encoding)
            {
            default:
            case 0x00:     // null
            {
                return(null);
            }

            case 0x01:
            {
                Type type = ReadType(referenceTable, reader);

                QuestConversation conv = Construct(type) as QuestConversation;

                if (conv != null)
                {
                    conv.BaseDeserialize(reader);
                }

                return(conv);
            }
            }
        }
コード例 #3
0
        public QuestConversationsGump(ArrayList conversations) : base(30, 50)
        {
            m_Conversations = conversations;

            Closable = false;

            AddPage(0);

            AddImage(349, 10, 9392);
            AddImageTiled(349, 130, 100, 120, 9395);
            AddImageTiled(149, 10, 200, 140, 9391);
            AddImageTiled(149, 250, 200, 140, 9397);
            AddImage(349, 250, 9398);
            AddImage(35, 10, 9390);
            AddImageTiled(35, 150, 120, 100, 9393);
            AddImage(35, 250, 9396);

            AddHtmlLocalized(110, 60, 200, 20, 1049069, White, false, false); // <STRONG>Conversation Event</STRONG>

            AddImage(65, 14, 10102);
            AddImageTiled(81, 14, 349, 17, 10101);
            AddImage(426, 14, 10104);

            AddImageTiled(55, 40, 388, 323, 2624);
            AddAlphaRegion(55, 40, 388, 323);

            AddImageTiled(75, 90, 200, 1, 9101);
            AddImage(75, 58, 9781);
            AddImage(380, 45, 223);

            AddButton(220, 335, 2313, 2312, 1, GumpButtonType.Reply, 0);
            AddImage(0, 0, 10440);

            AddPage(1);

            for (int i = 0; i < conversations.Count; ++i)
            {
                QuestConversation conv = (QuestConversation)conversations[conversations.Count - 1 - i];

                if (i > 0)
                {
                    AddButton(65, 366, 9909, 9911, 0, GumpButtonType.Page, 1 + i);
                    AddHtmlLocalized(90, 367, 50, 20, 1043354, Black, false, false); // Previous

                    AddPage(1 + i);
                }

                AddHtmlObject(70, 110, 365, 220, conv.Message, LightGreen, false, true);

                if (i > 0)
                {
                    AddButton(420, 366, 9903, 9905, 0, GumpButtonType.Page, i);
                    AddHtmlLocalized(370, 367, 50, 20, 1043353, Black, false, false); // Next
                }
            }
        }
コード例 #4
0
        public override void OnResponse(NetState sender, RelayInfo info)
        {
            for (int i = m_Conversations.Count - 1; i >= 0; --i)
            {
                QuestConversation qc = (QuestConversation)m_Conversations[i];

                if (!qc.HasBeenRead)
                {
                    qc.HasBeenRead = true;
                    qc.OnRead();
                }
            }
        }
コード例 #5
0
        public static void Serialize(Type[] referenceTable, QuestConversation conv, GenericWriter writer)
        {
            if (conv == null)
            {
                writer.WriteEncodedInt(0x00);
            }
            else
            {
                writer.WriteEncodedInt(0x01);

                Write(conv.GetType(), referenceTable, writer);

                conv.BaseSerialize(writer);
            }
        }
コード例 #6
0
        public virtual void BaseDeserialize(GenericReader reader)
        {
            Type[] referenceTable = this.TypeReferenceTable;

            int version = reader.ReadEncodedInt();

            switch (version)
            {
            case 0:
            {
                int count = reader.ReadEncodedInt();

                m_Objectives = new ArrayList(count);

                for (int i = 0; i < count; ++i)
                {
                    QuestObjective obj = QuestSerializer.DeserializeObjective(referenceTable, reader);

                    if (obj != null)
                    {
                        obj.System = this;
                        m_Objectives.Add(obj);
                    }
                }

                count = reader.ReadEncodedInt();

                m_Conversations = new ArrayList(count);

                for (int i = 0; i < count; ++i)
                {
                    QuestConversation conv = QuestSerializer.DeserializeConversation(referenceTable, reader);

                    if (conv != null)
                    {
                        conv.System = this;
                        m_Conversations.Add(conv);
                    }
                }

                break;
            }
            }

            ChildDeserialize(reader);
        }
コード例 #7
0
        public virtual void ShowQuestConversation()
        {
            if (m_Conversations.Count > 0)
            {
                m_From.CloseGump(typeof(QuestItemInfoGump));
                m_From.CloseGump(typeof(QuestObjectivesGump));
                m_From.CloseGump(typeof(QuestConversationsGump));

                m_From.SendGump(new QuestConversationsGump(m_Conversations));

                QuestConversation last = (QuestConversation)m_Conversations[m_Conversations.Count - 1];

                if (last.Info != null)
                {
                    m_From.SendGump(new QuestItemInfoGump(last.Info));
                }
            }
        }
コード例 #8
0
 public QuestConversationsGump(QuestConversation conv) : this(BuildList(conv))
 {
 }