예제 #1
0
        public static void SendPetSyntesResultResponse(IRealmClient client, PetSynethisResult result,
                                                       Asda2PetRecord resultPet  = null, Asda2Item rankPotion = null, Asda2Item classSupliment = null,
                                                       Asda2Item syntesSupliment = null, int removedPet1Guid  = 0, int removedPet2Guid         = 0)
        {
            client.ActiveCharacter.Map.CallDelayed(500,
                                                   (Action)(() => client.ActiveCharacter.GetTitle(Asda2TitleId.Evolved367)));
            Asda2Item[] asda2ItemArray = new Asda2Item[3]
            {
                rankPotion,
                classSupliment,
                syntesSupliment
            };
            using (RealmPacketOut packet = new RealmPacketOut(RealmServerOpCode.PetSyntesResult))
            {
                packet.WriteByte((byte)result);
                packet.WriteInt32(client.ActiveCharacter.AccId);
                packet.WriteInt32(resultPet == null ? 0 : resultPet.Guid);
                packet.WriteInt16(resultPet == null ? 0 : (int)resultPet.Id);
                packet.WriteFixedAsciiString(resultPet == null ? "" : resultPet.Name, 16, Locale.Start);
                packet.WriteByte(resultPet == null ? 0 : (int)resultPet.HungerPrc);
                packet.WriteByte(resultPet == null ? 0 : (int)resultPet.Level);
                packet.WriteByte(resultPet == null ? 0 : (int)resultPet.MaxLevel);
                packet.WriteSkip(Asda2PetHandler.unk13);
                packet.WriteInt16(resultPet == null ? (byte)0 : (byte)resultPet.Stat1Type);
                packet.WriteInt32(resultPet == null ? 0 : resultPet.Stat1Value);
                packet.WriteInt16(resultPet == null ? (byte)0 : (byte)resultPet.Stat2Type);
                packet.WriteInt32(resultPet == null ? 0 : resultPet.Stat2Value);
                packet.WriteInt16(resultPet == null ? (byte)0 : (byte)resultPet.Stat3Type);
                packet.WriteInt32(resultPet == null ? 0 : resultPet.Stat3Value);
                packet.WriteInt32(removedPet1Guid);
                packet.WriteInt32(removedPet2Guid);
                packet.WriteInt32(client.ActiveCharacter.Asda2Inventory.Weight);
                for (int index = 0; index < 3; ++index)
                {
                    Asda2Item asda2Item = asda2ItemArray[index];
                    packet.WriteInt32(asda2Item == null ? 0 : asda2Item.ItemId);
                    packet.WriteByte(asda2Item == null ? (byte)0 : (byte)asda2Item.InventoryType);
                    packet.WriteInt16(asda2Item == null ? -1 : (int)asda2Item.Slot);
                    packet.WriteInt16(asda2Item == null ? -1 : (asda2Item.IsDeleted ? -1 : 0));
                    packet.WriteInt32(asda2Item == null ? 0 : asda2Item.Amount);
                    packet.WriteSkip(Asda2PetHandler.stab25);
                    packet.WriteInt16(asda2Item == null ? 0 : asda2Item.Amount);
                    packet.WriteSkip(Asda2PetHandler.stab28);
                }

                client.Send(packet, false);
            }
        }
예제 #2
0
        public static void SendPetSyntesResultResponse(IRealmClient client, PetSynethisResult result, Asda2PetRecord resultPet = null, Asda2Item rankPotion = null, Asda2Item classSupliment = null, Asda2Item syntesSupliment = null, int removedPet1Guid = 0, int removedPet2Guid = 0)
        {
            var items = new Asda2Item[3];

            items[0] = rankPotion;
            items[1] = classSupliment;
            items[2] = syntesSupliment;
            using (var packet = new RealmPacketOut(RealmServerOpCode.PetSyntesResult))     //6113
            {
                packet.WriteByte((byte)result);                                            //{result}default value : 1 Len : 1
                packet.WriteInt32(client.ActiveCharacter.AccId);                           //{accId}default value : 361343 Len : 4
                packet.WriteInt32(resultPet == null ? 0 : resultPet.Guid);                 //{resultPetGuid}default value : 69819 Len : 4
                packet.WriteInt16(resultPet == null ? 0 : resultPet.Id);                   //{resultPetId}default value : 2118 Len : 2
                packet.WriteFixedAsciiString(resultPet == null ? "" : resultPet.Name, 16); //{resultPetName}default value :  Len : 16
                packet.WriteByte(resultPet == null ? 0 : resultPet.HungerPrc);             //{resultPetHunger}default value : 100 Len : 1
                packet.WriteByte(resultPet == null ? 0 : resultPet.Level);                 //{rpCurLvl}default value : 1 Len : 1
                packet.WriteByte(resultPet == null ? 0 : resultPet.MaxLevel);              //{rpMaxLvl}default value : 3 Len : 1
                packet.WriteSkip(unk13);                                                   //value name : unk13 default value : unk13Len : 3
                packet.WriteInt16((byte)(resultPet == null ? 0 : resultPet.Stat1Type));    //{rpStat1Type}default value : 16 Len : 2
                packet.WriteInt32(resultPet == null ? 0 : resultPet.Stat1Value);           //{rpStat1Val}default value : 32 Len : 4
                packet.WriteInt16((byte)(resultPet == null ? 0 : resultPet.Stat2Type));    //{rpStat1Type}default value : 16 Len : 2
                packet.WriteInt32(resultPet == null ? 0 : resultPet.Stat2Value);           //{rpStat1Val}default value : 32 Len : 4
                packet.WriteInt16((byte)(resultPet == null ? 0 : resultPet.Stat3Type));    //{rpStat1Type}default value : 16 Len : 2
                packet.WriteInt32(resultPet == null ? 0 : resultPet.Stat3Value);           //{rpStat1Val}default value : 32 Len : 4
                packet.WriteInt32(removedPet1Guid);                                        //{removedPet1Guid}default value : 68367 Len : 4
                packet.WriteInt32(removedPet2Guid);                                        //{removedPet2Guid}default value : 68412 Len : 4
                packet.WriteInt32(client.ActiveCharacter.Asda2Inventory.Weight);           //{weight}default value : 10788 Len : 4
                for (int i = 0; i < 3; i += 1)
                {
                    var item = items[i];
                    packet.WriteInt32(item == null ? 0 : item.ItemId);               //{itemId}default value : 31981 Len : 4
                    packet.WriteByte((byte)(item == null ? 0 : item.InventoryType)); //{inv}default value : 2 Len : 1
                    packet.WriteInt16(item == null ? -1 : item.Slot);                //{slot}default value : 8 Len : 2
                    packet.WriteInt16(item == null ? -1 : item.IsDeleted ? -1 : 0);  //{minusOneIfDelete}default value : -1 Len : 2
                    packet.WriteInt32(item == null ? 0 : item.Amount);               //{amount}default value : 0 Len : 4
                    packet.WriteSkip(stab25);                                        //value name : stab25 default value : stab25Len : 1
                    packet.WriteInt16(item == null ? 0 : item.Amount);               //{amount0}default value : 0 Len : 2
                    packet.WriteSkip(stab28);                                        //value name : stab28 default value : stab28Len : 41
                }
                client.Send(packet);
            }
        }