2007/12/12
                         イベントスクリプト1.0 コマンド仕様書


実際はこのコマンドリファレンスに載っていないコマンドが複数あります。
それらは、取り扱いが難しいため、あえて掲載しておりません。
特に実行コマンドは、事前に十分な発生条件の確認がないと、致命的エラーで簡単に落ちます。

----------------------------------------------------------------------------
●イベントファイル
----------------------------------------------------------------------------
イベントファイルは、rai6/eveフォルダにあるテキストファイルです。

eNNN.txt			シナリオイベント 最大e300.txtまで
xNNN.txt			verX専用イベント 最大x100.txtまで
hNNN.txt			メーカー営業イベント NNN:兵器IDに対応
その他のファイル	プログラム内イベントファイル

イベントファイルは、自由に作成して追加することができます。
追加できるのは、eNNN.txtファイルとxNNN.txtファイルです。
NNNは3桁の連番になります。現在、使用されていない番号でイベントファイルを追加することができます。
ただし、イベントファイルが増えると、処理が重くなっていきますので、ご利用のパソコンの性能によっては、遅くなる場合があります。

----------------------------------------------------------------------------
●イベントファイルの基本構成
----------------------------------------------------------------------------

                             [イベント発生条件のブロック]
eve_start
	//このイベントが発生する年月は93年4月
	if_date,107,3
	//惑星ID:18に基地司令が存在するか?
	if_sirei,7
	//アキが覇王である
	if_pkun,432,13000
eve_end
                            [イベント実行コマンドのブロック]
set_pid1,poid,0
set_pid2,soid,22
bgm_chg,26
zin_serif_init
zin_title,ブラウンの呼び出し
//	zin_serif_add,0123456789012345678901,0
	zin_serif_add,そろそろp_name1も肝を冷やしておろう,0
	zin_serif_add,要塞の影におびえておるでしょうな,1
	zin_serif_add,よし、そろそろ降伏の使者を出すか,0
	zin_serif_add,その役目、私にお任せを,1
	zin_serif_add,おお、そちが行ってくれるか,0
	zin_serif_add,end,4
zin_drw,p_name1はアグデッパに降伏しました,pid1,625,0,,gzin5
set_eveflg,17,4
end


イベントファイル全体で記述できる行数は100行までです。コメントや空行を含みます。
イベントの発生条件をeve_start/eve_endのブロックで囲みます。囲まれていない部分は、実行コマンドとして解釈されます。
イベント発生条件のブロックは、最大20行までです。コメントや空行を含めて20行なので、注意してください。
コマンドの途中で改行はできません。
カンマの前後にスペースを入れてはいけません。
if_date,93,4 → OK
if_date, 93, 4 → NG
ファイルの最後は、必ずendを記述します。

セリフの吹き出し部分は、zin_serif_init/zin_drwコマンドで囲みます。
実際のセリフ表示は、zin_serif_addコマンドで表示します。
セリフの最後には必ずzin_serif_add,end,4の記述が必要です。
//はコメントになります。


----------------------------------------------------------------------------
●コマンドパラメータの意味
----------------------------------------------------------------------------
・人物ID
各人物に割り当てられているIDです。pson.csvの最初の列に記載があります。
オルドパックの人物等、拡張csvファイルの人物は指定できません。
数値だけでなく、次の特殊指定を指定できます。
特殊指定
poid_player -> プレイヤー陣営の覇王ID
poid_030 -> 人物ID30の覇王ID
soid_05 -> 惑星ID5を支配する覇王ID
dfid_05 -> 惑星ID5の基地司令ID
player -> プレイヤーID
pid1 -> pid1に設定した人物ID
pid2 -> pid2に設定した人物ID
pid3 -> pid3に設定した人物ID


・状態ステータス
人物の状態を示すIDです。
  1:オルド種子  2:仕官中  3:死亡  4:海賊
  5:放浪中  6:商人  7:村娘  8:捕虜  9:大衆大奥
 10:アシスタント  11:運びや 12:占い師
  13:全部将モード時のプレイヤー種子
  20:KMD営業  21:Antel  22:CycoPlus


・惑星ID
各惑星に割り当てられているIDです。pnet.csvの最初の列に記載があります。
特殊指定
pwid_player -> プレイヤーのいる惑星ID
pwid_030 -> 人物ID30がいる惑星ID


・勲功
人物の階級です。
12100:姫  12200:妃  12300:王子  12600:女覇王の旦那
12700:太后  13000:覇王

----------------------------------------------------------------------------
●イベントフラグ
----------------------------------------------------------------------------
イベントの発生状況をイベントフラグという変数に記憶できます。
イベントフラグはフラグNO 0から99まで用意されています。
このうち、0から69はシステムで使用しますので、ユーザーは、70から99の値を自由に
設定変更できます。
起動時点は、すべてのイベントフラグは0になっています。

例えば、このイベントフラグを使用して前後のイベントを関連づけることができます。
前イベントファイルの最後で、フラグNO 70 にフラグ値 1 を設定したあと、
set_eveflg,70,1
後イベントファイルの発生条件で
if_eveflg,70,1
とすれば、前イベントが発生した場合のみ、後イベントを発生する
という関連付けができます。
ただし、後イベントファイルの最後で
set_eveflg,70,2
という設定がないと、フラグNO 70 は 1 のままですので、後イベントが何度も
発生してしまいます。

フラグ値は0から999まで指定できますので、徐々にフラグ値を増加させると
連続した一連のイベントを関連付けできます。

----------------------------------------------------------------------------
●人物変数 pid
----------------------------------------------------------------------------
人物のIDをpid1/2/3という変数に設定しておくことができます。
set_pid1,500,0
としておくと、以降、人物IDを指定するところに、pid1を指定すると、すべて
ID500の人物として解釈されます。

人物変数に人物IDを設定すると、セリフやメッセージの中に人物名を表示させる
ことができます。
以下のp_name1という部分は、ID500の人物名に置き換わります。
zin_serif_add,そろそろp_name1も肝を冷やしておろう,0

----------------------------------------------------------------------------
●発生条件コマンドリファレンス
----------------------------------------------------------------------------
if_psts,人物ID,状態ステータス
人物IDの状態ステータスが指定した状態ステータスと等しい場合 イベント発生
人物の状態を確認します。

----------------------------------------------------------------------------
if_rnd,乱数値
乱数を発生させ、1が出た場合 イベント発生
確率によりイベントを発生させます。
1/乱数値 という確率になります。
乱数値は2以上を指定してください。
----------------------------------------------------------------------------
if_aft_date,暦年
指定した暦年以降であれば イベント発生
暦年以降の年になった場合、イベントの発生対象になります。

----------------------------------------------------------------------------
if_bef_date,暦年
指定した暦年以前であれば イベント発生

----------------------------------------------------------------------------
if_date,暦年,月
指定した年月になった場合、イベント発生

----------------------------------------------------------------------------
if_player,人物ID
指定の人物がプレイヤーの場合 イベント発生

----------------------------------------------------------------------------
if_not_player,人物ID1,人物ID2
指定の人物がプレイヤーではない場合 イベント発生
人物を2名同時に指定できます。
1人しかチェックしない場合は、人物ID2に0を指定してください。

----------------------------------------------------------------------------
if_syowaku,惑星ID
指定の惑星が商業惑星の場合、イベント発生

----------------------------------------------------------------------------
if_not_syowaku,惑星ID
指定の惑星が商業惑星でない場合、イベント発生

----------------------------------------------------------------------------
if_same_oid,人物ID1,人物ID2
指定の人物2人が同じ覇王の配下にいる場合、イベント発生

----------------------------------------------------------------------------
if_cnt_wid,覇王ID,惑星数
指定の覇王が指定数以上惑星を保有している場合、イベント発生

----------------------------------------------------------------------------
if_poid,人物ID,覇王ID
指定の人物が指定覇王の配下にいる場合、イベント発生

----------------------------------------------------------------------------
if_not_poid,人物ID,覇王ID
指定の人物が指定覇王の配下にいない場合、イベント発生

----------------------------------------------------------------------------
if_pkun,人物ID,勲功
指定の人物が指定の勲功値と等しい場合

----------------------------------------------------------------------------
if_pnen,人物ID,年齢
指定の人物が指定の年齢と等しい場合

----------------------------------------------------------------------------
if_pwid_on,人物ID
指定の人物が惑星上にいる場合(移動中ではない)

----------------------------------------------------------------------------
if_psex,人物ID,性別
指定の人物が指定の性別の場合
1:男
2:女

----------------------------------------------------------------------------
if_cap,惑星ID,覇王ID
指定の惑星が指定の覇王の首都星である場合

----------------------------------------------------------------------------
if_not_cap,惑星ID,覇王ID
指定の惑星が指定の覇王の首都星でない場合

----------------------------------------------------------------------------
if_hid,惑星ID,覇王ID
指定の惑星が指定の覇王の領地の場合

----------------------------------------------------------------------------
if_not_hid,惑星ID,覇王ID
指定の惑星が指定の覇王の領地の場合

----------------------------------------------------------------------------
if_pwid,人物ID,惑星ID
指定の人物が指定の惑星にいる場合

----------------------------------------------------------------------------
if_not_pwid,人物ID,惑星ID
指定の人物が指定の惑星にいない場合
※このコマンドの人物ID,惑星IDは、数値しか指定できません。

----------------------------------------------------------------------------
if_same_pwid,人物ID1,人物ID2
指定の人物が同じ惑星上にいる場合

----------------------------------------------------------------------------
if_not_same_pwid,人物ID1,人物ID2
指定の人物が同じ惑星上にいない場合

----------------------------------------------------------------------------
if_not_eveflg,フラグNO,フラグ値
指定のフラグNOがフラグ値と異なる場合

----------------------------------------------------------------------------
if_eveflg,フラグNO,フラグ値
指定のフラグNOがフラグ値と等しい場合


----------------------------------------------------------------------------
●実行コマンドリファレンス
----------------------------------------------------------------------------
set_pid1,p1,p2
pid1に人物ID p1 を設定します。
p1には次の指定ができます。
soid -> 惑星ID p2 の覇王ID
dfid -> 惑星ID p2 の基地司令ID
player -> プレイヤーのID
poid -> 人物ID p2 の覇王ID、p2が0の場合、プレイヤーの覇王ID

----------------------------------------------------------------------------
add_eveflg,フラグNO,増加値
指定のフラグNOの現在値に、増加値をプラスします。

----------------------------------------------------------------------------
set_eveflg,フラグNO,フラグ値
指定のフラグNOにフラグ値をセットします。

----------------------------------------------------------------------------
rnd,乱数値
case0/1/2/3・・・・
end
乱数値に基づく乱数を発生させ、発生した値ごとに処理を分岐します。
乱数値4を指定した場合、0から3の乱数が発生します。
その場合は、case0/1/2/3のcase文が必要です。
乱数値には2以上を指定してください。
各case文の最後は、必ずendを記述してください。
記述方法については、eveフォルダのイベントファイルを参考にしてください。

----------------------------------------------------------------------------
bgm_stop
BGMを停止します。

----------------------------------------------------------------------------
bgm_chg,BGM番号
BGMを変更します。
BGM番号には、20-33,41-46,48-50,55-64 が指定できます。

----------------------------------------------------------------------------
zin_serif_init
セリフバッファを初期化します。登録されたセリフはすべて消去されます。

----------------------------------------------------------------------------
zin_title,タイトル文字
タイトル文字を表示します。

----------------------------------------------------------------------------
zin_serif_add,セリフ文字,表示位置
セリフバッファにセリフを登録します。
セリフ文字は、最大21文字までです。
セリフ中にcrがあるとそこで改行します。
例) "おれはcr覇王だ!!"
セリフ中にp_name1という表記があると、pid1に設定していある人物名を設定します。
事前にpid1を設定しておく必要があります。
表示位置は吹き出し位置(0:左、1:右)になります。
セリフの最後には、セリフ文字にend、表示位置に4 を指定します。

----------------------------------------------------------------------------
zin_face_add,人物ID
イベントウインドの中央に指定人物の顔CGを表示します。
※このコマンドの人物IDは数値もしくはpidしか指定できません。

----------------------------------------------------------------------------
zin_drw,終了文字,人物ID1,人物ID2,処理ID,中央背景画像,全体背景画像
セリフバッファの内容を再生します。
終了文字 → イベントが終了したとき表示されるタイトル
人物ID1 → 左に表示される人物ID
人物ID2 → 右に表示される人物ID
処理ID →
    0:OKボタンを出して終了
		1:OKボタンなし。waitなしで次に進む
		2:msgbarを表示する。
		3:2択

----------------------------------------------------------------------------
get_resp
ret_yes/ret_no
zin_drwで処理IDに3を指定した場合、その結果を取得します。
通常、zin_drwの直後に記述してください。

ret_yes → YESを選択した場合の処理を以降に記述します。
ret_no → NOを選択した場合の処理を以降に記述します。

処理の最後には、endを記述してください。

----------------------------------------------------------------------------
set_tami100,惑星ID
指定した惑星の民忠誠度を100にします。

----------------------------------------------------------------------------
up_pkun2,人物ID
指定した人物を2階級アップさせます。

----------------------------------------------------------------------------
down_pkun2,人物ID
指定した人物を2階級ダウンさせます。

----------------------------------------------------------------------------
set_wmon,惑星ID,金額
指定した惑星に金額分だけ資金が増えます。

----------------------------------------------------------------------------
set_maxsts,人物ID
指定した人物の、知力、艦隊指揮、外交スキル、を最大にします。

----------------------------------------------------------------------------
sickdead,人物ID
指定した人物を病死させます。

----------------------------------------------------------------------------
set_psts,人物ID,状態ステータス,覇王ID,存在する惑星ID,勲功,忠誠度,年齢
人物のパラメータを変更します。
致命的エラーが発生する確率の高いコマンドです。取り扱いには注意が必要です。
各パラメータは、0を設定すると、現在の値を保持します。

※このコマンドの惑星IDは数値しか指定できません。

----------------------------------------------------------------------------
set_pkon,人物ID1,人物ID2
人物ID1と人物ID2を結婚させます。

※このコマンドの人物IDは数値しか指定できません。

----------------------------------------------------------------------------
psn_putsex,オルドタイプ,人物ID,CGタイプ
指定した人物のオルド画像を表示します。
オルドタイプ
	1:黒子オルド
	2:人物ごとのオルド画像
CGタイプ
	1:通常オルドCG
	2:拷問オルドCG
オルドCGは人物ごとに有無があります。オルドCGを持たない人物は指定できません。
オルドCGの有無はpson.csvを確認してください。

----------------------------------------------------------------------------
get_item,人物ID,アイテムID
指定した人物に、指定したアイテムを付与します。
アイテムIDは、item.csvを参照してください。

※このコマンドの人物IDはpidもしくは数値しか指定できません。
----------------------------------------------------------------------------