盲盒拍卖会MOD制作经验-与箱子利润有关的成就
Q:对于买箱子手滑多输入一个0的玩家,我们要怎么办?
A:当然是安排成就了!在此提供一种成就MOD的思路给各位MOD制作者们。

首先我们需要熟读作者的MOD指南

仿照作者思路,构造函数里面用到了这个玩意(委托与事件)
反编译结果如下:

定位到如下位置:(定位到了事件控制器类中!!)

可以看出这是一个叫做委托和事件的东西,我们不需要知道这是干什么的,只需要知道怎么用。继续定位:

查找 事件_弹幕,看看哪里用到了它

从这里推断:(拿通俗易懂不正式的说明!)
第三部分的代码通过事件发送出 Dm类型的val(此为弹幕类型数据)
所有连接到此事件的函数都收到发送的数据
作者的示例里面,在构造函数里面调用了函数:MOD.事件_玩家弹幕(获取弹幕);
MOD.事件_玩家弹幕(获取弹幕); 引发了获取弹幕函数与事件_弹幕的绑定(参照第一张图片)
获取弹幕函数接受到了数据并开始执行函数功能。(参照作者示例代码)
综上,我们了解了弹幕是如何被MOD制作者们获取的。我们需要寻找作者留给我们的委托和事件,看看返回值是不是我们所需要的。
问题来了!!我没有找到作者有留下可以发送:当前箱子的拍下者的数据和箱子利润的数据 (也有可能我没有找到或者看错了)
仿照以上思路。我们可以通过反编译添加我们想要的到原版DLL里面(反编译可能会带来潜在隐患,不建议。但是我用着感觉没大问题)
经过疯狂查找与一顿分析,我发现拍卖结束后,既有当前箱子的拍下者的数据又有箱子利润的数据的一个函数


这个函数既有我们想要的当前箱子的拍下者的数据又有箱子利润的数据。我们可以在这里触发事件来发送数据。
对比以上思路,我们可以通过反编译在拍卖会类中加入自定义事件:(以下是从Github仓库里面复制的代码)
我们需要添加反编译图片的第一(事件定义)、二(代理/委托定义)、三(触发事件)部分代码到拍卖行类中。
该成就完整代码可在下面的Github仓库中获取!
盲盒拍卖会的MOD制作经验分享(包含部分代码)
https://github.com/ice-forever/MOD-CodeSharing