Fix mall shop purchases

This commit is contained in:
Melledy
2025-11-07 21:13:24 -08:00
parent 7a49282cef
commit f1a95b77e9
2 changed files with 19 additions and 4 deletions

View File

@@ -4,6 +4,7 @@ import com.google.gson.annotations.SerializedName;
import emu.nebula.data.BaseDef;
import emu.nebula.data.ResourceType;
import emu.nebula.game.inventory.ItemParamMap;
import lombok.Getter;
@Getter
@@ -12,12 +13,26 @@ public class MallShopDef extends BaseDef {
@SerializedName("Id")
private String IdString;
private int Stock;
private int ExchangeItemId;
private int ExchangeItemQty;
private int ItemId;
private int CurrencyItemId;
private int ItemQty;
private transient ItemParamMap products;
@Override
public int getId() {
return IdString.hashCode();
}
@Override
public void onLoad() {
this.products = new ItemParamMap();
if (this.ItemId > 0) {
this.products.add(this.ItemId, this.ItemQty);
}
}
}

View File

@@ -16,15 +16,15 @@ public class HandlerMallShopOrderReq extends NetHandler {
var req = MallShopOrderReq.parseFrom(message);
// Get package data
var data = GameData.getMallPackageDataTable().get(req.getId().hashCode());
var data = GameData.getMallShopDataTable().get(req.getId().hashCode());
if (data == null) {
return session.encodeMsg(NetMsgId.mall_shop_order_failed_ack);
}
// Buy items
var change = session.getPlayer().getInventory().buyItem(
data.getCurrencyItemId(),
data.getCurrencyItemQty(),
data.getExchangeItemId(),
data.getExchangeItemQty(),
data.getProducts(),
req.getQty()
);