Project1

标题: 请教该怎么在存档信息加上存档的地图名称 [打印本页]

作者: timmyyayaya    时间: 2012-1-27 19:03
标题: 请教该怎么在存档信息加上存档的地图名称
本帖最后由 timmyyayaya 于 2012-1-27 20:48 编辑

在下的选单脚本有修改过,
请问哪位大大可以帮在下修一下,
让存盘的信息多一个存盘时的地图名称吗?
X Y可以先随意填,在下再来调整就好,感谢。
  1. #==============================================================================
  2. # ■ Window_SaveFile
  3. #------------------------------------------------------------------------------
  4. #==============================================================================

  5. class Window_SaveFile < Window_Selectable  
  6.   
  7.   
  8. attr_reader :file_exist
  9.   #--------------------------------------------------------------------------
  10.   # ● 初始化物件
  11.   #--------------------------------------------------------------------------
  12.   def initialize(x, y, width, height, offset = 70)
  13.     super(x, y, width, height, offset)
  14.     #super(260, 110, 360, 300)
  15. #   cursorOffset(70)  # 游標大小70
  16.     @item_max = $SAVE_FILE_MAX_NUM
  17.     @column_max = 1     #只有兩列
  18.     self.index = 0
  19.     #確認檔案是否存在
  20.     @file_exist = []
  21.     for i in 0..($SAVE_FILE_MAX_NUM - 1)
  22.       filename = "Save/Save#{i + 1}.rxdata"
  23.       file_exist_temp = FileTest.exist?(filename)
  24.       if file_exist_temp
  25.         @file_exist[i] = 1
  26.       else
  27.         @file_exist[i] = 0
  28.       end
  29.     end
  30.     @filename = []
  31.     @time_stamp = []
  32.     @characters = []
  33.     @frame_count = []
  34.     @game_system = []
  35.     @game_switches = []
  36.     @game_variables = []
  37.     @total_sec = []

  38.      #打開檔案讀資料
  39.     for i in 0..($SAVE_FILE_MAX_NUM - 1)
  40.       @time_stamp[i] = Time.at(0)
  41.       if @file_exist[i] == 1
  42.         filename = "Save/Save#{i + 1}.rxdata"
  43.         file = File.open(filename, "r")
  44.         @filename[i] = filename
  45.         @time_stamp[i] = file.mtime
  46.         @characters[i] = Marshal.load(file)
  47.         @frame_count[i] = Marshal.load(file)
  48.         @game_system[i] = Marshal.load(file)
  49.         @game_switches[i] = Marshal.load(file)
  50.         @game_variables[i] = Marshal.load(file)
  51.         @total_sec[i] = @frame_count[i] / Graphics.frame_rate
  52.         file.close
  53.       end
  54.     end
  55.     refresh
  56.   end
  57.   #--------------------------------------------------------------------------
  58.   # ● 更新
  59.   #--------------------------------------------------------------------------
  60.   def refresh
  61.     if self.contents != nil
  62.       self.contents.dispose
  63.       self.contents = nil
  64.     end
  65.    # self.contents = Bitmap.new(width - 32, $SAVE_FILE_MAX_NUM * 72)
  66.     self.contents = Bitmap.new(width - 32, ($SAVE_FILE_MAX_NUM-1) * 75-32)
  67.     for i in 0..($SAVE_FILE_MAX_NUM - 1)
  68.       draw_item(i)
  69.     end
  70.   end
  71.   #--------------------------------------------------------------------------
  72.   # ● 描繪項目
  73.   #     index : 項目編號
  74.   #--------------------------------------------------------------------------
  75.   def draw_item(index)
  76.     x = 0
  77.     y = index * 70#75
  78.     rect = Rect.new(x, y, 200, 36)
  79.     self.contents.fill_rect(rect, Color.new(0, 0, 0, 0))
  80.     self.contents.font.color = system_color

  81.     #描繪文件編號
  82.     if index + 1 < 11
  83.     name = "DATA 0#{index}"
  84.     self.contents.draw_text(x, y, 80, 32, name)
  85.     else
  86.     name = "DATA #{index}"
  87.     self.contents.draw_text(x, y, 80, 32, name)
  88.     end

  89.     if @file_exist[index] == 1
  90.       # 描繪角色
  91.       for i in 0...@characters[index].size
  92.         first_one_pos = 160
  93.         stand_distance = 32
  94.         height_of_ground = 22
  95.         bitmap = RPG::Cache.character(@characters[index][i][0], @characters[index][i][1])
  96.         cw = bitmap.rect.width / 4
  97.         ch = bitmap.rect.height / 4
  98.         src_rect = Rect.new(0, 0, cw, ch)
  99.         cx = first_one_pos - @characters[index].size * stand_distance + i * 32 - cw / 2
  100.         self.contents.blt(cx, y+height_of_ground, bitmap, src_rect)
  101.         #cw = bitmap.rect.width / 4
  102.         #h = bitmap.rect.height / 4
  103.         #rect = Rect.new(x + 60 + (cw * index), y + 36, cw, ch)
  104.         #cx = 300 - @characters[index].size * 32 + index * 64 - cw / 2
  105.         #self.contents.blt(cx, 68 - ch, bitmap, rect)
  106.       end
  107.       # 描繪遊戲時間
  108.       hour = @total_sec[index] / 60 / 60
  109.       min = @total_sec[index] / 60 % 60
  110.       time_string = sprintf("%02d:%02d", hour,min)
  111.       
  112.       self.contents.draw_text(x+150, y + 22, 160, 32, time_string, 2)
  113.       # 描繪時間標記
  114.       time_string = @time_stamp[index].strftime("%Y/%m/%d %H:%M")
  115.       self.contents.draw_text(x+150, y + 44, 160, 32, time_string, 2)
  116.     end
  117.   end

  118.   def save_window_update
  119.     #update_cursor_rect
  120.     if Input.trigger?(Input::B)
  121.       # 演奏取消 SE
  122.       $game_system.se_play($data_system.cancel_se)
  123.       # 切換到選單畫面
  124.       $scene = Scene_Menu.new(5)
  125.       return
  126.     end
  127.     # 按下C鍵的場合下
  128.     #if Input.trigger?(Input::C)
  129.       # 命令視窗游標位置分歧
  130.     #  case self.index
  131.     #  when 0  # 返回標題畫面
  132.     #    command_to_title
  133.     #  when 1  # 退出
  134.     #    command_shutdown
  135.     #  end
  136.     #  return
  137.     #end
  138.   end
  139.   
  140.   def make_filename(file_index)
  141.     return "Save/Save#{file_index + 1}.rxdata"
  142.   end

  143.   
  144.   
  145.   def update
  146.     if Input.press?(Input::UP) and self.index == 0
  147.       return
  148.     end
  149.     if Input.press?(Input::DOWN) and self.index == $SAVE_FILE_MAX_NUM-1
  150.       return
  151.     end
  152.     super
  153.   end
  154.   
  155.   
  156. end



  157. class Window_SaveFile  < Window_Selectable
  158.   def page_row_max
  159.     return 4
  160.   end
  161. end
复制代码
dsu_plus_rewardpost_czw
作者: iisnow    时间: 2012-1-28 11:25
LZ你的脚本修改的太多的,所以我无法在你的基础上修改……
但是告诉你一点就是,
  1. load_data("Data/MapInfos.rxdata")[$game_map.map_id].name
复制代码
上述代码就可以得到存档时的地图名称(String)
你自己加吧……




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