Project1
标题:
请问怎样在存档游戏里重新加载类
[打印本页]
作者:
shileiye
时间:
2009-4-28 17:52
标题:
请问怎样在存档游戏里重新加载类
装了《任务系统缩减版 (清纯版- -)》后`存档使用会出错`
因为
#==============================================================================
# Game_System
#------------------------------------------------------------------------------
# 添加内容
#==============================================================================
class Game_System
attr_accessor :mission #现在执行的任务
attr_accessor :partmission
alias carol3_ini initialize
def initialize
carol3_ini
@mission = ""
@partmission = []
end
end
复制代码
上面这个类给Game_System加了两个属性,但Game_System只在重新开始的时候才会启用,
使用存档游戏的话,这两个属性就加载不进去,结果就成NIL了````
所以我想问问如何在存档游戏里运行的时候把这两个属性加进去?而不用重新游戏,我的想法是加个判断,没这两个属性的时候自动把这两个属性加入进去````但运行时重载类我就不晓得语法了```看帮助文件也没找到。。非常之郁闷````
谢谢各位大大!潜水N多年``最近终于有时间搞RMVX了```遇到些问题,特来求助。。。再次谢谢各位!{/gg}
任务系统缩减版:http://rpg.blue/web/htm/news374.htm [LINE]1,#dddddd[/LINE]
版务信息:本贴由楼主自主结贴~
作者:
雪流星
时间:
2009-4-28 19:03
参考 Scene_Title [LINE]1,#dddddd[/LINE]
系统信息:本贴由楼主认可为正确答案,66RPG感谢您的热情解答~
作者:
shileiye
时间:
2009-4-28 19:39
非常谢谢`原来如此```{/qiang}
$game_system = Game_System.new #初始化游戏对象
作者:
shileiye
时间:
2009-4-28 19:45
修改后的脚本放出`比较粗糙`逻辑不是太好```不过`在更深入理解GRSS之前``先将就一下吧```
存档可用版清爽任务系统````再次谢谢各位大大`
# 本脚本由主页上的[任务显示与菜单综合加强]改编的,从新整和了一下,主要功能
# 直接通过[$scene=Scene_RecordBook.new]调用查看任务显示,方便自制菜单等游
# 戏的利用,也是应论坛上[linguoheng]的需求做的,现在发布出来方便大家以后使
# 用
#~ 小提示(如果还想改造的话):
#~ $game_system.mission.to_s 主线任务
#~ $game_system.partmission[i].to_s 第i个支线任务
#~ main之前右键插入,全选RGSS代码后,粘贴即可.脚本名可自己取.
#~ 添加主线任务的方法 : 在事件中代入脚本: $任务 = "这里写你的任务" (注意输入的时候引号不要丢.)
#~ 添加支线任务的方法 : 在事件中代入脚本: $支线 = "这里写你的任务" 完成任务的时候输入脚本: $支线完成 = "这里任务与添加时务必一样" (这里输入脚本里的任务名称务必与添加时一至,否则不起任何效果.)
#~ 注意:添加多个支线任务时,中间必须有对话或者其他事件隔开,不能都密密麻麻写在一起,否则只会读取最后一个任务。如图
#==============================================================================
# Game_System
#------------------------------------------------------------------------------
# 添加内容
#==============================================================================
class Game_System
attr_accessor :mission #现在执行的任务
attr_accessor :partmission
alias carol3_ini initialize
def initialize
carol3_ini
@mission = ""
@partmission = []
end
end
#==============================================================================
# ■ Scene_Title
#------------------------------------------------------------------------------
# 处理标题画面的类。
#==============================================================================
class Scene_Title
alias carol3_title1 main
def main
$map_infos = load_data("Data/MapInfos.rvdata")
for key in $map_infos.keys
$map_infos[key] = $map_infos[key].name
end
$支线 = nil
$支线完成 = nil
$任务 = ""
carol3_title1
end
end
class Scene_Map
alias carol3_update update
def update
if $game_system.partmission == nil
$game_system = Game_System.new
end
carol3_update
if $支线 != nil
for i in 0...$game_system.partmission.size
if $game_system.partmission[i] == $支线
$支线 = nil
break
end
end
if $支线 != nil
$game_system.partmission.push($支线)
$支线 = nil
end
end
if $支线完成 != nil
for i in 0...$game_system.partmission.size
if $game_system.partmission[i] == $支线完成
$game_system.partmission.delete($game_system.partmission[i])
break
end
end
$支线完成 = nil
end
end
end
#==============================================================================
# ■ Game_Map
#------------------------------------------------------------------------------
# 处理地图的类。包含卷动以及可以通行的判断功能。
# 本类的实例请参考 $game_map 。
#==============================================================================
class Game_Map
def name
return $map_infos[@map_id]
end
end
#==============================================================================
# Window_RecordBook
#------------------------------------------------------------------------------
# 菜单界面表示信息的窗口
#==============================================================================
class Window_RecordBook < Window_Base
#--------------------------------------------------------------------------
# ● 初始化对象
#--------------------------------------------------------------------------
def initialize
super(0, 0, 544, 416)
self.contents = Bitmap.new(width - 32, height - 32)
if $任务 == ""
$任务 = $game_system.mission
else
$game_system.mission = $任务
end
refresh
end
#--------------------------------------------------------------------------
# ● 刷新画面
#--------------------------------------------------------------------------
def refresh
self.contents.clear
self.contents.font.color = system_color
self.contents.font.size = 20
cx = self.contents.text_size("现在地点").width + 24
self.contents.draw_text(4, 0, cx, 24, "现在地点")
self.contents.font.color = normal_color
self.contents.draw_text(4 + cx, 0, 444 - cx, 24, $game_map.name.to_s)
self.contents.font.color = system_color
cx = self.contents.text_size("主线任务").width + 24
self.contents.draw_text(4, 32, cx, 24, "主线任务")
self.contents.font.color = Color.new(240,250,75,255)
self.contents.draw_text(4 + cx, 32, 444 - cx, 24, $game_system.mission.to_s)
self.contents.font.color = system_color
cx = self.contents.text_size("支线任务").width + 24
self.contents.draw_text(4, 96, cx, 24, "支线任务")
self.contents.font.color = normal_color
if $game_system.partmission != nil
for i in 0...$game_system.partmission.size
self.contents.draw_text(4 + cx, 96 + i * 32, 444 - cx, 24, $game_system.partmission[i].to_s)
end
end
end
end
#----------------------------------------------------------------------------
#
# ● 任务书调用场景!调用方法:$scene=Scene_RecordBook.new
#
#----------------------------------------------------------------------------
class Scene_RecordBook
def main
@command_window = Window_RecordBook.new
Graphics.transition
loop do
Graphics.update
Input.update
update
if $scene != self
break
end
end
Graphics.freeze
@command_window.dispose
if $scene.is_a?(Scene_Title)
Graphics.transition
Graphics.freeze
end
end
#--------------------------------------------------------------------------
# ● 刷新画面
#--------------------------------------------------------------------------
def update
if $game_system.partmission == nil
$game_system = Game_System.new
end
@command_window.update
if Input.trigger?(Input::B)
#$game_system.se_play($data_system.cancel_se)
$scene = Scene_Map.new
return
end
end
end
复制代码
作者:
雪流星
时间:
2009-4-28 20:33
$game_system.se_play($data_system.cancel_se)
的VX版是
Sound.play_cancel
其他请看 Sound
作者:
shileiye
时间:
2009-4-29 01:40
恩`谢谢LS``
那句我暂时注释了````还没搞清楚用途````
字面意思似乎是恢复播放默认音乐```
再研究下再说```
欢迎光临 Project1 (https://rpg.blue/)
Powered by Discuz! X3.1