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

Project1

 找回密码
 注册会员
搜索
楼主: 金毛羊羊
打印 上一主题 下一主题

[已经解决] 关于二周目继承的问题

 关闭 [复制链接]

Lv3.寻梦者

梦石
0
星屑
1743
在线时间
485 小时
注册时间
2006-1-7
帖子
1073
11
发表于 2009-9-21 14:40:20 | 只看该作者
简单方法,把你不想继承的剔除,其他都继承
首先
  1. file = File.open("Finished.rxdata", "wb")
  2. Marshal.dump($game_variables, file)
  3. Marshal.dump($game_actors, file)
  4. file.close
复制代码
这部分改成
  1.     file = File.open("Finished.rxdata", "wb")
  2.     Marshal.dump($game_system, file)
  3.     Marshal.dump($game_switches, file)
  4.     Marshal.dump($game_variables, file)
  5.     Marshal.dump($game_self_switches, file)
  6.     Marshal.dump($game_screen, file)
  7.     Marshal.dump($game_actors, file)
  8.     Marshal.dump($game_party, file)
  9.     Marshal.dump($game_troop, file)
  10.     Marshal.dump($game_map, file)
  11.     Marshal.dump($game_player, file)
  12.     file.close
复制代码
不用吝啬,全写里面才500K左右

其次,轮回里面
  1. # 生成各种游戏对像
复制代码
后面全替换成下面的:
  1.     if FileTest.exist?("Finished.rxdata")
  2.     file = File.open("Finished.rxdata", "rb")
  3.     $game_system        = Marshal.load(file)
  4.     $game_system        = Game_System.new
  5.     $game_switches      = Game_Switches.new
  6.     $game_variables     = Game_Variables.new
  7.     $game_self_switches = Game_SelfSwitches.new
  8.     $game_screen        = Game_Screen.new
  9.     $game_actors        = Marshal.load(file)
  10.     $game_party         = Marshal.load(file)
  11.     $game_troop         = Game_Troop.new
  12.     $game_map           = Game_Map.new
  13.     $game_player        = Game_Player.new
复制代码
Marshal.dump($game_system, file)   系统,不用继承
    Marshal.dump($game_switches, file)  开关,不用继承
    Marshal.dump($game_variables, file)  变量,不用继承
   Marshal.dump($game_self_switches, file)  独立开关,不用继承
    Marshal.dump($game_screen, file) 画面闪烁,不用继承
    Marshal.dump($game_actors, file)   人物数据相关,继承
   Marshal.dump($game_party, file)   人物数据相关,集成
    Marshal.dump($game_troop, file)  敌人数据,不用继承
    Marshal.dump($game_map, file)   地图信息,不用集成
    Marshal.dump($game_player, file)  事件启动的判定、以及地图的滚动等功能,不用继承

我知道了,你把$game_party又初始化了。
初从文,三年不中;后习武,校场发一矢,中鼓吏,逐之出;遂学医,有所成。自撰一良方,服之,卒。
回复 支持 反对

使用道具 举报

Lv3.寻梦者

梦石
0
星屑
1743
在线时间
485 小时
注册时间
2006-1-7
帖子
1073
12
发表于 2009-9-21 14:41:09 | 只看该作者
把完整的Scene_Title脚本贴上来吧,我帮你改一改
初从文,三年不中;后习武,校场发一矢,中鼓吏,逐之出;遂学医,有所成。自撰一良方,服之,卒。
回复 支持 反对

使用道具 举报

Lv3.寻梦者

梦石
0
星屑
1743
在线时间
485 小时
注册时间
2006-1-7
帖子
1073
13
发表于 2009-9-21 15:06:39 | 只看该作者
你不贴出来我去洗澡了。
初从文,三年不中;后习武,校场发一矢,中鼓吏,逐之出;遂学医,有所成。自撰一良方,服之,卒。
回复 支持 反对

使用道具 举报

头像被屏蔽

Lv1.梦旅人 (禁止发言)

梦石
0
星屑
50
在线时间
0 小时
注册时间
2008-1-23
帖子
32
14
 楼主| 发表于 2009-9-21 16:23:44 | 只看该作者
提示: 作者被禁止或删除 内容自动屏蔽
签名被屏蔽
回复 支持 反对

使用道具 举报

头像被屏蔽

Lv1.梦旅人 (禁止发言)

梦石
0
星屑
50
在线时间
0 小时
注册时间
2008-1-23
帖子
32
15
 楼主| 发表于 2009-9-21 16:24:24 | 只看该作者
提示: 作者被禁止或删除 内容自动屏蔽
签名被屏蔽
回复 支持 反对

使用道具 举报

头像被屏蔽

Lv1.梦旅人 (禁止发言)

梦石
0
星屑
50
在线时间
0 小时
注册时间
2008-1-23
帖子
32
16
 楼主| 发表于 2009-9-22 14:00:30 | 只看该作者
提示: 作者被禁止或删除 内容自动屏蔽
签名被屏蔽
回复 支持 反对

使用道具 举报

头像被屏蔽

Lv1.梦旅人 (禁止发言)

梦石
0
星屑
50
在线时间
0 小时
注册时间
2008-1-23
帖子
32
17
 楼主| 发表于 2009-9-22 20:40:56 | 只看该作者
提示: 作者被禁止或删除 内容自动屏蔽
签名被屏蔽
回复 支持 反对

使用道具 举报

Lv3.寻梦者

梦石
0
星屑
1743
在线时间
485 小时
注册时间
2006-1-7
帖子
1073
18
发表于 2009-9-22 20:46:25 | 只看该作者
本帖最后由 白鬼 于 2009-9-22 20:47 编辑
  1. #==============================================================================
  2. # ■ Scene_Title
  3. #------------------------------------------------------------------------------
  4. #  处理标题画面的类。
  5. #==============================================================================

  6. class Scene_Title
  7.   #--------------------------------------------------------------------------
  8.   # ● 住处理
  9.   #--------------------------------------------------------------------------
  10.   def main
  11.     # 战斗测试的情况下
  12.     if $BTEST
  13.       battle_test
  14.       return
  15.     end
  16.     # 载入数据库
  17.     $data_actors        = load_data("Data/Actors.rxdata")
  18.     $data_classes       = load_data("Data/Classes.rxdata")
  19.     $data_skills        = load_data("Data/Skills.rxdata")
  20.     $data_items         = load_data("Data/Items.rxdata")
  21.     $data_weapons       = load_data("Data/Weapons.rxdata")
  22.     $data_armors        = load_data("Data/Armors.rxdata")
  23.     $data_enemies       = load_data("Data/Enemies.rxdata")
  24.     $data_troops        = load_data("Data/Troops.rxdata")
  25.     $data_states        = load_data("Data/States.rxdata")
  26.     $data_animations    = load_data("Data/Animations.rxdata")
  27.     $data_tilesets      = load_data("Data/Tilesets.rxdata")
  28.     $data_common_events = load_data("Data/CommonEvents.rxdata")
  29.     $data_system        = load_data("Data/System.rxdata")
  30.     # 生成系统对像
  31.     $game_system = Game_System.new
  32.     # 生成标题图形
  33.     @sprite = Sprite.new
  34.     @sprite.bitmap = RPG::Cache.title($data_system.title_name)
  35.     if FileTest.exist?("Finished.rxdata")
  36.       # 生成命令窗口
  37.       s1 = "新游戏"
  38.       s2 = "继续"
  39.       s3 = "退出"
  40.       s4 = "轮回"
  41.       @command_window = Window_Command.new(192, [s1, s2, s3, s4])
  42.       @command_window.back_opacity = 160
  43.       @command_window.x = 320 - @command_window.width / 2
  44.       @command_window.y = 288
  45.     else
  46.       # 生成命令窗口
  47.       s1 = "新游戏"
  48.       s2 = "继续"
  49.       s3 = "退出"
  50.       @command_window = Window_Command.new(192, [s1, s2, s3])
  51.       @command_window.back_opacity = 160
  52.       @command_window.x = 320 - @command_window.width / 2
  53.       @command_window.y = 288
  54.     end
  55.    
  56.     # 判定继续的有效性
  57.     # 存档文件一个也不存在的时候也调查
  58.     # 有効为 @continue_enabled 为 true、無効为 false
  59.     @continue_enabled = false
  60.     for i in 0..3
  61.       if FileTest.exist?("Save#{i+1}.rxdata")
  62.         @continue_enabled = true
  63.       end
  64.     end
  65.     # 继续为有效的情况下、光标停止在继续上
  66.     # 无效的情况下、继续的文字显示为灰色
  67.     if @continue_enabled
  68.       @command_window.index = 1
  69.     else
  70.       @command_window.disable_item(1)
  71.     end
  72.     # 演奏标题 BGM
  73.     $game_system.bgm_play($data_system.title_bgm)
  74.     # 停止演奏 ME、BGS
  75.     Audio.me_stop
  76.     Audio.bgs_stop
  77.     # 执行过渡
  78.     Graphics.transition
  79.     # 主循环
  80.     loop do
  81.       # 刷新游戏画面
  82.       Graphics.update
  83.       # 刷新输入信息
  84.       Input.update
  85.       # 刷新画面
  86.       update
  87.       # 如果画面被切换就中断循环
  88.       if $scene != self
  89.         break
  90.       end
  91.     end
  92.     # 装备过渡
  93.     Graphics.freeze
  94.     # 释放命令窗口
  95.     @command_window.dispose
  96.     # 释放标题图形
  97.     @sprite.bitmap.dispose
  98.     @sprite.dispose
  99.   end
  100.   #--------------------------------------------------------------------------
  101.   # ● 刷新画面
  102.   #--------------------------------------------------------------------------
  103.   def update
  104.     # 刷新命令窗口
  105.     @command_window.update
  106.     # 按下 C 键的情况下
  107.     if Input.trigger?(Input::C)
  108.       # 命令窗口的光标位置的分支
  109.       case @command_window.index
  110.       when 0  # 新游戏
  111.         command_new_game
  112.       when 1  # 继续
  113.         command_continue
  114.       when 2  # 退出
  115.         command_shutdown
  116.       when 3  # 轮回
  117.         command_special
  118.       end
  119.     end
  120.   end
  121.   #--------------------------------------------------------------------------
  122.   # ● 命令 : 新游戏
  123.   #--------------------------------------------------------------------------
  124.   def command_new_game
  125.     # 演奏确定 SE
  126.     $game_system.se_play($data_system.decision_se)
  127.     # 停止 BGM
  128.     Audio.bgm_stop
  129.     # 重置测量游戏时间用的画面计数器
  130.     Graphics.frame_count = 0
  131.     # 生成各种游戏对像
  132.     if FileTest.exist?("Finished.rxdata")
  133.       file = File.open("Finished.rxdata", "rb")
  134.       $game_variables     = Marshal.load(file)
  135.       $game_actors        = Marshal.load(file)
  136.       file.close
  137.     else
  138.       $game_variables     = Game_Variables.new
  139.       $game_actors        = Game_Actors.new
  140.     end
  141.     $game_temp          = Game_Temp.new
  142.     $game_system        = Game_System.new
  143.     $game_switches      = Game_Switches.new   
  144.     $game_self_switches = Game_SelfSwitches.new
  145.     $game_screen        = Game_Screen.new
  146.     $game_party         = Game_Party.new
  147.     $game_troop         = Game_Troop.new
  148.     $game_map           = Game_Map.new
  149.     $game_player        = Game_Player.new
  150.     # 设置初期同伴位置
  151.     $game_party.setup_starting_members
  152.     # 设置初期位置的地图
  153.     $game_map.setup($data_system.start_map_id)
  154.     # 主角向初期位置移动
  155.     $game_player.moveto($data_system.start_x, $data_system.start_y)
  156.     # 刷新主角
  157.     $game_player.refresh
  158.     # 执行地图设置的 BGM 与 BGS 的自动切换
  159.     $game_map.autoplay
  160.     # 刷新地图 (执行并行事件)
  161.     $game_map.update
  162.     # 切换地图画面
  163.     $scene = Scene_Map.new
  164.   end
  165.   #--------------------------------------------------------------------------
  166.   # ● 命令 : 继续
  167.   #--------------------------------------------------------------------------
  168.   def command_continue
  169.     # 继续无效的情况下
  170.     unless @continue_enabled
  171.       # 演奏无效 SE
  172.       $game_system.se_play($data_system.buzzer_se)
  173.       return
  174.     end
  175.     # 演奏确定 SE
  176.     $game_system.se_play($data_system.decision_se)
  177.     # 切换到读档画面
  178.     $scene = Scene_Load.new
  179.   end
  180.   #--------------------------------------------------------------------------
  181.   # ● 命令 : 退出
  182.   #--------------------------------------------------------------------------
  183.   def command_shutdown
  184.     # 演奏确定 SE
  185.     $game_system.se_play($data_system.decision_se)
  186.     # BGM、BGS、ME 的淡入淡出
  187.     Audio.bgm_fade(800)
  188.     Audio.bgs_fade(800)
  189.     Audio.me_fade(800)
  190.     # 退出
  191.     $scene = nil
  192.   end
  193.   #--------------------------------------------------------------------------
  194.   # ● 命令 : 轮回
  195.   #--------------------------------------------------------------------------
  196.   def command_special
  197.     # 演奏确定 SE
  198.     $game_system.se_play($data_system.decision_se)
  199.     # 停止 BGM
  200.     Audio.bgm_stop
  201.     # 重置测量游戏时间用的画面计数器
  202.     Graphics.frame_count = 0
  203.     # 生成各种游戏对像
  204.     if FileTest.exist?("Finished.rxdata")
  205.       file = File.open("Finished.rxdata", "rb")
  206.       $game_actors        = Marshal.load(file)
  207.       $game_party         = Marshal.load(file)
  208.       file.close
  209.     else
  210.       $game_actors        = Game_Actors.new
  211.       $game_party         = Game_Party.new
  212.     end
  213.     $game_temp          = Game_Temp.new
  214.     $game_system        = Game_System.new
  215.     $game_switches      = Game_Switches.new  
  216.     $game_variables     = Game_Variables.new
  217.     $game_self_switches = Game_SelfSwitches.new
  218.     $game_screen        = Game_Screen.new
  219.     $game_troop         = Game_Troop.new
  220.     $game_map           = Game_Map.new
  221.     $game_player        = Game_Player.new
  222.     # 设置初期同伴位置
  223.     $game_party.setup_starting_members
  224.     # 设置初期位置的地图
  225.     $game_map.setup(144)
  226.     # 主角向初期位置移动
  227.     $game_player.moveto(10,10)
  228.     # 刷新主角
  229.     $game_player.refresh
  230.     # 执行地图设置的 BGM 与 BGS 的自动切换
  231.     $game_map.autoplay
  232.     # 刷新地图 (执行并行事件)
  233.     $game_map.update
  234.     # 切换地图画面
  235.     $scene = Scene_Map.new
  236.   end
  237.   #--------------------------------------------------------------------------
  238.   # ● 战斗测试
  239.   #--------------------------------------------------------------------------
  240.   def battle_test
  241.     # 载入数据库 (战斗测试用)
  242.     $data_actors        = load_data("Data/BT_Actors.rxdata")
  243.     $data_classes       = load_data("Data/BT_Classes.rxdata")
  244.     $data_skills        = load_data("Data/BT_Skills.rxdata")
  245.     $data_items         = load_data("Data/BT_Items.rxdata")
  246.     $data_weapons       = load_data("Data/BT_Weapons.rxdata")
  247.     $data_armors        = load_data("Data/BT_Armors.rxdata")
  248.     $data_enemies       = load_data("Data/BT_Enemies.rxdata")
  249.     $data_troops        = load_data("Data/BT_Troops.rxdata")
  250.     $data_states        = load_data("Data/BT_States.rxdata")
  251.     $data_animations    = load_data("Data/BT_Animations.rxdata")
  252.     $data_tilesets      = load_data("Data/BT_Tilesets.rxdata")
  253.     $data_common_events = load_data("Data/BT_CommonEvents.rxdata")
  254.     $data_system        = load_data("Data/BT_System.rxdata")
  255.     # 重置测量游戏时间用的画面计数器
  256.     Graphics.frame_count = 0
  257.     # 生成各种游戏对像
  258.    $game_temp          = Game_Temp.new
  259.     $game_system        = Game_System.new
  260.     $game_switches      = Game_Switches.new
  261.     $game_variables     = Game_Variables.new
  262.     $game_self_switches = Game_SelfSwitches.new
  263.     $game_screen        = Game_Screen.new
  264.     $game_actors        = Game_Actors.new
  265.     $game_party         = Game_Party.new
  266.     $game_troop         = Game_Troop.new
  267.     $game_map           = Game_Map.new
  268.     $game_player        = Game_Player.new
  269.     # 设置战斗测试用同伴
  270.     $game_party.setup_battle_test_members
  271.     # 设置队伍 ID、可以逃走标志、战斗背景
  272.     $game_temp.battle_troop_id = $data_system.test_troop_id
  273.     $game_temp.battle_can_escape = true
  274.     $game_map.battleback_name = $data_system.battleback_name
  275.     # 演奏战斗开始 BGM
  276.     $game_system.se_play($data_system.battle_start_se)
  277.     # 演奏战斗 BGM
  278.     $game_system.bgm_play($game_system.battle_bgm)
  279.     # 切换到战斗画面
  280.     $scene = Scene_Battle.new
  281.   end
  282. end
复制代码
以后发脚本要用“插入代码”
别直接贴

脚本改好了。按照你的要求。
可以凑合用。
不过我觉得,如果没有这个轮回存档的时候,无法选择轮回要更好一些。
先将就用吧。回头我有时间的话,尝试改一改。
初从文,三年不中;后习武,校场发一矢,中鼓吏,逐之出;遂学医,有所成。自撰一良方,服之,卒。
回复 支持 反对

使用道具 举报

头像被屏蔽

Lv1.梦旅人 (禁止发言)

梦石
0
星屑
50
在线时间
0 小时
注册时间
2008-1-23
帖子
32
19
 楼主| 发表于 2009-9-22 22:01:16 | 只看该作者
提示: 作者被禁止或删除 内容自动屏蔽
签名被屏蔽
回复 支持 反对

使用道具 举报

头像被屏蔽

Lv1.梦旅人 (禁止发言)

梦石
0
星屑
50
在线时间
0 小时
注册时间
2008-1-23
帖子
32
20
 楼主| 发表于 2009-9-22 22:11:40 | 只看该作者
提示: 作者被禁止或删除 内容自动屏蔽
签名被屏蔽
回复 支持 反对

使用道具 举报

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

本版积分规则

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

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

GMT+8, 2025-1-8 06:28

Powered by Discuz! X3.1

© 2001-2013 Comsenz Inc.

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