Guest User

config.cpp

a guest
Jul 26th, 2016
339
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 59.85 KB | None | 0 0
  1. /**
  2. * config
  3. *
  4. * Exile Mod
  5. * www.exilemod.com
  6. * © 2015 Exile Mod Team
  7. *
  8. * This work is licensed under the Creative Commons Attribution-NonCommercial-NoDerivatives 4.0 International License.
  9. * To view a copy of this license, visit http://creativecommons.org/licenses/by-nc-nd/4.0/.
  10. */
  11.  
  12.  
  13. class CfgClans
  14. {
  15. /*
  16. Defines the amount of pop tabs needed to register a new clan
  17.  
  18. Default: 20,000
  19. */
  20. registrationFee = 20000;
  21.  
  22. /*
  23. A list of all characters allowed in a clan *name*
  24.  
  25. NOTE:
  26. */
  27. clanNameAlphabet = "abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ0123456789 ._-!:\\/";
  28.  
  29. /*
  30.  
  31. Maximum markers per clan
  32.  
  33. */
  34. maximumIcons = 20;
  35.  
  36. /*
  37. Maximum number of characters on a Marker in a presistent system
  38.  
  39. Note: MAX 255!
  40.  
  41. */
  42. maximumIconText = 50;
  43.  
  44. /*
  45.  
  46. Maximum poly markers per clan
  47.  
  48. */
  49. maximumPolys = 10;
  50.  
  51.  
  52. /*
  53.  
  54. Maximum points in poly
  55. */
  56. maximumPolyNode = 10;
  57. };
  58. class Exile_AbstractCraftingRecipe
  59. {
  60. name = "";
  61. pictureItem = "";
  62. returnedItems[] = {};
  63. components[] = {}; // Required components
  64. tools[] = {}; // Required tools (matches, gas cooker etc.)
  65. requiredInteractionModelGroup = ""; // See CfgInteractionModels
  66. requiresOcean = 0; // isSurfaceWater test
  67. requiresFire = 0; // inflamed object nearby
  68. requiresConcreteMixer = 0; // Check if concrete mixer is nearby
  69. };
  70.  
  71. class CfgCraftingRecipes
  72. {
  73.  
  74. class BreachingChargeBigMomma: Exile_AbstractCraftingRecipe
  75. {
  76. name = "Breaching Charge (Big Momma)";
  77. pictureItem = "Exile_Item_BreachingCharge_BigMomma";
  78. returnedItems[] =
  79. {
  80. {1, "Exile_Item_BreachingCharge_BigMomma"}
  81. };
  82. tools[] =
  83. {
  84. "Exile_Item_Foolbox"
  85. };
  86. components[] =
  87. {
  88. {3, "Exile_Item_BreachingCharge_Metal"},
  89. {1, "Exile_Item_MobilePhone"},
  90. {1, "Exile_Item_DuctTape"},
  91. {1, "Exile_Item_ZipTie"}
  92. };
  93. };
  94.  
  95. class BreachingChargeMetal: Exile_AbstractCraftingRecipe
  96. {
  97. name = "Breaching Charge (Metal)";
  98. pictureItem = "Exile_Item_BreachingCharge_Metal";
  99. returnedItems[] =
  100. {
  101. {1, "Exile_Item_BreachingCharge_Metal"}
  102. };
  103. tools[] =
  104. {
  105. "Exile_Item_Foolbox"
  106. };
  107. components[] =
  108. {
  109. {1, "Exile_Item_DuctTape"},
  110. {1, "SatchelCharge_Remote_Mag"}
  111. };
  112. };
  113.  
  114. class BreachingChargeWood: Exile_AbstractCraftingRecipe
  115. {
  116. name = "Breaching Charge (Wood)";
  117. pictureItem = "Exile_Item_BreachingCharge_Wood";
  118. returnedItems[] =
  119. {
  120. {1, "Exile_Item_BreachingCharge_Wood"}
  121. };
  122. tools[] =
  123. {
  124. "Exile_Item_Foolbox"
  125. };
  126. components[] =
  127. {
  128. {1, "Exile_Item_DuctTape"},
  129. {1, "DemoCharge_Remote_Mag"}
  130. };
  131. };
  132.  
  133. class CookBBQSandwich: Exile_AbstractCraftingRecipe
  134. {
  135. name = "Cook BBQ Sandwich";
  136. pictureItem = "Exile_Item_BBQSandwich_Cooked";
  137. requiresFire = 1;
  138. returnedItems[] =
  139. {
  140. {1, "Exile_Item_BBQSandwich_Cooked"}
  141. };
  142. tools[] =
  143. {
  144. "Exile_Item_CookingPot"
  145. };
  146. components[] =
  147. {
  148. {1, "Exile_Item_BBQSandwich"}
  149. };
  150. };
  151.  
  152. class CookCatFood: Exile_AbstractCraftingRecipe
  153. {
  154. name = "Cook Cat Food";
  155. pictureItem = "Exile_Item_CatFood_Cooked";
  156. requiresFire = 1;
  157. returnedItems[] =
  158. {
  159. {1, "Exile_Item_CatFood_Cooked"}
  160. };
  161. tools[] =
  162. {
  163. "Exile_Item_CookingPot"
  164. };
  165. components[] =
  166. {
  167. {1, "Exile_Item_CatFood"}
  168. };
  169. };
  170.  
  171. class CookChristmasTinner: Exile_AbstractCraftingRecipe
  172. {
  173. name = "Cook Christmas Tinner";
  174. pictureItem = "Exile_Item_ChristmasTinner_Cooked";
  175. requiresFire = 1;
  176. returnedItems[] =
  177. {
  178. {1, "Exile_Item_ChristmasTinner_Cooked"}
  179. };
  180. tools[] =
  181. {
  182. "Exile_Item_CookingPot"
  183. };
  184. components[] =
  185. {
  186. {1, "Exile_Item_ChristmasTinner"}
  187. };
  188. };
  189. class CookCoffee: Exile_AbstractCraftingRecipe
  190. {
  191. name = "Brew Coffee";
  192. pictureItem = "Exile_Item_PlasticBottleCoffee";
  193. requiresFire = 1;
  194. returnedItems[] =
  195. {
  196. {1, "Exile_Item_PlasticBottleCoffee"}
  197. };
  198. tools[] =
  199. {
  200. "Exile_Item_CookingPot"
  201. };
  202. components[] =
  203. {
  204. {1, "Exile_Item_PlasticBottleFreshWater"},
  205. {1, "Exile_Item_InstantCoffee"}
  206. };
  207. };
  208. class CookDogFood: Exile_AbstractCraftingRecipe
  209. {
  210. name = "Cook Dog Food";
  211. pictureItem = "Exile_Item_DogFood_Cooked";
  212. requiresFire = 1;
  213. returnedItems[] =
  214. {
  215. {1, "Exile_Item_DogFood_Cooked"}
  216. };
  217. tools[] =
  218. {
  219. "Exile_Item_CookingPot"
  220. };
  221. components[] =
  222. {
  223. {1, "Exile_Item_DogFood"}
  224. };
  225. };
  226.  
  227. class CookGloriousKnakworst: Exile_AbstractCraftingRecipe
  228. {
  229. name = "Cook Glorious Knakworst";
  230. pictureItem = "Exile_Item_GloriousKnakworst_Cooked";
  231. requiresFire = 1;
  232. returnedItems[] =
  233. {
  234. {1, "Exile_Item_GloriousKnakworst_Cooked"}
  235. };
  236. tools[] =
  237. {
  238. "Exile_Item_CookingPot"
  239. };
  240. components[] =
  241. {
  242. {1, "Exile_Item_GloriousKnakworst"}
  243. };
  244. };
  245.  
  246. class CookMacasCheese: Exile_AbstractCraftingRecipe
  247. {
  248. name = "Cook Macas Cheese";
  249. pictureItem = "Exile_Item_MacasCheese_Cooked";
  250. requiresFire = 1;
  251. returnedItems[] =
  252. {
  253. {1, "Exile_Item_MacasCheese_Cooked"}
  254. };
  255. tools[] =
  256. {
  257. "Exile_Item_CookingPot"
  258. };
  259. components[] =
  260. {
  261. {1, "Exile_Item_MacasCheese"}
  262. };
  263. };
  264.  
  265. class CookPlasticBottleDirtyWater: Exile_AbstractCraftingRecipe
  266. {
  267. name = "Cook Dirty Water";
  268. pictureItem = "Exile_Item_PlasticBottleFreshWater";
  269. requiresFire = 1;
  270. returnedItems[] =
  271. {
  272. {1, "Exile_Item_PlasticBottleFreshWater"}
  273. };
  274. tools[] =
  275. {
  276. "Exile_Item_CookingPot"
  277. };
  278. components[] =
  279. {
  280. {1, "Exile_Item_PlasticBottleDirtyWater"}
  281. };
  282. };
  283. class CookPlasticBottleSaltWater: Exile_AbstractCraftingRecipe
  284. {
  285. name = "Cook Salt Water";
  286. pictureItem = "Exile_Item_PlasticBottleFreshWater";
  287. requiresFire = 1;
  288. returnedItems[] =
  289. {
  290. {1, "Exile_Item_PlasticBottleFreshWater"}
  291. };
  292. tools[] =
  293. {
  294. "Exile_Item_CookingPot"
  295. };
  296. components[] =
  297. {
  298. {1, "Exile_Item_PlasticBottleSaltWater"}
  299. };
  300. };
  301.  
  302. class CookSausageGravy: Exile_AbstractCraftingRecipe
  303. {
  304. name = "Cook Sausage Gravy";
  305. pictureItem = "Exile_Item_SausageGravy_Cooked";
  306. requiresFire = 1;
  307. returnedItems[] =
  308. {
  309. {1, "Exile_Item_SausageGravy_Cooked"}
  310. };
  311. tools[] =
  312. {
  313. "Exile_Item_CookingPot"
  314. };
  315. components[] =
  316. {
  317. {1, "Exile_Item_SausageGravy"}
  318. };
  319. };
  320.  
  321. class CookSurstromming: Exile_AbstractCraftingRecipe
  322. {
  323. name = "Cook Surströmming";
  324. pictureItem = "Exile_Item_Surstromming_Cooked";
  325. requiresFire = 1;
  326. returnedItems[] =
  327. {
  328. {1, "Exile_Item_Surstromming_Cooked"}
  329. };
  330. tools[] =
  331. {
  332. "Exile_Item_CookingPot"
  333. };
  334. components[] =
  335. {
  336. {1, "Exile_Item_Surstromming"}
  337. };
  338. };
  339.  
  340. class CraftBandage: Exile_AbstractCraftingRecipe
  341. {
  342. name = "Craft Bandage";
  343. pictureItem = "Exile_Item_Bandage";
  344. returnedItems[] =
  345. {
  346. {1, "Exile_Item_Bandage"}
  347. };
  348. components[] =
  349. {
  350. {4, "Exile_Item_ToiletPaper"}
  351. };
  352. };
  353.  
  354. class CraftConcreteDoorway: Exile_AbstractCraftingRecipe
  355. {
  356. name = "Craft Concrete Doorway";
  357. pictureItem = "Exile_Item_ConcreteDoorwayKit";
  358. requiresConcreteMixer = true;
  359. returnedItems[] =
  360. {
  361. {1, "Exile_Item_ConcreteDoorwayKit"},
  362. {3, "Exile_Item_WaterCanisterEmpty"},
  363. {1, "Exile_Item_FuelCanisterEmpty"}
  364. };
  365. components[] =
  366. {
  367. {3, "Exile_Item_Cement"},
  368. {3, "Exile_Item_Sand"},
  369. {3, "Exile_Item_MetalPole"},
  370. {3, "Exile_Item_WaterCanisterDirtyWater"},
  371. {1, "Exile_Item_FuelCanisterFull"}
  372. };
  373. };
  374. class CraftConcreteFloor: Exile_AbstractCraftingRecipe
  375. {
  376. name = "Craft Concrete Floor";
  377. pictureItem = "Exile_Item_ConcreteFloorKit";
  378. requiresConcreteMixer = true;
  379. returnedItems[] =
  380. {
  381. {1, "Exile_Item_ConcreteFloorKit"},
  382. {2, "Exile_Item_WaterCanisterEmpty"},
  383. {1, "Exile_Item_FuelCanisterEmpty"}
  384. };
  385. components[] =
  386. {
  387. {2, "Exile_Item_Cement"},
  388. {2, "Exile_Item_Sand"},
  389. {2, "Exile_Item_MetalPole"},
  390. {2, "Exile_Item_WaterCanisterDirtyWater"},
  391. {1, "Exile_Item_FuelCanisterFull"}
  392. };
  393. };
  394. class CraftConcreteFloorPort: Exile_AbstractCraftingRecipe
  395. {
  396. name = "Craft Concrete Floor Port";
  397. pictureItem = "Exile_Item_ConcreteFloorPortKit";
  398. requiresConcreteMixer = true;
  399. returnedItems[] =
  400. {
  401. {1, "Exile_Item_ConcreteFloorPortKit"},
  402. {3, "Exile_Item_WaterCanisterEmpty"},
  403. {1, "Exile_Item_FuelCanisterEmpty"}
  404. };
  405. components[] =
  406. {
  407. {3, "Exile_Item_Cement"},
  408. {3, "Exile_Item_Sand"},
  409. {3, "Exile_Item_MetalPole"},
  410. {3, "Exile_Item_WaterCanisterDirtyWater"},
  411. {1, "Exile_Item_FuelCanisterFull"}
  412. };
  413. };
  414. class CraftConcreteGate: Exile_AbstractCraftingRecipe
  415. {
  416. name = "Craft Concrete Gate";
  417. pictureItem = "Exile_Item_ConcreteGateKit";
  418. requiresConcreteMixer = true;
  419. returnedItems[] =
  420. {
  421. {1, "Exile_Item_ConcreteGateKit"},
  422. {4, "Exile_Item_WaterCanisterEmpty"},
  423. {1, "Exile_Item_FuelCanisterEmpty"}
  424. };
  425. components[] =
  426. {
  427. {4, "Exile_Item_Cement"},
  428. {4, "Exile_Item_Sand"},
  429. {4, "Exile_Item_MetalPole"},
  430. {4, "Exile_Item_WaterCanisterDirtyWater"},
  431. {1, "Exile_Item_FuelCanisterFull"}
  432. };
  433. };
  434. class CraftConcretStairs: Exile_AbstractCraftingRecipe
  435. {
  436. name = "Craft Concrete Stairs";
  437. pictureItem = "Exile_Item_ConcreteStairsKit";
  438. requiresConcreteMixer = true;
  439. returnedItems[] =
  440. {
  441. {1, "Exile_Item_ConcreteStairsKit"},
  442. {1, "Exile_Item_WaterCanisterEmpty"},
  443. {1, "Exile_Item_FuelCanisterEmpty"}
  444. };
  445. components[] =
  446. {
  447. {1, "Exile_Item_Cement"},
  448. {1, "Exile_Item_Sand"},
  449. {1, "Exile_Item_MetalPole"},
  450. {1, "Exile_Item_WaterCanisterDirtyWater"},
  451. {1, "Exile_Item_FuelCanisterFull"}
  452. };
  453. };
  454. class CraftConcretSupport: Exile_AbstractCraftingRecipe
  455. {
  456. name = "Craft Concrete Support";
  457. pictureItem = "Exile_Item_ConcreteSupportKit";
  458. requiresConcreteMixer = true;
  459. returnedItems[] =
  460. {
  461. {1, "Exile_Item_ConcreteSupportKit"},
  462. {1, "Exile_Item_WaterCanisterEmpty"},
  463. {1, "Exile_Item_FuelCanisterEmpty"}
  464. };
  465. components[] =
  466. {
  467. {1, "Exile_Item_Cement"},
  468. {1, "Exile_Item_Sand"},
  469. {1, "Exile_Item_MetalPole"},
  470. {1, "Exile_Item_WaterCanisterDirtyWater"},
  471. {1, "Exile_Item_FuelCanisterFull"}
  472. };
  473. };
  474. class CraftConcreteWall: Exile_AbstractCraftingRecipe
  475. {
  476. name = "Craft Concrete Wall";
  477. pictureItem = "Exile_Item_ConcreteWallKit";
  478. requiresConcreteMixer = true;
  479. returnedItems[] =
  480. {
  481. {1, "Exile_Item_ConcreteWallKit"},
  482. {2, "Exile_Item_WaterCanisterEmpty"},
  483. {1, "Exile_Item_FuelCanisterEmpty"}
  484. };
  485. components[] =
  486. {
  487. {2, "Exile_Item_Cement"},
  488. {2, "Exile_Item_Sand"},
  489. {2, "Exile_Item_MetalPole"},
  490. {2, "Exile_Item_WaterCanisterDirtyWater"},
  491. {1, "Exile_Item_FuelCanisterFull"}
  492. };
  493. };
  494. class CraftFirePlace: Exile_AbstractCraftingRecipe
  495. {
  496. name = "Craft Fire Place";
  497. pictureItem = "Exile_Item_CampFireKit";
  498. returnedItems[] =
  499. {
  500. {1, "Exile_Item_CampFireKit"}
  501. };
  502. components[] =
  503. {
  504. {2, "Exile_Item_WoodLog"}
  505. };
  506. };
  507. class CraftFloodLight: Exile_AbstractCraftingRecipe
  508. {
  509. name = "Craft Flood Light";
  510. pictureItem = "Exile_Item_FloodLightKit";
  511. requiresFire = 1;
  512. returnedItems[] =
  513. {
  514. {1, "Exile_Item_FloodLightKit"}
  515. };
  516. components[] =
  517. {
  518. {1, "Exile_Item_MetalPole"},
  519. {1, "Exile_Item_LightBulb"},
  520. {1, "Exile_Item_ExtensionCord"}
  521. };
  522. };
  523. class CraftFortificationUpgrade: Exile_AbstractCraftingRecipe
  524. {
  525. name = "Craft Fortification Upgrade";
  526. pictureItem = "Exile_Item_MetalBoard"; //<< CHANGE IT
  527. requiresFire = 1;
  528. requiredInteractionModelGroup = "WorkBench";
  529. returnedItems[] =
  530. {
  531. {1, "Exile_Item_FortificationUpgrade"}
  532. };
  533. components[] =
  534. {
  535. {2, "Exile_Item_MetalPole"},
  536. {4, "Exile_Item_MetalBoard"}
  537. };
  538. tools[] = {"Exile_Item_Grinder"};
  539. };
  540. class CraftHBarrier5Kit: Exile_AbstractCraftingRecipe
  541. {
  542. name = "Craft H-barrier (5 Blocks)";
  543. pictureItem = "Exile_Item_HBarrier5Kit";
  544. requiredInteractionModelGroup = "WorkBench";
  545. tools[] =
  546. {
  547. "Exile_Item_Pliers"
  548. };
  549. returnedItems[] =
  550. {
  551. {1, "Exile_Item_HBarrier5Kit"}
  552. };
  553. components[] =
  554. {
  555. {3, "Exile_Item_SandBagsKit_Long"},
  556. {2, "Exile_Item_MetalWire"}
  557. };
  558. };
  559. class CraftMetalBoard: Exile_AbstractCraftingRecipe
  560. {
  561. name = "Craft Metal Board";
  562. pictureItem = "Exile_Item_MetalBoard";
  563. requiresFire = 1;
  564. returnedItems[] =
  565. {
  566. {1, "Exile_Item_MetalBoard"}
  567. };
  568. components[] =
  569. {
  570. {2, "Exile_Item_JunkMetal"}
  571. };
  572. tools[] = {"Exile_Item_Grinder"};
  573. };
  574. class CraftMetalHedgehog: Exile_AbstractCraftingRecipe
  575. {
  576. name = "Craft Metal Hedgehog";
  577. pictureItem = "Exile_Item_MetalHedgehogKit";
  578. requiresFire = 1;
  579. returnedItems[] =
  580. {
  581. {1, "Exile_Item_MetalHedgehogKit"}
  582. };
  583. components[] =
  584. {
  585. {4, "Exile_Item_MetalPole"}
  586. };
  587. tools[] = {"Exile_Item_Grinder"};
  588. };
  589. class CraftMetalPole: Exile_AbstractCraftingRecipe
  590. {
  591. name = "Craft Metal Pole";
  592. pictureItem = "Exile_Item_MetalPole";
  593. requiresFire = 1;
  594. returnedItems[] =
  595. {
  596. {1, "Exile_Item_MetalPole"}
  597. };
  598. components[] =
  599. {
  600. {4, "Exile_Item_JunkMetal"}
  601. };
  602. tools[] = {"Exile_Item_Grinder"};
  603. };
  604. class CraftPortableGenerator: Exile_AbstractCraftingRecipe
  605. {
  606. name = "Craft Portable Generator";
  607. pictureItem = "Exile_Item_PortableGeneratorKit";
  608. requiresFire = 1;
  609. returnedItems[] =
  610. {
  611. {1, "Exile_Item_PortableGeneratorKit"}
  612. };
  613. components[] =
  614. {
  615. {4, "Exile_Item_MetalBoard"},
  616. {1, "Exile_Item_FuelCanisterFull"},
  617. {1, "Exile_Item_ExtensionCord"}
  618. };
  619. };
  620. /*class CraftRazorWireKit: Exile_AbstractCraftingRecipe
  621. {
  622. name = "Craft Razor Wire Kit Kit";
  623. pictureItem = "Exile_Item_RazorWireKit_Long";
  624. requiredInteractionModelGroup = "WorkBench";
  625. tools[] =
  626. {
  627. "Exile_Item_Grinder",
  628. "Exile_Item_Pliers",
  629. "Exile_Item_Screwdriver"
  630. };
  631. returnedItems[] =
  632. {
  633. {1, "Exile_Item_RazorWireKit_Long"}
  634. };
  635. components[] =
  636. {
  637. {2, "Exile_Item_MetalPole"},
  638. {4, "Exile_Item_MetalWire"},
  639. {1, "Exile_Item_MetalScrews"}
  640. };
  641. };*/
  642. class CraftRepairKitConcrete: Exile_AbstractCraftingRecipe
  643. {
  644. name = "Craft Concrete Repair Kit";
  645. pictureItem = "Exile_Item_Cement";
  646. requiresConcreteMixer = true;
  647. returnedItems[] =
  648. {
  649. {1, "Exile_Item_RepairKitConcrete"},
  650. {1, "Exile_Item_WaterCanisterEmpty"},
  651. {1, "Exile_Item_FuelCanisterEmpty"}
  652. };
  653. components[] =
  654. {
  655. {4, "Exile_Item_Cement"},
  656. {2, "Exile_Item_Sand"},
  657. {1, "Exile_Item_WaterCanisterDirtyWater"},
  658. {1, "Exile_Item_FuelCanisterFull"}
  659. };
  660. };
  661. class CraftRepairKitMetal: Exile_AbstractCraftingRecipe
  662. {
  663. name = "Craft Metal Repair Kit";
  664. pictureItem = "Exile_Item_MetalBoard";
  665. requiresFire = 0;
  666. requiredInteractionModelGroup = "WorkBench";
  667. returnedItems[] =
  668. {
  669. {1, "Exile_Item_RepairKitWood"}
  670. };
  671. components[] =
  672. {
  673. {4, "Exile_Item_MetalBoard"}
  674. };
  675. tools[] =
  676. {
  677. "Exile_Item_Foolbox",
  678. "Exile_Item_Grinder"
  679. };
  680. };
  681. class CraftRepairKitWood: Exile_AbstractCraftingRecipe
  682. {
  683. name = "Craft Wood Repair Kit";
  684. pictureItem = "Exile_Item_WoodPlank";
  685. requiresFire = 0;
  686. requiredInteractionModelGroup = "WorkBench";
  687. returnedItems[] =
  688. {
  689. {1, "Exile_Item_RepairKitWood"}
  690. };
  691. components[] =
  692. {
  693. {4, "Exile_Item_WoodPlank"}
  694. };
  695. tools[] =
  696. {
  697. "Exile_Item_Foolbox"
  698. };
  699. };
  700. class CraftSandBagsKitCorner: Exile_AbstractCraftingRecipe
  701. {
  702. name = "Craft Sandbags Kit (Corner)";
  703. pictureItem = "Exile_Item_SandBagsKit_Corner";
  704. requiredInteractionModelGroup = "WorkBench";
  705. returnedItems[] =
  706. {
  707. {1, "Exile_Item_SandBagsKit_Corner"}
  708. };
  709. components[] =
  710. {
  711. {3, "Exile_Item_Sand"}
  712. };
  713. };
  714. class CraftSandBagsKitLong: Exile_AbstractCraftingRecipe
  715. {
  716. name = "Craft Sand Bags Kit (Long)";
  717. pictureItem = "Exile_Item_SandBagsKit_Long";
  718. requiredInteractionModelGroup = "WorkBench";
  719. returnedItems[] =
  720. {
  721. {1, "Exile_Item_SandBagsKit_Long"}
  722. };
  723. components[] =
  724. {
  725. {6, "Exile_Item_Sand"}
  726. };
  727. };
  728. class CraftStorageCrate: Exile_AbstractCraftingRecipe
  729. {
  730. name = "Craft Storage Crate";
  731. pictureItem = "Exile_Item_StorageCrateKit";
  732. requiredInteractionModelGroup = "WorkBench";
  733. returnedItems[] =
  734. {
  735. {1, "Exile_Item_StorageCrateKit"}
  736. };
  737. components[] =
  738. {
  739. {5, "Exile_Item_WoodPlank"}
  740. };
  741. };
  742. class CraftWaterBarrel: Exile_AbstractCraftingRecipe
  743. {
  744. name = "Craft Water Barrel";
  745. pictureItem = "Exile_Item_WaterBarrelKit";
  746. requiredInteractionModelGroup = "WorkBench";
  747. requiresFire = 1;
  748. returnedItems[] =
  749. {
  750. {1, "Exile_Item_WaterBarrelKit"}
  751. };
  752. components[] =
  753. {
  754. {20, "Exile_Item_PlasticBottleEmpty"}
  755. };
  756. };
  757. class CraftWireFenceKit: Exile_AbstractCraftingRecipe
  758. {
  759. name = "Craft Wire Fence Kit";
  760. pictureItem = "Exile_Item_WireFenceKit_Long";
  761. requiredInteractionModelGroup = "WorkBench";
  762. tools[] =
  763. {
  764. "Exile_Item_Grinder",
  765. "Exile_Item_Pliers",
  766. "Exile_Item_Screwdriver"
  767. };
  768. returnedItems[] =
  769. {
  770. {1, "Exile_Item_RazorWireKit_Long"}
  771. };
  772. components[] =
  773. {
  774. {4, "Exile_Item_MetalPole"},
  775. {6, "Exile_Item_MetalWire"},
  776. {1, "Exile_Item_MetalScrews"}
  777. };
  778. };
  779. class CraftWoodDoorWay: Exile_AbstractCraftingRecipe
  780. {
  781. name = "Craft Wood Doorway";
  782. pictureItem = "Exile_Item_WoodDoorwayKit";
  783. requiredInteractionModelGroup = "WorkBench";
  784. returnedItems[] =
  785. {
  786. {1, "Exile_Item_WoodDoorwayKit"}
  787. };
  788. components[] =
  789. {
  790. {6, "Exile_Item_WoodPlank"}
  791. };
  792. };
  793. class CraftWoodFloor: Exile_AbstractCraftingRecipe
  794. {
  795. name = "Craft Wood Floor";
  796. pictureItem = "Exile_Item_WoodFloorKit";
  797. requiredInteractionModelGroup = "WorkBench";
  798. returnedItems[] =
  799. {
  800. {1, "Exile_Item_WoodFloorKit"}
  801. };
  802. components[] =
  803. {
  804. {4, "Exile_Item_WoodPlank"}
  805. };
  806. };
  807. class CraftWoodFloorPort: Exile_AbstractCraftingRecipe
  808. {
  809. name = "Craft Wood Floor Port";
  810. pictureItem = "Exile_Item_WoodFloorPortKit";
  811. requiredInteractionModelGroup = "WorkBench";
  812. returnedItems[] =
  813. {
  814. {1, "Exile_Item_WoodFloorPortKit"}
  815. };
  816. components[] =
  817. {
  818. {6, "Exile_Item_WoodPlank"}
  819. };
  820. };
  821. class CraftWoodGate: Exile_AbstractCraftingRecipe
  822. {
  823. name = "Craft Wood Gate";
  824. pictureItem = "Exile_Item_WoodGateKit";
  825. requiredInteractionModelGroup = "WorkBench";
  826. returnedItems[] =
  827. {
  828. {1, "Exile_Item_WoodGateKit"}
  829. };
  830. components[] =
  831. {
  832. {8, "Exile_Item_WoodPlank"}
  833. };
  834. };
  835. class CraftWoodPlank: Exile_AbstractCraftingRecipe
  836. {
  837. name = "Craft Wood Plank";
  838. pictureItem = "Exile_Item_WoodPlank";
  839. requiredInteractionModelGroup = "WorkBench";
  840. returnedItems[] =
  841. {
  842. {1, "Exile_Item_WoodPlank"}
  843. };
  844. components[] =
  845. {
  846. {2, "Exile_Item_WoodLog"}
  847. };
  848. tools[] = {"Exile_Item_Handsaw"};
  849. };
  850. class CraftWoodStairs: Exile_AbstractCraftingRecipe
  851. {
  852. name = "Craft Wood Stairs";
  853. pictureItem = "Exile_Item_WoodStairsKit";
  854. requiredInteractionModelGroup = "WorkBench";
  855. returnedItems[] =
  856. {
  857. {1, "Exile_Item_WoodStairsKit"}
  858. };
  859. components[] =
  860. {
  861. {6, "Exile_Item_WoodPlank"}
  862. };
  863. };
  864. class CraftWoodSupport: Exile_AbstractCraftingRecipe
  865. {
  866. name = "Craft Wood Support";
  867. pictureItem = "Exile_Item_WoodSupportKit";
  868. requiredInteractionModelGroup = "WorkBench";
  869. returnedItems[] =
  870. {
  871. {1, "Exile_Item_WoodSupportKit"}
  872. };
  873. components[] =
  874. {
  875. {6, "Exile_Item_WoodPlank"}
  876. };
  877. };
  878. class CraftWoodWall: Exile_AbstractCraftingRecipe
  879. {
  880. name = "Craft Wood Wall";
  881. pictureItem = "Exile_Item_WoodWallKit";
  882. requiredInteractionModelGroup = "WorkBench";
  883. returnedItems[] =
  884. {
  885. {1, "Exile_Item_WoodWallKit"}
  886. };
  887. components[] =
  888. {
  889. {4, "Exile_Item_WoodPlank"}
  890. };
  891. };
  892. class CraftWoodWallHalf: Exile_AbstractCraftingRecipe
  893. {
  894. name = "Craft 1/2 Wood Wall";
  895. pictureItem = "Exile_Item_WoodWallHalfKit";
  896. requiredInteractionModelGroup = "WorkBench";
  897. returnedItems[] =
  898. {
  899. {1, "Exile_Item_WoodWallHalfKit"}
  900. };
  901. components[] =
  902. {
  903. {2, "Exile_Item_WoodPlank"}
  904. };
  905. };
  906. class CraftWoodWindow: Exile_AbstractCraftingRecipe
  907. {
  908. name = "Craft Wood Window";
  909. pictureItem = "Exile_Item_WoodWindowKit";
  910. requiredInteractionModelGroup = "WorkBench";
  911. returnedItems[] =
  912. {
  913. {1, "Exile_Item_WoodWindowKit"}
  914. };
  915. components[] =
  916. {
  917. {6, "Exile_Item_WoodPlank"}
  918. };
  919. };
  920. class CraftWorkBench: Exile_AbstractCraftingRecipe
  921. {
  922. name = "Craft Work Bench";
  923. pictureItem = "Exile_Item_WorkBenchKit";
  924. returnedItems[] =
  925. {
  926. {1, "Exile_Item_WorkBenchKit"}
  927. };
  928. components[] =
  929. {
  930. {4, "Exile_Item_WoodLog"}
  931. };
  932. };
  933. class EmptyFuelCanister: Exile_AbstractCraftingRecipe
  934. {
  935. name = "Empty Fuel Canister";
  936. pictureItem = "Exile_Item_FuelCanisterEmpty";
  937. returnedItems[] =
  938. {
  939. {1, "Exile_Item_FuelCanisterEmpty"}
  940. };
  941. components[] =
  942. {
  943. {1, "Exile_Item_FuelCanisterFull"}
  944. };
  945. };
  946. class EmptyPlasticBottleDirtyWater: Exile_AbstractCraftingRecipe
  947. {
  948. name = "Empty Dirty Water";
  949. pictureItem = "Exile_Item_PlasticBottleEmpty";
  950. returnedItems[] =
  951. {
  952. {1, "Exile_Item_PlasticBottleEmpty"}
  953. };
  954. components[] =
  955. {
  956. {1, "Exile_Item_PlasticBottleDirtyWater"}
  957. };
  958. };
  959. class EmptyPlasticBottleSaltWater: Exile_AbstractCraftingRecipe
  960. {
  961. name = "Empty Salt Water";
  962. pictureItem = "Exile_Item_PlasticBottleEmpty";
  963. returnedItems[] =
  964. {
  965. {1, "Exile_Item_PlasticBottleEmpty"}
  966. };
  967. components[] =
  968. {
  969. {1, "Exile_Item_PlasticBottleSaltWater"}
  970. };
  971. };
  972. class FillEmptyPlasticBottleWithDirtyWater: Exile_AbstractCraftingRecipe
  973. {
  974. name = "Fill Dirty Water";
  975. pictureItem = "Exile_Item_PlasticBottleDirtyWater";
  976. requiredInteractionModelGroup = "WaterSource";
  977. returnedItems[] =
  978. {
  979. {1, "Exile_Item_PlasticBottleDirtyWater"}
  980. };
  981. components[] =
  982. {
  983. {1, "Exile_Item_PlasticBottleEmpty"}
  984. };
  985. };
  986. class FillEmptyPlasticBottleWithFreshWater: Exile_AbstractCraftingRecipe
  987. {
  988. name = "Fill Fresh Water";
  989. pictureItem = "Exile_Item_PlasticBottleFreshWater";
  990. requiredInteractionModelGroup = "CleanWaterSource";
  991. returnedItems[] =
  992. {
  993. {1, "Exile_Item_PlasticBottleFreshWater"}
  994. };
  995. components[] =
  996. {
  997. {1, "Exile_Item_PlasticBottleEmpty"}
  998. };
  999. };
  1000. class FillEmptyPlasticBottleWithSaltWater: Exile_AbstractCraftingRecipe
  1001. {
  1002. name = "Fill Salt Water";
  1003. pictureItem = "Exile_Item_PlasticBottleSaltWater";
  1004. requiresOcean = 1;
  1005. returnedItems[] =
  1006. {
  1007. {1, "Exile_Item_PlasticBottleSaltWater"}
  1008. };
  1009. components[] =
  1010. {
  1011. {1, "Exile_Item_PlasticBottleEmpty"}
  1012. };
  1013. };
  1014. class FillEmptyWaterCanisterWithDirtyWater: Exile_AbstractCraftingRecipe
  1015. {
  1016. name = "Fill Dirty Water";
  1017. pictureItem = "Exile_Item_WaterCanisterDirtyWater";
  1018. requiredInteractionModelGroup = "WaterSource";
  1019. returnedItems[] =
  1020. {
  1021. {1, "Exile_Item_WaterCanisterDirtyWater"}
  1022. };
  1023. components[] =
  1024. {
  1025. {1, "Exile_Item_WaterCanisterEmpty"}
  1026. };
  1027. };
  1028. class FillFuelCanister: Exile_AbstractCraftingRecipe
  1029. {
  1030. name = "Fill Fuel Canister";
  1031. pictureItem = "Exile_Item_FuelCanisterFull";
  1032. requiredInteractionModelGroup = "FuelSource";
  1033. returnedItems[] =
  1034. {
  1035. {1, "Exile_Item_FuelCanisterFull"}
  1036. };
  1037. components[] =
  1038. {
  1039. {1, "Exile_Item_FuelCanisterEmpty"}
  1040. };
  1041. };
  1042. class UpgradeToConcreteDoor: Exile_AbstractCraftingRecipe
  1043. {
  1044. name = "Upgrade to Concrete Door";
  1045. pictureItem = "Exile_Item_ConcreteDoorKit";
  1046. requiredInteractionModelGroup = "WorkBench";
  1047. returnedItems[] =
  1048. {
  1049. {1, "Exile_Item_ConcreteDoorKit"}
  1050. };
  1051. components[] =
  1052. {
  1053. {1, "Exile_Item_ConcreteDoorwayKit"},
  1054. {2, "Exile_Item_MetalPole"},
  1055. {4, "Exile_Item_MetalBoard"}
  1056. };
  1057. };
  1058. class UpgradeToConcreteFloorPort: Exile_AbstractCraftingRecipe
  1059. {
  1060. name = "Upgrade to Concrete Floor Port";
  1061. pictureItem = "Exile_Item_ConcreteFloorPortKit";
  1062. requiredInteractionModelGroup = "WorkBench";
  1063. returnedItems[] =
  1064. {
  1065. {1, "Exile_Item_ConcreteFloorPortKit"}
  1066. };
  1067. components[] =
  1068. {
  1069. {1, "Exile_Item_ConcreteFloorKit"},
  1070. {2, "Exile_Item_MetalPole"},
  1071. {4, "Exile_Item_MetalBoard"}
  1072. };
  1073. };
  1074. class UpgradeToConcreteGate: Exile_AbstractCraftingRecipe
  1075. {
  1076. name = "Upgrade to Concrete Gate";
  1077. pictureItem = "Exile_Item_ConcreteGateKit";
  1078. requiredInteractionModelGroup = "WorkBench";
  1079. returnedItems[] =
  1080. {
  1081. {1, "Exile_Item_ConcreteGateKit"}
  1082. };
  1083. components[] =
  1084. {
  1085. {1, "Exile_Item_ConcreteWallKit"},
  1086. {2, "Exile_Item_MetalPole"},
  1087. {4, "Exile_Item_MetalBoard"}
  1088. };
  1089. };
  1090. class UpgradeToConcreteWindow: Exile_AbstractCraftingRecipe
  1091. {
  1092. name = "Upgrade to Concrete Window";
  1093. pictureItem = "Exile_Item_ConcreteWindowKit";
  1094. requiredInteractionModelGroup = "WorkBench";
  1095. returnedItems[] =
  1096. {
  1097. {1, "Exile_Item_ConcreteWindowKit"}
  1098. };
  1099. components[] =
  1100. {
  1101. {1, "Exile_Item_ConcreteWallKit"},
  1102. {2, "Exile_Item_MetalPole"},
  1103. {4, "Exile_Item_MetalBoard"}
  1104. };
  1105. };
  1106. class UpgradeToWoodDoor: Exile_AbstractCraftingRecipe
  1107. {
  1108. name = "Upgrade to Wood Door";
  1109. pictureItem = "Exile_Item_WoodDoorKit";
  1110. requiredInteractionModelGroup = "WorkBench";
  1111. returnedItems[] =
  1112. {
  1113. {1, "Exile_Item_WoodDoorKit"}
  1114. };
  1115. components[] =
  1116. {
  1117. {1, "Exile_Item_WoodDoorwayKit"},
  1118. {2, "Exile_Item_WoodPlank"}
  1119. };
  1120. };
  1121. class UpgradeToWoodFloorPort: Exile_AbstractCraftingRecipe
  1122. {
  1123. name = "Upgrade to Wood Floor Port";
  1124. pictureItem = "Exile_Item_WoodFloorPortKit";
  1125. requiredInteractionModelGroup = "WorkBench";
  1126. returnedItems[] =
  1127. {
  1128. {1, "Exile_Item_WoodFloorPortKit"}
  1129. };
  1130. components[] =
  1131. {
  1132. {1, "Exile_Item_WoodFloorKit"},
  1133. {2, "Exile_Item_WoodPlank"}
  1134. };
  1135. };
  1136. class UpgradeToWoodGate: Exile_AbstractCraftingRecipe
  1137. {
  1138. name = "Upgrade to Wood Gate";
  1139. pictureItem = "Exile_Item_WoodGateKit";
  1140. requiredInteractionModelGroup = "WorkBench";
  1141. returnedItems[] =
  1142. {
  1143. {1, "Exile_Item_WoodGateKit"}
  1144. };
  1145. components[] =
  1146. {
  1147. {1, "Exile_Item_WoodWallKit"},
  1148. {4, "Exile_Item_WoodPlank"}
  1149. };
  1150. };
  1151. class UpgradeToWoodWall: Exile_AbstractCraftingRecipe
  1152. {
  1153. name = "Upgrade to Wood Wall";
  1154. pictureItem = "Exile_Item_WoodWallHalfKit";
  1155. requiredInteractionModelGroup = "WorkBench";
  1156. returnedItems[] =
  1157. {
  1158. {1, "Exile_Item_WoodWallKit"}
  1159. };
  1160. components[] =
  1161. {
  1162. {2, "Exile_Item_WoodWallHalfKit"}
  1163. };
  1164. };
  1165. class UpgradeToWoodWindow: Exile_AbstractCraftingRecipe
  1166. {
  1167. name = "Upgrade to Wood Window";
  1168. pictureItem = "Exile_Item_WoodWindowKit";
  1169. requiredInteractionModelGroup = "WorkBench";
  1170. returnedItems[] =
  1171. {
  1172. {1, "Exile_Item_WoodWindowKit"}
  1173. };
  1174. components[] =
  1175. {
  1176. {1, "Exile_Item_WoodWallKit"},
  1177. {2, "Exile_Item_WoodPlank"}
  1178. };
  1179. };
  1180. };
  1181. class CfgExileArsenal
  1182. {
  1183. #include "TRADERS\APEX\ItemListAPEX.hpp"
  1184. #include "TRADERS\ARMA3V\ItemListARMA3V.hpp"
  1185. #include "TRADERS\ARMA3W\ItemListARMA3W.hpp"
  1186. #include "TRADERS\CUPW\ItemListCUPW.hpp"
  1187. #include "TRADERS\CUPV\ItemListCUPV.hpp"
  1188. #include "TRADERS\CUSTOM\ItemListCUSTOM.hpp"
  1189. #include "TRADERS\Exile\ItemListExile.hpp"
  1190. };
  1191.  
  1192. class CfgExileCustomCode
  1193. {
  1194. /*
  1195. You can overwrite every single file of our code without touching it.
  1196. To do that, add the function name you want to overwrite plus the
  1197. path to your custom file here. If you wonder how this works, have a
  1198. look at our bootstrap/fn_preInit.sqf function.
  1199.  
  1200. Simply add the following scheme here:
  1201.  
  1202. <Function Name of Exile> = "<New File Name>";
  1203.  
  1204. Example:
  1205.  
  1206. ExileClient_util_fusRoDah = "myaddon\myfunction.sqf";
  1207. */
  1208. };
  1209. class CfgExileEnvironment
  1210. {
  1211. class Altis
  1212. {
  1213. class FireFlies
  1214. {
  1215. // 1 = enabled, 0 = disabled
  1216. enable = 0;
  1217.  
  1218. // At this hour fire flies begin to spawn
  1219. startHour = 18;
  1220.  
  1221. // At this hour fire flies stop spawning
  1222. endHour = 4;
  1223. };
  1224.  
  1225. class Anomalies
  1226. {
  1227. // 1 = enabled, 0 = disabled
  1228. enable = 0;
  1229.  
  1230. // At this hour anomalies begin to spawn
  1231. startHour = 19;
  1232.  
  1233. // At this hour anomalies stop spawning
  1234. endHour = 6;
  1235. };
  1236.  
  1237. class Breathing
  1238. {
  1239. // 1 = enabled, 0 = disabled
  1240. enable = 0;
  1241. };
  1242.  
  1243. class Snow
  1244. {
  1245. // 1 = enabled, 0 = disabled
  1246. enable = 0;
  1247.  
  1248. // https://community.bistudio.com/wiki/surfaceType
  1249. surfaces[] = {};
  1250. };
  1251.  
  1252. class Radiation
  1253. {
  1254. // 1 = enabled, 0 = disabled
  1255. enable = 1;
  1256. };
  1257.  
  1258. class Temperature
  1259. {
  1260. // Temperature in °C for the time of day, per hour
  1261. // Add the first index to the last index, so it is 25 indizes!
  1262. daytimeTemperature[] = {15.93,16.89,18.42,20.40,22.68,25.10,27.48,29.63,31.40,32.66,33.32,33.80,33.80,33.32,32.66,31.40,29.63,27.48,25.10,22.68,20.40,18.42,16.89,15.93,15.93};
  1263.  
  1264. // Temperature change in °C when it is 100% overcast
  1265. overcast = -2;
  1266.  
  1267. // Temperature change in °C when it is 100% raining
  1268. rain = -5;
  1269.  
  1270. // Temperature change in °C when it is 100% windy
  1271. wind = -1;
  1272.  
  1273. // Temperature change per 100m altitude in °C
  1274. altitude = -0.5;
  1275.  
  1276. // Difference from the daytime temperature to the water temperature
  1277. water = -5;
  1278. };
  1279. };
  1280.  
  1281. class Namalsk: Altis
  1282. {
  1283. class FireFlies: FireFlies
  1284. {
  1285. enable = 1;
  1286. };
  1287.  
  1288. class Anomalies: Anomalies
  1289. {
  1290. enable = 1;
  1291. };
  1292.  
  1293. class Breathing: Breathing
  1294. {
  1295. enable = 1;
  1296. };
  1297.  
  1298. class Snow: Snow
  1299. {
  1300. enable = 1;
  1301. surfaces[] = {"#nam_snow"};
  1302. };
  1303.  
  1304. class Radiation: Radiation
  1305. {
  1306. enable = 1;
  1307. contaminatedZones[] =
  1308. {
  1309. {{3960.14, 8454.75, 152.862}, 80, 140}, // Object A1
  1310. {{4974.70, 6632.82, 4.74293}, 40, 150}, // Object A2
  1311. {{6487.92, 9302.03, 36.0014}, 60, 110} // Sebjan Chemical Factory
  1312. };
  1313. };
  1314.  
  1315. class Temperature: Temperature
  1316. {
  1317. daytimeTemperature[] = {-2.00,-1.77,-1.12,-0.10,1.24,2.78,4.40,6.00,7.46,8.65,9.50,9.90,9.90,9.50,8.65,7.46,6.00,4.40,2.78,1.24,-0.10,-1.12,-1.77,-2.00,-2.00};
  1318. };
  1319. };
  1320.  
  1321. class Tanoa: Altis
  1322. {
  1323. class FireFlies: FireFlies
  1324. {
  1325. enable = 0;
  1326. };
  1327.  
  1328. class Anomalies: Anomalies
  1329. {
  1330. enable = 0;
  1331. };
  1332.  
  1333. class Breathing: Breathing
  1334. {
  1335. enable = 0;
  1336. };
  1337.  
  1338. class Snow: Snow
  1339. {
  1340. enable = 0;
  1341. };
  1342.  
  1343. class Radiation: Radiation
  1344. {
  1345. enable = 1;
  1346. };
  1347.  
  1348. class Temperature: Temperature
  1349. {
  1350. daytimeTemperature[] = {15.93,16.89,18.42,20.40,22.68,25.10,27.48,29.63,31.40,32.66,33.32,33.80,33.80,33.32,32.66,31.40,29.63,27.48,25.10,22.68,20.40,18.42,16.89,15.93,15.93};
  1351. };
  1352. };
  1353. };
  1354. class CfgExileHUD
  1355. {
  1356. class ShortItemNames
  1357. {
  1358. SmokeShell[] = {"WHITE", "SMOKE"};
  1359. 1Rnd_Smoke_Grenade_shell[] = {"WHITE", "SMOKE"};
  1360. 3Rnd_Smoke_Grenade_shell[] = {"WHITE", "SMOKE"};
  1361.  
  1362. SmokeShellBlue[] = {"BLUE", "SMOKE"};
  1363. 1Rnd_SmokeBlue_Grenade_shell[] = {"BLUE", "SMOKE"};
  1364. 3Rnd_SmokeBlue_Grenade_shell[] = {"BLUE", "SMOKE"};
  1365.  
  1366. SmokeShellGreen[] = {"GREEN", "SMOKE"};
  1367. 1Rnd_SmokeGreen_Grenade_shell[] = {"GREEN", "SMOKE"};
  1368. 3Rnd_SmokeGreen_Grenade_shell[] = {"GREEN", "SMOKE"};
  1369.  
  1370. SmokeShellOrange[] = {"ORANGE", "SMOKE"};
  1371. 1Rnd_SmokeOrange_Grenade_shell[] = {"ORANGE", "SMOKE"};
  1372. 3Rnd_SmokeOrange_Grenade_shell[] = {"ORANGE", "SMOKE"};
  1373.  
  1374. SmokeShellPurple[] = {"PURPLE", "SMOKE"};
  1375. 1Rnd_SmokePurple_Grenade_shell[] = {"PURPLE", "SMOKE"};
  1376. 3Rnd_SmokePurple_Grenade_shell[] = {"PURPLE", "SMOKE"};
  1377.  
  1378. SmokeShellRed[] = {"RED", "SMOKE"};
  1379. 1Rnd_SmokeRed_Grenade_shell[] = {"RED", "SMOKE"};
  1380. 3Rnd_SmokeRed_Grenade_shell[] = {"RED", "SMOKE"};
  1381.  
  1382. SmokeShellYellow[] = {"YELLOW", "SMOKE"};
  1383. 1Rnd_SmokeYellow_Grenade_shell[] = {"YELLOW", "SMOKE"};
  1384. 3Rnd_SmokeYellow_Grenade_shell[] = {"YELLOW", "SMOKE"};
  1385.  
  1386. UGL_FlareCIR_F[] = {"IR", "FLARE"};
  1387. 3Rnd_UGL_FlareCIR_F[] = {"IR", "FLARE"};
  1388.  
  1389. UGL_FlareGreen_F[] = {"GREEN", "FLARE"};
  1390. 3Rnd_UGL_FlareGreen_F[] = {"GREEN", "FLARE"};
  1391.  
  1392. UGL_FlareRed_F[] = {"RED", "FLARE"};
  1393. 3Rnd_UGL_FlareRed_F[] = {"RED", "FLARE"};
  1394.  
  1395. UGL_FlareWhite_F[] = {"WHITE", "FLARE"};
  1396. 3Rnd_UGL_FlareWhite_F[] = {"WHITE", "FLARE"};
  1397.  
  1398. UGL_FlareYellow_F[] = {"YELLOW", "FLARE"};
  1399. 3Rnd_UGL_FlareYellow_F[] = {"YELLOW", "FLARE"};
  1400.  
  1401. Chemlight_blue[] = {"BLUE", "LIGHT"};
  1402. Chemlight_green[] = {"GREEN", "LIGHT"};
  1403. Chemlight_red[] = {"RED", "LIGHT"};
  1404. Chemlight_yellow[] = {"YELLOW", "LIGHT"};
  1405.  
  1406. 1Rnd_HE_Grenade_shell[] = {"40MM"};
  1407. 3Rnd_HE_Grenade_shell[] = {"40MM"};
  1408.  
  1409. O_IR_Grenade[] = {"IR"};
  1410. I_IR_Grenade[] = {"IR"};
  1411. B_IR_Grenade[] = {"IR"};
  1412.  
  1413. HandGrenade[] = {"RGO"};
  1414. MiniGrenade[] = {"RGN"};
  1415.  
  1416. Exile_Item_ZipTie[] = {"ZIP", "TIE"};
  1417. };
  1418. };
  1419. class CfgExileLootSettings
  1420. {
  1421. /**
  1422. * Lifetime of loot in minutes. Synchronize this with
  1423. * the garbage collector settings of your server
  1424. * CfgSettings!
  1425. */
  1426. lifeTime = 8;
  1427.  
  1428. /**
  1429. * Interval in seconds when the client searches for
  1430. * new buildings to spawn loot in
  1431. */
  1432. spawnInterval = 30;
  1433.  
  1434. /**
  1435. * This is a percentage value to determine how many loot
  1436. * positions should contain loot when the system spawns loot.
  1437. *
  1438. * If a building has 20 positions defined, Exile will
  1439. * spawn loot in 10 random positions of them.
  1440. *
  1441. * This means smaller buildings spawn less loot and larger
  1442. * ones spawn more loot.
  1443. *
  1444. * You can also cap it at a maximum value. See below.
  1445. */
  1446. maximumPositionCoverage = 30;
  1447.  
  1448. /**
  1449. * Limit the number of loot positions per building. If the
  1450. * above percentage value exceeds this value, it will be capped.
  1451. *
  1452. * Example: Coverage is 50%. Building has 60 loot positions defined.
  1453. * This results in 30 loot positions and that is too much. So we
  1454. * cap this at 10
  1455. */
  1456. maximumNumberOfLootSpotsPerBuilding = 3;
  1457.  
  1458. /**
  1459. * Exile spawns a random number of items per loot spot. This
  1460. * is the upper cap for that. So 3 means it could spawn 1, 2
  1461. * or 3.
  1462. */
  1463. maximumNumberOfItemsPerLootSpot = 2;
  1464.  
  1465. /**
  1466. * Radius in meter to spawn loot AROUND each player.
  1467. * Do NOT touch this value if you dont know what you do.
  1468. * The higher the number, the higher the drop rates, the
  1469. * easier your server will lag.
  1470. *
  1471. * 50m = Minimum
  1472. * 200m = Maximum
  1473. */
  1474. spawnRadius = 60;
  1475.  
  1476. /**
  1477. * Defines the radius around trader cities where the system should
  1478. * not spawn loot. Set this to 0 if you want to have loot spawning
  1479. * in trader citites, ugh.
  1480. */
  1481. minimumDistanceToTraderZones = 500;
  1482.  
  1483. /**
  1484. * Defines the radius around territories where no loot spawns.
  1485. * This does not regard the actual size of a territory. So do not
  1486. * set this to a lower value than the maximum radius of a territory,
  1487. * which is 150m by default.
  1488. */
  1489. minimumDistanceToTerritories = 150;
  1490. };
  1491. class CfgExileMobileXM8
  1492. {
  1493. /**
  1494. * Add the 4 digit permission code here, so players can authorize
  1495. * your server to send them messages to their Mobile XM8 app.
  1496. */
  1497. code = "";
  1498. };
  1499. class CfgExileMusic
  1500. {
  1501. Ambient[] = {"ExileTrack03","ExileTrack04"};
  1502. Combat[] = {"ExileTrack06","ExileTrack07"};
  1503. Intro[] = {"ExileTrack02","ExileTrack03"};
  1504. };
  1505. class CfgExileParty
  1506. {
  1507. showESP = 1;
  1508. allow3DMarkers = 1;
  1509. };
  1510. class CfgExileRussianRoulette
  1511. {
  1512. /*
  1513. Minimum amount to join a session of
  1514. russian roulette
  1515. */
  1516. buyInAmount = 100;
  1517. };
  1518. class CfgFlags
  1519. {
  1520. class USA
  1521. {
  1522. name = "USA";
  1523. texture = "\A3\Data_F\Flags\flag_us_co.paa";
  1524. uids[] = {};
  1525. };
  1526. };
  1527.  
  1528. class ExileAbstractAction
  1529. {
  1530. title = "";
  1531. condition = "true";
  1532. action = "";
  1533. priority = 1.5;
  1534. showWindow = false;
  1535. };
  1536.  
  1537. /**
  1538. * Sort this by probability of occurence to speed things up a bit
  1539. */
  1540. class CfgInteractionMenus
  1541. {
  1542. class Car
  1543. {
  1544. targetType = 2;
  1545. target = "Car";
  1546.  
  1547. class Actions
  1548. {
  1549. class ScanLock: ExileAbstractAction
  1550. {
  1551. title = "Scan Lock";
  1552. condition = "('Exile_Item_ThermalScannerPro' in (magazines player)) && !ExilePlayerInSafezone && ((locked ExileClientInteractionObject) != 1)";
  1553. action = "_this call ExileClient_object_lock_scan";
  1554. };
  1555.  
  1556. // Locks a vehicle
  1557. class Lock: ExileAbstractAction
  1558. {
  1559. title = "Lock";
  1560. condition = "((locked ExileClientInteractionObject) isEqualTo 0) && ((locked ExileClientInteractionObject) != 1)";
  1561. action = "true spawn ExileClient_object_lock_toggle";
  1562. };
  1563.  
  1564. // Unlocks a vehicle
  1565. class Unlock: ExileAbstractAction
  1566. {
  1567. title = "Unlock";
  1568. condition = "((locked ExileClientInteractionObject) isEqualTo 2) && ((locked ExileClientInteractionObject) != 1)";
  1569. action = "false spawn ExileClient_object_lock_toggle";
  1570. };
  1571.  
  1572. // Repairs a vehicle to 100%. Requires Duckttape
  1573. class Repair: ExileAbstractAction
  1574. {
  1575. title = "Repair";
  1576. condition = "true";
  1577. action = "['RepairVehicle', _this select 0] call ExileClient_action_execute";
  1578. };
  1579.  
  1580. // Hot-wires a vehicle
  1581. class Hotwire: ExileAbstractAction
  1582. {
  1583. title = "Hotwire";
  1584. condition = "((locked ExileClientInteractionObject) isEqualTo 2) && ((locked ExileClientInteractionObject) != 1)";
  1585. action = "['HotwireVehicle', _this select 0] call ExileClient_action_execute";
  1586. };
  1587.  
  1588. // Flips a vehicle so the player doesnt have to call an admin
  1589. // Check if vector up is fucked
  1590. class Flip: ExileAbstractAction
  1591. {
  1592. title = "Flip";
  1593. condition = "call ExileClient_object_vehicle_interaction_show";
  1594. action = "_this call ExileClient_object_vehicle_flip";
  1595. };
  1596.  
  1597. // Fills fuel from a can into a car
  1598. class Refuel: ExileAbstractAction
  1599. {
  1600. title = "Refuel";
  1601. condition = "call ExileClient_object_vehicle_interaction_show";
  1602. action = "_this call ExileClient_object_vehicle_refuel";
  1603. };
  1604.  
  1605. // Drains fuel from a car into an empty jerry can
  1606. class DrainFuel: ExileAbstractAction
  1607. {
  1608. title = "Drain Fuel";
  1609. condition = "call ExileClient_object_vehicle_interaction_show";
  1610. action = "_this call ExileClient_object_vehicle_drain";
  1611. };
  1612. };
  1613. };
  1614.  
  1615. class Air
  1616. {
  1617. target = "Air";
  1618. targetType = 2;
  1619.  
  1620. class Actions
  1621. {
  1622. class ScanLock: ExileAbstractAction
  1623. {
  1624. title = "Scan Lock";
  1625. condition = "('Exile_Item_ThermalScannerPro' in (magazines player)) && ((locked ExileClientInteractionObject) != 1) && !ExilePlayerInSafezone";
  1626. action = "_this call ExileClient_object_lock_scan";
  1627. };
  1628.  
  1629. // Locks a vehicle
  1630. class Lock: ExileAbstractAction
  1631. {
  1632. title = "Lock";
  1633. condition = "((locked ExileClientInteractionObject) isEqualTo 0) && ((locked ExileClientInteractionObject) != 1)";
  1634. action = "true spawn ExileClient_object_lock_toggle";
  1635. };
  1636.  
  1637. // Unlocks a vehicle
  1638. class Unlock: ExileAbstractAction
  1639. {
  1640. title = "Unlock";
  1641. condition = "((locked ExileClientInteractionObject) isEqualTo 2) && ((locked ExileClientInteractionObject) != 1)";
  1642. action = "false spawn ExileClient_object_lock_toggle";
  1643. };
  1644.  
  1645. // Hot-wires a vehicle
  1646. class Hotwire: ExileAbstractAction
  1647. {
  1648. title = "Hotwire";
  1649. condition = "((locked ExileClientInteractionObject) isEqualTo 2) && ((locked ExileClientInteractionObject) != 1)";
  1650. action = "['HotwireVehicle', _this select 0] call ExileClient_action_execute";
  1651. };
  1652.  
  1653. // Repairs a vehicle to 100%. Requires Duckttape
  1654. class Repair: ExileAbstractAction
  1655. {
  1656. title = "Repair";
  1657. condition = "true";
  1658. action = "['RepairVehicle', _this select 0] call ExileClient_action_execute";
  1659. };
  1660.  
  1661. // Flips a vehicle so the player doesnt have to call an admin
  1662. // Check if vector up is fucked
  1663. class Flip: ExileAbstractAction
  1664. {
  1665. title = "Flip";
  1666. condition = "call ExileClient_object_vehicle_interaction_show";
  1667. action = "_this call ExileClient_object_vehicle_flip";
  1668. };
  1669.  
  1670. // Fills fuel from a can into a car
  1671. class Refuel: ExileAbstractAction
  1672. {
  1673. title = "Refuel";
  1674. condition = "call ExileClient_object_vehicle_interaction_show";
  1675. action = "_this call ExileClient_object_vehicle_refuel";
  1676. };
  1677.  
  1678. // Drains fuel from a car into an empty jerry can
  1679. class DrainFuel: ExileAbstractAction
  1680. {
  1681. title = "Drain Fuel";
  1682. condition = "call ExileClient_object_vehicle_interaction_show";
  1683. action = "_this call ExileClient_object_vehicle_drain";
  1684. };
  1685.  
  1686. class RotateLeft: ExileAbstractAction
  1687. {
  1688. title = "Rotate Left";
  1689. condition = "call ExileClient_object_vehicle_interaction_show";
  1690. action = "[ExileClientInteractionObject,-15] call ExileClient_object_vehicle_rotate";
  1691. };
  1692.  
  1693. class RotateRight: ExileAbstractAction
  1694. {
  1695. title = "Rotate Right";
  1696. condition = "call ExileClient_object_vehicle_interaction_show";
  1697. action = "[ExileClientInteractionObject,15] call ExileClient_object_vehicle_rotate";
  1698. };
  1699. };
  1700. };
  1701.  
  1702. class Safe
  1703. {
  1704. targetType = 2;
  1705. target = "Exile_Container_Safe";
  1706.  
  1707. class Actions
  1708. {
  1709. class ScanLock: ExileAbstractAction
  1710. {
  1711. title = "Scan Lock";
  1712. condition = "('Exile_Item_ThermalScannerPro' in (magazines player)) && !((ExileClientInteractionObject getvariable ['ExileIsLocked',1]) isEqualTo 1) && !ExilePlayerInSafezone";
  1713. action = "_this call ExileClient_object_lock_scan";
  1714. };
  1715.  
  1716. // Locks a vehicle
  1717. class Lock : ExileAbstractAction
  1718. {
  1719. title = "Lock";
  1720. condition = "((ExileClientInteractionObject getvariable ['ExileIsLocked',1]) isEqualTo 0)";
  1721. action = "true spawn ExileClient_object_lock_toggle";
  1722. };
  1723.  
  1724. class Unlock : ExileAbstractAction
  1725. {
  1726. title = "Unlock";
  1727. condition = "((ExileClientInteractionObject getvariable ['ExileIsLocked',1]) isEqualTo -1)";
  1728. action = "false spawn ExileClient_object_lock_toggle";
  1729. };
  1730.  
  1731. class Pack : ExileAbstractAction
  1732. {
  1733. title = "Pack";
  1734. condition = "((ExileClientInteractionObject getvariable ['ExileIsLocked',1]) isEqualTo 0)";
  1735. action = "_this spawn ExileClient_object_container_pack";
  1736. };
  1737.  
  1738. class SetPinCode : ExileAbstractAction
  1739. {
  1740. title = "Set PIN";
  1741. condition = "((ExileClientInteractionObject getvariable ['ExileIsLocked',1]) isEqualTo 0)";
  1742. action = "_this spawn ExileClient_object_lock_setPin";
  1743. };
  1744. };
  1745. };
  1746.  
  1747. class Laptop
  1748. {
  1749. targetType = 2;
  1750. target = "Exile_Construction_Laptop_Static";
  1751.  
  1752. class Actions
  1753. {
  1754. class CameraSystem: ExileAbstractAction
  1755. {
  1756. title = "CCTV Access";
  1757. condition = "((ExileClientInteractionObject animationPhase 'LaptopLidRotation') >= 0.5)";
  1758. action = "_this call ExileClient_gui_baseCamera_show";
  1759. };
  1760. };
  1761. };
  1762.  
  1763. class SupplyBox
  1764. {
  1765. targetType = 2;
  1766. target = "Exile_Container_SupplyBox";
  1767.  
  1768. class Actions
  1769. {
  1770. class Mount: ExileAbstractAction
  1771. {
  1772. title = "Mount";
  1773. condition = "(isNull (attachedTo ExileClientInteractionObject)) && ((ExileClientInteractionObject getvariable ['ExileOwnerUID',1]) isEqualTo 1)";
  1774. action = "_this call ExileClient_object_supplyBox_mount";
  1775. };
  1776.  
  1777. class Install: ExileAbstractAction
  1778. {
  1779. title = "Install";
  1780. condition = "isNull (attachedTo ExileClientInteractionObject) && ((ExileClientInteractionObject getvariable ['ExileOwnerUID',1]) isEqualTo 1)";
  1781. action = "_this call ExileClient_object_supplyBox_install";
  1782. };
  1783.  
  1784. class Unmount: ExileAbstractAction
  1785. {
  1786. title = "Unmount";
  1787. condition = "!(isNull (attachedTo ExileClientInteractionObject)) && ((ExileClientInteractionObject getvariable ['ExileOwnerUID',1]) isEqualTo 1)";
  1788. action = "_this call ExileClient_object_supplyBox_unmount";
  1789. };
  1790. };
  1791. };
  1792.  
  1793. class Construction
  1794. {
  1795. targetType = 2;
  1796. target = "Exile_Construction_Abstract_Static";
  1797.  
  1798. class Actions
  1799. {
  1800. class ScanLock: ExileAbstractAction
  1801. {
  1802. title = "Scan Lock";
  1803. condition = "('Exile_Item_ThermalScannerPro' in (magazines player)) && !((ExileClientInteractionObject getvariable ['ExileIsLocked',1]) isEqualTo 1)";
  1804. action = "_this call ExileClient_object_lock_scan";
  1805. };
  1806.  
  1807. class Unlock : ExileAbstractAction
  1808. {
  1809. title = "Unlock";
  1810. condition = "((ExileClientInteractionObject getvariable ['ExileIsLocked',1]) isEqualTo -1)";
  1811. action = "false spawn ExileClient_object_lock_toggle";
  1812. };
  1813.  
  1814. class Lock : ExileAbstractAction
  1815. {
  1816. title = "Lock";
  1817. condition = "((ExileClientInteractionObject getvariable ['ExileIsLocked',1]) isEqualTo 0)";
  1818. action = "true spawn ExileClient_object_lock_toggle";
  1819. };
  1820.  
  1821. // Picks up the construction so you can move it
  1822. class Move: ExileAbstractAction
  1823. {
  1824. title = "Move";
  1825. condition = "call ExileClient_util_world_isInOwnTerritory";
  1826. action = "_this spawn ExileClient_object_construction_move";
  1827. };
  1828.  
  1829. // Removes the construction.
  1830. class Deconstruct: ExileAbstractAction
  1831. {
  1832. title = "Remove";
  1833. condition = "call ExileClient_util_world_isInOwnTerritory";
  1834. action = "_this spawn ExileClient_object_construction_deconstruct";
  1835. };
  1836.  
  1837. class AddALock : ExileAbstractAction
  1838. {
  1839. title = "Add a Lock";
  1840. condition = "call ExileClient_object_construction_lockAddShow";
  1841. action = "_this spawn ExileClient_object_construction_lockAdd";
  1842. };
  1843.  
  1844. class Upgrade : ExileAbstractAction
  1845. {
  1846. title = "Upgrade";
  1847. condition = "call ExileClient_object_construction_upgradeShow";
  1848. action = "_this call ExileClient_object_construction_upgrade";
  1849. };
  1850.  
  1851. class MakeBoom : ExileAbstractAction
  1852. {
  1853. title = "Plant charge";
  1854. condition = "call ExileClient_system_breaching_condition";
  1855. action = "_this call ExileClient_system_breaching_action";
  1856. };
  1857.  
  1858. class Repair : ExileAbstractAction
  1859. {
  1860. title = "Repair";
  1861. condition = "(!((ExileClientInteractionObject getVariable ['ExileConstructionDamage',0]) isEqualTo 0)) && (call ExileClient_util_world_isInOwnTerritory)";
  1862. action = "_this call ExileClient_object_construction_repair";
  1863. };
  1864.  
  1865. };
  1866. };
  1867.  
  1868. /*
  1869. Tent, Storage crate etc.
  1870. */
  1871. class Container
  1872. {
  1873. targetType = 2;
  1874. target = "Exile_Container_Abstract";
  1875.  
  1876. class Actions
  1877. {
  1878. class Pack
  1879. {
  1880. title = "Pack";
  1881. condition = "!((typeOf ExileClientInteractionObject) isEqualTo 'Exile_Container_SupplyBox')";
  1882. action = "_this spawn ExileClient_object_container_pack";
  1883. };
  1884. // Picks up the container so you can move it
  1885. class Move: ExileAbstractAction
  1886. {
  1887. title = "Move";
  1888. condition = "(getNumber(configFile >> 'CfgVehicles' >> typeOf ExileClientInteractionObject >> 'exileIsLockable') isEqualTo 0) || ((ExileClientInteractionObject getvariable ['ExileIsLocked',1]) isEqualTo 0)";
  1889. action = "_this spawn ExileClient_object_construction_move";
  1890. };
  1891. };
  1892. };
  1893.  
  1894. class Flag
  1895. {
  1896. targetType = 2;
  1897. target = "Exile_Construction_Flag_Static";
  1898.  
  1899. class Actions
  1900. {
  1901. /*
  1902. class Manage : ExileAbstractAction
  1903. {
  1904. title = "Manage";
  1905. condition = "true";
  1906. action = "_this call ExileClient_gui_baseManagement_event_show";
  1907. };
  1908. */
  1909. class StealFlag: ExileAbstractAction
  1910. {
  1911. title = "Steal Flag";
  1912. condition = "((ExileClientInteractionObject getvariable ['ExileFlagStolen',1]) isEqualTo 0)";
  1913. action = "['StealFlag', _this select 0] call ExileClient_action_execute";
  1914. };
  1915.  
  1916. class RestoreFlag: ExileAbstractAction
  1917. {
  1918. title = "Restore Flag";
  1919. condition = "((ExileClientInteractionObject getvariable ['ExileFlagStolen',0]) isEqualTo 1)";
  1920. action = "['restoreFlagRequest', [netID ExileClientInteractionObject]] call ExileClient_system_network_send";
  1921. };
  1922. };
  1923. };
  1924.  
  1925. class Boat
  1926. {
  1927. targetType = 2;
  1928. target = "Ship";
  1929.  
  1930. class Actions
  1931. {
  1932. // Locks a vehicle
  1933. class Lock: ExileAbstractAction
  1934. {
  1935. title = "Lock";
  1936. condition = "((locked ExileClientInteractionObject) isEqualTo 0) && ((locked ExileClientInteractionObject) != 1)";
  1937. action = "true spawn ExileClient_object_lock_toggle";
  1938. };
  1939.  
  1940. // Unlocks a vehicle
  1941. class Unlock: ExileAbstractAction
  1942. {
  1943. title = "Unlock";
  1944. condition = "((locked ExileClientInteractionObject) isEqualTo 2) && ((locked ExileClientInteractionObject) != 1)";
  1945. action = "false spawn ExileClient_object_lock_toggle";
  1946. };
  1947.  
  1948. // Hot-wires a vehicle
  1949. class Hotwire: ExileAbstractAction
  1950. {
  1951. title = "Hotwire";
  1952. condition = "((locked ExileClientInteractionObject) isEqualTo 2) && ((locked ExileClientInteractionObject) != 1)";
  1953. action = "['HotwireVehicle', _this select 0] call ExileClient_action_execute";
  1954. };
  1955.  
  1956. // Repairs a vehicle to 100%. Requires Duckttape
  1957. class Repair: ExileAbstractAction
  1958. {
  1959. title = "Repair";
  1960. condition = "true";
  1961. action = "['RepairVehicle', _this select 0] call ExileClient_action_execute";
  1962. };
  1963.  
  1964. // Fills fuel from a can into a car
  1965. class Refuel: ExileAbstractAction
  1966. {
  1967. title = "Refuel";
  1968. condition = "call ExileClient_object_vehicle_interaction_show";
  1969. action = "_this call ExileClient_object_vehicle_refuel";
  1970. };
  1971.  
  1972. // Drains fuel from a car into an empty jerry can
  1973. class DrainFuel: ExileAbstractAction
  1974. {
  1975. title = "Drain Fuel";
  1976. condition = "call ExileClient_object_vehicle_interaction_show";
  1977. action = "_this call ExileClient_object_vehicle_drain";
  1978. };
  1979.  
  1980. // Pushes a boat into look direction to move into water
  1981. class Push: ExileAbstractAction
  1982. {
  1983. title = "Fus Ro Dah!";
  1984. condition = "((crew ExileClientInteractionObject) isEqualTo [])";
  1985. action = "_this call ExileClient_object_vehicle_push";
  1986. };
  1987. };
  1988. };
  1989.  
  1990. class Bikes
  1991. {
  1992. targetType = 2;
  1993. target = "Bicycle";
  1994.  
  1995. class Actions
  1996. {
  1997. class Flip: ExileAbstractAction
  1998. {
  1999. title = "Flip";
  2000. condition = "true";
  2001. action = "_this call ExileClient_object_vehicle_flip";
  2002. };
  2003. };
  2004. };
  2005.  
  2006. class Player
  2007. {
  2008. targetType = 2;
  2009. target = "Exile_Unit_Player";
  2010.  
  2011. class Actions
  2012. {
  2013. class Free: ExileAbstractAction
  2014. {
  2015. title = "Free";
  2016. condition = "(alive ExileClientInteractionObject) && (ExileClientInteractionObject getVariable ['ExileIsHandcuffed', false]) && !ExileClientIsHandcuffed";
  2017. action = "_this call ExileClient_object_handcuffs_free";
  2018. };
  2019.  
  2020. class Search: ExileAbstractAction
  2021. {
  2022. title = "Search Gear";
  2023. condition = "(alive ExileClientInteractionObject) && (ExileClientInteractionObject getVariable ['ExileIsHandcuffed', false]) && !ExileClientIsHandcuffed";
  2024. action = "_this call ExileClient_object_handcuffs_searchGear";
  2025. };
  2026.  
  2027. class Identify: ExileAbstractAction
  2028. {
  2029. title = "Identify Body";
  2030. condition = "!(alive ExileClientInteractionObject)";
  2031. action = "_this call ExileClient_object_player_identifyBody";
  2032. };
  2033.  
  2034. class HideCorpse: ExileAbstractAction
  2035. {
  2036. title = "Hide Body";
  2037. condition = "!(alive ExileClientInteractionObject) && ('Exile_Melee_Shovel' isEqualTo (currentWeapon player))";
  2038. action = "['HideBody', (_this select 0)] call ExileClient_action_execute";
  2039. };
  2040. };
  2041. };
  2042. };
  2043. /**
  2044. * Classname is used for reference
  2045. * name is displayed in crafting requirements
  2046. * models is used for crafting and interaction menus
  2047. */
  2048. class CfgInteractionModels
  2049. {
  2050. class WaterSource
  2051. {
  2052. name = "Water tanks, barrels, coolers or pumps";
  2053. models[] =
  2054. {
  2055. "barrelwater_f",
  2056. "barrelwater_grey_f",
  2057. "waterbarrel_f",
  2058. "watertank_f",
  2059. "stallwater_f",
  2060. "waterpump_01_f",
  2061. "water_source_f",
  2062.  
  2063. // Namalsk
  2064. "wellpump",
  2065. "Land_jhad_stand_water",
  2066. "Land_Jbad_Misc_Well_L",
  2067. "Land_jbad_Fridge",
  2068. "Land_jbad_reservoir",
  2069. "Land_jbad_teapot",
  2070. "Land_KBud",
  2071.  
  2072. //Tanoa
  2073. "watertank_01_f",
  2074. "watertank_02_f",
  2075. "watertank_03_f",
  2076. "watertank_04_f"
  2077. };
  2078. };
  2079.  
  2080. class CleanWaterSource
  2081. {
  2082. name = "Water cooler";
  2083. models[] =
  2084. {
  2085. "watercooler"
  2086. };
  2087. };
  2088.  
  2089. class WorkBench
  2090. {
  2091. name = "Work Bench";
  2092. models[] =
  2093. {
  2094. "workstand_f.p3d"
  2095. };
  2096. };
  2097.  
  2098. class ShippingContainerSource
  2099. {
  2100. name = "Shipping Containers";
  2101. models[] =
  2102. {
  2103. // Arma 3
  2104. "CargoBox_V1_F",
  2105. "Cargo20_blue_F",
  2106. "Cargo20_brick_red_F",
  2107. "Cargo20_cyan_F",
  2108. "Cargo20_grey_F",
  2109. "Cargo20_light_blue_F",
  2110. "Cargo20_light_green_F",
  2111. "Cargo20_military_green_F",
  2112. "Cargo20_military_ruins_F",
  2113. "Cargo20_orange_F",
  2114. "Cargo20_red_F",
  2115. "Cargo20_sand_F",
  2116. "Cargo20_white_F",
  2117. "Cargo20_yellow_F",
  2118. "Cargo40_blue_F",
  2119. "Cargo40_brick_red_F",
  2120. "Cargo40_cyan_F",
  2121. "Cargo40_grey_F",
  2122. "Cargo40_light_blue_F",
  2123. "Cargo40_light_green_F",
  2124. "Cargo40_military_green_F",
  2125. "Cargo40_orange_F",
  2126. "Cargo40_red_F",
  2127. "Cargo40_sand_F",
  2128. "Cargo40_white_F",
  2129. "Cargo40_yellow_F",
  2130.  
  2131. // Namalsk
  2132. "nam_container.p3d",
  2133. "misc_cargo1d.p3d",
  2134. "misc_cargo1b.p3d",
  2135. "misc_cargo1bo.p3d",
  2136. "misc_cargo2c.p3d",
  2137. "misc_cargo1ao.p3d",
  2138.  
  2139. //Tanoa
  2140. "containerline_01_f",
  2141. "containerline_02_f",
  2142. "containerline_03_f",
  2143.  
  2144. // Also allow wrecks
  2145. "wreck_"
  2146. /*
  2147. "wreck_bmp2_f.p3d",
  2148. "wreck_brdm2_f.p3d",
  2149. "wreck_car2_f.p3d",
  2150. "wreck_car3_f.p3d",
  2151. "wreck_car_f.p3d",
  2152. "wreck_cardismantled_f.p3d",
  2153. "wreck_hmmwv_f.p3d",
  2154. "wreck_hunter_f.p3d",
  2155. "wreck_offroad2_f.p3d",
  2156. "wreck_offroad_f.p3d",
  2157. "wreck_skodovka_f.p3d",
  2158. "wreck_slammer_f.p3d",
  2159. "wreck_slammer_hull_f.p3d",
  2160. "wreck_slammer_turret_f.p3d",
  2161. "wreck_t72_hull_f.p3d",
  2162. "wreck_t72_turret_f.p3d",
  2163. "wreck_truck_dropside_f.p3d",
  2164. "wreck_truck_f.p3d",
  2165. "wreck_uaz_f.p3d",
  2166. "wreck_ural_f.p3d"
  2167. "wreck_van_f.p3d",
  2168. */
  2169.  
  2170.  
  2171. // TODO: Ask community for CUP/AiA model names
  2172. };
  2173. };
  2174.  
  2175. class WoodSource
  2176. {
  2177. name = "Trees";
  2178. models[] =
  2179. {
  2180. " t_",
  2181. " bo_t_",
  2182.  
  2183. // A2 trees
  2184. " str_",
  2185. " Smrk_",
  2186. " les_",
  2187. " brg_"
  2188. };
  2189. };
  2190.  
  2191. // TODO: Add https://community.bistudio.com/wikidata/images/thumb/6/60/Arma3_CfgVehicles_Land_Tank_rust_F.jpg/150px-Arma3_CfgVehicles_Land_Tank_rust_F.jpg
  2192. class FuelSource
  2193. {
  2194. name = "Fuel pumps, stations or barrels";
  2195. models[] =
  2196. {
  2197. "fuelstation_feed_f.p3d",
  2198. "metalbarrel_f.p3d",
  2199. "flexibletank_01_f.p3d",
  2200. "fs_feed_f.p3d",
  2201. //Tanoa
  2202. "fuelstation_01_pump_f.p3d",
  2203. "fuelstation_02_pump_f.p3d"
  2204. };
  2205. };
  2206. };
  2207. class CfgLocker
  2208. {
  2209. numbersOnly = "0123456789";
  2210.  
  2211. maxDeposit = 10000;
  2212. };
  2213.  
  2214. class CfgPlayer
  2215. {
  2216. // In minutes ammount of time it takes to go from 100 - 0 if stationary
  2217. hungerDecay = 90;
  2218. thirstDecay = 60;
  2219.  
  2220. // Damage taken from 0 (health||thirst)/sec
  2221. healthDecay = 5.0;
  2222.  
  2223. // Health regen if over BOTH
  2224. thirstRegen = 90;
  2225. hungerRegen = 90;
  2226.  
  2227. // IF above meet recover HP%/MIN
  2228. recoveryPerMinute = 2;
  2229.  
  2230. // Set custom aim precision coefficient for weapon sway
  2231. // https://community.bistudio.com/wiki/Arma_3_Stamina
  2232. // Set to -1 if you want to use Arma 3 default value
  2233. // setCustomAimCoef
  2234. customAimCoefficient = 0.5;
  2235.  
  2236. // 0 or 1
  2237. enableFatigue = 0;
  2238. enableStamina = 0;
  2239.  
  2240. disableMapDrawing = 1;
  2241. };
  2242. class CfgSlothMachine
  2243. {
  2244. spinCost = 100;
  2245. Jackpot = 10100;
  2246.  
  2247. chances[] =
  2248. {
  2249. {85, ""}, // 85% = Nothing
  2250. {95, "Level1"}, // 10% = 1pt
  2251. {96, "Level2"}, // 1% = 10pt
  2252. {97, "Level3"}, // 1% = 25pt
  2253. {98, "Level4"}, // 1% = 50pt
  2254. {99, "Level5"}, // 1% = 100pt
  2255. {100, "Jackpot"} // 1% = Jackpot
  2256. };
  2257.  
  2258. class Prizes
  2259. {
  2260. class Level1
  2261. {
  2262. symbol = "\exile_assets\texture\item\Exile_Item_ToiletPaper.paa";
  2263. prize = 101;
  2264. };
  2265.  
  2266. class Level2
  2267. {
  2268. symbol = "\exile_assets\texture\item\Exile_Item_CockONut.paa";
  2269. prize = 110;
  2270. };
  2271.  
  2272. class Level3
  2273. {
  2274. symbol = "\exile_assets\texture\item\Exile_Item_Beer.paa";
  2275. prize = 125;
  2276. };
  2277.  
  2278. class Level4
  2279. {
  2280. symbol = "\exile_assets\texture\item\Exile_Item_Knife.paa";
  2281. prize = 150;
  2282. };
  2283.  
  2284. class Level5
  2285. {
  2286. symbol = "\exile_assets\texture\item\Exile_Item_Safe.paa";
  2287. prize = 200;
  2288. };
  2289.  
  2290. class Jackpot
  2291. {
  2292. symbol = "\exile_assets\texture\item\Exile_Item_XmasPresent.paa";
  2293. };
  2294. };
  2295. };
  2296. class CfgTerritories
  2297. {
  2298. // Base Cost / Radius
  2299. // Level 1 is allways for Pop Tabs, >= 2 for Respect
  2300. prices[] =
  2301. {
  2302. // Purchase Price Radius Number of Objects
  2303. {5000, 15, 30 }, // Level 1
  2304. {10000, 30, 60 }, // Level 2
  2305. {15000, 45, 90 }, // Level 3
  2306. {20000, 60, 120 }, // Level 4
  2307. {25000, 75, 150 }, // Level 5
  2308. {30000, 90, 180 }, // Level 6
  2309. {35000, 105, 210 }, // Level 7
  2310. {40000, 120, 240 }, // Level 8
  2311. {45000, 135, 270 }, // Level 9
  2312. {50000, 150, 300 } // Level 10
  2313. };
  2314.  
  2315. // A shortcut of the above maximum radius
  2316. maximumRadius = 150;
  2317.  
  2318. // The above * 2 plus coverving the 20m you can move while placing things
  2319. minimumDistanceToOtherTerritories = 325;
  2320.  
  2321. // Maximum number of territories a player can own
  2322. maximumNumberOfTerritoriesPerPlayer = 2;
  2323.  
  2324. /**
  2325. * Defines the minimum distance to safe zones / trader cities where players
  2326. * cannot build territories
  2327. */
  2328. minimumDistanceToTraderZones = 1000;
  2329.  
  2330. /**
  2331. * Defines the minimum distance to spawn zones where players
  2332. * cannot build territories
  2333. */
  2334. minimumDistanceToSpawnZones = 1000;
  2335.  
  2336. // Amount of pop tabs per object to pay
  2337. popTabAmountPerObject = 10;
  2338. };
  2339. class CfgTraderCategories
  2340. {
  2341. #include "TRADERS\APEX\TraderCategoriesAPEX.hpp"
  2342. #include "TRADERS\ARMA3V\TraderCategoriesARMA3V.hpp"
  2343. #include "TRADERS\ARMA3W\TraderCategoriesARMA3W.hpp"
  2344. #include "TRADERS\CUPW\TraderCategoriesCUPW.hpp"
  2345. #include "TRADERS\CUPV\TraderCategoriesCUPV.hpp"
  2346. #include "TRADERS\CUSTOM\TraderCategoriesCUSTOM.hpp"
  2347. #include "TRADERS\Exile\TraderCategoriesExile.hpp"
  2348. };
  2349.  
  2350. {
  2351. #include "TRADERS\CfgTraders.hpp"
  2352. };
  2353. /**
  2354. * Weapons, scopes, silencers, ammo
  2355. */
  2356. class Exile_Trader_Armory
  2357. {
  2358. name = "ARMORY";
  2359. showWeaponFilter = 1;
  2360. categories[] =
  2361. {
  2362. "PointerAttachments",
  2363. "CUPPointerAttachments",
  2364. "BipodAttachments",
  2365. "APEXBipodAttachments",
  2366. "MuzzleAttachments",
  2367. "APEXMuzzleAttachments",
  2368. "CUPMuzzleAttachments",
  2369. "OpticAttachments",
  2370. "APEXOpticAttachments",
  2371. "CUPOpticAttachments"
  2372. "Ammunition",
  2373. "APEXAmmunition",
  2374. "CUPAmmunition",
  2375. "Pistols",
  2376. "APEXPistols",
  2377. "CUPPistols",
  2378. "Shotguns",
  2379. "SubMachineGuns",
  2380. "APEXSubMachineGuns",
  2381. "CUPSubMachineGuns",
  2382. "LightMachineGuns",
  2383. "APEXLightMachineGuns",
  2384. "CUPLightMachineGuns",
  2385. "AssaultRifles",
  2386. "APEXAssaultRifles",
  2387. "CUPAssaultRifles",
  2388. "GREFWeapons",
  2389. "SniperRifles",
  2390. "APEXSniperRifles",
  2391. "CUPSniperRifles",
  2392. };
  2393. };
  2394.  
  2395. /**
  2396. * Satchels, nades, UAVs, static MGs
  2397. */
  2398. class Exile_Trader_SpecialOperations
  2399. {
  2400. name = "SPECIAL OPERATIONS";
  2401. showWeaponFilter = 1; // for noob tubes
  2402. categories[] =
  2403. {
  2404. "Flares",
  2405. "Smokes",
  2406. "UAVs",
  2407. "StaticMGs",
  2408. "Navigation",
  2409. "ExplosiveWeapons",
  2410. "Explosives",
  2411. "CUPLaunchers",
  2412. "CUPLauncherAmmo",
  2413. "CUPExplosive",
  2414. };
  2415. };
  2416.  
  2417. /**
  2418. * Uniforms, vests, helmets, backpacks
  2419. */
  2420. class Exile_Trader_Equipment
  2421. {
  2422. name = "EQUIPMENT";
  2423. showWeaponFilter = 0;
  2424. categories[] =
  2425. {
  2426. "Headgear",
  2427. "APEXHeadgear",
  2428. "Uniforms",
  2429. "APEXUniforms",
  2430. "Vests",
  2431. "APEXVests",
  2432. "Backpacks",
  2433. "APEXBackpacks",
  2434. "A3Backpacks",
  2435. "Tools",
  2436. "APEXTools",
  2437. "FirstAid"
  2438. };
  2439. };
  2440.  
  2441. /**
  2442. * Cans, cans, cans
  2443. */
  2444. class Exile_Trader_Food
  2445. {
  2446. name = "FAST FOOD";
  2447. showWeaponFilter = 0;
  2448. categories[] =
  2449. {
  2450. "Food",
  2451. "Drinks"
  2452. };
  2453. };
  2454.  
  2455. /**
  2456. * Light bulbs, metal, etc.
  2457. */
  2458. class Exile_Trader_Hardware
  2459. {
  2460. name = "HARDWARE";
  2461. showWeaponFilter = 0;
  2462. categories[] =
  2463. {
  2464. "Hardware",
  2465. //"R3FTools",
  2466. "CBuilding"
  2467. };
  2468. };
  2469.  
  2470. /**
  2471. * Sells cars and general vehicles
  2472. */
  2473. class Exile_Trader_Vehicle
  2474. {
  2475. name = "VEHICLE";
  2476. showWeaponFilter = 0;
  2477. categories[] =
  2478. {
  2479. "Bikes",
  2480. "Cars",
  2481. "A3Cars",
  2482. "MASCars",
  2483. "CUPUnarmed",
  2484. "CUPArmed",
  2485. "A3Armed",
  2486. "CTrucks",
  2487. "Trucks",
  2488. "A3Trucks",
  2489. "CUGVs"
  2490. //"A3Tanks"
  2491. };
  2492. };
  2493.  
  2494. /**
  2495. * Sells choppers and planes
  2496. */
  2497. class Exile_Trader_Aircraft
  2498. {
  2499. name = "AIRCRAFT";
  2500. showWeaponFilter = 0;
  2501. categories[] =
  2502. {
  2503. "Choppers",
  2504. "CChoppers",
  2505. "CUPChoppers",
  2506. "A3unarmedChoppers",
  2507. "A3armedChoppers",
  2508. "Planes",
  2509. "A3Planes",
  2510. //"CUAVs",
  2511. //"A3UAVs",
  2512. "Pods"
  2513. };
  2514. };
  2515.  
  2516. /**
  2517. * Sells ships and boats
  2518. */
  2519. class Exile_Trader_Boat
  2520. {
  2521. name = "BOAT";
  2522. showWeaponFilter = 0;
  2523. categories[] =
  2524. {
  2525. "Boats",
  2526. "A3Boats",
  2527. };
  2528. };
  2529.  
  2530. class Exile_Trader_Diving
  2531. {
  2532. name = "DIVERS";
  2533. showWeaponFilter = 0;
  2534. categories[] =
  2535. {
  2536. "Diving"
  2537. };
  2538. };
  2539.  
  2540. /**
  2541. * Sells Community Items
  2542. */
  2543. class Exile_Trader_CommunityCustoms
  2544. {
  2545. name = "COMMUNITY";
  2546. showWeaponFilter = 0;
  2547. categories[] =
  2548. {
  2549. "Community"
  2550. };
  2551. };
  2552. class Exile_Trader_CommunityCustoms2
  2553. {
  2554. name = "COMMUNITY";
  2555. showWeaponFilter = 0;
  2556. categories[] =
  2557. {
  2558. "Community2"
  2559. };
  2560. };
  2561.  
  2562. class Exile_Trader_CommunityCustoms3
  2563. {
  2564. name = "COMMUNITY";
  2565. showWeaponFilter = 0;
  2566. categories[] =
  2567. {
  2568. "Community3"
  2569. };
  2570. };
  2571.  
  2572. class Exile_Trader_CommunityCustoms4
  2573. {
  2574. name = "COMMUNITY";
  2575. showWeaponFilter = 0;
  2576. categories[] =
  2577. {
  2578. "Community4"
  2579. };
  2580. };
  2581.  
  2582. class Exile_Trader_CommunityCustoms5
  2583. {
  2584. name = "COMMUNITY";
  2585. showWeaponFilter = 0;
  2586. categories[] =
  2587. {
  2588. "Community5"
  2589. };
  2590. };
  2591.  
  2592. class Exile_Trader_CommunityCustoms6
  2593. {
  2594. name = "COMMUNITY";
  2595. showWeaponFilter = 0;
  2596. categories[] =
  2597. {
  2598. "Community6"
  2599. };
  2600. };
  2601.  
  2602. class Exile_Trader_CommunityCustoms7
  2603. {
  2604. name = "COMMUNITY";
  2605. showWeaponFilter = 0;
  2606. categories[] =
  2607. {
  2608. "Community7"
  2609. };
  2610. };
  2611.  
  2612. class Exile_Trader_CommunityCustoms8
  2613. {
  2614. name = "COMMUNITY";
  2615. showWeaponFilter = 0;
  2616. categories[] =
  2617. {
  2618. "Community8"
  2619. };
  2620. };
  2621.  
  2622. class Exile_Trader_CommunityCustoms9
  2623. {
  2624. name = "COMMUNITY";
  2625. showWeaponFilter = 0;
  2626. categories[] =
  2627. {
  2628. "Community9"
  2629. };
  2630. };
  2631.  
  2632. class Exile_Trader_CommunityCustoms10
  2633. {
  2634. name = "COMMUNITY";
  2635. showWeaponFilter = 0;
  2636. categories[] =
  2637. {
  2638. "Community10"
  2639. };
  2640. };
Add Comment
Please, Sign In to add comment