遠隔操作ドア


概要

操作ボタンを押すと扉が開くというギミックを作ってみます。

イメージはこんな感じ

no image

扉とボタン

扉と目印になるボタンを作ります。

扉はこんな設定にしました。

no image

targetname に door1 と明記しているところに注意してください。
この名前はあとでスクリプトからも参照されます。
key に -1 を指定することでドアに触れても開かないようになります(ボタンを操作したときだけ開く)。

同様にボタン部分も func_door で作ってみました。

no image

targetname は button1 としました。
本当は、誤作動を防ぐためにボタンは func_door じゃなくて別のもので作ったほうがいいんですが
面倒なのでとりあえず。

func_invisible_user と target_script_trigger

トリガーを設置します。

いつものように trigger_multiple ではなく func_invisible_user でトリガーを作ります。
func_invisible_user はユーズキー(Fキー)を押したときだけ発動するエンティティです。

no image

もうひとつ、近くに target_script_trigger という小さなエンティティを配置します。
target_script_trigger はスクリプトの関数を呼び出すためのエンティティです。

no image

func_invisible_user から target_script_trigger へターゲット設定して、それぞれのエンティティの詳細を設定します。

func_invisible_user

Key: cursorhint Value: HINT_BUTTON

cursorhint はこのエンティティ内にプレイヤーが入ったときに表示するアイコンを指定します。

target_script_trigger

Key: target Value: fire Key: scriptname Value: door_opener

scriptname で呼び出すスクリプトの名前を、target で呼び出す trigger 関数の名前を指定します。

スクリプト

以下のスクリプトを マップ名.script と マップ名_tdm.script に追加します。

door_opener { trigger fire { alertentity door1 alertentity button1 } }

だいたい想像できると思いますが

alertentity ターゲット名

で、指定したターゲット名の func エンティティを強制動作させます。

完成

ex-remote-door.map [マップ] (リンク切れ)
ex-remote-door.script [OBJ用スクリプト] (リンク切れ)
ex-remote-door_tdm.script [BC用スクリプト] (リンク切れ)

no image

ンゴゴゴゴ・・・・