返信先: Arma3 スクリプト公開スレ

ホーム フォーラム TRI Gaming フォーラム Arma3 スクリプト公開スレ 返信先: Arma3 スクリプト公開スレ

#286321
denbo72
参加者

どうもこんばんは。denbo72です。

さて、今回紹介するのはエディターの皆様がしばしば悩まれているであろう

・救出対象がいる建物を壊れないようにしたい…
・しかしエディターで建物を壊れないようにすると窓がすべて防弾ガラスになってしまう…

・TSP Breach Mod導入されたけど、エディターで設置した建物のドアがロックできない…

といった問題を、一括で解決できるよう

建物の窓をすべて割り、ドアをすべてロックし、最後に建物を破壊不能にするスクリプトです。

名前
brokenwindow+doorlock.sqf

Mission Edit Roomのファイルブラウザ>>スクリプト>>brokenwindow+doorlock.zipにスクリプトと説明スクショが入ってます。
説明スクショ

使い方
建物のinitに
call{[this] execVM “scripts\brokenwindow+doorlock.sqf”;}
を記入してください。

中身

if (!isServer) exitWith {};

private ["_house","_numwindow","_numdoor"];

_house = (_this select 0);

_numwindow = [(configfile >> "CfgVehicles" >> typeOf _house),"numberOfWIndows",0] call BIS_fnc_returnConfigEntry;

_numdoor = [(configfile >> "CfgVehicles" >> typeOf _house),"numberOfDoors",0] call BIS_fnc_returnConfigEntry;

_house allowdamage true;

switch true do{

	case (_numwindow < 1 && _numdoor < 1):
	{
		_house allowdamage false;
	};
	
	case (_numwindow < 1 && _numdoor >= 1):
	{
		for "_i" from 1 to _numdoor do {_house setVariable [format ['bis_disabled_Door_%1',_i],1,true]};
		_house allowdamage false;
	};
	
	case (_numwindow >= 1 && _numdoor < 1):
	{
		for "_i" from 1 to _numwindow do {_house setHit [format ['glass_%1',_i],1,false]};
		_house allowdamage false;
	};
	
	case (_numwindow >= 1 && _numdoor >= 1):
	{
		for "_i" from 1 to _numwindow do {_house setHit [format ['glass_%1',_i],1,false]};
		for "_i" from 1 to _numdoor do {_house setVariable [format ['bis_disabled_Door_%1',_i],1,true]};
		_house allowdamage false;
	};
	
	default
	{
		_house allowdamage false;
	};	
};

既知の問題
ドアや窓ガラスはあるものの、Config Viewerで確認すると”numberOfWIndows”および”numberOfDoors”の項目が存在しない建物が
CUPやJbadに一部存在します。そうした建物で上記のスクリプトを使っても問題は発生しませんが、当然ながらドアはロックされず、
窓は割れません(建物自体は破壊不能になります)。

  • この返信は2年、 11ヶ月前にdenbo72が編集しました。
  • この返信は2年、 11ヶ月前にdenbo72が編集しました。
  • この返信は2年、 11ヶ月前にdenbo72が編集しました。
  • この返信は2年、 11ヶ月前にdenbo72が編集しました。
  • この返信は2年、 11ヶ月前にdenbo72が編集しました。