设为首页收藏本站|繁體中文

Project1

 找回密码
 注册会员
搜索
查看: 2572|回复: 2
打印 上一主题 下一主题

[有事请教] $gameMessage.setChoiceCallback 這個函數要怎麼用

[复制链接]

Lv1.梦旅人

梦石
0
星屑
59
在线时间
5 小时
注册时间
2019-3-12
帖子
3
跳转到指定楼层
1
发表于 2019-4-12 23:15:27 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式

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

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

x
$gameMessage.setChoiceCallback(function(n) {

});       

這個function我知道配合$gameMessage.setChoices() 可以透過那個n知道玩家選了第幾個選項

可是我想用成 例如n不等於3的時候會跑出對話框說你錯了

像這樣

$gameMessage.setChoiceCallback(function(n) {
        if(n!=3)
                $gameMessage.add("wrong");
});       

可是這個對話框就是跑不出來

如果我想讓他照我這樣說的跑 應該怎麼用才對呢

               

Lv3.寻梦者

梦石
0
星屑
3414
在线时间
461 小时
注册时间
2013-12-7
帖子
333
2
发表于 2019-4-13 13:20:37 | 只看该作者
本帖最后由 ekmomo 于 2019-4-13 13:31 编辑

第一、需要用到一个requestAnimationFrame
  1. $gameMessage.setChoiceCallback(function(n) {
  2. if(n!=3) requestAnimationFrame(function(){
  3. $gameMessage.add("wrong")
  4. });
  5. });        
复制代码

第二、需要在生成选项后执行第一条中的脚本,否则生成选项时会覆盖掉$gameMessage._choiceCallback。你可以在选项生成后用控制台调用第一条中的脚本验证有效性。
第三、基于第二条原因,且因为在默认事件编辑器选项生成后,选项点击前无法执行脚本,所以setChoiceCallback实际上没什么卵用,你可以插入以下脚本(在选项前)
  1. $gameMessage.onChoice = function(n){
  2. Game_Message.prototype.onChoice.apply(this, arguments);        
  3. if(n!=3) requestAnimationFrame(function(){
  4. $gameMessage.add("wrong")
  5. });
  6. }
复制代码

然后,在选项执行后插入以下脚本还原onChoice方法
JAVASCRIPT 代码复制
  1. $gameMessage.onChoice = Game_Message.prototype.onChoice;

当然,更值得推荐的做法是写成插件,重写onChoiece方法。
回复 支持 反对

使用道具 举报

Lv1.梦旅人

梦石
0
星屑
59
在线时间
5 小时
注册时间
2019-3-12
帖子
3
3
 楼主| 发表于 2019-4-13 21:41:14 | 只看该作者
謝謝大大
回复 支持 反对

使用道具 举报

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

本版积分规则

拿上你的纸笔,建造一个属于你的梦想世界,加入吧。
 注册会员
找回密码

站长信箱:[email protected]|手机版|小黑屋|无图版|Project1游戏制作

GMT+8, 2024-5-13 08:53

Powered by Discuz! X3.1

© 2001-2013 Comsenz Inc.

快速回复 返回顶部 返回列表