config.cpp 16 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363364365366367368369370371372373374375376377378379380381382383384385386387388389390391392393394395396397398399400401402403404405406407408409410411412413414415416417418419420421422423424425426427428429430431432433434435436437438439440441442443444445446447448449450451452453454455456457458459460461462463464465466467468469470471472473474475476477478479480481482483484485486487488489490491492493494495496497498499500501502503504505506507508509510511512513514515516517518519520521522523524525526527528529530531532533534535536537538539540541542543544545546547548549550551552553554555556557558559560561562563564565566567568569570571572573574575576577578579580581582583584585586587588589590591592593594595596597598599600601602603604605606607608609610611612613614615616617618619620621622623624625626627628629630631632633634635636637638639640641642643644645646647648649650651652653654655656657658659660661662663664665666667668669670671672673674675676677678679680681682683684685686687688689690691692693694695696697698699700701702703704705706707708709710711712713714715716717718719720721722723724725726727728729
  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. macro_new_unit_class(opfor,B2_droid_Super),
  20. macro_new_unit_class(opfor,B2_droid_Standard_mk2)
  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 O_Soldier_F;
  41. class macro_new_unit_class(opfor,B2_droid_Standard): SWOP_B2_superdroid
  42. {
  43. faction=macro_cis_faction
  44. editorSubcategory=macro_editor_cat(B2)
  45. displayname = "B2";
  46. scope=2;
  47. class HitPoints
  48. {
  49. class HitFace
  50. {
  51. armor=6;
  52. material=-1;
  53. name="face_hub";
  54. passThrough=0.013;
  55. radius=0.079999998;
  56. explosionShielding=1;
  57. minimalHit=0.0099999998;
  58. };
  59. class HitNeck: HitFace
  60. {
  61. armor=6;
  62. material=-1;
  63. name="neck";
  64. passThrough=0.013;
  65. radius=0.1;
  66. explosionShielding=1;
  67. minimalHit=0.0099999998;
  68. };
  69. class HitHead: HitNeck
  70. {
  71. armor=6;
  72. material=-1;
  73. name="head";
  74. passThrough=0.13;
  75. radius=0.2;
  76. explosionShielding=1;
  77. minimalHit=0.0099999998;
  78. depends="HitFace max HitNeck";
  79. };
  80. class HitPelvis: HitHead
  81. {
  82. armor=8;
  83. material=-1;
  84. name="pelvis";
  85. passThrough=0.44;
  86. radius=0.23999999;
  87. explosionShielding=1;
  88. visual="injury_body";
  89. minimalHit=0.0099999998;
  90. depends="0";
  91. };
  92. class HitAbdomen: HitPelvis
  93. {
  94. armor=8;
  95. material=-1;
  96. name="spine1";
  97. passThrough=0.44;
  98. radius=0.16;
  99. explosionShielding=1;
  100. visual="injury_body";
  101. minimalHit=0.0099999998;
  102. };
  103. class HitDiaphragm: HitAbdomen
  104. {
  105. armor=8;
  106. material=-1;
  107. name="spine2";
  108. passThrough=0.44;
  109. radius=0.18000001;
  110. explosionShielding=1.5;
  111. visual="injury_body";
  112. minimalHit=0.0099999998;
  113. };
  114. class HitChest: HitDiaphragm
  115. {
  116. armor=8;
  117. material=-1;
  118. name="spine3";
  119. passThrough=0.44;
  120. radius=0.18000001;
  121. explosionShielding=1.5;
  122. visual="injury_body";
  123. minimalHit=0.0099999998;
  124. };
  125. class HitBody: HitChest
  126. {
  127. armor=1000;
  128. material=-1;
  129. name="body";
  130. passThrough=1;
  131. radius=0;
  132. explosionShielding=1.5;
  133. visual="injury_body";
  134. minimalHit=0.0099999998;
  135. depends="HitPelvis max HitAbdomen max HitDiaphragm max HitChest";
  136. };
  137. class HitArms: HitBody
  138. {
  139. armor=6;
  140. material=-1;
  141. name="arms";
  142. passThrough=0.13;
  143. radius=0.1;
  144. explosionShielding=0.4;
  145. visual="injury_hands";
  146. minimalHit=0.0099999998;
  147. depends="0";
  148. };
  149. class HitRightHand :HitArms
  150. {
  151. armor = 8;
  152. explosionShielding = 0.25;
  153. material = -1;
  154. minimalHit = 0.01;
  155. name = "hand_r";
  156. passThrough = 0.1;
  157. radius = 0.1;
  158. visual = "injury_hands";
  159. };
  160. class HitLeftHand :HitArms
  161. {
  162. armor = 8;
  163. explosionShielding = 0.25;
  164. material = -1;
  165. minimalHit = 0.01;
  166. name = "hand_l";
  167. passThrough = 0.1;
  168. radius = 0.1;
  169. visual = "injury_hands";
  170. };
  171. class HitHands: HitArms
  172. {
  173. armor=6;
  174. material=-1;
  175. name="hands";
  176. passThrough=0.13;
  177. radius=0.1;
  178. explosionShielding=0.30000001;
  179. visual="injury_hands";
  180. minimalHit=0.0099999998;
  181. depends="HitArms";
  182. };
  183. class HitLegs: HitHands
  184. {
  185. armor=6;
  186. material=-1;
  187. name="legs";
  188. passThrough=0.13;
  189. radius=0.1;
  190. explosionShielding=0.30000001;
  191. visual="injury_legs";
  192. minimalHit=0.0099999998;
  193. depends="0";
  194. };
  195. class HitLeftLeg :HitLegs
  196. {
  197. armor = 8;
  198. explosionShielding = 0.25;
  199. material = -1;
  200. minimalHit = 0.01;
  201. name = "leg_l";
  202. passThrough = 0.1;
  203. radius = 0.1;
  204. visual = "injury_legs";
  205. };
  206. class HitRightLeg :HitLegs
  207. {
  208. armor = 8;
  209. explosionShielding = 0.25;
  210. material = -1;
  211. minimalHit = 0.01;
  212. name = "leg_r";
  213. passThrough = 0.1;
  214. radius = 0.1;
  215. visual = "injury_leg";
  216. };
  217. class Incapacitated: HitLegs
  218. {
  219. armor=1000;
  220. material=-1;
  221. name="body";
  222. passThrough=1;
  223. radius=0;
  224. explosionShielding=1;
  225. visual="";
  226. minimalHit=0;
  227. depends="(((Total - 0.25) max 0) + ((HitHead - 0.25) max 0) + ((HitBody - 0.25) max 0)) * 2";
  228. };
  229. };
  230. armor=15;
  231. armorStructural=1;
  232. explosionShielding=0.40000001;
  233. uniformClass=macro_new_uniform_class(opfor,B2_Armor)
  234. class EventHandlers;
  235. hiddenSelections[]=
  236. {
  237. "Camo1","Camo2","Camo3"
  238. };
  239. hiddenSelectionsTextures[]=
  240. {
  241. "RD501_Units\textures\CIS\B2\rocket\Reskinb2_chest.paa",
  242. "RD501_Units\textures\CIS\B2\rocket\ReskinB2_waist.paa",
  243. "RD501_Units\textures\CIS\B2\rocket\ReskinB2_legs.paa"
  244. };
  245. respawnWeapons[] = {"SWOP_B2gun","Throw","Put"};
  246. magazines[] = {"SWOP_b2gun_Mag","SWOP_b2gun_Mag","SWOP_b2gun_Mag","SWOP_b2gun_Mag"};
  247. weapons[] = {"SWOP_B2gun","Throw","Put"};
  248. linkedItems[] = {"ItemMap","ItemCompass","ItemWatch","ItemRadio","NVGoggles"};
  249. };
  250. class macro_new_unit_class(opfor,B2_droid_Standard_mk2): O_Soldier_F
  251. {
  252. faction=macro_cis_faction
  253. editorSubcategory=macro_editor_cat(B2)
  254. displayname = "B2 Mk2";
  255. scope=2;
  256. class HitPoints
  257. {
  258. class HitFace
  259. {
  260. armor=6;
  261. material=-1;
  262. name="face_hub";
  263. passThrough=0.013;
  264. radius=0.079999998;
  265. explosionShielding=1;
  266. minimalHit=0.0099999998;
  267. };
  268. class HitNeck: HitFace
  269. {
  270. armor=6;
  271. material=-1;
  272. name="neck";
  273. passThrough=0.013;
  274. radius=0.1;
  275. explosionShielding=1;
  276. minimalHit=0.0099999998;
  277. };
  278. class HitHead: HitNeck
  279. {
  280. armor=6;
  281. material=-1;
  282. name="head";
  283. passThrough=0.13;
  284. radius=0.2;
  285. explosionShielding=1;
  286. minimalHit=0.0099999998;
  287. depends="HitFace max HitNeck";
  288. };
  289. class HitPelvis: HitHead
  290. {
  291. armor=8;
  292. material=-1;
  293. name="pelvis";
  294. passThrough=0.44;
  295. radius=0.23999999;
  296. explosionShielding=1;
  297. visual="injury_body";
  298. minimalHit=0.0099999998;
  299. depends="0";
  300. };
  301. class HitAbdomen: HitPelvis
  302. {
  303. armor=8;
  304. material=-1;
  305. name="spine1";
  306. passThrough=0.44;
  307. radius=0.16;
  308. explosionShielding=1;
  309. visual="injury_body";
  310. minimalHit=0.0099999998;
  311. };
  312. class HitDiaphragm: HitAbdomen
  313. {
  314. armor=8;
  315. material=-1;
  316. name="spine2";
  317. passThrough=0.44;
  318. radius=0.18000001;
  319. explosionShielding=1.5;
  320. visual="injury_body";
  321. minimalHit=0.0099999998;
  322. };
  323. class HitChest: HitDiaphragm
  324. {
  325. armor=8;
  326. material=-1;
  327. name="spine3";
  328. passThrough=0.44;
  329. radius=0.18000001;
  330. explosionShielding=1.5;
  331. visual="injury_body";
  332. minimalHit=0.0099999998;
  333. };
  334. class HitBody: HitChest
  335. {
  336. armor=1000;
  337. material=-1;
  338. name="body";
  339. passThrough=1;
  340. radius=0;
  341. explosionShielding=1.5;
  342. visual="injury_body";
  343. minimalHit=0.0099999998;
  344. depends="HitPelvis max HitAbdomen max HitDiaphragm max HitChest";
  345. };
  346. class HitArms: HitBody
  347. {
  348. armor=6;
  349. material=-1;
  350. name="arms";
  351. passThrough=0.13;
  352. radius=0.1;
  353. explosionShielding=0.4;
  354. visual="injury_hands";
  355. minimalHit=0.0099999998;
  356. depends="0";
  357. };
  358. class HitRightHand :HitArms
  359. {
  360. armor = 8;
  361. explosionShielding = 0.25;
  362. material = -1;
  363. minimalHit = 0.01;
  364. name = "hand_r";
  365. passThrough = 0.1;
  366. radius = 0.1;
  367. visual = "injury_hands";
  368. };
  369. class HitLeftHand :HitArms
  370. {
  371. armor = 8;
  372. explosionShielding = 0.25;
  373. material = -1;
  374. minimalHit = 0.01;
  375. name = "hand_l";
  376. passThrough = 0.1;
  377. radius = 0.1;
  378. visual = "injury_hands";
  379. };
  380. class HitHands: HitArms
  381. {
  382. armor=6;
  383. material=-1;
  384. name="hands";
  385. passThrough=0.13;
  386. radius=0.1;
  387. explosionShielding=0.30000001;
  388. visual="injury_hands";
  389. minimalHit=0.0099999998;
  390. depends="HitArms";
  391. };
  392. class HitLegs: HitHands
  393. {
  394. armor=6;
  395. material=-1;
  396. name="legs";
  397. passThrough=0.13;
  398. radius=0.1;
  399. explosionShielding=0.30000001;
  400. visual="injury_legs";
  401. minimalHit=0.0099999998;
  402. depends="0";
  403. };
  404. class HitLeftLeg :HitLegs
  405. {
  406. armor = 8;
  407. explosionShielding = 0.25;
  408. material = -1;
  409. minimalHit = 0.01;
  410. name = "leg_l";
  411. passThrough = 0.1;
  412. radius = 0.1;
  413. visual = "injury_legs";
  414. };
  415. class HitRightLeg :HitLegs
  416. {
  417. armor = 8;
  418. explosionShielding = 0.25;
  419. material = -1;
  420. minimalHit = 0.01;
  421. name = "leg_r";
  422. passThrough = 0.1;
  423. radius = 0.1;
  424. visual = "injury_leg";
  425. };
  426. class Incapacitated: HitLegs
  427. {
  428. armor=1000;
  429. material=-1;
  430. name="body";
  431. passThrough=1;
  432. radius=0;
  433. explosionShielding=1;
  434. visual="";
  435. minimalHit=0;
  436. depends="(((Total - 0.25) max 0) + ((HitHead - 0.25) max 0) + ((HitBody - 0.25) max 0)) * 2";
  437. };
  438. };
  439. armor=15;
  440. armorStructural=1;
  441. explosionShielding=0.40000001;
  442. model="\101st_Aux_Mod\Addons\DBA_CIS\Assets\B2.p3d";
  443. uniformClass=macro_new_uniform_class(opfor,B2_Armor_mk2)
  444. class EventHandlers;
  445. hiddenSelections[]=
  446. {
  447. "Camo1","Camo2","Camo3"
  448. };
  449. hiddenSelectionsTextures[]=
  450. {
  451. "RD501_Units\textures\CIS\B2\rocket\Reskinb2_chest.paa",
  452. "RD501_Units\textures\CIS\B2\rocket\ReskinB2_waist.paa",
  453. "RD501_Units\textures\CIS\B2\rocket\ReskinB2_legs.paa"
  454. };
  455. respawnWeapons[] = {macro_new_weapon(b2,standard),"Put"};
  456. 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)};
  457. weapons[] = {macro_new_weapon(b2,standard),"Put"};
  458. 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)};
  459. linkedItems[] = {"ItemMap","ItemCompass","ItemWatch","ItemRadio","NVGoggles"};
  460. };
  461. class macro_new_unit_class(opfor,B2_droid_Super) : macro_new_unit_class(opfor,B2_droid_Standard)
  462. {
  463. displayname = "Super B2";
  464. armor=30;
  465. armorStructural=1;
  466. uniformClass=macro_new_uniform_class(opfor,B2_SuperArmor)
  467. hiddenSelections[]=
  468. {
  469. "Camo1","Camo2","Camo3"
  470. };
  471. hiddenSelectionsTextures[]=
  472. {
  473. "RD501_Units\textures\CIS\B2\super\super_b2_chest.paa",
  474. "RD501_Units\textures\CIS\B2\super\super_b2_waist.paa",
  475. "RD501_Units\textures\CIS\B2\super\super_b2_legs.paa"
  476. };
  477. /*class HitPoints
  478. {
  479. class HitFace
  480. {
  481. armor=10;
  482. material=-1;
  483. name="face_hub";
  484. passThrough=0.1;
  485. radius=0.079999998;
  486. explosionShielding=1;
  487. minimalHit=0.0099999998;
  488. };
  489. class HitNeck: HitFace
  490. {
  491. armor=15;
  492. material=-1;
  493. name="neck";
  494. passThrough=0.1;
  495. radius=0.1;
  496. explosionShielding=1;
  497. minimalHit=0.0099999998;
  498. };
  499. class HitHead: HitNeck
  500. {
  501. armor=10;
  502. material=-1;
  503. name="head";
  504. passThrough=0.1;
  505. radius=0.2;
  506. explosionShielding=1;
  507. minimalHit=0.0099999998;
  508. depends="HitFace max HitNeck";
  509. };
  510. class HitPelvis: HitHead
  511. {
  512. armor=15;
  513. material=-1;
  514. name="pelvis";
  515. passThrough=0.1;
  516. radius=0.23999999;
  517. explosionShielding=1;
  518. visual="injury_body";
  519. minimalHit=0.0099999998;
  520. depends="0";
  521. };
  522. class HitAbdomen: HitPelvis
  523. {
  524. armor=15;
  525. material=-1;
  526. name="spine1";
  527. passThrough=0.1;
  528. radius=0.16;
  529. explosionShielding=1;
  530. visual="injury_body";
  531. minimalHit=0.0099999998;
  532. };
  533. class HitDiaphragm: HitAbdomen
  534. {
  535. armor=20;
  536. material=-1;
  537. name="spine2";
  538. passThrough=0.1;
  539. radius=0.18000001;
  540. explosionShielding=1.5;
  541. visual="injury_body";
  542. minimalHit=0.0099999998;
  543. };
  544. class HitChest: HitDiaphragm
  545. {
  546. armor=25;
  547. material=-1;
  548. name="spine3";
  549. passThrough=0.1;
  550. radius=0.18000001;
  551. explosionShielding=1.5;
  552. visual="injury_body";
  553. minimalHit=0.0099999998;
  554. };
  555. class HitBody: HitChest
  556. {
  557. armor=1000;
  558. material=-1;
  559. name="body";
  560. passThrough=0.1;
  561. radius=0;
  562. explosionShielding=1.5;
  563. visual="injury_body";
  564. minimalHit=0.0099999998;
  565. depends="HitPelvis max HitAbdomen max HitDiaphragm max HitChest";
  566. };
  567. class HitArms: HitBody
  568. {
  569. armor=25;
  570. material=-1;
  571. name="arms";
  572. passThrough=0.13;
  573. radius=0.1;
  574. explosionShielding=0.4;
  575. visual="injury_hands";
  576. minimalHit=0.0099999998;
  577. depends="0";
  578. };
  579. class HitRightHand :HitArms
  580. {
  581. armor = 8;
  582. explosionShielding = 0.25;
  583. material = -1;
  584. minimalHit = 0.01;
  585. name = "hand_r";
  586. passThrough = 0.1;
  587. radius = 0.1;
  588. visual = "injury_hands";
  589. };
  590. class HitLeftHand :HitArms
  591. {
  592. armor = 8;
  593. explosionShielding = 0.25;
  594. material = -1;
  595. minimalHit = 0.01;
  596. name = "hand_l";
  597. passThrough = 0.1;
  598. radius = 0.1;
  599. visual = "injury_hands";
  600. };
  601. class HitHands: HitArms
  602. {
  603. armor=6;
  604. material=-1;
  605. name="hands";
  606. passThrough=0.13;
  607. radius=0.1;
  608. explosionShielding=0.30000001;
  609. visual="injury_hands";
  610. minimalHit=0.0099999998;
  611. depends="HitArms";
  612. };
  613. class HitLegs: HitHands
  614. {
  615. armor=20;
  616. material=-1;
  617. name="legs";
  618. passThrough=0.13;
  619. radius=0.1;
  620. explosionShielding=0.30000001;
  621. visual="injury_legs";
  622. minimalHit=0.0099999998;
  623. depends="0";
  624. };
  625. class HitLeftLeg :HitLegs
  626. {
  627. armor = 8;
  628. explosionShielding = 0.25;
  629. material = -1;
  630. minimalHit = 0.01;
  631. name = "leg_l";
  632. passThrough = 0.1;
  633. radius = 0.1;
  634. visual = "injury_legs";
  635. };
  636. class HitRightLeg :HitLegs
  637. {
  638. armor = 8;
  639. explosionShielding = 0.25;
  640. material = -1;
  641. minimalHit = 0.01;
  642. name = "leg_r";
  643. passThrough = 0.1;
  644. radius = 0.1;
  645. visual = "injury_leg";
  646. };
  647. class Incapacitated: HitLegs
  648. {
  649. armor=1000;
  650. material=-1;
  651. name="body";
  652. passThrough=1;
  653. radius=0;
  654. explosionShielding=1;
  655. visual="";
  656. minimalHit=0;
  657. depends="(((Total - 0.25) max 0) + ((HitHead - 0.25) max 0) + ((HitBody - 0.25) max 0)) * 2";
  658. };
  659. };*/
  660. };
  661. };
  662. class CfgWeapons
  663. {
  664. class DefaultEventhandlers;
  665. class SWOP_B2_superdroid_F_Spec;
  666. class UniformItem;
  667. class macro_new_uniform_class(opfor,B2_Armor): SWOP_B2_superdroid_F_Spec
  668. {
  669. scope=2;
  670. displayName="RD501 B2";
  671. picture = "\SWOP_droids\data\ico\B2ico.paa"
  672. model = "\A3\Characters_F\Common\Suitpacks\suitpack_blufor_diver";
  673. class ItemInfo: UniformItem
  674. {
  675. uniformModel="-";
  676. uniformClass=macro_new_unit_class(opfor,B2_droid_Standard)
  677. containerClass="Supply40";
  678. mass=80;
  679. };
  680. JLTS_isDroid = 1;
  681. JLTS_hasEMPProtection = 0;
  682. JLTS_deathSounds = "DeathDroid";
  683. class EventHandlers : DefaultEventhandlers {};
  684. };
  685. class macro_new_uniform_class(opfor,B2_Armor_mk2): UniformItem
  686. {
  687. scope=2;
  688. displayName="RD501 B2";
  689. picture = "\SWOP_droids\data\ico\B2ico.paa"
  690. model = "\A3\Characters_F\Common\Suitpacks\suitpack_blufor_diver";
  691. class ItemInfo: UniformItem
  692. {
  693. uniformModel="-";
  694. uniformClass=macro_new_unit_class(opfor,B2_droid_Standard_mk2)
  695. containerClass="Supply40";
  696. mass=80;
  697. };
  698. JLTS_isDroid = 1;
  699. JLTS_hasEMPProtection = 0;
  700. JLTS_deathSounds = "DeathDroid";
  701. class EventHandlers : DefaultEventhandlers {};
  702. };
  703. class macro_new_uniform_class(opfor,B2_SuperArmor): SWOP_B2_superdroid_F_Spec
  704. {
  705. scope=2;
  706. displayName="RD501 Super B2";
  707. picture = "\SWOP_droids\data\ico\B2ico.paa"
  708. model = "\A3\Characters_F\Common\Suitpacks\suitpack_blufor_diver";
  709. class ItemInfo: UniformItem
  710. {
  711. uniformModel="-";
  712. uniformClass=macro_new_unit_class(opfor,B2_droid_Super);
  713. containerClass="Supply40";
  714. mass=80;
  715. };
  716. JLTS_isDroid = 1;
  717. JLTS_hasEMPProtection = 0;
  718. JLTS_deathSounds = "DeathDroid";
  719. class EventHandlers : DefaultEventhandlers {};
  720. };
  721. };