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

Project1

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

AVG华丽丽效果报告研究AVG·3跳出菜单完美版成功了!

 关闭 [复制链接]

Lv1.梦旅人

最BT美攻!

梦石
0
星屑
50
在线时间
3 小时
注册时间
2007-3-7
帖子
1407
跳转到指定楼层
1
发表于 2007-7-29 10:30:34 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式

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

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

x
关于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 进行了编辑]
骑士の圣堂最终版华丽丽登场~~

http://rpg.blue/viewthread.php?tid=116851
AVG原创自制游戏  
神の大陆出品
神之大陆游戏制作小组唯美为主BT为终(偏BL向)
欢迎来搅合BLOG:http://hi.baidu.com/tranpol
官网:http://tierradesagrado.uueasy.com/

Lv1.梦旅人

最BT美攻!

梦石
0
星屑
50
在线时间
3 小时
注册时间
2007-3-7
帖子
1407
2
 楼主| 发表于 2007-7-29 10:30:34 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式

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

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

x
关于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 进行了编辑]
骑士の圣堂最终版华丽丽登场~~

http://rpg.blue/viewthread.php?tid=116851
AVG原创自制游戏  
神の大陆出品
神之大陆游戏制作小组唯美为主BT为终(偏BL向)
欢迎来搅合BLOG:http://hi.baidu.com/tranpol
官网:http://tierradesagrado.uueasy.com/
头像被屏蔽

Lv1.梦旅人 (禁止发言)

梦石
0
星屑
50
在线时间
0 小时
注册时间
2007-2-14
帖子
136
3
发表于 2007-7-29 10:52:37 | 只看该作者
顶啊  小岚果然很努力呢
马上去试试
回复 支持 反对

使用道具 举报

Lv1.梦旅人

最BT美攻!

梦石
0
星屑
50
在线时间
3 小时
注册时间
2007-3-7
帖子
1407
4
 楼主| 发表于 2007-7-29 11:05:35 | 只看该作者
俺是为了全世界的AVG制作人民而努力啊~~~

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

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


话说那个按键就可以去除对话框看图
再按确定就恢复的功能
洋娃娃同志曾做出过
....不过.......
他老人家....加密了
这个就成为传说的一个功能了~~~
骑士の圣堂最终版华丽丽登场~~

http://rpg.blue/viewthread.php?tid=116851
AVG原创自制游戏  
神の大陆出品
神之大陆游戏制作小组唯美为主BT为终(偏BL向)
欢迎来搅合BLOG:http://hi.baidu.com/tranpol
官网:http://tierradesagrado.uueasy.com/
回复 支持 反对

使用道具 举报

Lv3.寻梦者 (暗夜天使)

精灵族の天使

梦石
0
星屑
1697
在线时间
3038 小时
注册时间
2007-3-16
帖子
33731

开拓者贵宾

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

使用道具 举报

Lv3.寻梦者

梦石
0
星屑
1554
在线时间
144 小时
注册时间
2007-4-1
帖子
4263

开拓者贵宾

6
发表于 2007-7-29 22:08:35 | 只看该作者
身为全世界的AVG制作人民之一,向楼主致以真挚的感谢,鼓励一个(此功能暂时屏蔽。。)

-----------

岚啊,真是太感谢你了!说完这些话再回头仔细研究去~~~天降福音啊啊啊啊~  =3=
--------------
順帶一提這個帖子應該也能有點幫助。http://rpg.blue/viewthread.php?tid=62395   要整個帖子都看完哦~
回归,重拾一下绘图工房的管理,先让我熟悉一下,请多指教 ( ´▽` )ノ
新加分规则试行中,如发现问题欢迎提出
回复 支持 反对

使用道具 举报

Lv1.梦旅人

最BT美攻!

梦石
0
星屑
50
在线时间
3 小时
注册时间
2007-3-7
帖子
1407
7
 楼主| 发表于 2007-7-30 13:13:38 | 只看该作者
俺的第二个问题
去除对话框也解决了
洋娃娃大提供了源文件~~~
真真真真太感激了~~~~~
这贴里是详细
http://rpg.blue/viewthread.php?tid=62617


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

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


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


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

影子啊~~
你说的那个贴俺看过的~~
恩也很有帮助~~
不过俺的游戏用按键的就行了~~
骑士の圣堂最终版华丽丽登场~~

http://rpg.blue/viewthread.php?tid=116851
AVG原创自制游戏  
神の大陆出品
神之大陆游戏制作小组唯美为主BT为终(偏BL向)
欢迎来搅合BLOG:http://hi.baidu.com/tranpol
官网:http://tierradesagrado.uueasy.com/
回复 支持 反对

使用道具 举报

Lv3.寻梦者

梦石
0
星屑
1554
在线时间
144 小时
注册时间
2007-4-1
帖子
4263

开拓者贵宾

8
发表于 2007-7-30 19:21:33 | 只看该作者
抱抱岚~~~辛苦了~~真是帮了我大忙 {/hx}



找个板凳专心等第三个~~
回归,重拾一下绘图工房的管理,先让我熟悉一下,请多指教 ( ´▽` )ノ
新加分规则试行中,如发现问题欢迎提出
回复 支持 反对

使用道具 举报

Lv1.梦旅人

Dancer-

梦石
0
星屑
105
在线时间
78 小时
注册时间
2006-5-15
帖子
3306
9
发表于 2007-7-30 23:30:19 | 只看该作者

我改了很多脚本,至今还没有完善。
一个机缘巧合后,被改变了人生的第八年。
养着两只猫,可是我对猫过敏。
为了那终将到来的一天。
回复 支持 反对

使用道具 举报

Lv1.梦旅人

最BT美攻!

梦石
0
星屑
50
在线时间
3 小时
注册时间
2007-3-7
帖子
1407
10
 楼主| 发表于 2007-7-31 10:06:55 | 只看该作者
小真.....你这个切图就是俺梦想中的系统啊
你是用来勾引人的
还是想来拯救这边AVG制作人民的~~
............{/fd}

另~~~更新加了去除对话框的做法
骑士の圣堂最终版华丽丽登场~~

http://rpg.blue/viewthread.php?tid=116851
AVG原创自制游戏  
神の大陆出品
神之大陆游戏制作小组唯美为主BT为终(偏BL向)
欢迎来搅合BLOG:http://hi.baidu.com/tranpol
官网:http://tierradesagrado.uueasy.com/
回复 支持 反对

使用道具 举报

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

本版积分规则

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

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

GMT+8, 2024-11-16 02:36

Powered by Discuz! X3.1

© 2001-2013 Comsenz Inc.

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