config.cpp 11 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363364365366367368369370371372373374375376377378379380381382383384385386387388389390391392393394395396397398399400401402403404405406407408409410411412413414415416417418419420421422423424425426427428429430431432433434435436437438439440441442443444445446447448449450451452453454455456457458459460461462463464465466467468469470471472473474475476477478479480481482483484485486487488489490491492493494495496497498499
  1. #include "../../config_macros.hpp"
  2. #include "../../../RD501_main/config_macros.hpp"
  3. #include "../../../RD501_main/config_macros.hpp"
  4. #define unit_addon B2
  5. #define patch_name MODNAME##unit_addon##_Patches
  6. #define unit_classname MODNAME##_##unit_addon
  7. class CfgPatches
  8. {
  9. class macro_patch_name(b2_units)
  10. {
  11. addonRootClass=macro_patch_name(units);
  12. requiredAddons[]=
  13. {
  14. macro_patch_name(units)
  15. };
  16. requiredVersion=0.1;
  17. units[]={
  18. macro_new_unit_class(opfor,B2_droid_Super),
  19. macro_new_unit_class(opfor,B2_droid_Standard)
  20. };
  21. weapons[]=
  22. {
  23. };
  24. };
  25. };
  26. class Extended_Init_EventHandlers
  27. {
  28. class macro_new_unit_class(opfor,B2_droid_Standard)
  29. {
  30. class ForceWalk
  31. {
  32. init = [_this select 0] call rd501_fnc_force_b2_walk;
  33. };
  34. };
  35. }
  36. class CfgVehicles
  37. {
  38. class O_Soldier_F;
  39. class macro_new_unit_class(opfor,B2_droid_Standard): O_Soldier_F
  40. {
  41. faction=macro_cis_faction
  42. editorSubcategory=macro_editor_cat(B2)
  43. displayname = "B2 Mk2";
  44. scope=2;
  45. class HitPoints
  46. {
  47. class HitFace
  48. {
  49. armor=8;
  50. material=-1;
  51. name="face_hub";
  52. passThrough=0.013;
  53. radius=0.079999998;
  54. explosionShielding=1;
  55. minimalHit=0.0099999998;
  56. };
  57. class HitNeck: HitFace
  58. {
  59. armor=8;
  60. material=-1;
  61. name="neck";
  62. passThrough=0.013;
  63. radius=0.1;
  64. explosionShielding=1;
  65. minimalHit=0.0099999998;
  66. };
  67. class HitHead: HitNeck
  68. {
  69. armor=8;
  70. material=-1;
  71. name="head";
  72. passThrough=0.13;
  73. radius=0.2;
  74. explosionShielding=1;
  75. minimalHit=0.0099999998;
  76. depends="HitFace max HitNeck";
  77. };
  78. class HitPelvis: HitHead
  79. {
  80. armor=10;
  81. material=-1;
  82. name="pelvis";
  83. passThrough=0.44;
  84. radius=0.23999999;
  85. explosionShielding=1;
  86. visual="injury_body";
  87. minimalHit=0.0099999998;
  88. depends="0";
  89. };
  90. class HitAbdomen: HitPelvis
  91. {
  92. armor=8;
  93. material=-1;
  94. name="spine1";
  95. passThrough=0.44;
  96. radius=0.16;
  97. explosionShielding=1;
  98. visual="injury_body";
  99. minimalHit=0.0099999998;
  100. };
  101. class HitDiaphragm: HitAbdomen
  102. {
  103. armor=10;
  104. material=-1;
  105. name="spine2";
  106. passThrough=0.44;
  107. radius=0.18000001;
  108. explosionShielding=1.5;
  109. visual="injury_body";
  110. minimalHit=0.0099999998;
  111. };
  112. class HitChest: HitDiaphragm
  113. {
  114. armor=10;
  115. material=-1;
  116. name="spine3";
  117. passThrough=0.44;
  118. radius=0.18000001;
  119. explosionShielding=1.5;
  120. visual="injury_body";
  121. minimalHit=0.0099999998;
  122. };
  123. class HitBody: HitChest
  124. {
  125. armor=1000;
  126. material=-1;
  127. name="body";
  128. passThrough=1;
  129. radius=0;
  130. explosionShielding=1.5;
  131. visual="injury_body";
  132. minimalHit=0.0099999998;
  133. depends="HitPelvis max HitAbdomen max HitDiaphragm max HitChest";
  134. };
  135. class HitArms: HitBody
  136. {
  137. armor=8;
  138. material=-1;
  139. name="arms";
  140. passThrough=0.13;
  141. radius=0.1;
  142. explosionShielding=0.4;
  143. visual="injury_hands";
  144. minimalHit=0.0099999998;
  145. depends="0";
  146. };
  147. class HitRightHand :HitArms
  148. {
  149. armor = 10;
  150. explosionShielding = 0.25;
  151. material = -1;
  152. minimalHit = 0.01;
  153. name = "hand_r";
  154. passThrough = 0.1;
  155. radius = 0.1;
  156. visual = "injury_hands";
  157. };
  158. class HitLeftHand :HitArms
  159. {
  160. armor = 10;
  161. explosionShielding = 0.25;
  162. material = -1;
  163. minimalHit = 0.01;
  164. name = "hand_l";
  165. passThrough = 0.1;
  166. radius = 0.1;
  167. visual = "injury_hands";
  168. };
  169. class HitHands: HitArms
  170. {
  171. armor=8;
  172. material=-1;
  173. name="hands";
  174. passThrough=0.13;
  175. radius=0.1;
  176. explosionShielding=0.30000001;
  177. visual="injury_hands";
  178. minimalHit=0.0099999998;
  179. depends="HitArms";
  180. };
  181. class HitLegs: HitHands
  182. {
  183. armor=8;
  184. material=-1;
  185. name="legs";
  186. passThrough=0.13;
  187. radius=0.1;
  188. explosionShielding=0.30000001;
  189. visual="injury_legs";
  190. minimalHit=0.0099999998;
  191. depends="0";
  192. };
  193. class HitLeftLeg :HitLegs
  194. {
  195. armor = 8;
  196. explosionShielding = 0.25;
  197. material = -1;
  198. minimalHit = 0.01;
  199. name = "leg_l";
  200. passThrough = 0.1;
  201. radius = 0.1;
  202. visual = "injury_legs";
  203. };
  204. class HitRightLeg :HitLegs
  205. {
  206. armor = 8;
  207. explosionShielding = 0.25;
  208. material = -1;
  209. minimalHit = 0.01;
  210. name = "leg_r";
  211. passThrough = 0.1;
  212. radius = 0.1;
  213. visual = "injury_leg";
  214. };
  215. class Incapacitated: HitLegs
  216. {
  217. armor=1000;
  218. material=-1;
  219. name="body";
  220. passThrough=1;
  221. radius=0;
  222. explosionShielding=1;
  223. visual="";
  224. minimalHit=0;
  225. depends="(((Total - 0.25) max 0) + ((HitHead - 0.25) max 0) + ((HitBody - 0.25) max 0)) * 2";
  226. };
  227. };
  228. armor=30;
  229. armorStructural=1.1;
  230. explosionShielding=0.40000001;
  231. model="\101st_Aux_Mod\Addons\DBA_CIS\Assets\B2.p3d";
  232. uniformClass=macro_new_uniform_class(opfor,B2_Armor_mk2)
  233. class EventHandlers;
  234. hiddenSelections[]=
  235. {
  236. "Camo1","Camo2","Camo3"
  237. };
  238. hiddenSelectionsTextures[]=
  239. {
  240. "RD501_Units\textures\CIS\B2\rocket\Reskinb2_chest.paa",
  241. "RD501_Units\textures\CIS\B2\rocket\ReskinB2_waist.paa",
  242. "RD501_Units\textures\CIS\B2\rocket\ReskinB2_legs.paa"
  243. };
  244. respawnWeapons[] = {macro_new_weapon(b2,standard),"Put"};
  245. magazines[] = {macro_new_mag(b2gun,40),macro_new_mag(b2gun,40),macro_new_mag(b2gun,40),macro_new_mag(b2gun,40),macro_new_mag(b2rocket,3),macro_new_mag(b2rocket,3)};
  246. weapons[] = {macro_new_weapon(b2,standard),"Put"};
  247. respawnMagazines[]= {macro_new_mag(b2gun,40),macro_new_mag(b2gun,40),macro_new_mag(b2gun,40),macro_new_mag(b2gun,40),macro_new_mag(b2rocket,3),macro_new_mag(b2rocket,3)};
  248. linkedItems[] = {"ItemMap","ItemCompass","ItemWatch","ItemRadio","NVGoggles"};
  249. };
  250. class macro_new_unit_class(opfor,B2_droid_Super) : macro_new_unit_class(opfor,B2_droid_Standard)
  251. {
  252. displayname = "Super B2";
  253. armor=60;
  254. armorStructural=1.5;
  255. uniformClass=macro_new_uniform_class(opfor,B2_SuperArmor)
  256. hiddenSelections[]=
  257. {
  258. "Camo1","Camo2","Camo3"
  259. };
  260. hiddenSelectionsTextures[]=
  261. {
  262. "RD501_Units\textures\CIS\B2\super\super_b2_chest.paa",
  263. "RD501_Units\textures\CIS\B2\super\super_b2_waist.paa",
  264. "RD501_Units\textures\CIS\B2\super\super_b2_legs.paa"
  265. };
  266. /*class HitPoints
  267. {
  268. class HitFace
  269. {
  270. armor=10;
  271. material=-1;
  272. name="face_hub";
  273. passThrough=0.1;
  274. radius=0.079999998;
  275. explosionShielding=1;
  276. minimalHit=0.0099999998;
  277. };
  278. class HitNeck: HitFace
  279. {
  280. armor=15;
  281. material=-1;
  282. name="neck";
  283. passThrough=0.1;
  284. radius=0.1;
  285. explosionShielding=1;
  286. minimalHit=0.0099999998;
  287. };
  288. class HitHead: HitNeck
  289. {
  290. armor=10;
  291. material=-1;
  292. name="head";
  293. passThrough=0.1;
  294. radius=0.2;
  295. explosionShielding=1;
  296. minimalHit=0.0099999998;
  297. depends="HitFace max HitNeck";
  298. };
  299. class HitPelvis: HitHead
  300. {
  301. armor=15;
  302. material=-1;
  303. name="pelvis";
  304. passThrough=0.1;
  305. radius=0.23999999;
  306. explosionShielding=1;
  307. visual="injury_body";
  308. minimalHit=0.0099999998;
  309. depends="0";
  310. };
  311. class HitAbdomen: HitPelvis
  312. {
  313. armor=15;
  314. material=-1;
  315. name="spine1";
  316. passThrough=0.1;
  317. radius=0.16;
  318. explosionShielding=1;
  319. visual="injury_body";
  320. minimalHit=0.0099999998;
  321. };
  322. class HitDiaphragm: HitAbdomen
  323. {
  324. armor=20;
  325. material=-1;
  326. name="spine2";
  327. passThrough=0.1;
  328. radius=0.18000001;
  329. explosionShielding=1.5;
  330. visual="injury_body";
  331. minimalHit=0.0099999998;
  332. };
  333. class HitChest: HitDiaphragm
  334. {
  335. armor=25;
  336. material=-1;
  337. name="spine3";
  338. passThrough=0.1;
  339. radius=0.18000001;
  340. explosionShielding=1.5;
  341. visual="injury_body";
  342. minimalHit=0.0099999998;
  343. };
  344. class HitBody: HitChest
  345. {
  346. armor=1000;
  347. material=-1;
  348. name="body";
  349. passThrough=0.1;
  350. radius=0;
  351. explosionShielding=1.5;
  352. visual="injury_body";
  353. minimalHit=0.0099999998;
  354. depends="HitPelvis max HitAbdomen max HitDiaphragm max HitChest";
  355. };
  356. class HitArms: HitBody
  357. {
  358. armor=25;
  359. material=-1;
  360. name="arms";
  361. passThrough=0.13;
  362. radius=0.1;
  363. explosionShielding=0.4;
  364. visual="injury_hands";
  365. minimalHit=0.0099999998;
  366. depends="0";
  367. };
  368. class HitRightHand :HitArms
  369. {
  370. armor = 8;
  371. explosionShielding = 0.25;
  372. material = -1;
  373. minimalHit = 0.01;
  374. name = "hand_r";
  375. passThrough = 0.1;
  376. radius = 0.1;
  377. visual = "injury_hands";
  378. };
  379. class HitLeftHand :HitArms
  380. {
  381. armor = 8;
  382. explosionShielding = 0.25;
  383. material = -1;
  384. minimalHit = 0.01;
  385. name = "hand_l";
  386. passThrough = 0.1;
  387. radius = 0.1;
  388. visual = "injury_hands";
  389. };
  390. class HitHands: HitArms
  391. {
  392. armor=6;
  393. material=-1;
  394. name="hands";
  395. passThrough=0.13;
  396. radius=0.1;
  397. explosionShielding=0.30000001;
  398. visual="injury_hands";
  399. minimalHit=0.0099999998;
  400. depends="HitArms";
  401. };
  402. class HitLegs: HitHands
  403. {
  404. armor=20;
  405. material=-1;
  406. name="legs";
  407. passThrough=0.13;
  408. radius=0.1;
  409. explosionShielding=0.30000001;
  410. visual="injury_legs";
  411. minimalHit=0.0099999998;
  412. depends="0";
  413. };
  414. class HitLeftLeg :HitLegs
  415. {
  416. armor = 8;
  417. explosionShielding = 0.25;
  418. material = -1;
  419. minimalHit = 0.01;
  420. name = "leg_l";
  421. passThrough = 0.1;
  422. radius = 0.1;
  423. visual = "injury_legs";
  424. };
  425. class HitRightLeg :HitLegs
  426. {
  427. armor = 8;
  428. explosionShielding = 0.25;
  429. material = -1;
  430. minimalHit = 0.01;
  431. name = "leg_r";
  432. passThrough = 0.1;
  433. radius = 0.1;
  434. visual = "injury_leg";
  435. };
  436. class Incapacitated: HitLegs
  437. {
  438. armor=1000;
  439. material=-1;
  440. name="body";
  441. passThrough=1;
  442. radius=0;
  443. explosionShielding=1;
  444. visual="";
  445. minimalHit=0;
  446. depends="(((Total - 0.25) max 0) + ((HitHead - 0.25) max 0) + ((HitBody - 0.25) max 0)) * 2";
  447. };
  448. };*/
  449. };
  450. };
  451. class CfgWeapons
  452. {
  453. class DefaultEventhandlers;
  454. class UniformItem;
  455. class macro_new_uniform_class(opfor,B2_Armor_mk2): UniformItem
  456. {
  457. scope=2;
  458. displayName="RD501 B2";
  459. //picture = "\SWOP_droids\data\ico\B2ico.paa" - Replace with proper one
  460. model = "\A3\Characters_F\Common\Suitpacks\suitpack_blufor_diver";
  461. class ItemInfo: UniformItem
  462. {
  463. uniformModel="-";
  464. uniformClass=macro_new_unit_class(opfor,B2_droid_Standard)
  465. containerClass="Supply40";
  466. mass=80;
  467. };
  468. JLTS_isDroid = 1;
  469. JLTS_hasEMPProtection = 0;
  470. JLTS_deathSounds = "DeathDroid";
  471. class EventHandlers : DefaultEventhandlers {};
  472. };
  473. class macro_new_uniform_class(opfor,B2_SuperArmor): UniformItem
  474. {
  475. scope=2;
  476. displayName="RD501 Super B2";
  477. //picture = "\SWOP_droids\data\ico\B2ico.paa" - Replace with proper one
  478. model = "\A3\Characters_F\Common\Suitpacks\suitpack_blufor_diver";
  479. class ItemInfo: UniformItem
  480. {
  481. uniformModel="-";
  482. uniformClass=macro_new_unit_class(opfor,B2_droid_Super);
  483. containerClass="Supply40";
  484. mass=80;
  485. };
  486. JLTS_isDroid = 1;
  487. JLTS_hasEMPProtection = 0;
  488. JLTS_deathSounds = "DeathDroid";
  489. class EventHandlers : DefaultEventhandlers {};
  490. };
  491. };