public SREtc(SREtc value) : base(value) { AssimilationProbability = value.AssimilationProbability; }
public static void CreatePickUpPacket(SRItem item, byte inventorySlot) { Packet p = new Packet(Agent.Opcode.SERVER_INVENTORY_ITEM_MOVEMENT); p.WriteByte(1); // Success p.WriteByte(SRTypes.InventoryItemMovement.GroundToInventory); p.WriteByte(inventorySlot); p.WriteUInt(item.Rentable.ID); if (item.Rentable.RentableType == SRRentable.Type.LimitedTime) { p.WriteUShort(item.Rentable.CanDelete); p.WriteUInt(item.Rentable.PeriodBeginTime); p.WriteUInt(item.Rentable.PeriodEndTime); } else if (item.Rentable.RentableType == SRRentable.Type.LimitedDistance) { p.WriteUShort(item.Rentable.CanDelete); p.WriteUShort(item.Rentable.CanRecharge); p.WriteUInt(item.Rentable.MeterRateTime); } else if (item.Rentable.RentableType == SRRentable.Type.Package) { p.WriteUShort(item.Rentable.CanDelete); p.WriteUShort(item.Rentable.CanRecharge); p.WriteUInt(item.Rentable.PeriodBeginTime); p.WriteUInt(item.Rentable.PeriodEndTime); p.WriteUInt(item.Rentable.PackingTime); } p.WriteUInt(item.ID); if (item.isEquipable()) { SREquipable equip = (SREquipable)item; p.WriteByte(equip.Plus); p.WriteULong(equip.Variance); p.WriteUInt(equip.Durability); p.WriteByte(equip.MagicOptions.Count); for (byte j = 0; j < equip.MagicOptions.Count; j++) { p.WriteUInt(equip.MagicOptions[j].ID); p.WriteUInt(equip.MagicOptions[j].Value); } // 1 = Socket p.WriteByte(1); if (equip.Sockets != null) { p.WriteByte(equip.Sockets.Count); for (byte j = 0; j < equip.Sockets.Count; j++) { p.WriteByte(equip.Sockets[j].Slot); p.WriteUInt(equip.Sockets[j].ID); p.WriteUInt(equip.Sockets[j].Value); } } else { p.WriteByte(0); } // 2 = Advanced elixir p.WriteByte(2); if (equip.AdvancedElixirs != null) { p.WriteByte(equip.AdvancedElixirs.Count); for (byte j = 0; j < equip.AdvancedElixirs.Count; j++) { p.WriteByte(equip.AdvancedElixirs[j].Slot); p.WriteUInt(equip.AdvancedElixirs[j].ID); p.WriteUInt(equip.AdvancedElixirs[j].Value); } } else { p.WriteByte(0); } } else if (item.isCoS()) { SRCoS cos = (SRCoS)item; if (cos.isPet()) { // ITEM_COS_P p.WriteByte(cos.StateType); if (cos.StateType != SRCoS.State.NeverSummoned) { p.WriteUInt(cos.ModelID); p.WriteAscii(cos.ModelName); if (cos.ID4 == 2) { p.WriteUInt(cos.Rentable.PeriodEndTime); } p.WriteByte(cos.unkByte01); } } else if (cos.isTransform()) { if (cos.ModelID == 0) { cos.ModelID = new SRModel("MOB_CH_MANGNYANG").ID; } p.WriteUInt(cos.ModelID); } else if (cos.isCube()) { p.WriteUInt(cos.Quantity); } } else if (item.isEtc()) { SREtc etc = (SREtc)item; p.WriteUShort(etc.Quantity); if (etc.isAlchemy()) { if (item.ID4 == 1 || item.ID4 == 2) { // MAGIC/ATRIBUTTE STONE p.WriteByte(etc.AssimilationProbability); } } else if (item.ID3 == 14 && item.ID4 == 2) { // ITEM_MALL_GACHA_CARD_WIN // ITEM_MALL_GACHA_CARD_LOSE p.WriteByte(0); // paramCount } } Bot.Get.Proxy.Agent.InjectToClient(p); }