今回は弾薬や電力など、特定のアイテムの"動力"を定義する、
chargeprofilesテーブルを解析します。
※多分にネタバレを含みます。ご注意ください。
サンプルデータ
データの参照元はchargeprofiles.xmlです。
今回のサンプルは"flashlightの電力"です。
<table name="chargeprofiles">
<column name="nID">22</column>
<column name="strName">flashlight electricity</column>
<column name="strItemID">10.3</column>
<column name="fPerUse">0</column>
<column name="fPerHour">1</column>
<column name="fPerHourEquipped">0</column>
<column name="fPerHex">0</column>
<column name="bDegrade">0</column>
</table>
columnの解析
strNameは定義名です。どこかに表示される、ということはなさそうです。
strItemIDは"動力"として消費されるアイテムのID(GroupID.SubgroupID)です。
サンプルの場合は、"electric charge"を指定しています。
fPerUseはアイテムが使用された時に消費する"動力"の量です。
弾丸や矢などの消費は主にここで指定しています。
また、使用するたびに補充されるpower tapの電力は、ここで負の値を指定しています。
fPerHourはアイテムが1時間ごとに消費する"動力"の量です。
flashlightやノートパソコンなどの電力消費は主にここで指定しています。
fPerHourEquippedは装備時、1時間ごとに消費する"動力"の量です。
実例としてあるのはガスマスクのフィルターのみで、
"0.08"…つまり1時間ごとに8%消費するように設定されています。
fPerHexは使用されている形跡がないのでテストしてみましたが、
使用したまま移動してみたり、置いたまま離れて戻ってみても消費はされませんでした。
もしかしたらVehicleの動力用あたりで設定した変数なのかもしれません。
bDegradeもガスマスク用に実装された変数で、
"1"を指定すると消費された時に壊れた/劣化したものに変化します。
ガスマスクの場合は、conditionが0になるとGas Mask Cartridge (spent)に変化します。
もちろん、itemtypesでdegradeの設定はしておく必要があります。
また、いろいろと検証してみた結果ですが、
・ゲーム内で表示される消費量は特定の1つのみが反映される
(fPerUse>fPerHourEquipped>fPerHour>fPerHexの順に優先される)
・複数の消費パターンを設定した場合、消費量はすべて反映される
ことが分かりました。
仕様上では複合条件も適用できたため、
PerHourで緩やかに消費しPerUseで大きく消費するようなアイテムも問題なく作れそうですが、
ゲーム内ではPerUseのみの消費しか表記されません。
出来れば使用するのはどれか1つだけにした方が良さそうです。
0 件のコメント:
コメントを投稿