天制覇wiki PUK(パワーアップキット)

スクリプト仕様書2.0

最終更新:

匿名ユーザー

- view
だれでも歓迎! 編集

スクリプト仕様書2.0


2008/12/10
                         イベントスクリプト2.0 コマンド仕様書


この仕様書はver1.0との追加変更分のみ記載されています。
基本的な使用は、「イベントスクリプト1.0 コマンド仕様書」をご覧ください。

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

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

bNNN.txt			部下プレーイベント 最大b100.txtまで
bNNNc.txt			部下プレーイベント完了チェック 
eNNN.txt			ドラマイベント 最大e300.txtまで
xNNN.txt			verX専用イベント 最大x100.txt
hNNN.txt			メーカー営業イベント NNN:兵器IDに対応
mNNN.txt			副官イベント 最大m100.txtまで


イベントファイル全体で記述できる行数は500行に拡張されました。
コメントや空行を含みます。


----------------------------------------------------------------------------
●コマンドパラメータの追加仕様
----------------------------------------------------------------------------
各スクリプトの人物IDを人物ファイル名でも指定できるようになりました。
ただし、同じファイル名を使用している人物を指定した場合は、NGとなります。
これによって、従来は、オルドパック等の人物でイベントの作成はできません
でしたが、この辺が可能になります。ただし、バイオノイドは指定できません。

例)
set_epid1,152		<-人物ID指定
set_epid1,fnm110  <-ファイル名指定


その他、ほとんどのコマンドで、IDの間接表現ができるようになりました。

*人物IDの間接指定
	fukukan ->現在の副官IDを指定
	poid_bval0 -> bval[0]に入っている人物IDの覇王IDを指定
	poid_player -> プレイヤーの覇王IDを指定
	yome_player -> プレイヤーの嫁IDを指定
	soid_10 -> 惑星IDが10を持つ覇王IDを指定
	3kan_player -> 覇王、闘将、文将のいずれか身分の低い人物ID


*艦隊IDの間接指定
	fid_player -> プレイヤーが乗っている艦隊ID


*惑星IDの間接指定
	pwid_bval0 -> bval[0]に入っている人物IDが現在いる惑星IDを指定
	cap_player -> プレイヤーの首都IDを指定
	cap_pid1   -> pid1に入っている人物IDの首都IDを指定
	pwid_player -> プレイヤーのいる惑星IDを指定
	pwid_pid1  -> pid1に入っている人物IDのいる惑星IDを指定
	pwid_100  -> 人物ID100のいる惑星IDを指定

----------------------------------------------------------------------------
●イベントフラグ
----------------------------------------------------------------------------
イベントフラグ eveflg
新たに、フラグNO 100-199 を追加しました。
これは勅命システム専用のフラグNOです。
勅命が終了もしくはキャンセルすると0にクリアされます。


勅命システム専用フラグ bval
勅命システムでは、専用のイベントフラグがあります。
基本的にイベントファイル内で自由に値の設定、取得ができますが、
コマンドによっては、処理結果をbvalに設定したりしますので、通常はeveflg
のフラグNO 100-199を使用します。
bval[0]からbval[9]まで9個の変数を利用できます。


コマンドの実行結果フラグ pval
コマンドの実行結果をpvalという変数に設定するコマンドがあります。
pvalに入る値は実行するコマンドによって異なります。
詳細は各リファレンスを参照してください。

----------------------------------------------------------------------------
●人物変数 epid
----------------------------------------------------------------------------
イベントスクリプト2.0では、set_pidに変わって、set_epidが使用されます。
人物IDを設定するという機能は同じですが、さまざまなIDの指定ができます。

----------------------------------------------------------------------------
●新しいイベント実行スタイル
----------------------------------------------------------------------------
zin_serif_init、zin_serif_add、zin_drw に変わって、
zin_reg_init、zin_reg_msg、zin_reg_eventになりました。
機能は同じですが、イベントの実行スタイルが変更になっています。
以前のものは、セリフを事前に登録して、zin_drwでまとめて実行するスタイル
でしたが、新しいzin_regでは、コマンド実行時にリアルタイムで実行されて
いきます。
新しいzin_reg_xxxxxでは以前に比べて多くのコマンドが追加されています。



基本的な使用方法

//これはおきまりでzin_reg_event実行前に実行
zin_reg_init
//以前のzin_drwに相当
zin_reg_event,勅命 建築 レベル4,3kan_player,player,zin96,on_wid
//以前のzin_serif_addに相当
	zin_reg_msg,お呼びでしょうか?,1
//OKボタンを表示
zin_reg_button,0
//イベント終了時におきまりで実行
zin_reg_exit




※今後イベントを追加する場合はzin_reg_xxxxxを使用してください。ver2.0の実行コマンドの各種は、zin_serif_init~zin_drwおよびzin_old_init~zin_old_drwの間で記述すると誤動作を起こす場合があります。


ver2.0で使用が推奨されないver1.0のコマンド一覧
zin_kitai
zin_kitai_add
zin_add_wapon
zin_yuko
zin_add_yuko
zin_old_flush
zin_oldmove
zin_oldonet
zin_oldbraw
zin_oldimg
zin_param_add
zin_depl_face
zin_face_add
zin_seloop_stop
zin_seloop
zin_wave
zin_title
zin_serif_wav
zin_serif_add
zin_old_init
zin_serif_init

*****************************************************************************
●発生条件コマンドリファレンス
*****************************************************************************
if_not_fukukan
副官とプレイヤーの覇王が異なる場合にイベント発生

----------------------------------------------------------------------------
if_chksts,人物ID,ステータスID,判定値
人物ステータスの判定を行い、判定値がtrueなら、イベント発生

判定値
	数値の他に大小指定<>ができます。等しい場合はそのまま数値を記述。

ステータスID一覧
	0	//状態ステータス
	1	//忠誠
	2	//年齢
	3	//性別
	4	//勲功
	5	//智謀
	6	//艦隊指揮
	7	//地上指揮
	8	//格闘戦
	9	//外交
	10 //奇策
	11 //オルド性格
	12 //友好度
	13 //役職
	14 //初膜
	15 //オルド回数
	17 //未婚 0 既婚 >0

例)
if_chksts,fukukan,12,<50
この場合は、副官の親密値が50より小さい場合に実行 となります。

if_chksts,fukukan,0,3
副官のステータスが3(死亡状態)であれば実行 となります。

----------------------------------------------------------------------------
if_chk_smon,覇王ID,金額
指定覇王の首都星に指定の金がある場合にイベント発生

----------------------------------------------------------------------------
if_not_tyoho,人物ID
指定の人物は諜報中ではない場合にイベント発生

----------------------------------------------------------------------------
if_not_oid,覇王ID1,覇王ID2
指定した覇王ID1とID2は同一人物ではない場合にイベント発生

----------------------------------------------------------------------------
if_sint,覇王ID,恒星ID
覇王IDが恒星IDを統一している場合にイベント発生

----------------------------------------------------------------------------
if_not_sint,覇王ID,恒星ID
覇王IDが恒星IDを統一していない場合にイベント発生

----------------------------------------------------------------------------
if_virgin,人物ID
指定の人物が処女である場合にイベント発生

----------------------------------------------------------------------------
if_not_virgin,人物ID
指定の人物が処女でない場合にイベント発生

----------------------------------------------------------------------------
if_chk_item_box,人物ID
人物IDのアイテム枠にアキがある場合にイベント発生

----------------------------------------------------------------------------
if_chk_son,人物ID,年齢
人物IDに指定年齢以上の息子がいる場合にイベント発生

----------------------------------------------------------------------------
if_chk_king_mid
bval[0]の結婚相手 他国の王族から探す 結婚相手がいる場合にイベント発生
実行結果をbcal[1]に設定する

----------------------------------------------------------------------------
if_chk_fam,人物ID
人物IDの妻・夫・子が他勢力の惑星上にいる場合にイベント発生
pvalに他勢力にいる人物IDが入る

----------------------------------------------------------------------------
if_flt_wid_on,人物ID
指定の人物が自国の惑星上、もしくは艦隊勤務で移動中の場合にイベント発生

----------------------------------------------------------------------------
if_pwid_on_ext,人物ID
指定の人物が自国の惑星上にいる場合にイベント発生

----------------------------------------------------------------------------
if_fltmove,人物ID
指定の人物は、艦隊移動中である場合にイベント発生

----------------------------------------------------------------------------
if_bldnum,惑星ID,建築種別,建築数
指定の惑星に指定の建築が指定の数になった場合にイベント発生

----------------------------------------------------------------------------
if_bldnum_dec,惑星ID,建築種別,建築数
指定の惑星に指定の建築が指定の数以下になった場合にイベント発生

----------------------------------------------------------------------------
if_yaku,人物ID,役職ID
指定の人物が指定の役職にある場合にイベント発生

----------------------------------------------------------------------------
if_not_yaku,人物ID,役職ID
指定の人物が指定の役職ではない場合にイベント発生

----------------------------------------------------------------------------
if_chk_ouzoku
プレイヤーの惑星に王族がいる(覇王のぞく)場合にイベント発生

----------------------------------------------------------------------------
if_bval,bvalID,判定値
bvalの内容判定

例)
if_bval,0,10
もし、bval[0]=10であればイベント発生

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

----------------------------------------------------------------------------
if_amon,月
指定の月になるとイベント発生、毎年その月になると発生する

*****************************************************************************
●実行コマンドリファレンス
*****************************************************************************
bl_fadein,gzinファイル名

ブラックフェードイン

----------------------------------------------------------------------------
bl_fadeout

ブラックフェードアウト

----------------------------------------------------------------------------
zin_reg_fl,人物ID
zin_reg_fr,人物ID

イベントに表示される左右の顔グラを人物IDのものに変更する

----------------------------------------------------------------------------
chk_sts,人物ID,ステータスID,判定値

実行ブロック中のステータス判定処理
人物ステータスの判定を行い、
判定値がtrueなら、chk_sts_then以降を実行
判定値がfalseなら、chk_sts_else以降を実行

判定値
	数値の他に大小指定<>ができます。等しい場合はそのまま数値を記述。

ステータスID一覧
	0	//状態ステータス
	1	//忠誠
	2	//年齢
	3	//性別
	4	//勲功
	5	//智謀
	6	//艦隊指揮
	7	//地上指揮
	8	//格闘戦
	9	//外交
	10 //奇策
	11 //オルド性格
	12 //友好度
	13 //役職
	14 //初膜
	15 //オルド回数
	17 //未婚 0 既婚 >0

例)
chk_sts,100,12,>90
chk_sts_then
	//人物ID100の親密度が90以上の処理
	end
chk_sts_else
	//人物ID100の親密度が90以下の処理
	end

----------------------------------------------------------------------------
chk_eveflg,イベントフラグID,判定値

実行ブロック中のイベント判定
判定値がtrueなら、chk_eveflg_then以降を実行
判定値がfalseなら、chk_eveflg_else以降を実行

例)
chk_eveflg,49,<10
イベントフラグ49の値が10より小さい場合にchk_eveflg_then以降を実行
----------------------------------------------------------------------------
goto,*ラベル名

指定ラベルへジャンプ
gotoより上のラベルにはジャンプできないので注意 <-繰り返し処理はできない
ラベルの先頭には*をつける

例)
goto,*label1
	zin_reg_msg,おい、貴様,1
	zin_reg_msg,うん? 誰だお前は?,0
*label1
	zin_reg_msg,貴様、何者だ!!,0
	zin_reg_msg,フフ、そんな腕で勝てるのか?,1
----------------------------------------------------------------------------
select_pid,人物ID
case_人物ID
人物IDごとに処理を分岐する

例)
pid1の人物IDが100だった場合、case_100へ処理が移動する
case_100の処理が終了した場合、最後にgotoコマンドがないと、そのまま以下の
コマンドを実行してしまうので注意。

select_pid,pid1
case_100
	zin_reg_msg,おい、貴様,1
	zin_reg_msg,うん? 誰だお前は?,0
	goto,*label1
case_200
	zin_reg_msg,貴様、何者だ!!,0
	zin_reg_msg,フフ、そんな腕で勝てるのか?,1
	goto,*label1
case_300
	zin_reg_msg,おい、貴様,1
	zin_reg_msg,うん? 誰だお前は?,0
	goto,*label1
default
	zin_reg_msg,おい、貴様,1
	zin_reg_msg,うん? 誰だお前は?,0

*label1

----------------------------------------------------------------------------
zin_reg_event,タイトル文字,人物ID1,人物ID2,zinファイル名,gzinファイル名

イベント画面を表示する

----------------------------------------------------------------------------
zin_reg_button,ボタンID

イベントにボタン表示する
ボタンID
	0:OKボタン
    3:2択
    4:外交3択
    5:捕虜3択
    6:捕虜2択
    9:オルド 強引にやる 2択
    10:営業2択
    11:外交2択
    12:バイオノイド購入選択
    13:技術購入2択
----------------------------------------------------------------------------
zin_reg_face,人物ID	←中央に顔表示
zin_reg_face_r,人物ID
zin_reg_face_l,人物ID

左右の顔グラを指定の人物に変更する。

----------------------------------------------------------------------------
zin_reg_cls,zinファイル名

背景を指定のzinファイルに変更する

----------------------------------------------------------------------------
set_epid1,人物ID
set_epid2,人物ID
set_epid3,人物ID

pid1,2,3に人物IDを設定します。
set_pidと同じ機能ですが、人物IDの間接指定が拡張されています。
今後のメンテナンスはset_epidを対象とし、set_pidはメンテナンスの対象外としています。

----------------------------------------------------------------------------
chk_same_wid,人物ID1,人物ID2

人物ID1と人物ID2は同じ惑星上に存在するか?
存在する場合はYES,しない場合はNOが設定される。
get_respコマンドにて、判定結果を取得する。

例)
chk_same_wid,100,101
get_resp
ret_yes
	//同じ惑星に存在する場合の処理
	end
ret_no
	//同じ惑星に存在しない場合の処理
	end

----------------------------------------------------------------------------
get_ftomov,艦隊ID

指定された艦隊IDの移動先を得る。
結果はpvalに惑星IDが入る。

----------------------------------------------------------------------------
get_fno,艦隊ID

指定された艦隊IDの艦隊番号(第XX艦隊)を得る。
結果はpvalに艦隊番号が入る。

----------------------------------------------------------------------------
get_foid,艦隊ID

指定された艦隊IDの覇王IDを得る。
結果はpvalに覇王IDが入る。

----------------------------------------------------------------------------
get_bval,bvalID

bval変数の値を取得する。
結果はcaseにて処理を分岐する。
default指定はないので注意。

例)
get_bval,4
case1
	//bval[4]の値が1の場合の処理
	end
case2
	//bval[4]の値が2の場合の処理
	end
case3
	//bval[4]の値が3の場合の処理
	end

----------------------------------------------------------------------------
get_wid,人物ID

指定の人物がいる惑星IDを得る。
結果はpvalに惑星IDが入る。

----------------------------------------------------------------------------
set_bval,bvalID,設定値

bval変数に設定値を設定する
例)
set_bval,0,100
bval[0]に100を設定する

----------------------------------------------------------------------------
zin_dialog,メッセージ

オペレータダイアログを表示する

----------------------------------------------------------------------------
set_tyokumei,1

勅命を実行中に設定する

----------------------------------------------------------------------------
clear_tyokumei

勅命の実行を解除する

----------------------------------------------------------------------------
set_tyoku_time,年数

勅命の有効期間を年数で設定する

----------------------------------------------------------------------------
up_pkun1,人物ID

指定の人物を1階級昇格させる

----------------------------------------------------------------------------
txtload,イベントファイル名

他のイベントファイルへジャンプする。
イベントファイル名に拡張子.txtは不要。

----------------------------------------------------------------------------
bgm_se,効果音ID

効果音を鳴らす

----------------------------------------------------------------------------
zin_kitai,人物ID

人物IDが持つアイテム専用機を表示する。

----------------------------------------------------------------------------
add_dev,覇王ID,アップ数

指定覇王の技術力をアップ数だけ増加させる。
ただし、アップ数x10000 の首都星資金が減少する。

----------------------------------------------------------------------------
set_flagship,人物ID,旗艦ID

人物IDの旗艦を指定した旗艦に設定する。

----------------------------------------------------------------------------
set_hourou,人物ID

人物IDを放浪状態(状態ステータス:5)にする。

----------------------------------------------------------------------------
set_rikon,人物ID

人物IDが結婚している場合、離婚状態に設定する。

----------------------------------------------------------------------------
dec_sinmitu,人物ID,減少値

人物IDの親密度を減少値だけ減らす。

----------------------------------------------------------------------------
add_sinmitu,人物ID,増加値

人物IDの親密度を増加値だけ増やす。

----------------------------------------------------------------------------
set_sinmitu,人物ID,親密値

人物IDの親密度を指定の値に設定する。

----------------------------------------------------------------------------
set_non_virgin,人物ID

人物IDを初膜なし状態に設定する

----------------------------------------------------------------------------
set_virgin,人物ID

人物IDを初膜状態に設定する
ver1.09以降

----------------------------------------------------------------------------
add_lic,覇王ID,ライセンスID,破棄フラグ

指定覇王にライセンスを追加する。
破棄フラグはすでに持っている同種のライセンス(戦艦、戦車、補給艦など)を
破棄するかどうかを設定する。

破棄フラグ:0:同種のライセンスを破棄しない
            1:同種のライセンスを破棄する

----------------------------------------------------------------------------