Project1
标题:
如何使用腳本模擬按下[特殊]按鈕的....[求助]
[打印本页]
作者:
play337
时间:
2021-5-26 13:12
标题:
如何使用腳本模擬按下[特殊]按鈕的....[求助]
本帖最后由 play337 于 2021-5-26 15:29 编辑
我如果使用 PictureCallCommon.js
01. 創建一個[圖片1]按下 k 鍵
02. 事件輸入腳本
Input._currentState["k"] = true;
結果他會按一下有反應... 但是第二下就沒有反應了...
那輸入錯誤嗎?
------------------------------
我發現如果我做另一個按鈕[圖片2]輸入腳本
Input._currentState["k"] = false;
這樣就必須要按一下[圖片1]放出去...在按一下[圖片2]取消
------------------------------
但是如果把它們放在一起
Input._currentState["k"] = true;
Input._currentState["k"] = false;
這樣就又不會跑
------------------------------
但是如果把它們放在一起加入一個等待...
Input._currentState["k"] = true;
this.wait(500);
Input._currentState["k"] = false;
這樣還是不會跑
------------------------------
但是如果把它們放在一起加入一個加100金幣
Input._currentState["k"] = true;
$gameParty.gainGold(100);
Input._currentState["k"] = false;
$gameParty.gainGold(100);
就會變成 加200金幣 但是不會跑...
---------------------------------
Input._currentState["k"] = true;
我發現 K 如果是 方向鍵 ... 他好像是會 一直走 走到底... 黏住 除非你執行
Input._currentState["k"] = false;
但是他們又不能放在一起... 真頭大
---------------------------------
Input.isTriggered('k')
改成這個也不會動...
請教各位大佬 有解嗎 ?
作者:
zths
时间:
2021-5-26 14:33
本帖最后由 zths 于 2021-5-26 15:28 编辑
//KeyEvent 事件属性 或者一个按键字(仅限 a-z 0-9)
function fireKeyEv(keyOrOption,time){
return new Promise(function(r,rj){
var opt;
if (typeof keyOrOption === 'string' || keyOrOption instanceof String){
var keycode = keyOrOption.toUpperCase().charCodeAt(0);
opt = {
key: keyOrOption[0],
which: keycode,
code: "Key"+keyOrOption.toUpperCase()[0],
keyCode: keycode
};
}else{
opt = keyOrOption;
}
if(time === undefined){
time = 300;
}
var downEv = new KeyboardEvent("keydown", opt);
var pressEv = new KeyboardEvent("keypress", opt);
var upEv = new KeyboardEvent("keyup", opt);
document.dispatchEvent(downEv);
var inv = setInterval(function(){
document.dispatchEvent(downEv);
document.dispatchEvent(pressEv);
}, 500);
setTimeout(function(){
r();
clearInterval(inv);
document.dispatchEvent(pressEv);
document.dispatchEvent(upEv);
}, time)
});
}
(async function(){
await fireKeyEv("x");
await fireKeyEv({keyCode: 40});//{key:"ArrowDown", which:40, keyCode:40, code:"ArrowDown"}
await fireKeyEv("z");
await fireKeyEv("z");
})();
复制代码
试试.
作者:
play337
时间:
2021-5-26 15:28
剪貼簿-2.png
(21.45 KB, 下载次数: 23)
下载附件
保存到相册
2021-5-26 15:02 上传
作者:
play337
时间:
2021-5-26 15:48
zths 发表于 2021-5-26 14:33
试试.
ReferenceError: n3 is not defined
作者:
play337
时间:
2021-5-26 15:51
Game_Temp.prototype.loadInput = function() {
Input.keyMapper[97] = 'n1';
Input.keyMapper[98] = 'n2';
Input.keyMapper[99] = 'n3';
Input.keyMapper[101] = 'n5';
Input.keyMapper[74] = 'j';
Input.keyMapper[75] = 'k';
Input.keyMapper[76] = 'l';
Input.keyMapper[73] = 'i';
};
----------------------------
如果我要從腳本裡面 呼叫按下 n3 這個按鈕 我應該要如何做呢 ?
我現在在腳本用 fireKeyEv(n3,300)
結果還是錯誤...
作者:
zths
时间:
2021-5-26 15:57
本帖最后由 zths 于 2021-5-26 15:59 编辑
fireKeyEv({keyCode: 99});
https://keycode.info/
欢迎光临 Project1 (https://rpg.blue/)
Powered by Discuz! X3.1