查看: 2163|回复: 6

[已经解决] 如何用脚本实现事件中的数值输入处理?

[复制链接]
梦石
0
星屑
701
在线时间
511 小时
注册时间
2012-4-8
回帖
193
发表于 2015-2-12 09:58:10 | 显示全部楼层 |阅读模式

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

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

×
直接Window_NumberInput.new没反应
武侠|养成|战棋游戏《以武证道》头秃开发中...
开发日记在此

…あたしは天

梦石
0
星屑
2308
在线时间
4033 小时
注册时间
2010-10-4
回帖
10548

开拓者贵宾

发表于 2015-2-12 10:24:11 | 显示全部楼层
见 Game_Interpreter#command_103 的定义

事件本身就是这么实现的
回复

使用道具 举报

梦石
0
星屑
701
在线时间
511 小时
注册时间
2012-4-8
回帖
193
 楼主| 发表于 2015-2-12 10:45:20 | 显示全部楼层
taroxd 发表于 2015-2-12 10:24
见 Game_Interpreter#command_103 的定义

事件本身就是这么实现的

那去哪里设定param啊
武侠|养成|战棋游戏《以武证道》头秃开发中...
开发日记在此
回复

使用道具 举报

…あたしは天

梦石
0
星屑
2308
在线时间
4033 小时
注册时间
2010-10-4
回帖
10548

开拓者贵宾

发表于 2015-2-12 10:49:48 | 显示全部楼层
黑白界 发表于 2015-2-12 10:45
那去哪里设定param啊

直接写呗。params 的内容就是事件指令里的两个设置项目(变量ID,位数)。
回复

使用道具 举报

梦石
0
星屑
701
在线时间
511 小时
注册时间
2012-4-8
回帖
193
 楼主| 发表于 2015-2-12 10:55:59 | 显示全部楼层
taroxd 发表于 2015-2-12 10:49
直接写呗。params 的内容就是事件指令里的两个设置项目(变量ID,位数)。 ...

  def command_103
    wait_for_message
    setup_num_input(@params)
    Fiber.yield while $game_message.num_input?
  end

我把其中的
    wait_for_message
    setup_num_input(@params)
    Fiber.yield while $game_message.num_input?
取出来
wait_for_message不需要,删掉
直接设置
    $game_message.num_input_variable_id = 1
    $game_message.num_input_digits_max = 3
然后问题来了
    Fiber.yield while $game_message.num_input?
是什么玩意?
放到哪都显示can't yield from root fiber
武侠|养成|战棋游戏《以武证道》头秃开发中...
开发日记在此
回复

使用道具 举报

…あたしは天

梦石
0
星屑
2308
在线时间
4033 小时
注册时间
2010-10-4
回帖
10548

开拓者贵宾

发表于 2015-2-12 11:00:15 | 显示全部楼层
黑白界 发表于 2015-2-12 10:55
def command_103
    wait_for_message
    setup_num_input(@params)

意思是一直等待到输入完成后才继续执行事件指令。

如果你不是在事件脚本中使用的话,这句话不需要

评分

参与人数 2星屑 +182 收起 理由
熊喵酱 + 132 认可答案
黑白界 + 50 认可答案

查看全部评分

回复

使用道具 举报

梦石
0
星屑
701
在线时间
511 小时
注册时间
2012-4-8
回帖
193
 楼主| 发表于 2015-2-12 12:17:32 | 显示全部楼层
taroxd 发表于 2015-2-12 11:00
意思是一直等待到输入完成后才继续执行事件指令。

如果你不是在事件脚本中使用的话,这句话不需要 ...


还是有一些问题
[pre lang="ruby"]class Window_ShopNumber < Window_Selectable
  #--------------------------------------------------------------------------
  # ● 更新画面
  #--------------------------------------------------------------------------
  def update
    super
    if active
      last_number = @number
      update_number if @time==false
      if @number != last_number
        Sound.play_cursor
        refresh
        msgbox"3"
      end
    end
  end
  #--------------------------------------------------------------------------
  # ● 更新数量
  #--------------------------------------------------------------------------
  def update_number
    msgbox"1"
    $game_message.num_input_variable_id = $shuliangbianliang
    $game_message.num_input_digits_max = 3
    @number=$game_variables[$shuliangbianliang]
    @time=true
  end
end[/pre]
这是代码
QQ拼音截图未命名1.png
QQ拼音截图未命名2.png
QQ拼音截图未命名3.png
QQ拼音截图未命名4.png
QQ拼音截图未命名5.png
消息“1”输出了,说明窗口应该生成了;
消息“3”输出了,说明数字也变更了;
可是窗口没有。。返回地图时窗口才生成

点评

本来就只有地图上有数值显示的窗口啊  发表于 2015-2-12 12:53
武侠|养成|战棋游戏《以武证道》头秃开发中...
开发日记在此
回复

使用道具 举报

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

本版积分规则

Powered by Discuz! X5.0 © 2001-2026 Discuz! Team.

在本版发帖返回顶部