查看: 4928|回复: 22

[已经解决] 请教下XP有没有剧情文本回看脚本?

[复制链接]
梦石
1
星屑
5596
在线时间
456 小时
注册时间
2006-1-31
回帖
1409
发表于 2020-10-1 10:22:58 | 显示全部楼层 |阅读模式

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

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

×
免得一不留神错过了某些对话只能读档,提高下玩家体验感。有没有哪位大侠手头有类似功能的脚本,感谢!
梦石
0
星屑
35248
在线时间
4171 小时
注册时间
2007-12-15
回帖
9489
发表于 2020-10-1 10:54:57 | 显示全部楼层
嗯,是个好功能。
明雷情况下,为了躲怪,获得道具什么的很可能按快了没看清,剧情对话也有个别手滑时候。
轨迹系列是这样只保留最后显示的N句画,自动刷新,包括所有曾经显示的文本 获得道具什么的。
因为变量名字可以是中文,是不是可以保存每句话为一个变量名字,然后留N个变量顺序替代?
我问问菜刀桑去XD

点评

求提取出来的版本..  发表于 2020-10-8 21:29
变量法不太可取,楼下的脚本把backlog功能提取出去整合就OK了(From 白菜君)。  发表于 2020-10-8 21:01
回复

使用道具 举报

梦石
0
星屑
39236
在线时间
11155 小时
注册时间
2009-3-15
回帖
4768
发表于 2020-10-1 15:21:46 | 显示全部楼层
https://www.whiteflute.org/wfrgs ... A%E3%83%97%E3%83%88

这个脚本好像可以呢..你可以试一下

点评

请参考6楼。  发表于 2020-10-9 10:16

评分

参与人数 2星屑 +50 赞 +1 收起 理由
taeckle + 1 学习了!
RyanBern + 50 认可答案

查看全部评分

回复 1 0

使用道具 举报

梦石
1
星屑
5596
在线时间
456 小时
注册时间
2006-1-31
回帖
1409
 楼主| 发表于 2020-10-8 20:59:41 | 显示全部楼层
soulsaga 发表于 2020-10-1 15:21
https://www.whiteflute.org/wfrgss/?mode=view&realmId=1&name=MultiMessage%EF%BC%9A%E3%83%9E%E3%83%AB% ...

1.jpg


确认有效,感谢感谢!
负责脚本的白菜君看了WF写的东西赞不绝口……
回复

使用道具 举报

梦石
0
星屑
35248
在线时间
4171 小时
注册时间
2007-12-15
回帖
9489
发表于 2020-10-9 08:28:52 | 显示全部楼层
saterick 发表于 2020-10-8 20:59
确认有效,感谢感谢!
负责脚本的白菜君看了WF写的东西赞不绝口…… ...

求问怎么用的,看不懂作者写的说明。
回复

使用道具 举报

梦石
1
星屑
5596
在线时间
456 小时
注册时间
2006-1-31
回帖
1409
 楼主| 发表于 2020-10-9 10:15:19 | 显示全部楼层
本帖最后由 saterick 于 2020-10-9 14:20 编辑
89444640 发表于 2020-10-9 08:28
求问怎么用的,看不懂作者写的说明。


这个不是拆出来就能当用的东东,囧。由于VSP的脚本比较复(混)杂(乱),会遇到各种奇怪的兼容问题,只能在这里提供一下思路。

首先需要WF-RGSS Scripts这个东西,如果XP的话,就选XP/VX两对应版,白菜君给VSP用的是rev-29 (2013-3-26)。

然后这个是单独提取出来的Window_BackLog脚本——
[fold=点我打开]#==============================================================================
# ■ Window_BackLog
#------------------------------------------------------------------------------
#  メッセージの履歴を表示するウィンドウです。
#==============================================================================
class Window_BackLog < Window_Base
  #--------------------------------------------------------------------------
  # ● オブジェクト初期化
  #--------------------------------------------------------------------------
  def initialize
    super( 0, 0, 640, 480)
    self.visible = false
    self.back_opacity = 0# WFRGSS_MultiMessage::BACKLOG_WINDOW_OPACITY
    self.opacity = 0
    self.z = 99999
    self.contents = Bitmap.new(width - 32,
                               WFRGSS_MultiMessage::BACKLOG_MAX_HEIGHT)
    @contents = Array.new                         # バックログ コンテンツ
  end
  #--------------------------------------------------------------------------
  # ● 解放
  #--------------------------------------------------------------------------
  def dispose
    unless @contents.nil?
      for bitmap in @contents
        bitmap.dispose unless bitmap.nil?
      end
      @back.dispose if @back.dispose
    end
    super
  end
  #--------------------------------------------------------------------------
  # ● 履歴の追加
  #--------------------------------------------------------------------------
  def add( contents )
    _type_check_( contents , Bitmap )
    @contents.unshift( contents.dup )
    cutting_log
  end
  #--------------------------------------------------------------------------
  # ● 履歴の表示
  #--------------------------------------------------------------------------
  def showing_log
    begin
      make_log
      self.visible = true
      @back = Sprite.new
      @back.bitmap = RPG::Cache.picture("Back00")
      @back.z = 99999
      loop do
        Graphics.update
        Input.update
        return unless update
      end
    ensure
      self.visible = false
      @back.dispose if @back.dispose
    end
  end
  private
  #--------------------------------------------------------------------------
  # ◆(内部専用)◆ フレーム更新
  #--------------------------------------------------------------------------
  def update
    super
    if Input.repeat?(Input::UP) and self.oy >= WFRGSS_MultiMessage::FONT_HEIGHT
      $game_system.se_play($data_system.cursor_se)
      self.oy -= (WFRGSS_MultiMessage::FONT_HEIGHT * 2)
    elsif Input.repeat?(Input::DOWN) and
       self.oy <= WFRGSS_MultiMessage::BACKLOG_MAX_HEIGHT -
       (Graphics.height - WFRGSS_MultiMessage::FONT_HEIGHT)
      $game_system.se_play($data_system.cursor_se)
      self.oy += (WFRGSS_MultiMessage::FONT_HEIGHT * 2)
    elsif Input.trigger?(Input::B) or
       Input.trigger?(WFRGSS_MultiMessage::BACKLOG_KEYS)
      $game_system.se_play($data_system.cancel_se)
      self.visible = false
    end
    return self.visible
  end
  #--------------------------------------------------------------------------
  # ◆(内部専用)◆ ログのカット
  #--------------------------------------------------------------------------
  def cutting_log( index = WFRGSS_MultiMessage::BACKLOG_MAX_COUNTENS )
    return if index >= @contents.size
    for i in index...@contents.size
      unless @contents.at(i).nil?
        @contents.at(i).dispose
        @contents = nil
      end
    end
    @contents.compact!
  end
  #--------------------------------------------------------------------------
  # ◆(内部専用)◆ ログの構築
  #--------------------------------------------------------------------------
  def make_log
    self.contents.clear
    index = 0
    y = WFRGSS_MultiMessage::BACKLOG_MAX_HEIGHT
    for bitmap in @contents
      break if y <= 0
      self.contents.blt(0, y - bitmap.height , bitmap , bitmap.rect )
      y -= (bitmap.height + WFRGSS_MultiMessage::FONT_HEIGHT)
      index += 1
    end
    cutting_log(index)
    self.oy = WFRGSS_MultiMessage::BACKLOG_MAX_HEIGHT -
              (480 - (WFRGSS_MultiMessage::FONT_HEIGHT * 2))
  end
end[/fold]

最后就是看怎么和自己游戏里现有的对话脚本整合的问题了,这个基本上会和所有对话类脚本冲突。嗯嗯,白菜君辛苦啦。

点评

放在楼下了,文字不显示的第一反应其实是没装字体233,脚本里改一下默认字体为自己电脑里有的字体就好了。  发表于 2020-10-13 09:05
我都说了是完整的窗口脚本了..不用分离..能正常使用就行..  发表于 2020-10-12 20:04
我不是要分离..我不会用这个脚本..想帮忙搞个默认工程加用这脚本的就行..  发表于 2020-10-12 20:03
非常抱歉,我的水平分离不了脚本,VSP里的脚本融合度太高了,只取出WF-RGSS Scripts、Window_BackLog以及对话框脚本也不能正常运行。m(_ _)m  发表于 2020-10-12 19:47
不是一部份功能..是完整的窗口脚本..  发表于 2020-10-12 17:43

评分

参与人数 1赞 +1 收起 理由
89444640 + 1 非常感谢

查看全部评分

回复

使用道具 举报

梦石
1
星屑
5596
在线时间
456 小时
注册时间
2006-1-31
回帖
1409
 楼主| 发表于 2020-10-13 09:02:53 | 显示全部楼层
本帖最后由 saterick 于 2020-10-13 10:26 编辑

1.jpg
默认是用对话框描绘的,换成图片吧,50%透明度的黑都比对话框强,233


---------------分界线---------------
完整范例。

Project1.7z

254.47 KB, 下载次数: 73

点评

你御用的脚本大神也不行么  发表于 2020-10-15 14:47
午休调试了一下,水平不行,完全不知道是怎么回事。重新又弄了一个,同样按键没反馈,囧。单开一贴问问看吧。  发表于 2020-10-14 15:21
奇葩了……刚想回我这边正常,好奇又打开了一次,结果我这边也按键没反馈了……  发表于 2020-10-14 09:16
对话后按什么都没反应..早些连续按可以按掉..但是放几秒不按就按什么都没用..  发表于 2020-10-13 10:33
我习惯按空格键,按下后一直显示111,按x键好多下以后可能会蹦到222,然后再按好多下以后可能蹦到333  发表于 2020-10-13 10:28

评分

参与人数 2星屑 +20 赞 +1 收起 理由
RyanBern + 20 我很赞同
89444640 + 1 塞糖

查看全部评分

回复

使用道具 举报

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

本版积分规则

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

在本版发帖返回顶部