Project1
标题:
$gameMessage.setChoiceCallback 這個函數要怎麼用
[打印本页]
作者:
乾淨的灰塵
时间:
2019-4-12 23:15
标题:
$gameMessage.setChoiceCallback 這個函數要怎麼用
$gameMessage.setChoiceCallback(function(n) {
});
這個function我知道配合$gameMessage.setChoices() 可以透過那個n知道玩家選了第幾個選項
可是我想用成 例如n不等於3的時候會跑出對話框說你錯了
像這樣
$gameMessage.setChoiceCallback(function(n) {
if(n!=3)
$gameMessage.add("wrong");
});
可是這個對話框就是跑不出來
如果我想讓他照我這樣說的跑 應該怎麼用才對呢
作者:
ekmomo
时间:
2019-4-13 13:20
本帖最后由 ekmomo 于 2019-4-13 13:31 编辑
第一、需要用到一个requestAnimationFrame
$gameMessage.setChoiceCallback(function(n) {
if(n!=3) requestAnimationFrame(function(){
$gameMessage.add("wrong")
});
});
复制代码
第二、需要在生成选项后执行第一条中的脚本,否则生成选项时会覆盖掉$gameMessage._choiceCallback。你可以在选项生成后用控制台调用第一条中的脚本验证有效性。
第三、基于第二条原因,且因为在默认事件编辑器选项生成后,选项点击前无法执行脚本,所以setChoiceCallback实际上没什么卵用,你可以插入以下脚本(在选项前)
$gameMessage.onChoice = function(n){
Game_Message.prototype.onChoice.apply(this, arguments);
if(n!=3) requestAnimationFrame(function(){
$gameMessage.add("wrong")
});
}
复制代码
然后,在选项执行后插入以下脚本还原onChoice方法
JAVASCRIPT 代码
复制
$gameMessage.
onChoice
= Game_Message.
prototype
.
onChoice
;
$gameMessage.
onChoice
= Game_Message.
prototype
.
onChoice
;
当然,更值得推荐的做法是写成插件,重写onChoiece方法。
作者:
乾淨的灰塵
时间:
2019-4-13 21:41
謝謝大大
欢迎光临 Project1 (https://rpg.blue/)
Powered by Discuz! X3.1