| 本帖最后由 j433463 于 2013-6-21 01:29 编辑 
 其实存档没有想像中难,在 DataManager 脚本中,有一个生成存档的头数据 def self.make_save_header 专门用来放存档档头资料的,
 
 什么意思呢?就是在存档与读档画面中的那些东西,如图:
 
 
   
 存档 2 中,有队伍角色行走图,有存档游戏时间,这些就是放在存档头数据中的,在 def self.make_save_header 程序是这样子:
 
 
 def self.make_save_header    header = {} #建立一个空的 header hash    header[:characters] = $game_party.characters_for_savefile #建立名为 :characters 的 header 变量,存放 Game_Party 中 def characters_for_savefile 的结果    header[:playtime_s] = $game_system.playtime_s #建立名为 :playtime_s 的 header 变量,存放 Game_System 中 def playtime_s 的结果    header  end
def self.make_save_header 
    header = {} #建立一个空的 header hash 
    header[:characters] = $game_party.characters_for_savefile #建立名为 :characters 的 header 变量,存放 Game_Party 中 def characters_for_savefile 的结果 
    header[:playtime_s] = $game_system.playtime_s #建立名为 :playtime_s 的 header 变量,存放 Game_System 中 def playtime_s 的结果 
    header 
  end 
 这很明白了,characters_for_savefile 就是角色的图像讯息,也就行走图,它包含了 actor.character_name 和 actor.character_index,也就是行走图的档名和行走图中第几个图的索引,
 playtime_s 就是游戏时间,这两个,也就是存档 2 的行走图和存档时间。
 
 所以楼主要加上角色1的名字,很简单嘛!就是在这 def self.make_save_header 中把角色1 名字加进去,像这样:
 
 
 def self.make_save_header    header = {}header[:actor_1] = $game_actors[1].name    header[:characters] = $game_party.characters_for_savefile    header[:playtime_s] = $game_system.playtime_s    header  end
def self.make_save_header 
    header = {} 
header[:actor_1] = $game_actors[1].name 
    header[:characters] = $game_party.characters_for_savefile 
    header[:playtime_s] = $game_system.playtime_s 
    header 
  end 
 建立一个名为 :actor_1 的 header 变量,并且把 $game_actors[1].name 第一个角色的名字存放到这变量中,在存档时,档头就有第一个角色的名字了。
 
 当然,这样只是存档而已,要怎么读档呢?那就是 Widnow_SaveFile 的工作,看这脚本名称您可能误会它是存档的脚本,其实不是,看看它最顶端的注解,
 
 存档画面和读档画面中显示存档档案的视窗。
 
 显示存档档案的视窗,意思就是存档和读档时的画面,就是上面那张存档 2 的那个画面,这脚本就是做这个事的,不要被脚本名骗了,
 
 仔细看看 def refresh 的内容:
 
 
 def refresh    contents.clear #清空画面    change_color(normal_color) #改变颜色设定为正常色    name = Vocab::File + " #{@file_index + 1}" #name 名称格式为 存档n 也就是 存档1 存档2 ....    draw_text(4, 0, 200, line_height, name) #描绘 name    @name_width = text_size(name).width #取得 name 名称宽度    draw_party_characters(152, 58) #描绘角色行走图    draw_playtime(0, contents.height - line_height, contents.width - 4, 2) #描绘存档游戏时间  end
def refresh 
    contents.clear #清空画面 
    change_color(normal_color) #改变颜色设定为正常色 
    name = Vocab::File + " #{@file_index + 1}" #name 名称格式为 存档n 也就是 存档1 存档2 .... 
    draw_text(4, 0, 200, line_height, name) #描绘 name 
    @name_width = text_size(name).width #取得 name 名称宽度 
    draw_party_characters(152, 58) #描绘角色行走图 
    draw_playtime(0, contents.height - line_height, contents.width - 4, 2) #描绘存档游戏时间 
  end 
 我想,看到这您也许就明白了,这一段就是在显示存档读档的画面,那个存档2,行走图和游戏时间,就是在这个地方描绘的,所以,要加上角色一的名称,就是找个地方自己加上去,
 
 譬如:
 
 
 def refresh    contents.clear    change_color(normal_color)    name = Vocab::File + " #{@file_index + 1}"    draw_text(4, 0, 200, line_height, name)    @name_width = text_size(name).width    draw_party_characters(152, 58)    draw_playtime(0, contents.height - line_height, contents.width - 4, 2)     header = DataManager.load_header(@file_index) #取得档头资料    return unless header #如果没有 header 档头资料就 return 结束这个 def    draw_text(100, 0, 200, line_height, header[:actor_1]) #在 100,0 的位置显示角色一的名字   end
def refresh 
    contents.clear 
    change_color(normal_color) 
    name = Vocab::File + " #{@file_index + 1}" 
    draw_text(4, 0, 200, line_height, name) 
    @name_width = text_size(name).width 
    draw_party_characters(152, 58) 
    draw_playtime(0, contents.height - line_height, contents.width - 4, 2) 
  
    header = DataManager.load_header(@file_index) #取得档头资料 
    return unless header #如果没有 header 档头资料就 return 结束这个 def 
    draw_text(100, 0, 200, line_height, header[:actor_1]) #在 100,0 的位置显示角色一的名字 
  
  end 
 要注意的是档头资料一定要读取的动作,然后才能去描绘角色一的名字。
 
 您看,不难吧?当您明白 VA 的存档读档,其实很容易改的,不像 XP 或 VX,需要做一些其它的补充,VA 的存读档就这么单纯直接。
 
 之前有帖子问怎么把存档读档的行走图改成脸图,现在您想到没有?就是在 def self.make_save_header 那边加上战斗者的脸图档名和索引,
 
 然后在 Window_SaveFile 这边的 def refresh 中,改掉 draw_party_characters(152, 58) 这个画行走图的方法,换成画脸图的就行了,
 
 其实没有什么技巧的,很容易的,可是一般你不会知道,因为你没有注意 VA 的存档读档脚本内容,你就会以为很难,事实并不是。
 
 
 
 
 
 
 
 
 
 
 
 |