Project1

标题: 如何用脚本实现事件中的数值输入处理? [打印本页]

作者: 黑白界    时间: 2015-2-12 09:58
标题: 如何用脚本实现事件中的数值输入处理?
直接Window_NumberInput.new没反应
作者: taroxd    时间: 2015-2-12 10:24
见 Game_Interpreter#command_103 的定义

事件本身就是这么实现的
作者: 黑白界    时间: 2015-2-12 10:45
taroxd 发表于 2015-2-12 10:24
见 Game_Interpreter#command_103 的定义

事件本身就是这么实现的

那去哪里设定param啊
作者: taroxd    时间: 2015-2-12 10:49
黑白界 发表于 2015-2-12 10:45
那去哪里设定param啊

直接写呗。params 的内容就是事件指令里的两个设置项目(变量ID,位数)。
作者: 黑白界    时间: 2015-2-12 10:55
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

作者: taroxd    时间: 2015-2-12 11:00
黑白界 发表于 2015-2-12 10:55
def command_103
    wait_for_message
    setup_num_input(@params)

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

如果你不是在事件脚本中使用的话,这句话不需要
作者: 黑白界    时间: 2015-2-12 12:17
taroxd 发表于 2015-2-12 11:00
意思是一直等待到输入完成后才继续执行事件指令。

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


还是有一些问题
RUBY 代码复制
  1. class Window_ShopNumber < Window_Selectable
  2.   #--------------------------------------------------------------------------
  3.   # ● 更新画面
  4.   #--------------------------------------------------------------------------
  5.   def update
  6.     super
  7.     if active
  8.       last_number = @number
  9.       update_number if @time==false
  10.       if @number != last_number
  11.         Sound.play_cursor
  12.         refresh
  13.         msgbox"3"
  14.       end
  15.     end
  16.   end
  17.   #--------------------------------------------------------------------------
  18.   # ● 更新数量
  19.   #--------------------------------------------------------------------------
  20.   def update_number
  21.     msgbox"1"
  22.     $game_message.num_input_variable_id = $shuliangbianliang
  23.     $game_message.num_input_digits_max = 3
  24.     @number=$game_variables[$shuliangbianliang]
  25.     @time=true
  26.   end
  27. end

这是代码





消息“1”输出了,说明窗口应该生成了;
消息“3”输出了,说明数字也变更了;
可是窗口没有。。返回地图时窗口才生成




欢迎光临 Project1 (https://rpg.blue/) Powered by Discuz! X3.1