diff --git a/src/main/java/emu/nebula/game/inventory/Inventory.java b/src/main/java/emu/nebula/game/inventory/Inventory.java index d3fd066..b6ba503 100644 --- a/src/main/java/emu/nebula/game/inventory/Inventory.java +++ b/src/main/java/emu/nebula/game/inventory/Inventory.java @@ -618,7 +618,7 @@ public class Inventory extends PlayerManager implements GameDatabaseObject { return change.setSuccess(true); } - public PlayerChangeInfo useItem(int id, int count, PlayerChangeInfo change) { + public PlayerChangeInfo useItem(int id, int count, int selectId, PlayerChangeInfo change) { // Player change info if (change == null) { change = new PlayerChangeInfo(); @@ -643,6 +643,21 @@ public class Inventory extends PlayerManager implements GameDatabaseObject { case 2 -> { // Add items this.addItems(data.getUseParams(), change); + + // Success + success = true; + } + case 3 -> { + // Selected item + int selectCount = data.getUseParams().get(selectId); + + if (selectCount <= 0) { + return change; + } + + // Add selected item + this.addItem(selectId, selectCount, change); + // Success success = true; } diff --git a/src/main/java/emu/nebula/server/handlers/HandlerItemUseReq.java b/src/main/java/emu/nebula/server/handlers/HandlerItemUseReq.java index 5bde273..00c6a94 100644 --- a/src/main/java/emu/nebula/server/handlers/HandlerItemUseReq.java +++ b/src/main/java/emu/nebula/server/handlers/HandlerItemUseReq.java @@ -25,7 +25,12 @@ public class HandlerItemUseReq extends NetHandler { // Use item for (var param : req.getUse().getList()) { - session.getPlayer().getInventory().useItem(param.getTid(), param.getQty(), change); + session.getPlayer().getInventory().useItem(param.getTid(), param.getQty(), 0, change); + } + + // Pick item + for (var param : req.getPick().getList()) { + session.getPlayer().getInventory().useItem(param.getTid(), param.getQty(), param.getSelectTid(), change); } // Encode and send