关于杀戮尖塔mod在商店界面卡死

自己做mod的时候在商店节目卡死,看了半天游戏源码才找到问题所在,打算把原因发出来看看能不能帮到同样原因遇到这个问题的人

尖塔mod在卡太少的情况下从卡尺随机出卡会发生空指针错误(每种类型卡至少三张,稀有度无所谓,getCardFromPool方法只看类型,稀有度随机的),所以我做了很多占位符卡,来让mod在结算的时候不会崩溃,方便我测试卡片

但是因为我直接复制的一张卡的代码,只改了ID,makeCopy方法在调用的时候返回的是我复制的那张卡的实例,战斗结算的地方代码我没有看,但是似乎是直接生成的卡片,而商店的卡是调用makeCopy方法生成的,然后因为不知名原因出现同样的卡片商店页面生成的时候就会卡死,解决方法就是把makeCopy方法改成返回占位符卡自己的这个类

源码我没有仔细研究,是半猜半看找出问题的,有兴趣的可以自己看看源码找到原因

生成商店是在shopRoom类里,onPlayerEntry方法会在玩家进入商店的时候触发,切换完BGM之后会到

setMerchant(new Merchant());

这个语句是生成商人,商人类的构造函数会生成要卖的卡,可以看到他是先通过getCardFromPool抽出来卡,然后对这个卡调用makeCopy方法,所以会出现刚刚说的问题

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值