Project1

标题: 求按键跳过对话或者加速对话的方法 [打印本页]

作者: shellingford57    时间: 2013-4-3 10:47
标题: 求按键跳过对话或者加速对话的方法
本帖最后由 shellingford57 于 2013-4-3 21:23 编辑

本来想做全按键——判断当按下某个键时跳转标签到某处。但是对话中人家根本不理我的按键判定啊悲愤TAT
也考虑过用脚本但是不会代入那个/>的效果……
实在萎了……
作者: j433463    时间: 2013-4-3 11:01
也许可以试着在 Window_Massage 脚本中 def update_show_fast 这个地方做手脚,加上一行:
  1. 要做的动作 if Input.trigger?(:X)
复制代码
这个既然可以按 :C 快进,那应该也可以按 :X 做指定动作。
作者: 喵呜喵5    时间: 2013-4-3 14:38
本帖最后由 喵呜喵5 于 2013-4-5 12:39 编辑

RUBY 代码复制
  1. =begin
  2.  
  3. ===============================================================================
  4.   快进对话 By喵呜喵5
  5. ===============================================================================
  6. 【说明】
  7. 相当简单的脚本,按住按键快速显示对话
  8. 第一次写脚本,可能有BUG,咱不负责修正……
  9. 修改了默认Window_Message中的
  10. [update_show_fast][wait_for_one_character][input_pause]
  11. 因此会与修改了相同内容的其他脚本不兼容
  12.  
  13. =end
  14.  
  15. #==============================================================================
  16. #  设定部分
  17. #==============================================================================
  18.  
  19. module M5faMes
  20.   BUT = Input::CTRL  #这里设置对话快进的按键,默认为CTRL
  21. end
  22.  
  23. #==============================================================================
  24. #  设定结束
  25. #==============================================================================
  26.  
  27. #==============================================================================
  28. #  脚本部分
  29. #==============================================================================
  30.  
  31. class Window_Message < Window_Base
  32.  
  33.   def update_show_fast
  34.     @show_fast = true if Input.trigger?(:C)||Input.press?(M5faMes::BUT)
  35.   end
  36.   def wait_for_one_character
  37.     update_show_fast
  38.     Fiber.yield unless @show_fast || @line_show_fast||Input.press?(M5faMes::BUT)
  39.   end
  40.   def input_pause
  41.     self.pause = true
  42.     wait(10)
  43.     Fiber.yield until Input.trigger?(:B) || Input.trigger?(:C)||Input.press?(M5faMes::BUT)
  44.     Input.update
  45.     self.pause = false
  46.   end
  47.  
  48. end
  49.  
  50. #==============================================================================
  51. #  脚本结束
  52. #==============================================================================

作者: shellingford57    时间: 2013-4-3 18:32
喵呜喵5 发表于 2013-4-3 14:38
=begin
===============================================================================
  快进对话 By ...

非常感谢!后面那个脚本确实实现了加速对话,但是想要切换到下一个对话还是要按下空格才行,我再仔细研究研究,多谢楼上两位了!
作者: 喵呜喵5    时间: 2013-4-3 19:25
shellingford57 发表于 2013-4-3 18:32
非常感谢!后面那个脚本确实实现了加速对话,但是想要切换到下一个对话还是要按下空格才行,我再仔细研究 ...

嗯?不能切到下一句对话?测试的时候正常的啊

是[按住]Ctrl键不是[按下]Ctrl键哟
作者: shellingford57    时间: 2013-4-3 21:22
喵呜喵5 发表于 2013-4-3 19:25
嗯?不能切到下一句对话?测试的时候正常的啊

是[按住]Ctrl键不是[按下]Ctrl键哟 ...

是一直按住的。所以我在看是不是我有其他什么和对话框有关的脚本发生了冲突……
作者: 喵呜喵5    时间: 2013-4-3 21:33
shellingford57 发表于 2013-4-3 21:22
是一直按住的。所以我在看是不是我有其他什么和对话框有关的脚本发生了冲突…… ...

切换对话的方法在“def input_pause”中,请搜索这个关键字
比较简单粗暴的方法是直接把本脚本放在main以上其他脚本以下……
作者: shellingford57    时间: 2013-4-4 10:33
喵呜喵5 发表于 2013-4-3 21:33
切换对话的方法在“def input_pause”中,请搜索这个关键字
比较简单粗暴的方法是直接把本脚本放在main以 ...

我一般新插脚本都是MAIN上面其他脚本下面的。。。


def input_pause的话,windowsmessage里有一段

#--------------------------------------------------------------------------
  # ● 处理输入等待
  #--------------------------------------------------------------------------
  def input_pause
    self.pause = true
    wait(10)
    Fiber.yield until Input.trigger?(:B) || Input.trigger?(:C)
    Input.update
    self.pause = false
  end

你的脚本里有一段
def input_pause
    self.pause = true
    wait(10)
    Fiber.yield until Input.trigger?(:B) || Input.trigger?(:C)||Input.press?(M5faMes::BUT)
    Input.update
    self.pause = false
  end
end

我就是没看懂那个M5faMes::BUT是啥TAT
作者: j433463    时间: 2013-4-4 12:13
shellingford57 发表于 2013-4-4 10:33
我一般新插脚本都是MAIN上面其他脚本下面的。。。

RUBY 代码复制
  1. #==============================================================================
  2. #  设定部分
  3. #==============================================================================
  4. module M5faMes
  5.   BUT = Input::CTRL
  6.   #这里设置对话快进的按键,默认为CTRL
  7. end


没注意到这个?




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