From c08bd07361d92c39e7ae1186b78036c3f3cb66ef Mon Sep 17 00:00:00 2001 From: MobiusDevelopment <8391001+MobiusDevelopment@users.noreply.github.com> Date: Sun, 29 May 2022 12:32:15 +0000 Subject: [PATCH] Addition of Player addItem method with enchant parameter. Thanks to Index. --- .../gameserver/model/actor/Player.java | 30 ++++++++++++++++++- .../gameserver/model/actor/Player.java | 30 ++++++++++++++++++- 2 files changed, 58 insertions(+), 2 deletions(-) diff --git a/L2J_Mobius_10.2_MasterClass/java/org/l2jmobius/gameserver/model/actor/Player.java b/L2J_Mobius_10.2_MasterClass/java/org/l2jmobius/gameserver/model/actor/Player.java index 702aa24a71..ab487fb196 100644 --- a/L2J_Mobius_10.2_MasterClass/java/org/l2jmobius/gameserver/model/actor/Player.java +++ b/L2J_Mobius_10.2_MasterClass/java/org/l2jmobius/gameserver/model/actor/Player.java @@ -3374,6 +3374,21 @@ public class Player extends Playable * @return */ public Item addItem(String process, int itemId, long count, WorldObject reference, boolean sendMessage) + { + return addItem(process, itemId, count, -1, reference, sendMessage); + } + + /** + * Adds item to Inventory and send a Server->Client InventoryUpdate packet to the Player. + * @param process : String Identifier of process triggering this action + * @param itemId : int Item Identifier of the item to be added + * @param count : long Quantity of items to be added + * @param enchantLevel : int EnchantLevel of the item to be added + * @param reference : WorldObject Object referencing current action like NPC selling item or previous item in transformation + * @param sendMessage : boolean Specifies whether to send message to Client about this action + * @return + */ + public Item addItem(String process, int itemId, long count, int enchantLevel, WorldObject reference, boolean sendMessage) { if (count > 0) { @@ -3397,7 +3412,16 @@ public class Player extends Playable } else { - final SystemMessage sm = new SystemMessage(SystemMessageId.YOU_VE_OBTAINED_S1_X_S2); + final SystemMessage sm; + if (enchantLevel > 0) + { + sm = new SystemMessage(SystemMessageId.YOU_VE_OBTAINED_S1_S2_X_S3); + sm.addInt(enchantLevel); + } + else + { + sm = new SystemMessage(SystemMessageId.YOU_VE_OBTAINED_S1_X_S2); + } sm.addItemName(itemId); sm.addLong(count); sendPacket(sm); @@ -3430,6 +3454,10 @@ public class Player extends Playable { // Add the item to inventory final Item createdItem = _inventory.addItem(process, itemId, count, this, reference); + if (enchantLevel > -1) + { + createdItem.setEnchantLevel(enchantLevel); + } // If over capacity, drop the item if (!canOverrideCond(PlayerCondOverride.ITEM_CONDITIONS) && !_inventory.validateCapacity(0, item.isQuestItem()) && createdItem.isDropable() && (!createdItem.isStackable() || (createdItem.getLastChange() != Item.MODIFIED))) diff --git a/L2J_Mobius_Essence_6.2_Vanguard/java/org/l2jmobius/gameserver/model/actor/Player.java b/L2J_Mobius_Essence_6.2_Vanguard/java/org/l2jmobius/gameserver/model/actor/Player.java index d3e4a0851c..ce33c93e43 100644 --- a/L2J_Mobius_Essence_6.2_Vanguard/java/org/l2jmobius/gameserver/model/actor/Player.java +++ b/L2J_Mobius_Essence_6.2_Vanguard/java/org/l2jmobius/gameserver/model/actor/Player.java @@ -3398,6 +3398,21 @@ public class Player extends Playable * @return */ public Item addItem(String process, int itemId, long count, WorldObject reference, boolean sendMessage) + { + return addItem(process, itemId, count, -1, reference, sendMessage); + } + + /** + * Adds item to Inventory and send a Server->Client InventoryUpdate packet to the Player. + * @param process : String Identifier of process triggering this action + * @param itemId : int Item Identifier of the item to be added + * @param count : long Quantity of items to be added + * @param enchantLevel : int EnchantLevel of the item to be added + * @param reference : WorldObject Object referencing current action like NPC selling item or previous item in transformation + * @param sendMessage : boolean Specifies whether to send message to Client about this action + * @return + */ + public Item addItem(String process, int itemId, long count, int enchantLevel, WorldObject reference, boolean sendMessage) { if (count > 0) { @@ -3422,7 +3437,16 @@ public class Player extends Playable } else { - final SystemMessage sm = new SystemMessage(SystemMessageId.YOU_VE_OBTAINED_S1_X_S2); + final SystemMessage sm; + if (enchantLevel > 0) + { + sm = new SystemMessage(SystemMessageId.YOU_VE_OBTAINED_S1_S2_X_S3); + sm.addInt(enchantLevel); + } + else + { + sm = new SystemMessage(SystemMessageId.YOU_VE_OBTAINED_S1_X_S2); + } sm.addItemName(itemId); sm.addLong(count); sendPacket(sm); @@ -3455,6 +3479,10 @@ public class Player extends Playable { // Add the item to inventory final Item createdItem = _inventory.addItem(process, itemId, count, this, reference); + if (enchantLevel > -1) + { + createdItem.setEnchantLevel(enchantLevel); + } // If over capacity, drop the item if (!canOverrideCond(PlayerCondOverride.ITEM_CONDITIONS) && !_inventory.validateCapacity(0, item.isQuestItem()) && createdItem.isDropable() && (!createdItem.isStackable() || (createdItem.getLastChange() != Item.MODIFIED)))