Project1

标题: AVG华丽丽效果报告研究AVG·3.继-小完美版CG系统 [打印本页]

作者: tranpol    时间: 2007-8-6 11:05
标题: AVG华丽丽效果报告研究AVG·3.继-小完美版CG系统
AVG华丽丽效果报告研究
AVG·3·继
目录
AVG·3.8 用图片做对话框
AVG·3.9 回忆系统(未完美版)
AVG·3.10 小完美版的华丽丽CG系统
AVG·3.11 关于前几个研究的一些小更正
AVG·3.12 让图片也可以直接用上画面变色和画面震动功能
AVG·3.13  按CTRL键跳对话……

##############
AVG·3.8 用图片做对话框

RMXP默认的对话框象素实在太低了
为了AVG华丽丽的效果
这个一定要改
先做一个漂亮的图片对话框
图1


这是我正在做的AVG游戏
《骑士之圣堂》的图片对话框
边框可以是不透明的
中间用PS调一下诱明度
我是60%左右
你做的时候可以自已看一下效果
一定在调用在游戏里看一下效果
因为有背景图和在PS里只看灰白格背景的效果
差别可是很大啊
俺这个调了N次才决定现在的样子
俺做的尺寸为
580X180


打开脚本
Window_Message
在def initialize下面
打上
    #AVG对话框图片背景
     $Mbg = Sprite.new
      $Mbg.bitmap = Bitmap.new("Graphics/Pictures/AVG研究-对话框")
      $Mbg.opacity = 0
      $Mbg.x = 40
      $Mbg.y = 280
      $Mbg.z = 400

然后在def update下面
    找到这行
    if @now_text != nil and @mid_stop == false
     打上
      $Mbg.opacity = 200
随着对话的出现而出现对话框图片
我这里设的值是200
你对话框边框不要透明的就设255

PS:
如果照我研究里
对话时随时跳出菜单的方法改过的话
if Input.trigger?(Input::B)
下面
$scene = Scene_Menu.new
这行的上面
这行上面加上
        $Mbg.opacity = 0
调用菜单的话对话框图片消失


最后在

Scene_Map脚本里

if $game_temp.message_window_showing
这行下面在end前加上


   if $game_temp.message_window_showing
    else
     $Mbg.opacity = 0
     return
   end


这样对话框会等到对话都结束再消失
因为要改两个脚本
所以用了全局变量$Mbg做为对话框图片显示

原有的默认对话框要去掉
可以用事件去
也可以直接把原窗口图片改成空白透明
改脚本也行
不过俺这里就不细写了

#############################
AVG·3.9 回忆系统

回忆系统
Benavii大和莉莉雅姐都写了一个给我
太太太太太感谢了~~~~
世上还是好人多啊~~~~~~!!
大抱两只~~~~
因为这个系统对我来说复杂了一点
俺回去研究了半天
稍稍看懂了一点
才敢写在俺的研究报告里面

以下是Benavii大的教学时间~~

Benavii:

backlog对话倒没什么复杂的,在Window_Message那里打劫到$game_temp.message_text的内容,然后push到一个数组里去就行了。选项上色那里稍微有点麻烦,因为要把$game_temp.choice_proc = Proc.new { |n| @branch[current_indent] = n }变成
     $game_temp.choice_proc = Proc.new do |n|
     @branch[current_indent] = n # 默认的处理
才好单独处理……其实之前我想了另种方法,都没这个直接。

以下是我的做法:

1、在Game_System22行以下加入
attr_accessor :backlog                  # 回想模式
attr_accessor :backlog_line             # 回想行数
创建两个可读可写,可以理解为创建两个对象$game_system.backlog $game_system.backlog_line。然后在Game_System39行以下加入
   @backlog = []
   @backlog_line = 0
初始化两个对象。从这里可以看到@backlog是数组,@backlog_line是行数。

2、在Window_Message78行text = $game_temp.message_text以下加入
     backlog = text.clone ——把显示的文字clone下来,不然$game_temp.message_text一清backlog就跟着没了= =
     $game_system.backlog_line += backlog.split(/\n/).size ——数数要显示的文字里有多少个分行符号,有一个符号就有一行,然后把它加到总行数里面
     $game_system.backlog.push(backlog) ——把对话内容push到backlog中
以上劫持工作完毕- -。原本打算在interpreter 3里劫的,后来发现这里更方便……

3、就可以开始写脚本了……比Status界面那一套还简单的脚本,由1个窗口与不超过50行的scene构成 囧


class Window_Backlog < Window_Selectable
  #--------------------------------------------------------------------------
  # ● 初始化目标
  #--------------------------------------------------------------------------
  def initialize
    super(0, 0, 480, 480)
    self.contents = Bitmap.new(width - 32, height - 32)
    refresh
    self.active = false
    self.index = 0
  end
  #--------------------------------------------------------------------------
  # ● 刷新
  #--------------------------------------------------------------------------
  def refresh
    self.contents.clear
    self.contents.font.color = normal_color
#——以下直接搬WindowMessage里的来就行……把显示金钱窗口功能去掉了而已 囧
    x = y = 0
    @item_max = $game_system.backlog_line #——这里就看出行数的有用了……
   self.contents = Bitmap.new(width - 32, row_max * 32)
   for i in 0...$game_system.backlog.size #——逐个单元描绘这个数组的内容
    text = $game_system.backlog.clone
      begin
        last_text = text.clone
        text.gsub!(/\\[Vv]\[([0-9]+)\]/) { $game_variables[$1.to_i] }
      end until text == last_text
      text.gsub!(/\\[Nn]\[([0-9]+)\]/) do
        $game_actors[$1.to_i] != nil ? $game_actors[$1.to_i].name : ""
      end
      # 为了方便、将 "\\\\" 变换为 "\000"
      text.gsub!(/\\\\/) { "\000" }
      # "\\C" 变为 "\001" に、"\\G" 变为 "\002"
      text.gsub!(/\\[Cc]\[([0-9]+)\]/) { "\001[#{$1}]" }
      text.gsub!(/\\[Gg]/) { "" }
      # c 获取 1 个字 (如果不能取得文字就循环)
      while ((c = text.slice!(/./m)) != nil)
        # \\ 的情况下
        if c == "\000"
          # 还原为本来的文字
          c = "\\"
        end
        # \C[n] 的情况下
        if c == "\001"
          # 更改文字色
          text.sub!(/\[([0-9]+)\]/, "")
          color = $1.to_i
          if color >= 0 and color <= 7
            self.contents.font.color = text_color(color)
          end
          # 下面的文字
          next
        end
        # 另起一行文字的情况下
        if c == "\n"
          # 刷新选择项及光标的高
          if y >= $game_temp.choice_start
            @cursor_width = [@cursor_width, x].max
          end
          # y 加 1
          y += 1
          x = 0
          # 移动到选择项的下一行
          if y >= $game_temp.choice_start
            x = 8
          end
          # 下面的文字
          next
        end
        # 描绘文字
        self.contents.draw_text(4 + x, 32 * y, 40, 32, c)
        # x 为要描绘文字的加法运算
        x += self.contents.text_size(c).width
      end
    end
  end
  #--------------------------------------------------------------------------
  # ● 刷新光标矩形
  #--------------------------------------------------------------------------
#  def update_cursor_rect
#    if @index < 0
#      self.cursor_rect.empty
#    else
#      self.cursor_rect.set(0, @index * 116, self.width - 32, 96)
#    end
#  end
end
class Scene_Backlog
  #--------------------------------------------------------------------------
  # ● 主处理
  #--------------------------------------------------------------------------
  def main
    # 获取角色
    # 生成状态窗口
    @backlog_window = Window_Backlog.new
    @backlog_window.active = true
    @spriteset = Spriteset_Map.new
    # 执行过渡
    Graphics.transition
    # 主循环
    loop do
      # 刷新游戏画面
      Graphics.update
      # 刷新输入信息
      Input.update
      # 刷新画面
      update
      # 如果画面被切换的话就中断循环
      if $scene != self
        break
      end
    end
    # 准备过渡
    Graphics.freeze
    # 释放窗口
    @backlog_window.dispose
    @spriteset.dispose
  end
  #--------------------------------------------------------------------------
  # ● 刷新画面
  #--------------------------------------------------------------------------
  def update
    @backlog_window.update
    # 按下 B 键的情况下
    if Input.trigger?(Input::B)
      # 演奏取消 SE
      $game_system.se_play($data_system.cancel_se)
      # 切换到菜单画面
      $scene = Scene_Map.new
      return
    end
  end
end


以上,一个简单的Backlog系统就做好了。要给被选项加些特效就到第四步……

4、找到Interpreter 1里的setup_choices方法,把$game_temp.choice_proc = Proc.new { |n| @branch[current_indent] = n }变成以下内容:

     $game_temp.choice_proc = Proc.new do |n|
     @branch[current_indent] = n # 默认的处理,一句拆成两句
     # 添加选择项文字
     str = "" #——初始化一下选择项文字的局部变量
     choice = $game_system.backlog[$game_system.backlog.size - 1].split(/\n/) #——取得$game_system.backlog这数组的最后一项。因为新的文字还没有传进来,所以最后一项一定是刚才的选择项。这个choice是形如["是","否"]的一个数组。
     for i in 0...parameters[0].size #——按照选择项的个数循环
       if i == n #——当i选项就是刚才的选项时
         str += "\\c[2]" + choice + "\\c[0]" + "\n" #——组成选项内容字符串,是颜色+被选择的选项内容+颜色变回去+换行符,要加星星的话像加换色符号加在两边就好。
       else
         str += choice + "\n" #——如果不符合,则只是选项内容+换行符
       end
     end
     #——这样循环了一圈下来,str就成为了重组后的最后一项,用它替换掉原本的最后一项
     $game_system.backlog[$game_system.backlog.size - 1] = str


这样就完成了。附范例一个
http://rpg.blue/UP_PIC/200707/backlog2.rar

(唯一一点小BUG就是每次会多显示下面一面的对话
和如果用了随时跳出菜单~对话会多记录一次)

B:
我是直接在默认工程里改的,如果跳出菜单的话会多写一次。
可以跳出的时候打开一个开关,在往backlog里写数据那里加个判定,开关打开的时候就不push,然后把开关关闭。

PS 这个是用默认工程改的,因为考虑到,如果照LZ的想法做AVG的话,不必用66加强对话框,自带的功能完全够用;除了\p功能之外,其他基本上是想要什么移植进去就可以了……



###################################

以下为莉莉雅姐做的系统
大抱一下莉莉雅姐~~~~姐姐工作这么忙还帮俺写东东....

莉莉雅:
11:10才從公司的加班中脫身(姐姐~~~俺对不起你....)
這是做完的附件
主要改了Game_Map和Window_Message和Game_System
改的地方有用#lilia mark起來
回憶系統和對話隨時存檔已經寫在一起了......修了一點bug(之前的腳本可能有bug....不過不是很容易發現就是)

P.S. 一定要記得自行美化啊~~這版面實在醜到人神共"泣"......
P.P.S. 忘記說用法:
在對話的時候按page up就會進入回憶模式
在回憶模式可以用page up和page down翻頁
按Esc跳出回憶模式回到對話中

另外選項的地方我沒有特別加美化,只有簡單把選項標示出來而已....這看要怎麼標,方法有很多 ~_~
http://rpg.blue/UP_PIC/200707/莉莉雅版的回忆系统Data.rar



###
修改的地方莉莉雅姐用#lilia标出了
不过...如果直接用在66整合系统里的话
....会出现不明冲突
原因未明....
俺脚本不是很好
不知哪冲了
不过姐姐写的...比B大的深奥(因为B大的口才好吗...6)
俺很多都看不明白...-_-|||
可以做为参考借鉴一下
莉莉雅姐的这版倒是解决了对话向后的问题
用了菜单跳出也可以很完美的显示回忆系统
.....泪~~~为啥有冲突啊~~~~
大家可以一起来看一下
两个系统可以加在一起变成完美版


我现在照着这两个高人的系统改一下
以B大的为主体莉莉雅姐的为参考
修改好再公布
还有就是...上了鼠标脚本感觉会很怪
这个...俺改不了


这篇回忆系统未完待续···请等待完美版




##########################


AVG·3.10 小完美版的华丽丽CG系统


用物品类做的华丽丽CG系统
更正了原来不能用物品的毛病
只用了前几栏物品栏
存CG名和一些CG数据
完全不影响其它的物品显示与使用
新加了可以横向和竖向移动长型CG的功能
适用所有原创美工的华丽丽游戏
功能:
只要你游戏里打通看到过的CG
加入CG系统后重新启动游戏还会显示


详细用法
把你的CG都保存在游戏目录下的
\Graphics\Pictures\CG下面
CG的名称按显示顺序
打在物品栏
例如1号CG(物品)文件为沉湖
就在物品栏1号位的名称上打上沉湖
请不要打错字...
有连套图片的话
就是例如表情小变化变色调之类的一套显示图
在价格上打上这一套图总数
这一套图片的名字也按CG后面加数字就行了
例如:\Graphics\Pictures\CG\沉湖2
没有的话...请不要动价格这栏


新加了可以横向和竖向移动长型CG的功能
物品的HP和SP栏用来放CG的横向宽度和竖向长度
如果是正常版CG就请不要动这两个地方了
横向移动
在HP回复量打上横向移动CG的总宽度(相素为单位...)
默认为左至右
如果要右至左的话
请在HP回复率打上数字1(其实只要不为0就可以了)

竖向移动
在SP回复量打上横向移动CG的总长度(相素为单位...)
默认为上至下
如果要下至上的话
请在SP回复率打上数字1(其实只要不为0就可以了)


设置好所有CG名字和CG数据
在游戏过程中加CG的方法
在事件里写一行脚本
$CGn = (CG物品ID)
如果是1号CG就打
$CGn = 1
再调用29号公共事件就行了
因为不是自动存CG...
所以在游戏中显示好了CG
要记得手动存到CG系统里

现在的系统为
共三面 X 6张 = 可显示18张CG
要加减CG面总数
可以照着事件自已改

加到自已的游戏系统的话
一定要记的
因为地图号的不同
请修改一下30~32公共事件
只要改一下CG1~3页的地图号就行了
改成你现有的地图号
在把脚本里面的CG系统这个小脚本贴到你的系统中

因为现在写了一个CG系统专门类
(其实只是改了下个开关类脚本做的新类)
用这个CG类再调过物品栏的CG名和数据
所以和其它物品的显示使用保存没有一点关系
大家可以放心用

关于背景
要记得如图做两个版的




为啥要这么做呢
是因为原图缩小显示略缩图
如果有横向或竖向的CG
会和旁边的CG的大小一致
加个框就不会有难看的边露出来了


还有发布游戏的话
请将Data下面的CG.rxdata这个文件删了再发布
这个文件就是记录CG的文件
没这个文件的话CG就是空白的~~从头开始记录CG

详细原理自已打开事件和公共事件看吧...


这个小完美版是在俺原有物品CG系统的基础上加工的
用了物品类是为了很方便的编辑CG数据
全是为了方便懒人和脚本小白(也包括俺自已...)
谢谢B大的CG系统和A的MOMOCG系统参考
....不过那脚本看的俺
太晕了~~~
和俺不是一个等级的....OTL
可能等俺啥时进级了
再把俺自已这个物品类CG系统全写成脚本吧



新上传了小完美版CG系统
先加了1~6号CG
这次不会再有人说看不到CG了吧....
演示的第一张CG为正常版
第二张连套CG共2张
第三张竖向上至下
第四张竖向下至上
第五张横向左至右
第六张横向右至左


###

新更新追加缩小图
因为有人说原图缩小速度会慢
缩图请用原CG名加上s保存在同一个CG目录里
默认是用缩图的
如果不用缩图而是用原图缩小的话
在CG第一面第一个事件29号开关关了就行了
更新了的小完美版CG系统下载地址
http://rpg.blue/upload_program/f ... �图CG系统new.rar


强烈推荐有原创美工的游戏
如果是用商业素材的...就不用多此一举了~~


另...用了俺的游戏骑士の圣堂的CG背景和
未完成品CG...(...有点小趴的半成品)
只是为了演示需要
俺的游戏还是以俺的完成品为准-_-
如果要用的话请自已改背景
俺的游戏还没公布
小趴的CG也请不要外传......

#############

AVG·3.11 关于前几个研究的一些小更正


######天气问题新好办法######
阁中人找到了更好的解决办法

阁中人:
Spriteset_Map中
  @weather = RPG::Weather.new(@viewport1)
改成
  @weather = RPG::Weather.new(@viewport2)
这样天气就可以和图片一起显示了- -
有什么副作用不清楚ING
MO2你玩过吧,经常在人物说话的时候下雨……
所以不可能跑到另一个地图去下雨- -
这样大概可以解决吧。


恩这个办法大好~~
这样就可以同时用地图类和图片了
按我原来的办法的话...地图会遮住图片

另还有雾形文件的显示也是在@viewport1的
如果要AVG里用到雾形文件
同样在这个脚本里的找到

# 生成雾平面
    @fog = Plane.new(@viewport1)
改成
  @fog = Plane.new(@viewport2)
就可以了
现在连雾显示也没问题了

##########
####
关于3.4跳出菜单完美版莉莉雅姐的小改版
原来那节
我這邊是改成:
Window_Message裡頭同一個地方

      if Input.trigger?(Input::B)
        if $game_temp.choice_max > 0 && $game_temp.choice_start > 0
          $game_temp.choice_max = 0
          $game_temp.choice_start = 99
          $game_system.map_interpreter.index=$game_system.map_interpreter.index - 2
          while($game_system.map_interpreter.list[$game_system.map_interpreter.index].code == 401)
            $game_system.map_interpreter.index=$game_system.map_interpreter.index - 1
          end
        else
          $game_system.map_interpreter.index=$game_system.map_interpreter.index - 1
          while($game_system.map_interpreter.list[$game_system.map_interpreter.index].code == 401)
            $game_system.map_interpreter.index=$game_system.map_interpreter.index - 1
          end
        end
        $scene = Scene_Menu.new
      end

现在改为~~:

if Input.trigger?(Input::B)
if $game_temp.choice_max > 0
  $game_system.map_interpreter.index=$game_system.map_interpreter.index - $game_temp.choice_max
  if $game_temp.choice_start > 0
    while($game_system.map_interpreter.list[$game_system.map_interpreter.index].code == 401)
      $game_system.map_interpreter.index=$game_system.map_interpreter.index - 1
    end
  end
  $game_temp.choice_max = 0
  $game_temp.choice_start = 99
else
$game_system.map_interpreter.index=$game_system.map_interpreter.index - 1
  while($game_system.map_interpreter.list[$game_system.map_interpreter.index].code == 401)
    $game_system.map_interpreter.index=$game_system.map_interpreter.index - 1
  end
end
$scene = Scene_Menu.new
   
end

按莉莉雅姐的原话:
之前的腳本可能有bug....不過不是很容易發現就是

(.....这个俺也不知原来那版哪有BUG
反正以新的为正确就对了....)
################


AVG.3.12 让图片也可以直接用上画面变色和画面震动功能

俺终于找到地方改了~~~
只要改两行
就完全可以不用很麻烦的手动改图片的变色和震动了
整个画面都通用

在Spriteset_Map脚本
最下面一节
# 设置画面的色调与震动位置
    @viewport1.tone = $game_screen.tone
    @viewport1.ox = $game_screen.shake
这个地方设置了地图的变色与震动
把这两行复制一下再只要改两个数字
@viewport2.tone = $game_screen.tone
    @viewport2.ox = $game_screen.shake

OK!!!现在去看看你的游戏吧~~
用图片画面也可以直接整个画面变色和震荡啦


特别推荐一个亿万大做的震动脚本
这是他的论坛地址
有兴趣可以去看一下
http://1012stars.uu1001.com/read.php?tid=37


觉的自已是一边研究一边推翻以前的研究....
这不知算不算进步的一种...|||

#################################

AVG·3.13  按CTRL键跳对话……


现在经过俺自已的测试证明……
俺3.1说的用并行事件做的快进开关
非常的…………会卡住
………………果然是什么都用脚本解决好啊
用事件的话很容易就出错了死机啥的
所以还是把快进开关改写在脚本里了
小真...果然你是正确的

……俺明明只会做事件的家伙
现在被逼着狂改脚本……
人果然还是要被逼着才会进步……


也是很简单的
只要在Window_Message脚本
#--------------------------------------------------------------------------
  # ● 刷新画面
  #--------------------------------------------------------------------------
  def update
    super

下面打上几行

    # 按下CTRL可跳过对话
    if  @input_number_window == nil and $game_temp.choice_max == 0
      terminate_message if Input.repeat?(Input::CTRL)
    end


就可以了
@input_number_window == nil
是不在输入数值时
$game_temp.choice_max == 0
和不是选项时
快进开关才可以用



用CTRL键是因为………………
一般AVG游戏都是用CTRL键快进的
所以隐藏对话框俺现在改用SHIFT了

###########################

其它相关研究地址

目录

AVG·1  基础理论与地震
AVG·1.5把太阳换成自已游戏的图标
AVG·2 模糊与光
http://rpg.blue/viewthread.php?tid=60158


AVG·3  AVG必要原素

目录

AVG·3.1  AVG必要原素之快进篇
AVG·3.2  AVG必要原素之去除对话框
AVG·3.3  对话中随时跳出菜单1
AVG·3.4  对话中随时跳出菜单2完美版
AVG·3.5  关于图片遮住天气
AVG·3.6  跳过标题画面用自制事件标题
AVG·3.7  ...自动全屏游戏脚本

http://rpg.blue/viewthread.php?tid=62616 [LINE]1,#dddddd[/LINE]本贴由论坛斑竹影北山人结贴,如楼主认为问题未解决,请重新将此贴编辑为“有事请教”,并回帖叙述疑点即可~ ^-^
作者: tranpol    时间: 2007-8-6 11:05
标题: AVG华丽丽效果报告研究AVG·3.继-小完美版CG系统
AVG华丽丽效果报告研究
AVG·3·继
目录
AVG·3.8 用图片做对话框
AVG·3.9 回忆系统(未完美版)
AVG·3.10 小完美版的华丽丽CG系统
AVG·3.11 关于前几个研究的一些小更正
AVG·3.12 让图片也可以直接用上画面变色和画面震动功能
AVG·3.13  按CTRL键跳对话……

##############
AVG·3.8 用图片做对话框

RMXP默认的对话框象素实在太低了
为了AVG华丽丽的效果
这个一定要改
先做一个漂亮的图片对话框
图1


这是我正在做的AVG游戏
《骑士之圣堂》的图片对话框
边框可以是不透明的
中间用PS调一下诱明度
我是60%左右
你做的时候可以自已看一下效果
一定在调用在游戏里看一下效果
因为有背景图和在PS里只看灰白格背景的效果
差别可是很大啊
俺这个调了N次才决定现在的样子
俺做的尺寸为
580X180


打开脚本
Window_Message
在def initialize下面
打上
    #AVG对话框图片背景
     $Mbg = Sprite.new
      $Mbg.bitmap = Bitmap.new("Graphics/Pictures/AVG研究-对话框")
      $Mbg.opacity = 0
      $Mbg.x = 40
      $Mbg.y = 280
      $Mbg.z = 400

然后在def update下面
    找到这行
    if @now_text != nil and @mid_stop == false
     打上
      $Mbg.opacity = 200
随着对话的出现而出现对话框图片
我这里设的值是200
你对话框边框不要透明的就设255

PS:
如果照我研究里
对话时随时跳出菜单的方法改过的话
if Input.trigger?(Input::B)
下面
$scene = Scene_Menu.new
这行的上面
这行上面加上
        $Mbg.opacity = 0
调用菜单的话对话框图片消失


最后在

Scene_Map脚本里

if $game_temp.message_window_showing
这行下面在end前加上


   if $game_temp.message_window_showing
    else
     $Mbg.opacity = 0
     return
   end


这样对话框会等到对话都结束再消失
因为要改两个脚本
所以用了全局变量$Mbg做为对话框图片显示

原有的默认对话框要去掉
可以用事件去
也可以直接把原窗口图片改成空白透明
改脚本也行
不过俺这里就不细写了

#############################
AVG·3.9 回忆系统

回忆系统
Benavii大和莉莉雅姐都写了一个给我
太太太太太感谢了~~~~
世上还是好人多啊~~~~~~!!
大抱两只~~~~
因为这个系统对我来说复杂了一点
俺回去研究了半天
稍稍看懂了一点
才敢写在俺的研究报告里面

以下是Benavii大的教学时间~~

Benavii:

backlog对话倒没什么复杂的,在Window_Message那里打劫到$game_temp.message_text的内容,然后push到一个数组里去就行了。选项上色那里稍微有点麻烦,因为要把$game_temp.choice_proc = Proc.new { |n| @branch[current_indent] = n }变成
     $game_temp.choice_proc = Proc.new do |n|
     @branch[current_indent] = n # 默认的处理
才好单独处理……其实之前我想了另种方法,都没这个直接。

以下是我的做法:

1、在Game_System22行以下加入
attr_accessor :backlog                  # 回想模式
attr_accessor :backlog_line             # 回想行数
创建两个可读可写,可以理解为创建两个对象$game_system.backlog $game_system.backlog_line。然后在Game_System39行以下加入
   @backlog = []
   @backlog_line = 0
初始化两个对象。从这里可以看到@backlog是数组,@backlog_line是行数。

2、在Window_Message78行text = $game_temp.message_text以下加入
     backlog = text.clone ——把显示的文字clone下来,不然$game_temp.message_text一清backlog就跟着没了= =
     $game_system.backlog_line += backlog.split(/\n/).size ——数数要显示的文字里有多少个分行符号,有一个符号就有一行,然后把它加到总行数里面
     $game_system.backlog.push(backlog) ——把对话内容push到backlog中
以上劫持工作完毕- -。原本打算在interpreter 3里劫的,后来发现这里更方便……

3、就可以开始写脚本了……比Status界面那一套还简单的脚本,由1个窗口与不超过50行的scene构成 囧


class Window_Backlog < Window_Selectable
  #--------------------------------------------------------------------------
  # ● 初始化目标
  #--------------------------------------------------------------------------
  def initialize
    super(0, 0, 480, 480)
    self.contents = Bitmap.new(width - 32, height - 32)
    refresh
    self.active = false
    self.index = 0
  end
  #--------------------------------------------------------------------------
  # ● 刷新
  #--------------------------------------------------------------------------
  def refresh
    self.contents.clear
    self.contents.font.color = normal_color
#——以下直接搬WindowMessage里的来就行……把显示金钱窗口功能去掉了而已 囧
    x = y = 0
    @item_max = $game_system.backlog_line #——这里就看出行数的有用了……
   self.contents = Bitmap.new(width - 32, row_max * 32)
   for i in 0...$game_system.backlog.size #——逐个单元描绘这个数组的内容
    text = $game_system.backlog.clone
      begin
        last_text = text.clone
        text.gsub!(/\\[Vv]\[([0-9]+)\]/) { $game_variables[$1.to_i] }
      end until text == last_text
      text.gsub!(/\\[Nn]\[([0-9]+)\]/) do
        $game_actors[$1.to_i] != nil ? $game_actors[$1.to_i].name : ""
      end
      # 为了方便、将 "\\\\" 变换为 "\000"
      text.gsub!(/\\\\/) { "\000" }
      # "\\C" 变为 "\001" に、"\\G" 变为 "\002"
      text.gsub!(/\\[Cc]\[([0-9]+)\]/) { "\001[#{$1}]" }
      text.gsub!(/\\[Gg]/) { "" }
      # c 获取 1 个字 (如果不能取得文字就循环)
      while ((c = text.slice!(/./m)) != nil)
        # \\ 的情况下
        if c == "\000"
          # 还原为本来的文字
          c = "\\"
        end
        # \C[n] 的情况下
        if c == "\001"
          # 更改文字色
          text.sub!(/\[([0-9]+)\]/, "")
          color = $1.to_i
          if color >= 0 and color <= 7
            self.contents.font.color = text_color(color)
          end
          # 下面的文字
          next
        end
        # 另起一行文字的情况下
        if c == "\n"
          # 刷新选择项及光标的高
          if y >= $game_temp.choice_start
            @cursor_width = [@cursor_width, x].max
          end
          # y 加 1
          y += 1
          x = 0
          # 移动到选择项的下一行
          if y >= $game_temp.choice_start
            x = 8
          end
          # 下面的文字
          next
        end
        # 描绘文字
        self.contents.draw_text(4 + x, 32 * y, 40, 32, c)
        # x 为要描绘文字的加法运算
        x += self.contents.text_size(c).width
      end
    end
  end
  #--------------------------------------------------------------------------
  # ● 刷新光标矩形
  #--------------------------------------------------------------------------
#  def update_cursor_rect
#    if @index < 0
#      self.cursor_rect.empty
#    else
#      self.cursor_rect.set(0, @index * 116, self.width - 32, 96)
#    end
#  end
end
class Scene_Backlog
  #--------------------------------------------------------------------------
  # ● 主处理
  #--------------------------------------------------------------------------
  def main
    # 获取角色
    # 生成状态窗口
    @backlog_window = Window_Backlog.new
    @backlog_window.active = true
    @spriteset = Spriteset_Map.new
    # 执行过渡
    Graphics.transition
    # 主循环
    loop do
      # 刷新游戏画面
      Graphics.update
      # 刷新输入信息
      Input.update
      # 刷新画面
      update
      # 如果画面被切换的话就中断循环
      if $scene != self
        break
      end
    end
    # 准备过渡
    Graphics.freeze
    # 释放窗口
    @backlog_window.dispose
    @spriteset.dispose
  end
  #--------------------------------------------------------------------------
  # ● 刷新画面
  #--------------------------------------------------------------------------
  def update
    @backlog_window.update
    # 按下 B 键的情况下
    if Input.trigger?(Input::B)
      # 演奏取消 SE
      $game_system.se_play($data_system.cancel_se)
      # 切换到菜单画面
      $scene = Scene_Map.new
      return
    end
  end
end


以上,一个简单的Backlog系统就做好了。要给被选项加些特效就到第四步……

4、找到Interpreter 1里的setup_choices方法,把$game_temp.choice_proc = Proc.new { |n| @branch[current_indent] = n }变成以下内容:

     $game_temp.choice_proc = Proc.new do |n|
     @branch[current_indent] = n # 默认的处理,一句拆成两句
     # 添加选择项文字
     str = "" #——初始化一下选择项文字的局部变量
     choice = $game_system.backlog[$game_system.backlog.size - 1].split(/\n/) #——取得$game_system.backlog这数组的最后一项。因为新的文字还没有传进来,所以最后一项一定是刚才的选择项。这个choice是形如["是","否"]的一个数组。
     for i in 0...parameters[0].size #——按照选择项的个数循环
       if i == n #——当i选项就是刚才的选项时
         str += "\\c[2]" + choice + "\\c[0]" + "\n" #——组成选项内容字符串,是颜色+被选择的选项内容+颜色变回去+换行符,要加星星的话像加换色符号加在两边就好。
       else
         str += choice + "\n" #——如果不符合,则只是选项内容+换行符
       end
     end
     #——这样循环了一圈下来,str就成为了重组后的最后一项,用它替换掉原本的最后一项
     $game_system.backlog[$game_system.backlog.size - 1] = str


这样就完成了。附范例一个
http://rpg.blue/UP_PIC/200707/backlog2.rar

(唯一一点小BUG就是每次会多显示下面一面的对话
和如果用了随时跳出菜单~对话会多记录一次)

B:
我是直接在默认工程里改的,如果跳出菜单的话会多写一次。
可以跳出的时候打开一个开关,在往backlog里写数据那里加个判定,开关打开的时候就不push,然后把开关关闭。

PS 这个是用默认工程改的,因为考虑到,如果照LZ的想法做AVG的话,不必用66加强对话框,自带的功能完全够用;除了\p功能之外,其他基本上是想要什么移植进去就可以了……



###################################

以下为莉莉雅姐做的系统
大抱一下莉莉雅姐~~~~姐姐工作这么忙还帮俺写东东....

莉莉雅:
11:10才從公司的加班中脫身(姐姐~~~俺对不起你....)
這是做完的附件
主要改了Game_Map和Window_Message和Game_System
改的地方有用#lilia mark起來
回憶系統和對話隨時存檔已經寫在一起了......修了一點bug(之前的腳本可能有bug....不過不是很容易發現就是)

P.S. 一定要記得自行美化啊~~這版面實在醜到人神共"泣"......
P.P.S. 忘記說用法:
在對話的時候按page up就會進入回憶模式
在回憶模式可以用page up和page down翻頁
按Esc跳出回憶模式回到對話中

另外選項的地方我沒有特別加美化,只有簡單把選項標示出來而已....這看要怎麼標,方法有很多 ~_~
http://rpg.blue/UP_PIC/200707/莉莉雅版的回忆系统Data.rar



###
修改的地方莉莉雅姐用#lilia标出了
不过...如果直接用在66整合系统里的话
....会出现不明冲突
原因未明....
俺脚本不是很好
不知哪冲了
不过姐姐写的...比B大的深奥(因为B大的口才好吗...6)
俺很多都看不明白...-_-|||
可以做为参考借鉴一下
莉莉雅姐的这版倒是解决了对话向后的问题
用了菜单跳出也可以很完美的显示回忆系统
.....泪~~~为啥有冲突啊~~~~
大家可以一起来看一下
两个系统可以加在一起变成完美版


我现在照着这两个高人的系统改一下
以B大的为主体莉莉雅姐的为参考
修改好再公布
还有就是...上了鼠标脚本感觉会很怪
这个...俺改不了


这篇回忆系统未完待续···请等待完美版




##########################


AVG·3.10 小完美版的华丽丽CG系统


用物品类做的华丽丽CG系统
更正了原来不能用物品的毛病
只用了前几栏物品栏
存CG名和一些CG数据
完全不影响其它的物品显示与使用
新加了可以横向和竖向移动长型CG的功能
适用所有原创美工的华丽丽游戏
功能:
只要你游戏里打通看到过的CG
加入CG系统后重新启动游戏还会显示


详细用法
把你的CG都保存在游戏目录下的
\Graphics\Pictures\CG下面
CG的名称按显示顺序
打在物品栏
例如1号CG(物品)文件为沉湖
就在物品栏1号位的名称上打上沉湖
请不要打错字...
有连套图片的话
就是例如表情小变化变色调之类的一套显示图
在价格上打上这一套图总数
这一套图片的名字也按CG后面加数字就行了
例如:\Graphics\Pictures\CG\沉湖2
没有的话...请不要动价格这栏


新加了可以横向和竖向移动长型CG的功能
物品的HP和SP栏用来放CG的横向宽度和竖向长度
如果是正常版CG就请不要动这两个地方了
横向移动
在HP回复量打上横向移动CG的总宽度(相素为单位...)
默认为左至右
如果要右至左的话
请在HP回复率打上数字1(其实只要不为0就可以了)

竖向移动
在SP回复量打上横向移动CG的总长度(相素为单位...)
默认为上至下
如果要下至上的话
请在SP回复率打上数字1(其实只要不为0就可以了)


设置好所有CG名字和CG数据
在游戏过程中加CG的方法
在事件里写一行脚本
$CGn = (CG物品ID)
如果是1号CG就打
$CGn = 1
再调用29号公共事件就行了
因为不是自动存CG...
所以在游戏中显示好了CG
要记得手动存到CG系统里

现在的系统为
共三面 X 6张 = 可显示18张CG
要加减CG面总数
可以照着事件自已改

加到自已的游戏系统的话
一定要记的
因为地图号的不同
请修改一下30~32公共事件
只要改一下CG1~3页的地图号就行了
改成你现有的地图号
在把脚本里面的CG系统这个小脚本贴到你的系统中

因为现在写了一个CG系统专门类
(其实只是改了下个开关类脚本做的新类)
用这个CG类再调过物品栏的CG名和数据
所以和其它物品的显示使用保存没有一点关系
大家可以放心用

关于背景
要记得如图做两个版的




为啥要这么做呢
是因为原图缩小显示略缩图
如果有横向或竖向的CG
会和旁边的CG的大小一致
加个框就不会有难看的边露出来了


还有发布游戏的话
请将Data下面的CG.rxdata这个文件删了再发布
这个文件就是记录CG的文件
没这个文件的话CG就是空白的~~从头开始记录CG

详细原理自已打开事件和公共事件看吧...


这个小完美版是在俺原有物品CG系统的基础上加工的
用了物品类是为了很方便的编辑CG数据
全是为了方便懒人和脚本小白(也包括俺自已...)
谢谢B大的CG系统和A的MOMOCG系统参考
....不过那脚本看的俺
太晕了~~~
和俺不是一个等级的....OTL
可能等俺啥时进级了
再把俺自已这个物品类CG系统全写成脚本吧



新上传了小完美版CG系统
先加了1~6号CG
这次不会再有人说看不到CG了吧....
演示的第一张CG为正常版
第二张连套CG共2张
第三张竖向上至下
第四张竖向下至上
第五张横向左至右
第六张横向右至左


###

新更新追加缩小图
因为有人说原图缩小速度会慢
缩图请用原CG名加上s保存在同一个CG目录里
默认是用缩图的
如果不用缩图而是用原图缩小的话
在CG第一面第一个事件29号开关关了就行了
更新了的小完美版CG系统下载地址
http://rpg.blue/upload_program/f ... �图CG系统new.rar


强烈推荐有原创美工的游戏
如果是用商业素材的...就不用多此一举了~~


另...用了俺的游戏骑士の圣堂的CG背景和
未完成品CG...(...有点小趴的半成品)
只是为了演示需要
俺的游戏还是以俺的完成品为准-_-
如果要用的话请自已改背景
俺的游戏还没公布
小趴的CG也请不要外传......

#############

AVG·3.11 关于前几个研究的一些小更正


######天气问题新好办法######
阁中人找到了更好的解决办法

阁中人:
Spriteset_Map中
  @weather = RPG::Weather.new(@viewport1)
改成
  @weather = RPG::Weather.new(@viewport2)
这样天气就可以和图片一起显示了- -
有什么副作用不清楚ING
MO2你玩过吧,经常在人物说话的时候下雨……
所以不可能跑到另一个地图去下雨- -
这样大概可以解决吧。


恩这个办法大好~~
这样就可以同时用地图类和图片了
按我原来的办法的话...地图会遮住图片

另还有雾形文件的显示也是在@viewport1的
如果要AVG里用到雾形文件
同样在这个脚本里的找到

# 生成雾平面
    @fog = Plane.new(@viewport1)
改成
  @fog = Plane.new(@viewport2)
就可以了
现在连雾显示也没问题了

##########
####
关于3.4跳出菜单完美版莉莉雅姐的小改版
原来那节
我這邊是改成:
Window_Message裡頭同一個地方

      if Input.trigger?(Input::B)
        if $game_temp.choice_max > 0 && $game_temp.choice_start > 0
          $game_temp.choice_max = 0
          $game_temp.choice_start = 99
          $game_system.map_interpreter.index=$game_system.map_interpreter.index - 2
          while($game_system.map_interpreter.list[$game_system.map_interpreter.index].code == 401)
            $game_system.map_interpreter.index=$game_system.map_interpreter.index - 1
          end
        else
          $game_system.map_interpreter.index=$game_system.map_interpreter.index - 1
          while($game_system.map_interpreter.list[$game_system.map_interpreter.index].code == 401)
            $game_system.map_interpreter.index=$game_system.map_interpreter.index - 1
          end
        end
        $scene = Scene_Menu.new
      end

现在改为~~:

if Input.trigger?(Input::B)
if $game_temp.choice_max > 0
  $game_system.map_interpreter.index=$game_system.map_interpreter.index - $game_temp.choice_max
  if $game_temp.choice_start > 0
    while($game_system.map_interpreter.list[$game_system.map_interpreter.index].code == 401)
      $game_system.map_interpreter.index=$game_system.map_interpreter.index - 1
    end
  end
  $game_temp.choice_max = 0
  $game_temp.choice_start = 99
else
$game_system.map_interpreter.index=$game_system.map_interpreter.index - 1
  while($game_system.map_interpreter.list[$game_system.map_interpreter.index].code == 401)
    $game_system.map_interpreter.index=$game_system.map_interpreter.index - 1
  end
end
$scene = Scene_Menu.new
   
end

按莉莉雅姐的原话:
之前的腳本可能有bug....不過不是很容易發現就是

(.....这个俺也不知原来那版哪有BUG
反正以新的为正确就对了....)
################


AVG.3.12 让图片也可以直接用上画面变色和画面震动功能

俺终于找到地方改了~~~
只要改两行
就完全可以不用很麻烦的手动改图片的变色和震动了
整个画面都通用

在Spriteset_Map脚本
最下面一节
# 设置画面的色调与震动位置
    @viewport1.tone = $game_screen.tone
    @viewport1.ox = $game_screen.shake
这个地方设置了地图的变色与震动
把这两行复制一下再只要改两个数字
@viewport2.tone = $game_screen.tone
    @viewport2.ox = $game_screen.shake

OK!!!现在去看看你的游戏吧~~
用图片画面也可以直接整个画面变色和震荡啦


特别推荐一个亿万大做的震动脚本
这是他的论坛地址
有兴趣可以去看一下
http://1012stars.uu1001.com/read.php?tid=37


觉的自已是一边研究一边推翻以前的研究....
这不知算不算进步的一种...|||

#################################

AVG·3.13  按CTRL键跳对话……


现在经过俺自已的测试证明……
俺3.1说的用并行事件做的快进开关
非常的…………会卡住
………………果然是什么都用脚本解决好啊
用事件的话很容易就出错了死机啥的
所以还是把快进开关改写在脚本里了
小真...果然你是正确的

……俺明明只会做事件的家伙
现在被逼着狂改脚本……
人果然还是要被逼着才会进步……


也是很简单的
只要在Window_Message脚本
#--------------------------------------------------------------------------
  # ● 刷新画面
  #--------------------------------------------------------------------------
  def update
    super

下面打上几行

    # 按下CTRL可跳过对话
    if  @input_number_window == nil and $game_temp.choice_max == 0
      terminate_message if Input.repeat?(Input::CTRL)
    end


就可以了
@input_number_window == nil
是不在输入数值时
$game_temp.choice_max == 0
和不是选项时
快进开关才可以用



用CTRL键是因为………………
一般AVG游戏都是用CTRL键快进的
所以隐藏对话框俺现在改用SHIFT了

###########################

其它相关研究地址

目录

AVG·1  基础理论与地震
AVG·1.5把太阳换成自已游戏的图标
AVG·2 模糊与光
http://rpg.blue/viewthread.php?tid=60158


AVG·3  AVG必要原素

目录

AVG·3.1  AVG必要原素之快进篇
AVG·3.2  AVG必要原素之去除对话框
AVG·3.3  对话中随时跳出菜单1
AVG·3.4  对话中随时跳出菜单2完美版
AVG·3.5  关于图片遮住天气
AVG·3.6  跳过标题画面用自制事件标题
AVG·3.7  ...自动全屏游戏脚本

http://rpg.blue/viewthread.php?tid=62616 [LINE]1,#dddddd[/LINE]本贴由论坛斑竹影北山人结贴,如楼主认为问题未解决,请重新将此贴编辑为“有事请教”,并回帖叙述疑点即可~ ^-^
作者: 闪电    时间: 2007-8-6 15:06
tranpol的研究贴出得好快啊,支持!!!
偶现在是在事件里用图片式插入菜单{/gg}
作者: 阁中人    时间: 2007-8-6 16:30
额,难道你昨天一天就是在研究吗- -
……看来CG还是要自己写个类……
要是用图片的话,加入鼠标图片响应之后会闪得很厉害……
额,不过我用不到CG系统。
引擎做完的话,有剧本一天基本就可以完工- -难道你还没有剧本……?
额,说鼠标用上很怪的话,最好把鼠标寻路那方面的脚本全去掉。
我加了鼠标脚本,没有发现什么卡/难受的地方。
作者: Benavii    时间: 2007-8-6 19:21
口才{/gg}
我那个backlog论坛附件貌似当掉了,换这个吧
http://rpg.blue/upload_program/files/backlog2.rar

另一版我也下载下来学习了一下……顺道膜拜一下莉莉雅大人orz
其实这个改的比我那个还简洁OTL 我是碰着啥都要写个Scene出来……> <

总之LZ是需要 66加强对话框 + 跳出菜单 + backlog 这些对吧?正好闲着没事我来合合看……

作者: 阁中人    时间: 2007-8-6 21:00
Benavii大
能不能考虑一下把窗口的文字排到全屏那么大,好套MO的底?
还有,能不能和存档读档的窗口合一下,大概留4行的位置做BACKLOG?
嗯,要是不想做的话,只告诉我思路也好,谢谢
作者: Benavii    时间: 2007-8-6 23:09
以下引用阁中人于2007-8-6 13:00:25的发言:
Benavii大
能不能考虑一下把窗口的文字排到全屏那么大,好套MO的底?
还有,能不能和存档读档的窗口合一下,大概留4行的位置做BACKLOG?
嗯,要是不想做的话,只告诉我思路也好,谢谢

可以啊,不过window_message一共就能显示那么长,对话框效果还是不好。
window_message一共就能显示那么长的原因是,事件的对话框就能显示那么长……
是否需要把Message窗口也改成MO2一行的长度?(MO2一行多少个字啊?)

存档读档窗口合……这个是什么样的效果{/fd}详细说明希望……

顺便放上个整合版的截图,还是生成个command_window简单啊。

作者: 小真·爱舞    时间: 2007-8-6 23:11
完了,和我的版式雷同的。
等我游戏出来以后肯定有人说是根据这个教程写的了{/gg}
作者: 小天    时间: 2007-8-6 23:15
一样就一样被...小T说的效果我一个没用.还不是在做AVG?
嘎嘎....有什么.
作者: 小真·爱舞    时间: 2007-8-6 23:16
因为追求标新立异啊.....我最讨厌和别人有雷同的地方。
作者: Benavii    时间: 2007-8-7 01:02
以下引用小真·爱舞于2007-8-6 15:11:54的发言:

完了,和我的版式雷同的

你在上一个贴里放第一个图的时候我也这么想的{/gg}
以前给别人写就是放在那,不过那游戏又改版了,不知道现在是什么样子。
用NS写的几个东西也都是放那里的。

基本上AVG的QuickMenu都是做在对话窗右边啊,为了不挡住人脸和名字窗。
接下来还有长对话-___________- 和那图上效果又一样-_,-
作者: 小真·爱舞    时间: 2007-8-7 01:57
唉,真郁闷。
[LINE]1,#dddddd[/LINE]
话说Ns的我都是放在右下角的说= =||||||||
作者: Benavii    时间: 2007-8-7 02:33
以下引用小真·爱舞于2007-8-6 17:57:43的发言:

唉,真郁闷。



话说Ns的我都是放在右下角的说= =||||||||

{/fd}下面不都被对话框塞满了么……除非直接做成按钮不用菜单{/fd}
作者: 小真·爱舞    时间: 2007-8-7 02:43
以下引用Benavii于2007-8-6 18:33:08的发言:


以下引用小真·爱舞于2007-8-6 17:57:43的发言:

唉,真郁闷。



话说Ns的我都是放在右下角的说= =||||||||



下面不都被对话框塞满了么……除非直接做成按钮不用菜单


不是,就是和对话框融为一体的那种,如果美工够强能做的很美。
作者: 阁中人    时间: 2007-8-7 07:35
以下引用Benavii于2007-8-6 15:09:17的发言:
可以啊,不过window_message一共就能显示那么长,对话框效果还是不好。
window_message一共就能显示那么长的原因是,事件的对话框就能显示那么长……
是否需要把Message窗口也改成MO2一行的长度?(MO2一行多少个字啊?)
存档读档窗口合……这个是什么样的效果详细说明希望……
顺便放上个整合版的截图,还是生成个command_window简单啊。

这样也好呀。

秋回一行24个字……要是改了字的话,文章输入框那里也不够位置了吧……难道要用脱壳- -再有,秋的字好象比RM的小一点……
那个效果,是进了Scene_Save和Scene_Load之后的效果,不是叫菜单出来的时候……就是把那个窗口改写成上面有存档界面,下面有个对话框那么大的对话回顾窗口摆着,当光标移动到某存档的时候自动显示其对话回顾……这样够详细么?还是要再详细一点……?
作者: 小真·爱舞    时间: 2007-8-7 07:40
就是把几个效果都写进同一个scene嘛= =||
我感觉你脚本技术不错啊..自己尝试一下嘛。
作者: 阁中人    时间: 2007-8-7 07:45
额- -承蒙小真厚爱{/gg}
在下只是思维属于正常人级别,动手能力实在是小白级的- -
抱歉了,抱歉了

嗯,这么说好象有点不妥
那么只要解决24字问题就可以了……排版什么的就自己钻研好了- -
作者: tranpol    时间: 2007-8-7 11:27
以下引用阁中人于2007-8-6 8:30:49的发言:

额,难道你昨天一天就是在研究吗- -
……看来CG还是要自己写个类……
要是用图片的话,加入鼠标图片响应之后会闪得很厉害……
额,不过我用不到CG系统。
引擎做完的话,有剧本一天基本就可以完工- -难道你还没有剧本……?
额,说鼠标用上很怪的话,最好把鼠标寻路那方面的脚本全去掉。
我加了鼠标脚本,没有发现什么卡/难受的地方。


[本贴由作者于 2007-8-6 8:51:27 最后编辑]



...............
................|||
没说错~~俺就是太热衷研究了
俺的游戏才没有在动.....剧本都还没写完....|||
泪奔`~~~~~俺现在开始努力做还不知来不来的及....
只有十天左右让俺爬了
天啊~!!!俺还有N多图片没画没加工~~~俺再泪奔一下....


先大家一鞠躬~~
俺明天放上俺的物品CG系统后
就要专心做俺的游戏去了
就是说...俺要比赛后~不管做没做好游戏~才有空更新这篇研究



以下引用Benavii于2007-8-6 11:21:38的发言:

口才
我那个backlog论坛附件貌似当掉了,换这个吧
http://rpg.blue/upload_program/files/backlog2.rar

另一版我也下载下来学习了一下……顺道膜拜一下莉莉雅大人orz
其实这个改的比我那个还简洁OTL 我是碰着啥都要写个Scene出来……> <

总之LZ是需要 66加强对话框 + 跳出菜单 + backlog 这些对吧?正好闲着没事我来合合看……



[本贴由作者于 2007-8-6 11:27:48 最后编辑]


抱一下B大~~~
回忆系统就拜托你了....
俺这只迟到狂刚刚才开始有紧张感....
知道要去做游戏了...汗
为了临时抱佛脚参加比赛
华丽丽的完美工作就要都靠你了.....
最好能改成加一个脚本都解决就好了...汗~~~可能想太美了

以下引用小真·爱舞于2007-8-6 15:11:54的发言:

完了,和我的版式雷同的。
等我游戏出来以后肯定有人说是根据这个教程写的了


小真~~是人总会有想到一块的时候
俺做的只是把自已知道的都告诉大家
这样才会更进步
俺就是觉的这边的教学帮人的气氛超好
很喜欢这里
所以想为这里做点什么
其实游戏的精髓是如何做好内容
技术只是为了让内容表现的更好
真的是好游戏
就不会让人想啥和哪个哪个游戏相似啥的了
只会让人想继续玩下去



另....昨天贴的太匆忙忘了贴俺的对话框图片了...汗
作者: 影北山人    时间: 2007-8-7 16:20
岚你辛苦了,快去完成你自己的传说吧~!倒茶。

地球上生存着很多外星人,比如只动嘴星人、无口动手星人,你就是那可爱的说做就做星人啊~~
我这个不动口也不动手的大懒人就厚颜的搬走用了!!

嗯嗯。。。这个世界的发展还真是飞快啊,什么东西藏着掖着似乎只有发臭的下场。吸取教训,有什么好的发现欢迎大家来图像技术区探讨研究啊~~这就是这个版区存在的意义嘛。
喝茶。
作者: Benavii    时间: 2007-8-7 19:30
以下引用阁中人于2007-8-6 23:35:45的发言:
这样也好呀。

秋回一行24个字……要是改了字的话,文章输入框那里也不够位置了吧……难道要用脱壳- -再有,秋的字好象比RM的小一点……
那个效果,是进了Scene_Save和Scene_Load之后的效果,不是叫菜单出来的时候……就是把那个窗口改写成上面有存档界面,下面有个对话框那么大的对话回顾窗口摆着,当光标移动到某存档的时候自动显示其对话回顾……这样够详细么?还是要再详细一点……?

RM一行22个字,差不太多……那我就华丽地忽略换行问题了XD
想起来是什么效果了,汗。太久不玩MO2了……
于是……是这样?

嗯……很难看-_____-。

附送一个小礼物,也是看了那张截图后才想起来的……AVG必要元素之一……

这里没有好看的动画,所以用了默认的97号表情,到时候可以自己换一下。

to tranpol:汗,我写脚本都是尽量融合进默认系统……和插一个脚本那种正好相反{/gg}
如果不嫌弃的话我把我整合的这套工程给你好了{/gg}很可能我都记不清改哪些地方了……OTL。
作者: 阁中人    时间: 2007-8-7 20:46
额- -对
就是这样……
那里读取的话是不是要从存档里面读取?
作者: Benavii    时间: 2007-8-7 22:10
以下引用阁中人于2007-8-7 12:46:11的发言:

额- -对
就是这样……
那里读取的话是不是要从存档里面读取?

这个跟我那个Q菜单是配套的,Q菜单在跳出SceneMap时会把Backlog砍下一单元来,这个单元正好就存储为存档时的提示。
没有别的要改的话我就发上来了:)
作者: 阁中人    时间: 2007-8-8 00:26
啊- -
那么还要自己拆了
没关系了,就这样发上来好了
{/hx}谢谢Benavii大
作者: tranpol    时间: 2007-8-8 10:20
以下引用Benavii于2007-8-7 11:30:02的发言:
to tranpol:汗,我写脚本都是尽量融合进默认系统……和插一个脚本那种正好相反
如果不嫌弃的话我把我整合的这套工程给你好了很可能我都记不清改哪些地方了……OTL。


[本贴由作者于 2007-8-7 11:32:56 最后编辑]


抱个~~~好~~
谢谢~
给俺整合的也行
俺来的及就加在游戏里~~
...你有在改的地方注明就行




另...新更新物品版CG系统
作者: Amano    时间: 2007-8-8 16:39
提示: 作者被禁止或删除 内容自动屏蔽
作者: 阁中人    时间: 2007-8-8 19:31
{/gg}不晓得哪里出毛病了,读档时的那个不刷新,4个档都是一句话= =
改好过5分钟,后来好象没保存就 - - 现在又不行了
因为、、默认系统没有逐字效果- -所以还是整合到自己的上面


作者: Benavii    时间: 2007-8-9 06:06
以下引用阁中人于2007-8-8 11:31:32的发言:

不晓得哪里出毛病了,读档时的那个不刷新,4个档都是一句话= =
改好过5分钟,后来好象没保存就 - - 现在又不行了
因为、、默认系统没有逐字效果- -所以还是整合到自己的上面

我的工程设置的是按键的时候重新set_text并刷新一下的{/gg}
其实下面那个貌似对话窗口的是加高版的HelpWindow……将HelpWindow的set_text1方法改成逐字描绘的效果就可以了,改WindowMessage是不影响这里的{/gg}
作者: 阁中人    时间: 2007-8-9 06:14
喵,抄的时候少了一个.clone
这就问一下,clone到底是干什么用的……?
几个MESSAGEWINDOW有的有用CLONE来显示文字有的没有- -
作者: Benavii    时间: 2007-8-9 06:34
以下引用阁中人于2007-8-8 22:14:30的发言:

喵,抄的时候少了一个.clone
这就问一下,clone到底是干什么用的……?
几个MESSAGEWINDOW有的有用CLONE来显示文字有的没有- -

clone会返回冻结的字符串,不clone的话字符串会消失掉……
我的理解是,dup或普通的“=”拷贝的内容,像是镜中的投影,而clone下来的内容则是一张照片。区别就是受不受拷贝原本变化影响的问题……
作者: 阁中人    时间: 2007-8-9 08:32
也就是说clone就是生成了一个镜像来“欺骗”玩家令玩家认为打出来的是字,其实打出来的是图片……是吗?
- -看起来和用图片做菜单的“欺骗”方式有点像

最后说一句,贝大你的排版太完美了{/hx}不用任何的重排版就可以套上MO2的对话回顾那张皮{/cy}
谢谢贝大啦~!{/qiang}帅气!
作者: Benavii    时间: 2007-8-9 15:22
以下引用阁中人于2007-8-9 0:32:27的发言:

也就是说clone就是生成了一个镜像来“欺骗”玩家令玩家认为打出来的是字,其实打出来的是图片……是吗?
- -看起来和用图片做菜单的“欺骗”方式有点像

最后说一句,贝大你的排版太完美了不用任何的重排版就可以套上MO2的对话回顾那张皮
谢谢贝大啦~!帅气!

耶,不是那个意思……clone返回的仍然是字符串。
我的意思是说普通的a=b这种赋值的话,当b变了a也会跟着变;而a=b.clone的话,就是把clone之时b的值赋给a,之后b再怎么变不影响a的变化……
(以WindowMessage里的clone为例,$game_temp.message的值存一次对话就清空,如果text=$game_temp.message的话这个text会是空字符串,用上clone之后就把$game_temp.message在clone时候的值放到text里了。默认脚本也使用clone来获得对话内容)
所以说在这种意义上是影子和照片的关系:)

8谢^^ KID社的作品是俺的启蒙作啊,MO2相关的是一定要支持滴……
没记错的话MO2还有个动态选项……这几天要滚去魔都不能上了OTL 有空的话看看怎么改……
作者: tranpol    时间: 2007-8-10 09:31
Benavii做的存档真是漂亮....
还有存的时候的话~~~{/se}
就是俺要的效果啊~~~

B~~你系统俺试着在加俺的游戏里就是66整合的...
不过冲了...
俺只好等游戏全做完了
还来的及的话...俺就把系统装到你的模板里看看了
真的太喜欢你的存档定义了....
作者: 阁中人    时间: 2007-8-10 19:35
tranpol,66加强的那个你主要是用什么功能呢……?
看看http://rpg.blue/web/htm/news663.htm的极度简化的Fuki脚本吧
要是功能和你意的话,可以用这个去整合
我就是用这个整合的,米毛病- -
虽然我并不是把贝大所有改的地方都改了- -
作者: 见光即死    时间: 2007-8-10 20:30
{/ll}看不懂 今晚通宵研究
作者: tranpol    时间: 2007-8-11 12:00
Benavii可以把那个对话后的动画设成可有可无吗
...那个有东东在动俺看着不习惯

俺的鼠标倒是想做成动的
不知道可以用这个办法不


....也是啊~~~66整合俺也只用了他的对话脚本而已
倒...俺要不再合一次脚本算了
作者: 阁中人    时间: 2007-8-11 19:20
不想要动画的话,97号动画设为空就好了嘛

鼠标做成动的- -你没考虑速度吗
我做静的整合进去已经稍微有点卡了- -

再整合一次吧~偶支持你{/cy}
作者: 忻緣    时间: 2007-8-11 19:28
[用图片做对话框]可以用在粉多类型的游戏上哒.....{/hx}
作者: 阁中人    时间: 2007-8-11 19:40
- -[图片流]的手艺可以做出很多奇怪的特效……
8过逐字显示这种东西就无能为力了- -那得做出好几百M的东西来- -
作者: simple    时间: 2007-8-11 20:37
提示: 作者被禁止或删除 内容自动屏蔽
作者: 阁中人    时间: 2007-8-11 22:38
- -鼠标
鼠标可以自己加嘛、又没有和鼠标冲突的脚本。
真要说加了鼠标之后有什么困难,就是图片菜单不能用了
就算放了夏大的鼠标响应图片
那个图猛闪也还是不爽
到那个时候就自己用脚本描绘矩形玩吧~
作者: 四条眉毛    时间: 2007-8-12 00:43
路过
作者: tranpol    时间: 2007-8-12 12:31
我上传的CG系统
可以算是除了没有回忆系统
俺研究里的其它功能都有
也包括了鼠标功能

恩阁中人说的对
俺把动画做空就行了
也就不改脚本了

...鼠标做成动的会有多卡呢?
俺现在用了鼠标脚本
没有咋卡
...不过配置低的机器就不知道了
话说俺的游戏还用到了放AVI和GIF的脚本....
但愿在别的机器上不会很卡才好

今天只是小整理了一个这个研究贴....
没有大更新
作者: 叶舞枫    时间: 2007-8-13 18:23
由于此帖更新速度之快……
因此……LZ想要发布时再PM我给你发吧……要不早发了又得开帖子了OTZ……{/gg}
作者: 阁中人    时间: 2007-8-13 18:44
……
今天把剧本都录入了之后才发现一个BUG……

贝大的那个最后显示的97号动画……消除对话框的时候、没有办法消掉……
连他自己的范例工程也是这样……看那个问号一闪一闪的……

另外,还没搞懂为什么WINDOW_BASE里的normal_color改了颜色之后,为什么对话框里的字颜色改了,而对话回顾的字颜色不改…

…不过要是用\c[n]这个东西就可以……但是我要说,这个\c[n]占5个字的空间……这就是说那一行我就要少写一个字……郁闷……不想这么用……想用全局变量直接指定,但这样一来对话回顾里的字还是不跟着变色……

……记得有个什么脱壳的……去学学吧……
作者: tranpol    时间: 2007-8-14 11:37
以下引用叶舞枫于2007-8-13 10:23:20的发言:

由于此帖更新速度之快……
因此……LZ想要发布时再PM我给你发吧……要不早发了又得开帖子了OTZ……


谢谢叶舞枫大
这章节正式完了会发短信给你的~~
就差加上回忆系统的完美版了
因为最近没时间仔细看这个回忆系统
所以会比赛后更新了....



以下引用阁中人于2007-8-13 10:44:01的发言:

……
今天把剧本都录入了之后才发现一个BUG……

贝大的那个最后显示的97号动画……消除对话框的时候、没有办法消掉……
连他自己的范例工程也是这样……看那个问号一闪一闪的……

另外,还没搞懂为什么WINDOW_BASE里的normal_color改了颜色之后,为什么对话框里的字颜色改了,而对话回顾的字颜色不改…

…不过要是用\c[n]这个东西就可以……但是我要说,这个\c[n]占5个字的空间……这就是说那一行我就要少写一个字……郁闷……不想这么用……想用全局变量直接指定,但这样一来对话回顾里的字还是不跟着变色……

……记得有个什么脱壳的……去学学吧……

那个回忆系统...因为和我的系统冲
所以没装{/fd}
.......话说B大好久没来这贴回言的说~
不知他现在有没有做出加了完美对话脚本的回忆系统....
作者: tranpol    时间: 2007-8-16 13:00
更新一个让图片也可以用整画面变色震动的办法
作者: tranpol    时间: 2007-8-27 11:18
新上传了一次CG系统....
先加了1~6号CG
这次不会再有人说看不到CG了吧....

http://rpg.blue/UP_PIC/200707/骑士の圣堂CG系统new.rar

也在研究里更新说明了一下
如何用这个物品版的CG系统


另...因为比赛...俺肯定来不及了
所以俺又可以开始研究了~~
这贴又将开始更新....
俺开始整合完美版的AVG系统....
作者: fryrice    时间: 2007-8-28 23:37
研究了半天
完全弄不懂……
自能承认自己系统白痴……
作者: tranpol    时间: 2007-8-29 11:30
炒饭是在说物品的CG系统吗
...不懂也没关系
可以用就可以了

其实打开事件看一下的话
只是加了用物品名来做为图片读取名的小脚本
...只要知道几个必要脚本就可以做的东东
还不算是很复杂的东东
...前提是你要知道那几个必要语句

作者: 阁中人    时间: 2007-8-29 15:17
tranpol又开始研究了啊~欢迎
虽然完不成作品有些可惜……但为人民奉献的精神值得学习!
考虑一下这个问题吧……
因为RMXP一行可以现实20个字(满额40字符),如果在前面加\c[n](数数,5字符)的话,就会超过“文章显示”窗口的长度(44字符)然后……最后一个字就被迫转到下一行去了……
我现在是把RMXP的壳脱了人为加宽那个条的长度……虽然还是只能显示20个字,不过\c[n]之类的代码就可以随便加入而不必担心会把文字挤到下一行去……
有没有不用脱壳改窗口的方法?
作者: 索尔迦·蓝    时间: 2007-8-29 20:05
提示: 作者被禁止或删除 内容自动屏蔽
作者: 觉醒之炎    时间: 2007-8-29 22:37
惊人的东东~~~~可惜偶看的不是很明白- -
我的菜单问题已经搁置多年了- -正准备用事件解决- -
作者: 阁中人    时间: 2007-8-30 02:06
以下引用索尔迦·蓝于2007-8-29 12:05:54的发言:
啊,没有考虑到这种情况
在WindowMessage的class那行下面加上这个
attr_accessor :ani_sp_v
然后到SceneMap的
     if Input.trigger?(Input::L)
        @message_window.visible = !@message_window.visible
     end
这部分,改成
     if Input.trigger?(Input::L)
        @message_window.visible = !@message_window.visible
        @message_window.ani_sp_v.visible = !@message_window.ani_sp_v.visible
     end
就会把动画一起消掉了。

至于变色问题,把WindowBacklog的
   self.contents.font.color = normal_color
这一行移动到
   self.contents = Bitmap.new(width - 32, row_max * 32)
这行下面就行了。

由于一些个人的问题没有更新这个,咳>_<

原来如此,这周回家去试试。
另回楼上,如果用事件做菜单的话,可以,但是如果要用鼠标来响应这个事件菜单的话似乎有点麻烦……
作者: tranpol    时间: 2007-8-30 11:35
以下引用阁中人于2007-8-29 7:17:52的发言:

tranpol又开始研究了啊~欢迎
虽然完不成作品有些可惜……但为人民奉献的精神值得学习!
考虑一下这个问题吧……
因为RMXP一行可以现实20个字(满额40字符),如果在前面加\c[n](数数,5字符)的话,就会超过“文章显示”窗口的长度(44字符)然后……最后一个字就被迫转到下一行去了……
我现在是把RMXP的壳脱了人为加宽那个条的长度……虽然还是只能显示20个字,不过\c[n]之类的代码就可以随便加入而不必担心会把文字挤到下一行去……
有没有不用脱壳改窗口的方法?


如果只是要加长加宽对话的话
可以看看这个脚本
苹果梨·对话加强脚本
http://rpg.blue/web/htm/news667.htm



作者: tranpol    时间: 2007-8-30 11:36
以下引用索尔迦·蓝于2007-8-29 12:05:54的发言:



啊,没有考虑到这种情况
在WindowMessage的class那行下面加上这个
attr_accessor :ani_sp_v
然后到SceneMap的
     if Input.trigger?(Input::L)
        @message_window.visible = !@message_window.visible
     end
这部分,改成
     if Input.trigger?(Input::L)
        @message_window.visible = !@message_window.visible
        @message_window.ani_sp_v.visible = !@message_window.ani_sp_v.visible
     end
就会把动画一起消掉了。

至于变色问题,把WindowBacklog的
   self.contents.font.color = normal_color
这一行移动到
   self.contents = Bitmap.new(width - 32, row_max * 32)
这行下面就行了。

由于一些个人的问题没有更新这个,咳>_<


一把拉住索尔迦·蓝
....你难道是B大!!????
那个....俺找你很久了...泪抱~~~~
你那个回忆系统...俺是束手无策啊~~
加新和对话脚本不是冲突就是...没有字
俺的脚本...是差了点~~呵
....可以加个好一点的对话脚本不~~

还有你是真接短信给我完美版回忆系统的~~
这个是可以公布的吗
俺要问清才能发布的....是版权问题...
作者: tranpol    时间: 2007-8-30 11:39
以下引用觉醒之炎于2007-8-29 14:37:23的发言:

惊人的东东~~~~可惜偶看的不是很明白- -
我的菜单问题已经搁置多年了- -正准备用事件解决- -


事件菜单是比较容易加自已要的效果
就是...事件会比脚本卡....
俺的试验结论~
....不过俺的脚本也不咋的
不懂也只好努力研究了



另...小更新用按键来快进的方法
作者: 阁中人    时间: 2007-8-30 22:02
以下引用tranpol于2007-8-30 3:35:53的发言:


如果只是要加长加宽对话的话
可以看看这个脚本
苹果梨·对话加强脚本
http://rpg.blue/web/htm/news667.htm

那个插入符号的办法会让我少显示一行字……何况我只是想在前面打入并不显示出来的\c[n]呢。
那样不如找脱壳软件自己改吧,我记得6R哪里也有相关的内容,不过改的是脚本窗口的大小来着。
作者: 索尔迦·蓝    时间: 2007-8-30 23:04
提示: 作者被禁止或删除 内容自动屏蔽
作者: tranpol    时间: 2007-8-31 10:05
大抱一下蓝马甲的B大~~~~~~~
俺的要求不高...
对话脚本只要可以一个个字跳字和有
\| #等几帧
\! #等按了空格再继续
\~ #自动消失对话

这几个功能就可以了~~
一般好点的对话脚本...好像都有的吧


{/se}B大~~~等你的好消息了~~~~
俺就是卡在了这里....
俺现在可以专心研究完美版的CG系统和...做俺的游戏去了~~
作者: 小真·爱舞    时间: 2007-9-1 18:20
http://rpg.blue/viewthread.php?tid=68020
作者: 鏻甲    时间: 2007-9-2 06:18
提示: 作者被禁止或删除 内容自动屏蔽
作者: tranpol    时间: 2007-9-2 09:39
谢谢小真的音乐鉴赏系统~~
俺抱回去了~~
作者: tranpol    时间: 2007-9-3 11:28
更正了原来不能用物品的毛病
只用了前几栏物品栏
存CG名和一些CG数据
完全不影响其它的物品显示与使用
新加了可以横向和竖向移动长型CG的功能
适用所有原创美工的华丽丽游戏


俺昨天晚上研究了一通宵...
终于感觉小完美了~~~

B大就等你的完美版回忆系统了~~
俺就可以拼装完美版的AVG系统了
作者: Amano    时间: 2007-9-4 05:06
提示: 作者被禁止或删除 内容自动屏蔽
作者: tranpol    时间: 2007-9-4 11:08
抱抱A
呵呵...因为俺是懒人啊
如果每次改个CG名啊数据啥的
还要在脚本里找地方改
....太烦了
还不如利用现有的编辑器方便
....如果啥时脚本能改到连编缉器也可以修改了
那就强大了

A看看用的还方便不
有问题...请一定要说
俺上次发的那个旧版CG系统第三面...有BUG的
新版现已改正...可能没有人发现吧

作者: tranpol    时间: 2007-9-5 07:53
俺道歉~~...
今天前下载了小完美版CG系统的朋友
....再下一次吧
因为我前天做CG系统时不小心用了1.03版
怕旧版的1.02朋友看不到
又在1.02版贴了一次
但忘了改CG地图ID和物品的CG名
所以演示有点小问题
现在更正了......

http://rpg.blue/upload_program/files/小完美版CG系统.rar
俺这个人有点马大哈..呵
有BUG还请大家一定要说一下
作者: Amano    时间: 2007-9-6 01:43
提示: 作者被禁止或删除 内容自动屏蔽
作者: 雪雾明日晴    时间: 2007-9-6 06:11
这CG鉴赏速度慢了点,其他还不错。
作者: tranpol    时间: 2007-9-6 08:16
....A说的对
俺又粗心了
第二面和第三面的并排第三个事件是认打开的图片
因为是第一面直接粘过来的
我忘了打$t = $game_variables[27] + 6
和$t = $game_variables[27] + 12
+6+12是每加一面多的图片数
这样就不会有打开错CG图了

另...用缩图会慢吗...
那么我要不试试用物品的ICON来显示小图用
....那么等我改好用小图再上传一次吧
上面的小修改....下的朋友注意一下
俺就先不上传了更新版了
作者: tranpol    时间: 2007-9-6 11:17
http://rpg.blue/upload_program/files/小完美版有缩图CG系统new.rar


解决了~~
缩图请用原CG名加上s保存在同一个CG目录里
默认是用缩图的
如果不用缩图而是用原图缩小的话
在CG第一面第一个事件29号开关关了就行了

现在算是最终版了...
应该说没有BUG了吧~~~


再试一下吧
因为..我的电脑没有慢的感觉
所以要以大家的电脑为准了




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