RPGツクールVX Ace - Script.rvdata2に関して
久々に触ると忘れていたのでメモしておこう。
あおたくノート - [Ruby][RGSS] GitでRPGツクールをバージョン管理する
Script.rvdata2の中身
- Script.rvdata2は配列の配列。
- スクリプト毎に、
- みたいな構造の配列で、これがMarshal.dumpでバイナリ化されたものがScript.rvdata2として出力されてる。
- なのでMarshal.loadすると、配列の配列が返る。
- ただ、このうちスクリプトの中身(3番目のデータ)はZlibで圧縮されているので、展開しないと読めない。
展開の仕方
- 展開の仕方は、まずZlibを使えるようにする。
require "Zlib"
- その上でScript.rvdata2をMarshal.loadする。
file = File.open("Script.rvdata2", "r")
scripts = Marshal.load(file)
file.close
scripts.each{|one| # スクリプトデータそれぞれの、
print Zlib::Deflate.deflate(one[2]) # 3番目(2)の要素をZlibで展開する。
}
逆(Zlib::Inflate.inflate)のことをすると、Script.rvdata2を自分で出力できる。
Zlibの使い方がわからず、Zlib::Deflate()みたいにしていてエラーが出て苦労した。