查看: 4632|回复: 4

[已经过期] 关于文字显示速度的问题

[复制链接]
梦石
1
星屑
5154
在线时间
1004 小时
注册时间
2012-5-14
回帖
44

开拓者

发表于 2016-3-31 12:26:05 | 显示全部楼层 |阅读模式

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

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

×
刚刚用了喵呜喵5大神的文字显示速度控制脚本,但是碰到了问题。
即使把指定的变量设置到1,文字显示速度也非常慢(相当于范例中设置为30的速度),设置为0后就变成瞬间显示了。
请问这会是什么问题呢?

[pre lang="ruby"]=begin
===============================================================================
  文字显示速度控制 By喵呜喵5
===============================================================================

【说明】

  1、通过一个变量控制显示文字的速度

  2、通过一个按键来快进对话(可能与其他脚本存在冲突)

  3、对话中自由停顿指定时长

【说明】

  关于自由停顿:

  使用转义字符\w[x]对话将停顿x帧,停顿过程中可以按键跳过停顿

  使用转义字符\nw[x]对话将停顿x帧,无法跳过停顿

=end
$m5script ||= {};$m5script[:M5MT20131130] = 20141218
module M5MT20131130
#==============================================================================
#  设定部分
#==============================================================================

  SPE = 15

  # 在这里设置控制对话速度的变量ID

  BUT = :CTRL

  # 在这里设置快进对话的按键

    SWI = 0

    # 当对应ID的开关打开时,不使用快进对话按键的功能

    OFF = false

    # 设置为 true 时,快进对话按键功能将被关闭
    # 当快进对话按键功能与其他脚本发生冲突时,
    # 请尝试将这里设置成 true 并将本脚本放在冲突脚本之下

#==============================================================================
#  设定结束
#==============================================================================
  def self.button_off
    OFF || $game_switches[SWI]
  end
end
class Window_Message
  alias m5_wait_for_one_character wait_for_one_character
  def wait_for_one_character
    [$game_variables[M5MT20131130::SPE], 0].max.times do |i|
      m5_wait_for_one_character
    end
  end
  alias m5_20131130_process_escape_character process_escape_character
  def process_escape_character(code, text, pos)
    case code.upcase
    when 'W'
      [obtain_escape_param(text),0].max.times do |i|
        update_show_fast
        Fiber.yield unless @show_fast || @line_show_fast
      end
    when 'NW'
      ([obtain_escape_param(text),0].max).times { Fiber.yield }
    else
      m5_20131130_process_escape_character(code, text, pos)
    end
  end
  alias m5_20131130_update_show_fast update_show_fast
  def update_show_fast
    m5_20131130_update_show_fast
    return if M5MT20131130.button_off
    @show_fast = @show_fast || Input.press?(M5MT20131130::BUT)
  end
  alias m5_20141218_wait wait
  def m5_20141218_wait(duration)
    return m5_20141218_wait if M5MT20131130.button_off
    [duration,0].max.times do |i|
      Fiber.yield unless Input.press?(M5MT20131130::BUT)
    end
  end
  alias m5_20141218_input_pause input_pause
  def input_pause
    return m5_20141218_input_pause if M5MT20131130.button_off
    self.pause = true
    wait(10)
    Fiber.yield until Input.trigger?(:B) || Input.trigger?(:C)||\
      Input.press?(M5MT20131130::BUT)
    Input.update
    self.pause = false
  end
end[/pre]

梦石
0
星屑
9716
在线时间
2775 小时
注册时间
2008-9-5
回帖
3458

开拓者短篇八RM组冠军短篇九导演组亚军白银编剧

发表于 2016-3-31 12:38:58 | 显示全部楼层
本帖最后由 cinderelmini 于 2016-3-31 12:41 编辑

似乎代码框81~87行要改成:
  1. alias m5_20141218_wait wait
  2.   def wait(duration)
  3.     return m5_20141218_wait(duration) if M5MT20131130.button_off
  4.     [duration,0].max.times do |i|
  5.       Fiber.yield unless Input.press?(M5MT20131130::BUT)
  6.     end
  7.   end
复制代码
嘛……也许M5这样做也有原因的……
窝只是猜猜……

点评

0□0 居然真的是手滑…………  发表于 2016-3-31 14:26
我也以为我这样做是有原因的,但是翻了好久脚本的历史版本之后我发现确实是我手滑了……不过这个是按键跳过对话功能使用的代码  发表于 2016-3-31 13:57
回复

使用道具 举报

梦石
1
星屑
5154
在线时间
1004 小时
注册时间
2012-5-14
回帖
44

开拓者

 楼主| 发表于 2016-3-31 13:00:09 | 显示全部楼层
cinderelmini 发表于 2016-3-31 12:38
似乎代码框81~87行要改成:嘛……也许M5这样做也有原因的……
窝只是猜猜…… ...

呃,好像还是没有效果……
回复

使用道具 举报

梦石
1
星屑
23246
在线时间
9564 小时
注册时间
2012-6-19
回帖
7018

开拓者短篇九导演组冠军

发表于 2016-3-31 13:34:32 | 显示全部楼层
shadowearl1 发表于 2016-3-31 13:00
呃,好像还是没有效果……

脚本页面附带有范例工程,下载下来试试看是否能够使用
回复

使用道具 举报

梦石
1
星屑
5154
在线时间
1004 小时
注册时间
2012-5-14
回帖
44

开拓者

 楼主| 发表于 2016-3-31 18:43:00 | 显示全部楼层
喵呜喵5 发表于 2016-3-31 13:34
脚本页面附带有范例工程,下载下来试试看是否能够使用

新开工程就能用,但是原来那个工程用了很多其他的脚本,但也不报错,就是显示速度有问题

点评

那大概新加的对话相关脚本绕过了默认的方法……点蜡烛……  发表于 2016-3-31 20:35
似乎还是不起作用……  发表于 2016-3-31 19:20
把这个显示速度的脚本放在最接近Main的地方……  发表于 2016-3-31 18:59
回复

使用道具 举报

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

本版积分规则

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

在本版发帖返回顶部