查看: 2967|回复: 2

[有事请教] 脚本方面 command执行方法

[复制链接]
梦石
0
星屑
105
在线时间
1024 小时
注册时间
2021-3-24
回帖
544

MZ评测员

发表于 2021-5-22 10:50:09 | 显示全部楼层 |阅读模式

加入我们,或者,欢迎回来。

您需要 登录 才可以下载或查看,没有账号?注册会员

×
setHandler('xxxx',   this.commandyyy.bind(this));
后面bind的方法必须跳到带有Window_Command激活状态的窗口里么,不然就卡住。
有什么方法让他不跳出来么- -

全家活光光~
梦石
18
星屑
13373
在线时间
1525 小时
注册时间
2020-3-21
回帖
334

MZ评测员极短23获奖

发表于 2021-5-22 20:22:46 | 显示全部楼层
是能按下,但是按下以后不激活别的窗口吗?
比如你在这里写了一句:
this._aaaaaWindow.setHandler('xxxx',   this.commandyyy.bind(this));
那么你就在同场景的commandyyy函数里写上:
this._aaaaaWindow.activate();
这样就不会让原来的选择窗口取消激活。


完整的:
Scene_AAAAAe.prototype.createaaaaWindow = function() {
    this._aaaaaWindow=new Window_aaaaa();
    this._aaaaaWindow.setHandler('xxxx',   this.commandyyy.bind(this));
    this.addWindow(this._aaaaaWindow);
};
Scene_AAAAAe.prototype.commandyyy= function() {
    this._aaaaaWindow.activate();
};


解释:自带的功能是你按下对应键/按钮后,自动将原来的窗口取消激活(deactivate),然后执行commandyyy。
这个时候你直接在commandyyy里再激活就对了。


如果你说的是直接“按下后没有反应”,那么就得改/覆写Window_Selectable.prototype.processHandling或Window_Selectable.prototype.processOk了。
如果你说的是直接让按钮一直不能按,那么就改addCommand,要是一会儿能一会儿不能,建议直接用Window_Selectable而不是Window_Command。
不过我觉得你想的不是后两种情况,所以也就不详说了。
回复

使用道具 举报

梦石
0
星屑
105
在线时间
1024 小时
注册时间
2021-3-24
回帖
544

MZ评测员

 楼主| 发表于 2021-5-22 23:41:46 | 显示全部楼层
谢谢大佬答疑
全家活光光~
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 注册会员

本版积分规则

Powered by Discuz! X5.0 © 2001-2026 Discuz! Team.

在本版发帖返回顶部