Erliens преди 4 години
родител
ревизия
72ba97fbf1
променени са 1 файла, в които са добавени 276 реда и са изтрити 13 реда
  1. 276 13
      addons - Copy/RD501_Units/opfor/B2/config.cpp

+ 276 - 13
addons - Copy/RD501_Units/opfor/B2/config.cpp

@@ -20,6 +20,7 @@ class CfgPatches
 		requiredVersion=0.1;
 		units[]={
 			"RD501_B2_droid",
+			"RD501_B2_superdroid",
 			"SWOP_B2_superdroid_F_Spec"
 		};
 		weapons[]=
@@ -29,6 +30,17 @@ class CfgPatches
 	};
 };
 
+class Extended_Init_EventHandlers 
+{
+    class RD501_B2_Droid
+    {
+        class ForceWalk
+        {
+            init = [_this select 0] call rd501_fnc_force_b2_walk;
+        };
+    };
+}
+
 class CfgVehicles
 {
 	class SWOP_B2_superdroid;
@@ -36,7 +48,7 @@ class CfgVehicles
 	{
 		faction=macro_cis_faction
 		editorSubcategory=macro_editor_cat(B2)
-		displayname = "B2 (Blaster)";
+		displayname = "B2";
 		scope=2;
 		class HitPoints
 		{
@@ -130,22 +142,44 @@ class CfgVehicles
 			};
 			class HitArms: HitBody
 			{
-				armor=2;
+				armor=6;
 				material=-1;
 				name="arms";			
-				passThrough=0.89999998;
+				passThrough=0.13;
 				radius=0.1;
 				explosionShielding=0.4;
 				visual="injury_hands";
 				minimalHit=0.0099999998;
 				depends="0";
 			};
+			class HitRightHand :HitArms
+			{
+				armor = 8;
+				explosionShielding = 0.25;
+				material = -1;
+				minimalHit = 0.01;
+				name = "hand_r";
+				passThrough = 0.1;
+				radius = 0.1;
+				visual = "injury_hands";
+			};
+			class HitLeftHand :HitArms
+			{
+				armor = 8;
+				explosionShielding = 0.25;
+				material = -1;
+				minimalHit = 0.01;
+				name = "hand_l";
+				passThrough = 0.1;
+				radius = 0.1;
+				visual = "injury_hands";
+			};
 			class HitHands: HitArms
 			{
-				armor=2;
+				armor=6;
 				material=-1;
 				name="hands";
-				passThrough=0.89999998;
+				passThrough=0.13;
 				radius=0.1;
 				explosionShielding=0.30000001;
 				visual="injury_hands";
@@ -154,16 +188,38 @@ class CfgVehicles
 			};
 			class HitLegs: HitHands
 			{
-				armor=2;
+				armor=6;
 				material=-1;
 				name="legs";
-				passThrough=0.89999998;
-				radius=0.14;
+				passThrough=0.13;
+				radius=0.1;
 				explosionShielding=0.30000001;
 				visual="injury_legs";
 				minimalHit=0.0099999998;
 				depends="0";
 			};
+			class HitLeftLeg :HitLegs
+			{
+				armor = 8;
+				explosionShielding = 0.25;
+				material = -1;
+				minimalHit = 0.01;
+				name = "leg_l";
+				passThrough = 0.1;
+				radius = 0.1;
+				visual = "injury_legs";
+			};
+			class HitRightLeg :HitLegs
+			{
+				armor = 8;
+				explosionShielding = 0.25;
+				material = -1;
+				minimalHit = 0.01;
+				name = "leg_r";
+				passThrough = 0.1;
+				radius = 0.1;
+				visual = "injury_leg";
+			};
 			class Incapacitated: HitLegs
 			{
 				armor=1000;
@@ -197,15 +253,203 @@ class CfgVehicles
         weapons[] = {"SWOP_B2gun","Throw","Put"};
         linkedItems[] = {"ItemMap","ItemCompass","ItemWatch","ItemRadio","NVGoggles"};
 	};
+	class RD501_B2_superdroid : RD501_B2_Droid
+	{
+		displayname = "Super B2";
+		armor=60;
+		armorStructural=10;
+		uniformClass="RD501_B2_SuperDroid_Uniform";
+		class HitPoints
+		{
+			class HitFace
+			{
+				armor=10;
+				material=-1;
+				name="face_hub";
+				passThrough=0.1;
+				radius=0.079999998;
+				explosionShielding=1;
+				minimalHit=0.0099999998;
+			};
+			class HitNeck: HitFace
+			{
+				armor=15;
+				material=-1;
+				name="neck";
+				passThrough=0.1;
+				radius=0.1;
+				explosionShielding=1;
+				minimalHit=0.0099999998;
+			};
+			class HitHead: HitNeck
+			{
+				armor=10;
+				material=-1;
+				name="head";
+				passThrough=0.1;
+				radius=0.2;
+				explosionShielding=1;
+				minimalHit=0.0099999998;
+				depends="HitFace max HitNeck";
+			};
+			class HitPelvis: HitHead
+			{
+				armor=15;
+				material=-1;
+				name="pelvis";
+				passThrough=0.1;
+				radius=0.23999999;
+				explosionShielding=1;
+				visual="injury_body";
+				minimalHit=0.0099999998;
+				depends="0";
+			};
+			class HitAbdomen: HitPelvis
+			{
+				armor=15;
+				material=-1;
+				name="spine1";
+				passThrough=0.1;
+				radius=0.16;
+				explosionShielding=1;
+				visual="injury_body";
+				minimalHit=0.0099999998;
+			};
+			class HitDiaphragm: HitAbdomen
+			{
+				armor=20;
+				material=-1;
+				name="spine2";
+				passThrough=0.1;
+				radius=0.18000001;
+				explosionShielding=1.5;
+				visual="injury_body";
+				minimalHit=0.0099999998;
+			};
+			class HitChest: HitDiaphragm
+			{
+				armor=25;
+				material=-1;
+				name="spine3";
+				passThrough=0.1;
+				radius=0.18000001;
+				explosionShielding=1.5;
+				visual="injury_body";
+				minimalHit=0.0099999998;
+			};
+			class HitBody: HitChest
+			{
+				armor=1000;
+				material=-1;
+				name="body";
+				passThrough=0.1;
+				radius=0;
+				explosionShielding=1.5;
+				visual="injury_body";
+				minimalHit=0.0099999998;
+				depends="HitPelvis max HitAbdomen max HitDiaphragm max HitChest";
+			};
+			class HitArms: HitBody
+			{
+				armor=25;
+				material=-1;
+				name="arms";			
+				passThrough=0.13;
+				radius=0.1;
+				explosionShielding=0.4;
+				visual="injury_hands";
+				minimalHit=0.0099999998;
+				depends="0";
+			};
+			class HitRightHand :HitArms
+			{
+				armor = 8;
+				explosionShielding = 0.25;
+				material = -1;
+				minimalHit = 0.01;
+				name = "hand_r";
+				passThrough = 0.1;
+				radius = 0.1;
+				visual = "injury_hands";
+			};
+			class HitLeftHand :HitArms
+			{
+				armor = 8;
+				explosionShielding = 0.25;
+				material = -1;
+				minimalHit = 0.01;
+				name = "hand_l";
+				passThrough = 0.1;
+				radius = 0.1;
+				visual = "injury_hands";
+			};
+			class HitHands: HitArms
+			{
+				armor=6;
+				material=-1;
+				name="hands";
+				passThrough=0.13;
+				radius=0.1;
+				explosionShielding=0.30000001;
+				visual="injury_hands";
+				minimalHit=0.0099999998;
+				depends="HitArms";
+			};
+			class HitLegs: HitHands
+			{
+				armor=20;
+				material=-1;
+				name="legs";
+				passThrough=0.13;
+				radius=0.1;
+				explosionShielding=0.30000001;
+				visual="injury_legs";
+				minimalHit=0.0099999998;
+				depends="0";
+			};
+			class HitLeftLeg :HitLegs
+			{
+				armor = 8;
+				explosionShielding = 0.25;
+				material = -1;
+				minimalHit = 0.01;
+				name = "leg_l";
+				passThrough = 0.1;
+				radius = 0.1;
+				visual = "injury_legs";
+			};
+			class HitRightLeg :HitLegs
+			{
+				armor = 8;
+				explosionShielding = 0.25;
+				material = -1;
+				minimalHit = 0.01;
+				name = "leg_r";
+				passThrough = 0.1;
+				radius = 0.1;
+				visual = "injury_leg";
+			};
+			class Incapacitated: HitLegs
+			{
+				armor=1000;
+				material=-1;
+				name="body";
+				passThrough=1;
+				radius=0;
+				explosionShielding=1;
+				visual="";
+				minimalHit=0;
+				depends="(((Total - 0.25) max 0) + ((HitHead - 0.25) max 0) + ((HitBody - 0.25) max 0)) * 2";
+			};
+		};
+	};
 };
 
 class CfgWeapons
 {	
-	class Uniform_Base;
-	class SWOP_B2_superdroid_F_Spec:Uniform_Base
-	{
-		class UniformItem;
-	}
+	class DefaultEventhandlers;
+	class SWOP_B2_superdroid_F_Spec;
+	class UniformItem;
 	class RD501_B2_Droid_Uniform: SWOP_B2_superdroid_F_Spec
 	{
 		scope=2;
@@ -222,5 +466,24 @@ class CfgWeapons
 		JLTS_isDroid = 1; 
 		JLTS_hasEMPProtection = 0; 
 		JLTS_deathSounds = "DeathDroid";
+		class EventHandlers : DefaultEventhandlers {};
+	};
+	class RD501_B2_SuperDroid_Uniform: SWOP_B2_superdroid_F_Spec
+	{
+		scope=2;
+		displayName="RD501 Super B2";
+		picture = "\SWOP_droids\data\ico\B2ico.paa"
+		model = "\A3\Characters_F\Common\Suitpacks\suitpack_blufor_diver";
+		class ItemInfo: UniformItem
+		{
+			uniformModel="-";
+			uniformClass="RD501_B2_superdroid";
+			containerClass="Supply40";
+			mass=80;
+		};
+		JLTS_isDroid = 1; 
+		JLTS_hasEMPProtection = 0; 
+		JLTS_deathSounds = "DeathDroid";
+		class EventHandlers : DefaultEventhandlers {};
 	};
 };