コード例 #1
0
ファイル: Misc.cs プロジェクト: KroneckerX/WCell
        //[Initialization(InitializationPass.Second, Name = "Misc Packet Definition")]
        public static void Init()
        {
            var msgSegment = new PacketSegment(SimpleType.CString, "Message");
            var targetMsgSegment = new ComplexPacketSegment(
                new PacketSegment(SimpleType.CString, "Target"),
                new PacketSegment(SimpleType.CString, "Message")
            );

            SwitchPacketSegment msgTypeSwitch;
            PacketAnalyzer.RegisterDefintion(new PacketDefinition(RealmServerOpCode.CMSG_MESSAGECHAT,
                msgTypeSwitch = new SwitchPacketSegment(SimpleType.UInt, "Type", (segment, parser) => {
                    parser.ParsedSegments.SetCurrentMoveNext((ChatMsgType)parser.Packet.ReadUInt32());
                    },
                    new Condition(ComparisonType.Equal, ChatMsgType.Say, msgSegment),
                    new Condition(ComparisonType.Equal, ChatMsgType.Yell, msgSegment),
                    new Condition(ComparisonType.Equal, ChatMsgType.Emote, msgSegment),
                    new Condition(ComparisonType.Equal, ChatMsgType.Party, msgSegment),
                    new Condition(ComparisonType.Equal, ChatMsgType.Raid, msgSegment),
                    new Condition(ComparisonType.Equal, ChatMsgType.RaidLeader, msgSegment),
                    new Condition(ComparisonType.Equal, ChatMsgType.RaidWarn, msgSegment),
                    new Condition(ComparisonType.Equal, ChatMsgType.Whisper, targetMsgSegment),
                    new Condition(ComparisonType.Equal, ChatMsgType.Channel, targetMsgSegment)
                ),
                new PacketSegment(SimpleType.UInt, "Language", (segment, parser) => {
                    parser.ParsedSegments.SetCurrentMoveNext((ChatLanguage)parser.Packet.ReadUInt32());
                }),
                new ConditionalPacketSegment(msgTypeSwitch)
            ));
        }
コード例 #2
0
ファイル: Misc.cs プロジェクト: NecroSharper/WCell
        //[Initialization(InitializationPass.Second, Name = "Misc Packet Definition")]
        public static void Init()
        {
            var msgSegment       = new PacketSegment(SimpleType.CString, "Message");
            var targetMsgSegment = new ComplexPacketSegment(
                new PacketSegment(SimpleType.CString, "Target"),
                new PacketSegment(SimpleType.CString, "Message")
                );

            SwitchPacketSegment msgTypeSwitch;

            PacketAnalyzer.RegisterDefintion(new PacketDefinition(RealmServerOpCode.CMSG_MESSAGECHAT,
                                                                  msgTypeSwitch = new SwitchPacketSegment(SimpleType.UInt, "Type", (segment, parser) => {
                parser.ParsedSegments.SetCurrentMoveNext((ChatMsgType)parser.Packet.ReadUInt32());
            },
                                                                                                          new Condition(ComparisonType.Equal, ChatMsgType.Say, msgSegment),
                                                                                                          new Condition(ComparisonType.Equal, ChatMsgType.Yell, msgSegment),
                                                                                                          new Condition(ComparisonType.Equal, ChatMsgType.Emote, msgSegment),
                                                                                                          new Condition(ComparisonType.Equal, ChatMsgType.Party, msgSegment),
                                                                                                          new Condition(ComparisonType.Equal, ChatMsgType.Raid, msgSegment),
                                                                                                          new Condition(ComparisonType.Equal, ChatMsgType.RaidLeader, msgSegment),
                                                                                                          new Condition(ComparisonType.Equal, ChatMsgType.RaidWarn, msgSegment),
                                                                                                          new Condition(ComparisonType.Equal, ChatMsgType.Whisper, targetMsgSegment),
                                                                                                          new Condition(ComparisonType.Equal, ChatMsgType.Channel, targetMsgSegment)
                                                                                                          ),
                                                                  new PacketSegment(SimpleType.UInt, "Language", (segment, parser) => {
                parser.ParsedSegments.SetCurrentMoveNext((ChatLanguage)parser.Packet.ReadUInt32());
            }),
                                                                  new ConditionalPacketSegment(msgTypeSwitch)
                                                                  ));
        }
コード例 #3
0
        public void Clear()
        {
            PacketSegment n = m_segments;

            while (n != null)
            {
                n.m_buffer = null;

                n = n.m_next;
            }

            m_segments = null;
        }
コード例 #4
0
        public System.Collections.IEnumerator GetEnumerator()
        {
            PacketSegment n = m_segments;

            while (n != null)
            {
                for (int i = 0; i < n.m_count; ++i)
                {
                    yield return(n.m_buffer[i]);
                }

                n = n.m_next;
            }
        }
コード例 #5
0
ファイル: socketconnect_base.cs プロジェクト: midgithub/notes
        private void AllocSegment()
        {
            PacketSegment n = new PacketSegment();

            n.m_count  = 0;
            n.m_buffer = new Packet[m_capacity];
            if (m_segments != null)
            {
                m_segments.m_next = n;
            }
            else
            {
                m_segments = n;
            }
        }
コード例 #6
0
        private void AllocSegment()
        {
            PacketSegment n = new PacketSegment();

            n.m_count  = 0;
            n.m_buffer = new Packet[m_capacity];
            for (int i = 0; i < m_capacity; ++i)
            {
                n.m_buffer[i] = new Packet();
            }

            if (m_segments != null)
            {
                m_segments.m_next = n;
            }

            m_segments = n;
        }