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