操作ボタンを押すと扉が開くというギミックを作ってみます。
イメージはこんな感じ
扉と目印になるボタンを作ります。
扉はこんな設定にしました。
targetname に door1 と明記しているところに注意してください。
この名前はあとでスクリプトからも参照されます。
key に -1 を指定することでドアに触れても開かないようになります(ボタンを操作したときだけ開く)。
同様にボタン部分も func_door で作ってみました。
targetname は button1 としました。
本当は、誤作動を防ぐためにボタンは func_door じゃなくて別のもので作ったほうがいいんですが
面倒なのでとりあえず。
トリガーを設置します。
いつものように trigger_multiple ではなく func_invisible_user でトリガーを作ります。
func_invisible_user はユーズキー(Fキー)を押したときだけ発動するエンティティです。
もうひとつ、近くに target_script_trigger という小さなエンティティを配置します。
target_script_trigger はスクリプトの関数を呼び出すためのエンティティです。
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用スクリプト] (リンク切れ)
ンゴゴゴゴ・・・・