扫描二维码关注官方公众号
返回列表
+ 发新帖
查看: 163|回复: 0

[转载发布] [简单实用]续行符创建超长文章

[复制链接]
累计送礼:
0 个
累计收礼:
0 个
  • TA的每日心情
    开心
    昨天 18:01
  • 签到天数: 114 天

    连续签到: 4 天

    [LV.6]常住居民II

    2338

    主题

    403

    回帖

    1万

    积分

    管理员

    Rank: 9Rank: 9Rank: 9

    VIP
    6
    卡币
    10622
    OK点
    16
    推广点
    0
    同能卷
    0
    积分
    13391

    灌水之王

    发表于 2024-4-19 16:11:20 | 显示全部楼层 |阅读模式
    没记错的话这是站上第4个长文章脚本了吧。。。。

    效果:通过在“显示文章”的事件末尾加上续行符"_",可以实现文章的连续显示,不需要进行特殊设置。最大可以显示12行(超过12行,屏幕也不够用了)

    使用方法:将以下脚本插入到Main之前,在需要文章连辍显示的场合,在“显示文章”的文本最后一行末尾处,加入一个空格和一个下划线,例:
    显示文章:这是第一行
               这是第二行
               这是第三行
               这是第四行 _
    显示文章:这是第五行
               这是第六行 _
    显示选择项:C1,C2,C3

    以上事件在游戏里将会变成一个大文本框,里面有九行,最后三行是选择项
    ......
    注意:
    1. 续行符仅写在“显示文章”事件的最后一行末尾才有效果,写在中间行末尾会被直接过滤掉,写在不是行末尾的地方会当作普通字符显示,续行符对后续的“显示文章”“显示选择项”“输入数值”均有收纳作用。
    2. 续行符前面必须有一个空格,否则会当作普通字符显示出来且没有效果。
    3. 当文章长度已经积累到12行时,续行符失效。

    脚本(有完整注释,如果你使用了小字体导致允许显示12行以上的文章,可以修改相应地方):[code]#============================================================================# ■ 续行符文章连辍显示 by SailCat#============================================================================class Window_Message  alias sailcat_refresh refresh  #--------------------------------------------------------------------------  # ● 刷新  #--------------------------------------------------------------------------  def refresh    lines = 0    $game_temp.message_text.each {lines += 1}    lines = 4 if lines < 4    self.height = lines * 32 + 32    self.contents = Bitmap.new(width - 32, height - 32)    reset_window    sailcat_refresh  end  #--------------------------------------------------------------------------  # ● 设置窗口位置与不透明度  #--------------------------------------------------------------------------  def reset_window    if $game_temp.in_battle      self.y = 16    else      case $game_system.message_position      when 0  # 上        self.y = 16      when 1  # 中        self.y = 240 - self.height / 2      when 2  # 下        self.y = 464 - self.height      end    end    if $game_system.message_frame == 0      self.opacity = 255    else      self.opacity = 0    end    self.back_opacity = 160  endendclass Interpreter  #--------------------------------------------------------------------------  # ● 显示文章  #--------------------------------------------------------------------------  def command_101    # 另外的文章已经设置过 message_text 的情况下    if $game_temp.message_text != nil      # 结束      return false    end    # 设置信息结束后待机和返回调用标志    @message_waiting = true    $game_temp.message_proc = Proc.new { @message_waiting = false }    # message_text 设置为 1 行    $game_temp.message_text = @list[@index].parameters[0] + "\n"    line_count = 1    # 最大 4 行    line_max = 4    # 循环    loop do      # 下一个事件指令为文章两行以上的情况      if @list[@index+1].code == 401        # message_text 添加到第 2 行以下        $game_temp.message_text += @list[@index+1].parameters[0] + "\n"        line_count += 1      # 下一个事件指令为显示文章,且本行末尾有续行标记的情况      elsif @list[@index+1].code == 101 and @list[@index].parameters[0][-2, 2] == " _"        # 如果已经达到 12 行就返回        if line_count == 12          # 清除续行标记          $game_temp.message_text.gsub!(/ _$/, "")           # 继续          return true        end        # message_text 添加到第 2 行以下        $game_temp.message_text += @list[@index+1].parameters[0] + "\n"        line_count += 1        # 增加 4 行空间,最多 12 行        line_max += 4 if line_max < 12      # 事件指令不在文章两行以下的情况      else        # 如果本行末尾有续行标记则增加到 12 行        if @list[@index].parameters[0][-2, 2] == " _"          line_max = 12        end        # 下一个事件指令为显示选择项的情况下        if @list[@index+1].code == 102          # 如果选择项能收纳在画面里          if @list[@index+1].parameters[0].size
    天天去同能,天天有童年!
    回复 送礼论坛版权

    使用道具 举报

    文明发言,和谐互动
    文明发言,和谐互动
    高级模式
    您需要登录后才可以回帖 登录 | 立即注册

    本版积分规则

    关闭

    幸运抽奖

    社区每日抽奖来袭,快来试试你是欧皇还是非酋~

    立即查看

    聊天机器人
    Loading...

    QQ|Archiver|手机版|小黑屋|同能RPG制作大师 ( 沪ICP备12027754号-3 )

    GMT+8, 2025-3-15 00:05 , Processed in 0.112662 second(s), 53 queries .

    Powered by Discuz! X3.4

    Copyright © 2001-2020, Tencent Cloud.

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