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

Project1

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

[已经过期] 关于游戏中读档的问题

[复制链接]

Lv1.梦旅人

梦石
0
星屑
50
在线时间
120 小时
注册时间
2011-2-16
帖子
84
跳转到指定楼层
1
发表于 2011-2-19 18:04:52 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
接触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的声明函数
毕竟这条读档语句是复制过来的
各位大大谁能帮忙解答下?
感激不敬

另外如果能顺便解答一下有什么方便的确定坐标的方法就更好了,要确定游戏画面中的坐标点很难啊,总会有误差,很多时候要试很多次才行……

Lv3.寻梦者

梦石
0
星屑
1195
在线时间
1564 小时
注册时间
2008-7-30
帖子
4418

贵宾

2
发表于 2011-2-19 18:10:14 | 只看该作者
急着出门,就留一个这个东西吧:
http://rpg.blue/home.php?mod=spa ... p;do=blog&id=48

See FScript Here:https://github.com/DeathKing/fscript
潜心编写URG3中。
所有对URG3的疑问和勘误或者建议,请移步至发布页面。
欢迎萌妹纸催更
回复

使用道具 举报

Lv1.梦旅人

梦石
0
星屑
50
在线时间
120 小时
注册时间
2011-2-16
帖子
84
3
 楼主| 发表于 2011-2-19 18:46:59 | 只看该作者
本帖最后由 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,他一样判断开关是打开的……
哈哈~
读档系统完全搞定~

评分

参与人数 1星屑 +20 收起 理由
Rion幻音 + 20 在下花了一星期才开始学脚本,阁下学了4天.

查看全部评分

回复

使用道具 举报

Lv1.梦旅人

梦石
0
星屑
50
在线时间
21 小时
注册时间
2013-6-23
帖子
25
4
发表于 2013-6-27 23:14:14 | 只看该作者
完全照你的的方法,检查了无数次,只能显示按了没用
回复

使用道具 举报

Lv1.梦旅人

梦石
0
星屑
50
在线时间
21 小时
注册时间
2013-6-23
帖子
25
5
发表于 2013-6-27 23:27:39 | 只看该作者
when 5      # 读档
         #if @continue_enabled
           Sound.play_decision
           $scene = Scene_File.new(false, 3, false)                                 #我删掉了 if @continue_enabled
终于可以读档了
         

点评

不要挖坟...  发表于 2013-6-27 23:40
回复

使用道具 举报

Lv1.梦旅人

梦石
0
星屑
50
在线时间
21 小时
注册时间
2013-6-23
帖子
25
6
发表于 2013-6-27 23:47:11 | 只看该作者
还原脚本也没用,取消就回标题
回复

使用道具 举报

Lv1.梦旅人

梦石
0
星屑
50
在线时间
21 小时
注册时间
2013-6-23
帖子
25
7
发表于 2013-6-28 00:09:42 | 只看该作者
when 5      # 读档
           Sound.play_decision
           $scene = Scene_File.new(false, false, false)                          #(false, true, false)或  #(false, 3, false)加不加还原脚本都没用
测试了3个小时得出的
回复

使用道具 举报

Lv1.梦旅人

梦石
0
星屑
50
在线时间
21 小时
注册时间
2013-6-23
帖子
25
8
发表于 2013-6-28 00:13:18 | 只看该作者
看了下时间好像只用了1个小时

评分

参与人数 1星屑 -130 收起 理由
怪蜀黍 -130 挖古坟+严重连帖

查看全部评分

回复

使用道具 举报

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

本版积分规则

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

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

GMT+8, 2024-12-23 07:15

Powered by Discuz! X3.1

© 2001-2013 Comsenz Inc.

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