コード例 #1
0
        public override void handlePacket(int command, int length, sbyte[] data)
        {
            // sbyte[] to byte[]
            // (byte[])(Array) signed;

            // byte[] to sbyte[]
            // (sbyte[]) (Array) unsigned;

            var cmd = (ServerPacketTypes)command;

            Debug.Log("Packet Recieved: " + cmd + " " + command + " - " + length);

            // var udata = (byte[])(Array)data;


            if (command == 117)
            {
                lastPing = CurrentTimeMillis();
                streamClass.createPacket(5);
                streamClass.formatPacket();
            }

            if (cmd == ServerPacketTypes.SET_SERVER_INDEX)
            {
                ServerPacketHandler.InitiateServerInfo(data, length);
            }

            if (cmd == ServerPacketTypes.SET_SLEEP_IMAGE)
            {
                // var image = MainForm.GetSleepImage(udata);
            }

            if (cmd == ServerPacketTypes.SET_SKILLS)
            {
                //	Debug.Log("Before stats update");

                ServerPacketHandler.UpdatePlayerSkills(data, length);
                // Debug.Log("Player stats updated: " + MobManager.MyPlayer.StatCurrent[0] + " " + MobManager.MyPlayer.StatCurrent[1] + MobManager.MyPlayer.StatCurrent[2] + " " + MobManager.MyPlayer.StatCurrent[3] + " " + MobManager.MyPlayer.StatCurrent[4] + "...");
            }

            if (cmd == ServerPacketTypes.PLAYER_APPEARANCE_UPDATE)
            {
                ServerPacketHandler.UpdatePlayerAppearance(data, length);
            }

            if (cmd == ServerPacketTypes.PLAYER_POS_UPDATE)
            {
                ServerPacketHandler.UpdatePlayerPositionData(data, length);
            }

            if (cmd == ServerPacketTypes.NPC_POS_UPDATE)
            {
                ServerPacketHandler.UpdateNpcPositionData(data, length);
            }

            if (cmd == ServerPacketTypes.ITEM_POS_UPDATE)
            {
                ServerPacketHandler.UpdateItemPositionData(data, length);
            }


            if (cmd == ServerPacketTypes.SET_INVENTORY_ITEMS)
            {
                ServerPacketHandler.SetInventoryItems(data, length);
            }

            if (cmd == ServerPacketTypes.RECIEVE_PRIVATE_MESSAGE)
            {
                var tmpMsg = ChatMessage.bytesToString(data, 1, length - 2);

                // string tmpBytes = "[" + string.Join(",", data) + "]";
            }
        }