设为首页收藏本站|繁體中文

Project1

 找回密码
 注册会员
搜索
查看: 1175|回复: 2
打印 上一主题 下一主题

急!遇到个续行符显示超长文章的问题!

 关闭 [复制链接]

Lv1.梦旅人

梦石
0
星屑
360
在线时间
1 小时
注册时间
2009-5-16
帖子
1
跳转到指定楼层
1
发表于 2009-5-16 00:10:11 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式

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

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

x
如题,我用了
http://rpg.blue/viewthread.php?tid=66027
这里的长文章显示方法,但是会出现Window——Message的if $game_temp.num_input_variable_id > 0问题,说是NILclass没有 “>”的方法。弄了一下午都没能解决!
同时还有个问题,请问有没有RMXP相关的QQ群?想加入学习交流,谢谢![
QQ群,非常非常想加,有吗?
此贴于 2009-5-18 13:59:26 被版主darkten提醒,请楼主看到后对本贴做出回应。
版务信息:版主帮忙结贴~

Lv1.梦旅人

v

梦石
0
星屑
50
在线时间
55 小时
注册时间
2007-12-19
帖子
99
2
发表于 2009-5-17 18:22:19 | 只看该作者
猫姐的脚本哦。这个脚本有点问题,第98行多了一个or
       # 下一个事件指令为处理输入数值的情况下
       elsif @list[@index+1].code == 103 or
以下是修改好的脚本
  1. #============================================================================
  2. # ■ 续行符文章连辍显示 by SailCat
  3. #============================================================================
  4. class Window_Message
  5. alias sailcat_refresh refresh
  6. #--------------------------------------------------------------------------
  7. # ● 刷新
  8. #--------------------------------------------------------------------------
  9. def refresh
  10.    lines = 0
  11.    $game_temp.message_text.each {lines += 1}
  12.    lines = 4 if lines < 4
  13.    self.height = lines * 32 + 32
  14.    self.contents = Bitmap.new(width - 32, height - 32)
  15.    reset_window
  16.    sailcat_refresh
  17. end
  18. #--------------------------------------------------------------------------
  19. # ● 设置窗口位置与不透明度
  20. #--------------------------------------------------------------------------
  21. def reset_window
  22.    if $game_temp.in_battle
  23.      self.y = 16
  24.    else
  25.      case $game_system.message_position
  26.      when 0  # 上
  27.        self.y = 16
  28.      when 1  # 中
  29.        self.y = 240 - self.height / 2
  30.      when 2  # 下
  31.        self.y = 464 - self.height
  32.      end
  33.    end
  34.    if $game_system.message_frame == 0
  35.      self.opacity = 255
  36.    else
  37.      self.opacity = 0
  38.    end
  39.    self.back_opacity = 160
  40. end
  41. end
  42. class Interpreter
  43. #--------------------------------------------------------------------------
  44. # ● 显示文章
  45. #--------------------------------------------------------------------------
  46. def command_101
  47.    # 另外的文章已经设置过 message_text 的情况下
  48.    if $game_temp.message_text != nil
  49.      # 结束
  50.      return false
  51.    end
  52.    # 设置信息结束后待机和返回调用标志
  53.    @message_waiting = true
  54.    $game_temp.message_proc = Proc.new { @message_waiting = false }
  55.    # message_text 设置为 1 行
  56.    $game_temp.message_text = @list[@index].parameters[0] + "\n"
  57.    line_count = 1
  58.    # 最大 4 行
  59.    line_max = 4
  60.    # 循环
  61.    loop do
  62.      # 下一个事件指令为文章两行以上的情况
  63.      if @list[@index+1].code == 401
  64.        # message_text 添加到第 2 行以下
  65.        $game_temp.message_text += @list[@index+1].parameters[0] + "\n"
  66.        line_count += 1
  67.      # 下一个事件指令为显示文章,且本行末尾有续行标记的情况
  68.      elsif @list[@index+1].code == 101 and @list[@index].parameters[0][-2, 2] == " _"
  69.        # 如果已经达到 12 行就返回
  70.        if line_count == 12
  71.          # 清除续行标记
  72.          $game_temp.message_text.gsub!(/ _$/, "")
  73.          # 继续
  74.          return true
  75.        end
  76.        # message_text 添加到第 2 行以下
  77.        $game_temp.message_text += @list[@index+1].parameters[0] + "\n"
  78.        line_count += 1
  79.        # 增加 4 行空间,最多 12 行
  80.        line_max += 4 if line_max < 12
  81.      # 事件指令不在文章两行以下的情况
  82.      else
  83.        # 如果本行末尾有续行标记则增加到 12 行
  84.        if @list[@index].parameters[0][-2, 2] == " _"
  85.          line_max = 12
  86.        end
  87.        # 下一个事件指令为显示选择项的情况下
  88.        if @list[@index+1].code == 102
  89.          # 如果选择项能收纳在画面里
  90.          if @list[@index+1].parameters[0].size <= line_max - line_count
  91.            # 推进索引
  92.            @index += 1
  93.            # 设置选择项
  94.            $game_temp.choice_start = line_count
  95.            setup_choices(@list[@index].parameters)
  96.          end
  97.        # 下一个事件指令为处理输入数值的情况下
  98.        elsif @list[@index+1].code == 103
  99.          # 如果数值输入窗口能收纳在画面里
  100.          if line_count < line_max
  101.            # 推进索引
  102.            @index += 1
  103.            # 设置输入数值
  104.            $game_temp.num_input_start = line_count
  105.            $game_temp.num_input_variable_id = @list[@index].parameters[0]
  106.            $game_temp.num_input_digits_max = @list[@index].parameters[1]
  107.          end
  108.        end
  109.        # 清除续行标记
  110.        $game_temp.message_text.gsub!(/ _$/, "")
  111.        # 继续
  112.        return true
  113.      end
  114.      # 推进索引
  115.      @index += 1
  116.    end
  117. end
  118. end
复制代码

另外如果哪位有发布权限的版主路过也请把主站上的脚本改好吧 =v=
系统信息:本贴由本区版主认可为正确答案,66RPG感谢您的热情解答~
回复 支持 反对

使用道具 举报

Lv4.逐梦者

梦石
0
星屑
6875
在线时间
1666 小时
注册时间
2008-10-29
帖子
6710

贵宾

3
发表于 2009-5-17 18:55:35 | 只看该作者
额。。
路过,抱走{/hx}











你知道得太多了

回复 支持 反对

使用道具 举报

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

本版积分规则

拿上你的纸笔,建造一个属于你的梦想世界,加入吧。
 注册会员
找回密码

站长信箱:[email protected]|手机版|小黑屋|无图版|Project1游戏制作

GMT+8, 2025-1-15 07:26

Powered by Discuz! X3.1

© 2001-2013 Comsenz Inc.

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