Advertisement
Guest User

Script Japonés conocido (xD) - por Username

a guest
Apr 24th, 2019
401
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 7.77 KB | None | 0 0
  1. =begin
  2.    ★ゲーム内共有変数★
  3.  
  4. 設定箇所で指定したスイッチと変数を、
  5. セーブファイルの違いなど関係なく、ゲーム全体で共有します。
  6.  
  7. 素材の一番下に挿入することをオススメします。
  8.  
  9. ● 仕様 ●==========================================================
  10. スクリプト導入後にセーブするとゲームフォルダ内に新しく
  11. "PublicData"
  12. というrvdataファイルが自動的に作成されます。
  13. --------------------------------------------------------------------
  14. 共有データセーブのタイミングは、通常のセーブ時&シャットダウン時(設定可)、
  15. 共有データロードのタイミングは、通常のロード時&ゲーム立ち上げ時です。
  16. --------------------------------------------------------------------
  17. ゲーム立ち上げ時にも共有データファイルをロードするため、
  18. タイトル画面にも変数やスイッチが反映されます。
  19. ====================================================================
  20.  
  21. ● 注意 ●==========================================================
  22. PublicData.rvdataが作成された後に、このスクリプトの設定を変更した場合、
  23. ロード時にエラーを吐くことがあります。
  24. その場合は、古いPublicData.rvdataを削除してからゲームを起動してください。
  25. ====================================================================
  26.  
  27. ● イベントについて ●==============================================
  28. イベントコマンドのスクリプトに、
  29. PUBLIC_DATA.write_public_data
  30. と記述すると、任意のタイミングで共有データのセーブを行うことができます。
  31. エンディング時などにどうぞ。
  32. --------------------------------------------------------------------
  33. また、この記述をスクリプトエディタの任意の箇所にすると、
  34. そのタイミングで共有データのセーブを行います。
  35. 戦闘終了後強制セーブなど、スクリプトができる人はどうぞ改造に。
  36. ====================================================================
  37.  
  38. ※「スクリプト内グローバル変数」の部分に限り、
  39. サポート対象外とさせていただきます。ゴメンネ。
  40.  
  41. ver1.01
  42.  
  43. Last Update : 2011/12/14
  44. 12/14 : ソースコードの見直し
  45. ----------------------2011--------------------------
  46. 04/08 : 新規
  47. ----------------------2009--------------------------
  48.  
  49. ろかん   http://kaisou-ryouiki.sakura.ne.jp/
  50. =end
  51.  
  52. module PUBLIC_DATA
  53. #----------------------------------------------------------------------------
  54. # ● 設定箇所ここから
  55. #----------------------------------------------------------------------------
  56. # 共有するスイッチ番号 (例 : SWITCH = [3, 7, 12])
  57. SWITCH = [294,296,293,292,295,290,291,319]
  58. # 共有する変数番号 (例 : VARIABLE = [1, 6])
  59. VARIABLE = [92,93,98,99,100]
  60. # 通常のセーブと同時に共有データのセーブも行うかどうか(true/ false)
  61. S_AUTOSAVE = true
  62. # シャットダウンと同時に共有データのセーブも行うかどうか(true/ false)
  63. D_AUTOSAVE = false
  64. #==========================================================================
  65. # ● 以下、スクリプトが少しわかる人向け設定箇所
  66. #==========================================================================
  67. # 共有する変数の書き込み
  68. def self.public_script_global_variable_save(file_name)
  69. # Marshal.dump($abc, file_name) # このような形で追加 $abcの部分を変更
  70. end
  71. # 共有する変数の読み込み
  72. def self.public_script_global_variable_load(file_name)
  73. # $abc = Marshal.load(file_name) # このような形で追加 $abcの部分を変更
  74. end
  75. #----------------------------------------------------------------------------
  76. # ● 設定箇所ここまで
  77. #----------------------------------------------------------------------------
  78. end
  79.  
  80. $rsi ||= {}
  81. $rsi["ゲーム内共有変数"] = true
  82.  
  83. #==============================================================================
  84. # ■ PUBLIC_DATA
  85. #------------------------------------------------------------------------------
  86. #  共有データの書き込み、読み込みを実行するモジュール
  87. #==============================================================================
  88. module PUBLIC_DATA
  89. # 共有データファイル名
  90. FILE_NAME = "PublicData"
  91. #--------------------------------------------------------------------------
  92. # ● 共有データの書き込み
  93. #--------------------------------------------------------------------------
  94. def self.write_public_data
  95. file = File.open("#{FILE_NAME}.rvdata", "wb")
  96. $public ||= {}
  97. $public[0] = SWITCH
  98. $public[1] = VARIABLE
  99. Marshal.dump($public, file)
  100. $public[0].each{|i| Marshal.dump($game_switches[i], file)}
  101. $public[1].each{|i| Marshal.dump($game_variables[i], file)}
  102. public_script_global_variable_save(file)
  103. file.close
  104. end
  105. #--------------------------------------------------------------------------
  106. # ● 共有データの読み込み
  107. #--------------------------------------------------------------------------
  108. def self.read_public_data
  109. if File.exist?("#{FILE_NAME}.rvdata")
  110. file = File.open("#{FILE_NAME}.rvdata", "rb")
  111. $public = Marshal.load (file)
  112. $public[0].each{|i|
  113. $game_switches[i] = Marshal.load(file) if SWITCH.include?(i)
  114. }
  115. $public[1].each{|i|
  116. $game_variables[i] = Marshal.load(file) if VARIABLE.include?(i)
  117. }
  118. public_script_global_variable_load(file)
  119. file.close
  120. end
  121. end
  122. end
  123.  
  124. class Scene_Title < Scene_Base
  125. #--------------------------------------------------------------------------
  126. # ● 各種ゲームオブジェクトの作成
  127. #--------------------------------------------------------------------------
  128. alias public_data_create_game_objects create_game_objects
  129. def create_game_objects
  130. public_data_create_game_objects
  131. PUBLIC_DATA.read_public_data
  132. end
  133. #--------------------------------------------------------------------------
  134. # ● コマンド : シャットダウン
  135. #--------------------------------------------------------------------------
  136. alias public_data_command_shutdown command_shutdown
  137. def command_shutdown
  138. PUBLIC_DATA.write_public_data if PUBLIC_DATA::D_AUTOSAVE
  139. public_data_command_shutdown
  140. end
  141. end
  142.  
  143. class Scene_File < Scene_Base
  144. #--------------------------------------------------------------------------
  145. # ● セーブの実行
  146. #--------------------------------------------------------------------------
  147. alias pablic_save do_save
  148. def do_save
  149. PUBLIC_DATA.write_public_data if PUBLIC_DATA::S_AUTOSAVE
  150. pablic_save
  151. end
  152. #--------------------------------------------------------------------------
  153. # ● ロードの実行
  154. #--------------------------------------------------------------------------
  155. alias pablic_load do_load
  156. def do_load
  157. pablic_load
  158. PUBLIC_DATA.read_public_data
  159. end
  160. end
  161.  
  162. class Scene_End < Scene_Base
  163. #--------------------------------------------------------------------------
  164. # ● コマンド [シャットダウン] 選択時の処理
  165. #--------------------------------------------------------------------------
  166. alias shutdown_public_save command_shutdown
  167. def command_shutdown
  168. PUBLIC_DATA.write_public_data if PUBLIC_DATA::D_AUTOSAVE
  169. shutdown_public_save
  170. end
  171. end
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement