Exemple #1
0
        public static void SendPetLevelLimitBreakedResponse(IRealmClient client, PetLimitBreakStatus status,
                                                            Asda2PetRecord pet = null, Asda2Item lvlBreakItem = null, Asda2Item suplItem = null)
        {
            Asda2Item[] asda2ItemArray = new Asda2Item[2]
            {
                lvlBreakItem,
                suplItem
            };
            using (RealmPacketOut packet = new RealmPacketOut(RealmServerOpCode.PetLevelLimitBreaked))
            {
                packet.WriteByte((byte)status);
                packet.WriteInt32(pet == null ? 0 : pet.Guid);
                packet.WriteInt16(pet == null ? 0 : (int)pet.Id);
                packet.WriteFixedAsciiString(pet == null ? "" : pet.Name, 16, Locale.Start);
                packet.WriteByte(pet == null ? 0 : (int)pet.HungerPrc);
                packet.WriteByte(pet == null ? 0 : (int)pet.Level);
                packet.WriteByte(pet == null ? 0 : (int)pet.MaxLevel);
                packet.WriteInt16(pet == null ? 0 : (int)pet.Expirience);
                packet.WriteByte(1);
                packet.WriteInt16(pet == null ? (short)0 : (short)pet.Stat1Type);
                packet.WriteInt32(pet == null ? 0 : pet.Stat1Value);
                packet.WriteInt16(pet == null ? (short)0 : (short)pet.Stat2Type);
                packet.WriteInt32(pet == null ? 0 : pet.Stat2Value);
                packet.WriteInt16(pet == null ? (short)0 : (short)pet.Stat3Type);
                packet.WriteInt32(pet == null ? 0 : pet.Stat3Value);
                packet.WriteInt32(client.ActiveCharacter.Asda2Inventory.Weight);
                for (int index = 0; index < 2; ++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);
            }
        }
Exemple #2
0
        public static void SendPetLevelLimitBreakedResponse(IRealmClient client, PetLimitBreakStatus status, Asda2PetRecord pet = null, Asda2Item lvlBreakItem = null, Asda2Item suplItem = null)
        {
            var items = new Asda2Item[2];

            items[0] = lvlBreakItem;
            items[1] = suplItem;
            using (var packet = new RealmPacketOut(RealmServerOpCode.PetLevelLimitBreaked)) //6149
            {
                packet.WriteByte((byte)status);                                             //{curstatus}default value : 1 Len : 1
                packet.WriteInt32(pet == null ? 0 : pet.Guid);                              //{petGuid}default value : 68412 Len : 4
                packet.WriteInt16(pet == null ? 0 : pet.Id);                                //{petId}default value : 2759 Len : 2
                packet.WriteFixedAsciiString(pet == null ? "" : pet.Name, 16);              //{petName}default value :  Len : 16
                packet.WriteByte(pet == null ? 0 : pet.HungerPrc);                          //{hunger}default value : 97 Len : 1
                packet.WriteByte(pet == null ? 0 : pet.Level);                              //{curLvl}default value : 5 Len : 1
                packet.WriteByte(pet == null ? 0 : pet.MaxLevel);                           //{maxLvl}default value : 5 Len : 1
                packet.WriteInt16(pet == null ? 0 : pet.Expirience);                        //{exp}default value : 2000 Len : 2
                packet.WriteByte(1);                                                        //value name : unk13 default value : 1Len : 1
                packet.WriteInt16((short)(pet == null ? 0 : pet.Stat1Type));                //{stat1Type}default value : 2 Len : 2
                packet.WriteInt32(pet == null ? 0 : pet.Stat1Value);                        //{stat1Value}default value : 77 Len : 4
                packet.WriteInt16((short)(pet == null ? 0 : pet.Stat2Type));                //{stat1Type}default value : 2 Len : 2
                packet.WriteInt32(pet == null ? 0 : pet.Stat2Value);                        //{stat1Value}default value : 77 Len : 4
                packet.WriteInt16((short)(pet == null ? 0 : pet.Stat3Type));                //{stat1Type}default value : 2 Len : 2
                packet.WriteInt32(pet == null ? 0 : pet.Stat3Value);                        //{stat1Value}default value : 77 Len : 4
                packet.WriteInt32(client.ActiveCharacter.Asda2Inventory.Weight);            //{inwWeight}default value : 9988 Len : 4
                for (int i = 0; i < 2; 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);
            }
        }