cfgいじり
ent_fire, ent_setname, !picker, !player, !callerのあたりを正しく理解して、SourceEngineのマップのアーキテクチャを知るとだいぶcfg scriptで出来ることの世界が広がる。それはそれとしてとりあえず今日は一人対戦練習用のcfgを煮詰めた。
Jump鯖みたいな感じで自動で回復してくれるスクリプト
// auto healing script for practice (tank bhop or infected) alias heal "heal1" alias heal1 "alias heal heal2; impulse 101; givecurrentammo; wait 100; heal;" alias heal2 "alias heal heal1; impulse 101; givecurrentammo; wait 100; heal;" alias none "" alias heal_none "alias heal none" alias "healing_on" "alias heal heal1; heal" alias "healing_off" "heal_none" alias "t_healing" "t_healing_on" alias "t_healing_on" "alias t_healing t_healing_off; say healing_on; healing_on;" alias "t_healing_off" "alias t_healing t_healing_on; say healing_off; healing_off;" bind "t" "t_healing" heal_none; // default is disable
tでon/offのtoggle. impulse 101/givecurrentammoでammoとhealth回復
playerのentityのoutputにOnDamagedがなかったのでent_fireは使えなかった。残念。
チームごとのセントリーガンを生成
alias "spawn_sentrygun" "spawn_sentrygun_blue" alias "spawn_sentrygun_blue" "ent_create obj_sentrygun; ent_fire !picker setteam 3; ent_fire !picker skin 1" alias "spawn_sentrygun_red" "ent_create obj_sentrygun; ent_fire !picker setteam 2; ent_fire !picker skin 2" bind "g" "spawn_sentrygun_red" // redチームのSGを出す bind "b" "spawn_sentrygun_blue" // blueチームのSGを出す
!pickerでAimingしてる先にあるEntityを指定できる。!playerはこのコマンドを発行しているプレイヤー自身
キルカメラ省略
respawn timeというのは、mp_respawnwavetime + kill cameraの分なので、最短でも4秒くらいかかるんだけど、一人練習するときそういうのいらないので消すと早い
spec_freeze_traveltime 0 spec_freeze_time 0
画面に表示する情報の制御
マップ作るときに便利
r_DrawDisp 1 Displacementの表示可否(でこぼこ地形) r_drawdecals 1 Decalの表示可否(表面のに貼付けるスプレーみたいなもの) r_drawworld 1 World Brushを描画するかどうか(普通の壁とか) r_drawentities 1 Entityを描画するかどうか(アイテムとかそういうの) r_drawfuncdetail 1 func_detailは複雑な地形を一つのオブジェクトに変換したもの r_drawclipbrushes 2 noclipブラシを描画出来る。これ結構便利で、見えない壁を可視化できる、のでここ乗れるのかーとかそういうの探すのに便利 r_drawleaf 不明。おそらくvvisのときにどういうleaf分割されるかというのの可視化。 r_drawlightinfo 1 光源の設定をチェックできる r_DrawModelLightOrigin 1 光源の方向 r_drawmodelstatsoverlay 1 設置されてるpropsのmodel名とか、マテリアルの名前がリアルタイムに見れるやつ mapper向け r_drawothermodels 2 壁透けてオブジェクト(prop_dynamicとかitem_healthpackとか)が見れるようにする