赞 | 0 |
VIP | 10 |
好人卡 | 49 |
积分 | 13 |
经验 | 22958 |
最后登录 | 2020-8-1 |
在线时间 | 2161 小时 |
Lv3.寻梦者 酱油的
- 梦石
- 0
- 星屑
- 1265
- 在线时间
- 2161 小时
- 注册时间
- 2007-12-22
- 帖子
- 3271

|
給個例子你們好了:
#==============================================================================
# ■ Scene_Save
#------------------------------------------------------------------------------
# 处理存档画面的类。
#==============================================================================
class Scene_Save < Scene_File
#--------------------------------------------------------------------------
# ● 写入存档数据
# file : 写入用文件对像 (已经打开)
#--------------------------------------------------------------------------
def write_save_data(file)
# 生成描绘存档文件用的角色图形
characters = []
for i in 0...$game_party.actors.size
actor = $game_party.actors
characters.push([actor.character_name, actor.character_hue])
end
# 写入描绘存档文件用的角色数据
Marshal.dump(characters, file)
# 写入测量游戏时间用画面计数
Marshal.dump(Graphics.frame_count, file)
# 增加 1 次存档次数
$game_system.save_count += 1
# 保存魔法编号
# (将编辑器保存的值以随机值替换)
$game_system.magic_number = $data_system.magic_number
# 写入各种游戏对像
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)
# ----------------------------------
Marshal.dump($data_weapons, file)
Marshal.dump($data_armors, file)
Marshal.dump($data_classes, file)
# ----------------------------------
end
end
#==============================================================================
# ■ Scene_Load
#------------------------------------------------------------------------------
# 处理读档画面的类。
#==============================================================================
class Scene_Load < Scene_File
#--------------------------------------------------------------------------
# ● 读取存档数据
# file : 读取用文件对像 (已经打开)
#--------------------------------------------------------------------------
def read_save_data(file)
# 读取描绘存档文件用的角色数据
characters = Marshal.load(file)
# 读取测量游戏时间用画面计数
Graphics.frame_count = Marshal.load(file)
# 读取各种游戏对像
$game_system = Marshal.load(file)
$game_switches = Marshal.load(file)
$game_variables = Marshal.load(file)
$game_self_switches = Marshal.load(file)
$game_screen = Marshal.load(file)
$game_actors = Marshal.load(file)
$game_party = Marshal.load(file)
$game_troop = Marshal.load(file)
$game_map = Marshal.load(file)
$game_player = Marshal.load(file)
# ----------------------------------
$data_weapons = Marshal.load(file)
$data_armors = Marshal.load(file)
$data_classes = Marshal.load(file)
# ----------------------------------
# 魔法编号与保存时有差异的情况下
# (加入编辑器的编辑过的数据)
if $game_system.magic_number != $data_system.magic_number
# 重新装载地图
$game_map.setup($game_map.map_id)
$game_player.center($game_player.x, $game_player.y)
end
# 刷新同伴成员
$game_party.refresh
end
end
這個是是武器改造系統的存檔腳本,裏面增加了三個存儲變量,分別是$data_weapons,$data_armors,$data_classes。目的就是記錄新生成的裝備數據。同樣大家可以自己添加需要記錄的變量。但是爲了防止大量使用而引起衝突。變量最後還是寫在一些默認就會記錄的「實例類」裏面。
比如下面:
class Game_Party
attr_reader :pets_got # 是否擁有寵物
attr_reader :pets_met # 是否見過寵物
#--------------------------------------------------------------------------
# ● 初始化对像
#--------------------------------------------------------------------------
alias old_method_initialize initialize
def initialize
old_method_initialize
@pets_got = []
@pets_met = []
end
#--------------------------------------------------------------------------
# ● 加入寵物
# actor_id : 寵物 ID
#--------------------------------------------------------------------------
def got_pet(actor_id)
@pets_got =@pets_got|[actor_id]
end
#--------------------------------------------------------------------------
# ● 見過寵物
# actor_id : 寵物 ID
#--------------------------------------------------------------------------
def met_pet(actor_id)
@pets_met =@pets_met|[actor_id]
end
#--------------------------------------------------------------------------
# ● 加入同伴
# actor_id : 角色 ID
#--------------------------------------------------------------------------
def add_actor(actor_id)
# 获取角色
actor = $game_actors[actor_id]
# 同伴人数未满 5 人、本角色不在队伍中的情况下
if @actors.size < 5 and not @actors.include?(actor)
#-------------------------#
# 得到寵物 #
got_pet(actor_id) #
#-------------------------#
# 添加角色
if actor.id == $game_actors[387].id
@actors.insert(0,actor)
else
@actors.push(actor)
end
# 还原主角
$game_player.refresh
end
end
end
此腳本是天空之城的精靈圖鑒腳本,裏面伴隨class Game_Party(因爲系統默認需要記錄)生成了兩個儲存變量作爲圖鑒資料使用。在記錄的時候,會伴隨 $game_party 一齊記錄入存檔
|||連帖...我有罪... 系统信息:本贴获得楼主认可,66RPG感谢您的热情解答~ |
|