Init.sqf
ミッション開始時に読み込まれるファイルで、ミッション内のいろいろな設定をすることが出来ます。
メモ帳で普通のテキストファイルを書いてから、名前と拡張子を変えて作ります。
特にやりたいことがない場合、なくても動くので無理に置く必要はありません。
そして、Eden Editorではエディタ内部からinitを書けますので、無理に外部ファイルにする必要もありません。
サーバーだけで実行
// サーバーだけで実行 if(not isServer) exitWith{};
これ以降に書かれた内容はサーバー側でのみ実行し、結果をクライアントに通知します。
init.sqf以外でも、クライアントの人数と同じ回数実行されると困る系のスクリプトには、これを頭に書いとけば大抵のことはうまく行きます。
プレイヤーの同期待ち
// プレイヤーの同期待ち waitUntil { !isNil {player} }; waitUntil { player == player };
init.sqfの最後に書きます。
A2時代はタスクの同期などでこれを書くと上手くいきました。
しかし今では必要ないかもしれません。
ACEなどの環境依存のアイテムをアモ箱に入れる
// ACE耳栓・ACRE2ラジオ ammobox additemCargoGlobal ["ACE_EarPlugs",12]; ammobox additemCargoGlobal ["ACE_microDAGR",4]; ammobox additemCargoGlobal ["ACRE_PRC117F",4]; ammobox additemCargoGlobal ["ACRE_PRC152",12]; ammobox additemCargoGlobal ["ACE_M84",20];
ミッション内にAmmoboxというVariable Nameをつけた箱を置いておけば、init.sqmでアイテムやマガジンを入れることが出来ます。
互換性のないアドオンのアイテムをaddmagazinecargoglobalで入れた場合はエラーが出ますが、additemCargoGlobalを使えば何故かエラーが出ません。
なお、もちろんミッション内でアモ箱や車両のinitに直接書いても同じことが出来ますし、init.sqfではなく、全く別のスクリプトに書いて使いまわす方法もあります。
TFAR LR自動割り当て解除 周波数を同期
// TFAR LR自動割り当て解除 周波数を同期 tf_no_auto_long_range_radio = true; tf_same_sw_frequencies_for_side = true;
Task force radioの設定です。背負うタイプの長距離ラジオに置換されてバックの中身をブチ撒ける悲劇を防ぐのに必要。
PecatacではACRE2に移行したのでもう必要ありませんが、他所様で遊んでもらう時にこれがあると便利かもしれません。
あとで何かあってTFAR使う時に修正するの面倒くさいので今でも私は書いてます。
視程の設定
// 視程を設定 setviewdistance 3000; setObjectViewDistance 2500;
これはクライアント側でも実行しないと意味が無いので、if(not isServer) exitWith{};の前に書いてください。
基本的に、サーバーのデフォルト視程は1000m程度なので、飛行機やヘリのミッションではこれを書いといたほうが良いと思います。
しかしクライアント側ロード時間が長くなるので注意してください。
AIのレベルを変更する
// AIレベルを上書き。0~1で数字が大きくなるほど強い サーバー側標準は賢さ0.8、精度0.3 { // 賢さ _x setSkill 1.0; // 精度 _x setskill ["aimingAccuracy",0.1]; } forEach allUnits;
この記述では、ミッション内に存在するAI全てに対してサーバー側の設定を上書きすることが出来ます。
単純な精度以外にも、上記5行目の””で囲まれた部分を書き換えて色々な設定を変更することが出来ます。
設定の種類に関してはこちらを御覧ください。
https://community.bistudio.com/wiki/setSkill_array
ミッションパラメーターの設定
description.extと併用するとミッション内の条件をプレイ前に変更できるようになります。
例えば、天気、スタート時間の変更、使える車両を選択出来るようにする…等々の応用があります。
https://community.bistudio.com/wiki/Arma_3_Mission_Parameters
ここにも視程の設定がありますが、この方法では上手く変更できないので、上述の方法で決め打ちするか、どうしても可変にしたいなら別の方法を使う必要があります。