Project1

标题: AVG华丽丽效果报告研究AVG·3跳出菜单完美版成功了! [打印本页]

作者: tranpol    时间: 2007-7-29 10:30
标题: AVG华丽丽效果报告研究AVG·3跳出菜单完美版成功了!
关于AVG华丽丽效果报告研究

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  ...自动全屏游戏脚本

==========================

AVG·3  AVG必要原素之快进篇

AVG特点的必要原素
玩过的同志肯定都知道
1快进开关~~你可以把看过的剧情跳过
2去除对话框~~可以光看图片
按确定刚才的对话框出现
3在对话中按ESC会有菜单
随时可以保存读取和回标题
4有回忆功能~~复看上几句的对话
5 CG图鉴~~打通关的图才可以看


不过.....RMXP原有功能并不自带
只能自已搞定了


俺先来说说第一点~快进功能
(其实是后面几个功能太高深~俺自已还没研究通呢
希望高人一起来交流一下经验~~~)

俺是做了个随时按的快进开关
想快就快
想停就停
在选项前自动停下


先建立一个并行事件
我设的是按“A”键(就是SHIFT,Z键)
开关为25
见图1


如果25快进开关--开着
就关闭
$game_system.typing = false
#这个是66版系统的Window_Message自带功能
就是文字一下全显示
光用开关不打这个也是可以的~~

如果25快进开关--关着
开启
$game_system.typing = true

#等待2帧是为了防止连按


然后按F11
脚本Window_Message
ctrl+f
查找一下
if @contents_showing
在下面加上这几行

      if $game_switches[25] == true
        terminate_message
        @wait_count = 2
        return
      end

#terminate_message就是自动下面的对话
等待2帧是为了不会快进的太恐怖.....
也是为了防错误发生

现在就做好了快进开关了
在对话中按“A”键
就可以随时用了
不过还不完善
接着要做在选项前自动停下的功能
在if @contents_showing这行下面
加上
      if $game_temp.choice_max > 0
        $game_system.typing = false
        $game_switches[25] = false
      end

到了选项这边就会自动关闭开关

这个几行一定要加在刚才设的快进开关前面
否则.....会自动跳掉的

好了~~
现在可以去试试这个开关好不好用了


这个只是改几句脚本
就不提供范例下载了

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

if @contents_showing

      if $game_temp.choice_max > 0
        $game_system.typing = false
        $game_switches[25] = false
      end
      if $game_temp.choice_max == 0
        self.pause = true
      end
      if $game_switches[25] == true
        terminate_message
        @wait_count = 2
        return
      end

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

俺做的是按CTRL键为快进开关
就是按了自动跳
如果喜欢按着CTRL键跳对话的朋友
真·ZERO有上传过一个脚本的~~
http://rpg.blue/UP_PIC/200707/对话加强脚本范例.zip
靠MAIN那个Window_Message对话脚本就按着CTRL才跳对话

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


握拳~~~为了AVG华丽丽事业~!!
俺会很认真的研究下去的

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

3.2 AVG必要原素之去除对话框

首先要感谢洋娃娃大提供的源文件
帮你写脚本的朋友是NAPO大吗~~
也同样感谢
俺太激动了~~~~终于可以做到这个功能了~~


现公布如何做到这个功能
Scene_Map脚本
查找
@message_window
默认的是在15.36.79行
所有的"@"符号都改成"$"
现在变成
15 $message_window = Window_Message.new
36 $message_window.dispose
79 $message_window.update
然后在
#--------------------------------------------------------------------------
  # ● 刷新画面
  #--------------------------------------------------------------------------
  def update
    # 循环
    loop do
   #下面打上   

if Input.trigger?(Input::CTRL)#按CTRL键
  $message_window.visible = $message_window.visible ? false : true#切换显示和不显示模式
end


这样就完成了~~~~
改起来是很方便~
不过就这几句俺这小白就想破头.....
还是懂脚本的好啊~~~



以下是索尔迦·蓝提供的另一个更简单的方法
Scene_Map脚本
是99行的   
if $game_temp.message_window_showing  这行下面改成这样
   # 显示信息窗口中的情况下
   if $game_temp.message_window_showing
     if Input.trigger?(Input::L)#这个是翻页键
        @message_window.visible = !@message_window.visible
     end
     return
   end
测试可行

这两个方法用其中一个就可以了


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


AVG·3.3 对话中随时跳出菜单1

Window_Message里面
if Input.trigger?(Input::B)这行
下面打上
if Input.trigger?(Input::B)
        if  $game_temp.choice_max > 0
          if $game_temp.choice_max > 0 and $game_temp.choice_cancel_type > 0
          $game_system.se_play($data_system.cancel_se)
          $game_temp.choice_proc.call($game_temp.choice_cancel_type - 1)
          terminate_message
        end
        else
          $scene = Scene_Menu.new
        end
       end

现在在对话中按ESC键已可以跳出存档菜单了
但是图片会遮住存档菜单
然后在Window_Base脚本23行
找到self.z =  这行
把这个数字改大点吧
俺改成了
self.z = 10000
记的如果你用了鼠标脚本
还要把鼠标的Z也调大一点
现在就没问题了

俺设的是跳出存档画面
可以设成$scene = Scene_Menu.new
就是跳出菜单了
不过要好好改一下你的Menu菜单
RMXP自带的菜单用在AVG游戏上
···想想就很恐怖
做个干净的有存取档和回标题的菜单就可以了
大胆的删吧


俺还要解决几个问题
就是存档是没问题了
但是存好了
对话会向下翻一页(应该要对话不动才对)
不管存不存~~对话都会跳一下····
还有在有选项的地方存档的话
····出现的错误就大鸟~~
会直接跳到事件的开头的对话去....
对话反复了~~~-_-||||
俺也不知道要改哪里~~~
还要再研究讨论一下了
俺再去问几个高人吧



另~~那个用图片做按键的话···
俺试了一下~~光用图片响应脚本是不行
在对话中按图片响应是没法调用公共事件的
还要用地图并行事件调用公共事件才有反应
做法可以参考自制菜单教程
不过有缺点~~
有时还会卡住···
建议还是用脚本的菜单吧

下面为俺改好的AVG专用菜单
是为透明色的~~

#####################################
#==============================================================================
# ■ Scene_Menu
#------------------------------------------------------------------------------
#  处理菜单画面的类。
#   AVG专用~~岚整理
#==============================================================================
module XRXS_MP7_Module
  def create_spriteset
    @spriteset = Spriteset_Map.new
  end
  def dispose_spriteset
    @spriteset.dispose
  end
end
class Scene_Menu
  
  #--------------------------------------------------------------------------
  # ● 初始化对像
  #     menu_index : 命令光标的初期位置
  #--------------------------------------------------------------------------
  def initialize(menu_index = 0)
    @menu_index = menu_index
  end
  #--------------------------------------------------------------------------
  # ● 主处理
  #--------------------------------------------------------------------------
  def main
    # 生成命令窗口

    s1 = "存档"
    s2 = "取档"
    s3 = "返回标题"
    s4 = "结束游戏"
    @command_window = Window_Command.new(160, [s1, s2, s3, s4])
    @command_window.index = @menu_index
    @command_window.x = 200
    @command_window.y = 200
   
    @command_window.opacity = 160
    @command_window.update
   
    # 禁止存档的情况下
    if $game_system.save_disabled
      # 存档无效
      @command_window.disable_item(1)
    end
    # 执行过渡
    Graphics.transition
    # 主循环
    loop do
      # 刷新游戏画面
      Graphics.update
      # 刷新输入信息
      Input.update
      # 刷新画面
      update
      # 如果切换画面就中断循环
      if $scene != self
        break
      end
    end
    # 准备过渡
    Graphics.freeze
    # 释放窗口
    @command_window.dispose
  end
  #--------------------------------------------------------------------------
  # ● 刷新画面
  #--------------------------------------------------------------------------
  def update
    # 刷新窗口
    @command_window.update

    # 命令窗口被激活的情况下: 调用 update_command
    if @command_window.active
      update_command
      return
    end

  end
  #--------------------------------------------------------------------------
  # ● 刷新画面 (命令窗口被激活的情况下)
  #--------------------------------------------------------------------------
  def update_command
    # 按下 B 键的情况下
    if Input.trigger?(Input::B)
      # 演奏取消 SE
      $game_system.se_play($data_system.cancel_se)
      # 切换的地图画面
      $scene = Scene_Map.new
      return
    end
    # 按下 C 键的情况下
    if Input.trigger?(Input::C)

      # 命令窗口的光标位置分支
      case @command_window.index
      when 0  # 存档
        if $game_system.save_disabled
          # 演奏冻结 SE
          $game_system.se_play($data_system.buzzer_se)
          return
        end
        # 演奏确定 SE
        $game_system.se_play($data_system.decision_se)
        # 切换到存档画面
        $scene = Scene_Save.new
      when 1  # 取档
        
        # 演奏确定 SE
        $game_system.se_play($data_system.decision_se)
        # 切换到存档画面
        $scene = Scene_Load.new
      when 2  # 回标题
        # 演奏确定 SE
        $game_system.se_play($data_system.decision_se)
        # 切换到游戏结束画面
        $scene = Scene_Title.new
      
      when 3  # 结束游戏
        # 演奏确定 SE
        $game_system.se_play($data_system.decision_se)
        # 切换到游戏结束画面
        $scene = nil
      end
      return
    end
  end

  include XRXS_MP7_Module
  alias xrxs_mp7_main main
  def main
    create_spriteset
    xrxs_mp7_main
    dispose_spriteset
  end
end
#########################
如果是用了这个脚本的话
Scene_Save
$scene = Scene_Menu.new(4)#原是第四选项
要改成
$scene = Scene_Menu.new(1)#现在是第一个选项
确定和取消都要改
Scene_Load
原来
$scene = Scene_Title.new
改成
$scene = Scene_Menu.new(2)
#########################

AVG·3.4  对话中随时跳出菜单2完美版

太感谢了~~~
黑暗之神和莉莉雅姐都提供了解决办法~~~
大谢两位~~~~
这个是俺提问的原贴地址
http://rpg.blue/viewthread.php?tid=63216&page=1

以下是莉莉雅姐的办法~~
俺直接粘了原文:


對話會翻一頁的問題:
因為對話顯示的時候,指令已經跑到對話這一行結束,準備進入下一行了
所以按ESC進入Menu的時候,要把事件解譯器(Interpreter)的index往前挪一位(減1)再存,再回Scene_Map時對話才會重新顯示。
在有選項的地方存檔的話,我實驗過後,應該是腳本的改法在選項的地方沒有處理造成的.......


--
實驗中,首先,你的對話選項裡面會有需要用到ESC作為選項的嗎?
如果沒有的話,我可以乾脆把ESC的選項用途給拿掉....


我這邊是改成:
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

另外Interpreter裡頭

  def index
    return @index
  end
  def index=(index)
    @index = index
  end
  def list
    return @list
  end

(直接把選項裡頭按ESC分歧的項目給略過了。)
P.S. 我是直接開個新專案去實驗的,沒有加上其他腳本~


################################
以下是黑暗之神的做法~~

【问题所在】
跳出地图后,正在执行的内容将完毕,当跳回地图时,自动执行下一条内容,即让我们看到下一页的对话信息,想改成“跳回地图时显示跳出地图时所显示的对话内容”,则
【可解决该问题的方法】
存档、取消菜单等“跳回地图”时,即在
$scene = Scene_Map.new
前加个临时变量,比如加个全局变量
$返回地图对话中 = 0
然后再到Interpreter 2中的[ # 事件命令的功能可以参考 @parameters ]注释前插入:
if $返回地图对话中 != nil
  $返回地图对话中 = nil
  @index -= 1
  return
end
这样跳转回地图时就会显示上一页的对话信息…

工程下载地址:
请搜索KDS为修改过的地方
http://rpg.blue/UP_PIC/200707/kds_message_menu.rar

黑暗之神改的地方比较多...
大家可以看着参考一下



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

以上两个办法都是可行的~~
俺激动了~~~~
终于解决了这个问题了~~


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

AVG·3.5  关于图片遮住天气

俺找到地方改了
其实只要改一个Z值就行了
Spriteset_Map脚本
这里就是设游戏里所有图片和地图天气的显示
第17行
@viewport2.z = 200
viewport2是指图片显示的端口
viewport1是地图类和天气的
俺在这行的上面加了一行
@viewport1.z = 400
把地图天气类的Z值调的比图片高就行了
不过不做AVG的同志千万不要这么改啊~~
否则在正常地图上是没法显示图片鸟~~~


试了一下····
竟然成功了............
天啊~~~俺烦恼了半天的问题
改个一行就全解决了~!!??
功臣是F1同志~~~
俺仔细看了一下F1的帮助文件
有写到端口显示及图片Z值
果然这个真是万能手册啊~~
大家也要有空多看看


另闪电也发过我短信告诉了我改的正确方法~~
在这里还是要谢谢她的

#################################################
AVG·3.6  跳过标题画面用自制事件标题

这个东东站上其实有很多教学了
俺只是整理在这个总研究中
看起来方便一点

Scene_Title脚本
这个做起来真的很方便
只要大胆的删就行了
33行开始
# 生成标题图形
    @sprite = Sprite.new
    @sprite.bitmap = RPG::Cache.title($data_system.title_name)
    # 生成命令窗口
    s1 = "新游戏"
    s2 = "继续"
    s3 = "退出"
    @command_window = Window_Command.new(192, [s1, s2, s3])
    @command_window.back_opacity = 160
    @command_window.x = 320 - @command_window.width / 2
    @command_window.y = 288


这节都不要了


# 继续为有效的情况下、光标停止在继续上
    # 无效的情况下、继续的文字显示为灰色
    if @continue_enabled
      @command_window.index = 1
    else
      @command_window.disable_item(1)
    end
    # 演奏标题 BGM
    $game_system.bgm_play($data_system.title_bgm)
    # 停止演奏 ME、BGS
    Audio.me_stop
    Audio.bgs_stop

删了~~~


    # 释放命令窗口
    @command_window.dispose
    # 释放标题图形
    @sprite.bitmap.dispose
    @sprite.dispose


这几行也要删了
上面窗口都删了
拿啥释放啊~~


#--------------------------------------------------------------------------
  # ● 刷新画面
  #--------------------------------------------------------------------------
  def update
    # 刷新命令窗口
    @command_window.update
    # 按下 C 键的情况下
    if Input.trigger?(Input::C)
      # 命令窗口的光标位置的分支
      case @command_window.index
      when 0  # 新游戏
        command_new_game
      when 1  # 继续
        command_continue
      when 2  # 退出
        command_shutdown
      end
    end
  end

这里不能都删了
改成执行新游戏就行了

#--------------------------------------------------------------------------
# ● 刷新画面
#--------------------------------------------------------------------------

def update
command_new_game
end



好了OK
在主角初始地图做成你的事件标题就行了
这样简单的一个标题脚本就改好鸟~~~

#########################################
AVG·3.7  ...自动全屏游戏脚本
毕竟有人会不知道
俺就把这脚本整理到俺研究里来了
是主站上直接粘来的

脚本功能: 进入游戏的时候模拟按下alt+enter键,自动全屏。

使用方法: 复制全部脚本内容,在Main脚本之前按insert,插入此脚本全部内容。



#=========================================================================

=====
# 本脚本来自www.66RPG.com,使用和转载请保留此信息
#=========================================================================

=====

unless $keybd
   $keybd = Win32API.new 'user32.dll', 'keybd_event', ['i', 'i', 'l',

'l'], 'v'
   $keybd.call 0xA4, 0, 0, 0
   $keybd.call 13, 0, 0, 0
   $keybd.call 13, 0, 2, 0
   $keybd.call 0xA4, 0, 2, 0
end

#=========================================================================

=====
# 本脚本来自www.66RPG.com,使用和转载请保留此信息
#=========================================================================

=====

#################################
其它相关研究地址

目录

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


AVG·3  AVG必要原素  (预定计划,...)

AVG·3.8  华丽丽版图鉴系统
AVG·3.9  回忆功能

3.9的研究...俺不知能不能研究通了~~
要靠大家的帮助了~



我等几个必要功能都研究通了
会放上一个AVG基础范例的
http://rpg.blue/UP_PIC/200707/AVG研究平装版.rar
现放上一个半成品...AVG研究平装版
已有功能1~6
是用默认系统改的
等回忆系统和CG图鉴系统做好
俺会在66整合系统上改个精装完美版的



              [本贴由 叶舞枫 于 2007-8-4 9:54:02 进行了编辑]
作者: tranpol    时间: 2007-7-29 10:30
标题: AVG华丽丽效果报告研究AVG·3跳出菜单完美版成功了!
关于AVG华丽丽效果报告研究

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  ...自动全屏游戏脚本

==========================

AVG·3  AVG必要原素之快进篇

AVG特点的必要原素
玩过的同志肯定都知道
1快进开关~~你可以把看过的剧情跳过
2去除对话框~~可以光看图片
按确定刚才的对话框出现
3在对话中按ESC会有菜单
随时可以保存读取和回标题
4有回忆功能~~复看上几句的对话
5 CG图鉴~~打通关的图才可以看


不过.....RMXP原有功能并不自带
只能自已搞定了


俺先来说说第一点~快进功能
(其实是后面几个功能太高深~俺自已还没研究通呢
希望高人一起来交流一下经验~~~)

俺是做了个随时按的快进开关
想快就快
想停就停
在选项前自动停下


先建立一个并行事件
我设的是按“A”键(就是SHIFT,Z键)
开关为25
见图1


如果25快进开关--开着
就关闭
$game_system.typing = false
#这个是66版系统的Window_Message自带功能
就是文字一下全显示
光用开关不打这个也是可以的~~

如果25快进开关--关着
开启
$game_system.typing = true

#等待2帧是为了防止连按


然后按F11
脚本Window_Message
ctrl+f
查找一下
if @contents_showing
在下面加上这几行

      if $game_switches[25] == true
        terminate_message
        @wait_count = 2
        return
      end

#terminate_message就是自动下面的对话
等待2帧是为了不会快进的太恐怖.....
也是为了防错误发生

现在就做好了快进开关了
在对话中按“A”键
就可以随时用了
不过还不完善
接着要做在选项前自动停下的功能
在if @contents_showing这行下面
加上
      if $game_temp.choice_max > 0
        $game_system.typing = false
        $game_switches[25] = false
      end

到了选项这边就会自动关闭开关

这个几行一定要加在刚才设的快进开关前面
否则.....会自动跳掉的

好了~~
现在可以去试试这个开关好不好用了


这个只是改几句脚本
就不提供范例下载了

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

if @contents_showing

      if $game_temp.choice_max > 0
        $game_system.typing = false
        $game_switches[25] = false
      end
      if $game_temp.choice_max == 0
        self.pause = true
      end
      if $game_switches[25] == true
        terminate_message
        @wait_count = 2
        return
      end

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

俺做的是按CTRL键为快进开关
就是按了自动跳
如果喜欢按着CTRL键跳对话的朋友
真·ZERO有上传过一个脚本的~~
http://rpg.blue/UP_PIC/200707/对话加强脚本范例.zip
靠MAIN那个Window_Message对话脚本就按着CTRL才跳对话

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


握拳~~~为了AVG华丽丽事业~!!
俺会很认真的研究下去的

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

3.2 AVG必要原素之去除对话框

首先要感谢洋娃娃大提供的源文件
帮你写脚本的朋友是NAPO大吗~~
也同样感谢
俺太激动了~~~~终于可以做到这个功能了~~


现公布如何做到这个功能
Scene_Map脚本
查找
@message_window
默认的是在15.36.79行
所有的"@"符号都改成"$"
现在变成
15 $message_window = Window_Message.new
36 $message_window.dispose
79 $message_window.update
然后在
#--------------------------------------------------------------------------
  # ● 刷新画面
  #--------------------------------------------------------------------------
  def update
    # 循环
    loop do
   #下面打上   

if Input.trigger?(Input::CTRL)#按CTRL键
  $message_window.visible = $message_window.visible ? false : true#切换显示和不显示模式
end


这样就完成了~~~~
改起来是很方便~
不过就这几句俺这小白就想破头.....
还是懂脚本的好啊~~~



以下是索尔迦·蓝提供的另一个更简单的方法
Scene_Map脚本
是99行的   
if $game_temp.message_window_showing  这行下面改成这样
   # 显示信息窗口中的情况下
   if $game_temp.message_window_showing
     if Input.trigger?(Input::L)#这个是翻页键
        @message_window.visible = !@message_window.visible
     end
     return
   end
测试可行

这两个方法用其中一个就可以了


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


AVG·3.3 对话中随时跳出菜单1

Window_Message里面
if Input.trigger?(Input::B)这行
下面打上
if Input.trigger?(Input::B)
        if  $game_temp.choice_max > 0
          if $game_temp.choice_max > 0 and $game_temp.choice_cancel_type > 0
          $game_system.se_play($data_system.cancel_se)
          $game_temp.choice_proc.call($game_temp.choice_cancel_type - 1)
          terminate_message
        end
        else
          $scene = Scene_Menu.new
        end
       end

现在在对话中按ESC键已可以跳出存档菜单了
但是图片会遮住存档菜单
然后在Window_Base脚本23行
找到self.z =  这行
把这个数字改大点吧
俺改成了
self.z = 10000
记的如果你用了鼠标脚本
还要把鼠标的Z也调大一点
现在就没问题了

俺设的是跳出存档画面
可以设成$scene = Scene_Menu.new
就是跳出菜单了
不过要好好改一下你的Menu菜单
RMXP自带的菜单用在AVG游戏上
···想想就很恐怖
做个干净的有存取档和回标题的菜单就可以了
大胆的删吧


俺还要解决几个问题
就是存档是没问题了
但是存好了
对话会向下翻一页(应该要对话不动才对)
不管存不存~~对话都会跳一下····
还有在有选项的地方存档的话
····出现的错误就大鸟~~
会直接跳到事件的开头的对话去....
对话反复了~~~-_-||||
俺也不知道要改哪里~~~
还要再研究讨论一下了
俺再去问几个高人吧



另~~那个用图片做按键的话···
俺试了一下~~光用图片响应脚本是不行
在对话中按图片响应是没法调用公共事件的
还要用地图并行事件调用公共事件才有反应
做法可以参考自制菜单教程
不过有缺点~~
有时还会卡住···
建议还是用脚本的菜单吧

下面为俺改好的AVG专用菜单
是为透明色的~~

#####################################
#==============================================================================
# ■ Scene_Menu
#------------------------------------------------------------------------------
#  处理菜单画面的类。
#   AVG专用~~岚整理
#==============================================================================
module XRXS_MP7_Module
  def create_spriteset
    @spriteset = Spriteset_Map.new
  end
  def dispose_spriteset
    @spriteset.dispose
  end
end
class Scene_Menu
  
  #--------------------------------------------------------------------------
  # ● 初始化对像
  #     menu_index : 命令光标的初期位置
  #--------------------------------------------------------------------------
  def initialize(menu_index = 0)
    @menu_index = menu_index
  end
  #--------------------------------------------------------------------------
  # ● 主处理
  #--------------------------------------------------------------------------
  def main
    # 生成命令窗口

    s1 = "存档"
    s2 = "取档"
    s3 = "返回标题"
    s4 = "结束游戏"
    @command_window = Window_Command.new(160, [s1, s2, s3, s4])
    @command_window.index = @menu_index
    @command_window.x = 200
    @command_window.y = 200
   
    @command_window.opacity = 160
    @command_window.update
   
    # 禁止存档的情况下
    if $game_system.save_disabled
      # 存档无效
      @command_window.disable_item(1)
    end
    # 执行过渡
    Graphics.transition
    # 主循环
    loop do
      # 刷新游戏画面
      Graphics.update
      # 刷新输入信息
      Input.update
      # 刷新画面
      update
      # 如果切换画面就中断循环
      if $scene != self
        break
      end
    end
    # 准备过渡
    Graphics.freeze
    # 释放窗口
    @command_window.dispose
  end
  #--------------------------------------------------------------------------
  # ● 刷新画面
  #--------------------------------------------------------------------------
  def update
    # 刷新窗口
    @command_window.update

    # 命令窗口被激活的情况下: 调用 update_command
    if @command_window.active
      update_command
      return
    end

  end
  #--------------------------------------------------------------------------
  # ● 刷新画面 (命令窗口被激活的情况下)
  #--------------------------------------------------------------------------
  def update_command
    # 按下 B 键的情况下
    if Input.trigger?(Input::B)
      # 演奏取消 SE
      $game_system.se_play($data_system.cancel_se)
      # 切换的地图画面
      $scene = Scene_Map.new
      return
    end
    # 按下 C 键的情况下
    if Input.trigger?(Input::C)

      # 命令窗口的光标位置分支
      case @command_window.index
      when 0  # 存档
        if $game_system.save_disabled
          # 演奏冻结 SE
          $game_system.se_play($data_system.buzzer_se)
          return
        end
        # 演奏确定 SE
        $game_system.se_play($data_system.decision_se)
        # 切换到存档画面
        $scene = Scene_Save.new
      when 1  # 取档
        
        # 演奏确定 SE
        $game_system.se_play($data_system.decision_se)
        # 切换到存档画面
        $scene = Scene_Load.new
      when 2  # 回标题
        # 演奏确定 SE
        $game_system.se_play($data_system.decision_se)
        # 切换到游戏结束画面
        $scene = Scene_Title.new
      
      when 3  # 结束游戏
        # 演奏确定 SE
        $game_system.se_play($data_system.decision_se)
        # 切换到游戏结束画面
        $scene = nil
      end
      return
    end
  end

  include XRXS_MP7_Module
  alias xrxs_mp7_main main
  def main
    create_spriteset
    xrxs_mp7_main
    dispose_spriteset
  end
end
#########################
如果是用了这个脚本的话
Scene_Save
$scene = Scene_Menu.new(4)#原是第四选项
要改成
$scene = Scene_Menu.new(1)#现在是第一个选项
确定和取消都要改
Scene_Load
原来
$scene = Scene_Title.new
改成
$scene = Scene_Menu.new(2)
#########################

AVG·3.4  对话中随时跳出菜单2完美版

太感谢了~~~
黑暗之神和莉莉雅姐都提供了解决办法~~~
大谢两位~~~~
这个是俺提问的原贴地址
http://rpg.blue/viewthread.php?tid=63216&page=1

以下是莉莉雅姐的办法~~
俺直接粘了原文:


對話會翻一頁的問題:
因為對話顯示的時候,指令已經跑到對話這一行結束,準備進入下一行了
所以按ESC進入Menu的時候,要把事件解譯器(Interpreter)的index往前挪一位(減1)再存,再回Scene_Map時對話才會重新顯示。
在有選項的地方存檔的話,我實驗過後,應該是腳本的改法在選項的地方沒有處理造成的.......


--
實驗中,首先,你的對話選項裡面會有需要用到ESC作為選項的嗎?
如果沒有的話,我可以乾脆把ESC的選項用途給拿掉....


我這邊是改成:
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

另外Interpreter裡頭

  def index
    return @index
  end
  def index=(index)
    @index = index
  end
  def list
    return @list
  end

(直接把選項裡頭按ESC分歧的項目給略過了。)
P.S. 我是直接開個新專案去實驗的,沒有加上其他腳本~


################################
以下是黑暗之神的做法~~

【问题所在】
跳出地图后,正在执行的内容将完毕,当跳回地图时,自动执行下一条内容,即让我们看到下一页的对话信息,想改成“跳回地图时显示跳出地图时所显示的对话内容”,则
【可解决该问题的方法】
存档、取消菜单等“跳回地图”时,即在
$scene = Scene_Map.new
前加个临时变量,比如加个全局变量
$返回地图对话中 = 0
然后再到Interpreter 2中的[ # 事件命令的功能可以参考 @parameters ]注释前插入:
if $返回地图对话中 != nil
  $返回地图对话中 = nil
  @index -= 1
  return
end
这样跳转回地图时就会显示上一页的对话信息…

工程下载地址:
请搜索KDS为修改过的地方
http://rpg.blue/UP_PIC/200707/kds_message_menu.rar

黑暗之神改的地方比较多...
大家可以看着参考一下



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

以上两个办法都是可行的~~
俺激动了~~~~
终于解决了这个问题了~~


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

AVG·3.5  关于图片遮住天气

俺找到地方改了
其实只要改一个Z值就行了
Spriteset_Map脚本
这里就是设游戏里所有图片和地图天气的显示
第17行
@viewport2.z = 200
viewport2是指图片显示的端口
viewport1是地图类和天气的
俺在这行的上面加了一行
@viewport1.z = 400
把地图天气类的Z值调的比图片高就行了
不过不做AVG的同志千万不要这么改啊~~
否则在正常地图上是没法显示图片鸟~~~


试了一下····
竟然成功了............
天啊~~~俺烦恼了半天的问题
改个一行就全解决了~!!??
功臣是F1同志~~~
俺仔细看了一下F1的帮助文件
有写到端口显示及图片Z值
果然这个真是万能手册啊~~
大家也要有空多看看


另闪电也发过我短信告诉了我改的正确方法~~
在这里还是要谢谢她的

#################################################
AVG·3.6  跳过标题画面用自制事件标题

这个东东站上其实有很多教学了
俺只是整理在这个总研究中
看起来方便一点

Scene_Title脚本
这个做起来真的很方便
只要大胆的删就行了
33行开始
# 生成标题图形
    @sprite = Sprite.new
    @sprite.bitmap = RPG::Cache.title($data_system.title_name)
    # 生成命令窗口
    s1 = "新游戏"
    s2 = "继续"
    s3 = "退出"
    @command_window = Window_Command.new(192, [s1, s2, s3])
    @command_window.back_opacity = 160
    @command_window.x = 320 - @command_window.width / 2
    @command_window.y = 288


这节都不要了


# 继续为有效的情况下、光标停止在继续上
    # 无效的情况下、继续的文字显示为灰色
    if @continue_enabled
      @command_window.index = 1
    else
      @command_window.disable_item(1)
    end
    # 演奏标题 BGM
    $game_system.bgm_play($data_system.title_bgm)
    # 停止演奏 ME、BGS
    Audio.me_stop
    Audio.bgs_stop

删了~~~


    # 释放命令窗口
    @command_window.dispose
    # 释放标题图形
    @sprite.bitmap.dispose
    @sprite.dispose


这几行也要删了
上面窗口都删了
拿啥释放啊~~


#--------------------------------------------------------------------------
  # ● 刷新画面
  #--------------------------------------------------------------------------
  def update
    # 刷新命令窗口
    @command_window.update
    # 按下 C 键的情况下
    if Input.trigger?(Input::C)
      # 命令窗口的光标位置的分支
      case @command_window.index
      when 0  # 新游戏
        command_new_game
      when 1  # 继续
        command_continue
      when 2  # 退出
        command_shutdown
      end
    end
  end

这里不能都删了
改成执行新游戏就行了

#--------------------------------------------------------------------------
# ● 刷新画面
#--------------------------------------------------------------------------

def update
command_new_game
end



好了OK
在主角初始地图做成你的事件标题就行了
这样简单的一个标题脚本就改好鸟~~~

#########################################
AVG·3.7  ...自动全屏游戏脚本
毕竟有人会不知道
俺就把这脚本整理到俺研究里来了
是主站上直接粘来的

脚本功能: 进入游戏的时候模拟按下alt+enter键,自动全屏。

使用方法: 复制全部脚本内容,在Main脚本之前按insert,插入此脚本全部内容。



#=========================================================================

=====
# 本脚本来自www.66RPG.com,使用和转载请保留此信息
#=========================================================================

=====

unless $keybd
   $keybd = Win32API.new 'user32.dll', 'keybd_event', ['i', 'i', 'l',

'l'], 'v'
   $keybd.call 0xA4, 0, 0, 0
   $keybd.call 13, 0, 0, 0
   $keybd.call 13, 0, 2, 0
   $keybd.call 0xA4, 0, 2, 0
end

#=========================================================================

=====
# 本脚本来自www.66RPG.com,使用和转载请保留此信息
#=========================================================================

=====

#################################
其它相关研究地址

目录

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


AVG·3  AVG必要原素  (预定计划,...)

AVG·3.8  华丽丽版图鉴系统
AVG·3.9  回忆功能

3.9的研究...俺不知能不能研究通了~~
要靠大家的帮助了~



我等几个必要功能都研究通了
会放上一个AVG基础范例的
http://rpg.blue/UP_PIC/200707/AVG研究平装版.rar
现放上一个半成品...AVG研究平装版
已有功能1~6
是用默认系统改的
等回忆系统和CG图鉴系统做好
俺会在66整合系统上改个精装完美版的



              [本贴由 叶舞枫 于 2007-8-4 9:54:02 进行了编辑]
作者: xxzshlg    时间: 2007-7-29 10:52
提示: 作者被禁止或删除 内容自动屏蔽
作者: tranpol    时间: 2007-7-29 11:05
俺是为了全世界的AVG制作人民而努力啊~~~

有人说要弄个图片快进按键
就个也是可行的
只要和鼠标图片响应脚本配合使用
触发的公共事件做的和
我那个并行事件一样就行了

我等几个必要功能都研究通了
会放上一个AVG基础范例的


话说那个按键就可以去除对话框看图
再按确定就恢复的功能
洋娃娃同志曾做出过
....不过.......
他老人家....加密了
这个就成为传说的一个功能了~~~
作者: 精灵使者    时间: 2007-7-29 14:25
这个么。你可以参考我的r剧来制作。整个r剧用一个统一变量控制,然后如果想看前面的话,调整好变量返回地图即可。
至于菜单么我感觉avg不那么需要。自己读取的部分可以完全自己做章节部分。恩恩。
参考我的r剧——《精灵外传-追忆篇》的读取章节制作方式。我那里面使用了一个完整的控制系统。
另外那个对话框问题我在援手区已经回答了哦……你可以自己去做做看。
作者: 影北山人    时间: 2007-7-29 22:08
身为全世界的AVG制作人民之一,向楼主致以真挚的感谢,鼓励一个(此功能暂时屏蔽。。)

-----------

岚啊,真是太感谢你了!说完这些话再回头仔细研究去~~~天降福音啊啊啊啊~  =3=
--------------
順帶一提這個帖子應該也能有點幫助。http://rpg.blue/viewthread.php?tid=62395   要整個帖子都看完哦~
作者: tranpol    时间: 2007-7-30 13:13
俺的第二个问题
去除对话框也解决了
洋娃娃大提供了源文件~~~
真真真真太感激了~~~~~
这贴里是详细
http://rpg.blue/viewthread.php?tid=62617


以下引用精灵使者于2007-7-29 6:25:46的发言:

这个么。你可以参考我的r剧来制作。整个r剧用一个统一变量控制,然后如果想看前面的话,调整好变量返回地图即可。
至于菜单么我感觉avg不那么需要。自己读取的部分可以完全自己做章节部分。恩恩。
参考我的r剧——《精灵外传-追忆篇》的读取章节制作方式。我那里面使用了一个完整的控制系统。
另外那个对话框问题我在援手区已经回答了哦……你可以自己去做做看。


[本贴由作者于 2007-7-29 6:26:40 最后编辑]


精灵~~你那个R剧叫啥名字~~
俺去下~~
呵呵非常感谢精灵的热心~~~大抱`~

影子啊~~
你说的那个贴俺看过的~~
恩也很有帮助~~
不过俺的游戏用按键的就行了~~

作者: 影北山人    时间: 2007-7-30 19:21
抱抱岚~~~辛苦了~~真是帮了我大忙 {/hx}



找个板凳专心等第三个~~
作者: 小真·爱舞    时间: 2007-7-30 23:30

我改了很多脚本,至今还没有完善。

作者: tranpol    时间: 2007-7-31 10:06
小真.....你这个切图就是俺梦想中的系统啊
你是用来勾引人的
还是想来拯救这边AVG制作人民的~~
............{/fd}

另~~~更新加了去除对话框的做法
作者: 小真·爱舞    时间: 2007-7-31 18:05
除了快进以外,你所说的效果我很早以前就都实现了。
我的这个效果修改了大量脚本,而且和我本身的系统融为一体,还有个瑕疵。
你就放弃吧,这个弄起来难度很高。
作者: 阁中人    时间: 2007-7-31 18:19
那个对话时叫菜单出来的话
如果用并行事件写脚本
$随便什么 = Scene_menu.new
然后在MAP和MESSAGE还有MENU这几个里面动一点手脚
使叫出菜单的时候,因为那个手脚的缘故
无效掉MESSAGE中C键过对话的功能
不知道这样可不可以
作者: RoseHoliC    时间: 2007-7-31 18:36
提示: 作者被禁止或删除 内容自动屏蔽
作者: Benavii    时间: 2007-7-31 18:38
以下引用阁中人于2007-7-31 10:19:29的发言:

那个对话时叫菜单出来的话
如果用并行事件写脚本
$随便什么 = Scene_menu.new
然后在MAP和MESSAGE还有MENU这几个里面动一点手脚
使叫出菜单的时候,因为那个手脚的缘故
无效掉MESSAGE中C键过对话的功能
不知道这样可不可以

叫出菜单简单,跟第二种隐藏对话框效果类似,不过叫出之后还要回到中断的事件中。
其实没楼上的楼上说那么难,就是很麻烦……= = 等我放假弄来看看= =
作者: 闪电    时间: 2007-7-31 18:42
谢谢楼主,你的几个教程对我制作AVG帮助很大~~~
作者: RoseHoliC    时间: 2007-7-31 18:45
提示: 作者被禁止或删除 内容自动屏蔽
作者: 阁中人    时间: 2007-7-31 19:14
米有切换啊,不用用“$scene =”,是定义另一个全局变量(比方说$A吧)
在$scene调用的同时并行调用$A,然后执行$A.main,同时在$scene调用的那个Class里面设定当$A != nil的时候,C键做另一个功能(其实就是无效啦),当$A=nil时和原来一样。
这样不就是解决了吗……?
8过我好象哪里弄错了,叫出菜单是不假,对话也不会跳过去是不假,只是菜单里的选项一点就卡机……
作者: 小真·爱舞    时间: 2007-7-31 19:25
以下引用阁中人于2007-7-31 11:14:09的发言:

米有切换啊,不用用“$scene =”,是定义另一个全局变量(比方说$A吧)
在$scene调用的同时并行调用$A,然后执行$A.main,同时在$scene调用的那个Class里面设定当$A != nil的时候,C键做另一个功能(其实就是无效啦),当$A=nil时和原来一样。
这样不就是解决了吗……?
8过我好象哪里弄错了,叫出菜单是不假,对话也不会跳过去是不假,只是菜单里的选项一点就卡机……


[本贴由作者于 2007-7-31 11:15:08 最后编辑]


同时调用两个loop do,你不卡死才怪诶。{/cy}
你的这个方法行不通,我是直接在map里生成command窗口。
作者: 阁中人    时间: 2007-7-31 19:30
啊,不卡了{/hx}难道是我机器好么
一开始忘记去除菜单的freeze了,结果我把冻结看成死机了= =
{/gg}我在我这里行得通耶。
嗯,MAP里弄窗口,试试
作者: tranpol    时间: 2007-8-1 11:58
以下引用小真·爱舞于2007-7-31 10:05:21的发言:

除了快进以外,你所说的效果我很早以前就都实现了。
我的这个效果修改了大量脚本,而且和我本身的系统融为一体,还有个瑕疵。
你就放弃吧,这个弄起来难度很高。


可以给点提示不~~
我现在问题是调出菜单
对话肯定会向后跳一面



还有....
那个~~
Scene_Menu菜单俺改了

跳出菜单有黑色的底如何去除??
....{/fd}俺不会的说
有人会把这黑底弄透明不

作者: tranpol    时间: 2007-8-1 12:20
以下引用RoseHoliC于2007-7-31 10:45:30的发言:


以下引用Benavii于2007-7-31 10:38:55的发言:


以下引用阁中人于2007-7-31 10:19:29的发言:

那个对话时叫菜单出来的话
如果用并行事件写脚本
$随便什么 = Scene_menu.new
然后在MAP和MESSAGE还有MENU这几个里面动一点手脚
使叫出菜单的时候,因为那个手脚的缘故
无效掉MESSAGE中C键过对话的功能
不知道这样可不可以


叫出菜单简单,跟第二种隐藏对话框效果类似,不过叫出之后还要回到中断的事件中。
其实没楼上的楼上说那么难,就是很麻烦……= = 等我放假弄来看看= =



偶觉得很难呀~~``难就难在不能让对话内容消失~~```切换画面就自动dispose对话框了~~``
回来的时候就进入下一个对话了~~~``



没错俺就碰到这个问题了~~
有办法解决吗




以下引用小真·爱舞于2007-7-31 11:25:20的发言:


以下引用阁中人于2007-7-31 11:14:09的发言:

米有切换啊,不用用“$scene =”,是定义另一个全局变量(比方说$A吧)
在$scene调用的同时并行调用$A,然后执行$A.main,同时在$scene调用的那个Class里面设定当$A != nil的时候,C键做另一个功能(其实就是无效啦),当$A=nil时和原来一样。
这样不就是解决了吗……?
8过我好象哪里弄错了,叫出菜单是不假,对话也不会跳过去是不假,只是菜单里的选项一点就卡机……


[本贴由作者于 2007-7-31 11:15:08 最后编辑]



同时调用两个loop do,你不卡死才怪诶。
你的这个方法行不通,我是直接在map里生成command窗口。


在MAP脚本里改!?
...能说详细点吗~~



以下引用阁中人于2007-7-31 11:30:46的发言:

啊,不卡了难道是我机器好么
一开始忘记去除菜单的freeze了,结果我把冻结看成死机了= =
我在我这里行得通耶。
嗯,MAP里弄窗口,试试


[本贴由作者于 2007-7-31 11:48:51 最后编辑]


拜托了~~~能把成功的做法公布一下吗
俺心心眼的期待着`~~
作者: tranpol    时间: 2007-8-1 13:06
以下引用Benavii于2007-7-31 10:38:55的发言:


以下引用阁中人于2007-7-31 10:19:29的发言:

那个对话时叫菜单出来的话
如果用并行事件写脚本
$随便什么 = Scene_menu.new
然后在MAP和MESSAGE还有MENU这几个里面动一点手脚
使叫出菜单的时候,因为那个手脚的缘故
无效掉MESSAGE中C键过对话的功能
不知道这样可不可以


叫出菜单简单,跟第二种隐藏对话框效果类似,不过叫出之后还要回到中断的事件中。
其实没楼上的楼上说那么难,就是很麻烦……= = 等我放假弄来看看= =



你啥时放假.......{/fd}

作者: 影北山人    时间: 2007-8-1 16:10
晕晕,怎么到了第二页就全变成外星文字了。。。(旁白:明明是你脚本白痴)

岚真的好用心啊,辛苦辛苦~~倒茶。
作者: tranpol    时间: 2007-8-1 16:31
俺做的就是小白改AVG系统的办法~~(本人也很白...)
要让全AVG制作人民都能用上华丽丽的系统`!握拳~!!


谢谢影子的茶
俺坐着等高人的讨论方案了
作者: 袭日    时间: 2007-8-1 18:03
把菜单背景弄透明目前偶所知的只有一种方法………………看看符不符合要求了……(其实实际上是用地图做背景……)
在def main
    # 生成命令窗口
    @command_window = Window_Command.new(160, ["存档", "读档", "结束游戏", ])
    @command_window.x = 250
    @command_window.y = 140
    @command_window.index = @menu_index
这里这样改:
def main
#########################################
    @spriteset = Spriteset_Map.new
##########################################
    # 生成命令窗口
    @command_window = Window_Command.new(160, ["存档", "读档", "结束游戏", ])
    @command_window.x = 250
    @command_window.y = 140
    @command_window.index = @menu_index
然后在下面
# 准备过渡
    Graphics.freeze
    # 释放窗口
    @command_window.dispose
这里这样改:
# 准备过渡
    Graphics.freeze
###################################
    @spriteset.dispose
###################################
    # 释放窗口
    @command_window.dispose
实际上就是加了个用地图做背景的命令,然后释放出来……
(这个很多人知道了吧……希望不要鸡肋了………………)
作者: tranpol    时间: 2007-8-1 18:11
袭日的方法也很特别啊~~~
俺现在找到方法了~~
...在主站上坑到了透明菜单的脚本
俺改装了一下~~可以用了~~
呵呵还是要谢谢袭日啊~~

袭日可以帮俺看看如何解决用菜单会跳对话的问题吗


另~~更新AVG专用菜单脚本
作者: 阁中人    时间: 2007-8-1 19:59
{/gg}不考虑我的双实例同步更新的方法么
那个方法因为$scene还是在MAP那,所以只需要暂时屏蔽C键过对话的功能就好了
这样在菜单操作的时候也不会跳对话了= =
就是记得有人说这样肯定会卡{/gg}……不过自己试的时候没觉得卡……
作者: tranpol    时间: 2007-8-1 20:39
以下引用阁中人于2007-8-1 11:59:32的发言:

不考虑我的双实例同步更新的方法么
那个方法因为$scene还是在MAP那,所以只需要暂时屏蔽C键过对话的功能就好了
这样在菜单操作的时候也不会跳对话了= =
就是记得有人说这样肯定会卡……不过自己试的时候没觉得卡……


俺就在等你出现啊~!!!
快把你的方法写详细一点~~
俺去试试看
作者: 小真·爱舞    时间: 2007-8-1 20:59
抱歉,不会说的,早就说过我是自私的人。
如果研究出了不跳段的方法,我也看看。
话说你的快进功能不能用,无效。
作者: 小真·爱舞    时间: 2007-8-1 21:01
其实我想说啊,你们有这能力,只是做adv型avg的话不如去学ns和krkr,这些功能都只是打几行字而已,还支持高分辨率,执行速率也高,动画播放许可,画面流畅,自定义系统。
我要不是做的是rpg这种东西,我也不用rm,太麻烦。
作者: tranpol    时间: 2007-8-1 21:07
以下引用小真·爱舞于2007-8-1 12:59:14的发言:

抱歉,不会说的,早就说过我是自私的人。
如果研究出了不跳段的方法,我也看看。
话说你的快进功能不能用,无效。


可以用的啊~~俺试验成功的
是不是你的其他脚本有冲突?
俺在默认脚本里是可行的
要不俺上传个演示上来


以下引用小真·爱舞于2007-8-1 13:01:51的发言:

其实我想说啊,你们有这能力,只是做adv型avg的话不如去学ns和krkr,这些功能都只是打几行字而已,还支持高分辨率,执行速率也高,动画播放许可,画面流畅,自定义系统。
我要不是做的是rpg这种东西,我也不用rm,太麻烦。


....是RM用熟了不想再找新软件了...
再学一次...俺要倒了~~~
难道说这两个软件比RM简单?教程多不~~

作者: 小真·爱舞    时间: 2007-8-1 21:13
上传一个吧,我也学习学习。
那两个都没有操作界面,你可以理解为全是用RM的脚本编辑器,不过语法不是ruby。
难度比rm高得多,或者说对于没有脚本知识的人来说比RM难,我自己觉得用那个做avg效果比rm好完备,而且是自己定义操作,方便。教程大多数在国外,自己研究比较好,那些都是专业的游戏制作软件,市面上有些游戏就是用那个做的,比如东月西阳,那尔哥索斯,爱夜莺,这三个都是ns的。krkr在国内有推广站,就是kfc,Key Fans Club。
作者: 阁中人    时间: 2007-8-1 21:25
http://rpg.blue/htm/Topic_1999.htm
用这个记录TXT然后在回顾的时候读取TXT里的东西怎么样……?
作者: 小真·爱舞    时间: 2007-8-1 21:28
以下引用阁中人于2007-8-1 13:25:49的发言:

http://rpg.blue/htm/Topic_1999.htm
用这个记录TXT然后在回顾的时候读取TXT里的东西怎么样……?


某个对话框脚本里已经有一个这样的功能了,比你这I/O方便得多,那个改改就能用。
我个人比较喜欢NS引擎,贴一张这个的截图,HS某D做的。

作者: 阁中人    时间: 2007-8-1 21:33
TO 楼上:
……昨天下了个NS看了看。实在是很晕……我用RM就是看中它至少有一部分是可以只点鼠标就解决的……
是哪个对话框脚本啊……?我没找到……实在惭愧……


给楼主,那个不会在放菜单时跳的方法:
不是什么好方法,我只是想能用就行……
我的方法是:
……我是在那个非官方整合FUKI的基础上,删减了除变更对话速度外的一切功能之后改的……
在UPDATE里,原来是什么我忘记了,总之我改成了这样:   
# 显示信息结束的情况下
      if @contents_showing_end
########################################
下面这段是忘记在哪翻出来的文字自动跳过方法
########################################
        if $game_temp.choice_max > 0
          $game_switches[25] = false
        end
        if $game_switches[25] == true
          terminate_message
          @wait_count = 2
          return
        end
########################################
        if $game_temp.choice_max == 0
          self.pause = true
        end
        # 确定
########################################
下面这段是双LOOP更新时屏蔽MESSAGE的C键的方法
########################################
        if $gezhongren == 1
          if Input.trigger?(Input::C)
            $gezhongren = 0
          end
        else
########################################
          if Input.trigger?(Input::C)
            if $game_temp.choice_max > 0
              $game_system.se_play($data_system.decision_se)
              $game_temp.choice_proc.call(self.index)
            end
            terminate_message
          end
        end
      return
      end
剩下的,就是在地图上建立一个并行事件,在按下A键的时候打开/关闭开关,
按下B键的时候
$gezi = Scene_Menu.new
$gezi.main
然后……因为不知道什么原因,我必须得把Menu里的所有freeze改成update,否则在退出菜单的时候就会冻住……
接下来就是菜单在返回的时候是用$gezi = nil来消除菜单,把Menu里所有的$scene都改成$gezi了……还有一些我都忘记的小手脚吧……
后来不知道怎么回事,把读档改出BUG了,检查了半天也不知道哪出的毛病,就没再试下去了……
作者: tranpol    时间: 2007-8-1 21:47
望楼上~~那个25开关真是熟...那就是俺研究写的快进方法

在if Input.trigger?(Input::C )前面加个全局开关吗...
俺去试试看~~~~~

另小真~~~俺可能要明天上传演示了
俺把现在改好的东东都加在演示里
作者: tranpol    时间: 2007-8-1 21:51
以下引用小真·爱舞于2007-8-1 13:13:07的发言:

上传一个吧,我也学习学习。
那两个都没有操作界面,你可以理解为全是用RM的脚本编辑器,不过语法不是ruby。
难度比rm高得多,或者说对于没有脚本知识的人来说比RM难,我自己觉得用那个做avg效果比rm好完备,而且是自己定义操作,方便。教程大多数在国外,自己研究比较好,那些都是专业的游戏制作软件,市面上有些游戏就是用那个做的,比如东月西阳,那尔哥索斯,爱夜莺,这三个都是ns的。krkr在国内有推广站,就是kfc,Key Fans Club。


.....俺还是比较对可以做事件的东东有爱啊~~~
全脚本.....杀了俺吧........OTL
俺不是专业的......



作者: Amano    时间: 2007-8-1 23:05
提示: 作者被禁止或删除 内容自动屏蔽
作者: 小真·爱舞    时间: 2007-8-1 23:15
其实用过NS和KRKR的我..感觉...
RM的事件太渣了...我用那些自定义指令更方便...
作者: Benavii    时间: 2007-8-1 23:34
以下引用tranpol于2007-8-1 5:06:25的发言:
你啥时放假.......

如果今晚十二点后我还活着的话就明天。不活着的话……也算放了个大假{/gg}

NS好啊,我NS上手两天左右,RM花了一整个月才弄明白一半脚本OTL
KR比NS稍微复杂一些,不过功能很多,不需要特别复杂功能的话NS也没差,月姬,日西月东,夜明前的琉璃色这类商业游戏都是NS做的。非商业游戏的……青鸟之虚像,青空之想……
作者: tranpol    时间: 2007-8-2 12:46
更新了...
天气和事件标题很简单的东东
上传了AVG半成品演示


望天.........
听着好像是说NS比RM简单好用啊~~
最主要是...有中文教程不~~~
俺看不懂外文的啊~~~


哦Benavii放假了吗~~~
可以帮着看看如何解决不跳对话的问题吗

作者: 闪电    时间: 2007-8-2 15:56
更新了,谢谢TAT,帮助很大~~
作者: 阁中人    时间: 2007-8-2 16:14
NS有中文教程,在HS……
作者: 小真·爱舞    时间: 2007-8-2 20:07
你用的是默认的对话框脚本啊= =|||||||||||||||||||
作者: 七夜志貴    时间: 2007-8-2 21:35
提示: 作者被禁止或删除 内容自动屏蔽
作者: 索尔迦·蓝    时间: 2007-8-2 21:50
提示: 作者被禁止或删除 内容自动屏蔽
作者: 七夜志貴    时间: 2007-8-2 23:09
提示: 作者被禁止或删除 内容自动屏蔽
作者: 小真·爱舞    时间: 2007-8-2 23:32
话说我想说..你这方法太麻烦了..直接在if @contents_showing下面加上
if Input.press?(Input::CTRL)
  terminate_message
end
不就好了= =|||

作者: tranpol    时间: 2007-8-3 12:52
以下引用小真·爱舞于2007-8-2 12:07:06的发言:

你用的是默认的对话框脚本啊= =|||||||||||||||||||

是啊~~俺是用默认系统改的~~
你看一下可以用的话
就照这办法改到你的系统就可以啊

以下引用小真·爱舞于2007-8-2 15:32:03的发言:

话说我想说..你这方法太麻烦了..直接在if @contents_showing下面加上
if Input.press?(Input::CTRL)
terminate_message
end
不就好了= =|||


....俺的做法是做一个快进开关
不是按CTRL键跳过
....如果是很长的对话不是要按到手抽筋?
如果要用按着CTRL跳的话
真·ZERO有上传过一个脚本的~~
http://rpg.blue/upload_program/files/对话加强脚本范例.zip
你可以看一下


作者: tranpol    时间: 2007-8-3 12:57
激动激动~!!!
那个跳对话的问题终于解决了~!!!!!!!!!!!!!!!!!!
这个是解决贴原文
http://rpg.blue/viewthread.php?tid=63216&page=2

俺更新在俺的研究里了~~~
3.4就是跳出菜单解决对话问题的完美版

除了回忆系统~~
AVG必要功能都可以做到了~~~
俺兴奋啊~!!!!!!!!!!!!!太棒了~!!
拥抱莉莉雅姐和黑暗之神同志~~~~
你是全世界AVG制作人民的救星啊~!!!

另~现在更新到研究3.7
作者: 影北山人    时间: 2007-8-3 16:10
跳跳~~岚好厉害~~真的是有志者事竟成!

太好了,这样我就不用再气氛正紧张的时候跳出一个选项问玩家:“要保存还是继续?”了~!
作者: 小真·爱舞    时间: 2007-8-3 16:11
以下引用tranpol于2007-8-3 4:52:17的发言:


以下引用小真·爱舞于2007-8-2 12:07:06的发言:

你用的是默认的对话框脚本啊= =|||||||||||||||||||


是啊~~俺是用默认系统改的~~
你看一下可以用的话
就照这办法改到你的系统就可以啊


以下引用小真·爱舞于2007-8-2 15:32:03的发言:

话说我想说..你这方法太麻烦了..直接在if @contents_showing下面加上
if Input.press?(Input::CTRL)
terminate_message
end
不就好了= =|||



....俺的做法是做一个快进开关
不是按CTRL键跳过
....如果是很长的对话不是要按到手抽筋?
如果要用按着CTRL跳的话
真·ZERO有上传过一个脚本的~~
http://rpg.blue/upload_program/files/对话加强脚本范例.zip
你可以看一下




[本贴由作者于 2007-8-3 8:08:21 最后编辑]


其实我想还想说,你那方法,对于我这习惯了按住ctrl的avg系统的人来说太那啥了...
操作不习惯,而且按住松开,而发现后再按的反应所需速度不是一个级别的。
所以我还是推荐你这样做。
你的那个方法要在地图上放事件,多多少少有些多余。
作者: 阁中人    时间: 2007-8-3 20:49
额,LS,这个就是个人喜好问题了- -
貌似MO系列都是用按下开始跳再按下取消的
可能每个公司做的时候都有它的考虑吧。
作者: 小真·爱舞    时间: 2007-8-3 21:21
以下引用阁中人于2007-8-3 12:49:24的发言:

额,LS,这个就是个人喜好问题了- -
貌似MO系列都是用按下开始跳再按下取消的
可能每个公司做的时候都有它的考虑吧。


貌似我玩了这么多adv还真没碰到过mo系列的那样的呢...
说实话mo我没玩过。
刚才顺便做了系统设定调用还有按下ctrl加速的完美版。
目前已经不差什么了。ADV系统已经真正的完美了。
作者: 阁中人    时间: 2007-8-3 22:09
MO是纯粹的文字GALGAME- -
没有战斗没有行走,类似电子小说吧- -只是保留了和玩家的互动性。。。可以通过选项来达到不同的结局。
不喜欢玩MO的打死他都不会喜欢,相对的喜欢MO的打死他都不会变心。
= =这个就是各人相性不同吧。。
作者: Benavii    时间: 2007-8-3 22:43
呀,来晚了……改行做这个

还需要完善一下……{/fd}


作者: 小真·爱舞    时间: 2007-8-3 22:50
以下引用阁中人于2007-8-3 14:09:23的发言:

MO是纯粹的文字GALGAME- -
没有战斗没有行走,类似电子小说吧- -只是保留了和玩家的互动性。。。可以通过选项来达到不同的结局。
不喜欢玩MO的打死他都不会喜欢,相对的喜欢MO的打死他都不会变心。
= =这个就是各人相性不同吧。。


纯文字不纯文字的无所谓啦...
剧情和画风是王道。
作者: 阁中人    时间: 2007-8-4 02:06
以下引用Benavii于2007-8-3 14:43:04的发言:

呀,来晚了……改行做这个

还需要完善一下……

额!!这个不是SCHOOL DAYS么!
7.76G的游戏好怨念啊……
这么看来对话回忆系统也有着落了……
不知道这个回忆系统能不能将选择项也很好的显示出来?甚至用特殊的字体标出当时所选的选项……?
作者: ?????    时间: 2007-8-4 02:12
zero给的工程里的那个对话脚本就有这个功能啊,你改改就能用了。
[LINE]1,#dddddd[/LINE]
那啥,我是小真。
作者: Benavii    时间: 2007-8-4 03:02
以下引用阁中人于2007-8-3 18:06:10的发言:
额!!这个不是SCHOOL DAYS么!
7.76G的游戏好怨念啊……
这么看来对话回忆系统也有着落了……
不知道这个回忆系统能不能将选择项也很好的显示出来?甚至用特殊的字体标出当时所选的选项……?

选项还没弄,有需要的话等会我看一下。
用张MO系列的信纸格skin就很有感觉了,要应用到游戏中的话最好美化一些
School Days挺不错的(茶),强烈推荐有硬盘空间的人玩下。


作者: ?????    时间: 2007-8-4 03:04
School Days的杀人结局好啊..美啊..
自杀结局更美...
作者: Benavii    时间: 2007-8-4 03:06
以下引用?????于2007-8-3 19:04:47的发言:

School Days的杀人结局好啊..美啊..
自杀结局更美...

会这么说的人一般都没玩过这游戏或只看过网上流传的视频(茶)
不跑题了,撤......
作者: ?????    时间: 2007-8-4 03:08
是啊..没玩啊..那天某ACG群里面别人给我发视频,看那喷血的镜头.....
作者: Benavii    时间: 2007-8-4 08:25

唔……选过的选项染色是这个效果么……

谢小夏师傅给偶讲Proc这个冬冬{/hx}顺便踢飞吸收小夏师傅的雷子{/fn}

PS 坚定的言叶控~
作者: tranpol    时间: 2007-8-4 10:34
以下引用小真·爱舞于2007-8-3 8:11:12的发言:


其实我想还想说,你那方法,对于我这习惯了按住ctrl的avg系统的人来说太那啥了...
操作不习惯,而且按住松开,而发现后再按的反应所需速度不是一个级别的。
所以我还是推荐你这样做。
你的那个方法要在地图上放事件,多多少少有些多余。


....-_-6
那个啥~~~要不做成公共事件并行不就好了
俺还是喜欢按了键快进
在选项前停就行了....
呵呵这个就是爱好问题了

现在还不算完美版...
就差回忆系统了...
图鉴系统俺在用事件做...脚本无能啊~~
也许做好可以让高手看看可以改成脚本的不



以下引用Benavii于2007-8-3 14:43:04的发言:

呀,来晚了……改行做这个

还需要完善一下……


{/se}啊啊啊~!!!!!回忆系统~!!!!!!!!
大扑~~~~~
心心眼的等着完善版了~~
作者: tranpol    时间: 2007-8-4 10:39
以下引用Benavii于2007-8-3 19:06:43的发言:


以下引用?????于2007-8-3 19:04:47的发言:

School Days的杀人结局好啊..美啊..
自杀结局更美...


会这么说的人一般都没玩过这游戏或只看过网上流传的视频(茶)
不跑题了,撤......


{/fd}这游戏俺没玩过~~介绍也没听说过
俺去下看看
俺刚下了E17...



以下引用阁中人于2007-8-3 22:37:00的发言:

额……LZ说的是按CTRL跳的
我仔细看了一下那个脚本- -跟对话回顾一点关系都没有啊
难道你说的不是这个范例么- -?


....那个是按着CTRL键快进
...是跟回顾一点关系也没有
俺在等着Benavii的好消息呢

加油~!!!Benavii~!!
全世界AVG制作人民在期待着你~~!~!

作者: 阁中人    时间: 2007-8-4 17:23
以下引用Benavii于2007-8-4 0:25:25的发言:


唔……选过的选项染色是这个效果么……

谢小夏师傅给偶讲Proc这个冬冬顺便踢飞吸收小夏师傅的雷子

PS 坚定的言叶控~


[本贴由作者于 2007-8-4 0:26:03 最后编辑]

是的,就是这种效果- -
虽然说MO2里面还在左右两边加了五角星- -不过这个没所谓啦
好强啊,怎么实现的?
PS...我是先看小说的
所以...唉,怎么世界就死了……喜欢世界……
游戏居然是影片型的- -怪不得有7.76G
作者: 叶舞枫    时间: 2007-8-4 17:59
发布完毕
http://rpg.blue/web/htm/news803.htm
VIP 4
有更新新新开帖子,嗯
作者: Benavii    时间: 2007-8-4 19:29
以下引用阁中人于2007-8-4 9:23:17的发言:
是的,就是这种效果- -
虽然说MO2里面还在左右两边加了五角星- -不过这个没所谓啦
好强啊,怎么实现的?
PS...我是先看小说的
所以...唉,怎么世界就死了……喜欢世界……
游戏居然是影片型的- -怪不得有7.76G

如果愿意的话加个五角星也可以{/gg}
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构成 囧
  1. class Window_Backlog < Window_Selectable
  2.   #--------------------------------------------------------------------------
  3.   # ● 初始化目标
  4.   #--------------------------------------------------------------------------
  5.   def initialize
  6.     super(0, 0, 480, 480)
  7.     self.contents = Bitmap.new(width - 32, height - 32)
  8.     refresh
  9.     self.active = false
  10.     self.index = 0
  11.   end
  12.   #--------------------------------------------------------------------------
  13.   # ● 刷新
  14.   #--------------------------------------------------------------------------
  15.   def refresh
  16.     self.contents.clear
  17.     self.contents.font.color = normal_color
  18. #——以下直接搬WindowMessage里的来就行……把显示金钱窗口功能去掉了而已 囧
  19.     x = y = 0
  20.     @item_max = $game_system.backlog_line #——这里就看出行数的有用了……
  21.    self.contents = Bitmap.new(width - 32, row_max * 32)
  22.    for i in 0...$game_system.backlog.size #——逐个单元描绘这个数组的内容
  23.     text = $game_system.backlog[i].clone
  24.       begin
  25.         last_text = text.clone
  26.         text.gsub!(/\\[Vv]\[([0-9]+)\]/) { $game_variables[$1.to_i] }
  27.       end until text == last_text
  28.       text.gsub!(/\\[Nn]\[([0-9]+)\]/) do
  29.         $game_actors[$1.to_i] != nil ? $game_actors[$1.to_i].name : ""
  30.       end
  31.       # 为了方便、将 "\\\\" 变换为 "\000"
  32.       text.gsub!(/\\\\/) { "\000" }
  33.       # "\\C" 变为 "\001" に、"\\G" 变为 "\002"
  34.       text.gsub!(/\\[Cc]\[([0-9]+)\]/) { "\001[#{$1}]" }
  35.       text.gsub!(/\\[Gg]/) { "" }
  36.       # c 获取 1 个字 (如果不能取得文字就循环)
  37.       while ((c = text.slice!(/./m)) != nil)
  38.         # \\ 的情况下
  39.         if c == "\000"
  40.           # 还原为本来的文字
  41.           c = "\\"
  42.         end
  43.         # \C[n] 的情况下
  44.         if c == "\001"
  45.           # 更改文字色
  46.           text.sub!(/\[([0-9]+)\]/, "")
  47.           color = $1.to_i
  48.           if color >= 0 and color <= 7
  49.             self.contents.font.color = text_color(color)
  50.           end
  51.           # 下面的文字
  52.           next
  53.         end
  54.         # 另起一行文字的情况下
  55.         if c == "\n"
  56.           # 刷新选择项及光标的高
  57.           if y >= $game_temp.choice_start
  58.             @cursor_width = [@cursor_width, x].max
  59.           end
  60.           # y 加 1
  61.           y += 1
  62.           x = 0
  63.           # 移动到选择项的下一行
  64.           if y >= $game_temp.choice_start
  65.             x = 8
  66.           end
  67.           # 下面的文字
  68.           next
  69.         end
  70.         # 描绘文字
  71.         self.contents.draw_text(4 + x, 32 * y, 40, 32, c)
  72.         # x 为要描绘文字的加法运算
  73.         x += self.contents.text_size(c).width
  74.       end
  75.     end
  76.   end
  77.   #--------------------------------------------------------------------------
  78.   # ● 刷新光标矩形
  79.   #--------------------------------------------------------------------------
  80. #  def update_cursor_rect
  81. #    if @index < 0
  82. #      self.cursor_rect.empty
  83. #    else
  84. #      self.cursor_rect.set(0, @index * 116, self.width - 32, 96)
  85. #    end
  86. #  end
  87. end
  88. class Scene_Backlog
  89.   #--------------------------------------------------------------------------
  90.   # ● 主处理
  91.   #--------------------------------------------------------------------------
  92.   def main
  93.     # 获取角色
  94.     # 生成状态窗口
  95.     @backlog_window = Window_Backlog.new
  96.     @backlog_window.active = true
  97.     @spriteset = Spriteset_Map.new
  98.     # 执行过渡
  99.     Graphics.transition
  100.     # 主循环
  101.     loop do
  102.       # 刷新游戏画面
  103.       Graphics.update
  104.       # 刷新输入信息
  105.       Input.update
  106.       # 刷新画面
  107.       update
  108.       # 如果画面被切换的话就中断循环
  109.       if $scene != self
  110.         break
  111.       end
  112.     end
  113.     # 准备过渡
  114.     Graphics.freeze
  115.     # 释放窗口
  116.     @backlog_window.dispose
  117.     @spriteset.dispose
  118.   end
  119.   #--------------------------------------------------------------------------
  120.   # ● 刷新画面
  121.   #--------------------------------------------------------------------------
  122.   def update
  123.     @backlog_window.update
  124.     # 按下 B 键的情况下
  125.     if Input.trigger?(Input::B)
  126.       # 演奏取消 SE
  127.       $game_system.se_play($data_system.cancel_se)
  128.       # 切换到菜单画面
  129.       $scene = Scene_Map.new
  130.       return
  131.     end
  132.   end
  133. 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/upload_program/files/backlog.rar

————————————————————————————————————————

目前这个系统还有一个小缺憾,就是它是光标类的窗口,选项条一次选一行看起来不怎么自然。
我想了两种解决办法,一种是每段文字强制4行,这样光标也固定4行的高度;再一种就是干脆把光标除去,在旁边弄一个标志着快进快退和进一行退一行的小窗口,通过选项来滚窗口内容。
作者: 阁中人    时间: 2007-8-4 19:59
那个不想显示那个框框的话,还可以这样做,定义那个WINDOW的SKIN,不用SKIN或者用空SKIN就可以了
作者: Benavii    时间: 2007-8-4 20:04
以下引用阁中人于2007-8-4 11:59:51的发言:

那个不想显示那个框框的话,还可以这样做,定义那个WINDOW的SKIN,不用SKIN或者用空SKIN就可以了

这个我知道,不过如果一个选项框没有的话不容易知道光标走到哪里了……如果没差就这么用也OK。
作者: 小真·爱舞    时间: 2007-8-4 20:22
小贝啊...
你的这个好多瑕疵啊..
和这个教程本身就冲突....
你没考虑再次显示,而且使用6r加强版对话框name调用你该怎么解决?
这个里面的对话时调出菜单,回到地图又显示一次,你这个就再记录一次。
你如果没时间的话..我正在完善...
你的这个效果很好..
虽然我更喜欢其他AVG那种在对话框里面显示的样子...
换个更完善的也不错。
[LINE]1,#dddddd[/LINE]
光标那个倒无所谓,不过你连z都没改..会被图片压住的...{/gg}
作者: Benavii    时间: 2007-8-4 20:38
以下引用小真·爱舞于2007-8-4 12:22:07的发言:

小贝啊...
你的这个好多瑕疵啊..
和这个教程本身就冲突....
你没考虑再次显示,而且使用6r加强版对话框name调用你该怎么解决?
这个里面的对话时调出菜单,回到地图又显示一次,你这个就再记录一次。
你如果没时间的话..我正在完善...
你的这个效果很好..
虽然我更喜欢其他AVG那种在对话框里面显示的样子...
换个更完善的也不错。

光标那个倒无所谓,不过你连z都没改..会被图片压住的...

对话框里显示backlog是很多AVG引擎自带的功能,NS本身就提供大约15句左右的回放。
秋二和schooldays还有月狂病之类的游戏是全屏显示,单独一个界面,我这个也是那种模式。

要避免再显示一次的话,每次check一下后两项是否相同好了。(so麻烦,再想想ing)
\name的话,可以把\name切出来替换成[]里的字符串,然后再像处理选项文字染色那样加到前面去。
这个是个单独的scene哎,Scene_Map的显示图片到不了这里来。

啊啊……说起来都是些小问题不过好懒得动手(/-0-)/

PS 这个是用默认工程改的,因为考虑到,如果照LZ的想法做AVG的话,不必用66加强对话框,自带的功能完全够用;除了\p功能之外,其他基本上是想要什么移植进去就可以了……
作者: 小真·爱舞    时间: 2007-8-4 20:59
呼,折腾了一会,我是把我遇到的问题都解决了。
name那个我用自己的方法重新显示了一次,至于是否连续记录同样的对话我是用全局开关来确定的,和kds那个同理。
不过我还是有些不习惯这种方式呢..呵呵。
可能还是玩ego玩习惯了吧。
图片的那个问题是我自己的事情...
不过既然你也是处理了这个窗口透明,可以承接spriteset_map,那么里面显示的图片也会进去。
对于使用图片显示立绘等项目的avg来说是很那啥的....
我遇到了是因为我重新定义了图片所处的坐标..他们那些没有大修改系统的应该碰不到...
作者: tranpol    时间: 2007-8-5 11:13
以下引用Benavii于2007-8-4 11:29:58的发言:
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             # 回想行数
.......



冲上去大大拥抱Benavii~~~~
你太伟大了~!!!!!
全世界AVG制作人民感谢你~!!
俺先好好下了回去研究研究....已经不是俺能直接说感觉的问题了
难度系数...俺要抬头研究中.....
明天说俺的感想


作者: tranpol    时间: 2007-8-5 11:24
以下引用叶舞枫于2007-8-4 9:59:19的发言:

发布完毕
http://rpg.blue/web/htm/news803.htm
VIP 4
有更新新新开帖子,嗯


啊已发布了啊...那回忆系统和CG系统只能开新贴了
俺先去研究通Benavii的回忆系统...


那个Benavii
俺试的没问题再小修改一下
就直接引用你的原文加入俺的研究里没问题吧

还有那个CG系统...俺还有一堆问题没解决...
唉用现成的开关OR物品类都有问题啊
只能加个新类了~~
作者: Benavii    时间: 2007-8-5 17:19
以下引用tranpol于2007-8-5 3:24:24的发言:
那个Benavii
俺试的没问题再小修改一下
就直接引用你的原文加入俺的研究里没问题吧

还有那个CG系统...俺还有一堆问题没解决...
唉用现成的开关OR物品类都有问题啊
只能加个新类了~~

用吧,不过注意一下小真提出的问题,我是直接在默认工程里改的,照这楼的方法跳出菜单的话会多写一次。
可以跳出的时候打开一个开关,在往backlog里写数据那里加个判定,开关打开的时候就不push,然后把开关关闭。
作者: 阁中人    时间: 2007-8-5 17:58
额,最后一个问题解决了- -
CG系统我用不到,先走一步了~
去写个MO的Menu菜单- -
作者: 小真·爱舞    时间: 2007-8-5 19:12
最近玩《聖なるかな》,感觉那游戏的技术很有爱....风格也不错,就是画风不太喜欢。
那ADV系统相当霸道啊...
作者: tranpol    时间: 2007-8-6 11:09
以下引用Benavii于2007-8-5 9:19:38的发言:

注意一下小真提出的问题,我是直接在默认工程里改的,照这楼的方法跳出菜单的话会多写一次。
可以跳出的时候打开一个开关,在往backlog里写数据那里加个判定,开关打开的时候就不push,然后把开关关闭。


用设开关吗...
俺去试试
莉莉雅姐的工程俺也上传了
B大可以看看和你的有啥区别

...小真...可以看看你的完美修改版不~~
俺在修改
可就是总会有小问题
...-_-|||
俺脚本太白了.....

作者: 第九界限    时间: 2007-8-7 18:39
AVG的脚本在学习中
时间很紧 可我又比较爱偷懒
不知道能不能赶的及
一般有用的暂时收起来
看了几遍了 学到不少东西
虽然也很了帮助的内容
可是实践部分还是需要经验来提高
不管能不能做完 我都能学一点东西
这样就足够了
作者: tranpol    时间: 2007-8-8 10:23
以下引用第九界限于2007-8-7 10:39:59的发言:

AVG的脚本在学习中
时间很紧 可我又比较爱偷懒
不知道能不能赶的及
一般有用的暂时收起来
看了几遍了 学到不少东西
虽然也很了帮助的内容
可是实践部分还是需要经验来提高
不管能不能做完 我都能学一点东西
这样就足够了


能帮到人就好
呵呵~~也不白费俺废寝忘食的研究...连正事比赛都忘了~
其实都不是很难
就是没有人专对AVG这类的游戏来研究
作者: 柳柳    时间: 2007-8-9 04:46
http://rpg.blue/viewthread.php?tid=62283
一个有点相关的帖子{/gg}
作者: v2sam    时间: 2007-8-14 17:10
等回忆系统和CG图鉴系统  这个东东,不是可以用《热血物语RM》里面的截图存档修改?
作者: 阁中人    时间: 2007-8-15 06:53
……大概不行= =
又不是黑暗圣剑的那种回忆,要是6、7W字的剧本全做成图片……
自己想想都可怕- -那得有个2、3百M……
作者: tranpol    时间: 2007-8-15 07:22
现在这两个系统也有了雏形
只要修改的完美点就可以发行了....
作者: 红世之徒    时间: 2007-9-5 00:02
膜拜一下...
虽然受到了不小的打击,但AVG的光辉道路一定要走下去~
这是信条,也是宿命.
作者: tranpol    时间: 2007-9-5 07:56
华丽丽之道
在努力才行的~~

其实俺这个研究说是AVG专用
但用在常用的RPG游戏也是可以的
华丽丽是无处不在的....
作者: 美兽    时间: 2007-9-5 13:04
LZ如此尽心,实属难得,

LZ尽管想效果,在下来实现,只要别夸张即可。



作者: tranpol    时间: 2007-9-6 08:00
啊美兽大人~!!
抱一个~~
真的可以吗~!!{/hx}
美兽大大的显示图片的研究俺拜读过
真是让俺OTL一下啊~~
很强大...很强大~~

俺在试着研究让图片如何曲线路径的移动
如果可以的话
就可以做更漂亮的叠加效果了
例如飘个羽毛花瓣雪片啥的

美兽大最近在研究啥呢?
作者: 阁中人    时间: 2009-6-12 08:00
真·ZERO有上传过一个脚本的~~
http://rpg.blue/upload_program/files/对话加强脚本范例.zip
你可以看一下




以下引用?????于2007-8-3 18:12:35的发言:

zero给的工程里的那个对话脚本就有这个功能啊,你改改就能用了。



那啥,我是小真。


[本贴由作者于 2007-8-3 18:13:09 最后编辑]

额……LZ说的是按CTRL跳的
我仔细看了一下那个脚本- -跟对话回顾一点关系都没有啊
难道你说的不是这个范例么- -?




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