Project1
标题:
能不能写一段脚本使RMVA读取特定文件里的数据
[打印本页]
作者:
5439sims2
时间:
2012-2-15 19:28
标题:
能不能写一段脚本使RMVA读取特定文件里的数据
比如说用RMVA代码写一个脚本,使他把Data等文件夹写入一个Data.dat的文件里,之后通过某种脚本读取这个文件中的Data.dat文件里的文件,之后更新时只要更新这个文件就可以了!
作者:
tseyik
时间:
2012-2-15 22:58
本帖最后由 tseyik 于 2012-2-16 10:02 编辑
你可參考
QuickLoad劇本
原網頁
http://mdc-light.jpn.org/TYPE74RX-T/update_history.html
這個在保存时自動生成「RX_SaveFileInfos.dat」
【从最后保存的地方开始】
B按钮+F12
【从最后SAVE的地方开始】
C按钮+F12。
#
# クイックロード(RGSS3)
# (C)2012 TYPE74RX-T
#
#==============================================================================
# ■ SceneManager
#------------------------------------------------------------------------------
# シーン遷移を管理するモジュールです。たとえばメインメニューからアイテム画面
# を呼び出し、また戻るというような階層構造を扱うことができます。
#==============================================================================
class << SceneManager # module内のエイリアス
alias rx3_1201202_first_scene_class first_scene_class
def first_scene_class
# ★ クイックロードモードの条件を満たしていたらクイックロードに飛ぶ
return Scene_RX_QuickLoad if rx_quick_load?
rx3_1201202_first_scene_class # メソッド呼び戻し
end
end
module SceneManager
#--------------------------------------------------------------------------
# ★ クイックロードモードの条件を満たしているか
#--------------------------------------------------------------------------
def self.rx_quick_load?
$RX_QLOAD = 0
Input.update
$RX_QLOAD = 1 if Input.press?(:C) # 最後にロードしたファイルから始める
$RX_QLOAD = 2 if Input.press?(:B) # 最後にセーブしたファイルから始める
chk = Dir.glob('RX_SaveFileInfos.dat').size > 0 && $RX_QLOAD > 0
return chk
end
end
#==============================================================================
# ■ Scene_Save
#------------------------------------------------------------------------------
# セーブ画面の処理を行うクラスです。
#==============================================================================
class Scene_Save < Scene_File
#--------------------------------------------------------------------------
# ● セーブ成功時の処理
#--------------------------------------------------------------------------
alias rx3_1201202_on_save_success on_save_success
def on_save_success
index_save # ★ セーブしたファイルインデックス情報を書き込む
rx3_1201202_on_save_success # メソッド呼び戻し
end
#--------------------------------------------------------------------------
# ★ セーブしたファイルインデックス情報を書き込む
#--------------------------------------------------------------------------
def index_save
chk = rx_read_load_index # インデックス情報があれば、それを読み込む
file = File.open("RX_SaveFileInfos.dat", "wb")
# ファイルインデックス情報ファイルがなければ、仮に -1 を記録
chk ? Marshal.dump(@rx_load_index, file) : Marshal.dump(-1, file)
Marshal.dump(@index, file)
file.close
end
#--------------------------------------------------------------------------
# ★ ロードしたファイルインデックス情報を読み込む
#--------------------------------------------------------------------------
def rx_read_load_index
chk = Dir.glob('RX_SaveFileInfos.dat').size > 0
return false unless chk
file = File.open("RX_SaveFileInfos.dat", "rb")
@rx_load_index = Marshal.load(file)
sav_id = Marshal.load(file)
file.close
return true
end
end
#==============================================================================
# ■ Scene_Load
#------------------------------------------------------------------------------
# ロード画面の処理を行うクラスです。
#==============================================================================
class Scene_Load < Scene_File
#--------------------------------------------------------------------------
# ● ロード成功時の処理
#--------------------------------------------------------------------------
alias rx3_1201202_on_load_success on_load_success
def on_load_success
index_save # ★ ロードしたファイルインデックス情報を書き込む
rx3_1201202_on_load_success # メソッド呼び戻し
end
#--------------------------------------------------------------------------
# ★ ロードしたファイルインデックス情報を書き込む
#--------------------------------------------------------------------------
def index_save
rx_read_save_index # 先にセーブしたファイルインデックス情報を読み込む
file = File.open("RX_SaveFileInfos.dat", "wb")
Marshal.dump(@index, file)
Marshal.dump(@rx_save_index, file)
file.close
end
#--------------------------------------------------------------------------
# ★ セーブしたファイルインデックス情報を読み込む
#--------------------------------------------------------------------------
def rx_read_save_index
file = File.open("RX_SaveFileInfos.dat", "rb")
rx_load_index = Marshal.load(file)
@rx_save_index = Marshal.load(file)
file.close
end
end
#==============================================================================
# ★ Scene_RX_QuickLoad
#------------------------------------------------------------------------------
# クイックロードの処理を行うクラスです。
#==============================================================================
class Scene_RX_QuickLoad < Scene_MenuBase
#--------------------------------------------------------------------------
# ● 開始処理
#--------------------------------------------------------------------------
def start
super
quick_load
end
#--------------------------------------------------------------------------
# ● クイックロード
#--------------------------------------------------------------------------
def quick_load
index = read_index
if index >= 0
$game_system.on_after_load if DataManager.load_game(index)
SceneManager.goto(Scene_Map)
else
SceneManager.goto(Scene_Title)
end
end
#--------------------------------------------------------------------------
# ● インデックス情報をロード
#--------------------------------------------------------------------------
def read_index
file = File.open("RX_SaveFileInfos.dat", "rb")
load_index = Marshal.load(file)
save_index = Marshal.load(file)
file.close
return load_index if $RX_QLOAD == 1
return save_index if $RX_QLOAD == 2
end
end
复制代码
@a = 65535
@f = File.open("Data.dat","wb")
Marshal.dump(@a,@f)
便是把数字65535转换成Marshal格式的字串,并丢进档案Data.dat里面。
欢迎光临 Project1 (https://rpg.blue/)
Powered by Discuz! X3.1