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

Project1

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

[有事请教] 有问题想请问大佬,是有关于存档脚本的

[复制链接]

Lv2.观梦者

梦石
0
星屑
863
在线时间
297 小时
注册时间
2018-8-24
帖子
5
跳转到指定楼层
1
发表于 2024-10-13 19:39:33 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
200星屑
我有一个游戏所使用的存档脚本地图名无法显示代入变数的编辑角色名称,比如像"XXX的住所"这样,本人还在摸索脚本不知该如何修改
不知有没有大佬可以帮我解决这个困扰,感激不尽!
RUBY 代码复制
  1. =begin ************************************************************************
  2.   ◆ セーブレイアウト (リーダー详细版) Ver.1.01
  3.   ---------------------------------------------------------------------------
  4.     セーブ・ロード画面のレイアウトを変更します。
  5. =end # ************************************************************************
  6.  
  7. #-information------------------------------------------------------------------
  8. $ziifee ||= {}
  9. $ziifee[:SaveLayout] = :TypeA
  10. #------------------------------------------------------------------------------
  11. #-memo-------------------------------------------------------------------------
  12. #   各种データは一度セーブすることで表示されます。
  13. #   セーブファイルのマップ名は“表示名”を表示します。
  14. # - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
  15. #   他のセーブ関系の素材と竞合する可能性が高いので注意して使用してください。
  16. #   ファイル番号 17番 以降にセーブした场合、ロードにはこのスクリプトが必要です。
  17. #------------------------------------------------------------------------------
  18.  
  19. module ZiifSaveLayoutA
  20.   # [ 设置个所 1 ]
  21.   # ▼ ファイルリスト设置 (ファイル数は 横×縦)
  22.   File_column  = 2              # ファイル 横の数
  23.   File_row     = 8              # ファイル 縦の数
  24.   D_LineNumber = 5              # 表示行数
  25.   File_Align   = 1              # 揃え (0:左揃え, 1:中央揃え, 2:右揃え)
  26.   D_StoryList  = true          # リストにストーリー名を表示 ( true / false )
  27.   V_None       = "No Data"      # 用语 : ファイルなし
  28.  
  29.   # ▼ 情报ウィンドウ设置
  30.   WindowMargin       = 0        # ウィンドウ外周の余白   (px)
  31.   WindowLineNumber   = 9        # ウィンドウの高さ       (行数)
  32.   WindowTransparency = false    # 情报ウィンドウを透明化 ( true / false )
  33.  
  34.   # ▼ ヘルプウィンドウ设置
  35.   HelpWTransparency  = false    # ヘルプウィンドウを透明化 ( true / false )
  36.  
  37.   # ▼ セーブ确认设置
  38.   SaveConfirm          = true   # セーブ确认を行うかどうか ( true / false )
  39.   SConfirmationDefault = 0      # 初期位置 ( 0:はい / 1:いいえ )
  40.   V_SConfirmation      = "要复盖记录嘛?"   # 用语 : セーブ确认
  41.   V_SConfirmationYes   = "存盘"                     # 用语 : はい
  42.   V_SConfirmationNo    = "不要"                         # 用语 : いいえ
  43.  
  44.   # ▼ ロード确认设置
  45.   LoadConfirm          = true   # ロード确认を行うかどうか ( true / false )
  46.   LConfirmationDefault = 0      # 初期位置 ( 0:はい / 1:いいえ )
  47.   V_LConfirmation      = "要读取纪录吗?"   # 用语 : ロード确认
  48.   V_LConfirmationYes   = "读取"                     # 用语 : はい
  49.   V_LConfirmationNo    = "不要"                         # 用语 : いいえ
  50.  
  51.   # ▼ ファイル画面背景画象名 ( "" : 未使用、画象は Graphics/Pictures に)
  52.   SaveBackground = ""           # セーブ画面背景
  53.   LoadBackground = ""           # ロード画面背景
  54.  
  55.   # ※ 背景画象未使用时は通常の背景表示になります。
  56.  
  57.   # ▼ ウィンドウ表示设置 ( true : 表示する / false : 表示しない )
  58.   # ファイル情报
  59.   D_File       = true      # ファイル番号
  60.   D_Story      = true      # ストーリー名
  61.   D_Playtime   = true      # プレイ时间
  62.  
  63.   # パーティ情报
  64.   D_Area       = true      # エリア・マップ名
  65.   D_Gold       = true      # 所持金
  66.   D_AG_Line    = false     # マップ名と所持金を同じ行に表示 (マップ名は左揃え)
  67.  
  68.   # パーティ画象
  69.   D_PartyFaces = false     # パーティの顔グラフィック
  70.   D_Characters = true      # パーティの歩行グラフィック
  71.  
  72.   # リーダー情报
  73.   D_LeaderInfo = true      # リーダー情报 ( true の时以下を表示する)
  74.  
  75.   D_Face       = false      # 顔グラフィック
  76.   D_Name       = true      # 名前
  77.   D_Level      = true      # レベル
  78.   D_Class      = false      # 职业
  79.   D_Nickname   = true      # 二つ名
  80.   D_HPMP       = true      # HP・MP
  81.   D_UnderName  = :level    # 名前下の表示タイプ ( :level / :class / nil )
  82.   D_Param      = true      # 能力値 (攻撃・敏捷性など)
  83.   D_Equip      = true     # 装备   (武器・防具)
  84.  
  85.   # ※ 全てを true にすると、ウィンドウ内に入りきらないので注意!
  86. end
  87.  
  88. module ZiifManager
  89.   # [ 设置个所 2 ]
  90.   # ▼ 文本色设置 (0~255) : Color.new(赤, 緑, 青)
  91.   Story_Color    = Color.new(225, 200, 255)        # ストーリー名
  92.   Area_Color     = Color.new(225, 200, 255)          # エリア・マップ名
  93.  
  94.   # ▼ ストーリー名の设置
  95.   Story_VarID    = 60                               # ストーリー确认用 変数ID
  96.   StorySet     ||= Hash.new("")
  97.   StorySet[0]    = "序幕"     #
  98.   StorySet[1]    = "旅程的前夕"     #
  99.   StorySet[2]    = "寻找神圣的火焰"     #
  100.   StorySet[3]    = "拯救者、被拯救者"     #
  101.   StorySet[4]    = "沙之国、少女占卜师"     #  
  102.   StorySet[5]    = "决战!海贼王"     #
  103.   StorySet[6]    = "漂流至新天地"     #
  104.   StorySet[7]    = "麦卡托的天空"     #
  105.   StorySet[8]    = "被引导的之人"     #
  106.   StorySet[9]    = "手里的真相"     #
  107.   StorySet[10]    = "罪孽深重的亡者"     #
  108.   StorySet[11]    = "山丘上的夕阳"     #
  109.   StorySet[12]    = "世代传承的意志"     #
  110.   StorySet[13]    = "旅途的尽头"     #
  111.   StorySet[14]    = "某位魔法使"     #
  112.   StorySet[15]    = "痕迹"     #
  113.   StorySet[16]    = "★ 旅程的前夕"     #  
  114.   StorySet[17]    = "★ 寻找神圣的火焰"     #
  115.   StorySet[18]    = "★ 拯救者、被拯救者"     #
  116.   StorySet[19]    = "★ 沙之国、少女占卜师"     #
  117.   StorySet[20]    = "★ 决战!海贼王"     #
  118.   StorySet[21]    = "★ 漂流至新天地"     #
  119.   StorySet[22]    = "★ 麦卡托的天空"     #
  120.   StorySet[23]    = "★ 被引导的之人"     #
  121.   StorySet[24]    = "★ 手里的真相"     #
  122.   StorySet[25]    = "★ 罪孽深重的亡者"     #
  123.   StorySet[26]    = "★ 山丘上的夕阳"     #
  124.   StorySet[27]    = "★ 世代传承的意志"     #
  125.   StorySet[28]    = "★ 旅途的尽头"     #
  126.   StorySet[29]    = "★ 某位魔法使"     #
  127.   StorySet[30]    = "★ 痕迹"     #
  128.   StorySet[31]    = "超越命运"     #
  129.   StorySet[32]    = "★ 超越命运"     #
  130.   #-memo---------------------------------------------------------------------
  131.   #  StorySet[変数の値] = "ストーリー名"           # ストーリー名の设置
  132.   #--------------------------------------------------------------------------
  133.  
  134.   # ▼ エリア名の设置
  135.   AreaSet      ||= Hash.new(Hash.new(nil))
  136.   AreaSet[1]     = Hash.new(nil)                   # マップID:01 を登録
  137.   AreaSet[1][1]  = "机关人偶馆的附近"                # ⇒ リージョンID:01
  138.   AreaSet[1][2]  = "小村落附近"                  # ⇒ リージョンID:02
  139.   AreaSet[2]     = Hash.new(nil)                   # マップID:02 を登録
  140.   AreaSet[2][1]  = "暗闇的大地"                    # ⇒ リージョンID:01
  141.   #-memo---------------------------------------------------------------------
  142.   #  AreaSet[マップID] = Hash.new(nil)             # フィールドマップIDの登録
  143.   #  AreaSet[マップID][リージョンID] = "エリア名"  # リージョンエリア名の设置
  144.   #  ※ 変数の値が设置されていない场合は、现在のマップ名を表示します。
  145.   #--------------------------------------------------------------------------
  146. end
  147.  
  148. #******************************************************************************
  149. # ▼ モジュール部
  150. #******************************************************************************
  151.  
  152. #==============================================================================
  153. # ■ ZiifSaveLayoutA
  154. #==============================================================================
  155.  
  156. module ZiifSaveLayoutA
  157.   #--------------------------------------------------------------------------
  158.   # ● セーブファイル数の取得
  159.   #--------------------------------------------------------------------------
  160.   def self.savefile_max
  161.     File_column * File_row
  162.   end
  163.   #--------------------------------------------------------------------------
  164.   # ● セーブ背景画象があるかどうか
  165.   #--------------------------------------------------------------------------
  166.   def self.save_background?
  167.     SaveBackground != ""
  168.   end
  169.   #--------------------------------------------------------------------------
  170.   # ● セーブ背景ビットマップの取得
  171.   #--------------------------------------------------------------------------
  172.   def self.save_background_bitmap
  173.     Cache.picture(SaveBackground)
  174.   end
  175.   #--------------------------------------------------------------------------
  176.   # ● ロード背景画象があるかどうか
  177.   #--------------------------------------------------------------------------
  178.   def self.load_background?
  179.     LoadBackground != ""
  180.   end
  181.   #--------------------------------------------------------------------------
  182.   # ● ロード背景ビットマップの取得
  183.   #--------------------------------------------------------------------------
  184.   def self.load_background_bitmap
  185.     Cache.picture(LoadBackground)
  186.   end
  187. end
  188.  
  189. #==============================================================================
  190. # ■ ZiifManager
  191. #==============================================================================
  192.  
  193. module ZiifManager
  194.   #--------------------------------------------------------------------------
  195.   # ● ストーリー名の取得
  196.   #--------------------------------------------------------------------------
  197.   def self.story_name(story_id)
  198.     StorySet[story_id]
  199.   end
  200.   #--------------------------------------------------------------------------
  201.   # ● エリア名の取得
  202.   #--------------------------------------------------------------------------
  203.   def self.area_name(map_id, region_id = nil)
  204.     AreaSet[map_id][region_id] || map_name(map_id)
  205.   end
  206.   #--------------------------------------------------------------------------
  207.   # ● マップ名の取得
  208.   #--------------------------------------------------------------------------
  209.   def self.map_name(map_id)
  210.     @map_name_cache ||= {}
  211.     unless @map_name_cache[map_id]
  212.       map = load_data(sprintf("Data/Map%03d.rvdata2", map_id)) rescue nil
  213.       @map_name_cache[map_id] = (map ? map.display_name : "No MapData")
  214.     end
  215.     @map_name_cache[map_id]
  216.   end
  217. end
  218.  
  219. #==============================================================================
  220. # ■ ZiifManager::DrawingModule
  221. #==============================================================================
  222.  
  223. module ZiifManager::DrawingModule
  224.   #--------------------------------------------------------------------------
  225.   # ● ストーリー名文本色の取得
  226.   #--------------------------------------------------------------------------
  227.   def story_color
  228.     ZiifManager::Story_Color
  229.   end
  230.   #--------------------------------------------------------------------------
  231.   # ● エリア名文本色の取得
  232.   #--------------------------------------------------------------------------
  233.   def area_color
  234.     ZiifManager::Area_Color
  235.   end
  236.   #--------------------------------------------------------------------------
  237.   # ● ファイル番号の描画
  238.   #--------------------------------------------------------------------------
  239.   def draw_file_number(index, x, y, enabled = true, width = 120, align = 0)
  240.     change_color(normal_color, enabled)
  241.     draw_text(x, y, width, line_height, Vocab::File + " #{index + 1}", align)
  242.   end
  243.   #--------------------------------------------------------------------------
  244.   # ● ストーリー名の描画
  245.   #--------------------------------------------------------------------------
  246.   def draw_story_name(story_id, x, y, width = 256, align = 0)
  247.     change_color(story_color)
  248.     text = ZiifManager.story_name(story_id)
  249.     draw_text(x, y, width, line_height, text, align)
  250.   end
  251.   #--------------------------------------------------------------------------
  252.   # ● エリア名の描画
  253.   #--------------------------------------------------------------------------
  254.   def draw_area_map(map_id, region_id, x, y, width = 256, align = 0)
  255.     change_color(area_color)
  256.     text = ZiifManager.area_name(map_id, region_id)
  257.     draw_text(x, y, width, line_height, text, align)
  258.   end
  259. end
  260.  
  261. #==============================================================================
  262. # ■ DataManager
  263. #==============================================================================
  264.  
  265. class << DataManager
  266.   #--------------------------------------------------------------------------
  267.   # ☆ セーブファイルの最大数 (再定义)
  268.   #--------------------------------------------------------------------------
  269.   def savefile_max
  270.     return ZiifSaveLayoutA.savefile_max
  271.   end
  272.   #--------------------------------------------------------------------------
  273.   # ● セーブヘッダの作成
  274.   #--------------------------------------------------------------------------
  275.   alias :ziif_save_layout_01_make_save_header :make_save_header
  276.   def make_save_header
  277.     header = ziif_save_layout_01_make_save_header
  278.     header[:story_id]  = $game_system.ziif_story_id
  279.     header[:map_id]    = $game_map.map_id
  280.     header[:region_id] = $game_player.region_id
  281.     header[:gold]      = $game_party.gold
  282.     header[:faces]     = $game_party.ziif_faces_for_savefile
  283.     header[:leader]    = $game_party.ziif_leader_for_savefile
  284.     header
  285.   end
  286. end
  287.  
  288. #******************************************************************************
  289. # ▼ ゲームオブジェクト部
  290. #******************************************************************************
  291.  
  292. #==============================================================================
  293. # ■ Game_System
  294. #==============================================================================
  295.  
  296. class Game_System
  297.   #--------------------------------------------------------------------------
  298.   # ● ストーリーIDの取得
  299.   #--------------------------------------------------------------------------
  300.   def ziif_story_id
  301.     $game_variables[ZiifManager::Story_VarID]
  302.   end
  303. end
  304.  
  305. #==============================================================================
  306. # ■ Game_Party
  307. #==============================================================================
  308.  
  309. class Game_Party
  310.   #--------------------------------------------------------------------------
  311.   # ● セーブファイル表示用の顔グラフィック画象情报
  312.   #--------------------------------------------------------------------------
  313.   def ziif_faces_for_savefile
  314.     battle_members.collect do |actor|
  315.       [actor.face_name, actor.face_index]
  316.     end
  317.   end
  318.   #--------------------------------------------------------------------------
  319.   # ● セーブファイル表示用のリーダー情报
  320.   #--------------------------------------------------------------------------
  321.   def ziif_leader_for_savefile
  322.     return leader
  323.   end
  324. end
  325.  
  326. #******************************************************************************
  327. # ▼ ウィンドウ部
  328. #******************************************************************************
  329.  
  330. #==============================================================================
  331. # ■ Window_ZiifFileList
  332. #------------------------------------------------------------------------------
  333. #  ファイル画面で、セーブファイルの一覧を表示するウィンドウです。
  334. #==============================================================================
  335.  
  336. class Window_ZiifFileList < Window_Selectable
  337.   #--------------------------------------------------------------------------
  338.   # ● Mix-In
  339.   #--------------------------------------------------------------------------
  340.   include ZiifManager::DrawingModule      # 描画机能追加モジュール
  341.   #--------------------------------------------------------------------------
  342.   # ● オブジェクト初期化
  343.   #--------------------------------------------------------------------------
  344.   def initialize
  345.     rect = window_rect
  346.     super(rect.x, rect.y, rect.width, rect.height)
  347.     self.opacity = 0
  348.     refresh
  349.     activate
  350.   end
  351.   #--------------------------------------------------------------------------
  352.   # ● ウィンドウの表示范囲を取得
  353.   #--------------------------------------------------------------------------
  354.   def window_rect
  355.     rect = Rect.new
  356.     rect.x      = 4
  357.     rect.y      = 48
  358.     rect.width  = Graphics.width-8
  359.     rect.height = fitting_height(ZiifSaveLayoutA::D_LineNumber)
  360.     rect
  361.   end
  362.   #--------------------------------------------------------------------------
  363.   # ● 桁数の取得
  364.   #--------------------------------------------------------------------------
  365.   def col_max
  366.     ZiifSaveLayoutA::File_column
  367.   end
  368.   #--------------------------------------------------------------------------
  369.   # ● 项目数の取得
  370.   #--------------------------------------------------------------------------
  371.   def item_max
  372.     DataManager.savefile_max
  373.   end
  374.   #--------------------------------------------------------------------------
  375.   # ● アライメントの取得
  376.   #--------------------------------------------------------------------------
  377.   def alignment
  378.     return ZiifSaveLayoutA::File_Align
  379.   end
  380.   #--------------------------------------------------------------------------
  381.   # ● ファイル名の描画判定
  382.   #--------------------------------------------------------------------------
  383.   def file_number_draw?
  384.     !ZiifSaveLayoutA::D_StoryList
  385.   end
  386.   #--------------------------------------------------------------------------
  387.   # ● ストーリー名の描画判定
  388.   #--------------------------------------------------------------------------
  389.   def story_name_draw?
  390.     ZiifSaveLayoutA::D_StoryList
  391.   end
  392.   #--------------------------------------------------------------------------
  393.   # ● セーブヘッダの取得
  394.   #--------------------------------------------------------------------------
  395.   def header(index)
  396.     DataManager.load_header(index)
  397.   end
  398.   #--------------------------------------------------------------------------
  399.   # ● セーブファイルが存在しているかどうか
  400.   #--------------------------------------------------------------------------
  401.   def enable?(index)
  402.     header(index)
  403.   end
  404.   #--------------------------------------------------------------------------
  405.   # ● 决定ボタンが押されたときの処理 (决定サウンドを鸣らさない)
  406.   #--------------------------------------------------------------------------
  407.   def process_ok
  408.     if current_item_enabled?
  409.       Input.update
  410.       deactivate
  411.       call_ok_handler
  412.     else
  413.       Sound.play_buzzer
  414.     end
  415.   end
  416.   #--------------------------------------------------------------------------
  417.   # ● 选択项目の有効状态を取得
  418.   #--------------------------------------------------------------------------
  419.   def current_item_enabled?
  420.     !SceneManager.scene_is?(Scene_Load) || enable?(self.index)
  421.   end
  422.   #--------------------------------------------------------------------------
  423.   # ● 项目の描画
  424.   #--------------------------------------------------------------------------
  425.   def draw_item(index)
  426.     rect  = item_rect(index)
  427.     # ファイル番号を描画
  428.     if file_number_draw?
  429.       draw_file_number(index,rect.x,rect.y,enable?(index),rect.width,alignment)
  430.     end
  431.     # ストーリー名を描画
  432.     if story_name_draw?
  433.       header = header(index)
  434.       if header && header[:story_id]
  435.         draw_story_name(header[:story_id],rect.x,rect.y,rect.width,alignment)
  436.       else
  437.         change_color(normal_color, false)
  438.         draw_text(rect, ZiifSaveLayoutA::V_None, alignment)
  439.       end
  440.     end
  441.   end
  442. end
  443.  
  444. #==============================================================================
  445. # ■ Window_ZiifSaveFile
  446. #------------------------------------------------------------------------------
  447. #  ファイル画面でファイル情报を表示するウィンドウです。
  448. #==============================================================================
  449.  
  450. class Window_ZiifSaveFile < Window_Base
  451.   #--------------------------------------------------------------------------
  452.   # ● Mix-In
  453.   #--------------------------------------------------------------------------
  454.   include ZiifManager::DrawingModule      # 描画机能追加モジュール
  455.   #--------------------------------------------------------------------------
  456.   # ● 公开インスタンス変数
  457.   #--------------------------------------------------------------------------
  458.   attr_reader   :selected                 # 选択状态
  459.   attr_reader   :header                   # セーブヘッダ
  460.   #--------------------------------------------------------------------------
  461.   # ● オブジェクト初期化
  462.   #     index : セーブファイルのインデックス
  463.   #--------------------------------------------------------------------------
  464.   def initialize(dummy_height, index)
  465.     rect = window_rect
  466.     super(rect.x, rect.y, rect.width, rect.height)
  467.     self.opacity = 0 if ZiifSaveLayoutA::WindowTransparency
  468.     @file_index = index
  469.     clear_header
  470.     refresh
  471.     self.visible = false
  472.     @selected = false
  473.   end
  474.   #--------------------------------------------------------------------------
  475.   # ● ウィンドウの表示范囲を取得
  476.   #--------------------------------------------------------------------------
  477.   def window_rect
  478.     rect = Rect.new
  479.     rect.x      = ZiifSaveLayoutA::WindowMargin
  480.     rect.y      = Graphics.height - ZiifSaveLayoutA::WindowMargin
  481.     rect.width  = Graphics.width - ZiifSaveLayoutA::WindowMargin * 2
  482.     rect.height = fitting_height(ZiifSaveLayoutA::WindowLineNumber)
  483.     rect.y     -= rect.height
  484.     rect
  485.   end
  486.   #--------------------------------------------------------------------------
  487.   # ● 选択状态の设置
  488.   #--------------------------------------------------------------------------
  489.   def selected=(selected)
  490.     @selected = selected
  491.     update_select
  492.   end
  493.   #--------------------------------------------------------------------------
  494.   # ● 选択状态の更新
  495.   #--------------------------------------------------------------------------
  496.   def update_select
  497.     self.visible = self.selected
  498.     update
  499.   end
  500.   #--------------------------------------------------------------------------
  501.   # ● セーブヘッダのロード
  502.   #--------------------------------------------------------------------------
  503.   def load_header
  504.     @header = DataManager.load_header(@file_index)
  505.   end
  506.   #--------------------------------------------------------------------------
  507.   # ● セーブヘッダのクリア
  508.   #--------------------------------------------------------------------------
  509.   def clear_header
  510.     @header = nil
  511.   end
  512.   #--------------------------------------------------------------------------
  513.   # ● ファイル情报があるかどうか
  514.   #--------------------------------------------------------------------------
  515.   def header?(symbol)
  516.     @header && @header[symbol]
  517.   end
  518.   #--------------------------------------------------------------------------
  519.   # ● リフレッシュ
  520.   #--------------------------------------------------------------------------
  521.   def refresh
  522.     contents.clear
  523.     load_header
  524.     draw_file_contents
  525.     draw_no_file unless @header
  526.     clear_header
  527.   end
  528.   #--------------------------------------------------------------------------
  529.   # ○ ファイル内容の描画 (素材下部にて再定义)
  530.   #--------------------------------------------------------------------------
  531.   def draw_file_contents
  532.   end
  533.   #--------------------------------------------------------------------------
  534.   # ● ファイルなしの描画
  535.   #--------------------------------------------------------------------------
  536.   def draw_no_file
  537.     rect   = Rect.new(0, 0, contents.width, line_height)
  538.     rect.y = (contents.height - rect.height) / 2
  539.     change_color(normal_color, false)
  540.     draw_text(rect, ZiifSaveLayoutA::V_None, 1)
  541.   end
  542. end
  543.  
  544. #==============================================================================
  545. # ■ Window_ZiifFileConfirmation
  546. #------------------------------------------------------------------------------
  547. #  ファイル画面でセーブ・ロード确认コマンドを表示するウィンドウです。
  548. #==============================================================================
  549.  
  550. class Window_ZiifFileConfirmation < Window_Command
  551.   #--------------------------------------------------------------------------
  552.   # ● オブジェクト初期化
  553.   #--------------------------------------------------------------------------
  554.   def initialize
  555.     super(window_x, window_y)
  556.     self.z        = 200
  557.     self.openness = 0
  558.     deactivate
  559.   end
  560.   #--------------------------------------------------------------------------
  561.   # ● ウィンドウ X 坐标 の取得
  562.   #--------------------------------------------------------------------------
  563.   def window_x
  564.     return (Graphics.width-window_width) / 2
  565.   end
  566.   #--------------------------------------------------------------------------
  567.   # ● ウィンドウ Y 坐标 の取得
  568.   #--------------------------------------------------------------------------
  569.   def window_y
  570.     return (Graphics.height-window_height) / 2
  571.   end
  572.   #--------------------------------------------------------------------------
  573.   # ● ウィンドウ幅の取得
  574.   #--------------------------------------------------------------------------
  575.   def window_width
  576.     return 128
  577.   end
  578.   #--------------------------------------------------------------------------
  579.   # ● 表示行数の取得
  580.   #--------------------------------------------------------------------------
  581.   def visible_line_number
  582.     return 2
  583.   end
  584.   #--------------------------------------------------------------------------
  585.   # ● デフォルト位置を选択
  586.   #--------------------------------------------------------------------------
  587.   def select_default
  588.   end
  589. end
  590.  
  591. #==============================================================================
  592. # ■ Window_ZiifSaveConfirmation
  593. #------------------------------------------------------------------------------
  594. #  セーブ画面で确认コマンドを表示するウィンドウです。
  595. #==============================================================================
  596.  
  597. class Window_ZiifSaveConfirmation < Window_ZiifFileConfirmation
  598.   #--------------------------------------------------------------------------
  599.   # ● コマンドリストの作成
  600.   #--------------------------------------------------------------------------
  601.   def make_command_list
  602.     add_command(ZiifSaveLayoutA::V_SConfirmationYes, :save)
  603.     add_command(ZiifSaveLayoutA::V_SConfirmationNo, :cancel)
  604.   end
  605.   #--------------------------------------------------------------------------
  606.   # ● ヘルプテキスト更新
  607.   #--------------------------------------------------------------------------
  608.   def update_help
  609.     @help_window.set_text(ZiifSaveLayoutA::V_SConfirmation)
  610.   end
  611.   #--------------------------------------------------------------------------
  612.   # ● デフォルト位置を选択
  613.   #--------------------------------------------------------------------------
  614.   def select_default
  615.     select(ZiifSaveLayoutA::SConfirmationDefault)
  616.   end
  617.   #--------------------------------------------------------------------------
  618.   # ● 决定ボタンが押されたときの処理 (セーブ时サウンドを鸣らさない)
  619.   #--------------------------------------------------------------------------
  620.   def process_ok
  621.     return super if current_symbol != :save
  622.     if current_item_enabled?
  623.       Input.update
  624.       deactivate
  625.       call_ok_handler
  626.     else
  627.       Sound.play_buzzer
  628.     end
  629.   end
  630. end
  631.  
  632. #==============================================================================
  633. # ■ Window_ZiifLoadConfirmation
  634. #------------------------------------------------------------------------------
  635. #  ロード画面で确认コマンドを表示するウィンドウです。
  636. #==============================================================================
  637.  
  638. class Window_ZiifLoadConfirmation < Window_ZiifFileConfirmation
  639.   #--------------------------------------------------------------------------
  640.   # ● コマンドリストの作成
  641.   #--------------------------------------------------------------------------
  642.   def make_command_list
  643.     add_command(ZiifSaveLayoutA::V_LConfirmationYes, :load)
  644.     add_command(ZiifSaveLayoutA::V_LConfirmationNo, :cancel)
  645.   end
  646.   #--------------------------------------------------------------------------
  647.   # ● ヘルプテキスト更新
  648.   #--------------------------------------------------------------------------
  649.   def update_help
  650.     @help_window.set_text(ZiifSaveLayoutA::V_LConfirmation)
  651.   end
  652.   #--------------------------------------------------------------------------
  653.   # ● デフォルト位置を选択
  654.   #--------------------------------------------------------------------------
  655.   def select_default
  656.     select(ZiifSaveLayoutA::LConfirmationDefault)
  657.   end
  658.   #--------------------------------------------------------------------------
  659.   # ● 决定ボタンが押されたときの処理 (ロード时サウンドを鸣らさない)
  660.   #--------------------------------------------------------------------------
  661.   def process_ok
  662.     return super if current_symbol != :load
  663.     if current_item_enabled?
  664.       Input.update
  665.       deactivate
  666.       call_ok_handler
  667.     else
  668.       Sound.play_buzzer
  669.     end
  670.   end
  671. end
  672.  
  673. #******************************************************************************
  674. # ▼ シーン部
  675. #******************************************************************************
  676.  
  677. #==============================================================================
  678. # ■ Scene_File
  679. #==============================================================================
  680.  
  681. class Scene_File
  682.   #--------------------------------------------------------------------------
  683.   # ● 背景画象があるかどうか
  684.   #--------------------------------------------------------------------------
  685.   def ziif_file_background?
  686.     return false
  687.   end
  688.   #--------------------------------------------------------------------------
  689.   # ● 背景ビットマップの取得
  690.   #--------------------------------------------------------------------------
  691.   def ziif_file_background_bitmap
  692.     SceneManager.background_bitmap
  693.   end
  694.   #--------------------------------------------------------------------------
  695.   # ● セーブ・ロードの确认をするかどうか
  696.   #--------------------------------------------------------------------------
  697.   def file_confirm?
  698.     return false
  699.   end
  700.   #--------------------------------------------------------------------------
  701.   # ● セーブ・ロード确认ウィンドウの取得
  702.   #--------------------------------------------------------------------------
  703.   def confirmation_window
  704.     return Window_ZiifFileConfirmation
  705.   end
  706.   #--------------------------------------------------------------------------
  707.   # ● 背景の作成
  708.   #--------------------------------------------------------------------------
  709.   alias :ziif_save_layout_01_create_background :create_background
  710.   def create_background
  711.     if ziif_file_background?
  712.       create_ziif_file_background
  713.     else
  714.       ziif_save_layout_01_create_background
  715.     end
  716.   end
  717.   #--------------------------------------------------------------------------
  718.   # ● ファイル画面の背景の作成
  719.   #--------------------------------------------------------------------------
  720.   def create_ziif_file_background
  721.     @background_sprite = Sprite.new
  722.     @background_sprite.bitmap = ziif_file_background_bitmap
  723.   end
  724.   #--------------------------------------------------------------------------
  725.   # ● ヘルプウィンドウの作成
  726.   #--------------------------------------------------------------------------
  727.   alias :ziif_save_layout_01_create_help_window :create_help_window
  728.   def create_help_window
  729.     ziif_save_layout_01_create_help_window
  730.     @help_window.opacity = 0 if ZiifSaveLayoutA::HelpWTransparency
  731.   end
  732.   #--------------------------------------------------------------------------
  733.   # ☆ セーブファイルウィンドウの作成 (再定义)
  734.   #--------------------------------------------------------------------------
  735.   def create_savefile_windows
  736.     create_filelist_window
  737.     create_savefile_windows_sub
  738.     create_confirmation_window
  739.   end
  740.   #--------------------------------------------------------------------------
  741.   # ● ファイルリストウィンドウの作成
  742.   #--------------------------------------------------------------------------
  743.   def create_filelist_window
  744.     @filelist_window = Window_ZiifFileList.new
  745.     @filelist_window.set_handler(:ok,     method(:on_filelist_ok))
  746.     @filelist_window.set_handler(:cancel, method(:return_scene))
  747.   end
  748.   #--------------------------------------------------------------------------
  749.   # ● セーブファイルウィンドウの作成 (サブ定义)
  750.   #--------------------------------------------------------------------------
  751.   def create_savefile_windows_sub
  752.     @savefile_windows = Array.new(item_max) do |i|
  753.       Window_ZiifSaveFile.new(0, i)
  754.     end
  755.   end
  756.   #--------------------------------------------------------------------------
  757.   # ● セーブ・ロード确认ウィンドウの作成
  758.   #--------------------------------------------------------------------------
  759.   def create_confirmation_window
  760.     @confirmation_window = confirmation_window.new
  761.     @confirmation_window.help_window = @help_window
  762.     @confirmation_window.set_handler(:ok,     method(:on_confirmation_ok))
  763.     @confirmation_window.set_handler(:cancel, method(:on_confirmation_cancel))
  764.     @confirmation_window.select_default
  765.   end
  766.   #--------------------------------------------------------------------------
  767.   # ☆ 选択状态の初期化 (再定义)
  768.   #--------------------------------------------------------------------------
  769.   def init_selection
  770.     @filelist_window.select(first_savefile_index)
  771.     @savefile_windows[index].selected = true
  772.     @last_index = index
  773.     set_file_index
  774.   end
  775.   #--------------------------------------------------------------------------
  776.   # ☆ 现在のインデックスの取得 (再定义)
  777.   #--------------------------------------------------------------------------
  778.   def index
  779.     @filelist_window.index
  780.   end
  781.   #--------------------------------------------------------------------------
  782.   # ● インデックス设置
  783.   #--------------------------------------------------------------------------
  784.   def set_file_index
  785.     @index = index
  786.   end
  787.   #--------------------------------------------------------------------------
  788.   # ☆ セーブファイル选択の更新 (再定义)
  789.   #--------------------------------------------------------------------------
  790.   def update_savefile_selection
  791.     if index != @last_index
  792.       set_file_index
  793.       @savefile_windows[@last_index].selected = false
  794.       @savefile_windows[index].selected = true
  795.       @last_index = index
  796.     end
  797.   end
  798.   #--------------------------------------------------------------------------
  799.   # ● ファイルリスト[决定]
  800.   #--------------------------------------------------------------------------
  801.   def on_filelist_ok
  802.     set_file_index
  803.     if file_confirm?
  804.       Sound.play_ok
  805.       activate_confirmation_window
  806.     else
  807.       on_savefile_ok
  808.     end
  809.   end
  810.   #--------------------------------------------------------------------------
  811.   # ● 确认ウィンドウをアクティブ化
  812.   #--------------------------------------------------------------------------
  813.   def activate_confirmation_window
  814.     @confirmation_window.activate
  815.     @confirmation_window.open
  816.   end
  817.   #--------------------------------------------------------------------------
  818.   # ● セーブ・ロード确认[决定]
  819.   #--------------------------------------------------------------------------
  820.   def on_confirmation_ok
  821.     on_savefile_ok
  822.   end
  823.   #--------------------------------------------------------------------------
  824.   # ● セーブ・ロード确认[キャンセル]
  825.   #--------------------------------------------------------------------------
  826.   def on_confirmation_cancel
  827.     @help_window.set_text(help_window_text)
  828.     @confirmation_window.select_default
  829.     @confirmation_window.close
  830.     @filelist_window.activate
  831.   end
  832. end
  833.  
  834. #==============================================================================
  835. # ■ Scene_Save
  836. #==============================================================================
  837.  
  838. class Scene_Save
  839.   #--------------------------------------------------------------------------
  840.   # ● 背景画象があるかどうか
  841.   #--------------------------------------------------------------------------
  842.   def ziif_file_background?
  843.     ZiifSaveLayoutA.save_background?
  844.   end
  845.   #--------------------------------------------------------------------------
  846.   # ● 背景ビットマップの取得
  847.   #--------------------------------------------------------------------------
  848.   def ziif_file_background_bitmap
  849.     ZiifSaveLayoutA.save_background_bitmap
  850.   end
  851.   #--------------------------------------------------------------------------
  852.   # ● セーブ・ロードの确认をするかどうか
  853.   #--------------------------------------------------------------------------
  854.   def file_confirm?
  855.     ZiifSaveLayoutA::SaveConfirm
  856.   end
  857.   #--------------------------------------------------------------------------
  858.   # ● セーブ・ロード确认ウィンドウの取得
  859.   #--------------------------------------------------------------------------
  860.   def confirmation_window
  861.     return Window_ZiifSaveConfirmation
  862.   end
  863.   #--------------------------------------------------------------------------
  864.   # ● セーブファイルの决定
  865.   #--------------------------------------------------------------------------
  866.   alias :ziif_save_layout_01_save_on_savefile_ok :on_savefile_ok
  867.   def on_savefile_ok
  868.     ziif_save_layout_01_save_on_savefile_ok
  869.     @confirmation_window.close
  870.     @filelist_window.activate
  871.   end
  872. end
  873.  
  874. #==============================================================================
  875. # ■ Scene_Load
  876. #==============================================================================
  877.  
  878. class Scene_Load
  879.   #--------------------------------------------------------------------------
  880.   # ● 背景画象があるかどうか
  881.   #--------------------------------------------------------------------------
  882.   def ziif_file_background?
  883.     ZiifSaveLayoutA.load_background?
  884.   end
  885.   #--------------------------------------------------------------------------
  886.   # ● 背景ビットマップの取得
  887.   #--------------------------------------------------------------------------
  888.   def ziif_file_background_bitmap
  889.     ZiifSaveLayoutA.load_background_bitmap
  890.   end
  891.   #--------------------------------------------------------------------------
  892.   # ● セーブ・ロードの确认をするかどうか
  893.   #--------------------------------------------------------------------------
  894.   def file_confirm?
  895.     ZiifSaveLayoutA::LoadConfirm
  896.   end
  897.   #--------------------------------------------------------------------------
  898.   # ● セーブ・ロード确认ウィンドウの取得
  899.   #--------------------------------------------------------------------------
  900.   def confirmation_window
  901.     return Window_ZiifLoadConfirmation
  902.   end
  903.   #--------------------------------------------------------------------------
  904.   # ● セーブファイルの决定
  905.   #--------------------------------------------------------------------------
  906.   alias :ziif_save_layout_01_load_on_savefile_ok :on_savefile_ok
  907.   def on_savefile_ok
  908.     ziif_save_layout_01_load_on_savefile_ok
  909.     @confirmation_window.close
  910.     @filelist_window.activate
  911.   end
  912. end
  913.  
  914. #******************************************************************************
  915. # ▼ ラインヘルプ机能部
  916. #******************************************************************************
  917. #-memo-------------------------------------------------------------------------
  918. #   ラインヘルプウィンドウスクリプトを导入する场合に使用します。
  919. #------------------------------------------------------------------------------
  920.  
  921. #==============================================================================
  922. # ■ Window_ZiifFileList
  923. #==============================================================================
  924.  
  925. class Window_ZiifFileList < Window_Selectable
  926.   #--------------------------------------------------------------------------
  927.   # ● ウィンドウの表示范囲を取得
  928.   #--------------------------------------------------------------------------
  929.   alias :ziif_line_help_file_window_rect :window_rect
  930.   def window_rect
  931.     rect    = ziif_line_help_file_window_rect
  932.     rect.y -= 6 if $ziifee[:LineHelp]
  933.     rect
  934.   end
  935. end
  936.  
  937. #==============================================================================
  938. # ■ Scene_File
  939. #==============================================================================
  940.  
  941. class Scene_File
  942.   #--------------------------------------------------------------------------
  943.   # ● ヘルプウィンドウの作成
  944.   #--------------------------------------------------------------------------
  945.   alias :ziif_line_help_file_create_help_window :create_help_window
  946.   def create_help_window
  947.     return ziif_line_help_file_create_help_window unless $ziifee[:LineHelp]
  948.     @help_window = Window_ZiifLineHelp.new(1)
  949.     @help_window.set_text(help_window_text)
  950.   end
  951. end
  952.  
  953. #******************************************************************************
  954. # ▼ ファイル情报描画部
  955. #******************************************************************************
  956. #-memo-------------------------------------------------------------------------
  957. #   ここから下を削除して、Window_ZiifSaveFile に直接记述する事もできます。
  958. #------------------------------------------------------------------------------
  959.  
  960. #==============================================================================
  961. # ■ Window_ZiifSaveFile
  962. #==============================================================================
  963.  
  964. class Window_ZiifSaveFile
  965.   #--------------------------------------------------------------------------
  966.   # ● ファイル内容の描画
  967.   #--------------------------------------------------------------------------
  968.   def draw_file_contents
  969.     draw_file_info
  970.     draw_party_info
  971.     draw_leader_info
  972.     draw_party_faces
  973.     draw_party_characters
  974.   end
  975.   #--------------------------------------------------------------------------
  976.   # ● ファイル情报の描画
  977.   #--------------------------------------------------------------------------
  978.   def draw_file_info
  979.     draw_x = 4
  980.     # ファイル番号
  981.     if ZiifSaveLayoutA::D_File
  982.       draw_file_number(@file_index, draw_x, 0)
  983.       draw_x += 128
  984.     end
  985.     # ストーリー名
  986.     if ZiifSaveLayoutA::D_Story && header?(:story_id)
  987.       draw_story_name(@header[:story_id], draw_x, 0)
  988.     end
  989.     # プレイタイム
  990.     if ZiifSaveLayoutA::D_Playtime && header?(:playtime_s)
  991.       change_color(normal_color)
  992.       draw_text(4, 0, contents.width - 8, line_height, @header[:playtime_s], 2)
  993.     end
  994.   end
  995.   #--------------------------------------------------------------------------
  996.   # ● 通货単位の取得
  997.   #--------------------------------------------------------------------------
  998.   def currency_unit
  999.     Vocab::currency_unit
  1000.   end
  1001.   #--------------------------------------------------------------------------
  1002.   # ● 所持金・マップ情报の描画
  1003.   #--------------------------------------------------------------------------
  1004.   def draw_party_info
  1005.     draw_y = contents.height - line_height
  1006.     # エリア・マップ名
  1007.     if ZiifSaveLayoutA::D_Area && header?(:map_id)
  1008.       map_align = (ZiifSaveLayoutA::D_AG_Line ? 0 : 2)
  1009.       map_id    = @header[:map_id]
  1010.       region_id = @header[:region_id]
  1011.       draw_area_map(map_id, region_id, 4, draw_y, contents.width-8, map_align)
  1012.       draw_y -= line_height unless ZiifSaveLayoutA::D_AG_Line
  1013.     end
  1014.     # 所持金
  1015.     if ZiifSaveLayoutA::D_Gold && header?(:gold)
  1016.       gold = @header[:gold]
  1017.       draw_currency_value(gold, currency_unit, 4, draw_y, contents.width - 8)
  1018.     end
  1019.   end
  1020.   #--------------------------------------------------------------------------
  1021.   # ● ファイル情报を描画したかどうか
  1022.   #--------------------------------------------------------------------------
  1023.   def file_info_draw?
  1024.     ZiifSaveLayoutA::D_File || ZiifSaveLayoutA::D_Story ||
  1025.     ZiifSaveLayoutA::D_Playtime
  1026.   end
  1027.   #--------------------------------------------------------------------------
  1028.   # ● リーダー情报の描画
  1029.   #--------------------------------------------------------------------------
  1030.   def draw_leader_info
  1031.     return 0, 0 unless ZiifSaveLayoutA::D_LeaderInfo && header?(:leader)
  1032.     actor  = @header[:leader]
  1033.     draw_x = 4
  1034.     draw_y = (file_info_draw? ? line_height : 0)
  1035.     # 顔グラフィック
  1036.     if ZiifSaveLayoutA::D_Face
  1037.       draw_actor_face(actor, draw_x, draw_y)
  1038.       draw_x += 100
  1039.     end
  1040.     bw = draw_leader_base_info(actor, draw_x, draw_y + line_height)
  1041.     nw = draw_leader_name_info(actor, draw_x, draw_y) - draw_x
  1042.     # 详细情报の描画位置调整
  1043.     if nw <= bw && bw > 0
  1044.       draw_x += bw + 8
  1045.     elsif nw > 0 && bw == 0
  1046.       draw_y += line_height
  1047.     elsif nw > bw && bw > 0
  1048.       draw_x += bw + 8
  1049.       draw_y += line_height
  1050.     end
  1051.     # 能力値
  1052.     param_width = contents.width - draw_x
  1053.     line = draw_leader_parameters(actor, draw_x, draw_y, param_width)
  1054.     draw_y += line * line_height
  1055.     # 装备
  1056.     line = draw_leader_equipments(actor, draw_x + 16, draw_y)
  1057.     draw_y += line * line_height
  1058.     return draw_x, draw_y
  1059.   end
  1060.   #--------------------------------------------------------------------------
  1061.   # ● リーダーの基本情报の描画 (最大描画幅を返す)
  1062.   #--------------------------------------------------------------------------
  1063.   def draw_leader_base_info(actor, x, y)
  1064.     draw_width = 0
  1065.     # レベル (名前の下に表示する场合)
  1066.     if ZiifSaveLayoutA::D_Level && ZiifSaveLayoutA::D_UnderName == :level
  1067.       draw_actor_level(actor, x, y)
  1068.       draw_width = [draw_width, 96].max
  1069.     end
  1070.     # 职业 (名前の下に表示する场合)
  1071.     if ZiifSaveLayoutA::D_Class && ZiifSaveLayoutA::D_UnderName == :class
  1072.       draw_actor_class(actor, x, y)
  1073.       draw_width = [draw_width, 112].max
  1074.     end
  1075.     # HP・MP
  1076.     if ZiifSaveLayoutA::D_HPMP
  1077.       draw_actor_hp(actor, x, y + line_height * 1)
  1078.       draw_actor_mp(actor, x, y + line_height * 2)
  1079.       draw_width = [draw_width, 124].max
  1080.     end
  1081.     return draw_width
  1082.   end
  1083.   #--------------------------------------------------------------------------
  1084.   # ● リーダーのネーム情报の描画 (描画位置を返す)
  1085.   #--------------------------------------------------------------------------
  1086.   def draw_leader_name_info(actor, x, y)
  1087.     draw_x = x
  1088.     # 名前
  1089.     if ZiifSaveLayoutA::D_Name
  1090.       draw_actor_name(actor, draw_x, y)
  1091.       draw_x += 126
  1092.     end
  1093.     # レベル (名前の下に表示しない场合)
  1094.     if ZiifSaveLayoutA::D_Level && ZiifSaveLayoutA::D_UnderName != :level
  1095.       draw_actor_level(actor, draw_x, y)
  1096.       draw_x += 80
  1097.     end
  1098.     # 职业 (名前の下に表示しない场合)
  1099.     if ZiifSaveLayoutA::D_Class && ZiifSaveLayoutA::D_UnderName != :class
  1100.       draw_actor_class(actor, draw_x, y)
  1101.       draw_x += 110
  1102.     end
  1103.     # 二つ名
  1104.     if ZiifSaveLayoutA::D_Nickname
  1105.       draw_actor_nickname(actor, draw_x, y)
  1106.       draw_x += 180
  1107.     end
  1108.     return draw_x
  1109.   end
  1110.   #--------------------------------------------------------------------------
  1111.   # ● リーダーの能力値の描画 (描画行数を返す)
  1112.   #--------------------------------------------------------------------------
  1113.   def draw_leader_parameters(actor, x, y, width = 120)
  1114.     return 0 unless ZiifSaveLayoutA::D_Param
  1115.     col_num    = [width / 128, 1].max
  1116.     draw_width = width / col_num
  1117.     6.times do |i|
  1118.       draw_x = x + draw_width  * (i % col_num) + 4
  1119.       draw_y = y + line_height * (i / col_num)
  1120.       draw_actor_param_with_width(actor, draw_x, draw_y, i + 2, draw_width - 8)
  1121.     end
  1122.     return (5 + col_num) / col_num
  1123.   end
  1124.   #--------------------------------------------------------------------------
  1125.   # ● 能力値の描画 (横幅付きで描画)
  1126.   #--------------------------------------------------------------------------
  1127.   def draw_actor_param_with_width(actor, x, y, param_id, width)
  1128.     change_color(system_color)
  1129.     draw_text(x, y, width - 36, line_height, Vocab::param(param_id))
  1130.     change_color(normal_color)
  1131.     draw_text(x + width - 36, y, 36, line_height, actor.param(param_id), 2)
  1132.   end
  1133.   #--------------------------------------------------------------------------
  1134.   # ● リーダーの装备品の描画 (描画行数を返す)
  1135.   #--------------------------------------------------------------------------
  1136.   def draw_leader_equipments(actor, x, y)
  1137.     return 0 unless ZiifSaveLayoutA::D_Equip
  1138.     actor.equips.each_with_index do |item, i|
  1139.       draw_item_name(item, x, y + line_height * i)
  1140.     end
  1141.     return actor.equips.size
  1142.   end
  1143.   #--------------------------------------------------------------------------
  1144.   # ● リーダー情报で顔グラフィック描画をしたかどうか (パーティ表示用)
  1145.   #--------------------------------------------------------------------------
  1146.   def leader_face_draw?
  1147.     header?(:leader) &&
  1148.     ZiifSaveLayoutA::D_LeaderInfo && ZiifSaveLayoutA::D_Face
  1149.   end
  1150.   #--------------------------------------------------------------------------
  1151.   # ● パーティの顔グラフィックの描画
  1152.   #--------------------------------------------------------------------------
  1153.   def draw_party_faces
  1154.     return unless ZiifSaveLayoutA::D_PartyFaces && header?(:faces)
  1155.     draw_y = (file_info_draw? ? line_height : 0)
  1156.     draw_y += [96, line_height * 4].max if ZiifSaveLayoutA::D_LeaderInfo
  1157.     draw_x = 4
  1158.     @header[:faces].each_with_index do |data, i|
  1159.       next if i == 0 && leader_face_draw?
  1160.       draw_face_height88(data[0], data[1], draw_x, draw_y)
  1161.       draw_x += 100
  1162.     end
  1163.   end
  1164.   #--------------------------------------------------------------------------
  1165.   # ● パーティの歩行グラフィックの描画
  1166.   #--------------------------------------------------------------------------
  1167.   def draw_party_characters
  1168.     return unless ZiifSaveLayoutA::D_Characters && header?(:characters)
  1169.     draw_y  = contents.height - 8
  1170.     draw_y -= line_height if ZiifSaveLayoutA::D_AG_Line
  1171.     draw_x  = 28
  1172.     @header[:characters].each_with_index do |data, i|
  1173.       draw_character(data[0], data[1], draw_x, draw_y)
  1174.       draw_x += 48
  1175.     end
  1176.   end
  1177.   #--------------------------------------------------------------------------
  1178.   # ● 顔グラフィックの描画 (高さを 88px で描画)
  1179.   #--------------------------------------------------------------------------
  1180.   def draw_face_height88(face_name, face_index, x, y, enabled = true)
  1181.     bitmap = Cache.face(face_name)
  1182.     rect = Rect.new(face_index % 4 * 96, face_index / 4 * 96 + 4, 96, 88)
  1183.     contents.blt(x, y + 4, bitmap, rect, enabled ? 255 : translucent_alpha)
  1184.   end
  1185. end

最佳答案

查看完整内容

你是要在存档里显示啊, 那替换成这个脚本吧

Lv5.捕梦者

梦石
0
星屑
39016
在线时间
5717 小时
注册时间
2006-11-10
帖子
6619
2
发表于 2024-10-13 19:39:34 | 只看该作者
helsingtsai 发表于 2024-10-13 21:10
谢谢你的回答,用你提供方法的确能在存档当下时ˊ能正常显示,不过控制符我是使用\V[1] ,没有使用两条斜 ...

你是要在存档里显示啊, 那替换成这个脚本吧

  1. =begin ************************************************************************
  2.   ◆ セーブレイアウト (リーダー详细版) Ver.1.01
  3.   ---------------------------------------------------------------------------
  4.     セーブ・ロード画面のレイアウトを変更します。
  5. =end # ************************************************************************

  6. #-information------------------------------------------------------------------
  7. $ziifee ||= {}
  8. $ziifee[:SaveLayout] = :TypeA
  9. #------------------------------------------------------------------------------
  10. #-memo-------------------------------------------------------------------------
  11. #   各种データは一度セーブすることで表示されます。
  12. #   セーブファイルのマップ名は“表示名”を表示します。
  13. # - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
  14. #   他のセーブ関系の素材と竞合する可能性が高いので注意して使用してください。
  15. #   ファイル番号 17番 以降にセーブした场合、ロードにはこのスクリプトが必要です。
  16. #------------------------------------------------------------------------------

  17. module ZiifSaveLayoutA
  18.   # [ 设置个所 1 ]
  19.   # ▼ ファイルリスト设置 (ファイル数は 横×縦)
  20.   File_column  = 2              # ファイル 横の数
  21.   File_row     = 8              # ファイル 縦の数
  22.   D_LineNumber = 5              # 表示行数
  23.   File_Align   = 1              # 揃え (0:左揃え, 1:中央揃え, 2:右揃え)
  24.   D_StoryList  = true          # リストにストーリー名を表示 ( true / false )
  25.   V_None       = "No Data"      # 用语 : ファイルなし

  26.   # ▼ 情报ウィンドウ设置
  27.   WindowMargin       = 0        # ウィンドウ外周の余白   (px)
  28.   WindowLineNumber   = 9        # ウィンドウの高さ       (行数)
  29.   WindowTransparency = false    # 情报ウィンドウを透明化 ( true / false )

  30.   # ▼ ヘルプウィンドウ设置
  31.   HelpWTransparency  = false    # ヘルプウィンドウを透明化 ( true / false )

  32.   # ▼ セーブ确认设置
  33.   SaveConfirm          = true   # セーブ确认を行うかどうか ( true / false )
  34.   SConfirmationDefault = 0      # 初期位置 ( 0:はい / 1:いいえ )
  35.   V_SConfirmation      = "要复盖记录嘛?"   # 用语 : セーブ确认
  36.   V_SConfirmationYes   = "存盘"                     # 用语 : はい
  37.   V_SConfirmationNo    = "不要"                         # 用语 : いいえ

  38.   # ▼ ロード确认设置
  39.   LoadConfirm          = true   # ロード确认を行うかどうか ( true / false )
  40.   LConfirmationDefault = 0      # 初期位置 ( 0:はい / 1:いいえ )
  41.   V_LConfirmation      = "要读取纪录吗?"   # 用语 : ロード确认
  42.   V_LConfirmationYes   = "读取"                     # 用语 : はい
  43.   V_LConfirmationNo    = "不要"                         # 用语 : いいえ

  44.   # ▼ ファイル画面背景画象名 ( "" : 未使用、画象は Graphics/Pictures に)
  45.   SaveBackground = ""           # セーブ画面背景
  46.   LoadBackground = ""           # ロード画面背景

  47.   # ※ 背景画象未使用时は通常の背景表示になります。

  48.   # ▼ ウィンドウ表示设置 ( true : 表示する / false : 表示しない )
  49.   # ファイル情报
  50.   D_File       = true      # ファイル番号
  51.   D_Story      = true      # ストーリー名
  52.   D_Playtime   = true      # プレイ时间

  53.   # パーティ情报
  54.   D_Area       = true      # エリア・マップ名
  55.   D_Gold       = true      # 所持金
  56.   D_AG_Line    = false     # マップ名と所持金を同じ行に表示 (マップ名は左揃え)

  57.   # パーティ画象
  58.   D_PartyFaces = false     # パーティの顔グラフィック
  59.   D_Characters = true      # パーティの歩行グラフィック

  60.   # リーダー情报
  61.   D_LeaderInfo = true      # リーダー情报 ( true の时以下を表示する)

  62.   D_Face       = false      # 顔グラフィック
  63.   D_Name       = true      # 名前
  64.   D_Level      = true      # レベル
  65.   D_Class      = false      # 职业
  66.   D_Nickname   = true      # 二つ名
  67.   D_HPMP       = true      # HP・MP
  68.   D_UnderName  = :level    # 名前下の表示タイプ ( :level / :class / nil )
  69.   D_Param      = true      # 能力値 (攻撃・敏捷性など)
  70.   D_Equip      = true     # 装备   (武器・防具)

  71.   # ※ 全てを true にすると、ウィンドウ内に入りきらないので注意!
  72. end

  73. module ZiifManager
  74.   # [ 设置个所 2 ]
  75.   # ▼ 文本色设置 (0~255) : Color.new(赤, 緑, 青)
  76.   Story_Color    = Color.new(225, 200, 255)        # ストーリー名
  77.   Area_Color     = Color.new(225, 200, 255)          # エリア・マップ名

  78.   # ▼ ストーリー名の设置
  79.   Story_VarID    = 60                               # ストーリー确认用 変数ID
  80.   StorySet     ||= Hash.new("")
  81.   StorySet[0]    = "序幕"     #
  82.   StorySet[1]    = "旅程的前夕"     #
  83.   StorySet[2]    = "寻找神圣的火焰"     #
  84.   StorySet[3]    = "拯救者、被拯救者"     #
  85.   StorySet[4]    = "沙之国、少女占卜师"     #  
  86.   StorySet[5]    = "决战!海贼王"     #
  87.   StorySet[6]    = "漂流至新天地"     #
  88.   StorySet[7]    = "麦卡托的天空"     #
  89.   StorySet[8]    = "被引导的之人"     #
  90.   StorySet[9]    = "手里的真相"     #
  91.   StorySet[10]    = "罪孽深重的亡者"     #
  92.   StorySet[11]    = "山丘上的夕阳"     #
  93.   StorySet[12]    = "世代传承的意志"     #
  94.   StorySet[13]    = "旅途的尽头"     #
  95.   StorySet[14]    = "某位魔法使"     #
  96.   StorySet[15]    = "痕迹"     #
  97.   StorySet[16]    = "★ 旅程的前夕"     #  
  98.   StorySet[17]    = "★ 寻找神圣的火焰"     #
  99.   StorySet[18]    = "★ 拯救者、被拯救者"     #
  100.   StorySet[19]    = "★ 沙之国、少女占卜师"     #
  101.   StorySet[20]    = "★ 决战!海贼王"     #
  102.   StorySet[21]    = "★ 漂流至新天地"     #
  103.   StorySet[22]    = "★ 麦卡托的天空"     #
  104.   StorySet[23]    = "★ 被引导的之人"     #
  105.   StorySet[24]    = "★ 手里的真相"     #
  106.   StorySet[25]    = "★ 罪孽深重的亡者"     #
  107.   StorySet[26]    = "★ 山丘上的夕阳"     #
  108.   StorySet[27]    = "★ 世代传承的意志"     #
  109.   StorySet[28]    = "★ 旅途的尽头"     #
  110.   StorySet[29]    = "★ 某位魔法使"     #
  111.   StorySet[30]    = "★ 痕迹"     #
  112.   StorySet[31]    = "超越命运"     #
  113.   StorySet[32]    = "★ 超越命运"     #
  114.   #-memo---------------------------------------------------------------------
  115.   #  StorySet[変数の値] = "ストーリー名"           # ストーリー名の设置
  116.   #--------------------------------------------------------------------------

  117.   # ▼ エリア名の设置
  118.   AreaSet      ||= Hash.new(Hash.new(nil))
  119.   AreaSet[1]     = Hash.new(nil)                   # マップID:01 を登録
  120.   AreaSet[1][1]  = "机关人偶馆的附近"                # ⇒ リージョンID:01
  121.   AreaSet[1][2]  = "小村落附近"                  # ⇒ リージョンID:02
  122.   AreaSet[2]     = Hash.new(nil)                   # マップID:02 を登録
  123.   AreaSet[2][1]  = "暗闇的大地"                    # ⇒ リージョンID:01
  124.   #-memo---------------------------------------------------------------------
  125.   #  AreaSet[マップID] = Hash.new(nil)             # フィールドマップIDの登録
  126.   #  AreaSet[マップID][リージョンID] = "エリア名"  # リージョンエリア名の设置
  127.   #  ※ 変数の値が设置されていない场合は、现在のマップ名を表示します。
  128.   #--------------------------------------------------------------------------
  129. end

  130. #******************************************************************************
  131. # ▼ モジュール部
  132. #******************************************************************************

  133. #==============================================================================
  134. # ■ ZiifSaveLayoutA
  135. #==============================================================================

  136. module ZiifSaveLayoutA
  137.   #--------------------------------------------------------------------------
  138.   # ● セーブファイル数の取得
  139.   #--------------------------------------------------------------------------
  140.   def self.savefile_max
  141.     File_column * File_row
  142.   end
  143.   #--------------------------------------------------------------------------
  144.   # ● セーブ背景画象があるかどうか
  145.   #--------------------------------------------------------------------------
  146.   def self.save_background?
  147.     SaveBackground != ""
  148.   end
  149.   #--------------------------------------------------------------------------
  150.   # ● セーブ背景ビットマップの取得
  151.   #--------------------------------------------------------------------------
  152.   def self.save_background_bitmap
  153.     Cache.picture(SaveBackground)
  154.   end
  155.   #--------------------------------------------------------------------------
  156.   # ● ロード背景画象があるかどうか
  157.   #--------------------------------------------------------------------------
  158.   def self.load_background?
  159.     LoadBackground != ""
  160.   end
  161.   #--------------------------------------------------------------------------
  162.   # ● ロード背景ビットマップの取得
  163.   #--------------------------------------------------------------------------
  164.   def self.load_background_bitmap
  165.     Cache.picture(LoadBackground)
  166.   end
  167. end

  168. #==============================================================================
  169. # ■ ZiifManager
  170. #==============================================================================

  171. module ZiifManager
  172.   #--------------------------------------------------------------------------
  173.   # ● ストーリー名の取得
  174.   #--------------------------------------------------------------------------
  175.   def self.story_name(story_id)
  176.     StorySet[story_id]
  177.   end
  178.   #--------------------------------------------------------------------------
  179.   # ● エリア名の取得
  180.   #--------------------------------------------------------------------------
  181.   def self.area_name(map_id, region_id = nil,mapname = nil)
  182.     AreaSet[map_id][region_id] || mapname
  183.   end
  184.   #--------------------------------------------------------------------------
  185.   # ● マップ名の取得
  186.   #--------------------------------------------------------------------------
  187.   def self.map_name(map_id)
  188.     @map_name_cache ||= {}
  189.     unless @map_name_cache[map_id]
  190.       map = load_data(sprintf("Data/Map%03d.rvdata2", map_id)) rescue nil
  191.       @map_name_cache[map_id] = (map ? map.display_name : "No MapData")
  192.     end
  193.     a = @map_name_cache[map_id].gsub(/\\[Vv]\[(\d+)\]/){$game_variables[$1.to_i].to_s}
  194.     return a.gsub(/\\[Nn]\[(\d+)\]/){$game_actors[$1.to_i].name}
  195.   end
  196. end

  197. #==============================================================================
  198. # ■ ZiifManager::DrawingModule
  199. #==============================================================================

  200. module ZiifManager::DrawingModule
  201.   #--------------------------------------------------------------------------
  202.   # ● ストーリー名文本色の取得
  203.   #--------------------------------------------------------------------------
  204.   def story_color
  205.     ZiifManager::Story_Color
  206.   end
  207.   #--------------------------------------------------------------------------
  208.   # ● エリア名文本色の取得
  209.   #--------------------------------------------------------------------------
  210.   def area_color
  211.     ZiifManager::Area_Color
  212.   end
  213.   #--------------------------------------------------------------------------
  214.   # ● ファイル番号の描画
  215.   #--------------------------------------------------------------------------
  216.   def draw_file_number(index, x, y, enabled = true, width = 120, align = 0)
  217.     change_color(normal_color, enabled)
  218.     draw_text(x, y, width, line_height, Vocab::File + " #{index + 1}", align)
  219.   end
  220.   #--------------------------------------------------------------------------
  221.   # ● ストーリー名の描画
  222.   #--------------------------------------------------------------------------
  223.   def draw_story_name(story_id, x, y, width = 256, align = 0)
  224.     change_color(story_color)
  225.     text = ZiifManager.story_name(story_id)
  226.     draw_text(x, y, width, line_height, text, align)
  227.   end
  228.   #--------------------------------------------------------------------------
  229.   # ● エリア名の描画
  230.   #--------------------------------------------------------------------------
  231.   def draw_area_map(map_id, region_id, x, y, width = 256, align = 0,mapnam=nil)
  232.     change_color(area_color)
  233.     text = ZiifManager.area_name(map_id, region_id,mapnam)
  234.     draw_text(x, y, width, line_height, text, align)
  235.   end
  236. end

  237. #==============================================================================
  238. # ■ DataManager
  239. #==============================================================================

  240. class << DataManager
  241.   #--------------------------------------------------------------------------
  242.   # ☆ セーブファイルの最大数 (再定义)
  243.   #--------------------------------------------------------------------------
  244.   def savefile_max
  245.     return ZiifSaveLayoutA.savefile_max
  246.   end
  247.   #--------------------------------------------------------------------------
  248.   # ● セーブヘッダの作成
  249.   #--------------------------------------------------------------------------
  250.   alias :ziif_save_layout_01_make_save_header :make_save_header
  251.   def make_save_header
  252.     header = ziif_save_layout_01_make_save_header
  253.     header[:story_id]  = $game_system.ziif_story_id
  254.     header[:map_id]    = $game_map.map_id
  255.     header[:region_id] = $game_player.region_id
  256.     header[:gold]      = $game_party.gold
  257.     header[:faces]     = $game_party.ziif_faces_for_savefile
  258.     header[:leader]    = $game_party.ziif_leader_for_savefile
  259.     header[:map_name]  = ZiifManager.map_name($game_map.map_id)
  260.     header
  261.   end
  262. end

  263. #******************************************************************************
  264. # ▼ ゲームオブジェクト部
  265. #******************************************************************************

  266. #==============================================================================
  267. # ■ Game_System
  268. #==============================================================================

  269. class Game_System
  270.   #--------------------------------------------------------------------------
  271.   # ● ストーリーIDの取得
  272.   #--------------------------------------------------------------------------
  273.   def ziif_story_id
  274.     $game_variables[ZiifManager::Story_VarID]
  275.   end
  276. end

  277. #==============================================================================
  278. # ■ Game_Party
  279. #==============================================================================

  280. class Game_Party
  281.   #--------------------------------------------------------------------------
  282.   # ● セーブファイル表示用の顔グラフィック画象情报
  283.   #--------------------------------------------------------------------------
  284.   def ziif_faces_for_savefile
  285.     battle_members.collect do |actor|
  286.       [actor.face_name, actor.face_index]
  287.     end
  288.   end
  289.   #--------------------------------------------------------------------------
  290.   # ● セーブファイル表示用のリーダー情报
  291.   #--------------------------------------------------------------------------
  292.   def ziif_leader_for_savefile
  293.     return leader
  294.   end
  295. end

  296. #******************************************************************************
  297. # ▼ ウィンドウ部
  298. #******************************************************************************

  299. #==============================================================================
  300. # ■ Window_ZiifFileList
  301. #------------------------------------------------------------------------------
  302. #  ファイル画面で、セーブファイルの一覧を表示するウィンドウです。
  303. #==============================================================================

  304. class Window_ZiifFileList < Window_Selectable
  305.   #--------------------------------------------------------------------------
  306.   # ● Mix-In
  307.   #--------------------------------------------------------------------------
  308.   include ZiifManager::DrawingModule      # 描画机能追加モジュール
  309.   #--------------------------------------------------------------------------
  310.   # ● オブジェクト初期化
  311.   #--------------------------------------------------------------------------
  312.   def initialize
  313.     rect = window_rect
  314.     super(rect.x, rect.y, rect.width, rect.height)
  315.     self.opacity = 0
  316.     refresh
  317.     activate
  318.   end
  319.   #--------------------------------------------------------------------------
  320.   # ● ウィンドウの表示范囲を取得
  321.   #--------------------------------------------------------------------------
  322.   def window_rect
  323.     rect = Rect.new
  324.     rect.x      = 4
  325.     rect.y      = 48
  326.     rect.width  = Graphics.width-8
  327.     rect.height = fitting_height(ZiifSaveLayoutA::D_LineNumber)
  328.     rect
  329.   end
  330.   #--------------------------------------------------------------------------
  331.   # ● 桁数の取得
  332.   #--------------------------------------------------------------------------
  333.   def col_max
  334.     ZiifSaveLayoutA::File_column
  335.   end
  336.   #--------------------------------------------------------------------------
  337.   # ● 项目数の取得
  338.   #--------------------------------------------------------------------------
  339.   def item_max
  340.     DataManager.savefile_max
  341.   end
  342.   #--------------------------------------------------------------------------
  343.   # ● アライメントの取得
  344.   #--------------------------------------------------------------------------
  345.   def alignment
  346.     return ZiifSaveLayoutA::File_Align
  347.   end
  348.   #--------------------------------------------------------------------------
  349.   # ● ファイル名の描画判定
  350.   #--------------------------------------------------------------------------
  351.   def file_number_draw?
  352.     !ZiifSaveLayoutA::D_StoryList
  353.   end
  354.   #--------------------------------------------------------------------------
  355.   # ● ストーリー名の描画判定
  356.   #--------------------------------------------------------------------------
  357.   def story_name_draw?
  358.     ZiifSaveLayoutA::D_StoryList
  359.   end
  360.   #--------------------------------------------------------------------------
  361.   # ● セーブヘッダの取得
  362.   #--------------------------------------------------------------------------
  363.   def header(index)
  364.     DataManager.load_header(index)
  365.   end
  366.   #--------------------------------------------------------------------------
  367.   # ● セーブファイルが存在しているかどうか
  368.   #--------------------------------------------------------------------------
  369.   def enable?(index)
  370.     header(index)
  371.   end
  372.   #--------------------------------------------------------------------------
  373.   # ● 决定ボタンが押されたときの処理 (决定サウンドを鸣らさない)
  374.   #--------------------------------------------------------------------------
  375.   def process_ok
  376.     if current_item_enabled?
  377.       Input.update
  378.       deactivate
  379.       call_ok_handler
  380.     else
  381.       Sound.play_buzzer
  382.     end
  383.   end
  384.   #--------------------------------------------------------------------------
  385.   # ● 选択项目の有効状态を取得
  386.   #--------------------------------------------------------------------------
  387.   def current_item_enabled?
  388.     !SceneManager.scene_is?(Scene_Load) || enable?(self.index)
  389.   end
  390.   #--------------------------------------------------------------------------
  391.   # ● 项目の描画
  392.   #--------------------------------------------------------------------------
  393.   def draw_item(index)
  394.     rect  = item_rect(index)
  395.     # ファイル番号を描画
  396.     if file_number_draw?
  397.       draw_file_number(index,rect.x,rect.y,enable?(index),rect.width,alignment)
  398.     end
  399.     # ストーリー名を描画
  400.     if story_name_draw?
  401.       header = header(index)
  402.       if header && header[:story_id]
  403.         draw_story_name(header[:story_id],rect.x,rect.y,rect.width,alignment)
  404.       else
  405.         change_color(normal_color, false)
  406.         draw_text(rect, ZiifSaveLayoutA::V_None, alignment)
  407.       end
  408.     end
  409.   end
  410. end

  411. #==============================================================================
  412. # ■ Window_ZiifSaveFile
  413. #------------------------------------------------------------------------------
  414. #  ファイル画面でファイル情报を表示するウィンドウです。
  415. #==============================================================================

  416. class Window_ZiifSaveFile < Window_Base
  417.   #--------------------------------------------------------------------------
  418.   # ● Mix-In
  419.   #--------------------------------------------------------------------------
  420.   include ZiifManager::DrawingModule      # 描画机能追加モジュール
  421.   #--------------------------------------------------------------------------
  422.   # ● 公开インスタンス変数
  423.   #--------------------------------------------------------------------------
  424.   attr_reader   :selected                 # 选択状态
  425.   attr_reader   :header                   # セーブヘッダ
  426.   #--------------------------------------------------------------------------
  427.   # ● オブジェクト初期化
  428.   #     index : セーブファイルのインデックス
  429.   #--------------------------------------------------------------------------
  430.   def initialize(dummy_height, index)
  431.     rect = window_rect
  432.     super(rect.x, rect.y, rect.width, rect.height)
  433.     self.opacity = 0 if ZiifSaveLayoutA::WindowTransparency
  434.     @file_index = index
  435.     clear_header
  436.     refresh
  437.     self.visible = false
  438.     @selected = false
  439.   end
  440.   #--------------------------------------------------------------------------
  441.   # ● ウィンドウの表示范囲を取得
  442.   #--------------------------------------------------------------------------
  443.   def window_rect
  444.     rect = Rect.new
  445.     rect.x      = ZiifSaveLayoutA::WindowMargin
  446.     rect.y      = Graphics.height - ZiifSaveLayoutA::WindowMargin
  447.     rect.width  = Graphics.width - ZiifSaveLayoutA::WindowMargin * 2
  448.     rect.height = fitting_height(ZiifSaveLayoutA::WindowLineNumber)
  449.     rect.y     -= rect.height
  450.     rect
  451.   end
  452.   #--------------------------------------------------------------------------
  453.   # ● 选択状态の设置
  454.   #--------------------------------------------------------------------------
  455.   def selected=(selected)
  456.     @selected = selected
  457.     update_select
  458.   end
  459.   #--------------------------------------------------------------------------
  460.   # ● 选択状态の更新
  461.   #--------------------------------------------------------------------------
  462.   def update_select
  463.     self.visible = self.selected
  464.     update
  465.   end
  466.   #--------------------------------------------------------------------------
  467.   # ● セーブヘッダのロード
  468.   #--------------------------------------------------------------------------
  469.   def load_header
  470.     @header = DataManager.load_header(@file_index)
  471.   end
  472.   #--------------------------------------------------------------------------
  473.   # ● セーブヘッダのクリア
  474.   #--------------------------------------------------------------------------
  475.   def clear_header
  476.     @header = nil
  477.   end
  478.   #--------------------------------------------------------------------------
  479.   # ● ファイル情报があるかどうか
  480.   #--------------------------------------------------------------------------
  481.   def header?(symbol)
  482.     @header && @header[symbol]
  483.   end
  484.   #--------------------------------------------------------------------------
  485.   # ● リフレッシュ
  486.   #--------------------------------------------------------------------------
  487.   def refresh
  488.     contents.clear
  489.     load_header
  490.     draw_file_contents
  491.     draw_no_file unless @header
  492.     clear_header
  493.   end
  494.   #--------------------------------------------------------------------------
  495.   # ○ ファイル内容の描画 (素材下部にて再定义)
  496.   #--------------------------------------------------------------------------
  497.   def draw_file_contents
  498.   end
  499.   #--------------------------------------------------------------------------
  500.   # ● ファイルなしの描画
  501.   #--------------------------------------------------------------------------
  502.   def draw_no_file
  503.     rect   = Rect.new(0, 0, contents.width, line_height)
  504.     rect.y = (contents.height - rect.height) / 2
  505.     change_color(normal_color, false)
  506.     draw_text(rect, ZiifSaveLayoutA::V_None, 1)
  507.   end
  508. end

  509. #==============================================================================
  510. # ■ Window_ZiifFileConfirmation
  511. #------------------------------------------------------------------------------
  512. #  ファイル画面でセーブ・ロード确认コマンドを表示するウィンドウです。
  513. #==============================================================================

  514. class Window_ZiifFileConfirmation < Window_Command
  515.   #--------------------------------------------------------------------------
  516.   # ● オブジェクト初期化
  517.   #--------------------------------------------------------------------------
  518.   def initialize
  519.     super(window_x, window_y)
  520.     self.z        = 200
  521.     self.openness = 0
  522.     deactivate
  523.   end
  524.   #--------------------------------------------------------------------------
  525.   # ● ウィンドウ X 坐标 の取得
  526.   #--------------------------------------------------------------------------
  527.   def window_x
  528.     return (Graphics.width-window_width) / 2
  529.   end
  530.   #--------------------------------------------------------------------------
  531.   # ● ウィンドウ Y 坐标 の取得
  532.   #--------------------------------------------------------------------------
  533.   def window_y
  534.     return (Graphics.height-window_height) / 2
  535.   end
  536.   #--------------------------------------------------------------------------
  537.   # ● ウィンドウ幅の取得
  538.   #--------------------------------------------------------------------------
  539.   def window_width
  540.     return 128
  541.   end
  542.   #--------------------------------------------------------------------------
  543.   # ● 表示行数の取得
  544.   #--------------------------------------------------------------------------
  545.   def visible_line_number
  546.     return 2
  547.   end
  548.   #--------------------------------------------------------------------------
  549.   # ● デフォルト位置を选択
  550.   #--------------------------------------------------------------------------
  551.   def select_default
  552.   end
  553. end

  554. #==============================================================================
  555. # ■ Window_ZiifSaveConfirmation
  556. #------------------------------------------------------------------------------
  557. #  セーブ画面で确认コマンドを表示するウィンドウです。
  558. #==============================================================================

  559. class Window_ZiifSaveConfirmation < Window_ZiifFileConfirmation
  560.   #--------------------------------------------------------------------------
  561.   # ● コマンドリストの作成
  562.   #--------------------------------------------------------------------------
  563.   def make_command_list
  564.     add_command(ZiifSaveLayoutA::V_SConfirmationYes, :save)
  565.     add_command(ZiifSaveLayoutA::V_SConfirmationNo, :cancel)
  566.   end
  567.   #--------------------------------------------------------------------------
  568.   # ● ヘルプテキスト更新
  569.   #--------------------------------------------------------------------------
  570.   def update_help
  571.     @help_window.set_text(ZiifSaveLayoutA::V_SConfirmation)
  572.   end
  573.   #--------------------------------------------------------------------------
  574.   # ● デフォルト位置を选択
  575.   #--------------------------------------------------------------------------
  576.   def select_default
  577.     select(ZiifSaveLayoutA::SConfirmationDefault)
  578.   end
  579.   #--------------------------------------------------------------------------
  580.   # ● 决定ボタンが押されたときの処理 (セーブ时サウンドを鸣らさない)
  581.   #--------------------------------------------------------------------------
  582.   def process_ok
  583.     return super if current_symbol != :save
  584.     if current_item_enabled?
  585.       Input.update
  586.       deactivate
  587.       call_ok_handler
  588.     else
  589.       Sound.play_buzzer
  590.     end
  591.   end
  592. end

  593. #==============================================================================
  594. # ■ Window_ZiifLoadConfirmation
  595. #------------------------------------------------------------------------------
  596. #  ロード画面で确认コマンドを表示するウィンドウです。
  597. #==============================================================================

  598. class Window_ZiifLoadConfirmation < Window_ZiifFileConfirmation
  599.   #--------------------------------------------------------------------------
  600.   # ● コマンドリストの作成
  601.   #--------------------------------------------------------------------------
  602.   def make_command_list
  603.     add_command(ZiifSaveLayoutA::V_LConfirmationYes, :load)
  604.     add_command(ZiifSaveLayoutA::V_LConfirmationNo, :cancel)
  605.   end
  606.   #--------------------------------------------------------------------------
  607.   # ● ヘルプテキスト更新
  608.   #--------------------------------------------------------------------------
  609.   def update_help
  610.     @help_window.set_text(ZiifSaveLayoutA::V_LConfirmation)
  611.   end
  612.   #--------------------------------------------------------------------------
  613.   # ● デフォルト位置を选択
  614.   #--------------------------------------------------------------------------
  615.   def select_default
  616.     select(ZiifSaveLayoutA::LConfirmationDefault)
  617.   end
  618.   #--------------------------------------------------------------------------
  619.   # ● 决定ボタンが押されたときの処理 (ロード时サウンドを鸣らさない)
  620.   #--------------------------------------------------------------------------
  621.   def process_ok
  622.     return super if current_symbol != :load
  623.     if current_item_enabled?
  624.       Input.update
  625.       deactivate
  626.       call_ok_handler
  627.     else
  628.       Sound.play_buzzer
  629.     end
  630.   end
  631. end

  632. #******************************************************************************
  633. # ▼ シーン部
  634. #******************************************************************************

  635. #==============================================================================
  636. # ■ Scene_File
  637. #==============================================================================

  638. class Scene_File
  639.   #--------------------------------------------------------------------------
  640.   # ● 背景画象があるかどうか
  641.   #--------------------------------------------------------------------------
  642.   def ziif_file_background?
  643.     return false
  644.   end
  645.   #--------------------------------------------------------------------------
  646.   # ● 背景ビットマップの取得
  647.   #--------------------------------------------------------------------------
  648.   def ziif_file_background_bitmap
  649.     SceneManager.background_bitmap
  650.   end
  651.   #--------------------------------------------------------------------------
  652.   # ● セーブ・ロードの确认をするかどうか
  653.   #--------------------------------------------------------------------------
  654.   def file_confirm?
  655.     return false
  656.   end
  657.   #--------------------------------------------------------------------------
  658.   # ● セーブ・ロード确认ウィンドウの取得
  659.   #--------------------------------------------------------------------------
  660.   def confirmation_window
  661.     return Window_ZiifFileConfirmation
  662.   end
  663.   #--------------------------------------------------------------------------
  664.   # ● 背景の作成
  665.   #--------------------------------------------------------------------------
  666.   alias :ziif_save_layout_01_create_background :create_background
  667.   def create_background
  668.     if ziif_file_background?
  669.       create_ziif_file_background
  670.     else
  671.       ziif_save_layout_01_create_background
  672.     end
  673.   end
  674.   #--------------------------------------------------------------------------
  675.   # ● ファイル画面の背景の作成
  676.   #--------------------------------------------------------------------------
  677.   def create_ziif_file_background
  678.     @background_sprite = Sprite.new
  679.     @background_sprite.bitmap = ziif_file_background_bitmap
  680.   end
  681.   #--------------------------------------------------------------------------
  682.   # ● ヘルプウィンドウの作成
  683.   #--------------------------------------------------------------------------
  684.   alias :ziif_save_layout_01_create_help_window :create_help_window
  685.   def create_help_window
  686.     ziif_save_layout_01_create_help_window
  687.     @help_window.opacity = 0 if ZiifSaveLayoutA::HelpWTransparency
  688.   end
  689.   #--------------------------------------------------------------------------
  690.   # ☆ セーブファイルウィンドウの作成 (再定义)
  691.   #--------------------------------------------------------------------------
  692.   def create_savefile_windows
  693.     create_filelist_window
  694.     create_savefile_windows_sub
  695.     create_confirmation_window
  696.   end
  697.   #--------------------------------------------------------------------------
  698.   # ● ファイルリストウィンドウの作成
  699.   #--------------------------------------------------------------------------
  700.   def create_filelist_window
  701.     @filelist_window = Window_ZiifFileList.new
  702.     @filelist_window.set_handler(:ok,     method(:on_filelist_ok))
  703.     @filelist_window.set_handler(:cancel, method(:return_scene))
  704.   end
  705.   #--------------------------------------------------------------------------
  706.   # ● セーブファイルウィンドウの作成 (サブ定义)
  707.   #--------------------------------------------------------------------------
  708.   def create_savefile_windows_sub
  709.     @savefile_windows = Array.new(item_max) do |i|
  710.       Window_ZiifSaveFile.new(0, i)
  711.     end
  712.   end
  713.   #--------------------------------------------------------------------------
  714.   # ● セーブ・ロード确认ウィンドウの作成
  715.   #--------------------------------------------------------------------------
  716.   def create_confirmation_window
  717.     @confirmation_window = confirmation_window.new
  718.     @confirmation_window.help_window = @help_window
  719.     @confirmation_window.set_handler(:ok,     method(:on_confirmation_ok))
  720.     @confirmation_window.set_handler(:cancel, method(:on_confirmation_cancel))
  721.     @confirmation_window.select_default
  722.   end
  723.   #--------------------------------------------------------------------------
  724.   # ☆ 选択状态の初期化 (再定义)
  725.   #--------------------------------------------------------------------------
  726.   def init_selection
  727.     @filelist_window.select(first_savefile_index)
  728.     @savefile_windows[index].selected = true
  729.     @last_index = index
  730.     set_file_index
  731.   end
  732.   #--------------------------------------------------------------------------
  733.   # ☆ 现在のインデックスの取得 (再定义)
  734.   #--------------------------------------------------------------------------
  735.   def index
  736.     @filelist_window.index
  737.   end
  738.   #--------------------------------------------------------------------------
  739.   # ● インデックス设置
  740.   #--------------------------------------------------------------------------
  741.   def set_file_index
  742.     @index = index
  743.   end
  744.   #--------------------------------------------------------------------------
  745.   # ☆ セーブファイル选択の更新 (再定义)
  746.   #--------------------------------------------------------------------------
  747.   def update_savefile_selection
  748.     if index != @last_index
  749.       set_file_index
  750.       @savefile_windows[@last_index].selected = false
  751.       @savefile_windows[index].selected = true
  752.       @last_index = index
  753.     end
  754.   end
  755.   #--------------------------------------------------------------------------
  756.   # ● ファイルリスト[决定]
  757.   #--------------------------------------------------------------------------
  758.   def on_filelist_ok
  759.     set_file_index
  760.     if file_confirm?
  761.       Sound.play_ok
  762.       activate_confirmation_window
  763.     else
  764.       on_savefile_ok
  765.     end
  766.   end
  767.   #--------------------------------------------------------------------------
  768.   # ● 确认ウィンドウをアクティブ化
  769.   #--------------------------------------------------------------------------
  770.   def activate_confirmation_window
  771.     @confirmation_window.activate
  772.     @confirmation_window.open
  773.   end
  774.   #--------------------------------------------------------------------------
  775.   # ● セーブ・ロード确认[决定]
  776.   #--------------------------------------------------------------------------
  777.   def on_confirmation_ok
  778.     on_savefile_ok
  779.   end
  780.   #--------------------------------------------------------------------------
  781.   # ● セーブ・ロード确认[キャンセル]
  782.   #--------------------------------------------------------------------------
  783.   def on_confirmation_cancel
  784.     @help_window.set_text(help_window_text)
  785.     @confirmation_window.select_default
  786.     @confirmation_window.close
  787.     @filelist_window.activate
  788.   end
  789. end

  790. #==============================================================================
  791. # ■ Scene_Save
  792. #==============================================================================

  793. class Scene_Save
  794.   #--------------------------------------------------------------------------
  795.   # ● 背景画象があるかどうか
  796.   #--------------------------------------------------------------------------
  797.   def ziif_file_background?
  798.     ZiifSaveLayoutA.save_background?
  799.   end
  800.   #--------------------------------------------------------------------------
  801.   # ● 背景ビットマップの取得
  802.   #--------------------------------------------------------------------------
  803.   def ziif_file_background_bitmap
  804.     ZiifSaveLayoutA.save_background_bitmap
  805.   end
  806.   #--------------------------------------------------------------------------
  807.   # ● セーブ・ロードの确认をするかどうか
  808.   #--------------------------------------------------------------------------
  809.   def file_confirm?
  810.     ZiifSaveLayoutA::SaveConfirm
  811.   end
  812.   #--------------------------------------------------------------------------
  813.   # ● セーブ・ロード确认ウィンドウの取得
  814.   #--------------------------------------------------------------------------
  815.   def confirmation_window
  816.     return Window_ZiifSaveConfirmation
  817.   end
  818.   #--------------------------------------------------------------------------
  819.   # ● セーブファイルの决定
  820.   #--------------------------------------------------------------------------
  821.   alias :ziif_save_layout_01_save_on_savefile_ok :on_savefile_ok
  822.   def on_savefile_ok
  823.     ziif_save_layout_01_save_on_savefile_ok
  824.     @confirmation_window.close
  825.     @filelist_window.activate
  826.   end
  827. end

  828. #==============================================================================
  829. # ■ Scene_Load
  830. #==============================================================================

  831. class Scene_Load
  832.   #--------------------------------------------------------------------------
  833.   # ● 背景画象があるかどうか
  834.   #--------------------------------------------------------------------------
  835.   def ziif_file_background?
  836.     ZiifSaveLayoutA.load_background?
  837.   end
  838.   #--------------------------------------------------------------------------
  839.   # ● 背景ビットマップの取得
  840.   #--------------------------------------------------------------------------
  841.   def ziif_file_background_bitmap
  842.     ZiifSaveLayoutA.load_background_bitmap
  843.   end
  844.   #--------------------------------------------------------------------------
  845.   # ● セーブ・ロードの确认をするかどうか
  846.   #--------------------------------------------------------------------------
  847.   def file_confirm?
  848.     ZiifSaveLayoutA::LoadConfirm
  849.   end
  850.   #--------------------------------------------------------------------------
  851.   # ● セーブ・ロード确认ウィンドウの取得
  852.   #--------------------------------------------------------------------------
  853.   def confirmation_window
  854.     return Window_ZiifLoadConfirmation
  855.   end
  856.   #--------------------------------------------------------------------------
  857.   # ● セーブファイルの决定
  858.   #--------------------------------------------------------------------------
  859.   alias :ziif_save_layout_01_load_on_savefile_ok :on_savefile_ok
  860.   def on_savefile_ok
  861.     ziif_save_layout_01_load_on_savefile_ok
  862.     @confirmation_window.close
  863.     @filelist_window.activate
  864.   end
  865. end

  866. #******************************************************************************
  867. # ▼ ラインヘルプ机能部
  868. #******************************************************************************
  869. #-memo-------------------------------------------------------------------------
  870. #   ラインヘルプウィンドウスクリプトを导入する场合に使用します。
  871. #------------------------------------------------------------------------------

  872. #==============================================================================
  873. # ■ Window_ZiifFileList
  874. #==============================================================================

  875. class Window_ZiifFileList < Window_Selectable
  876.   #--------------------------------------------------------------------------
  877.   # ● ウィンドウの表示范囲を取得
  878.   #--------------------------------------------------------------------------
  879.   alias :ziif_line_help_file_window_rect :window_rect
  880.   def window_rect
  881.     rect    = ziif_line_help_file_window_rect
  882.     rect.y -= 6 if $ziifee[:LineHelp]
  883.     rect
  884.   end
  885. end

  886. #==============================================================================
  887. # ■ Scene_File
  888. #==============================================================================

  889. class Scene_File
  890.   #--------------------------------------------------------------------------
  891.   # ● ヘルプウィンドウの作成
  892.   #--------------------------------------------------------------------------
  893.   alias :ziif_line_help_file_create_help_window :create_help_window
  894.   def create_help_window
  895.     return ziif_line_help_file_create_help_window unless $ziifee[:LineHelp]
  896.     @help_window = Window_ZiifLineHelp.new(1)
  897.     @help_window.set_text(help_window_text)
  898.   end
  899. end

  900. #******************************************************************************
  901. # ▼ ファイル情报描画部
  902. #******************************************************************************
  903. #-memo-------------------------------------------------------------------------
  904. #   ここから下を削除して、Window_ZiifSaveFile に直接记述する事もできます。
  905. #------------------------------------------------------------------------------

  906. #==============================================================================
  907. # ■ Window_ZiifSaveFile
  908. #==============================================================================

  909. class Window_ZiifSaveFile
  910.   #--------------------------------------------------------------------------
  911.   # ● ファイル内容の描画
  912.   #--------------------------------------------------------------------------
  913.   def draw_file_contents
  914.     draw_file_info
  915.     draw_party_info
  916.     draw_leader_info
  917.     draw_party_faces
  918.     draw_party_characters
  919.   end
  920.   #--------------------------------------------------------------------------
  921.   # ● ファイル情报の描画
  922.   #--------------------------------------------------------------------------
  923.   def draw_file_info
  924.     draw_x = 4
  925.     # ファイル番号
  926.     if ZiifSaveLayoutA::D_File
  927.       draw_file_number(@file_index, draw_x, 0)
  928.       draw_x += 128
  929.     end
  930.     # ストーリー名
  931.     if ZiifSaveLayoutA::D_Story && header?(:story_id)
  932.       draw_story_name(@header[:story_id], draw_x, 0)
  933.     end
  934.     # プレイタイム
  935.     if ZiifSaveLayoutA::D_Playtime && header?(:playtime_s)
  936.       change_color(normal_color)
  937.       draw_text(4, 0, contents.width - 8, line_height, @header[:playtime_s], 2)
  938.     end
  939.   end
  940.   #--------------------------------------------------------------------------
  941.   # ● 通货単位の取得
  942.   #--------------------------------------------------------------------------
  943.   def currency_unit
  944.     Vocab::currency_unit
  945.   end
  946.   #--------------------------------------------------------------------------
  947.   # ● 所持金・マップ情报の描画
  948.   #--------------------------------------------------------------------------
  949.   def draw_party_info
  950.     draw_y = contents.height - line_height
  951.     # エリア・マップ名
  952.     if ZiifSaveLayoutA::D_Area && header?(:map_id)
  953.       map_align = (ZiifSaveLayoutA::D_AG_Line ? 0 : 2)
  954.       map_id    = @header[:map_id]
  955.       region_id = @header[:region_id]
  956.       a = @header[:map_name]
  957.       draw_area_map(map_id, region_id, 4, draw_y, contents.width-8,map_align,a)
  958.       draw_y -= line_height unless ZiifSaveLayoutA::D_AG_Line
  959.     end
  960.     # 所持金
  961.     if ZiifSaveLayoutA::D_Gold && header?(:gold)
  962.       gold = @header[:gold]
  963.       draw_currency_value(gold, currency_unit, 4, draw_y, contents.width - 8)
  964.     end
  965.   end
  966.   #--------------------------------------------------------------------------
  967.   # ● ファイル情报を描画したかどうか
  968.   #--------------------------------------------------------------------------
  969.   def file_info_draw?
  970.     ZiifSaveLayoutA::D_File || ZiifSaveLayoutA::D_Story ||
  971.     ZiifSaveLayoutA::D_Playtime
  972.   end
  973.   #--------------------------------------------------------------------------
  974.   # ● リーダー情报の描画
  975.   #--------------------------------------------------------------------------
  976.   def draw_leader_info
  977.     return 0, 0 unless ZiifSaveLayoutA::D_LeaderInfo && header?(:leader)
  978.     actor  = @header[:leader]
  979.     draw_x = 4
  980.     draw_y = (file_info_draw? ? line_height : 0)
  981.     # 顔グラフィック
  982.     if ZiifSaveLayoutA::D_Face
  983.       draw_actor_face(actor, draw_x, draw_y)
  984.       draw_x += 100
  985.     end
  986.     bw = draw_leader_base_info(actor, draw_x, draw_y + line_height)
  987.     nw = draw_leader_name_info(actor, draw_x, draw_y) - draw_x
  988.     # 详细情报の描画位置调整
  989.     if nw <= bw && bw > 0
  990.       draw_x += bw + 8
  991.     elsif nw > 0 && bw == 0
  992.       draw_y += line_height
  993.     elsif nw > bw && bw > 0
  994.       draw_x += bw + 8
  995.       draw_y += line_height
  996.     end
  997.     # 能力値
  998.     param_width = contents.width - draw_x
  999.     line = draw_leader_parameters(actor, draw_x, draw_y, param_width)
  1000.     draw_y += line * line_height
  1001.     # 装备
  1002.     line = draw_leader_equipments(actor, draw_x + 16, draw_y)
  1003.     draw_y += line * line_height
  1004.     return draw_x, draw_y
  1005.   end
  1006.   #--------------------------------------------------------------------------
  1007.   # ● リーダーの基本情报の描画 (最大描画幅を返す)
  1008.   #--------------------------------------------------------------------------
  1009.   def draw_leader_base_info(actor, x, y)
  1010.     draw_width = 0
  1011.     # レベル (名前の下に表示する场合)
  1012.     if ZiifSaveLayoutA::D_Level && ZiifSaveLayoutA::D_UnderName == :level
  1013.       draw_actor_level(actor, x, y)
  1014.       draw_width = [draw_width, 96].max
  1015.     end
  1016.     # 职业 (名前の下に表示する场合)
  1017.     if ZiifSaveLayoutA::D_Class && ZiifSaveLayoutA::D_UnderName == :class
  1018.       draw_actor_class(actor, x, y)
  1019.       draw_width = [draw_width, 112].max
  1020.     end
  1021.     # HP・MP
  1022.     if ZiifSaveLayoutA::D_HPMP
  1023.       draw_actor_hp(actor, x, y + line_height * 1)
  1024.       draw_actor_mp(actor, x, y + line_height * 2)
  1025.       draw_width = [draw_width, 124].max
  1026.     end
  1027.     return draw_width
  1028.   end
  1029.   #--------------------------------------------------------------------------
  1030.   # ● リーダーのネーム情报の描画 (描画位置を返す)
  1031.   #--------------------------------------------------------------------------
  1032.   def draw_leader_name_info(actor, x, y)
  1033.     draw_x = x
  1034.     # 名前
  1035.     if ZiifSaveLayoutA::D_Name
  1036.       draw_actor_name(actor, draw_x, y)
  1037.       draw_x += 126
  1038.     end
  1039.     # レベル (名前の下に表示しない场合)
  1040.     if ZiifSaveLayoutA::D_Level && ZiifSaveLayoutA::D_UnderName != :level
  1041.       draw_actor_level(actor, draw_x, y)
  1042.       draw_x += 80
  1043.     end
  1044.     # 职业 (名前の下に表示しない场合)
  1045.     if ZiifSaveLayoutA::D_Class && ZiifSaveLayoutA::D_UnderName != :class
  1046.       draw_actor_class(actor, draw_x, y)
  1047.       draw_x += 110
  1048.     end
  1049.     # 二つ名
  1050.     if ZiifSaveLayoutA::D_Nickname
  1051.       draw_actor_nickname(actor, draw_x, y)
  1052.       draw_x += 180
  1053.     end
  1054.     return draw_x
  1055.   end
  1056.   #--------------------------------------------------------------------------
  1057.   # ● リーダーの能力値の描画 (描画行数を返す)
  1058.   #--------------------------------------------------------------------------
  1059.   def draw_leader_parameters(actor, x, y, width = 120)
  1060.     return 0 unless ZiifSaveLayoutA::D_Param
  1061.     col_num    = [width / 128, 1].max
  1062.     draw_width = width / col_num
  1063.     6.times do |i|
  1064.       draw_x = x + draw_width  * (i % col_num) + 4
  1065.       draw_y = y + line_height * (i / col_num)
  1066.       draw_actor_param_with_width(actor, draw_x, draw_y, i + 2, draw_width - 8)
  1067.     end
  1068.     return (5 + col_num) / col_num
  1069.   end
  1070.   #--------------------------------------------------------------------------
  1071.   # ● 能力値の描画 (横幅付きで描画)
  1072.   #--------------------------------------------------------------------------
  1073.   def draw_actor_param_with_width(actor, x, y, param_id, width)
  1074.     change_color(system_color)
  1075.     draw_text(x, y, width - 36, line_height, Vocab::param(param_id))
  1076.     change_color(normal_color)
  1077.     draw_text(x + width - 36, y, 36, line_height, actor.param(param_id), 2)
  1078.   end
  1079.   #--------------------------------------------------------------------------
  1080.   # ● リーダーの装备品の描画 (描画行数を返す)
  1081.   #--------------------------------------------------------------------------
  1082.   def draw_leader_equipments(actor, x, y)
  1083.     return 0 unless ZiifSaveLayoutA::D_Equip
  1084.     actor.equips.each_with_index do |item, i|
  1085.       draw_item_name(item, x, y + line_height * i)
  1086.     end
  1087.     return actor.equips.size
  1088.   end
  1089.   #--------------------------------------------------------------------------
  1090.   # ● リーダー情报で顔グラフィック描画をしたかどうか (パーティ表示用)
  1091.   #--------------------------------------------------------------------------
  1092.   def leader_face_draw?
  1093.     header?(:leader) &&
  1094.     ZiifSaveLayoutA::D_LeaderInfo && ZiifSaveLayoutA::D_Face
  1095.   end
  1096.   #--------------------------------------------------------------------------
  1097.   # ● パーティの顔グラフィックの描画
  1098.   #--------------------------------------------------------------------------
  1099.   def draw_party_faces
  1100.     return unless ZiifSaveLayoutA::D_PartyFaces && header?(:faces)
  1101.     draw_y = (file_info_draw? ? line_height : 0)
  1102.     draw_y += [96, line_height * 4].max if ZiifSaveLayoutA::D_LeaderInfo
  1103.     draw_x = 4
  1104.     @header[:faces].each_with_index do |data, i|
  1105.       next if i == 0 && leader_face_draw?
  1106.       draw_face_height88(data[0], data[1], draw_x, draw_y)
  1107.       draw_x += 100
  1108.     end
  1109.   end
  1110.   #--------------------------------------------------------------------------
  1111.   # ● パーティの歩行グラフィックの描画
  1112.   #--------------------------------------------------------------------------
  1113.   def draw_party_characters
  1114.     return unless ZiifSaveLayoutA::D_Characters && header?(:characters)
  1115.     draw_y  = contents.height - 8
  1116.     draw_y -= line_height if ZiifSaveLayoutA::D_AG_Line
  1117.     draw_x  = 28
  1118.     @header[:characters].each_with_index do |data, i|
  1119.       draw_character(data[0], data[1], draw_x, draw_y)
  1120.       draw_x += 48
  1121.     end
  1122.   end
  1123.   #--------------------------------------------------------------------------
  1124.   # ● 顔グラフィックの描画 (高さを 88px で描画)
  1125.   #--------------------------------------------------------------------------
  1126.   def draw_face_height88(face_name, face_index, x, y, enabled = true)
  1127.     bitmap = Cache.face(face_name)
  1128.     rect = Rect.new(face_index % 4 * 96, face_index / 4 * 96 + 4, 96, 88)
  1129.     contents.blt(x, y + 4, bitmap, rect, enabled ? 255 : translucent_alpha)
  1130.   end
  1131. end
复制代码
回复

使用道具 举报

Lv5.捕梦者

梦石
0
星屑
39016
在线时间
5717 小时
注册时间
2006-11-10
帖子
6619
3
发表于 2024-10-13 20:46:03 | 只看该作者
本帖最后由 灯笼菜刀王 于 2024-10-13 20:47 编辑

215行替换成下面这两句
  1. a = @map_name_cache[map_id].gsub(/\\[Vv]\[(\d+)\]/){$game_variables[$1.to_i].to_s}
  2. return a.gsub(/\\[Nn]\[(\d+)\]/){$game_actors[$1.to_i].name}
复制代码


然后 在名字里加入  \\N[1] 就可以变成 1号角色的名字 加入 \\V[1] 是1号变量
回复

使用道具 举报

Lv2.观梦者

梦石
0
星屑
863
在线时间
297 小时
注册时间
2018-8-24
帖子
5
4
 楼主| 发表于 2024-10-13 21:10:53 | 只看该作者
本帖最后由 helsingtsai 于 2024-10-13 23:03 编辑
灯笼菜刀王 发表于 2024-10-13 20:46
215行替换成下面这两句


谢谢你的回答,用你提供方法的确能在存档当下时ˊ能正常显示,不过控制符我是使用\V[1] ,因为如果使用两条斜摃显示会多一条\,而且退出再重新进入游戏后,就会发现地图名称又会复原变成 "0",没能完全显示,不知还有没有什么地方可以调整的?
回复

使用道具 举报

Lv2.观梦者

梦石
0
星屑
863
在线时间
297 小时
注册时间
2018-8-24
帖子
5
5
 楼主| 发表于 2024-10-13 23:08:46 | 只看该作者
灯笼菜刀王 发表于 2024-10-13 23:00
你是要在存档里显示啊, 那替换成这个脚本吧

太棒了!现在已经可以了,感谢你的帮忙!
回复

使用道具 举报

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

本版积分规则

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

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

GMT+8, 2024-11-17 19:46

Powered by Discuz! X3.1

© 2001-2013 Comsenz Inc.

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