返信先: Arma3 スクリプト公開スレ
ホーム › フォーラム › TRI Gaming フォーラム › Arma3 スクリプト公開スレ › 返信先: Arma3 スクリプト公開スレ
追記:
先ほど某氏より
「森の中に基地を作りたいので、範囲内の木を倒すのでなく完全に消し去りたい」との依頼があり、色々試した結果方法を編み出せたので記載します。
こういった要望の場合、マップ固有のオブジェクトでHouse属性のある建造物の削除は簡単ですが、
それに属さないもの、とりわけ木やパイプ等のobjectにはclassnameの取得(typeof)が難しいモノがあります。
こういったモノを手っ取り早く削除するには、IDを使った方法が良い…と思います(現時点では。)
1.objectのIDを表示する
マップ固有のobjectにはIDが振られており、それを特定することで削除が可能です。
ID表示の方法はエディタツールの”ID”ボタンを押すか、Tools > Debug consoleを開いて以下のコマンドを打ちます。
do3DENAction "ToggleMapIDs"
この状態でマップを拡大していくと、白抜きに黒字の数字がたくさん出てくると思います。これがIDです。
これで消したいobjectのIDをひたすらメモります。めんどくさいです。
ここでは3本の木、1441,1440,1439を消すとします。
2.消したい範囲の直近にGame Logicを作る。
Variable name: log1
Cond: True
On act: {((position log1) nearestObject _x) hideobjectglobal true} foreach [1441,1440,1439];
[]には先程メモったIDを”,”で区切って入れていきます
Classnameが存在する場合はもっと簡単ですが…めんどくさいので後で書きます。
とりあえず以上の方法まで。