Implement character/disc selectors

This commit is contained in:
Melledy
2025-11-08 22:13:25 -08:00
parent 66ce7cf698
commit b5290f8c0a
2 changed files with 22 additions and 2 deletions

View File

@@ -618,7 +618,7 @@ public class Inventory extends PlayerManager implements GameDatabaseObject {
return change.setSuccess(true); 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 // Player change info
if (change == null) { if (change == null) {
change = new PlayerChangeInfo(); change = new PlayerChangeInfo();
@@ -643,6 +643,21 @@ public class Inventory extends PlayerManager implements GameDatabaseObject {
case 2 -> { case 2 -> {
// Add items // Add items
this.addItems(data.getUseParams(), change); 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
success = true; success = true;
} }

View File

@@ -25,7 +25,12 @@ public class HandlerItemUseReq extends NetHandler {
// Use item // Use item
for (var param : req.getUse().getList()) { 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 // Encode and send