1.Taruに次のスクリプトを適用させる。(コードは領域内ダブルクリックで全選択できます)
(Taruの名前) addAction ["Attach Cargo","taruCargoAttach.sqf",nil,1.5,true,true,""," (_this in _target) and ((count (nearestObjects [_target,[ 'Land_Pod_Heli_Transport_04_ammo_F', 'Land_Pod_Heli_Transport_04_box_F', 'Land_Pod_Heli_Transport_04_repair_F', 'Land_Pod_Heli_Transport_04_fuel_F', 'Land_Pod_Heli_Transport_04_medevac_F', 'Land_Pod_Heli_Transport_04_bench_F', 'Land_Pod_Heli_Transport_04_covered_F' ],3])) != 0) and (getDir ((nearestObjects [_target,[ 'Land_Pod_Heli_Transport_04_ammo_F', 'Land_Pod_Heli_Transport_04_box_F', 'Land_Pod_Heli_Transport_04_repair_F', 'Land_Pod_Heli_Transport_04_fuel_F', 'Land_Pod_Heli_Transport_04_medevac_F', 'Land_Pod_Heli_Transport_04_bench_F', 'Land_Pod_Heli_Transport_04_covered_F' ],3]) select 0) - (getDir _target) < 10) and (getDir ((nearestObjects [_target,[ 'Land_Pod_Heli_Transport_04_ammo_F', 'Land_Pod_Heli_Transport_04_box_F', 'Land_Pod_Heli_Transport_04_repair_F', 'Land_Pod_Heli_Transport_04_fuel_F', 'Land_Pod_Heli_Transport_04_medevac_F', 'Land_Pod_Heli_Transport_04_bench_F', 'Land_Pod_Heli_Transport_04_covered_F' ],3]) select 0) - (getDir _target) > -10) and (isNull (_target getVariable ['Taru_cargo',objNull])) "] ; (Taruの名前) addAction ["Detach Cargo",{(_this select 0) allowDamage false ; detach ((_this select 0) getVariable "Taru_cargo") ; ((_this select 0) setVariable ["Taru_cargo",objNull]) ; sleep 1 ; (_this select 0) allowDamage true ;},nil,1.5,true,true,""," (_this in _target) and (!isNull (_target getVariable ['Taru_cargo',objNull])) and speed _target < 5 and speed _target > -5 and (getPosATL _target select 2) < 5 "] ;2.次のスクリプトに"taruCargoAttach.sqf"と名前をつける。
_taru = _this select 0 ; _cargo = _this select 1 ; if (!isNil "_cargo") then { _cargo = ((nearestObjects [_taru,[ "Land_Pod_Heli_Transport_04_ammo_F", "Land_Pod_Heli_Transport_04_box_F", "Land_Pod_Heli_Transport_04_repair_F", "Land_Pod_Heli_Transport_04_fuel_F", "Land_Pod_Heli_Transport_04_medevac_F", "Land_Pod_Heli_Transport_04_bench_F", "Land_Pod_Heli_Transport_04_covered_F" ],3]) select 0) ; } ; if (!(typeOf _cargo in [ "Land_Pod_Heli_Transport_04_ammo_F", "Land_Pod_Heli_Transport_04_box_F", "Land_Pod_Heli_Transport_04_repair_F", "Land_Pod_Heli_Transport_04_fuel_F", "Land_Pod_Heli_Transport_04_medevac_F", "Land_Pod_Heli_Transport_04_bench_F", "Land_Pod_Heli_Transport_04_covered_F" ])) exitWith {} ; _slingPosX = -0.0954387 ; _zCoef = -0.236002 ; if (typeOf _cargo in ["Land_Pod_Heli_Transport_04_ammo_F","Land_Pod_Heli_Transport_04_box_F","Land_Pod_Heli_Transport_04_repair_F"]) then { _cargo attachTo [_taru,[ (_slingPosX), 2.36 + ((boundingBox _cargo) select 0 select 1), 0.35 + ((boundingBox _cargo) select 0 select 2) + _zCoef ]] ; } ; if (typeOf _cargo in ["Land_Pod_Heli_Transport_04_fuel_F"]) then { _cargo attachTo [_taru,[ (_slingPosX - 0.063), (((boundingBox _cargo) select 0 select 1) + 2.395), (((boundingBox _cargo) select 0 select 2) + 0.47) + _zCoef ]] ; } ; if (typeOf _cargo in ["Land_Pod_Heli_Transport_04_medevac_F"]) then { _cargo attachTo [_taru,[ (_slingPosX - 0.036), (((boundingBox _cargo) select 0 select 1) + 3.03), (((boundingBox _cargo) select 0 select 2) + 0.99) + _zCoef ]] ; } ; if (typeOf _cargo in ["Land_Pod_Heli_Transport_04_covered_F"]) then { _cargo attachTo [_taru,[ (_slingPosX), (((boundingBox _cargo) select 0 select 1) + 3.01), (((boundingBox _cargo) select 0 select 2) + 1.19) + _zCoef ]] ; } ; if (typeOf _cargo in ["Land_Pod_Heli_Transport_04_bench_F"]) then { _cargo attachTo [_taru,[ (_slingPosX - 0.1), (((boundingBox _cargo) select 0 select 1) + 2.25), (((boundingBox _cargo) select 0 select 2) + 0.21) + _zCoef ]] ; } ; _taru setVariable ["Taru_cargo",_cargo] ;以上。比較的単純なスクリプトです。なお、強制的にCargoをAttachする際は、
[taru,cargo] execVM "taruCargoAttach.sqf"で起動してください。強制DetachはDetachスクリプトで。TaruにCargoをAttachしてる際は
taru getVariable "Taru_cargo" ;でカーゴを取得可能。AttachしてなかったらobjNullが返ってきます。たぶん。
自分がTaruのパイロットの場合、まず
- カーゴと自分の角度を5度以内に補正する(カーゴとヘリを直線に並ぶように)
- カーゴに近づく(この際カーゴと接触しないように注意、ときどきローターが壊れます)
- アクションメニューから"Attach Cargo"
でカチッとできます。
外すときは
- 速度を落とす
- 高度5m以下まで降下
- アクションメニューから"Detach Cargo"
で外せます。
改造自由でーす。
0 件のコメント :
コメントを投稿
注: コメントを投稿できるのは、このブログのメンバーだけです。