Advertisement
Guest User

esx_basicneeds/client/main.lua

a guest
Dec 11th, 2019
971
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 7.40 KB | None | 0 0
  1. ESX = nil
  2. local IsDead = false
  3. local IsAnimated = false
  4.  
  5. Citizen.CreateThread(function()
  6. while ESX == nil do
  7. TriggerEvent('esx:getSharedObject', function(obj) ESX = obj end)
  8. Citizen.Wait(0)
  9. end
  10. end)
  11.  
  12. AddEventHandler('esx_basicneeds:resetStatus', function()
  13. TriggerEvent('esx_status:set', 'hunger', 500000)
  14. TriggerEvent('esx_status:set', 'thirst', 500000)
  15. TriggerEvent('esx_status:set', 'stress', 1)
  16. end)
  17.  
  18. RegisterNetEvent('esx_basicneeds:healPlayer')
  19. AddEventHandler('esx_basicneeds:healPlayer', function()
  20. -- restore hunger & thirst
  21. TriggerEvent('esx_status:set', 'hunger', 1000000)
  22. TriggerEvent('esx_status:set', 'thirst', 1000000)
  23. TriggerEvent('esx_status:set', 'stress', 1)
  24.  
  25. -- restore hp
  26. local playerPed = PlayerPedId()
  27. SetEntityHealth(playerPed, GetEntityMaxHealth(playerPed))
  28. end)
  29.  
  30. AddEventHandler('esx:onPlayerDeath', function()
  31. IsDead = true
  32. end)
  33.  
  34. AddEventHandler('playerSpawned', function(spawn)
  35. if IsDead then
  36. TriggerEvent('esx_basicneeds:resetStatus')
  37. end
  38.  
  39. IsDead = false
  40. end)
  41.  
  42. AddEventHandler('esx_status:loaded', function(status)
  43.  
  44. TriggerEvent('esx_status:registerStatus', 'hunger', 1000000, '#FFFF00',
  45. function(status)
  46. return true
  47. end, function(status)
  48. status.remove(100)
  49. end)
  50.  
  51. TriggerEvent('esx_status:registerStatus', 'thirst', 1000000, '#0099FF',
  52. function(status)
  53. return true
  54. end, function(status)
  55. status.remove(75)
  56. end)
  57.  
  58. TriggerEvent('esx_status:registerStatus', 'stress', 1000000, '#cadfff',
  59. function(status)
  60. return true
  61. end, function(status)
  62. status.add(100)
  63. end)
  64.  
  65. Citizen.CreateThread(function()
  66. while true do
  67. Citizen.Wait(1000)
  68.  
  69. local playerPed = PlayerPedId()
  70. local prevHealth = GetEntityHealth(playerPed)
  71. local health = prevHealth
  72.  
  73. TriggerEvent('esx_status:getStatus', 'hunger', function(status)
  74. if status.val == 0 then
  75. if prevHealth <= 150 then
  76. health = health - 5
  77. else
  78. health = health - 1
  79. end
  80. end
  81. end)
  82.  
  83. TriggerEvent('esx_status:getStatus', 'thirst', function(status)
  84. if status.val == 0 then
  85. if prevHealth <= 150 then
  86. health = health - 5
  87. else
  88. health = health - 1
  89. end
  90. end
  91. end)
  92.  
  93. TriggerEvent('esx_status:getStatus', 'stress', function(status) -- Bu eventi stressi hudda göstermek için de kullanabilirsiniz // you can also use this event to show stress on your hud
  94. stress = status.val
  95. end)
  96.  
  97. if health ~= prevHealth then
  98. SetEntityHealth(playerPed, health)
  99. end
  100.  
  101. if stress == 1000000 then -- max stress
  102. SetTimecycleModifier("WATER_silty") -- hafif blurlanır ve görüş düşer // a bit blur and vision distance reduce
  103. SetTimecycleModifierStrength(1)
  104. else
  105. ClearExtraTimecycleModifier()
  106. end
  107.  
  108. if stress >= 900000 then
  109. local veh = GetVehiclePedIsUsing(playerPed)
  110. if IsPedInAnyVehicle(playerPed) and GetPedInVehicleSeat(veh, -1) == playerPed then -- eğer oyuncu araçtaysa ve ayrıca o aracı kullanıyorsa // if ped "driving" a vehicle
  111. Citizen.Wait(1000)
  112. ShakeGameplayCam('MEDIUM_EXPLOSION_SHAKE', 0.15) -- kamera sallanmaları // cam shake
  113. TaskVehicleTempAction(playerPed, veh, 7, 500) -- aracı hafif sola kırma // turn left a bit
  114. Citizen.Wait(500)
  115. TaskVehicleTempAction(playerPed, veh, 8, 500) -- aracı hafif sağa kırma // turn right a bit
  116. ShakeGameplayCam('MEDIUM_EXPLOSION_SHAKE', 0.15)
  117. Citizen.Wait(500)
  118. ShakeGameplayCam('MEDIUM_EXPLOSION_SHAKE', 0.15)
  119. else
  120. Citizen.Wait(1500)
  121. ShakeGameplayCam('MEDIUM_EXPLOSION_SHAKE', 0.15)
  122. end
  123.  
  124. elseif stress >= 800000 then
  125. local veh = GetVehiclePedIsUsing(playerPed)
  126. if IsPedInAnyVehicle(playerPed) and GetPedInVehicleSeat(veh, -1) == playerPed then
  127. Citizen.Wait(1000)
  128. ShakeGameplayCam('MEDIUM_EXPLOSION_SHAKE', 0.10)
  129. TaskVehicleTempAction(playerPed, veh, 7, 300)
  130. Citizen.Wait(500)
  131. TaskVehicleTempAction(playerPed, veh, 8, 300)
  132. ShakeGameplayCam('MEDIUM_EXPLOSION_SHAKE', 0.10)
  133. Citizen.Wait(500)
  134. ShakeGameplayCam('MEDIUM_EXPLOSION_SHAKE', 0.10)
  135. else
  136. Citizen.Wait(2000)
  137. ShakeGameplayCam('MEDIUM_EXPLOSION_SHAKE', 0.10)
  138. end
  139. elseif stress >= 700000 then
  140. local veh = GetVehiclePedIsUsing(playerPed)
  141. if IsPedInAnyVehicle(playerPed) and GetPedInVehicleSeat(veh, -1) == playerPed then
  142. Citizen.Wait(1000)
  143. ShakeGameplayCam('MEDIUM_EXPLOSION_SHAKE', 0.07)
  144. TaskVehicleTempAction(playerPed, veh, 7, 100)
  145. Citizen.Wait(500)
  146. TaskVehicleTempAction(playerPed, veh, 8, 100)
  147. ShakeGameplayCam('MEDIUM_EXPLOSION_SHAKE', 0.07)
  148. Citizen.Wait(500)
  149. ShakeGameplayCam('MEDIUM_EXPLOSION_SHAKE', 0.07)
  150. else
  151. Citizen.Wait(2500)
  152. ShakeGameplayCam('MEDIUM_EXPLOSION_SHAKE', 0.07)
  153. end
  154. elseif stress >= 600000 then -- %60 altındayken araç sürüşüne bir etkisi olmuyor // Below ½60 no effect to driving
  155. Citizen.Wait(3500) -- sıklık // frequency
  156. ShakeGameplayCam('MEDIUM_EXPLOSION_SHAKE', 0.07) -- efekt // effect
  157. elseif stress >= 500000 then
  158. Citizen.Wait(4500)
  159. ShakeGameplayCam('MEDIUM_EXPLOSION_SHAKE', 0.07)
  160. elseif stress >= 350000 then
  161. Citizen.Wait(5500)
  162. ShakeGameplayCam('MEDIUM_EXPLOSION_SHAKE', 0.05)
  163. elseif stress >= 200000 then
  164. Citizen.Wait(6500)
  165. ShakeGameplayCam('MEDIUM_EXPLOSION_SHAKE', 0.03)
  166. end
  167. end
  168. end)
  169. end)
  170.  
  171. AddEventHandler('esx_basicneeds:isEating', function(cb)
  172. cb(IsAnimated)
  173. end)
  174.  
  175. RegisterNetEvent('esx_basicneeds:onEat')
  176. AddEventHandler('esx_basicneeds:onEat', function(prop_name)
  177. if not IsAnimated then
  178. prop_name = prop_name or 'prop_cs_burger_01'
  179. IsAnimated = true
  180.  
  181. Citizen.CreateThread(function()
  182. local playerPed = PlayerPedId()
  183. local x,y,z = table.unpack(GetEntityCoords(playerPed))
  184. local prop = CreateObject(GetHashKey(prop_name), x, y, z + 0.2, true, true, true)
  185. local boneIndex = GetPedBoneIndex(playerPed, 18905)
  186. AttachEntityToEntity(prop, playerPed, boneIndex, 0.12, 0.028, 0.001, 10.0, 175.0, 0.0, true, true, false, true, 1, true)
  187.  
  188. ESX.Streaming.RequestAnimDict('mp_player_inteat@burger', function()
  189. TaskPlayAnim(playerPed, 'mp_player_inteat@burger', 'mp_player_int_eat_burger_fp', 8.0, -8, -1, 49, 0, 0, 0, 0)
  190. exports['progressBars']:startUI(2700, "Yemek tüketiliyor.")
  191. Citizen.Wait(3000)
  192. IsAnimated = false
  193. ClearPedSecondaryTask(playerPed)
  194. DeleteObject(prop)
  195. end)
  196. end)
  197.  
  198. end
  199. end)
  200.  
  201. RegisterNetEvent('esx_basicneeds:onDrink')
  202. AddEventHandler('esx_basicneeds:onDrink', function(prop_name)
  203. if not IsAnimated then
  204. prop_name = prop_name or 'prop_ld_flow_bottle'
  205. IsAnimated = true
  206.  
  207. Citizen.CreateThread(function()
  208. local playerPed = PlayerPedId()
  209. local x,y,z = table.unpack(GetEntityCoords(playerPed))
  210. local prop = CreateObject(GetHashKey(prop_name), x, y, z + 0.2, true, true, true)
  211. local boneIndex = GetPedBoneIndex(playerPed, 18905)
  212. AttachEntityToEntity(prop, playerPed, boneIndex, 0.12, 0.028, 0.001, 10.0, 175.0, 0.0, true, true, false, true, 1, true)
  213.  
  214. ESX.Streaming.RequestAnimDict('mp_player_intdrink', function()
  215. TaskPlayAnim(playerPed, 'mp_player_intdrink', 'loop_bottle', 8.0, -8, -1, 49, 0, 0, 0, 0)
  216. exports['progressBars']:startUI(3100, "Yemek tüketiliyor.")
  217. Citizen.Wait(3000)
  218. IsAnimated = false
  219. ClearPedSecondaryTask(playerPed)
  220. DeleteObject(prop)
  221. end)
  222. end)
  223.  
  224. end
  225. end)
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement