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); } }
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); } }