config.cpp 10 KB

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