void ClientConnection_DisconnectedEvent(object sender, EventArgs e) { //remove user try { if (CurrentAccounts.TryRemove(session, out var account) && account.isLogin) { GameRoomHandle.LeaveRoom(CurrentAccount); //GameRoomEvent.LeaveRoom(this, true, 0x1); //HandleLogout(this.CurrentAccount); } } catch { Log.Warning("Client IP: {0} disconnected,But the remove fail", this); } Log.Info("Client IP: {0} disconnected", this); this.Dispose(); }
public override void HandleReceived(byte[] data) { //UnknownHandle.Handle_FF0405(this, reader, 0x00); PacketReader reader = new PacketReader(data, 0); byte header = 0; ushort opcode = 0; byte subopcode = 0; reader.Decrypt(); header = reader.ReadByte(); opcode = reader.ReadLEUInt16(); //Packet Opcode /*switch (opcode) * { * case 465: * ushort unk1 = reader.ReadLEUInt16(); * subopcode = reader.ReadByte(); * Console.WriteLine("header: {0}, opcode: {1}", header, opcode); * break; * case 450: * ushort unk2 = reader.ReadLEUInt16(); * subopcode = reader.ReadByte(); * Console.WriteLine("header: {0}, opcode: {1}", header, opcode); * break; * default: * Console.WriteLine("header: {0}, opcode: {1}, subopcode: {2}", header, opcode, subopcode); * break; * }*/ if (opcode == 465 || opcode == 450 || opcode == 973 || opcode == 989) { Console.WriteLine("header: {0}, opcode: {1}", header, opcode); } else { ushort unk1 = reader.ReadLEUInt16(); subopcode = reader.ReadByte(); Console.WriteLine("header: {0}, opcode: {1}, subopcode: {2}", header, opcode, subopcode); } switch (opcode) { case 450: //0x1C2 GameRoomHandle.Handle_ChatToAll(this, reader); break; case 465: //0x1D1 GameRoomHandle.Handle_SendPlayerPosition(this, reader); break; case 705: //0x2C1 if (subopcode == 0x00) { GameRoomHandle.Handle_DualRequest(this, reader); } else if (subopcode == 0x01) { GameRoomHandle.Handle_DualBattleCancel(this, reader); } else if (subopcode == 0x03) { GameRoomHandle.Handle_DualBattledCancel(this, reader); } else if (subopcode == 0x05) { GameRoomHandle.Handle_DualConfirm(this, reader); } break; case 865: //0x361 if (subopcode == 0x00) { LoginHandle.Handle_LoginCheck(this, reader); } else if (subopcode == 0x01) { LoginHandle.Handle_FirstLoginCheck(this, reader); } else if (subopcode == 0x02) { LoginHandle.Handle_LoginDisplayCharacter(this, reader); } else if (subopcode == 0x03) { LoginHandle.Handle_LoginNewCharacter(this, reader); } else if (subopcode == 0x04) { LoginHandle.Handle_LoginDeleteCharacter(this, reader); } break; case 825: //0x339 if (subopcode == 0x02) { LoginHandle.Handle_LoginCheckGlobalID(this, reader); LoginHandle.Handle_LoginUnknown1(this, reader); LoginHandle.Handle_LoginUnknown2(this, reader); LoginHandle.Handle_LoginUnknown3(this, reader); LoginHandle.Handle_LoginUnknown4(this, reader); LoginHandle.Handle_LoginUnknown5(this, reader); LoginHandle.Handle_LoadAllItem(this, reader); LoginHandle.Handle_LoginReadDataCompleted(this, reader); } break; case 922: //0x39A if (subopcode == 0x78) { LoginHandle.Handle_Logout(this, reader); } break; case 973: //0x3CD GameRoomHandle.Handle_DualMove(this, reader); break; case 989: //0x3DD GameRoomHandle.Handle_ActToAll(this, reader); break; case 1252: //0x4E4 LoginHandle.Handle_MoveItem(this, reader); break; case 1309: //0x51D if (subopcode == 0x00) { GameRoomHandle.Handle_TradeStart(this, reader); } else if (subopcode == 0x01) { GameRoomHandle.Handle_TradeLoadItem(this, reader); } else if (subopcode == 0x02) { GameRoomHandle.Handle_TradeConfirm(this, reader); } else if (subopcode == 0x04) { GameRoomHandle.Handle_TradeCancel(this, reader); } break; case 1329: //0x531 GameRoomHandle.Handle_WearItem(this, reader); break; } /* * PacketReader reader = new PacketReader(data, 0); * byte header = 0; * ushort opcode = 0; * byte subopcode = 0; * * if (this.CurrentAccount != null && this.CurrentAccount.isLogin) * { * reader.Decrypt(this.CurrentAccount.EncryptKey, CurrentAccount.XorKey); * header = reader.ReadByte(); //Packet Opcode/Level * if (header == 0xFF) * { * opcode = reader.ReadLEUInt16(); //Packet Opcode * if (reader.Size > 2) * { * subopcode = reader.ReadByte(); * reader.Offset -= 1; * } * } * else * { * opcode = header; //Packet Opcode * if (opcode == 0x74 && reader.Size > 2) * { * subopcode = reader.ReadByte(); * //reader.Offset -= 1; * } * } * //Console.WriteLine("header 0x{0:X2}", header); * } * else * { * opcode = reader.ReadByte(); //Packet Opcode/Level * } * * byte last = reader.Buffer.Reverse().Take(1).ToArray()[0]; * //Log.LogFile = "log"; * switch (opcode) * { * case 15: //0x0F * //Console.WriteLine("LoginHandle_Request Login"); * LoginHandle.Handle_LoginCheck(this, reader); * break; * case 17: //0x11 * //Console.WriteLine("ECC Public Key"); * LoginHandle.Handle_GetClientKey(this, reader); * break; * case 1: //0x01 * //Console.WriteLine("isLogin true"); * CurrentAccount.isLogin = true; * LoginHandle.Handle_LoginSuccess(this, reader, last); * break; * case 8: //0x08 * LoginHandle.Handle_NOTIFY_MY_UDP(this, reader, last); * break; * case 0x0A: * //UDPOK * break; * case 0x19: * //Console.WriteLine("Bad User"); * GMCommandHandle.Handle_ClientCheckAutoBan(this, reader, last); * break; * case 27: //0x1B nickname * //Console.WriteLine("GetNickName"); * LoginHandle.Handle_GetNickName(this, reader, last); * break; * case 0x1D: * LobbyHandle.Handle_GetUserEXPInfo(this, reader, last); * break; * case 0x1F: * LobbyHandle.Handle_GetUserItemCollectionPointInfo(this, reader, last); * break; * case 0x21: * LobbyHandle.Handle_GetUserItemCollectionItemInfo(this, reader, last); * break; * case 0x23: * LobbyHandle.Handle_SetItemCollectionShowItem(this, reader, last); * break; * case 59: //0x3B * //Console.WriteLine("3B80"); * UnknownHandle.Handle_3B80(this, last); * break; * case 0x3D: * //Console.WriteLine("ItemOnOff"); * MyRoomHandle.Handle_ItemOnOff(this, reader, last); * break; * case 75: //0x4B * //Console.WriteLine("ENTER_NEW_NICKNAME"); * FirstLoginHandle.Handle_SetNewNickName(this, reader, last); * break; * case 91: //0x5B * //Console.WriteLine("itemMsgPop"); * MyRoomHandle.Handle_ItemMsgPop(this, reader, last); * break; * case 100: //0x64 * //Console.WriteLine("MyRoomHandle_Handle_MyroomGetAllItem_6400"); * MyRoomHandle.Handle_MyroomGetAllItem(this, reader, last); * break; * case 101: //0x65 * //Console.WriteLine("65a2"); * UnknownHandle.Handle_65A2(this, last); * break; * case 0x66: //102 * MyRoomHandle.Handle_ActiveFuncItemOne(this, reader, last); * break; * case 108: //0x6C * //Console.WriteLine("LoginHandle_GetCurrentAvatarInfo_6C0104"); * LoginHandle.Handle_GetCurrentAvatarInfo(this, reader, last); * break; * case 110: //0x6E * //Console.WriteLine("LoginHandle_6E10"); * LoginHandle.Handle_6E(this, last); * break; * case 112: //0x70 * //Console.WriteLine("Handle_SelectStartCharacter"); * FirstLoginHandle.Handle_SelectStartCharacter(this, reader, last); * break; * case 114: //0x72 * //Console.WriteLine("HandleEndGamePage"); * LobbyHandle.Handle_ShowPage(this, reader, last); * break; * case 116: //0x74 * if (subopcode == 0x00) * { * //Log.Info("GetCommunityAgentServer"); * LoginHandle.Handle_GetCommunityAgentServer(this, last); * } * else if (subopcode == 0x02) * { * //Log.Info("AddFriend"); * CommunityHandle.Handle_AddFriend(this, reader, last); * } * else if(subopcode == 0x05) * { * //Log.Info("GetFriendListAccepted"); * CommunityHandle.Handle_GetFriendListAccepted(this, last); * } * else if (subopcode == 0x08) * { * //Log.Info("AcceptFriend"); * CommunityHandle.Handle_AcceptFriend(this, reader, last); * } * else if (subopcode == 0x0B) * { * Log.Info("DeclineFriend"); * CommunityHandle.Handle_DeclineFriend(this, reader, last); * } * else if (subopcode == 0x0E) * { * //Log.Info("blockFriend"); * CommunityHandle.Handle_BlockFriend(this, reader, last); * } * else if (subopcode == 0x11) * { * //Log.Info("UnblockFriend"); * CommunityHandle.Handle_UnBlockFriend(this, reader, last); * } * else if (subopcode == 0x14) * { * //Log.Info("DeleteFriend"); * CommunityHandle.Handle_DeleteFriend(this, reader, last); * } * else if (subopcode == 0x1A) * { * Log.Info("cancelAddFriend"); * CommunityHandle.Handle_CancelAddFriend(this, reader, last); * } * else if (subopcode == 0x1D) * { * //Log.Info("GetRequestedToMe"); * CommunityHandle.Handle_GetRequestedToMe(this, last); * } * else if (subopcode == 0x1F) * { * //Log.Info("FriendGroupOP"); * CommunityHandle.Handle_GetFriendGroup(this, reader, last); * } * else if (subopcode == 0x22) * { * //Log.Info("GroupMoveMember"); * CommunityHandle.Handle_GroupMoveMember(this, reader, last); * } * else if (subopcode == 0x26) * { * Log.Info("CommunityAgentServer_74 26 10"); * CommunityHandle.Handle_0x7426(this, last); * } * else if (subopcode == 0x28) * { * Log.Info("CommunityAgentServer_74 28 00 20"); * CommunityHandle.Handle_0x7428(this, last); * } * else * { * Log.Info("Unhandle sopcode: 0x74 0x{0:X2} | {1}", subopcode, Utility.ByteArrayToString(reader.Buffer)); * //LogHelp.Logging("Unhandle sopcode: 0x74 " + ByteArrayToString(hPacket, hPacket.Length)); * } * break; * case 64: //0x40 * case 117: //0x75 * //Console.WriteLine("ping? 0x{0:X2} 0x{1:X2}", opcode, subopcode); * LobbyHandle.HandlePingTime(this, last); * break; * case 0x7C: * CommandHandle.Handle_UseShoutItem(this, reader, last); * break; * case 0x8A: //排名 * RankHandle.Handle_GetRankInfo(this, reader, last); * break; * case 0x8B: //排名 * RankHandle.Handle_SearchRank(this, reader, last); * break; * case 0x8E: //排名 * RankHandle.Handle_GetMyRankInfo(this, reader, last); * break; * case 0x90: * //Talesbook * LobbyHandle.Handle_GetUserInfo(this, reader, last); * break; * case 0x92: * LobbyHandle.Handle_SetGameOption(this, reader, last); * break; * case 263: //0x107 * //usp_CM_getUserAlarmInfo * CommunityHandle.Handle_GetUserAlarmInfo(this, last); * break; * case 308: //0x134 eServer_GET_ANIMAL_AVATAR_ACK? * //Console.WriteLine("FF3401"); * UnknownHandle.Handle_FF3401(this, last); * break; * case 321: //0x141 * //Console.WriteLine("MyRoomHandle_GetCharacterAvatarItem_FF4101"); * MyRoomHandle.Handle_MyroomGetCharacterAvatarItem(this, reader, last); * break; * case 333: //0x14D * //Console.WriteLine("LoginHandle_FF4D01"); * LoginHandle.Handle_FF4D01(this, last); * break; * case 357: //0x165 * //Console.WriteLine("FF6501"); * UnknownHandle.Handle_FF6501(this, last); * break; * case 376: //0x178 * LoginHandle.Handle_GetUserCash(this, last); * break; * case 381: //0x17D * Console.WriteLine("FF7D01"); //shop category? * UnknownHandle.Handle_FF7D01(this, last); * break; * case 385: //0x181 * Console.WriteLine("FF8101"); * UnknownHandle.Handle_FF8101(this, last); * break; * case 396: //0x18C * Console.WriteLine("FF8C01"); * UnknownHandle.Handle_FF8C01(this, last); * break; * case 403: //0x193 * Console.WriteLine("FF9301"); * UnknownHandle.Handle_FF9301(this, last); * break; * case 409: //0x199 * Console.WriteLine("FF9901"); * UnknownHandle.Handle_FF9901(this, last); * break; * case 449: //0x1C1 * Console.WriteLine("FFC10140"); * UnknownHandle.Handle_FFC10140(this, last); * break; * case 0x1CF: //0x1CF MyRoomHandle * if (subopcode == 0x00) * MyRoomHandle.Handle_FFCF0100(this, last); * else if (subopcode == 0x02) * MyRoomHandle.Handle_MyRoomGetCharacterList(this, last); * else if (subopcode == 0x05) * MyRoomHandle.Handle_MyRoomGetMyCards(this, last); * else if (subopcode == 0x08) * MyRoomHandle.Handle_MyRoomSetDefaultCharacter(this, reader, last); * else if (subopcode == 0x0B) * MyRoomHandle.Handle_MyroomSetCharSetting(this, reader, last); * else if (subopcode == 0x14) * MyRoomHandle.Handle_ExitGetCurrentCharSetting(this, last); * else if (subopcode == 0x1A) * MyRoomHandle.Handle_UseLuckyBag(this, reader, last); * else if (subopcode == 0x20) * MyRoomHandle.Handle_FeedPet(this, reader, last); * else if (subopcode == 0x23) * MyRoomHandle.Handle_PetRebirth(this, reader, last); * else if (subopcode == 0x26) * MyRoomHandle.Handle_PetUpgrade(this, reader, last); * else if (subopcode == 0x29) * MyRoomHandle.Handle_RepairItem(this, reader, last); * else if (subopcode == 0x42) * MyRoomHandle.Handle_SetSlotItemSetting(this, reader, last); * else if (subopcode == 0x45) * MyRoomHandle.Handle_GetUserSlotInfo(this, last); * else if (subopcode == 0x4A) * { * //Console.WriteLine("MyRoomHandle_FFCF014A"); * //Handle_FFCF014A(hPacket, hPacket.Length); * MyRoomHandle.Handle_FFCF014A(this, last); * } * else * { * Log.Info("Unhandle subopcode: 0x1CF 0x{0:X2}", subopcode); * //LogHelp.Logging("Unhandle FFCF01XX: " + ByteArrayToString(hPacket, hPacket.Length)); * } * break; * case 465: //0x1D1 Farm?? * if (subopcode == 0x27) * { * //Console.WriteLine("FFD10127"); * UnknownHandle.Handle_FFD10127(this, last); * } * else if (subopcode == 0x2E) * { * //Console.WriteLine("FFD1012E"); * UnknownHandle.Handle_FFD1012E(this, last); * } * else if (subopcode == 0x0) * { * FarmHandle.Handle_EnterFarm(this, reader, last); * } * else * { * Log.Info("Unhandle farm subopcode: {0}", Utility.ByteArrayToString(reader.Buffer)); * //LogHelp.Logging("Unhandle sopcode: " + ByteArrayToString(hPacket, hPacket.Length)); * } * break; * case 467: //0x1D3 * //Console.WriteLine("Single play FFD301"); * LobbyHandle.HandleSinglePlay(this, reader, last); * break; * case 492: //0x1EC * Console.WriteLine("FFEC01"); //mission * UnknownHandle.Handle_FFEC01(this, last); * break; * case 521: //0x209 * Console.WriteLine("FF0902"); //usp_collectionMission_GetUserMission? * UnknownHandle.Handle_FF0902(this, last); * break; * case 524: //0x20C * Console.WriteLine("FF0C02"); * UnknownHandle.Handle_FF0C02(this, last); * break; * case 528: //0x210 * Console.WriteLine("FF1002"); * UnknownHandle.Handle_FF1002(this, last); * break; * case 531: //0x213 * Console.WriteLine("FF1302"); //usp_optionalMission_GetUserInfo? * UnknownHandle.Handle_FF1302(this, last); * break; * case 534: //0x216 * Console.WriteLine("FF1602"); * UnknownHandle.Handle_FF1602(this, last); * break; * case 541: //0x21D * if (subopcode == 0x01) * { * Console.WriteLine("FF1D0201"); * UnknownHandle.Handle_FF1D0201(this, last); * } * else if (subopcode == 0x03) * { * Console.WriteLine("FF1D0203"); * UnknownHandle.Handle_FF1D0203(this, last); * } * else if (subopcode == 0x04) * { * Console.WriteLine("FF1D0204"); * UnknownHandle.Handle_FF1D0204(this, last); * } * else if (subopcode == 0x05) * { * Console.WriteLine("FF1D0205"); * UnknownHandle.Handle_FF1D0205(this, last); * } * else if (subopcode == 0x06) * { * Console.WriteLine("FF1D0206"); * UnknownHandle.Handle_FF1D0206(this, last); * } * else if (subopcode == 0x07) * { * Console.WriteLine("FF1D0207"); * UnknownHandle.Handle_FF1D0206(this, last); * } * else if (subopcode == 0x08) * { * Console.WriteLine("FF1D0208"); * UnknownHandle.Handle_FF1D0208(this, last); * } * else if (subopcode == 0x09) * { * Console.WriteLine("FF1D0209"); * UnknownHandle.Handle_FF1D0209(this, last); * } * else if (subopcode == 0x0A) * { * Console.WriteLine("FF1D020A"); * UnknownHandle.Handle_FF1D020A(this, last); * } * else if (subopcode == 0x0B) * { * Console.WriteLine("FF1D020B"); * UnknownHandle.Handle_FF1D020B(this, last); * } * else if (subopcode == 0x0C) * { * Console.WriteLine("FF1D020C"); * UnknownHandle.Handle_FF1D020C(this, last); * } * else if (subopcode == 0x0D) * { * Console.WriteLine("FF1D020D"); * UnknownHandle.Handle_FF1D020D(this, last); * } * else if (subopcode == 0x0E) * { * Console.WriteLine("FF1D020E"); * UnknownHandle.Handle_FF1D020E(this, last); * } * else if (subopcode == 0x0F) * { * Console.WriteLine("FF1D020F"); * UnknownHandle.Handle_FF1D020F(this, last); * } * else if (subopcode == 0x11) * { * Console.WriteLine("FF1D0211"); * UnknownHandle.Handle_FF1D0211(this, last); * } * else * { * Log.Info("Unhandle sopcode: 0x{0:X2}", subopcode); * //LogHelp.Logging("Unhandle sopcode: " + ByteArrayToString(hPacket, hPacket.Length)); * } * break; * case 544: //0x220 * Console.WriteLine("FF2002"); * UnknownHandle.Handle_FF2002(this, last); * break; * case 546: //0x222 * Console.WriteLine("FF2202"); * UnknownHandle.Handle_FF2202(this, last); * break; * case 611: //0x263 * //Console.WriteLine("User Logout?? FF6302"); //FF6302 * //HandleLogout(); * break; * case 702: //0x2BE * Console.WriteLine("FFBE02"); * UnknownHandle.Handle_FFBE02(this, last); * break; * case 1281: //0x501 * Console.WriteLine("FF0105"); * UnknownHandle.Handle_FF0105(this, last); * break; * case 1284: //0x504 * UnknownHandle.Handle_FF0405(this, reader, last); * break; * case 1286: //0x506 * Console.WriteLine("FF0605"); * UnknownHandle.Handle_FF0605(this, last); * break; * case 0x52E: //0x52E * if (subopcode == 0x01) * ShuSystemHandle.Handle_Shu_Hatch(this, reader, last); * else if (subopcode == 0x03) * ShuSystemHandle.Handle_Shu_GetItemInfoByStr(this, reader, last); * else if(subopcode == 0x05) * ShuSystemHandle.Handle_Shu_GetUserItemInfo(this, reader, last); * else if (subopcode == 0x09) * ShuSystemHandle.Handle_Shu_ManagerAction(this, reader, last); * else if (subopcode == 0x0A) * ShuSystemHandle.Handle_Shu_ChangeName(this, reader, last); * else if (subopcode == 0x0B) * ShuSystemHandle.Handle_Shu_ChangeAvatarInfo(this, reader, last); * else if (subopcode == 0x0C) * ShuSystemHandle.Handle_Shu_ChangeCurrentShu(this, reader, last); * else if (subopcode == 0x0D) * ShuSystemHandle.Handle_Shu_UseItem(this, reader, last); * else if (subopcode == 0x0E) * ShuSystemHandle.Handle_Shu_GetGift(this, reader, last); * else if (subopcode == 0x0F) * ShuSystemHandle.Handle_Shu_ExploreCheck(this, reader, last); * else if (subopcode == 0x10) * ShuSystemHandle.Handle_Shu_ExploreStart(this, reader, last); * else if (subopcode == 0x11) * ShuSystemHandle.Handle_Shu_ExploreStop(this, reader, last); * else if (subopcode == 0x12) * ShuSystemHandle.Handle_Shu_ExploreReward(this, reader, last); * else * Log.Info("Unhandle Shu sopcode: {0:X2}, {1}", subopcode, Utility.ByteArrayToString(reader.Buffer)); * break; * case 1337: //0x539 * LobbyHandle.Handle_GetUserPoint(this, reader, last); * break; * case 1430: //0x596 * Console.WriteLine("FF9605"); //阿努 魔王城 最少攻擊力 * UnknownHandle.Handle_FF9605(this, last); * break; * case 0x5A6: //0x5A6 * MyRoomHandle.Handle_MyroomGetFashionMode(this, reader, last); * break; * case 498: //0x1F2 * Console.WriteLine("FFF201"); * UnknownHandle.Handle_FFF201(this, last); * break; * case 510: //0x1FE * Console.WriteLine("FFFE01"); * UnknownHandle.Handle_FFFE01(this, last); * break; * //case 116: //0x74 * //Console.WriteLine("74"); * //UnknownHandle.Handle_FFFE01(this, last); * //break; * case 0x9B: * //Console.WriteLine("CreateGameRoomHandle"); * GameRoomHandle.Handle_CreateGameRoom(this, reader, last); * break; * case 0xA7: * //Console.WriteLine("LeaveRoomHandle"); * GameRoomHandle.Handle_LeaveRoom(this, reader, last); * break; * case 0x497: * GameRoomHandle.Handle_FF9704(this, reader, last); * break; * case 0x97: * GameRoomHandle.Handle_GetRoomList(this, reader, last); * break; * case 0x9F: * //Console.WriteLine("EnterRoomHandle"); * GameRoomHandle.Handle_EnterRoom(this, reader, last); * break; * case 0x99: * Log.Info("RandomEnterRoom"); * GameRoomHandle.Handle_RandomEnterRoom(this, reader, last); * break; * case 0xA0: * GameRoomHandle.Handle_PlayTogether(this, reader, last); * break; * case 0x2C0: * //Log.Info("RoomControl"); * GameRoomHandle.Handle_RoomControl(this, reader, last); * break; * case 0x4b0: * //Console.WriteLine("KickPlayerHandle"); * GameRoomHandle.Handle_KickPlayer(this, reader, last); * break; * case 0x16C: * GameRoomHandle.Handle_PlayerList(this, reader, last); * break; * case 0x1DA: * //Console.WriteLine("GameEndInfo"); * GameRoomHandle.Handle_GameEndInfo(this, reader, last); * break; * case 0x169: * //Console.WriteLine("BuyItem"); * ShopHandle.Handle_BuyItem(this, reader, last); * break; * case 0x170: * //Console.WriteLine("GiftItem"); * ShopHandle.Handle_GiftItem(this, reader, last); * break; * case 0x144: * //Console.WriteLine("GetMyroomItemInfo"); * MyRoomHandle.Handle_GetGiftItemInfo(this, reader, last); * break; * case 0x147: * //Console.WriteLine("GetItemInfo"); * ShopHandle.Handle_GetItemInfo(this, reader, last); * break; * case 0x17C: * //Console.WriteLine("GetCurrentMoney"); * ShopHandle.Handle_GetCurrentGameMoney(this, reader, last); * break; * case 0x172: * //Console.WriteLine("GetGiftList"); * MyRoomHandle.Handle_GetGiftList(this, reader, last); * break; * case 0x174: * //Console.WriteLine("AcceptGift"); * MyRoomHandle.Handle_AcceptGift(this, reader, last); * break; * case 0x68: * MyRoomHandle.Handle_MyroomGetUserItemAttr(this, reader, last); * break; * case 0x52F://Monthly Gacha * GachaHandle.Handle_GetMonthlyGacha(this, last); * break; * //鍊金/扭蛋&保管箱 * case 0x573: * ParkHandle.Handle_GetMachineInfo(this, reader, last); * break; * case 0x197: * ParkHandle.Handle_Alchemist_MachineSelect(this, reader, last); * break; * case 0x237: * ParkHandle.Handle_MachineReceiveORGiftItem(this, reader, last); * break; * case 0x547: * ParkHandle.Handle_MachineKeepItem(this, reader, last); * break; * case 0x549: * MyRoomHandle.Handle_GetStorageItemList(this, reader, last); * break; * case 0x54B: * MyRoomHandle.Handle_StorageItemGift(this, reader, last); * break; * case 0x54D: * MyRoomHandle.Handle_StorageItemReceive(this, reader, last); * break; * //兌換系統 * case 0x4BD: * ExchangeHandle.Handle_GetExchangeSystemInfo(this, reader, last); * break; * case 0x4BF: * ExchangeHandle.Handle_ExchangeItem(this, reader, last); * break; * case 0x5A4: * MyRoomHandle.Handle_MyroomSetFashionMode(this, reader, last); * break; * * case 0x76: * GMCommandHandle.Handle_Notice(this, reader, last); * break; * case 0x3DD: * GMCommandHandle.Handle_DisconnectUser(this, reader, last); * break; * case 0x3DE: * GMCommandHandle.Handle_FindGo(this, reader, last); * break; * case 0x51A: * LobbyHandle.Handle_GetEventPickBoard(this, reader, last); * break; * * case 0x1F8: * GameRoomHandle.Handle_FFF801(this, reader, last); * break; * * //EnchantSystem * case 0x58A: * EnchantSystem.Handle_GetEnchantItemInfo(this, reader, last); * break; * case 0x58C: * EnchantSystem.Handle_StoneMount(this, reader, last); * break; * case 0x590: * EnchantSystem.Handle_StoneRemove(this, reader, last); * break; * case 0x592: * EnchantSystem.Handle_SealErase(this, reader, last); * break; * case 0x594: * EnchantSystem.Handle_Hardening(this, reader, last); * break; * * case 0x598: * LobbyHandle.Handle_RightClickItemInfo(this, reader, last); * break; * default: * Log.Info("Unhandle opcode: {0}", Utility.ByteArrayToString(reader.Buffer)); * //Log.WriteLine("Unhandle opcode: " + ByteArrayToString(hPacket, hPacket.Length)); * break; * //FF 3A 05 B1 04 00 00 1A 01 00 00 1A 01 00 00 08 * //FF 3A 05 F0 0A 00 00 06 00 00 00 06 00 00 00 08 mau * * }*/ }