示例#1
0
        public PGumpButton(GServerGump gump, int buttonID)
            : base((byte)177)
        {
            this.m_Stream.Write(gump.Serial);
            this.m_Stream.Write(gump.DialogID);
            this.m_Stream.Write(buttonID);
            ArrayList dataStore1 = Engine.GetDataStore();
            ArrayList dataStore2 = Engine.GetDataStore();

            Gump[] array = gump.Children.ToArray();
            for (int index = 0; index < array.Length; ++index)
            {
                if (array[index] is IRelayedSwitch)
                {
                    IRelayedSwitch relayedSwitch = (IRelayedSwitch)array[index];
                    if (relayedSwitch.Active)
                    {
                        dataStore1.Add((object)relayedSwitch.RelayID);
                    }
                }
                else if (array[index] is GServerTextBox)
                {
                    dataStore2.Add((object)array[index]);
                }
            }
            this.m_Stream.Write(dataStore1.Count);
            for (int index = 0; index < dataStore1.Count; ++index)
            {
                this.m_Stream.Write((int)dataStore1[index]);
            }
            this.m_Stream.Write(dataStore2.Count);
            for (int index = 0; index < dataStore2.Count; ++index)
            {
                GServerTextBox gserverTextBox = (GServerTextBox)dataStore2[index];
                this.m_Stream.Write((short)gserverTextBox.RelayID);
                this.m_Stream.Write((short)gserverTextBox.String.Length);
                this.m_Stream.WriteUnicode(gserverTextBox.String);
            }
            Engine.ReleaseDataStore(dataStore2);
            Engine.ReleaseDataStore(dataStore1);
        }
示例#2
0
        public PGumpButton(GServerGump gump, int buttonID) : base(0xb1, "Gump Response")
        {
            base.m_Stream.Write(gump.Serial);
            base.m_Stream.Write(gump.DialogID);
            base.m_Stream.Write(buttonID);
            ArrayList dataStore = Engine.GetDataStore();
            ArrayList list      = Engine.GetDataStore();

            Gump[] gumpArray = gump.Children.ToArray();
            for (int i = 0; i < gumpArray.Length; i++)
            {
                if (gumpArray[i] is IRelayedSwitch)
                {
                    IRelayedSwitch switch2 = (IRelayedSwitch)gumpArray[i];
                    if (switch2.Active)
                    {
                        dataStore.Add(switch2.RelayID);
                    }
                }
                else if (gumpArray[i] is GServerTextBox)
                {
                    list.Add(gumpArray[i]);
                }
            }
            base.m_Stream.Write(dataStore.Count);
            for (int j = 0; j < dataStore.Count; j++)
            {
                base.m_Stream.Write((int)dataStore[j]);
            }
            base.m_Stream.Write(list.Count);
            for (int k = 0; k < list.Count; k++)
            {
                GServerTextBox box = (GServerTextBox)list[k];
                base.m_Stream.Write((short)box.RelayID);
                base.m_Stream.Write((short)box.String.Length);
                base.m_Stream.WriteUnicode(box.String);
            }
            Engine.ReleaseDataStore(list);
            Engine.ReleaseDataStore(dataStore);
        }