AoD_Talons

speddometer client lua

Feb 20th, 2018
199
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 5.98 KB | None | 0 0
  1. --SETTINGS--
  2. showFuelGauge = true -- use fuel gauge?
  3. --SETTINGS END--
  4.  
  5. curNeedle, curTachometer, curSpeedometer, curFuelGauge, curAlpha = "needle_day", "tachometer_day", "speedometer_day", "fuelgauge_day",0
  6. RPM, degree, blinkertick, showBlinker = 0, 0, 0, false
  7. overwriteChecks = false -- debug value to display all icons
  8. Citizen.CreateThread(function()
  9. while true do
  10. Citizen.Wait(0)
  11. local veh = GetVehiclePedIsUsing(GetPlayerPed(-1))
  12. if IsPedInAnyVehicle(GetPlayerPed(-1),true) and GetSeatPedIsTryingToEnter(GetPlayerPed(-1)) == -1 or GetPedInVehicleSeat(veh, -1) == GetPlayerPed(-1) then
  13. if curAlpha >= 255 then
  14. curAlpha = 255
  15. else
  16. curAlpha = curAlpha+5
  17. end
  18. elseif not IsPedInAnyVehicle(GetPlayerPed(-1),false) then
  19. if curAlpha <= 0 then
  20. curAlpha = 0
  21. else
  22. curAlpha = curAlpha-5
  23. end
  24. end
  25. if not HasStreamedTextureDictLoaded("speedometer") then
  26. RequestStreamedTextureDict("speedometer", true)
  27. while not HasStreamedTextureDictLoaded("speedometer") do
  28. Wait(0)
  29. end
  30. else
  31. if DoesEntityExist(veh) and not IsEntityDead(veh) then
  32. degree, step = 0, 2.32833
  33. RPM = GetVehicleCurrentRpm(veh)
  34. if not GetIsVehicleEngineRunning(veh) then RPM = 0 end -- fix for R*'s Engine RPM fuckery
  35. if RPM > 0.99 then
  36. RPM = RPM*100
  37. RPM = RPM+math.random(-2,2)
  38. RPM = RPM/100
  39. end
  40. blinkerstate = GetVehicleIndicatorLights(veh) -- owo whats this
  41. if blinkerstate == 0 then
  42. blinkerleft,blinkerright = false,false
  43. elseif blinkerstate == 1 then
  44. blinkerleft,blinkerright = true,false
  45. elseif blinkerstate == 2 then
  46. blinkerleft,blinkerright = false,true
  47. elseif blinkerstate == 3 then
  48. blinkerleft,blinkerright = true,true
  49. end
  50. engineHealth = GetVehicleEngineHealth(veh)
  51. if engineHealth <= 350 and engineHealth > 100 then
  52. showDamageYellow,showDamageRed = true,false
  53. elseif engineHealth <= 100 then
  54. showDamageYellow,showDamageRed = false, true
  55. else
  56. showDamageYellow,showDamageRed = false, false
  57. end
  58. OilLevel = GetVehicleOilLevel(veh)
  59. FuelLevel = GetVehicleFuelLevel(veh)
  60. MaxFuelLevel = Citizen.InvokeNative(0x642FC12F, veh, "CHandlingData", "fPetrolTankVolume", Citizen.ReturnResultAnyway(), Citizen.ResultAsFloat())
  61. if FuelLevel <= MaxFuelLevel*0.25 and FuelLevel > MaxFuelLevel*0.13 then
  62. showLowFuelYellow,showLowFuelRed = true,false
  63. elseif FuelLevel <= MaxFuelLevel*0.2 then
  64. showLowFuelYellow,showLowFuelRed = false,true
  65. else
  66. showLowFuelYellow,showLowFuelRed = false,false
  67. end
  68. if OilLevel <= 0.5 then
  69. showLowOil = true
  70. else
  71. showLowOil = false
  72. end
  73. _,lightson,highbeams = GetVehicleLightsState(veh)
  74. if lightson == 1 or highbeams == 1 then
  75. curNeedle, curTachometer, curSpeedometer, curFuelGauge = "needle", "tachometer", "speedometer", "fuelgauge"
  76. if highbeams == 1 then
  77. showHighBeams,showLowBeams = true,false
  78. elseif lightson == 1 and highbeams == 0 then
  79. showHighBeams,showLowBeams = false,true
  80. end
  81. else
  82. curNeedle, curTachometer, curSpeedometer, curFuelGauge, showHighBeams, showLowBeams = "needle_day", "tachometer_day", "speedometer_day", "fuelgauge_day", false, false
  83. end
  84. if GetEntitySpeed(veh) > 0 then degree=(GetEntitySpeed(veh)*2.036936)*step end
  85. if degree > 290 then degree=290 end
  86. if GetVehicleClass(veh) >= 0 and GetVehicleClass(veh) < 13 or GetVehicleClass(veh) >= 17 then
  87. else
  88. curAlpha = 0
  89. end
  90. else
  91. RPM, degree = 0, 0
  92. end
  93.  
  94. if RPM < 0.12 or not RPM then
  95. RPM = 0.12
  96. end
  97. if overwriteChecks then
  98. showHighBeams,showLowBeams,showBlinker,blinkerleft,blinkerright,showDamageRed,showLowFuelRed,showLowOil = true, true, true, true, true ,true, true, true
  99. end
  100. if showHighBeams then
  101. DrawSprite("speedometer", "lights", 0.810,0.892,0.018,0.02,0, 0, 50, 240, curAlpha)
  102. elseif showLowBeams then
  103. DrawSprite("speedometer", "lights", 0.810,0.892,0.018,0.02,0, 0, 255, 0, curAlpha)
  104. end
  105. if blinkerleft and showBlinker then
  106. DrawSprite("speedometer", "blinker", 0.905,0.834,0.022,0.03,180.0, 124,252,0, curAlpha)
  107. end
  108. if blinkerright and showBlinker then
  109. DrawSprite("speedometer", "blinker", 0.935,0.833,0.022,0.030,0.0, 124,252,0, curAlpha)
  110. end
  111. if MaxFuelLevel ~= 0 then
  112. if showLowFuelYellow then
  113. DrawSprite("speedometer", "fuel", 0.905,0.890,0.012,0.025,0, 255, 191, 0, curAlpha)
  114. elseif showLowFuelRed then
  115. DrawSprite("speedometer", "fuel", 0.905,0.890,0.012,0.025,0, 255, 0, 0, curAlpha)
  116. end
  117. if showLowOil then
  118. DrawSprite("speedometer", "oil", 0.900,0.862,0.020,0.025,0, 255, 0, 0, curAlpha)
  119. end -- MAKE SURE TO DRAW THIS BEFORE THE TACHO NEEDLE, OTHERWISE OVERLAPPING WILL HAPPEN!
  120. end
  121. if showDamageYellow then
  122. DrawSprite("speedometer", "engine", 0.930,0.892,0.020,0.025,0, 255, 191, 0, curAlpha)
  123. elseif showDamageRed then
  124. DrawSprite("speedometer", "engine", 0.930,0.892,0.020,0.025,0, 255, 0, 0, curAlpha)
  125. end
  126. DrawSprite("speedometer", curSpeedometer, 0.800,0.860,0.12,0.185, 0.0, 255, 255, 255, curAlpha)
  127. if MaxFuelLevel ~= 0 then
  128. DrawSprite("speedometer", curTachometer, 0.920,0.860,0.12,0.185, 0.0, 255, 255, 255, curAlpha)
  129. DrawSprite("speedometer", curNeedle, 0.920,0.862,0.076,0.15,RPM*280-30, 255, 255, 255, curAlpha)
  130. end
  131. DrawSprite("speedometer", curNeedle, 0.800,0.862,0.076,0.15,-5.00001+degree, 255, 255, 255, curAlpha)
  132. if showFuelGauge and FuelLevel and MaxFuelLevel ~= 0 then
  133. DrawSprite("speedometer", curFuelGauge, 0.860, 0.780,0.04, 0.04, 0.0, 255,255,255, curAlpha)
  134. DrawSprite("speedometer", curNeedle, 0.860,0.800,0.040,0.08,80.0+FuelLevel/MaxFuelLevel*110, 255, 255, 255, curAlpha)
  135. end
  136. end
  137. end
  138.  
  139. end)
  140.  
  141.  
  142.  
  143. Citizen.CreateThread(function()
  144. while true do
  145. Citizen.Wait(0)
  146. if blinkerleft or blinkerright then
  147. showBlinker = true
  148. Citizen.Wait(500)
  149. showBlinker = false
  150. Citizen.Wait(500)
  151. end
  152. end
  153. end
  154. )
Advertisement
Add Comment
Please, Sign In to add comment