本帖最后由 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方法
$gameMessage.onChoice = Game_Message.prototype.onChoice;
$gameMessage.onChoice = Game_Message.prototype.onChoice;
当然,更值得推荐的做法是写成插件,重写onChoiece方法。 |