Project1

标题: 有沒有辦法像月之记忆一樣通关後改変游戏封面 [打印本页]

作者: etdracula    时间: 2014-11-16 14:37
标题: 有沒有辦法像月之记忆一樣通关後改変游戏封面
我想像月之记忆一樣通关後改変游戏封面
卻不知如何做到






通关後



作者: taroxd    时间: 2014-11-16 14:43
本帖最后由 taroxd 于 2014-11-16 14:45 编辑

https://rpg.blue/thread-362007-1-1.html
作者: tseyik    时间: 2014-11-16 14:52
本帖最后由 tseyik 于 2014-11-16 15:01 编辑
  1. #==============================================================================
  2. # ■ RGSS3 スイッチ依存タイトルグラフィック Ver1.00 by 星潟
  3. #------------------------------------------------------------------------------
  4. # 根據存儲在當前遊戲文件夾中保存的數據的開關的狀態
  5. # 更改標題圖片。
  6. # (若保存數據不是原始位置則本脚本不會有効)
  7. #==============================================================================
  8. module TITLE_SWITCH
  9.   
  10.   #根據開關指定的標題的圖形。
  11.   #[開關ID,第1個画像文件名,第2個画像文件名]的
  12.   #3項目為1組合。
  13.   #若百数個合適時、在下面的設定優先。
  14.   #不指定図象時
  15.   #文件名用""、
  16.   
  17.   T_GRAPHIC   = [
  18.   [1,"Night","Heroes"],
  19.   [2,"Sword","Fire"],
  20.   [3,"Book","Mist"],
  21.   [4,"Universe","Dragons"]
  22.   ]
  23.   
  24. end
  25. class Scene_Title < Scene_Base
  26.   #--------------------------------------------------------------------------
  27.   # 背景の作成
  28.   #--------------------------------------------------------------------------
  29.   alias create_background_title_switch create_background
  30.   def create_background
  31.    
  32.     #スイッチの情報を取得します。
  33.    
  34.     extract_savedata_switches
  35.    
  36.     #本来のタイトルグラフィック名を保存します。
  37.    
  38.     title1_name = $data_system.title1_name
  39.     title2_name = $data_system.title2_name
  40.    
  41.     #タイトルグラフィックをスイッチに応じて変更します。
  42.    
  43.     title_graphic_switch
  44.    
  45.     #本来の処理を実行します。
  46.    
  47.     create_background_title_switch
  48.    
  49.     #タイトルグラフィックの指定を元に戻します。
  50.    
  51.     $data_system.title1_name = title1_name
  52.     $data_system.title2_name = title2_name
  53.   end
  54.   #--------------------------------------------------------------------------
  55.   # スイッチ情報の取得
  56.   #--------------------------------------------------------------------------
  57.   def extract_savedata_switches
  58.    
  59.     #専用のスイッチ配列を生成します。
  60.     #他スクリプトとの競合を回避する為に、専用のデータを用意します。
  61.    
  62.     @switches_data = Game_Switches.new
  63.    
  64.     #データマネージャーで設定されたセーブファイル最大値の回数分だけ処理します。
  65.    
  66.     DataManager.savefile_max.times {|i|
  67.     begin
  68.       
  69.       #順番にセーブファイルを開きます。
  70.       
  71.       File.open(DataManager.make_filename(i), "rb") do |file|
  72.         
  73.         #とりあえずヘッダーをロードします。
  74.         
  75.         Marshal.load(file)
  76.         
  77.         #ファイルデータをロードします。
  78.         
  79.         contents = Marshal.load(file)
  80.         
  81.         #スイッチデータをデータ部分のみ抜き出します。
  82.         
  83.         switches        = contents[:switches].switch_data_get
  84.         
  85.         #各スイッチがtrueの場合のみ取得します。
  86.         
  87.         switches.each_with_index {|s, s_id|
  88.         @switches_data[s_id] = s if s
  89.       }
  90.       end
  91.     rescue
  92.     end
  93.     }
  94.   end
  95.   #--------------------------------------------------------------------------
  96.   # スイッチの状態に応じてタイトル画像を変更
  97.   #--------------------------------------------------------------------------
  98.   def title_graphic_switch
  99.    
  100.     #設定データの上から順に処理を行います。
  101.    
  102.     TITLE_SWITCH::T_GRAPHIC.each {|data|
  103.     next if !@switches_data[data[0]]
  104.     $data_system.title1_name = data[1]
  105.     $data_system.title2_name = data[2]
  106.     }
  107.   end
  108. end
  109. class Game_Switches
  110.   #--------------------------------------------------------------------------
  111.   # スイッチデータをデータ部分のみ抜き出す
  112.   #--------------------------------------------------------------------------
  113.   def switch_data_get
  114.     @data
  115.   end
  116. end
复制代码





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