Project1

标题: 关于游戏中读档的问题 [打印本页]

作者: Seraglio_King    时间: 2011-2-19 18:04
标题: 关于游戏中读档的问题
接触RM的第4天,昨天居然通宵研究了……
几天下来,除了制作一些素材和建立了初步的地图外,对于事件触发也大致摸出了些心得
然后想着开始打造自己的系统
当我打开脚本器,里面各种脚本看得我头大……经过反复比较,对于某些脚本功能的用法也稍微有了些眉目
这时我想到了一个一直想有,可原始版本中不存在的功能:游戏进行中读档
经过我的观察,我发现Scene_Title里就是游戏开始画面的脚本
而其中command_continue就是控制读档的函数,做了对比,我发现$scene = Scene_File.new(true, false, false)
就是真正运行读档的语句,而check_continue只是检查是否有存档而已,并非必要的……
于是我做了一次嫁接,将该语句复制
之后在Scene_Menu下的update_command_selection这个控制选择菜单的函数中,自己添加了一个选择,s7 = "读取",并把它放在了S6之前
@command_window = Window_Command.new(160, [s1, s2, s3, s4, s5, s7, s6])
显示很正常,和我预计的一样,确实在游戏结束之前多了一个读档选项

之后又在update_command_selec中增加了这条复制的语句……
def update_command_selection
    if Input.trigger?(Input::B)
      Sound.play_cancel
      $scene = Scene_Map.new
    elsif Input.trigger?(Input::C)
      if $game_party.members.size == 0 and @command_window.index < 4
        Sound.play_buzzer
        return
      elsif $game_system.save_disabled and @command_window.index == 4
        Sound.play_buzzer
        return
      end
      Sound.play_decision
      case @command_window.index
      when 0      # 物品
        $scene = Scene_Item.new
      when 1,2,3  # 特技、装备、状态
        start_actor_selection
      when 4      # 存档
        $scene = Scene_File.new(true, false, false)
      when 5      # 读档
        $scene = Scene_File.new(true, false, false)
      when 6      # 游戏结束
        $scene = Scene_End.new
      end
    end
  end

好了,这样一来,确实能读档了,可问题也来了……
读档是没问题,可一旦进入读档画面中,此时想取消返回之前的画面,就会回到标题画面……
之后我也试过其他方法,但不奏效
我觉得这可能和Scene_File.new的设置有关,但我找不到哪里有关于Scene_File.new的声明函数
毕竟这条读档语句是复制过来的
各位大大谁能帮忙解答下?
感激不敬

另外如果能顺便解答一下有什么方便的确定坐标的方法就更好了,要确定游戏画面中的坐标点很难啊,总会有误差,很多时候要试很多次才行……dsu_plus_rewardpost_czw
作者: DeathKing    时间: 2011-2-19 18:10
急着出门,就留一个这个东西吧:
http://rpg.blue/home.php?mod=spa ... p;do=blog&id=48
作者: Seraglio_King    时间: 2011-2-19 18:46
本帖最后由 Seraglio_King 于 2011-2-19 19:07 编辑

自己解决了……
原来还真有个叫Scene_File的脚本(汗,眼花没看到……)
里面的设定里有回到哪个画面……
$scene = Scene_File.new(false, false, false)
这三个开关用来记录是从那个画面进入存读档页面的,第一个是菜单存档,第二个是标题读档,第三个是事件存档
如果是菜单存档当然就是回菜单
而读档设定在一开始似乎就只设定了标题读档……所以读档只设定了标题
第三个事件存档是另外事件控制的,所以回地图
那么我的菜单读档似乎什么也不是了……
所以全变成false就可以了……那样自然就会回到之前的画面了……
而只要第一个和第三个是false,不管第二个是不是true,都会进入读档模式,而不会进行存档
可只要其中任意一个变成了true,那么就进入存档画面了……
总算搞明白了……


Seraglio_King于2011-2-19 19:04补充以下内容:
似乎还有个还原到哪个按钮的命令,怪不得我还原回去总是到存档那一栏,原来是没设置好,又调试了下

      when 5      # 读档
        if @continue_enabled
          Sound.play_decision
          $scene = Scene_File.new(false, 3, false)
          else
          Sound.play_buzzer
        end

读档是我给它赋予了一个数值,而不是简单的开关……

#--------------------------------------------------------------------------
  # ● 还原至原先的画面
  #--------------------------------------------------------------------------
  def return_scene
    if @from_title == 3
      $scene = Scene_Menu.new(5)
    elsif @from_title
      $scene = Scene_Title.new
    elsif @from_event
      $scene = Scene_Map.new
    else
      $scene = Scene_Menu.new(4)
    end
  end

这样还原时,我先检查是否完全等于那个数值,不然输入3,他一样判断开关是打开的……
哈哈~
读档系统完全搞定~
作者: swt4399    时间: 2013-6-27 23:14
完全照你的的方法,检查了无数次,只能显示按了没用
作者: swt4399    时间: 2013-6-27 23:27
when 5      # 读档
         #if @continue_enabled
           Sound.play_decision
           $scene = Scene_File.new(false, 3, false)                                 #我删掉了 if @continue_enabled
终于可以读档了
         
作者: swt4399    时间: 2013-6-27 23:47
还原脚本也没用,取消就回标题
作者: swt4399    时间: 2013-6-28 00:09
when 5      # 读档
           Sound.play_decision
           $scene = Scene_File.new(false, false, false)                          #(false, true, false)或  #(false, 3, false)加不加还原脚本都没用
测试了3个小时得出的
作者: swt4399    时间: 2013-6-28 00:13
看了下时间好像只用了1个小时




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