バイナリファイルに関するMODの記述ルールです。producttype.datとか、rf\unitdata.datとかが主な操作対象だと思います。
- インデックス指定
- グループ指定
1、条件部
インデックス指定
CSV形式ファイルと異なり、バイナリファイルの場合は、条件部と操作部を完全に独立させることができませんでした。そのため、インデックス指定で条件部を書いたら操作部もインデックス指定で書く必要が出てきます。
バイナリファイル全体を2文字(1バイト?)ずつで区切られた大きな配列とみなし、添え数(インデックス)を指定して変更する場所を指し示す方法です。
競合とかの問題の発生の可能性はありますが、多分バイナリファイルでデータを途中に挿入したりする人はそんないないと思うのでこの方法だけでも大丈夫と判断しました。
・条件部
- ・1つ目の要素
- まずはインデックス指定の方法で条件部を書くことを示す必要があります。そのため、最初の要素には"0"と書いてください。
- ・2つ目の要素
- 変更したい場所のインデックスを書いてください。
- ・3つ目の要素
- 条件部の終了を示すため、空白(スペースではない)のデータを入れます。2つ目の要素を書き終えるときに","を2回押せばOKです。
・操作部(入れ替え)
- ・1つ目の要素
- まずは入れ替えを行う事を示す必要があります。最初の要素は0としてください。
- ・2つ目の要素
- 最後は入れ替えるデータ(16進数で)を書いてください。。
2、グループ指定
一定の大きさのデータを1つのグループとして扱う指定方法です。
例えば、リアルファイトのデータはファイルヘッダが16バイトあり、その後は58バイトで1兵器のリアルファイトを保管するようになっています。17バイト目(1番目の兵器のリアルファイトデータの最初の部分)を変更しようとした時、インデックス指定だと"17バイト目"と指定することになりますが、グループ指定だと"1グループ目の1番目"と指定することになります。
・グループ設定
- ・1つ目の要素
- まずはグループ指定の方法で条件部を書くことを示す必要があります。そのため、最初の要素には"1"と書いてください。
- ・2つ目の要素
- ファイルヘッダが何バイトなのかを示します。例えば、リアルファイトでは16、生産タイプでは4といった感じです。
ファイルヘッダとは、文章の見出しみたいなやつで、直接データ保管にはかかわっていない部分のことを指します。
- ・3つ目の要素
- 1グループが何バイトで構成されているのかを示します。
・条件部
CSV形式ファイルでいう簡易論理文指定のような条件部の構成となっています。
- ・1つ目の要素
- 条件を満たすかどうか調べる要素はグループの何番目なのかを書きます。
- ・2つ目の要素
- 次の要素と等しいものを検索するのか、次の要素と異なるものを検索するのか、を指定します。等しいものを探す場合"=="、異なるものを探す場合"!="です。
- ・3つ目の要素
- 各データと比較するデータを16進数で書きます。"兵器IDが○○である"の○○の部分に当たるデータです。
- ・4つ目の要素
- 検索の方法(?)みたいなのを指定します。AかつB、という風にしたい場合は"&"を、AまたはB、という風にしたい場合は"|"を記述します。
条件部の最後にもこの要素を記述する必要がありますが、その時は何も記述しないでください。
- ・以降の要素
- 示したい条件が完成するまで、2つ目〜5つ目の要素を繰り返し記述できます。条件部の最後の要素は、何も記述しないという点に注意してください。
・操作部(入れ替え)
- ・1つ目の要素
- まずは入れ替えを行う事を示す必要があります。最初の要素は0としてください。
- ・2つ目の要素
- グループの何番目の要素を入れ替えるのかを書いてください。。
- ・3つ目の要素
- 最後は入れ替えるデータ(16進数で)を書いてください。
トップへ