arma3でチキンクリスプ食べながらスクリプト

arma3のエディッタ向けスクリプトを自分用に投稿

gac JSDFの89式小銃に使えるスコープを増やしてみる

Arma3の自衛隊MODで有名なgac JSDF
steamcommunity.com

最近の更新で89式小銃も全体が更新されている

架空のOTSレールモデルが追加されていたり、ピカティニーレール変更や二脚の取り外し可など細かな変更がなされている
これだけでも十分に満足できる内容になっているが、個人的にはERCOを装着できるようにしたいのでオリジナルのパッチMODを作っていきたい

とここまで威勢よく書いているがArma3のクラスの継承の概念について0.1%程度しか分かっていない

なのでGachopin Blogよりクラス継承(+上書き)の話の記事からクラスの上書きについてと公式コミュwikiからクラスの継承について内容を見ながらパッチMODを作っていく
最終的にERCOやその他スコープを使えるようになればと思う
この89式小銃はmagazinewell機能に対応しているので砂色の弾倉やドラムマガジンも使えるようにすると面白くなるだろう
とくにCUPのPMAGが使えるようになると見た目的に楽しさも増すはずである


まずは必要なアイテムのクラスネームをリストに上げる

使いたいスコープでgacのMOD側で対応していないスコープについてリストアップする
CUPのスコープについては種類が多すぎるので今回は外す

//Mk17 ホロサイト 乾燥地帯・緑地帯カラー
"optic_Holosight_arid_F"
"optic_Holosight_lush_F"

//ARCO 乾燥地帯・緑地帯カラー
"optic_Arco_arid_F"
"optic_Arco_lush_F"

//ERCO 各色
"optic_ERCO_snd_F",
"optic_ERCO_blk_F",
"optic_ERCO_khk_F",

次に弾倉についてリストアップしていく

//装填 赤・緑色
"30Rnd_556x45_Stanag_red"
"30Rnd_556x45_Stanag_green"

//砂色マガジン 装填・トレーサー各色
"30Rnd_556x45_Stanag_Sand"
"30Rnd_556x45_Stanag_Sand_red"
"30Rnd_556x45_Stanag_Sand_green"
"30Rnd_556x45_Stanag_Sand_Tracer_Red"
"30Rnd_556x45_Stanag_Sand_Tracer_Green"
"30Rnd_556x45_Stanag_Sand_Tracer_Yellow"

//ドラムマガジン 装填・トレーサー各色
"150Rnd_556x45_Drum_Mag_F",
"150Rnd_556x45_Drum_Mag_Tracer_F",
"150Rnd_556x45_Drum_Sand_Mag_F",
"150Rnd_556x45_Drum_Sand_Mag_Tracer_F",
"150Rnd_556x45_Drum_Green_Mag_F",
"150Rnd_556x45_Drum_Green_Mag_Tracer_F",

//CUP MOD 各種マガジン
"CUP_30Rnd_556x45_X95_Tracer_Yellow"
"CUP_30Rnd_556x45_X95_Tracer_Green"
"CUP_30Rnd_556x45_X95_Tracer_Red"
"CUP_30Rnd_556x45_X95"
"CUP_30Rnd_556x45_PMAG_QP_Olive"
"CUP_30Rnd_556x45_PMAG_QP_Tan"
"CUP_30Rnd_556x45_EMAG_Tan"
"CUP_30Rnd_556x45_EMAG_Olive"
"CUP_30Rnd_556x45_PMAG_QP_Tracer_Yellow"
"CUP_30Rnd_556x45_PMAG_QP_Tracer_Green"
"CUP_30Rnd_556x45_PMAG_QP_Tracer_Red"
"CUP_30Rnd_556x45_PMAG_QP"
"CUP_30Rnd_556x45_Emag_Tracer_Yellow"
"CUP_30Rnd_556x45_Emag_Tracer_Green"
"CUP_30Rnd_556x45_Emag_Tracer_Red"
"CUP_30Rnd_556x45_Emag"

とりあえず以上のクラスを追加する



そして完成して実際に使用したのがこれ
元のMODでは装着できないERCOスコープやCUPのPMAGを使えていることが分かる
f:id:question_and_life:20200930134145j:plain

実際にスコープを覗くと照門と照星がズレているように見えるがきちんとレティクルで狙った先に弾着したのでこれでよしとする
f:id:question_and_life:20200930134201j:plain



ここからクラスの継承についての話になっていくが詳しい内容は別にして
とりあえず使えるようにはなった程度のものであることに注意



個人で遊ぶために使う前提の内容である
クラスの継承というより一部クラスの上書きになっているかもしれない
クラスについてはまったくなので質問されても分からない
だからと言ってgachopin氏のところに行っても迷惑なのでやめてもらいたい

以上のことを理解した上で以下の処理を読んでもらいたい

class CfgPatches
{
	class CC_Rifle_and_Scope
	{
		name = "89_add_Scope_and_Magazine";
		author = "ChickenCrisp";

		addonRootClass="gac_JSDF_weapon";
		units[]={};
		weapons[]=
		{
			"gac_JSDF_W_R_Type89",
			"gac_JSDF_W_R_Type89_CQB",
			"gac_JSDF_W_R_Type89_optic_Arco",
			"gac_JSDF_W_R_Type89_optic_aco",
			"gac_JSDF_W_R_Type89_optic_ACO_grn",
			"gac_JSDF_W_R_Type89_optic_hamr",
			"gac_JSDF_W_R_Type89_optic_Holosight",
			"gac_JSDF_W_R_Type89_laser_JVS_V1",
			"gac_JSDF_W_R_Type89_H",
			"gac_JSDF_W_R_Type89F_H"
		};
		requiredVersion=0.1;
		requiredAddons[]=
		{
			"A3_Weapons_F",
			"A3_Weapons_F_Rifles_TRG20",
			"gac_JSDF_weapon"
		};
	};
};

class SlotInfo;
class CowsSlot;
class CfgWeapons
{
	class RifleCore;
	class Rifle: RifleCore
	{
		class WeaponSlotsInfo;
		displayName="$STR_RHSUSF_ACC_M2010S_D";
	};

	class Rifle_Base_F: Rifle
	{
		class GunParticles
		{
			class FirstEffect;
		};
	};
	class Tavor_base_F: Rifle_Base_F
	{
		class Single;
		class fullauto_medium;
		class FullAuto;
		class single_medium_optics1;
	};

	class gac_JSDF_W_R_Type89_base: Tavor_base_F
	{
		magazines[]=
		{
			"30Rnd_556x45_Stanag",
			"30Rnd_556x45_Stanag_red",
			"30Rnd_556x45_Stanag_green",
			"30Rnd_556x45_Stanag_Tracer_Red",
			"30Rnd_556x45_Stanag_Tracer_Green",
			"30Rnd_556x45_Stanag_Tracer_Yellow",

			"30Rnd_556x45_Stanag_Sand",
			"30Rnd_556x45_Stanag_Sand_red",
			"30Rnd_556x45_Stanag_Sand_green",
			"30Rnd_556x45_Stanag_Sand_Tracer_Red",
			"30Rnd_556x45_Stanag_Sand_Tracer_Green",
			"30Rnd_556x45_Stanag_Sand_Tracer_Yellow",

			"150Rnd_556x45_Drum_Mag_F",
			"150Rnd_556x45_Drum_Mag_Tracer_F",
			"150Rnd_556x45_Drum_Sand_Mag_F",
			"150Rnd_556x45_Drum_Sand_Mag_Tracer_F",
			"150Rnd_556x45_Drum_Green_Mag_F",
			"150Rnd_556x45_Drum_Green_Mag_Tracer_F",

			"gac_JSDF_30Rnd_556x45_Stanag",
			"gac_JSDF_20Rnd_556_45_Stanag",
			"gac_JSDF_20Rnd_556x45_Stanag_Tracer_Red",
			"gac_JSDF_20Rnd_556x45_Stanag_Tracer_Green",
			"gac_JSDF_20Rnd_556x45_Stanag_Tracer_Yellow",

			"gac_JSDF_M_RG_22_APAV",

			"rhs_mag_30Rnd_556x45_Mk318_Stanag",
			"rhs_mag_30Rnd_556x45_Mk262_Stanag",
			"rhs_mag_30Rnd_556x45_M855A1_Stanag",
			"rhs_mag_30Rnd_556x45_M855A1_Stanag_No_Tracer",
			"rhs_mag_30Rnd_556x45_M855A1_Stanag_Tracer_Red",
			"rhs_mag_30Rnd_556x45_M855A1_Stanag_Tracer_Green",
			"rhs_mag_30Rnd_556x45_M855A1_Stanag_Tracer_Yellow",
			"rhs_mag_30Rnd_556x45_M200_Stanag",

			"CUP_30Rnd_556x45_X95_Tracer_Yellow",
			"CUP_30Rnd_556x45_X95_Tracer_Green",
			"CUP_30Rnd_556x45_X95_Tracer_Red",
			"CUP_30Rnd_556x45_X95",
			"CUP_30Rnd_556x45_PMAG_QP_Olive",
			"CUP_30Rnd_556x45_PMAG_QP_Tan",
			"CUP_30Rnd_556x45_EMAG_Tan",
			"CUP_30Rnd_556x45_EMAG_Olive",
			"CUP_30Rnd_556x45_PMAG_QP_Tracer_Yellow",
			"CUP_30Rnd_556x45_PMAG_QP_Tracer_Green",
			"CUP_30Rnd_556x45_PMAG_QP_Tracer_Red",
			"CUP_30Rnd_556x45_PMAG_QP",
			"CUP_30Rnd_556x45_Emag_Tracer_Yellow",
			"CUP_30Rnd_556x45_Emag_Tracer_Green",
			"CUP_30Rnd_556x45_Emag_Tracer_Red",
			"CUP_30Rnd_556x45_Emag"
		};
		class WeaponSlotsInfo: WeaponSlotsInfo
		{
			class CowsSlot: CowsSlot
			{
				compatibleItems[]=
				{
					"optic_aco",
					"optic_ACO_grn",
					"optic_aco_smg",
					"optic_ACO_grn_smg",
					"optic_Holosight",
					"optic_Holosight_blk_F",
					"optic_Holosight_khk_F",
					"optic_Holosight_arid_F",
					"optic_Holosight_lush_F",
					"optic_Holosight_smg",
					"optic_Holosight_smg_blk_F",
					"optic_Arco",
					"optic_Arco_ghex_F",
					"optic_Arco_blk_F",
					"optic_Arco_arid_F",
					"optic_Arco_lush_F",
					"optic_ERCO_snd_F",
					"optic_ERCO_blk_F",
					"optic_ERCO_khk_F",
					"optic_hamr",
					"optic_Hamr_khk_F",
					"optic_SOS",
					"optic_SOS_khk_F",
					"optic_MRCO",
					"optic_Nightstalker",
					"optic_NVS",
					"optic_tws",
					"optic_tws_mg",
					"gac_optic_JGSDF_Dotsight"
				};
			};
		};
	};
};


以上である。



参考リンク
gachopin72.s296.xrea.com
community.bistudio.com
ArmA 3 Replacement Config Tutorial - Bohemia Interactive Community