Advertisement
Guest User

Untitled

a guest
Jul 15th, 2018
72
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 41.32 KB | None | 0 0
  1. #include "basicdefines_A3.hpp"
  2. class DefaultEventhandlers;
  3. class WeaponFireGun;
  4. class WeaponCloudsGun;
  5. class WeaponFireMGun;
  6. class WeaponCloudsMGun;
  7. class CfgPatches
  8. {
  9. class chdefender_AddOn_Cars
  10. {
  11. units[]= {"chdefender"};
  12. weapons[]={};
  13. requiredVersion=0.1;
  14. requiredAddons[]={};
  15. };
  16. };
  17. class CfgSounds {
  18. sounds[] = {"chsgn","chsvl","chspn","chvlhr"};
  19. class chsgn {
  20. name = "chsgn";
  21. sound[] = {"Charlieco89_Defender\gn.ogg", 5, 1.0, 250};
  22. titles[] = {};
  23. };
  24. class chsvl {
  25. name = "chsvl";
  26. sound[] = {"Charlieco89_Defender\vl.ogg", 5, 1.0, 250};
  27. titles[] = {};
  28. };
  29. class chspn {
  30. name = "chspn";
  31. sound[] = {"Charlieco89_Defender\pn.ogg", 5, 1.0, 250};
  32. titles[] = {};
  33. };
  34. class chvlhr {
  35. name = "chvlhr";
  36. sound[] = {"Charlieco89_Defender\vlhr.ogg", 5, 1.0, 250};
  37. titles[] = {};
  38. };
  39. };
  40. class CfgFactionClasses
  41. {
  42. class chmods
  43. {
  44. displayName = "Charlieco89's Mods";
  45. priority = 8;
  46. side = 1;
  47. icon = "\Charlieco89_Defender\cars\data\textures\ch89.paa";
  48. };
  49. };
  50.  
  51. class CfgVehicleClasses
  52. {
  53. class chPN
  54. {
  55. displayName = "Police Nationale";
  56. };
  57. class chGN
  58. {
  59. displayName = "Gendarmerie";
  60. };
  61. class chSP
  62. {
  63. displayName = "Sapeurs Pompiers";
  64. };
  65. };
  66.  
  67. class CfgEditorSubcategories
  68. {
  69. class chPN
  70. {
  71. displayName = "Police Nationale";
  72. };
  73. class chGN
  74. {
  75. displayName = "Gendarmerie";
  76. };
  77. class chSP
  78. {
  79. displayName = "Sapeurs Pompiers";
  80. };
  81. };
  82. class cfgWeapons
  83. {
  84. class SportCarHorn;
  85. class chkla4: SportCarHorn
  86. {
  87. displayname="Airhorn";
  88. reloadTime=0;
  89. drySound[]=
  90. {
  91. "Charlieco89_Defender\klaxon4.ogg",
  92. 1,
  93. 1
  94. };
  95. scope=2;
  96. };
  97. class chpns: SportCarHorn
  98. {
  99. displayname="Sirène";
  100. reloadTime=0;
  101. drySound[]=
  102. {
  103. "Charlieco89_Defender\pn.ogg",
  104. 1,
  105. 1
  106. };
  107. scope=2;
  108. };
  109. class chgns: SportCarHorn
  110. {
  111. displayname="Sirène";
  112. reloadTime=0;
  113. drySound[]=
  114. {
  115. "Charlieco89_Defender\gn.ogg",
  116. 1,
  117. 1
  118. };
  119. scope=2;
  120. };
  121. class chvls: SportCarHorn
  122. {
  123. displayname="Sirène";
  124. reloadTime=0;
  125. drySound[]=
  126. {
  127. "Charlieco89_Defender\vl.ogg",
  128. 1,
  129. 1
  130. };
  131. scope=2;
  132. };
  133. class chvlhrs: SportCarHorn
  134. {
  135. displayname="Sirène";
  136. reloadTime=0;
  137. drySound[]=
  138. {
  139. "Charlieco89_Defender\vlhr.ogg",
  140. 1,
  141. 1
  142. };
  143. scope=2;
  144. };
  145. };
  146. class CfgVehicles
  147. {
  148. class Car;
  149. class Car_F: Car
  150. {
  151. class HitPoints /// we want to use hitpoints predefined for all cars
  152. {
  153. class HitLFWheel;
  154. class HitLF2Wheel;
  155. class HitRFWheel;
  156. class HitRF2Wheel;
  157. class HitBody;
  158. class HitGlass1;
  159. class HitGlass2;
  160. class HitGlass3;
  161. class HitGlass4;
  162. };
  163. class EventHandlers;
  164. class AnimationSources;
  165. };
  166.  
  167. class chdefender_base: Car_F
  168. {
  169. model = "\Charlieco89_Defender\defender_m"; /// simple path to model
  170. picture = "\A3\soft_f_gamma\Hatchback_01\Data\UI\portrait_car_CA.paa";
  171. Icon = "\A3\soft_f_gamma\Hatchback_01\Data\UI\map_car_CA.paa";
  172. selectionBrakeLights = "brzdove svetlo";
  173. selectionBackLights = "zadni svetlo";
  174. displayName = "chdefender_base"; /// displayed in Editor
  175.  
  176. hiddenSelections[] = {"camo1","camo2","camo3","lock1","lock2","lock3","target1","target2","target3","patrol1","patrol2","patrol3","avert1","avert2"};
  177. terrainCoef = 2.0; /// different surface affects this car more, stick to tarmac
  178. turnCoef = 2.5; /// should match the wheel turn radius
  179. precision = 10; /// how much freedom has the AI for its internal waypoints - lower number means more precise but slower approach to way
  180. brakeDistance = 3.0; /// how many internal waypoints should the AI plan braking in advance
  181. acceleration = 15; /// how fast acceleration does the AI think the car has
  182.  
  183. fireResistance = 5; /// lesser protection against fire than tanks
  184. armor = 120; /// just some protection against missiles, collisions and explosions
  185. cost = 50000; /// how likely is the enemy going to target this vehicle
  186.  
  187. transportMaxBackpacks = 3; /// just some backpacks fit the trunk by default
  188. transportSoldier = 4; /// number of cargo except driver
  189.  
  190. /// some values from parent class to show how to set them up
  191. wheelDamageRadiusCoef = 0.9; /// for precision tweaking of damaged wheel size
  192. wheelDestroyRadiusCoef = 0.4; /// for tweaking of rims size to fit ground
  193. maxFordingDepth = 0.5; /// how high water would damage the engine of the car
  194. waterResistance = 1; /// if the depth of water is bigger than maxFordingDepth it starts to damage the engine after this time
  195. crewCrashProtection = 0.25; /// multiplier of damage to crew of the vehicle => low number means better protection
  196. driverLeftHandAnimName = "drivewheel"; /// according to what bone in model of car does hand move
  197. driverRightHandAnimName = "drivewheel"; /// beware, non-existent bones may cause game crashes (even if the bones are hidden during play)
  198. class AnimationSources;
  199.  
  200. class TransportItems /// some first aid kits in trunk according to safety regulations
  201. {
  202. item_xx(FirstAidKit,4);
  203. };
  204.  
  205. class Turrets{}; /// doesn't have any gunner nor commander
  206. class HitPoints: HitPoints
  207. {
  208. class HitLFWheel: HitLFWheel {armor=0.125; passThrough=0;}; /// it is easier to destroy wheels than hull of the vehicle
  209. class HitLF2Wheel: HitLF2Wheel {armor=0.125; passThrough=0;};
  210.  
  211. class HitRFWheel: HitRFWheel {armor=0.125; passThrough=0;};
  212. class HitRF2Wheel: HitRF2Wheel {armor=0.125; passThrough=0;};
  213.  
  214. class HitFuel {armor=0.50; material=-1; name="fueltank"; visual=""; passThrough=0.2;}; /// correct points for fuel tank, some of the damage is aFRLied to the whole
  215. class HitEngine {armor=0.50; material=-1; name="engine"; visual=""; passThrough=0.2;};
  216. class HitBody: HitBody {name = "body"; visual="camo1"; passThrough=1;}; /// all damage to the hull is aFRLied to total damage
  217.  
  218. class HitGlass1: HitGlass1 {armor=0.25;}; /// it is pretty easy to puncture the glass but not so easy to remove it
  219. class HitGlass2: HitGlass2 {armor=0.25;};
  220. class HitGlass3: HitGlass3 {armor=0.25;};
  221. class HitGlass4: HitGlass4 {armor=0.25;};
  222. };
  223.  
  224. driverAction = driver_low01; /// what action is going the driver take inside the vehicle. Non-existent action makes the vehicle inaccessible
  225. cargoAction[]=
  226. {
  227. "passenger_low01",
  228. "passenger_low01",
  229. "passenger_low01",
  230. "passenger_low01"
  231. };
  232. getInAction = GetInLow; /// how does driver look while getting in
  233. getOutAction = GetOutLow; /// and out
  234. cargoGetInAction[] = {"GetInLow"}; /// and the same for the rest, if the array has fewer members than the count of crew, the last one is used for the rest
  235. cargoGetOutAction[] = {"GetOutLow"}; /// that means all use the same in this case
  236.  
  237. #include "sounds.hpp" /// sounds are in a separate file to make this one simple
  238. #include "pip.hpp" /// PiPs are in a separate file to make this one simple
  239. #include "physx.hpp" /// PhysX settings are in a separate file to make this one simple
  240.  
  241. class PlayerSteeringCoefficients /// steering sensitivity configuration
  242. {
  243. turnIncreaseConst = 0.3; // basic sensitivity value, higher value = faster steering
  244. turnIncreaseLinear = 1.0; // higher value means less sensitive steering in higher speed, more sensitive in lower speeds
  245. turnIncreaseTime = 1.0; // higher value means smoother steering around the center and more sensitive when the actual steering angle gets closer to the max. steering angle
  246.  
  247. turnDecreaseConst = 5.0; // basic caster effect value, higher value = the faster the wheels align in the direction of travel
  248. turnDecreaseLinear = 3.0; // higher value means faster wheel re-centering in higher speed, slower in lower speeds
  249. turnDecreaseTime = 0.0; // higher value means stronger caster effect at the max. steering angle and weaker once the wheels are closer to centered position
  250.  
  251. maxTurnHundred = 0.7; // coefficient of the maximum turning angle @ 100km/h; limit goes linearly to the default max. turn. angle @ 0km/h
  252. };
  253.  
  254. /// memory points where do tracks of the wheel appear
  255. // front left track, left offset
  256. memoryPointTrackFLL = "TrackFLL";
  257. // front left track, right offset
  258. memoryPointTrackFLR = "TrackFLR";
  259. // back left track, left offset
  260. memoryPointTrackBLL = "TrackBLL";
  261. // back left track, right offset
  262. memoryPointTrackBLR = "TrackBLR";
  263. // front right track, left offset
  264. memoryPointTrackFRL = "TrackFRL";
  265. // front right track, right offset
  266. memoryPointTrackFRR = "TrackFRR";
  267. // back right track, left offset
  268. memoryPointTrackBRL = "TrackBRL";
  269. // back right track, right offset
  270. memoryPointTrackBRR = "TrackBRR";
  271.  
  272. class Damage /// damage changes material in specific places (visual in hitPoint)
  273. {
  274. tex[]={};
  275. mat[]=
  276. {
  277. "A3\data_f\glass_veh_int.rvmat", /// material mapped in model
  278. "A3\data_f\Glass_veh_damage.rvmat", /// changes to this one once damage of the part reaches 0.5
  279. "A3\data_f\Glass_veh_damage.rvmat", /// changes to this one once damage of the part reaches 1
  280.  
  281. "A3\data_f\glass_veh.rvmat", /// another material
  282. "A3\data_f\Glass_veh_damage.rvmat", /// changes into different ones
  283. "A3\data_f\Glass_veh_damage.rvmat"
  284. };
  285. };
  286.  
  287. class Exhausts /// specific exhaust effects for the car
  288. {
  289. class Exhaust1 /// the car has two exhausts - each on one side
  290. {
  291. position = "exhaust"; /// name of initial memory point
  292. direction = "exhaust_dir"; /// name of memory point for exhaust direction
  293. effect = "ExhaustsEffect"; /// what particle effect is it going to use
  294. };
  295. };
  296.  
  297. class Reflectors /// only front lights are considered to be reflectors to save CPU
  298. {
  299. class LightCarHeadL01 /// lights on each side consist of two bulbs with different flares
  300. {
  301. color[] = {1900, 1800, 1700}; /// approximate colour of standard lights
  302. ambient[] = {5, 5, 5}; /// nearly a white one
  303. position = "LightCarHeadL01"; /// memory point for start of the light and flare
  304. direction = "LightCarHeadL01_end"; /// memory point for the light direction
  305. hitpoint = "Light_L"; /// point(s) in hitpoint lod for the light (hitPoints are created by engine)
  306. selection = "Light_L"; /// selection for artificial glow around the bulb, not much used any more
  307. size = 1; /// size of the light point seen from distance
  308. innerAngle = 100; /// angle of full light
  309. outerAngle = 179; /// angle of some light
  310. coneFadeCoef = 10; /// attenuation of light between the above angles
  311. intensity = 1; /// strength of the light
  312. useFlare = true; /// does the light use flare?
  313. dayLight = false; /// switching light off during day saves CPU a lot
  314. flareSize = 1.0; /// how big is the flare
  315.  
  316. class Attenuation
  317. {
  318. start = 1.0;
  319. constant = 0;
  320. linear = 0;
  321. quadratic = 0.25;
  322. hardLimitStart = 30; /// it is good to have some limit otherwise the light would shine to infinite distance
  323. hardLimitEnd = 60; /// this allows adding more lights into scene
  324. };
  325. };
  326.  
  327. class LightCarHeadL02: LightCarHeadL01
  328. {
  329. position = "LightCarHeadL02";
  330. direction = "LightCarHeadL02_end";
  331. FlareSize = 0.5; /// side bulbs aren't that strong
  332. };
  333.  
  334. class LightCarHeadR01: LightCarHeadL01
  335. {
  336. position = "LightCarHeadR01";
  337. direction = "LightCarHeadR01_end";
  338. hitpoint = "Light_R";
  339. selection = "Light_R";
  340. };
  341.  
  342. class LightCarHeadR02: LightCarHeadR01
  343. {
  344. position = "LightCarHeadR02";
  345. direction = "LightCarHeadR02_end";
  346. FlareSize = 0.5;
  347. };
  348. class PP1: LightCarHeadR01
  349. {
  350. position = "PP1";
  351. direction = "PP1_end";
  352. FlareSize = 1.5;
  353. intensity = 150; /// strength of the light
  354. class Attenuation
  355. {
  356. start = 0;
  357. constant = 0;
  358. linear = 0;
  359. quadratic = 0.25;
  360. hardLimitStart = 25; /// it is good to have some limit otherwise the light would shine to infinite distance
  361. hardLimitEnd = 150; /// this allows adding more lights into scene
  362. };
  363. };
  364. class PP2: LightCarHeadR01
  365. {
  366. position = "PP2";
  367. direction = "PP2_end";
  368. FlareSize = 1.5;
  369. intensity = 150; /// strength of the light
  370. class Attenuation
  371. {
  372. start = 0;
  373. constant = 0;
  374. linear = 0;
  375. quadratic = 0.25;
  376. hardLimitStart = 25; /// it is good to have some limit otherwise the light would shine to infinite distance
  377. hardLimitEnd = 150; /// this allows adding more lights into scene
  378. };
  379. };
  380. class gyro1
  381. {
  382. color[] = {0, 0, 2500};
  383. ambient[] = {5, 5, 5};
  384. intensity = 1;
  385. size = 0.5; /// size of the light point seen from distance
  386. innerAngle = 50; /// angle of full light
  387. outerAngle = 100; /// angle of some light
  388. coneFadeCoef = 4; /// attenuation of light between the above angles
  389.  
  390. position = "gyropos1"; /// memory point for start of the light and flare
  391. direction = "gyrodir1"; /// memory point for the light direction
  392. hitpoint = "Light_R"; /// point(s) in hitpoint lod for the light (hitPoints are created by engine)
  393. selection = "gyro1"; /// selection for artificial glow around the bulb, not much used any more
  394.  
  395. useFlare = true;
  396. flareSize = 1.0;
  397. flareMaxDistance = 100;
  398. activeLight = false; /// engine counts this one as an active light into limit of lights
  399. dayLight = false; /// it doesn't shine during the day
  400. drawLight = false;
  401.  
  402. class Attenuation
  403. {
  404. start = 0;
  405. constant = 0;
  406. linear = 0;
  407. quadratic = 0.3;
  408.  
  409. hardLimitStart = 25;
  410. hardLimitEnd = 35;
  411. };
  412. };
  413. class gyro2: gyro1
  414. {
  415. direction = "gyrodir2";
  416. };
  417. class gyro3: gyro1
  418. {
  419. direction = "gyrodir3";
  420. };
  421. class gyro4: gyro1
  422. {
  423. direction = "gyrodir4";
  424. };
  425. };
  426.  
  427. aggregateReflectors[] = {{"gyro1"},{"gyro2"},{"gyro3"},{"gyro4"},{"PP1"},{"PP2"},{"LightCarHeadL01", "LightCarHeadL02"}, {"LightCarHeadR01", "LightCarHeadR02"}}; /// aggregating reflectors helps the engine a lot
  428. /// it might be even good to aggregate all lights into one source as it is done for most of the cars
  429.  
  430.  
  431. // Must be kept as fail-safe in case of issue with the function
  432.  
  433. // Definition of texture sources (skins), used for the VhC (Vehicle customization)
  434. // Also, because the Garage uses the VhC, it will make them available from the garage
  435. // [_textureSourceClass1, _probability1, _textureSourceClass2, _probability2, ...]
  436. // Default behavior of the VhC is to select one of these sources, with a weighted random
  437.  
  438. class MFD /// Clocks on the car board
  439. {
  440. class ClockHUD
  441. {
  442. #include "cfgHUD.hpp"
  443. };
  444. };
  445. class UserActions
  446. {
  447. class gyropharef
  448. {
  449. displayName = "<t color='#0000ff'>Gyrophares ON</t>";
  450. position = "drivewheel";
  451. radius = 2;
  452. onlyForPlayer = 0;
  453. condition = "player IN this && this animationPhase ""lamp1"" <= 0.5";
  454. statement = "this animate [""lamp1"",1];this animate [""btgyr"",1]";
  455. };
  456. class gyrophare
  457. {
  458. displayName = "<t color='#0000ff'>Gyrophares OFF</t>";
  459. position = "drivewheel";
  460. radius = 2;
  461. onlyForPlayer = 0;
  462. condition = "player IN this && this animationPhase ""lamp1"" > 0.5";
  463. statement = "this animate [""lamp1"",0];this animate [""btgyr"",0]";
  464. };
  465. class ClignotantsGaucheAllumer
  466. {
  467. displayName="<t color='#fff000'>Signal Lef ON(A)</t>";
  468. displayNameDefault="<t color='#fff000'>Allumer les clignotants gauches</t>";
  469. priority=3;
  470. radius=20;
  471. position="drivewheel";
  472. showWindow=0;
  473. onlyForPlayer=1;
  474. shortcut="LeanLeft";
  475. condition="(driver this == player) && (alive this) && (this animationPhase ""ClignotantsGaucheStart"" == 0) && isEngineOn this";
  476. statement="vehicle player animate [""ClignotantsGaucheStart"", 1];";
  477. };
  478. class ClignotantsGaucheEteindre
  479. {
  480. displayName="<t color='#fff000'>Signal left OFF(A)</t>";
  481. displayNameDefault="<t color='#fff000'>Eteindre les clignotants gauches</t>";
  482. priority=3;
  483. radius=20;
  484. position="drivewheel";
  485. showWindow=0;
  486. onlyForPlayer=1;
  487. shortcut="LeanLeft";
  488. condition="(driver this == player) && (alive this) && (this animationPhase ""ClignotantsGaucheStart"" != 0)";
  489. statement="vehicle player animate [""ClignotantsGaucheStart"", 0];";
  490. };
  491. class ClignotantsDroitAllumer
  492. {
  493. displayName="<t color='#fff000'>Signal right ON (E)</t>";
  494. displayNameDefault="<t color='#fff000'>Allumer les clignotants droits</t>";
  495. priority=3;
  496. radius=20;
  497. position="drivewheel";
  498. showWindow=0;
  499. onlyForPlayer=1;
  500. shortcut="LeanRight";
  501. condition="(driver this == player) && (alive this) && (this animationPhase ""ClignotantsDroitStart"" == 0) && isEngineOn this";
  502. statement="vehicle player animate [""ClignotantsDroitStart"", 1];";
  503. };
  504. class ClignotantsDroitEteindre
  505. {
  506. displayName="<t color='#fff000'>Signal right OFF (E)</t>";
  507. displayNameDefault="<t color='#fff000'>Eteindre les clignotants droits</t>";
  508. priority=3;
  509. radius=20;
  510. position="drivewheel";
  511. showWindow=0;
  512. onlyForPlayer=1;
  513. shortcut="LeanRight";
  514. condition="(driver this == player) && (alive this) && (this animationPhase ""ClignotantsDroitStart"" != 0)";
  515. statement="vehicle player animate [""ClignotantsDroitStart"", 0];";
  516. };
  517.  
  518. };
  519. };
  520.  
  521. class chdefender_vlhr : chdefender_base {
  522. scope = public;
  523. crew = "C_man_1";
  524. side = 2;
  525. faction = "chmods";
  526. displayName = "Land Rover Defender VLHR";
  527. author = "Charlieco89";
  528. hiddenSelectionsTextures[] = {"Charlieco89_Defender\cars\data\textures\bodyvlhr.paa","#(argb,8,8,3)color(0.952941,0.952941,0.952941,1.0,co)"};
  529. class EventHandlers {init = "_this execVM ""Charlieco89_Defender\cars\data\scripts\init_vlhr.sqf"";";};
  530. editorSubcategory = "chSP";
  531. vehicleClass = "chSP";
  532. weapons[]=
  533. {
  534. "chkla4","chvlhrs"
  535. };
  536. class UserActions: UserActions
  537. {
  538. class Siren_on {
  539. displayName = "<t color='#ff0000'>Sirène ON</t>";
  540. position = "drivewheel";
  541. radius = 2;
  542. condition = "player IN this && (this getVariable ['siren',0]) == 0";
  543. statement = "this setVariable ['siren',1,true] && this animate [""btsiren"",1]";
  544. onlyForplayer = 0;
  545. };
  546. class Siren_off {
  547. displayName = "<t color='#ff0000'>Sirène OFF</t>";
  548. position = "drivewheel";
  549. radius = 2;
  550. condition = "player IN this && (this getVariable ['siren',0]) == 1";
  551. statement = "this setVariable ['siren',0,true] && this animate [""btsiren"",0]";
  552. onlyForplayer = 0;
  553. };
  554. };
  555. };
  556. class chdefender_pn : chdefender_base {
  557. scope = public;
  558. crew = "C_man_1";
  559. side = 1;
  560. faction = "chmods";
  561. displayName = "Land Rover Defender Police Nationale";
  562. author = "Charlieco89";
  563. hiddenSelectionsTextures[] = {"Charlieco89_Defender\cars\data\textures\bodypn.paa","#(argb,8,8,3)color(0.952941,0.952941,0.952941,1.0,co)"};
  564. class EventHandlers {init = "_this execVM ""Charlieco89_Defender\cars\data\scripts\init_pn.sqf"";";};
  565. editorSubcategory = "chPN";
  566. vehicleClass = "chPN";
  567. weapons[]=
  568. {
  569. "chkla4","chpns"
  570. };
  571. class UserActions: UserActions
  572. {
  573. class Siren_on {
  574. displayName = "<t color='#ff0000'>Sirène ON</t>";
  575. position = "drivewheel";
  576. radius = 2;
  577. condition = "player IN this && (this getVariable ['siren',0]) == 0";
  578. statement = "this setVariable ['siren',1,true] && this animate [""btsiren"",1]";
  579. onlyForplayer = 0;
  580. };
  581. class Siren_off {
  582. displayName = "<t color='#ff0000'>Sirène OFF</t>";
  583. position = "drivewheel";
  584. radius = 2;
  585. condition = "player IN this && (this getVariable ['siren',0]) == 1";
  586. statement = "this setVariable ['siren',0,true] && this animate [""btsiren"",0]";
  587. onlyForplayer = 0;
  588. };
  589. };
  590. };
  591. class chdefender_gn : chdefender_base {
  592. scope = public;
  593. crew = "C_man_1";
  594. side = 1;
  595. faction = "chmods";
  596. displayName = "Land Rover Defender Gendarmerie";
  597. author = "Charlieco89";
  598. hiddenSelectionsTextures[] = {"Charlieco89_Defender\cars\data\textures\bodygn.paa","#(argb,8,8,3)color(0.952941,0.952941,0.952941,1.0,co)"};
  599. class EventHandlers {init = "_this execVM ""Charlieco89_Defender\cars\data\scripts\init_gn.sqf"";";};
  600. editorSubcategory = "chGN";
  601. vehicleClass = "chGN";
  602. weapons[]=
  603. {
  604. "chkla4","chgns"
  605. };
  606. class UserActions: UserActions
  607. {
  608. class Siren_on {
  609. displayName = "<t color='#ff0000'>Sirène ON</t>";
  610. position = "drivewheel";
  611. radius = 2;
  612. condition = "player IN this && (this getVariable ['siren',0]) == 0";
  613. statement = "this setVariable ['siren',1,true] && this animate [""btsiren"",1]";
  614. onlyForplayer = 0;
  615. };
  616. class Siren_off {
  617. displayName = "<t color='#ff0000'>Sirène OFF</t>";
  618. position = "drivewheel";
  619. radius = 2;
  620. condition = "player IN this && (this getVariable ['siren',0]) == 1";
  621. statement = "this setVariable ['siren',0,true] && this animate [""btsiren"",0]";
  622. onlyForplayer = 0;
  623. };
  624. };
  625. };
  626. class chdefender_vsavhr : chdefender_base {
  627. model = "\Charlieco89_Defender\defender_vsav_m"; /// simple path to model
  628. scope = public;
  629. crew = "C_man_1";
  630. side = 2;
  631. faction = "chmods";
  632. displayName = "Land Rover Defender VSAVHR";
  633. author = "Charlieco89";
  634. hiddenSelectionsTextures[] = {"Charlieco89_Defender\cars\data\textures\cabine.paa","#(argb,8,8,3)color(0.47451,0,0,1.0,co)","Charlieco89_Defender\cars\data\textures\cellule.paa"};
  635. class EventHandlers {init = "_this execVM ""Charlieco89_Defender\cars\data\scripts\init_vl.sqf"";";};
  636. editorSubcategory = "chSP";
  637. vehicleClass = "chSP";
  638. weapons[]=
  639. {
  640. "chkla4","chvls"
  641. };
  642. class AnimationSources
  643. {
  644. class Doors {
  645. source = "user";
  646. animPeriod = 2;
  647. initPhase = 0;
  648. };
  649. class HitLFWheel
  650. {
  651. source = "Hit";
  652. hitpoint = "HitLFWheel";
  653. raw = 1;
  654. };
  655. class HitLBWheel
  656. {
  657. source = "Hit";
  658. hitpoint = "HitLBWheel";
  659. raw = 1;
  660. };
  661. class HitRFWheel
  662. {
  663. source = "Hit";
  664. hitpoint = "HitRFWheel";
  665. raw = 1;
  666. };
  667. class HitRBWheel
  668. {
  669. source = "Hit";
  670. hitpoint = "HitRBWheel";
  671. raw = 1;
  672. };
  673. };
  674. transportSoldier = 1; /// number of cargo except driver
  675. cargoAction[]=
  676. {
  677. "passenger_low01"
  678. };
  679. class Reflectors /// only front lights are considered to be reflectors to save CPU
  680. {
  681. class LightCarHeadL01 /// lights on each side consist of two bulbs with different flares
  682. {
  683. color[] = {1900, 1800, 1700}; /// approximate colour of standard lights
  684. ambient[] = {5, 5, 5}; /// nearly a white one
  685. position = "LightCarHeadL01"; /// memory point for start of the light and flare
  686. direction = "LightCarHeadL01_end"; /// memory point for the light direction
  687. hitpoint = "Light_L"; /// point(s) in hitpoint lod for the light (hitPoints are created by engine)
  688. selection = "Light_L"; /// selection for artificial glow around the bulb, not much used any more
  689. size = 1; /// size of the light point seen from distance
  690. innerAngle = 100; /// angle of full light
  691. outerAngle = 179; /// angle of some light
  692. coneFadeCoef = 10; /// attenuation of light between the above angles
  693. intensity = 1; /// strength of the light
  694. useFlare = true; /// does the light use flare?
  695. dayLight = false; /// switching light off during day saves CPU a lot
  696. flareSize = 1.0; /// how big is the flare
  697.  
  698. class Attenuation
  699. {
  700. start = 1.0;
  701. constant = 0;
  702. linear = 0;
  703. quadratic = 0.25;
  704. hardLimitStart = 30; /// it is good to have some limit otherwise the light would shine to infinite distance
  705. hardLimitEnd = 60; /// this allows adding more lights into scene
  706. };
  707. };
  708.  
  709. class LightCarHeadL02: LightCarHeadL01
  710. {
  711. position = "LightCarHeadL02";
  712. direction = "LightCarHeadL02_end";
  713. FlareSize = 0.5; /// side bulbs aren't that strong
  714. };
  715.  
  716. class LightCarHeadR01: LightCarHeadL01
  717. {
  718. position = "LightCarHeadR01";
  719. direction = "LightCarHeadR01_end";
  720. hitpoint = "Light_R";
  721. selection = "Light_R";
  722. };
  723.  
  724. class LightCarHeadR02: LightCarHeadR01
  725. {
  726. position = "LightCarHeadR02";
  727. direction = "LightCarHeadR02_end";
  728. FlareSize = 0.5;
  729. };
  730. class PP1: LightCarHeadR01
  731. {
  732. position = "PP1";
  733. direction = "PP1_end";
  734. FlareSize = 1.5;
  735. intensity = 150; /// strength of the light
  736. class Attenuation
  737. {
  738. start = 0;
  739. constant = 0;
  740. linear = 0;
  741. quadratic = 0.25;
  742. hardLimitStart = 25; /// it is good to have some limit otherwise the light would shine to infinite distance
  743. hardLimitEnd = 150; /// this allows adding more lights into scene
  744. };
  745. };
  746. class PP2: LightCarHeadR01
  747. {
  748. position = "PP2";
  749. direction = "PP2_end";
  750. FlareSize = 1.5;
  751. intensity = 150; /// strength of the light
  752. class Attenuation
  753. {
  754. start = 0;
  755. constant = 0;
  756. linear = 0;
  757. quadratic = 0.25;
  758. hardLimitStart = 25; /// it is good to have some limit otherwise the light would shine to infinite distance
  759. hardLimitEnd = 150; /// this allows adding more lights into scene
  760. };
  761. };
  762. class gyro1
  763. {
  764. color[] = {0, 0, 2500};
  765. ambient[] = {5, 5, 5};
  766. intensity = 1;
  767. size = 0.5; /// size of the light point seen from distance
  768. innerAngle = 50; /// angle of full light
  769. outerAngle = 100; /// angle of some light
  770. coneFadeCoef = 4; /// attenuation of light between the above angles
  771.  
  772. position = "gyropos1"; /// memory point for start of the light and flare
  773. direction = "gyrodir1"; /// memory point for the light direction
  774. hitpoint = "Light_R"; /// point(s) in hitpoint lod for the light (hitPoints are created by engine)
  775. selection = "gyro1"; /// selection for artificial glow around the bulb, not much used any more
  776.  
  777. useFlare = true;
  778. flareSize = 1.0;
  779. flareMaxDistance = 100;
  780. activeLight = false; /// engine counts this one as an active light into limit of lights
  781. dayLight = false; /// it doesn't shine during the day
  782. drawLight = false;
  783.  
  784. class Attenuation
  785. {
  786. start = 0;
  787. constant = 0;
  788. linear = 0;
  789. quadratic = 0.3;
  790.  
  791. hardLimitStart = 25;
  792. hardLimitEnd = 35;
  793. };
  794. };
  795. class gyro2: gyro1
  796. {
  797. direction = "gyrodir2";
  798. };
  799. class gyro3: gyro1
  800. {
  801. direction = "gyrodir3";
  802. };
  803. class gyro4: gyro1
  804. {
  805. direction = "gyrodir4";
  806. };
  807. class gyro5: gyro1
  808. {
  809. position = "gyropos2";
  810. direction = "gyrodir5";
  811. };
  812. class gyro6: gyro1
  813. {
  814. position = "gyropos2";
  815. direction = "gyrodir6";
  816. };
  817. class gyro7: gyro1
  818. {
  819. position = "gyropos2";
  820. direction = "gyrodir7";
  821. };
  822. class gyro8: gyro1
  823. {
  824. position = "gyropos2";
  825. direction = "gyrodir8";
  826. };
  827. class gyro9: gyro1
  828. {
  829. position = "gyropos3";
  830. direction = "gyrodir9";
  831. };
  832. class gyro10: gyro1
  833. {
  834. position = "gyropos4";
  835. direction = "gyrodir10";
  836. };
  837. class gyro11: gyro1
  838. {
  839. position = "gyropos5";
  840. direction = "gyrodir11";
  841. };
  842. class gyro12: gyro1
  843. {
  844. position = "gyropos6";
  845. direction = "gyrodir12";
  846. };
  847. class gyro13: gyro1
  848. {
  849. position = "gyropos7";
  850. direction = "gyrodir13";
  851. };
  852. class gyro14: gyro1
  853. {
  854. position = "gyropos8";
  855. direction = "gyrodir14";
  856. };
  857. class gyro15: gyro1
  858. {
  859. position = "gyropos9";
  860. direction = "gyrodir15";
  861. };
  862. class gyro16: gyro1
  863. {
  864. position = "gyropos10";
  865. direction = "gyrodir16";
  866. };
  867. class gyro17: gyro1
  868. {
  869. position = "gyropos11";
  870. direction = "gyrodir17";
  871. };
  872. class gyro18: gyro1
  873. {
  874. position = "gyropos12";
  875. direction = "gyrodir18";
  876. };
  877. };
  878.  
  879. aggregateReflectors[] = {{"PP1"},{"PP2"},{"LightCarHeadL01", "LightCarHeadL02"}, {"LightCarHeadR01", "LightCarHeadR02"}}; /// aggregating reflectors helps the engine a lot
  880. /// it might be even good to aggregate all lights into one source as it is done for most of the cars
  881. class UserActions
  882. {
  883. class UserActions
  884. {
  885. class gyropharef
  886. {
  887. displayName = "<t color='#0094ff'>Siren ON</t>";
  888. position = "drivewheel";
  889. radius = 2;
  890. onlyForPlayer = 0;
  891. condition = "player IN this && this animationPhase ""lamp1"" <= 0.5";
  892. statement = "this animate [""lamp1"",1];this animate [""btgyr"",1],this animate [""lamp2"",1]";
  893. };
  894. class gyrophare
  895. {
  896. displayName = "<t color='#0094ff'>Siren OFF</t>";
  897. position = "drivewheel";
  898. radius = 2;
  899. onlyForPlayer = 0;
  900. condition = "player IN this && this animationPhase ""lamp1"" > 0.5";
  901. statement = "this animate [""lamp1"",0];this animate [""btgyr"",0],this animate [""lamp2"",0]";
  902. };
  903. class ClignotantsGaucheAllumer
  904. {
  905. displayName="<t color='#fff000'>Signal left ON (A)</t>";
  906. displayNameDefault="<t color='#fff000'>Allumer les clignotants gauches</t>";
  907. priority=3;
  908. radius=20;
  909. position="drivewheel";
  910. showWindow=0;
  911. onlyForPlayer=1;
  912. shortcut="LeanLeft";
  913. condition="(driver this == player) && (alive this) && (this animationPhase ""ClignotantsGaucheStart"" == 0) && isEngineOn this";
  914. statement="vehicle player animate [""ClignotantsGaucheStart"", 1];";
  915. };
  916. class ClignotantsGaucheEteindre
  917. {
  918. displayName="<t color='#fff000'>Signal left OFF (A)</t>";
  919. displayNameDefault="<t color='#fff000'>Eteindre les clignotants gauches</t>";
  920. priority=3;
  921. radius=20;
  922. position="drivewheel";
  923. showWindow=0;
  924. onlyForPlayer=1;
  925. shortcut="LeanLeft";
  926. condition="(driver this == player) && (alive this) && (this animationPhase ""ClignotantsGaucheStart"" != 0)";
  927. statement="vehicle player animate [""ClignotantsGaucheStart"", 0];";
  928. };
  929. class ClignotantsDroitAllumer
  930. {
  931. displayName="<t color='#fff000'>Signal right ON (E)</t>";
  932. displayNameDefault="<t color='#fff000'>Allumer les clignotants droits</t>";
  933. priority=3;
  934. radius=20;
  935. position="drivewheel";
  936. showWindow=0;
  937. onlyForPlayer=1;
  938. shortcut="LeanRight";
  939. condition="(driver this == player) && (alive this) && (this animationPhase ""ClignotantsDroitStart"" == 0) && isEngineOn this";
  940. statement="vehicle player animate [""ClignotantsDroitStart"", 1];";
  941. };
  942. class ClignotantsDroitEteindre
  943. {
  944. displayName="<t color='#fff000'>Signal rights ON(E)</t>";
  945. displayNameDefault="<t color='#fff000'>Eteindre les clignotants droits</t>";
  946. priority=3;
  947. radius=20;
  948. position="drivewheel";
  949. showWindow=0;
  950. onlyForPlayer=1;
  951. shortcut="LeanRight";
  952. condition="(driver this == player) && (alive this) && (this animationPhase ""ClignotantsDroitStart"" != 0)";
  953. statement="vehicle player animate [""ClignotantsDroitStart"", 0];";
  954. };
  955. class Close_Doors {
  956. displayName = "Close doors";
  957. radius = 15;
  958. position = "drivercontrols";
  959. onlyforplayer = 0;
  960. condition = "player IN this && this animationPhase ""Porte1"" > 0.5";
  961. statement = "this animate [""Porte1"",0];this animate [""Porte2"", 0]";
  962. };
  963. class Open_Doors {
  964. displayName = "Open doors";
  965. radius = 15;
  966. position = "drivercontrols";
  967. onlyforplayer = 0;
  968. condition = "player IN this && this animationPhase ""Porte1"" < 0.5 && speed this < 10;";
  969. statement = "this animate [""Porte1"",1];this animate [""Porte2"", 1]";
  970. };
  971.  
  972. };
  973. };
  974. class chdefender_grimp : chdefender_base {
  975. model = "\Charlieco89_Defender\defender_grimp_m";
  976. scope = public;
  977. crew = "C_man_1";
  978. side = 2;
  979. faction = "chmods";
  980. displayName = "Land Rover Defender GRIMP";
  981. author = "Charlieco89";
  982. hiddenSelectionsTextures[] = {"Charlieco89_Defender\cars\data\textures\bodygrimp.paa","#(argb,8,8,3)color(0.952941,0.952941,0.952941,1.0,co)"};
  983. class EventHandlers {init = "_this execVM ""Charlieco89_Defender\cars\data\scripts\init_vl.sqf"";";};
  984. editorSubcategory = "chSP";
  985. vehicleClass = "chSP";
  986. weapons[]=
  987. {
  988. "chkla4","chvls"
  989. };
  990. class Reflectors /// only front lights are considered to be reflectors to save CPU
  991. {
  992. class LightCarHeadL01 /// lights on each side consist of two bulbs with different flares
  993. {
  994. color[] = {1900, 1800, 1700}; /// approximate colour of standard lights
  995. ambient[] = {5, 5, 5}; /// nearly a white one
  996. position = "LightCarHeadL01"; /// memory point for start of the light and flare
  997. direction = "LightCarHeadL01_end"; /// memory point for the light direction
  998. hitpoint = "Light_L"; /// point(s) in hitpoint lod for the light (hitPoints are created by engine)
  999. selection = "Light_L"; /// selection for artificial glow around the bulb, not much used any more
  1000. size = 1; /// size of the light point seen from distance
  1001. innerAngle = 100; /// angle of full light
  1002. outerAngle = 179; /// angle of some light
  1003. coneFadeCoef = 10; /// attenuation of light between the above angles
  1004. intensity = 1; /// strength of the light
  1005. useFlare = true; /// does the light use flare?
  1006. dayLight = false; /// switching light off during day saves CPU a lot
  1007. flareSize = 1.0; /// how big is the flare
  1008.  
  1009. class Attenuation
  1010. {
  1011. start = 1.0;
  1012. constant = 0;
  1013. linear = 0;
  1014. quadratic = 0.25;
  1015. hardLimitStart = 30; /// it is good to have some limit otherwise the light would shine to infinite distance
  1016. hardLimitEnd = 60; /// this allows adding more lights into scene
  1017. };
  1018. };
  1019.  
  1020. class LightCarHeadL02: LightCarHeadL01
  1021. {
  1022. position = "LightCarHeadL02";
  1023. direction = "LightCarHeadL02_end";
  1024. FlareSize = 0.5; /// side bulbs aren't that strong
  1025. };
  1026.  
  1027. class LightCarHeadR01: LightCarHeadL01
  1028. {
  1029. position = "LightCarHeadR01";
  1030. direction = "LightCarHeadR01_end";
  1031. hitpoint = "Light_R";
  1032. selection = "Light_R";
  1033. };
  1034.  
  1035. class LightCarHeadR02: LightCarHeadR01
  1036. {
  1037. position = "LightCarHeadR02";
  1038. direction = "LightCarHeadR02_end";
  1039. FlareSize = 0.5;
  1040. };
  1041. class PP1: LightCarHeadR01
  1042. {
  1043. position = "PP1";
  1044. direction = "PP1_end";
  1045. FlareSize = 1.5;
  1046. intensity = 150; /// strength of the light
  1047. class Attenuation
  1048. {
  1049. start = 0;
  1050. constant = 0;
  1051. linear = 0;
  1052. quadratic = 0.25;
  1053. hardLimitStart = 25; /// it is good to have some limit otherwise the light would shine to infinite distance
  1054. hardLimitEnd = 150; /// this allows adding more lights into scene
  1055. };
  1056. };
  1057. class PP2: LightCarHeadR01
  1058. {
  1059. position = "PP2";
  1060. direction = "PP2_end";
  1061. FlareSize = 1.5;
  1062. intensity = 150; /// strength of the light
  1063. class Attenuation
  1064. {
  1065. start = 0;
  1066. constant = 0;
  1067. linear = 0;
  1068. quadratic = 0.25;
  1069. hardLimitStart = 25; /// it is good to have some limit otherwise the light would shine to infinite distance
  1070. hardLimitEnd = 150; /// this allows adding more lights into scene
  1071. };
  1072. };
  1073. class gyro1
  1074. {
  1075. color[] = {0, 0, 2500};
  1076. ambient[] = {5, 5, 5};
  1077. intensity = 1;
  1078. size = 0.5; /// size of the light point seen from distance
  1079. innerAngle = 50; /// angle of full light
  1080. outerAngle = 100; /// angle of some light
  1081. coneFadeCoef = 4; /// attenuation of light between the above angles
  1082.  
  1083. position = "gyropos1"; /// memory point for start of the light and flare
  1084. direction = "gyrodir1"; /// memory point for the light direction
  1085. hitpoint = "Light_R"; /// point(s) in hitpoint lod for the light (hitPoints are created by engine)
  1086. selection = "gyro1"; /// selection for artificial glow around the bulb, not much used any more
  1087.  
  1088. useFlare = true;
  1089. flareSize = 1.0;
  1090. flareMaxDistance = 100;
  1091. activeLight = false; /// engine counts this one as an active light into limit of lights
  1092. dayLight = false; /// it doesn't shine during the day
  1093. drawLight = false;
  1094.  
  1095. class Attenuation
  1096. {
  1097. start = 0;
  1098. constant = 0;
  1099. linear = 0;
  1100. quadratic = 0.3;
  1101.  
  1102. hardLimitStart = 25;
  1103. hardLimitEnd = 35;
  1104. };
  1105. };
  1106. class gyro2: gyro1
  1107. {
  1108. direction = "gyrodir2";
  1109. };
  1110. class gyro3: gyro1
  1111. {
  1112. direction = "gyrodir3";
  1113. };
  1114. class gyro4: gyro1
  1115. {
  1116. direction = "gyrodir4";
  1117. };
  1118. class gyro5: gyro1
  1119. {
  1120. position = "gyropos2";
  1121. direction = "gyrodir5";
  1122. };
  1123. class gyro6: gyro1
  1124. {
  1125. position = "gyropos2";
  1126. direction = "gyrodir6";
  1127. };
  1128. class gyro7: gyro1
  1129. {
  1130. position = "gyropos2";
  1131. direction = "gyrodir7";
  1132. };
  1133. class gyro8: gyro1
  1134. {
  1135. position = "gyropos2";
  1136. direction = "gyrodir8";
  1137. };
  1138. };
  1139.  
  1140. aggregateReflectors[] = {{"PP1"},{"PP2"},{"LightCarHeadL01", "LightCarHeadL02"}, {"LightCarHeadR01", "LightCarHeadR02"}}; /// aggregating reflectors helps the engine a lot
  1141. /// it might be even good to aggregate all lights into one source as it is done for most of the cars
  1142. class UserActions
  1143. {
  1144. class gyropharef
  1145. {
  1146. displayName = "<t color='#0000ff'>Gyrophares ON</t>";
  1147. position = "drivewheel";
  1148. radius = 2;
  1149. onlyForPlayer = 0;
  1150. condition = "player IN this && this animationPhase ""lamp1"" <= 0.5";
  1151. statement = "this animate [""lamp1"",1];this animate [""btgyr"",1],this animate [""lamp2"",1]";
  1152. };
  1153. class gyrophare
  1154. {
  1155. displayName = "<t color='#0000ff'>Gyrophares OFF</t>";
  1156. position = "drivewheel";
  1157. radius = 2;
  1158. onlyForPlayer = 0;
  1159. condition = "player IN this && this animationPhase ""lamp1"" > 0.5";
  1160. statement = "this animate [""lamp1"",0];this animate [""btgyr"",0],this animate [""lamp2"",0]";
  1161. };
  1162. class ClignotantsGaucheAllumer
  1163. {
  1164. displayName="<t color='#fff000'>Allumer les clignotants gauches (A)</t>";
  1165. displayNameDefault="<t color='#fff000'>Allumer les clignotants gauches</t>";
  1166. priority=3;
  1167. radius=20;
  1168. position="drivewheel";
  1169. showWindow=0;
  1170. onlyForPlayer=1;
  1171. shortcut="LeanLeft";
  1172. condition="(driver this == player) && (alive this) && (this animationPhase ""ClignotantsGaucheStart"" == 0) && isEngineOn this";
  1173. statement="vehicle player animate [""ClignotantsGaucheStart"", 1];";
  1174. };
  1175. class ClignotantsGaucheEteindre
  1176. {
  1177. displayName="<t color='#fff000'>Eteindre les clignotants gauches (A)</t>";
  1178. displayNameDefault="<t color='#fff000'>Eteindre les clignotants gauches</t>";
  1179. priority=3;
  1180. radius=20;
  1181. position="drivewheel";
  1182. showWindow=0;
  1183. onlyForPlayer=1;
  1184. shortcut="LeanLeft";
  1185. condition="(driver this == player) && (alive this) && (this animationPhase ""ClignotantsGaucheStart"" != 0)";
  1186. statement="vehicle player animate [""ClignotantsGaucheStart"", 0];";
  1187. };
  1188. class ClignotantsDroitAllumer
  1189. {
  1190. displayName="<t color='#fff000'>Allumer les clignotants droits (E)</t>";
  1191. displayNameDefault="<t color='#fff000'>Allumer les clignotants droits</t>";
  1192. priority=3;
  1193. radius=20;
  1194. position="drivewheel";
  1195. showWindow=0;
  1196. onlyForPlayer=1;
  1197. shortcut="LeanRight";
  1198. condition="(driver this == player) && (alive this) && (this animationPhase ""ClignotantsDroitStart"" == 0) && isEngineOn this";
  1199. statement="vehicle player animate [""ClignotantsDroitStart"", 1];";
  1200. };
  1201. class ClignotantsDroitEteindre
  1202. {
  1203. displayName="<t color='#fff000'>Eteindre les clignotants droits (E)</t>";
  1204. displayNameDefault="<t color='#fff000'>Eteindre les clignotants droits</t>";
  1205. priority=3;
  1206. radius=20;
  1207. position="drivewheel";
  1208. showWindow=0;
  1209. onlyForPlayer=1;
  1210. shortcut="LeanRight";
  1211. condition="(driver this == player) && (alive this) && (this animationPhase ""ClignotantsDroitStart"" != 0)";
  1212. statement="vehicle player animate [""ClignotantsDroitStart"", 0];";
  1213. };
  1214. class Siren_on {
  1215. displayName = "<t color='#ff0000'>Sirène ON</t>";
  1216. position = "drivewheel";
  1217. radius = 2;
  1218. condition = "player IN this && (this getVariable ['siren',0]) == 0";
  1219. statement = "this setVariable ['siren',1,true] && this animate [""btsiren"",1]";
  1220. onlyForplayer = 0;
  1221. };
  1222. class Siren_off {
  1223. displayName = "<t color='#ff0000'>Sirène OFF</t>";
  1224. position = "drivewheel";
  1225. radius = 2;
  1226. condition = "player IN this && (this getVariable ['siren',0]) == 1";
  1227. statement = "this setVariable ['siren',0,true] && this animate [""btsiren"",0]";
  1228. onlyForplayer = 0;
  1229. };
  1230. class PPf
  1231. {
  1232. displayName = "<t color='#0094ff'>Feux de route</t>";
  1233. position = "drivewheel";
  1234. radius = 2;
  1235. onlyForPlayer = 0;
  1236. condition = "player IN this && this animationPhase ""PP"" <= 0.5";
  1237. statement = "this animate [""PP"",1]";
  1238. };
  1239. class PP
  1240. {
  1241. displayName = "<t color='#2d9900'>Feux de croisement</t>";
  1242. position = "drivewheel";
  1243. radius = 2;
  1244. onlyForPlayer = 0;
  1245. condition = "player IN this && this animationPhase ""PP"" > 0.5";
  1246. statement = "this animate [""PP"",0]";
  1247. };
  1248. };
  1249. };
  1250. };
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement