本稿ではMOD作成の前提として、xmlに書かれた情報を解析していきます。
今回はあらゆるアイテムの生成について設定しているtreasuretableテーブルです。
MOD作成時には必ずと言っていいほど手を付ける場所なので、しっかり把握しておきましょう。
※多分にネタバレを含みます。ご注意ください。
サンプルデータ
データの参照元はtreasuretable.xmlです。
今回はwhiskeyのボトルとその中身を生成するテーブルがサンプルです。
<table name="treasuretable">
<column name="id">227</column>
<column name="strName">whiskey</column>
<column name="aTreasures">11.2x1.0x1-1,98.8x1x6-12</column>
<column name="bNested">1</column>
<column name="bSuppress">1</column>
<column name="bIdentify">0</column>
</table>
column解析
strNameはテーブル名です。ゲーム中には反映されません。
aTreasuresは、そのテーブルで生成するアイテムです。
生成するアイテムはAxBxCの形で設定され、
A:"itemtypes"テーブルのnGroupID、nSubgroupIDの組
もしくは"treasuretable"テーブルのid
B:アイテムの生成確率(1.0=100%)
C:アイテムの生成数(最小値-最大値)
と言う風に設定できるようです。
生成アイテムは複数個設定が可能で、
区切りには","を使用します。
bNestedに"1"を設定していると、
そのテーブル内で生成されるcontainerの中に、
他の生成物をできるだけ格納するようになります。
今回のサンプルでは、whiskeyのボトルに
whiskeyが詰まった状態で生成されることになります。
bSuppressに"1"を設定していると、
生成時に"itemtypes"テーブルのnTreasureIDで中身が設定されるアイテム、
サンプルで言えばwhiskeyのボトルのようなものがあった場合、
その中身を生成せずにcontainerだけを生成します。
containerの中身を変更、もしくは固定したい場合に使う設定です。
bIdentifyに"1"を設定していると、
生成物はすべて鑑定済みになります。(水やベリーなど)
店で販売される商品や、未開封(という設定)のものに使われます。
アイテムやレシピなどを生成する際、
treasuretableテーブルは必ず関係してくる要素です。
特にbNested,bSuppress,bIdentifyの扱いに慣れておくと
アイテム生成時の細かい表現に活用できます。
少なくとも、設定項目の意味だけでも覚えておきましょう。
0 件のコメント:
コメントを投稿