Project1

标题: 自定义存档名称 [打印本页]

作者: xiaoxiyp    时间: 2014-11-4 18:55
标题: 自定义存档名称
怎样做一个存档脚本,每保存一个存档都可以自定义一个名称。而且名称不能重复
作者: 喵呜喵5    时间: 2014-11-5 12:31
这个名称你打算在什么地方显示出来?我告诉你一个接口来获取这个名称的字符串你能看得懂什么意思吗?
作者: chd114    时间: 2014-11-5 22:02
这取决于你要显示在哪里,存档的时候来个输入处理,存变量然后变量存存档然后存档上面显示···你是想要这样吗?
作者: xiaoxiyp    时间: 2014-11-9 00:11
chd114 发表于 2014-11-5 22:02
这取决于你要显示在哪里,存档的时候来个输入处理,存变量然后变量存存档然后存档上面显示···你是想要这 ...

是的(。◕∀◕。)
作者: chd114    时间: 2014-11-9 12:27

参考一下吧···不过存档的时候也要存进去才行,否则是不显示的
  1. #==============================================================================
  2. # ■ Window_SaveFile
  3. #------------------------------------------------------------------------------
  4. #  显示存档以及读档画面、保存文件的窗口。
  5. #==============================================================================

  6. class Window_SaveFile < Window_Base
  7.   #--------------------------------------------------------------------------
  8.   # ● 定义实例变量
  9.   #--------------------------------------------------------------------------
  10.   attr_reader   :filename                 # 文件名
  11.   attr_reader   :selected                 # 选择状态
  12.   #--------------------------------------------------------------------------
  13.   # ● 初始化对像
  14.   #     file_index : 存档文件的索引 (0~3)
  15.   #     filename   : 文件名
  16.   #--------------------------------------------------------------------------
  17.   def initialize(file_index, filename)
  18.     super(0, 64 + file_index % 4 * 104, 640, 104)
  19.     self.contents = Bitmap.new(width - 32, height - 32)
  20.     @file_index = file_index
  21.     @filename = "Save/Save#{@file_index + 1}.rxdata"
  22.     @time_stamp = Time.at(0)
  23.     @file_exist = FileTest.exist?(@filename)
  24.     if @file_exist
  25.       file = File.open(@filename, "r")
  26.       @time_stamp = file.mtime
  27.       @characters = Marshal.load(file)
  28.       @scenename = Marshal.load(file)
  29.       @frame_count = Marshal.load(file)
  30.       @game_system = Marshal.load(file)
  31.       @game_switches = Marshal.load(file)
  32.       @game_variables = Marshal.load(file)
  33.       @total_sec = @frame_count / Graphics.frame_rate
  34.       file.close
  35.     end
  36.     refresh
  37.     @selected = false
  38.   end
  39.   #--------------------------------------------------------------------------
  40.   # ● 刷新
  41.   #--------------------------------------------------------------------------
  42.   def refresh
  43.     self.contents.clear
  44.     # 描绘文件编号
  45.     self.contents.font.size=15
  46.     self.contents.font.color = normal_color
  47.     name = "记录 #{@file_index + 1}"
  48.     self.contents.draw_text(4, 0, 600, 32, name)
  49.     @name_width = contents.text_size(name).width
  50.     self.contents.font.size=12
  51.     # 存档文件存在的情况下
  52.     if @file_exist
  53.       actor_level = []
  54.       # 描绘角色
  55.       y=0
  56.       for i in [email protected]
  57.         bitmap = RPG::Cache.character(@characters[i][0], @characters[i][1])
  58.         bitmap = Bitmap.new("Graphics/Heads/Actors/#{@characters[i][0]}.png")
  59.         src_rect = Rect.new(0, 0, 32, 32)
  60.         x = 160+i * 32
  61.         if x>=608
  62.           x-=448
  63.           y=32*(i-i%14)/14
  64.         end
  65.         self.contents.blt(x, 13+y, bitmap, src_rect)
  66.         actor_level[i] = @characters[i][2]
  67.       end
  68.       al = 0
  69.       al=actor_level.average(false)
  70.       self.contents.draw_text(0, 3, 115, 15, "队伍人数:", 2)
  71.       self.contents.draw_text(0, 3, 151, 15, @characters.size.to_s, 2)
  72.       self.contents.draw_text(0, 18, 115, 15, "平均等级:", 2)
  73.       self.contents.draw_text(0, 18, 151, 15, al.to_s, 2)
  74.       self.contents.draw_text(0, 0, 220, 15, "所在位置:", 2)
  75.       self.contents.draw_text(0, 0, 290, 15, @scenename.to_s, 2)
  76.       # 描绘游戏时间
  77.       hour = @total_sec / 60 / 60
  78.       min = @total_sec / 60 % 60
  79.       sec = @total_sec % 60
  80.       time_string = sprintf("%02d:%02d:%02d", hour, min, sec)
  81.       self.contents.font.color = normal_color
  82.       self.contents.draw_text(0, 32, 60, 15, "游戏时长:", 2)
  83.       self.contents.draw_text(0, 32, 103, 15, time_string, 2)
  84.       # 描绘时间标记
  85.       self.contents.font.color = normal_color
  86.       time_string = @time_stamp.strftime("%Y/%m/%d %H:%M")
  87.       self.contents.draw_text(0, 44, 60, 15, "保存时间:", 2)
  88.       self.contents.draw_text(0, 44, 151, 15, time_string, 2)
  89.     end
  90.   end
  91.   #--------------------------------------------------------------------------
  92.   # ● 设置选择状态
  93.   #     selected : 新的选择状态 (true=选择 false=不选择)
  94.   #--------------------------------------------------------------------------
  95.   def selected=(selected)
  96.     @selected = selected
  97.     update_cursor_rect
  98.   end
  99.   #--------------------------------------------------------------------------
  100.   # ● 刷新光标矩形
  101.   #--------------------------------------------------------------------------
  102.   def update_cursor_rect
  103.     if @selected
  104.       self.cursor_rect.set(0, 0, @name_width + 8, 32)
  105.     else
  106.       self.cursor_rect.empty
  107.     end
  108.   end
  109. end
复制代码

作者: chd114    时间: 2014-11-9 12:30
看着烦的话下范例吧···http://pan.baidu.com/s/1hquywfy
作者: chd114    时间: 2014-11-9 12:32
算了我还是说下要改的地方吧····

就改这三个地方
Window_SaveFile
Scene_Save
Scene_Load




欢迎光临 Project1 (https://rpg.blue/) Powered by Discuz! X3.1