internal IPacketHandler GetHandler(PacketCmdC2S cmd, Channel channelID)
 {
     if (_handlerTable.ContainsKey(cmd))
     {
         var handlers = _handlerTable[cmd];
         if (handlers.ContainsKey(channelID))
             return handlers[channelID];
     }
     return null;
 }
示例#2
0
 internal IPacketHandler GetHandler(PacketCmdC2S cmd, Channel channelID)
 {
     if (_handlerTable.ContainsKey(cmd))
     {
         var handlers = _handlerTable[cmd];
         if (handlers.ContainsKey(channelID))
         {
             return(handlers[channelID]);
         }
     }
     return(null);
 }
        public void registerHandler(IPacketHandler handler, PacketCmdC2S pktcmd, Channel channel)
        {

            if (!_handlerTable.ContainsKey(pktcmd))
                _handlerTable.Add(pktcmd, new Dictionary<Channel, IPacketHandler>());

            var dict = _handlerTable[pktcmd];
            if (!dict.ContainsKey(channel))
                dict.Add(channel, handler);
            else
                dict[channel] = handler;
        }
示例#4
0
        public void registerHandler(IPacketHandler handler, PacketCmdC2S pktcmd, Channel channel)
        {
            if (!_handlerTable.ContainsKey(pktcmd))
            {
                _handlerTable.Add(pktcmd, new Dictionary <Channel, IPacketHandler>());
            }

            var dict = _handlerTable[pktcmd];

            if (!dict.ContainsKey(channel))
            {
                dict.Add(channel, handler);
            }
            else
            {
                dict[channel] = handler;
            }
        }
示例#5
0
 public SkillUpPacket(byte[] data)
 {
     var reader = new BinaryReader(new MemoryStream(data));
     cmd = (PacketCmdC2S)reader.ReadByte();
     netId = reader.ReadInt32();
     skill = reader.ReadByte();
 }
示例#6
0
 public HeartBeat(byte[] data)
 {
     var reader = new BinaryReader(new MemoryStream(data));
     cmd = (PacketCmdC2S)reader.ReadByte();
     netId = reader.ReadInt32();
     receiveTime = reader.ReadSingle();
     ackTime = reader.ReadSingle();
     reader.Close();
 }
示例#7
0
        public int targetNetId; // netId on which the player clicked

        public Click(byte[] data)
        {
            var reader = new BinaryReader(new MemoryStream(data));
            cmd = (PacketCmdC2S)reader.ReadByte();
            netId = reader.ReadInt32();
            zero = reader.ReadInt32();
            targetNetId = reader.ReadInt32();
        }
示例#8
0
        public ChatMessage(byte[] data)
        {
            var reader = new BinaryReader(new MemoryStream(data));
            cmd = (PacketCmdC2S)reader.ReadByte();
            playerId = reader.ReadInt32();
            botNetId = reader.ReadInt32();
            isBotMessage = reader.ReadByte();
            type = (ChatType)reader.ReadInt32();
            unk1 = reader.ReadInt32();
            length = reader.ReadInt32();
            unk2 = reader.ReadBytes(32);

            var bytes = new List<byte>();
            for (var i = 0; i < length; i++)
                bytes.Add(reader.ReadByte());
            msg = Encoding.Default.GetString(bytes.ToArray());
        }
示例#9
0
 public MovementReq(byte[] data)
 {
     var baseStream = new MemoryStream(data);
     var reader = new BinaryReader(baseStream);
     cmd = (PacketCmdC2S)reader.ReadByte();
     netIdHeader = reader.ReadInt32();
     type = (MoveType)reader.ReadByte();
     x = reader.ReadSingle();
     y = reader.ReadSingle();
     targetNetId = reader.ReadInt32();
     coordCount = reader.ReadByte();
     netId = reader.ReadInt32();
     moveData = reader.ReadBytes((int)(reader.BaseStream.Length - reader.BaseStream.Position));
     reader.Close();
 }
示例#10
0
            public ViewRequest(byte[] data)
            {
                var reader = new BinaryReader(new MemoryStream(data));
                cmd = (PacketCmdC2S)reader.ReadByte();
                netId = reader.ReadInt32();
                x = reader.ReadSingle();
                zoom = reader.ReadSingle();
                y = reader.ReadSingle();
                y2 = reader.ReadSingle();
                width = reader.ReadInt32();
                height = reader.ReadInt32();
                unk2 = reader.ReadInt32();
                requestNo = reader.ReadByte();

                reader.Close();
            }
示例#11
0
        public int targetNetId; // If 0, use coordinates, else use target net id

        public CastSpell(byte[] data)
        {
            var reader = new BinaryReader(new MemoryStream(data));
            cmd = (PacketCmdC2S)reader.ReadByte();
            netId = reader.ReadInt32();
            spellSlotType = reader.ReadByte();
            spellSlot = reader.ReadByte();
            x = reader.ReadSingle();
            y = reader.ReadSingle();
            x2 = reader.ReadSingle();
            y2 = reader.ReadSingle();
            targetNetId = reader.ReadInt32();
        }
示例#12
0
 public SwapItems(byte[] data)
 {
     var reader = new BinaryReader(new MemoryStream(data));
     cmd = (PacketCmdC2S)reader.ReadByte();
     netId = reader.ReadInt32();
     slotFrom = reader.ReadByte();
     slotTo = reader.ReadByte();
 }
示例#13
0
 public EmotionPacket(byte[] data)
 {
     var reader = new BinaryReader(new MemoryStream(data));
     cmd = (PacketCmdC2S)reader.ReadByte();
     netId = reader.ReadInt32();
     id = reader.ReadByte();
 }