コード例 #1
0
        public static BuyItemInfo RecvBuyItem(Packet p)
        {
            p.Skip(2);
            int npcid = p.ReadInt();
            short wref = p.ReadShort();
            p.Skip(2);
            short amount = p.ReadShort();
            p.Skip(2);
            byte bag = p.ReadByte();

            BuyItemInfo i = new BuyItemInfo
            {
                NpcID = npcid,
                ReferenceID = wref,
                Amount = amount,
                Bag = bag
            };

            return i;
        }
コード例 #2
0
        public static MovementInfo RecvStopMoving(Packet p)
        {
            p.Skip(2);
            int charid = p.ReadInt();

            short from_x = p.ReadShort();
            short from_y = p.ReadShort();
            byte from_z = p.ReadByte();

            MovementInfo mi = new MovementInfo
            {
                PacketID = 3,
                CharacterID = charid,
                FromX = from_x,
                FromY = from_y,
                FromZ = from_z,
            };

            return mi;
        }
コード例 #3
0
        /// <summary>
        /// Generates the unit server login information from packet
        /// </summary>
        /// <param name="p"></param>
        /// <returns></returns>
        public static UnitLogin RecvUnitLogin(Packet p)
        {
            p.Skip(2);
            string account = p.ReadString();
            int hash = p.ReadShort();
            int map = p.ReadShort();
            int channel = p.ReadByte();
            p.Skip(6);
            int characterID = p.ReadInt();

            UnitLogin u = new UnitLogin()
            {
                Account = account,
                AccountID = hash,
                Channel = channel,
                CharacterID = characterID
            };

            return u;
        }
コード例 #4
0
        public static PickItemInfo RecvPickItem(Packet p)
        {
            p.Skip(2);
            int mapid = p.ReadInt();
            int itemid = p.ReadInt();
            short fromx = p.ReadShort();
            short fromy = p.ReadShort();
            byte fromz = p.ReadByte();
            int mapitemid = p.ReadInt();
            short amount = p.ReadShort();

            PickItemInfo pi = new PickItemInfo
            {
                MapID = mapid,
                ItemID = itemid,
                FromX = fromx,
                FromY = fromy,
                FromZ = fromz,
                MapItemID = mapitemid,
                Amount = amount
            };

            return pi;
        }
コード例 #5
0
        public static MovementInfo RecvStartMoving(Packet p)
        {
            p.Skip(2);
            int charid = p.ReadInt();

            short from_x = p.ReadShort();
            short from_y = p.ReadShort();
            byte from_z = p.ReadByte();

            short to_x = p.ReadShort();
            short to_y = p.ReadShort();
            byte to_z = p.ReadByte();
            short direction = p.ReadShort();

            MovementInfo mi = new MovementInfo
            {
                PacketID = 1,
                CharacterID = charid,
                FromX = from_x,
                FromY = from_y,
                FromZ = from_z,
                ToX = to_x,
                ToY = to_y,
                ToZ = to_z,
                Rotation = direction
            };

            return mi;
        }
コード例 #6
0
        public static DropItemInfo RecvDropItem(Packet p)
        {
            p.Skip(2);
            byte frombag = p.ReadByte();
            byte fromslot = p.ReadByte();
            int itemid = p.ReadInt();
            short tox = p.ReadShort();
            short toy = p.ReadShort();
            byte toz = p.ReadByte();
            int something = p.ReadInt();

            DropItemInfo drop = new DropItemInfo
            {
                FromBag = frombag,
                FromSlot = fromslot,
                ItemID = itemid,
                ToX = tox,
                ToY = toy,
                ToZ = toz,
                Something = something
            };

            return drop;
        }
コード例 #7
0
        /// <summary>
        /// Handle Game Login packet from client
        /// </summary>
        /// <param name="p"></param>
        /// <param name="c"></param>
        public static GameLogin RecvGameLogin(Packet p)
        {
            p.Skip(2);
            string account = p.ReadString();
            string hash = p.ReadString();
            int version = p.ReadShort();

            GameLogin g = new GameLogin
            {
                AccountName = account,
                HashCode = hash,
                Version = version
            };

            return g;
        }
コード例 #8
0
ファイル: Client.cs プロジェクト: zarut/xiah-gcf-emulator
        private void HandlePacket(Packet p)
        {
            int curByte = 0;
            int maxByte = p.Length;

            while (curByte < maxByte)
            {
                int parsedLength = p.ReadShort((curByte + 2)) + 4;
                byte[] parsed = new byte[parsedLength];

                // read bytes from buffer to parsed packets.
                for (int i = 0; i < parsed.Length; i++)
                {
                    parsed[i] = p.GetBuffer()[i + curByte];
                }

                // decrypt those bytes as a new real deal parsed packet
                Packet Parsed = Packet.Decrypt(new Packet(parsed), key);
                curByte += parsedLength;

                PacketIds PI = (PacketIds)Parsed.ReadShort();
                switch (PI)
                {
                    #region Login Recvs
                    case PacketIds.Recv_GameLogin:
                        HandleRecvGameLogin(Parsed);
                        break;

                    case PacketIds.Recv_ConnectWorld:
                        HandleRecvConnectWorld(Parsed);
                        break;

                    #endregion

                    #region World Recvs

                    case PacketIds.RecvUnitLogin:
                        HandleRecvUnitLogin(Parsed);
                        break;

                    case PacketIds.RecvCreateCharacter:
                        HandleRecvCreateCharacter(Parsed);
                        break;

                    case PacketIds.RecvChannelRequest:
                        HandleRecvChannelRequest(Parsed);
                        break;

                    #endregion

                    #region Channel Recvs
                    case PacketIds.RecvPing:
                        // needs check if too fast or so :I
                        break;

                    case PacketIds.RecvChannelLogin:
                        HandleRecvChannelLogin(Parsed);
                        break;

                    case PacketIds.RecvChannelChange:
                        HandleRecvChannelChange(Parsed);
                        break;

                    case PacketIds.RecvChannelSomething:
                        HandleRecvChannelStuff(Parsed);
                        break;

                    case PacketIds.RecvLoadMap:
                        HandleRecvMapRequest(Parsed);
                        break;

                    case PacketIds.RecvRequestSkillList:
                        HandleRecvSkillRequest(Parsed);
                        break;

                    case PacketIds.RecvRequestInventory:
                        HandleRecvInventoryRequest(Parsed);
                        break;

                    case PacketIds.RecvMoveItem:
                        HandleRecvMoveItem(Parsed);
                        break;

                    case PacketIds.RecvDropItem:
                        HandleRecvDropItem(Parsed);
                        break;

                    case PacketIds.RecvPickItem:
                        HandleRecvPickItem(Parsed);
                        break;

                    case PacketIds.RecvImbueItem:
                        HandleRecvImbueItem(Parsed);
                        break;

                    case PacketIds.RecvAcceptImbueItem:
                        HandleRecvAcceptImbueItem(Parsed);
                        break;

                    case PacketIds.RecvNpcTrade:
                        HandleRecvNpcTrade(Parsed);
                        break;

                    case PacketIds.RecvBuyItem:
                        HandleRecvBuyItem(Parsed);
                        break;

                    case PacketIds.RecvSomething:
                        Send(PacketManager.SendSomething());
                        break;

                    case PacketIds.RecvRequestFriendList:
                        Send(PacketManager.SendFriendList());
                        break;

                    case PacketIds.RecvRequestGuildList:
                        // AD GUILD LIST SEND
                        break;

                    case PacketIds.RecvSomething2:
                        Send(PacketManager.SendSomething2());
                        break;

                    case PacketIds.RecvStatRequest:
                        HandleRecvStatRequest(Parsed);
                        break;

                    case PacketIds.RecvSpawnRequest:
                        HandleRecvSpawnRequest(Parsed);
                        break;

                    case PacketIds.RecvSpawnPlayer: // request for other player to spawn
                        HandleRecvSpawnOtherPlayerRequest(Parsed);
                        break;

                    case PacketIds.RecvRequestStats:
                        HandleRecvRequestStats(Parsed);
                        break;

                    case PacketIds.RecvAddStat:
                        HandleRecvAddStat(Parsed);
                        break;

                    case PacketIds.RecvPlayerID:
                        HandleRecvSendPlayerIDRequest(Parsed);
                        break;

                    case PacketIds.RecvStartMoving:
                        HandleRecvStartMoving(Parsed);
                        break;

                    case PacketIds.RecvKeepMoving:
                        HandleRecvKeepMoving(Parsed);
                        break;

                    case PacketIds.RecvStopMoving:
                        HandleRecvStopMoving(Parsed);
                        break;

                    case PacketIds.RecvWalkToPortal:
                        HandleRecvWalkToPortal(Parsed);
                        break;

                    case PacketIds.RecvChatMessage:
                        HandleRecvChatMessage(Parsed);
                        break;

                    case PacketIds.RecvCommand:
                        HandleRecvCommand(Parsed);
                        break;

                    #endregion

                    default:
                        HandleRecvUnknownPacket(Parsed);
                        break; // needs logging system like "packet id received: " then whole buffer like in old one
                }
            }
        }
コード例 #9
0
        public static ChannelLogin RecvChannelLogin(Packet p)
        {
            p.Skip(2);
            int characterID = p.ReadInt();
            int accountID = p.ReadShort();
            int channelID = p.ReadShort();
            int worldID = p.ReadByte();

            ChannelLogin u = new ChannelLogin()
            {
                CharacterID = characterID,
                AccountID = accountID,
                ChannelID = channelID,
                WorldID = worldID
            };

            return u;
        }
コード例 #10
0
        public static CastSkillInfo RecvCastSkill2(Packet p)
        {
            p.Skip(2);
            int skillid = p.ReadInt();
            byte castertype = p.ReadByte();
            int casterid = p.ReadInt();
            short casterx = p.ReadShort();
            short castery = p.ReadShort();
            byte casterz = p.ReadByte();
            byte targettype = p.ReadByte();
            int targetid = p.ReadInt();
            short targetx = p.ReadShort();
            short targety = p.ReadShort();
            byte targetz = p.ReadByte();

            CastSkillInfo i = new CastSkillInfo
            {
                PacketID = 2,
                SkillID = skillid,
                CasterType = castertype,
                CasterID = casterid,
                CasterX = casterx,
                CasterY = castery,
                CasterZ = casterz,
                TargetType = targettype,
                TargetID = targetid,
                TargetX = targetx,
                TargetY = targety,
                TargetZ = targetz
            };

            return i;
        }
コード例 #11
0
        public static AttackInfo RecvAttack2(Packet p)
        {
            p.Skip(2);
            byte attackertype = p.ReadByte();
            int attackerid = p.ReadInt();
            short targetx = p.ReadShort();
            short targety = p.ReadShort();
            byte targetz = p.ReadByte();
            byte targettype = p.ReadByte();
            int targetid = p.ReadInt();

            AttackInfo i = new AttackInfo
            {
                PacketID = 2,
                AttackerType = attackertype,
                AttackerID = attackerid,
                TargetX = targetx,
                TargetY = targety,
                TargetZ = targetz,
                TargetType = targettype,
                TargetID = targetid
            };

            return i;
        }
コード例 #12
0
        public static UpdateQuickSlotInfo RecvUpdateQuickSlot(Packet p)
        {
            p.Skip(2);
            short valueId = p.ReadShort();
            p.Skip(2);
            byte slot = p.ReadByte();
            byte page = p.ReadByte();

            UpdateQuickSlotInfo i = new UpdateQuickSlotInfo
            {
                ValueID = valueId,
                Slot = slot,
                Page = page
            };

            return i;
        }
コード例 #13
0
        public static TradeAddItemInfo RecvTradeAdditem(Packet p)
        {
            p.Skip(2);
            byte frombag = p.ReadByte();
            byte fromslot = p.ReadByte();
            byte tobag = p.ReadByte();
            byte toslot = p.ReadByte();
            int itemid = p.ReadInt();
            short amount = p.ReadShort();
            p.Skip(2);
            int charid = p.ReadInt();

            TradeAddItemInfo i = new TradeAddItemInfo
            {
                FromBag = frombag,
                FromSlot = fromslot,
                ToBag = tobag,
                ToSlot = toslot,
                ItemID = itemid,
                Amount = amount,
                PlayerID = charid
            };

            return i;
        }
コード例 #14
0
ファイル: Client.cs プロジェクト: zarut/xiah-gcf-emulator
        private void HandlePacket(Packet p)
        {
            int curByte = 0;
            int maxByte = p.Length;

            while (curByte < maxByte)
            {
                int parsedLength = p.ReadShort((curByte + 2)) + 4;
                byte[] parsed = new byte[parsedLength];

                // read bytes from buffer to parsed packets.
                for (int i = 0; i < parsed.Length; i++)
                {
                    parsed[i] = p.GetBuffer()[i + curByte];
                }

                // decrypt those bytes as a new real deal parsed packet
                Packet Parsed = Packet.Decrypt(new Packet(parsed), key);
                curByte += parsedLength;

                PacketIds PI = (PacketIds)Parsed.ReadShort();
                switch (PI)
                {
                    #region Login Recvs
                    case PacketIds.Recv_GameLogin:
                        HandleRecvGameLogin(Parsed);
                        break;

                    case PacketIds.Recv_ConnectWorld:
                        HandleRecvConnectWorld(Parsed);
                        break;

                    #endregion

                    #region World Recvs

                    case PacketIds.RecvUnitLogin:
                        HandleRecvUnitLogin(Parsed);
                        break;

                    case PacketIds.RecvCreateCharacter:
                        HandleRecvCreateCharacter(Parsed);
                        break;

                    case PacketIds.RecvChannelRequest:
                        HandleRecvChannelRequest(Parsed);
                        break;

                    #endregion

                    #region Channel Recvs
                    case PacketIds.RecvPing:
                        // needs check if too fast or so :I
                        break;

                    case PacketIds.RecvChannelLogin:
                        HandleRecvChannelLogin(Parsed);
                        break;

                    case PacketIds.RecvChannelChange:
                        HandleRecvChannelChange(Parsed);
                        break;

                    case PacketIds.RecvChannelSomething:
                        HandleRecvChannelStuff(Parsed);
                        break;

                    case PacketIds.RecvLoadMap:
                        HandleRecvMapRequest(Parsed);
                        break;

                    case PacketIds.RecvRequestSkillList:
                        HandleRecvSkillRequest(Parsed);
                        break;

                    case PacketIds.RecvRequestInventory:
                        HandleRecvInventoryRequest(Parsed);
                        break;

                    case PacketIds.RecvRequestOpenWarehouse:
                        HandleRecvOpenWarehouse(Parsed);
                        break;

                    case PacketIds.RecvMoveWarehouseItemToBag:
                        HandleRecvMoveWarehouseItemToBag(Parsed);
                        break;

                    case PacketIds.RecvAddItemToWarehouse:
                        HandleRecvAddItemToWarehouse(Parsed);
                        break;

                    case PacketIds.RecvMoveWarehouseItem:
                        HandleRecvMoveWarehouseItem(Parsed);
                        break;

                    case PacketIds.RecvMoveItem:
                        HandleRecvMoveItem(Parsed);
                        break;

                    case PacketIds.RecvDropItem:
                        HandleRecvDropItem(Parsed);
                        break;

                    case PacketIds.RecvPickItem:
                        HandleRecvPickItem(Parsed);
                        break;

                    case PacketIds.RecvStackItem:
                        HandleRecvStackItem(Parsed);
                        break;

                    case PacketIds.RecvImbueItem:
                        HandleRecvImbueItem(Parsed);
                        break;

                    case PacketIds.RecvAcceptImbueItem:
                        HandleRecvAcceptImbueItem(Parsed);
                        break;

                    case PacketIds.RecvNpcTrade:
                        HandleRecvNpcTrade(Parsed);
                        break;

                    case PacketIds.RecvBuyItem:
                        HandleRecvBuyItem(Parsed);
                        break;

                    case PacketIds.RecvSellItem:
                        HandleRecvSellItem(Parsed);
                        break;

                    case PacketIds.RecvUseItem:
                        HandleRecvUseItem(Parsed);
                        break;

                    case PacketIds.RecvUseRebirthPill:
                        HandleRecvUseRebirthPill(Parsed);
                        break;

                    case PacketIds.RecvTradePlayer:
                        HandleRecvTradePlayer(Parsed);
                        break;

                    case PacketIds.RecvTradePlayerCommands:
                        HandleRecvTradePlayerCommands(Parsed);
                        break;

                    case PacketIds.RecvTradeAddMoney:
                        HandleRecvTradeAddMoney(Parsed);
                        break;

                    case PacketIds.RecvTradeAddItem:
                        HandleRecvTradeAddItem(Parsed);
                        break;

                    case PacketIds.RecvBuyOtherPlayerShopItem:
                        HandleRecvBuyOtherPlayerShopItem(Parsed);
                        break;

                    case PacketIds.RecvShopTakeMoney:
                        HandleRecvShopTakeMoney(Parsed);
                        break;

                    case PacketIds.RecvOpenOtherPlayerShop:
                        HandleRecvOpenOtherPlayerShop(Parsed);
                        break;

                    case PacketIds.RecvShopStartSelling:
                        HandleRecvShopStartSelling(Parsed);
                        break;

                    case PacketIds.RecvAddItemToShop:
                        HandleRecvAddItemToShop(Parsed);
                        break;

                    case PacketIds.RecvMoveShopItem:
                        HandleRecvMoveShopItem(Parsed);
                        break;

                    case PacketIds.RecvMoveShopItemToBag:
                        HandleRecvMoveShopItemToBag(Parsed);
                        break;

                    case PacketIds.RecvChangeShopInfo:
                        HandleRecvChangeShopInfo(Parsed);
                        break;

                    case PacketIds.RecvLearnSkill:
                        HandleRecvLearnSkill(Parsed);
                        break;

                    case PacketIds.RecvQuickSlotRequest:
                        Send(PacketManager.SendQuickSlots(this.MyCharacter));
                        break;

                    case PacketIds.RecvUpdateQuickSlot:
                        HandleRecvUpdateQuickSlot(Parsed);
                        break;

                    case PacketIds.RecvSelectSkill:
                        HandleRecvSelectSkill(Parsed);
                        break;

                    case PacketIds.RecvRequestGuildList:
                        HandleRecvRequestGuild(Parsed);
                        break;

                    case PacketIds.RecvCreateGuild:
                        HandleRecvCreateGuild(Parsed);
                        break;

                    case PacketIds.RecvRequestGuildInformation:
                        HandleRecvRequestGuildInfo(Parsed);
                        break;

                    case PacketIds.RecvRequestGuildMemberStats:
                        HandleRecvRequestGuildMemberStats(Parsed);
                        break;

                    case PacketIds.RecvRequestChangeGuildMemberRank:
                        HandleRecvRequestChangeGuildMemberRank(Parsed);
                        break;

                    case PacketIds.RecvRequestChangeGuildMemberTitle:
                        HandleRecvRequestChangeGuildMemberTitle(Parsed);
                        break;

                    case PacketIds.RecvRequestChangeGuildNotice:
                        HandleRecvRequestChangeGuildNotice(Parsed);
                        break;

                    case PacketIds.RecvRequestJoinGuild:
                        HandleRecvRequestJoinGuild(Parsed);
                        break;

                    case PacketIds.RecvRequestCloseGuild:
                        HandleRecvRequestCloseGuild(Parsed);
                        break;

                    case PacketIds.RecvRequestLeaveGuild:
                        HandleRecvRequestLeaveGuild(Parsed);
                        break;

                    case PacketIds.RecvGuildChat:
                        HandleRecvGuildChat(Parsed);
                        break;

                    case PacketIds.RecvSomething2:
                        Send(PacketManager.SendSomething2());
                        break;

                    case PacketIds.RecvStatRequest:
                        HandleRecvStatRequest(Parsed);
                        break;

                    case PacketIds.RecvSpawnRequest:
                        HandleRecvSpawnRequest(Parsed);
                        break;

                    case PacketIds.RecvSpawnPlayer: // request for other player to spawn
                        HandleRecvSpawnOtherPlayerRequest(Parsed);
                        break;

                    case PacketIds.RecvRequestStats:
                        HandleRecvRequestStats(Parsed);
                        break;

                    case PacketIds.RecvAddStat:
                        HandleRecvAddStat(Parsed);
                        break;

                    case PacketIds.RecvPlayerPetReques:
                        HandleRecvSendPlayerPetRequest(Parsed);
                        break;

                    case PacketIds.RecvStartMoving:
                        HandleRecvStartMoving(Parsed);
                        break;

                    case PacketIds.RecvKeepMoving:
                        HandleRecvKeepMoving(Parsed);
                        break;

                    case PacketIds.RecvStopMoving:
                        HandleRecvStopMoving(Parsed);
                        break;

                    case PacketIds.RecvWalkToPortal:
                        HandleRecvWalkToPortal(Parsed);
                        break;

                    case PacketIds.RecvRequestFriendList:
                        HandleRecvRequestFriendList(Parsed);
                        break;

                    case PacketIds.RecvAddFriend:
                        HandleRecvAddFriend(Parsed);
                        break;

                    case PacketIds.RecvChatMessage:
                        HandleRecvChatMessage(Parsed);
                        break;

                    case PacketIds.RecvCommand:
                        HandleRecvCommand(Parsed);
                        break;

                    case PacketIds.RecvMonsterSpawnRequest:
                        HandleRecvMonsterSpawn(Parsed);
                        break;

                    case PacketIds.RecvUseTeleporter:
                        HandleRecvUseTeleporter(Parsed);
                        break;

                    case PacketIds.RecvAttack1:
                        HandleRecvAttack1(Parsed);
                        break;

                    case PacketIds.RecvAttack2:
                        HandleRecvAttack2(Parsed);
                        break;

                    case PacketIds.RecvCast1:
                        HandleRecvCast1(Parsed);
                        break;

                    case PacketIds.RecvCast2:
                        HandleRecvCast2(Parsed);
                        break;

                    case PacketIds.RecvCombineItems:
                        HandleRecvCombineItems(Parsed);
                        break;

                    case PacketIds.RecvPartyRequest:
                        HandleRecvPartyRequest(Parsed);
                        break;

                    case PacketIds.RecvLeaveParty:
                        HandleRecvLeaveParty(Parsed);
                        break;

                    case PacketIds.RecvChangePartyLeader:
                        HandleRecvChangePartyLeader(Parsed);
                        break;

                    case PacketIds.RecvAddToPartyRequest:
                        HandleRecvAddToParty(Parsed);
                        break;

                    case PacketIds.RecvPetStartMoving:
                        HandleRecvPetStartMoving(Parsed);
                        break;

                    case PacketIds.RecvPetKeepMoving:
                        HandleRecvPetKeepMoving(Parsed);
                        break;

                    case PacketIds.RecvPetStopMoving:
                        HandleRecvPetStopMoving(Parsed);
                        break;

                    case PacketIds.RecvKillPet:
                        HandleRecvKillPet(Parsed);
                        break;

                    case PacketIds.RecvBaitPet:
                        HandleRecvBaitPet(Parsed);
                        break;

                    case PacketIds.RecvRequestPetStats:
                        HandleRecvRequestPetStats(Parsed);
                        break;

                    case PacketIds.RecvRequestSpawnOtherPet:
                        HandleRecvSpawnOtherPet(Parsed);
                        break;

                    case PacketIds.RecvResurrectPet:
                        HandleRecvResurrectPet(Parsed);
                        break;

                    case PacketIds.RecvRenamePet:
                        HandleRecvRenamePet(Parsed);
                        break;

                    case PacketIds.RecvSendPetToMe:
                        HandleRecvSendPetToMe(Parsed);
                        break;

                    case PacketIds.RecvTradePet:
                        HandleRecvTradePet(Parsed);
                        break;

                    case PacketIds.RecvTradePetAmount:
                        HandleRecvTradePetAmount(Parsed);
                        break;

                    case PacketIds.RecvSealPet:
                        HandleRecvSealPet(Parsed);
                        break;

                    case PacketIds.RecvUnSealPet:
                        HandleRecvUnSealPet(Parsed);
                        break;

                    case PacketIds.RecvQuestListRequest:
                         List<QuestObject> objects = new List<QuestObject>();
                        objects.Add(new QuestObject(QuestObjectType.Hunt, 0, 5, 0));
                        objects.Add(new QuestObject(QuestObjectType.Hunt, 1, 5, 0));
                        objects.Add(new QuestObject(QuestObjectType.Hunt, 2, 5, 0));
                        objects.Add(new QuestObject(QuestObjectType.Join_Party, 0, 1, 1));
                        objects.Add(new QuestObject(QuestObjectType.Level_Up, 0, 5, 1));
                        objects.Add(new QuestObject(QuestObjectType.Obtain_Money, 0, 1000, 2));

                        List<QuestReward> rewards = new List<QuestReward>();
                        rewards.Add(new QuestReward(0, 23273, 10, QuestRewardType.PlusItem));
                        rewards.Add(new QuestReward(1, 20041, 10, QuestRewardType.Item));
                        rewards.Add(new QuestReward(2, 0, 1000, QuestRewardType.Money));
                        rewards.Add(new QuestReward(2, 0, 1, QuestRewardType.Fame));

                        Quest quest = new Quest
                        {
                            Name = "Fate and Meeting!",
                            ID = 1009,
                            Objectives = objects,
                            Rewards = rewards,
                            CurrentObjective = 2,
                            State = QuestState.Started
                        };

                        Send(PacketManager.SendQuestList(quest));
                        break;

                    case PacketIds.RecvPetRequestItems:
                        // this should send the equips and items in bag but without having anythign on it wont send anything
                        break;

                    case PacketIds.RecvRequestDeath:
                        HandleRecvRequestDeath(Parsed);
                        break;

                    #endregion

                    default:
                        HandleRecvUnknownPacket(Parsed);
                        break; // needs logging system like "packet id received: " then whole buffer like in old one
                }
            }
        }