truck_02.c 5.7 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303
  1. class Truck_02 extends CarScript
  2. {
  3. protected ref UniversalTemperatureSource m_UTSource;
  4. protected ref UniversalTemperatureSourceSettings m_UTSSettings;
  5. protected ref UniversalTemperatureSourceLambdaEngine m_UTSLEngine;
  6. void Truck_02()
  7. {
  8. //m_dmgContactCoef = 0.018;
  9. m_enginePtcPos = "0 1.346 2.205";
  10. }
  11. override void EEInit()
  12. {
  13. super.EEInit();
  14. if (GetGame().IsServer() || !GetGame().IsMultiplayer())
  15. {
  16. m_UTSSettings = new UniversalTemperatureSourceSettings();
  17. m_UTSSettings.m_ManualUpdate = true;
  18. m_UTSSettings.m_TemperatureItemCap = GameConstants.ITEM_TEMPERATURE_NEUTRAL_ZONE_MIDDLE;
  19. m_UTSSettings.m_TemperatureCap = 0;
  20. m_UTSSettings.m_RangeFull = 0.5;
  21. m_UTSSettings.m_RangeMax = 2;
  22. m_UTSLEngine = new UniversalTemperatureSourceLambdaEngine();
  23. m_UTSource = new UniversalTemperatureSource(this, m_UTSSettings, m_UTSLEngine);
  24. }
  25. }
  26. override void OnEngineStart()
  27. {
  28. super.OnEngineStart();
  29. if (GetGame().IsServer() || !GetGame().IsMultiplayer())
  30. {
  31. m_UTSource.SetDefferedActive(true, 20.0);
  32. }
  33. }
  34. override void OnEngineStop()
  35. {
  36. super.OnEngineStop();
  37. if (GetGame().IsServer() || !GetGame().IsMultiplayer())
  38. {
  39. m_UTSource.SetDefferedActive(false, 10.0);
  40. }
  41. }
  42. override void EOnPostSimulate(IEntity other, float timeSlice)
  43. {
  44. if (GetGame().IsServer() || !GetGame().IsMultiplayer())
  45. {
  46. if (m_UTSource.IsActive())
  47. {
  48. m_UTSource.Update(m_UTSSettings, m_UTSLEngine);
  49. }
  50. }
  51. }
  52. override int GetAnimInstance()
  53. {
  54. return VehicleAnimInstances.MULTICAR;
  55. }
  56. override int GetSeatAnimationType( int posIdx )
  57. {
  58. switch( posIdx )
  59. {
  60. case 0:
  61. return DayZPlayerConstants.VEHICLESEAT_DRIVER;
  62. case 1:
  63. return DayZPlayerConstants.VEHICLESEAT_CODRIVER;
  64. }
  65. return 0;
  66. }
  67. override int GetCarDoorsState( string slotType )
  68. {
  69. CarDoor carDoor;
  70. switch( slotType )
  71. {
  72. case "Truck_02_Door_1_1":
  73. Class.CastTo( carDoor, FindAttachmentBySlotName( slotType ) );
  74. if ( carDoor )
  75. {
  76. if ( GetAnimationPhase("DoorsDriver") > 0.5 )
  77. {
  78. return CarDoorState.DOORS_OPEN;
  79. }
  80. else
  81. {
  82. return CarDoorState.DOORS_CLOSED;
  83. }
  84. }
  85. return CarDoorState.DOORS_MISSING;
  86. break;
  87. case "Truck_02_Door_2_1":
  88. Class.CastTo( carDoor, FindAttachmentBySlotName( slotType ) );
  89. if ( carDoor )
  90. {
  91. if ( GetAnimationPhase("DoorsCoDriver") > 0.5 )
  92. {
  93. return CarDoorState.DOORS_OPEN;
  94. }
  95. else
  96. {
  97. return CarDoorState.DOORS_CLOSED;
  98. }
  99. }
  100. return CarDoorState.DOORS_MISSING;
  101. break;
  102. }
  103. return CarDoorState.DOORS_MISSING;
  104. }
  105. override bool CrewCanGetThrough( int posIdx )
  106. {
  107. CarDoor carDoor;
  108. switch( posIdx )
  109. {
  110. case 0:
  111. if ( GetCarDoorsState( "Truck_02_Door_1_1" ) == CarDoorState.DOORS_CLOSED )
  112. {
  113. return false;
  114. }
  115. return true;
  116. break;
  117. case 1:
  118. if ( GetCarDoorsState( "Truck_02_Door_2_1" ) == CarDoorState.DOORS_CLOSED )
  119. {
  120. return false;
  121. }
  122. return true;
  123. break;
  124. }
  125. return false;
  126. }
  127. override float OnSound( CarSoundCtrl ctrl, float oldValue )
  128. {
  129. switch ( ctrl )
  130. {
  131. case CarSoundCtrl.DOORS:
  132. float newValue = 0;
  133. //-----
  134. if ( GetCarDoorsState( "Truck_02_Door_1_1" ) == CarDoorState.DOORS_CLOSED )
  135. {
  136. newValue += 0.4;
  137. }
  138. if ( GetCarDoorsState( "Truck_02_Door_2_1" ) == CarDoorState.DOORS_CLOSED )
  139. {
  140. newValue += 0.4;
  141. }
  142. if ( newValue > 1 )
  143. newValue = 1;
  144. return newValue;
  145. break;
  146. }
  147. return oldValue;
  148. }
  149. override string GetAnimSourceFromSelection( string selection )
  150. {
  151. switch( selection )
  152. {
  153. case "doors_driver":
  154. return "DoorsDriver";
  155. case "doors_codriver":
  156. return "DoorsCoDriver";
  157. case "doors_hood":
  158. return "DoorsHood";
  159. case "doors_trunk":
  160. return "DoorsTrunk";
  161. case "wheelsideplate1":
  162. return "WheelSidePlate1";
  163. case "wheelsideplate2":
  164. return "WheelSidePlate2";
  165. }
  166. return "";
  167. }
  168. override bool IsVitalCarBattery()
  169. {
  170. return false;
  171. }
  172. override bool IsVitalSparkPlug()
  173. {
  174. return false;
  175. }
  176. override bool IsVitalGlowPlug()
  177. {
  178. return false;
  179. }
  180. override bool IsVitalEngineBelt()
  181. {
  182. return false;
  183. }
  184. override bool IsVitalRadiator()
  185. {
  186. return false;
  187. }
  188. override bool CanReachSeatFromSeat( int currentSeat, int nextSeat )
  189. {
  190. switch( currentSeat )
  191. {
  192. case 0:
  193. if ( nextSeat == 1 )
  194. return true;
  195. break;
  196. case 1:
  197. if ( nextSeat == 0 )
  198. return true;
  199. break;
  200. }
  201. return false;
  202. }
  203. override bool CanReachDoorsFromSeat( string pDoorsSelection, int pCurrentSeat )
  204. {
  205. switch( pCurrentSeat )
  206. {
  207. case 0:
  208. if (pDoorsSelection == "DoorsDriver")
  209. {
  210. return true;
  211. }
  212. break;
  213. case 1:
  214. if (pDoorsSelection == "DoorsCoDriver")
  215. {
  216. return true;
  217. }
  218. break;
  219. }
  220. return false;
  221. }
  222. override int GetSeatIndexFromDoor( string pDoorSelection )
  223. {
  224. switch (pDoorSelection)
  225. {
  226. case "DoorsDriver":
  227. return 0;
  228. break;
  229. case "DoorsCoDriver":
  230. return 1;
  231. break;
  232. }
  233. return -1;
  234. }
  235. override void OnDebugSpawn()
  236. {
  237. EntityAI entity;
  238. if ( Class.CastTo(entity, this) )
  239. {
  240. entity.GetInventory().CreateInInventory( "Truck_02_Wheel" );
  241. entity.GetInventory().CreateInInventory( "Truck_02_Wheel" );
  242. entity.GetInventory().CreateInInventory( "Truck_02_Wheel" );
  243. entity.GetInventory().CreateInInventory( "Truck_02_Wheel" );
  244. entity.GetInventory().CreateInInventory( "TruckBattery" );
  245. entity.GetInventory().CreateInInventory( "SparkPlug" );
  246. entity.GetInventory().CreateInInventory( "Truck_02_Door_1_1" );
  247. entity.GetInventory().CreateInInventory( "Truck_02_Door_2_1" );
  248. entity.GetInventory().CreateInInventory( "HeadlightH7" );
  249. entity.GetInventory().CreateInInventory( "HeadlightH7" );
  250. }
  251. Fill( CarFluid.FUEL, 50 );
  252. Fill( CarFluid.OIL, 4.0 );
  253. };
  254. }