设为首页收藏本站|繁體中文

Project1

 找回密码
 注册会员
搜索
查看: 1916|回复: 2
打印 上一主题 下一主题

[已经解决] 存档菜单修改脚本出问题

[复制链接]

Lv1.梦旅人

梦石
0
星屑
1608
在线时间
19 小时
注册时间
2015-11-8
帖子
3
跳转到指定楼层
1
发表于 2016-1-4 19:55:54 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式

加入我们,或者,欢迎回来。

您需要 登录 才可以下载或查看,没有帐号?注册会员

x
本帖最后由 VIPArcher 于 2016-1-6 09:30 编辑

RUBY 代码复制
  1. #==============================================================================
  2. # ■ VXAce-RGSS3-20 セーブ画面-改2 [Ver.1.1.0]        by Claimh
  3. #------------------------------------------------------------------------------
  4. #  セーブ画面の表示を改変します。
  5. #  (注)導入前のセーブデータは使えません
  6. #------------------------------------------------------------------------------
  7. #・ミッション名の更新
  8. # $game_party.mission = "あらすじ"
  9. #==============================================================================
  10.  
  11. #==============================================================================
  12. # ■ SaveActor  : セーブファイル用のダミーアクター
  13. #==============================================================================
  14. class SaveActor
  15.   #--------------------------------------------------------------------------
  16.   # ● 公開インスタンス変数
  17.   #--------------------------------------------------------------------------
  18.   attr_reader :name
  19.   attr_reader :level
  20.   attr_reader :hp
  21.   attr_reader :mp
  22.   attr_reader :mhp
  23.   attr_reader :mmp
  24.   attr_reader :face_name
  25.   attr_reader :face_index
  26.   #--------------------------------------------------------------------------
  27.   # ● オブジェクト初期化
  28.   #--------------------------------------------------------------------------
  29.   def initialize(actor)
  30.     @name = actor.name
  31.     @level = actor.level
  32.     @hp = actor.hp; @mhp = actor.mhp
  33.     @mp = actor.mp; [url=home.php?mod=space&uid=474067]@MMP[/url] = actor.mmp
  34.     @face_name = actor.face_name
  35.     @face_index = actor.face_index
  36.     [url=home.php?mod=space&uid=89503]@deAd[/url] = actor.dead?
  37.   end
  38.   #--------------------------------------------------------------------------
  39.   # ● 戦闘不能判定
  40.   #--------------------------------------------------------------------------
  41.   def dead?
  42.     @dead
  43.   end
  44.   #--------------------------------------------------------------------------
  45.   # ● HP の割合を取得
  46.   #--------------------------------------------------------------------------
  47.   def hp_rate
  48.     @hp.to_f / @mhp
  49.   end
  50.   #--------------------------------------------------------------------------
  51.   # ● MP の割合を取得
  52.   #--------------------------------------------------------------------------
  53.   def mp_rate
  54.     @mmp > 0 ? @mp.to_f / @mmp : 0
  55.   end
  56. end
  57.  
  58. #==============================================================================
  59. # ■ Game_Party
  60. #==============================================================================
  61. class Game_Party < Game_Unit
  62.   #--------------------------------------------------------------------------
  63.   # ● 公開インスタンス変数
  64.   #--------------------------------------------------------------------------
  65.   attr_accessor :mission                  # ミッション(ファイル画面表示用)
  66.   #--------------------------------------------------------------------------
  67.   # ● オブジェクト初期化
  68.   #--------------------------------------------------------------------------
  69.   alias initialize_save initialize
  70.   def initialize
  71.     initialize_save
  72.     @mission = ""
  73.   end
  74.   #--------------------------------------------------------------------------
  75.   # ● セーブファイル表示用の顔グラフィック画像情報
  76.   #--------------------------------------------------------------------------
  77.   def member_for_savefile
  78.     members.collect { |actor| SaveActor.new(actor) }
  79.   end
  80. end
  81.  
  82. #==============================================================================
  83. # ■ DataManager
  84. #==============================================================================
  85. class << DataManager
  86.   #--------------------------------------------------------------------------
  87.   # ● セーブヘッダの作成
  88.   #--------------------------------------------------------------------------
  89.   alias make_save_header_faces make_save_header
  90.   def make_save_header
  91.     header = make_save_header_faces
  92.     header[:map_name] = $game_map.display_name
  93.     header[:actors]   = $game_party.member_for_savefile
  94.     header[:mission]  = $game_party.mission
  95.     header[:gold]     = $game_party.gold
  96.     header
  97.   end
  98. end
  99.  
  100.  
  101. #==============================================================================
  102. # ■ Window_SaveFile
  103. #==============================================================================
  104. class Window_SaveFile < Window_Base
  105.   #--------------------------------------------------------------------------
  106.   # ● オブジェクト初期化 [再定義]
  107.   #     index : セーブファイルのインデックス
  108.   #--------------------------------------------------------------------------
  109.   def initialize(height, index)
  110.     super(0, index * height, window_width, height)
  111.     @file_index = index
  112.     refresh
  113.     @selected = false
  114.   end
  115.   #--------------------------------------------------------------------------
  116.   # ● ウィンドウ幅
  117.   #--------------------------------------------------------------------------
  118.   def window_width
  119.     return 134
  120.   end
  121.   #--------------------------------------------------------------------------
  122.   # ● リフレッシュ [再定義]
  123.   #--------------------------------------------------------------------------
  124.   def refresh
  125.     contents.clear
  126.     change_color(normal_color)
  127.     name = Vocab::File + " #{@file_index + 1}"
  128.     draw_text(4, 0, 200, line_height, name)
  129.     @name_width = text_size(name).width
  130.   end
  131. end
  132.  
  133. #==============================================================================
  134. # ■ Window_SaveFile
  135. #==============================================================================
  136. class Window_SaveInfo < Window_Selectable
  137.   #--------------------------------------------------------------------------
  138.   # ● オブジェクト初期化
  139.   #--------------------------------------------------------------------------
  140.   def initialize(x, h)
  141.     @actors = []
  142.     super(x, h, Graphics.width - x, Graphics.height - h)
  143.     self.file_index = index
  144.   end
  145.   #--------------------------------------------------------------------------
  146.   # ● 項目の高さを取得
  147.   #--------------------------------------------------------------------------
  148.   def item_height
  149.     (contents_height - (line_height * 2)) / row_num
  150.   end
  151.   #--------------------------------------------------------------------------
  152.   # ● ウィンドウ内容の高さを計算
  153.   #--------------------------------------------------------------------------
  154.   def contents_height
  155.     height - standard_padding * 2
  156.   end
  157.   #--------------------------------------------------------------------------
  158.   # ● 列数の取得
  159.   #--------------------------------------------------------------------------
  160.   def row_num
  161.     return 3
  162.   end
  163.   #--------------------------------------------------------------------------
  164.   # ● 桁数の取得
  165.   #--------------------------------------------------------------------------
  166.   def col_max
  167.     return 2
  168.   end
  169.   #--------------------------------------------------------------------------
  170.   # ● 下端パディングの更新
  171.   #--------------------------------------------------------------------------
  172.   def update_padding_bottom
  173.   end
  174.   #--------------------------------------------------------------------------
  175.   # ● 横に項目が並ぶときの空白の幅を取得
  176.   #--------------------------------------------------------------------------
  177.   def spacing
  178.     return 16
  179.   end
  180.   #--------------------------------------------------------------------------
  181.   # ● 項目数の取得
  182.   #--------------------------------------------------------------------------
  183.   def item_max
  184.     return [@actors.size, 6].min
  185.   end
  186.   #--------------------------------------------------------------------------
  187.   # ● データ参照
  188.   #--------------------------------------------------------------------------
  189.   def data(header, symbol, default)
  190.     (header.nil? or header[symbol].nil?) ? default : header[symbol]
  191.   end
  192.   #--------------------------------------------------------------------------
  193.   # ● ファイル変更
  194.   #--------------------------------------------------------------------------
  195.   def file_index=(index)
  196.     return if @file_index == index
  197.     @file_index = index
  198.     header = DataManager.load_header(@file_index)
  199.     @actors   = data(header, :actors, [])
  200.     @map_name = data(header, :map_name, "")
  201.     @playtime = data(header, :playtime_s, "00:00:00")
  202.     @mission  = data(header, :mission, "")
  203.     @gold     = data(header, :gold, 0)
  204.     create_contents
  205.     refresh
  206.   end
  207.   #--------------------------------------------------------------------------
  208.   # ● リフレッシュ
  209.   #--------------------------------------------------------------------------
  210.   def refresh
  211.     super
  212.     if @actors.empty? or @actors.nil?
  213.       draw_text(0, 0, contents_width, contents_height, "- empty -", 1)
  214.       return
  215.     end
  216.     draw_text(0, 0, contents_width, line_height, @map_name)
  217.     draw_playtime(contents_width - 128, 0, 128)
  218.     draw_text_ex(0, line_height, @mission)
  219.     draw_gold(contents_width - 128, line_height, 128)
  220.   end
  221.   #--------------------------------------------------------------------------
  222.   # ● 項目の描画
  223.   #--------------------------------------------------------------------------
  224.   def draw_item(index)
  225.     return if @actors.empty? or @actors.nil?
  226.     actor = @actors[index]
  227.     rect = item_rect(index)
  228.     rect.y += line_height * 2
  229.     draw_actor_face(actor, rect.x, rect.y, !actor.dead?)
  230.     draw_actor_name(actor,  rect.x + 100, rect.y+line_height*0)
  231.     draw_actor_level(actor, rect.x + 100, rect.y+line_height*1)
  232.     w = [124, rect.width - 100].min
  233.     draw_actor_hp(actor,   rect.x + 100, rect.y+line_height*2, w)
  234.     draw_actor_mp(actor,   rect.x + 100, rect.y+line_height*3, w)
  235.   end
  236.   #--------------------------------------------------------------------------
  237.   # ● プレイ時間の描画
  238.   #--------------------------------------------------------------------------
  239.   def draw_playtime(x, y, width)
  240.     change_color(system_color)
  241.     contents.font.size -= 8
  242.     draw_text(x, y+4, width, line_height, "TIME")
  243.     contents.font.size += 8
  244.     change_color(normal_color)
  245.     draw_text(x, y, width, line_height, @playtime, 2)
  246.   end
  247.   #--------------------------------------------------------------------------
  248.   # ● 所持金の描画
  249.   #--------------------------------------------------------------------------
  250.   def draw_gold(x, y, width)
  251.     draw_currency_value(@gold, Vocab::currency_unit, x, y, width)
  252.   end
  253.   #--------------------------------------------------------------------------
  254.   # ● 水平線の描画
  255.   #--------------------------------------------------------------------------
  256.   def draw_horz_line(y)
  257.     line_y = y + line_height / 2 - 1
  258.     contents.fill_rect(0, line_y, contents_width, 2, line_color)
  259.   end
  260.   #--------------------------------------------------------------------------
  261.   # ● 水平線の色を取得
  262.   #--------------------------------------------------------------------------
  263.   def line_color
  264.     color = normal_color
  265.     color.alpha = 48
  266.     color
  267.   end
  268. end
  269.  
  270. #==============================================================================
  271. # ■ Scene_File
  272. #==============================================================================
  273. class Scene_File < Scene_MenuBase
  274.   #--------------------------------------------------------------------------
  275.   # ● セーブファイルウィンドウの作成
  276.   #--------------------------------------------------------------------------
  277.   alias create_savefile_windows_save create_savefile_windows
  278.   def create_savefile_windows
  279.     create_savefile_windows_save
  280.     @info_window = Window_SaveInfo.new(@savefile_windows[0].window_width, @help_window.height)
  281.   end
  282.   #--------------------------------------------------------------------------
  283.   # ● 選択状態の初期化
  284.   #--------------------------------------------------------------------------
  285.   alias init_selection_save init_selection
  286.   def init_selection
  287.     init_selection_save
  288.     @info_window.file_index = @index
  289.   end
  290.   #--------------------------------------------------------------------------
  291.   # ● 画面内に表示するセーブファイル数を取得
  292.   #--------------------------------------------------------------------------
  293.   def visible_max
  294.     return @savefile_viewport.rect.height / @help_window.height
  295.   end
  296.   #--------------------------------------------------------------------------
  297.   # ● カーソルの更新
  298.   #--------------------------------------------------------------------------
  299.   alias update_cursor_save update_cursor
  300.   def update_cursor
  301.     update_cursor_save
  302.     @info_window.file_index = @index
  303.   end
  304. end

Lv1.梦旅人

梦石
0
星屑
1608
在线时间
19 小时
注册时间
2015-11-8
帖子
3
2
 楼主| 发表于 2016-1-4 19:57:30 | 只看该作者
回复 支持 反对

使用道具 举报

Lv1.梦旅人

梦石
0
星屑
1608
在线时间
19 小时
注册时间
2015-11-8
帖子
3
3
 楼主| 发表于 2016-1-4 20:04:33 | 只看该作者
我刚刚解决了
回复 支持 反对

使用道具 举报

您需要登录后才可以回帖 登录 | 注册会员

本版积分规则

拿上你的纸笔,建造一个属于你的梦想世界,加入吧。
 注册会员
找回密码

站长信箱:[email protected]|手机版|小黑屋|无图版|Project1游戏制作

GMT+8, 2024-11-17 06:24

Powered by Discuz! X3.1

© 2001-2013 Comsenz Inc.

快速回复 返回顶部 返回列表