今回はencounterの発生条件を定義するencountertriggersテーブルを解析します。
※多分にネタバレを含みます。ご注意ください。
サンプルデータ
データの参照元はencountertriggers.xmlです。
今回のサンプルは初めて夜を迎えたときのイベント用トリガーです。
<table name="encountertriggers">
<column name="id">3</column>
<column name="strName">First nightfall</column>
<column name="nEncounterID">23</column>
<column name="fChance">1</column>
<column name="bLocBased">0</column>
<column name="bDateBased">1</column>
<column name="bHexBased">0</column>
<column name="bUnique">1</column>
<column name="bAIPassable">1</column>
<column name="aArea">0,0,1000</column>
<column name="dateMin">1000-0-1-22</column>
<column name="dateMax">9999-11-31-23</column>
<column name="aHexTypes">1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,27,28,29,30,31,32,33,34</column>
</table>
columnの解析
strNameは定義名です。どこかに表示されることはありません。
nEncounterIDはそのトリガーで発生するencounterのIDです。
fChanceは、条件を満たした時にトリガーが発生する確率です。
基本的には"1"、つまり100%発生するように設定されています。
bLocBasedは座標ベースのトリガー発生フラグで、
"1"を指定するとaAreaで指定されたエリアに入った時にトリガーが発生します。
bDateBasedは日時ベースのトリガー発生フラグで、
"1"を指定するとdateMinおよびdataMaxで指定された日時にトリガーが発生します。
bHexBasedはHex種別ベースのトリガー発生フラグで、
"1"を指定するとaHexTypesで指定されたHexに入った時にトリガーが発生します。
"1"を指定するとaHexTypesで指定されたHexに入った時にトリガーが発生します。
"1"が指定されていれば、トリガーは1度だけ使用されます。
bAIPassableに関しては資料がありませんでした。
そのトリガー発生地点をAI(NPC?)が通れるかどうか…みたいなものだと思っていますが、
検証も難しいので、詳細が分かるまでは保留しておきます。
aAreaはトリガーが発生するエリアで
(x座標,y座標,中心点からの範囲)で指定されます。
基本的には範囲0で運用するようなものですが、
Zom Zom's周辺エリア到達時のイベントで使われるような設定も可能です。
dateMinおよびdateMaxは、そのトリガーが発生しうる時間帯で、
サンプルを例に挙げて説明すると
"1000年1月1日22時から9999年12月31日23時の間"ではなく、
"1000年から9999年、1月から12月、1日から31日、22時から23時の間"
という解釈だと思っています。
(月に関しては"0~11"なので勝手に+1しています。)
つまり年月日は問わず、最初に22時から23時の時間帯になった時に
指定されたイベントが発生する、という仕組みになっているようです。
aHexTypesはそのトリガーが発生しうるHexで、
数値はhextypesテーブルのIDに対応しているようです。
encountertriggersはシナリオ作成においてよく使われるため、
細かい条件の設定方法はしっかり頭に入れておきましょう。
また、設定したトリガーはゲーム開始時に適用されます。
トリガー改変後に進行中のセーブデータを読み込んでもそのトリガーは適用されません。
テストを行う上で重要なポイントなので覚えておいてください。
0 件のコメント:
コメントを投稿