Project1

标题: 研究了一晚上,终于知道为什么MZ没有全键盘插件了 [打印本页]

作者: nfsq6h    时间: 2022-3-28 01:14
标题: 研究了一晚上,终于知道为什么MZ没有全键盘插件了
因为改为js代码以后,全键盘功能用改底层+脚本的方式实现起来过于简单,简直有点傻瓜……
说下步骤:
(1)在rmmz_core.js中搜索如下字段
/**
* A hash table to convert from a virtual key code to a mapped key name.
*
* @type Object
*/
Input.keyMapper = {
    9: "tab", // tab
    13: "ok", // enter
    16: "shift", // shift
    17: "control", // control
    18: "control", // alt
    27: "escape", // escape
    32: "ok", // space
    33: "pageup", // pageup
    34: "pagedown", // pagedown
    37: "left", // left arrow
    38: "up", // up arrow
    39: "right", // right arrow
    40: "down", // down arrow
    45: "escape", // insert
    65: "a", // A
    81: "pageup", // Q
    87: "pagedown", // W
    88: "escape", // X
    90: "ok", // Z
    96: "escape", // numpad 0
    98: "down", // numpad 2
    100: "left", // numpad 4
    102: "right", // numpad 6
    104: "up", // numpad 8
    120: "debug" // F9
};

(2)把你想要的键的ASCII码插入上面的字段中,再起一个字符串的键名(不要和已有名字重复),比如我添加的就是【65: "a", // A】这一行,意思是把ASCII码为65的A键插入输入表中,并命名为"a"。

(3)在条件分歧的脚本中输入【Input.isPressed("a")】,其中"a"是你刚才起的键名。

(4)按下A键即可触发该条件分歧(当然还要设置好公共事件,这个不用多说了吧)。

嘛,以上,算是我个人的一点很菜很菜的小经验,大佬不用看,新人用不着,专供跟我一样懂一点代码,但既非专业又懒得深钻的朋友参考吧。
作者: nfsq6h    时间: 2022-3-28 01:39
慢着,我这个思路好像有问题,目前发现只能加进去一个键,多了就不识别了。比如同时加1、2、3、A,结果只有输入1才识别。也是蛮扯的。
我继续研究一下哪里有问题。
作者: nfsq6h    时间: 2022-3-28 01:49
哦,懂了,用写字板查看了一下,又用我才疏学浅的JAVA知识推测一下……
应该是加的时候用的记事本,加的所有信息打在同一行里了,倒霉催的JAVA不识别。
即成了这样:
Input.keyMapper = {
    9: "tab", // tab
    13: "ok", // enter
    16: "shift", // shift
    17: "control", // control
    18: "control", // alt
    27: "escape", // escape
    32: "ok", // space
    33: "pageup", // pageup
    34: "pagedown", // pagedown
    37: "left", // left arrow
    38: "up", // up arrow
    39: "right", // right arrow
    40: "down", // down arrow
    45: "escape", // insert

    49: "1", // 1    50: "2", // 2    51: "3", // 3    65: "a", // A
    81: "pageup", // Q
    87: "pagedown", // W
    88: "escape", // X
    90: "ok", // Z
    96: "escape", // numpad 0
    98: "down", // numpad 2
    100: "left", // numpad 4
    102: "right", // numpad 6
    104: "up", // numpad 8
    120: "debug" // F9
};

用IDE加,或者整几个换行符应该就搞定了。我上visual studio试试。
果然,之前2、3、A那几行全被当成注释了……躺平。
OK成了。
这次录入成这样,问题解决。
Input.keyMapper = {
    9: "tab", // tab
    13: "ok", // enter
    16: "shift", // shift
    17: "control", // control
    18: "control", // alt
    27: "escape", // escape
    32: "ok", // space
    33: "pageup", // pageup
    34: "pagedown", // pagedown
    37: "left", // left arrow
    38: "up", // up arrow
    39: "right", // right arrow
    40: "down", // down arrow
    45: "escape", // insert
    49: "1", // 1   
    50: "2", // 2   
    51: "3", // 3   
    65: "a", // A
    81: "pageup", // Q
    87: "pagedown", // W
    88: "escape", // X
    90: "ok", // Z
    96: "escape", // numpad 0
    98: "down", // numpad 2
    100: "left", // numpad 4
    102: "right", // numpad 6
    104: "up", // numpad 8
    120: "debug" // F9
};
作者: 13648190411    时间: 2022-4-9 20:27
我发过一个任意按键触发公共事件的插件哦,可以用一用
作者: tseyik    时间: 2022-4-11 14:24
本帖最后由 tseyik 于 2022-4-11 14:26 编辑








欢迎光临 Project1 (https://rpg.blue/) Powered by Discuz! X3.1