砲撃・航空支援(RTO Soldier) Readmeファイル●ファイル概要 ------------------------------------------------------------------------------- このアドオンは PLA-VMEアドオンの砲撃の後方支援を呼ぶ機能のみを抜き出した「RTO Soldier」のVer2.0β版です。 ●免責 ------------------------------------------------------------------------------- このアドオンを使用して発生したいかなる損害についても作者は責任を負えません。 ●修正点 ------------------------------------------------------------------------------- (Ver1.0 → Ver1.1) ●このファイルについて ------------------------------------------------------------------------------- このファイルには以下の項目について書かれていますので、参考にしてください。 ●インストール方法 ------------------------------------------------------------------------------- 解凍してできた RTO_Soldier.pbo を Res/Addon フォルダ ●使用方法 ------------------------------------------------------------------------------- ○前準備 このアドオンをミッションで使用するためには、マップ上に「Trigger」を作成する必要があります。(ナパーム弾を使用しない場合は必要ありませんのでこの項目を読み飛ばしてください。)
○砲撃支援
Ver1.0では、戦車の Heat 弾と同等の砲弾を指定ポイントの半径50m以内にランダムに投下していましたが、比較的偏って落ちることが多く、しかも威力が弱かったため大して効果を発揮することが出来ませんでした。 ○航空支援
爆弾はOFP最強の兵器であるLGB(Laser Guided Bomb:レーザー誘導爆弾)と同等の威力を持つ、無誘導のMk84 LDGB(低抵抗多目的爆弾)を投下します。 ○爆撃方法 爆撃は爆撃機(ダミー)によって直線状に5つの爆弾を投下することで行われますが(図4)、そのうちの、真ん中にあたる3発目が指定されたポイント(マップをクリックした地点)付近に投下されます。○爆撃不可と誤差 爆弾およびナパーム弾は一定の高度から投下されますが、(図6)のように投下地点(航空機が爆弾を投下する場所)に山などがあり適正な高度を確保できない場合や、投下地点がマップ外などの場合は投下することが出来ません。 ●Tips ------------------------------------------------------------------------------- 『爆撃不可と誤差』の項目でご説明したように、何らかの理由で爆撃できない場合は、プレーヤーの向きを変えることによって爆撃が可能になる場合があります。 ●付属のミッションについて ------------------------------------------------------------------------------- 解凍してできた missions フォルダには以下の4つのミッションが収めてあります。 ●他のユニットで使用する場合 ------------------------------------------------------------------------------- 通常、RTO Soldier 以外この機能を使用することはできません(RTO Soldier が戦死したりして、無線機と Document を拾っても他の武器のように機能しません)ので、他のユニットでこの機能を使用したい場合は以下の変更を行ってください。 |
||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
1.OperationFlashPoint\Res\Bin の Config.bin を CPP2BIN などのツールを使用して Config.cpp にしてテキ
ストエディタで編集できるように変換します。
2.Config.cpp から以下の行を探します。(Windows標準のメモ帳でも編集は可能ですが、探すのが大変なので
検索機能のある秀丸などをお勧めします。)
class OfficerW:SoldierWB
{
picture="\misc\frcky.paa";
nameSound="officer";
scope=2;
model="mc vojakwo2.p3d";
displayName="$STR_DN_OFFICER";
accuracy=2.0;
cost=500000;
nightVision=1;
weapons[]={"M16","Binocular","Throw","Put"};
magazines[]={"M16","M16","M16","M16","HandGrenade","HandGrenade","HandGrenade","HandGrenade","SmokeShell","SmokeShell"};
};
3.上記の行を以下のように書き換え(追加)ます。
class OfficerW:SoldierWB
{
picture="\misc\frcky.paa";
nameSound="officer";
scope=2;
model="mc vojakwo2.p3d";
displayName="$STR_DN_OFFICER";
accuracy=2.0;
cost=500000;
nightVision=1;
weapons[]={"M16","Binocular","Throw","Put"};
magazines[]={"M16","M16","M16","M16","HandGrenade","HandGrenade","HandGrenade","HandGrenade","SmokeShell","SmokeShell"};
//----------ここから追加する----------
additionalSound[]={"\RTO_Soldier\sounds\soldiermoving.ogg",0.000500,0};
class UserActions
{
class ArtilleryA
{
displayName="Call Artillery Support (Accurate)";
position="pos driver";
radius=1.00000;
condition="(this hasweapon ""prc117new"") && ""VME_DOC_WEST"" in magazines this && speed this < 5 && alive this ";
statement="[this,""VME_DOC_WEST"",player,""accurate""] exec ""\RTO_Soldier\scripts\castarget.sqs"";this removeMagazine ""VME_DOC_WEST""";
};
class ArtilleryO
{
displayName="Call Artillery Support (Open)";
position="pos driver";
radius=1.00000;
condition="(this hasweapon ""prc117new"") && ""VME_DOC_WEST"" in magazines this && speed this < 5 && alive this ";
statement="[this,""VME_DOC_WEST"",player,""open""] exec ""\RTO_Soldier\scripts\castarget.sqs"";this removeMagazine ""VME_DOC_WEST""";
};
class AirStrike
{
displayName="Call Air Support (Mk84)";
position="pos driver";
radius=1.00000;
condition="(this hasweapon ""prc117new"") && ""VME_DOC_AS"" in magazines this && speed this < 5 && alive this ";
statement="[this,""VME_DOC_AS"",player] exec ""\RTO_Soldier\scripts\castarget_bomb.sqs""";
};
class AirStrike_Napalm
{
displayName="Call Air Support (Mk77)";
position="pos driver";
radius=1.00000;
condition="(this hasweapon ""prc117new"") && ""VME_DOC_NP"" in magazines this && speed this < 5 && alive this ";
statement="[this,""VME_DOC_NP"",player] exec ""\RTO_Soldier\scripts\castarget_napalm.sqs""";
};
};
//--------------ここまで--------------
};
4.上書きして再度 CPP2BIN などのツールを使用して Config.bin に戻します。
(オリジナルのバックアップ推奨)
(※Config.cppのままでも動くようなので、問題ない場合は再変換の必要はありません。)
5.以上の書き換えが終了すると、RTO Soldier が戦死したり、無線機と Document を Drop した場合、Officer
がそれを拾えば、RTO Soldier と同じように機能させることができます。
6.他の種類の兵士にもこの機能を持たせたい場合は、同じように書き換えます。
なお、East、Resistance のユニットに追加する場合、インストール方法の項目内に記載の
WEAPON CLASS-NAME / MAGAZINE CLASS-NAME を参考に、上記の "prc117new" および "VME_DOC_WEST" の部分
を適宜変更してください。ただし、VME_DOC_AS(Mk84)、VME_DOC_NP(Mk77)は prc117new 無線機以外機能しません。
1.Deltas/Rangers アドオンは迷彩服の種類によって Woodland(BAS_DeRaW.pbo)と Desert(BAS_DeRaD.pbo)
に分かれていますので、この機能を追加したいユニットの PBO ファイルを(または両方)PBO DECRYPTOR
などのツールを使って解凍します。(この例では Woodland(BAS_DeRaW.pbo)を使用します。)
2.展開されたてできたフォルダの中の Config.cpp をテキストエディタで開きます。
3.まず、この機能を使用するために RTO_Soldier を Require する必要がありますので、次の行を探します。
requiredAddons[] = {"BIS_Resistance","BAS_Weap","BIS_WeaponPack"};
上記の行に RTO_Soldier を追加します。
↓
requiredAddons[] = {"BIS_Resistance","BAS_Weap","BIS_WeaponPack","RTO_Soldier"};
4.機能を追加する兵士の種類は任意で構いませんが、 Deltas/Rangers アドオンには元々 RTO がいるので、
RTO に追加してみます。(以下の例では、無線機に prc117new を使用する場合を記載します。)
以下の行を探します。
class BAS_DeltaRTO : SoldierWB
{
displayName = "Delta Radio Operator";
model = "\BAS_deraw\BAS_DeltaSoldier.p3d";
vehicleClass = "BAS - Men";
scope = 1;
cost = 400000
sensitivity = 1.25;
accuracy = 2.500000;
nightVision = 1;
camouflage = 0.750000;
canHideBodies = 1;
attendant = true;
armor = 5;
armorStructural = 2.0;
armorHead = 0.7;
armorBody = 5.5;
armorHands = 0.5;
armorLegs = 0.5;
weapons[] = {"BAS_M4REFLEX","BAS_Satcom","NVGoggles","Glock","Throw","Put"};
magazines[] = {"BAS_M4Mag","BAS_M4Mag","BAS_M4Mag","BAS_M4Mag","BAS_M4Mag","BAS_M4Mag","HandGrenade","HandGrenade","HandGrenade","SmokeShell","GlockMAG","GlockMAG","GlockMAG","GlockMAG"};
BASWood_WOUNDS
animated = 1;
class Animations
{
class goggles
{
type = "rotation";
animPeriod = 0.5;
selection = "goggles";
axis = "axisgoggles";
angle0 = 0;
angle1 = 0.75;
};
};
class UserActions
{
class Lowervisor
{
displayName = "Lower Goggles";
position = "axisgoggles";
radius = 1.00000;
condition = "this animationPhase {goggles} < 0.5 && this == player";
statement = "this animate [{goggles}, 1]";
};
class Raisevisor
{
displayName = "Raise Goggles";
position = "axisgoggles";
radius = 1.00000;
condition = "this animationPhase {goggles} >= 0.5 && this == player";
statement = "this animate [{goggles}, 0]";
};
};
};
5.上記を以下のように書き換え(追加)ますが、オリジナルの OFP に追加したときと違い、すでに class UserAction
の項目が存在しているので注意してください。また追加箇所も2箇所となります。
class BAS_DeltaRTO : SoldierWB
{
displayName = "Delta Radio Operator";
model = "\BAS_deraw\BAS_DeltaSoldier.p3d";
vehicleClass = "BAS - Men";
scope = 1;
cost = 400000
sensitivity = 1.25;
accuracy = 2.500000;
nightVision = 1;
camouflage = 0.750000;
canHideBodies = 1;
attendant = true;
armor = 5;
armorStructural = 2.0;
armorHead = 0.7;
armorBody = 5.5;
armorHands = 0.5;
armorLegs = 0.5;
//
// ※武器と弾薬の変更については下記の「※」を参照
//
weapons[] = {"BAS_M4REFLEX","BAS_Satcom","NVGoggles","Glock","Throw","Put"};
magazines[] = {"BAS_M4Mag","BAS_M4Mag","BAS_M4Mag","BAS_M4Mag","BAS_M4Mag","BAS_M4Mag","HandGrenade","HandGrenade","HandGrenade","SmokeShell","GlockMAG","GlockMAG","GlockMAG","GlockMAG"};
BASWood_WOUNDS
animated = 1;
//
//----------次の1行を追加----------
//
additionalSound[]={"\RTO_Soldier\sounds\soldiermoving.ogg",0.000500,0};
class Animations
{
class goggles
{
type = "rotation";
animPeriod = 0.5;
selection = "goggles";
axis = "axisgoggles";
angle0 = 0;
angle1 = 0.75;
};
};
class UserActions
{
class Lowervisor
{
displayName = "Lower Goggles";
position = "axisgoggles";
radius = 1.00000;
condition = "this animationPhase {goggles} < 0.5 && this == player";
statement = "this animate [{goggles}, 1]";
};
class Raisevisor
{
displayName = "Raise Goggles";
position = "axisgoggles";
radius = 1.00000;
condition = "this animationPhase {goggles} >= 0.5 && this == player";
statement = "this animate [{goggles}, 0]";
};
//
//----------さらにここから----------
//
class ArtilleryA
{
displayName="Call Artillery Support (Accurate)";
position="pos driver";
radius=1.00000;
condition="(this hasweapon ""prc117new"") && ""VME_DOC_WEST"" in magazines this && speed this < 5 && alive this ";
statement="[this,""VME_DOC_WEST"",player,""accurate""] exec ""\RTO_Soldier\scripts\castarget.sqs"";this removeMagazine ""VME_DOC_WEST""";
};
class ArtilleryO
{
displayName="Call Artillery Support (Open)";
position="pos driver";
radius=1.00000;
condition="(this hasweapon ""prc117new"") && ""VME_DOC_WEST"" in magazines this && speed this < 5 && alive this ";
statement="[this,""VME_DOC_WEST"",player,""open""] exec ""\RTO_Soldier\scripts\castarget.sqs"";this removeMagazine ""VME_DOC_WEST""";
};
class AirStrike
{
displayName="Call Air Support (Mk84)";
position="pos driver";
radius=1.00000;
condition="(this hasweapon ""prc117new"") && ""VME_DOC_AS"" in magazines this && speed this < 5 && alive this ";
statement="[this,""VME_DOC_AS"",player] exec ""\RTO_Soldier\scripts\castarget_bomb.sqs""";
};
class AirStrike_Napalm
{
displayName="Call Air Support (Mk77)";
position="pos driver";
radius=1.00000;
condition="(this hasweapon ""prc117new"") && ""VME_DOC_NP"" in magazines this && speed this < 5 && alive this ";
statement="[this,""VME_DOC_NP"",player] exec ""\RTO_Soldier\scripts\castarget_napalm.sqs""";
};
//
//---------ここまで追加する---------
//
};
};
6.Deltas/Rangers アドオンの RTO は上記で追加した BAS_DeltaRTO 以外にも Ranger と Silenced Delta/Ranger お
よび JAM用 Delta/Ranger、JAM用 Silenced Delta/Ranger それぞれにいますので、任意で同様に書き換えてください。
7.最後に MakePBO などのツールでPBOファイルを作成し、デフォルトのPBOファイルと入れ替えて終了です。
※上記のように Config.cpp を書き換えることで、RTO Soldier の機能を使用することができますが、実際のミッション
などで使用する際にはさらに Mission.sqs で武器と弾薬の変更が必要になる為(Weapon に pcr117new を、Magazine
に VME_DOC_WEST を追加しなければいけません。)、あらかじめ装備品の変更を行う場合には以下の行を書き換えます。
weapons[] = {"BAS_M4REFLEX","BAS_Satcom","NVGoggles","Glock","Throw","Put"};
magazines[] = {"BAS_M4Mag","BAS_M4Mag","BAS_M4Mag","BAS_M4Mag","BAS_M4Mag","BAS_M4Mag","HandGrenade","HandGrenade","HandGrenade","SmokeShell","GlockMAG","GlockMAG","GlockMAG","GlockMAG"};
↓
weapons[] = {"BAS_M4REFLEX","pcr117new","NVGoggles","Glock","Throw","Put"};
magazines[] = {"BAS_M4Mag","BAS_M4Mag","BAS_M4Mag","BAS_M4Mag","VME_DOC_NP","VME_DOC_AS","VME_DOC_WEST","GlockMAG","GlockMAG","GlockMAG","GlockMAG"};
※VME_DOC_WEST、VME_DOC_AS、VME_DOC_NP は1つ以上あれば機能しますので、数量は任意で変更してください。
また、他のユニットで使用する場合と同様に pcr117new 無線機以外 VME_DOC_AS、VME_DOC_NP は機能しません。
方法は Config.cpp で追加した
class ArtilleryA
{
displayName="Call Artillery Support (Accurate)";
position="pos driver";
radius=1.00000;
condition="(this hasweapon ""prc117new"") && ""VME_DOC_WEST"" in magazines this && speed this < 5 && alive this ";
statement="[this,""VME_DOC_WEST"",player,""accurate""] exec ""\RTO_Soldier\scripts\castarget.sqs"";this removeMagazine ""VME_DOC_WEST""";
};
class ArtilleryO
{
displayName="Call Artillery Support (Open)";
position="pos driver";
radius=1.00000;
condition="(this hasweapon ""prc117new"") && ""VME_DOC_WEST"" in magazines this && speed this < 5 && alive this ";
statement="[this,""VME_DOC_WEST"",player,""open""] exec ""\RTO_Soldier\scripts\castarget.sqs"";this removeMagazine ""VME_DOC_WEST""";
};
class AirStrike
{
displayName="Call Air Support (Mk84)";
position="pos driver";
radius=1.00000;
condition="(this hasweapon ""prc117new"") && ""VME_DOC_AS"" in magazines this && speed this < 5 && alive this ";
statement="[this,""VME_DOC_AS"",player] exec ""\RTO_Soldier\scripts\castarget_bomb.sqs""";
};
class AirStrike_Napalm
{
displayName="Call Air Support (Mk77)";
position="pos driver";
radius=1.00000;
condition="(this hasweapon ""prc117new"") && ""VME_DOC_NP"" in magazines this && speed this < 5 && alive this ";
statement="[this,""VME_DOC_NP"",player] exec ""\RTO_Soldier\scripts\castarget_napalm.sqs""";
};
の、condition=" から始まる行を以下のように書き換えます。
class ArtilleryA
{
displayName="Call Artillery Support (Accurate)";
position="pos driver";
radius=1.00000;
condition="(this hasweapon ""prc117new"" || this hasweapon ""BAS_Satcom"") && ""VME_DOC_WEST"" in magazines this && speed this < 5 && alive this ";
statement="[this,""VME_DOC_WEST"",player,""accurate""] exec ""\RTO_Soldier\scripts\castarget.sqs"";this removeMagazine ""VME_DOC_WEST""";
};
class ArtilleryO
{
displayName="Call Artillery Support (Open)";
position="pos driver";
radius=1.00000;
condition="(this hasweapon ""prc117new"" || this hasweapon ""BAS_Satcom"") && ""VME_DOC_WEST"" in magazines this && speed this < 5 && alive this ";
statement="[this,""VME_DOC_WEST"",player,""open""] exec ""\RTO_Soldier\scripts\castarget.sqs"";this removeMagazine ""VME_DOC_WEST""";
};
class AirStrike
{
displayName="Call Air Support (Mk84)";
position="pos driver";
radius=1.00000;
condition="(this hasweapon ""prc117new"" || this hasweapon ""BAS_Satcom"") && ""VME_DOC_AS"" in magazines this && speed this < 5 && alive this ";
statement="[this,""VME_DOC_AS"",player] exec ""\RTO_Soldier\scripts\castarget_bomb.sqs""";
};
class AirStrike_Napalm
{
displayName="Call Air Support (Mk77)";
position="pos driver";
radius=1.00000;
condition="(this hasweapon ""prc117new"" || this hasweapon ""BAS_Satcom"") && ""VME_DOC_NP"" in magazines this && speed this < 5 && alive this ";
statement="[this,""VME_DOC_NP"",player] exec ""\RTO_Soldier\scripts\castarget_napalm.sqs""";
};
以上のように書き換えておけば BAS の SatCom AN/PSC-5D でも後方支援を呼ぶことができます。
また、支援を呼べる回数は VME_DOC の数となりますが、無線機さえ持っていれば無制限に呼べるようにするには
以下のように書き換えます。(以下の場合は prc117new または BAS_Satcom を持っている場合)
class ArtilleryA
{
displayName="Call Artillery Support (Accurate)";
position="pos driver";
radius=1.00000;
condition="(this hasweapon ""prc117new"" || this hasweapon ""BAS_Satcom"") && speed this < 5 && alive this ";
statement="[this,""VME_DOC_WEST"",player,""accurate""] exec ""\RTO_Soldier\scripts\castarget.sqs""";
};
class ArtilleryO
{
displayName="Call Artillery Support (Open)";
position="pos driver";
radius=1.00000;
condition="(this hasweapon ""prc117new"" || this hasweapon ""BAS_Satcom"") && speed this < 5 && alive this ";
statement="[this,""VME_DOC_WEST"",player,""open""] exec ""\RTO_Soldier\scripts\castarget.sqs""";;
};
class AirStrike
{
displayName="Call Air Support (Mk84)";
position="pos driver";
radius=1.00000;
condition="(this hasweapon ""prc117new"" || this hasweapon ""BAS_Satcom"") && speed this < 5 && alive this ";
statement="[this,""VME_DOC_AS"",player] exec ""\RTO_Soldier\scripts\castarget_bomb.sqs""";
};
class AirStrike_Napalm
{
displayName="Call Air Support (Mk77)";
position="pos driver";
radius=1.00000;
condition="(this hasweapon ""prc117new"" || this hasweapon ""BAS_Satcom"") && speed this < 5 && alive this ";
statement="[this,""VME_DOC_NP"",player] exec ""\RTO_Soldier\scripts\castarget_napalm.sqs""";
};
なお、これ以外のアドオンや無線機等も同じ方法で追加可能です。
| ●既知の問題点 ------------------------------------------------------------------------------- 現在のバージョンでは以下の問題点と個人的に改良したい点(したほうがいいか悩んでいる点)があります。 |