//这个pluginName必须和文件名是同名的哈
const pluginName = "ShowMainActorInMap";
const parameters = PluginManager.parameters(pluginName);
console.log("ShowMainActorInMap插件只运行一次的console,它应该是最晚加载的,所以可以修改所有的官方类");
//直接覆盖掉了Scene_Options原型上的maxCommands的返回值,这样才能添加新的command嘛
Scene_Options.prototype.maxCommands = function() {
// Increase this value when adding option items.
return 8;
};
//然后我们跟踪到rmmz_windows.js里的Window_Options这一章节
// 保存原始的 makeCommandList 方法
const originalMakeCommandList = Window_Options.prototype.makeCommandList;
//我默认把这个选项配置为true了
ConfigManager["showMainActorInMap"] = true;
// 重新定义 makeCommandList 方法
Window_Options.prototype.makeCommandList = function() {
// 先调用原始的方法
originalMakeCommandList.call(this);
// 然后执行你自己的代码
//console.log('执行自定义的后续操作');
this.addCommand("显示人物立绘", "showMainActorInMap");
//Window_Options.prototype.changeValue = function(symbol, value) {
//然后看了一下,它官方的使用方法是,在3103行附近,用了一个叫changeValue的方法
// console.log("Window_Options.prototype.changeValue",symbol,value);
// rmmz_windows.js:3102 Window_Options.prototype.changeValue showMainActorInMap true
// rmmz_windows.js:3102 Window_Options.prototype.changeValue showMainActorInMap false
//我打印了一下入参和出参,这就是结果了;
//实际上值就在:ConfigManager["showMainActorInMap"],这个里面
};首先第一点:

覆盖掉Options这个Scene的maxCommands指令,这样,引擎在实例化的时候就知道有8个而不是7个了
然后是保存原来原型链上的方法:

接着利用引擎的那个

ConfigManager,把我要的命令直接强制先设置成true,稍后看怎么保存吧,这个立绘场景下我觉得根本没必要去纠结save/load option的问题

接着用豆包给的技巧,先调用老的办法,然后增加自己的逻辑,就是这个显示人物立绘的选项
至于为什么没有具体的命令调用的逻辑?
因为这个给写成系统内置的了,很诡吊吧?反正我这边正好也就是个ON/OFF,所以就懒得管了,先这样了;