Advertisement
Guest User

Untitled

a guest
Dec 29th, 2019
160
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 4.67 KB | None | 0 0
  1. function vRP.getHunger(user_id)
  2. local data = vRP.getUserDataTable(user_id)
  3. if data then
  4. return data.hunger
  5. end
  6.  
  7. return 0
  8. end
  9.  
  10. function vRP.getThirst(user_id)
  11. local data = vRP.getUserDataTable(user_id)
  12. if data then
  13. return data.thirst
  14. end
  15.  
  16. return 0
  17. end
  18.  
  19. function vRP.setHunger(user_id,value)
  20. local data = vRP.getUserDataTable(user_id)
  21. if data then
  22. data.hunger = value
  23. if data.hunger < 0 then data.hunger = 0
  24. elseif data.hunger > 100 then data.hunger = 100
  25. end
  26.  
  27. -- update bar
  28. local source = vRP.getUserSource(user_id)
  29. TriggerClientEvent("vrp_betterhud:updateBasics", source, data.hunger, data.thirst)
  30. --vRPclient._setProgressBarValue(source, "vRP:hunger",data.hunger)
  31. if data.hunger >= 100 then
  32. -- vRPclient._setProgressBarText(source,"vRP:hunger",lang.survival.starving())
  33. else
  34. --vRPclient._setProgressBarText(source,"vRP:hunger","")
  35. end
  36. end
  37. end
  38.  
  39. function vRP.setThirst(user_id,value)
  40. local data = vRP.getUserDataTable(user_id)
  41. if data then
  42. data.thirst = value
  43. if data.thirst < 0 then data.thirst = 0
  44. elseif data.thirst > 100 then data.thirst = 100
  45. end
  46.  
  47. -- update bar
  48. local source = vRP.getUserSource(user_id)
  49. TriggerClientEvent("vrp_betterhud:updateBasics", source, data.hunger, data.thirst)
  50. --vRPclient._setProgressBarValue(source, "vRP:thirst",data.thirst)
  51. if data.thirst >= 100 then
  52. --vRPclient._setProgressBarText(source,"vRP:thirst",lang.survival.thirsty())
  53. else
  54. --vRPclient._setProgressBarText(source,"vRP:thirst","")
  55. end
  56. end
  57. end
  58.  
  59. function vRP.varyHunger(user_id, variation)
  60. local data = vRP.getUserDataTable(user_id)
  61. if data then
  62. local was_starving = data.hunger >= 100
  63. data.hunger = data.hunger + variation
  64. local is_starving = data.hunger >= 100
  65.  
  66. -- apply overflow as damage
  67. local overflow = data.hunger-100
  68. if overflow > 0 then
  69. vRPclient._varyHealth(vRP.getUserSource(user_id),-overflow*cfg.overflow_damage_factor)
  70. end
  71.  
  72. if data.hunger < 0 then data.hunger = 0
  73. elseif data.hunger > 100 then data.hunger = 100
  74. end
  75.  
  76. -- set progress bar data
  77. local source = vRP.getUserSource(user_id)
  78. TriggerClientEvent("vrp_betterhud:updateBasics", source, data.hunger, data.thirst)
  79. --vRPclient._setProgressBarValue(source,"vRP:hunger",data.hunger)
  80. if was_starving and not is_starving then
  81. --vRPclient._setProgressBarText(source,"vRP:hunger","")
  82. elseif not was_starving and is_starving then
  83. --vRPclient._setProgressBarText(source,"vRP:hunger",lang.survival.starving())
  84. end
  85. end
  86. end
  87.  
  88. function vRP.varyThirst(user_id, variation)
  89. local data = vRP.getUserDataTable(user_id)
  90. if data then
  91. local was_thirsty = data.thirst >= 100
  92. data.thirst = data.thirst + variation
  93. local is_thirsty = data.thirst >= 100
  94.  
  95. -- apply overflow as damage
  96. local overflow = data.thirst-100
  97. if overflow > 0 then
  98. vRPclient._varyHealth(vRP.getUserSource(user_id),-overflow*cfg.overflow_damage_factor)
  99. end
  100.  
  101. if data.thirst < 0 then data.thirst = 0
  102. elseif data.thirst > 100 then data.thirst = 100
  103. end
  104.  
  105. -- set progress bar data
  106. local source = vRP.getUserSource(user_id)
  107. TriggerClientEvent("vrp_betterhud:updateBasics", source, data.hunger, data.thirst)
  108. --vRPclient._setProgressBarValue(source,"vRP:thirst",data.thirst)
  109. if was_thirsty and not is_thirsty then
  110. --vRPclient._setProgressBarText(source,"vRP:thirst","")
  111. elseif not was_thirsty and is_thirsty then
  112. --vRPclient._setProgressBarText(source,"vRP:thirst",lang.survival.thirsty())
  113. end
  114. end
  115. end
  116.  
  117. -- tunnel api (expose some functions to clients)
  118.  
  119. function tvRP.varyHunger(variation)
  120. local user_id = vRP.getUserId(source)
  121. if user_id then
  122. vRP.varyHunger(user_id,variation)
  123. end
  124. end
  125.  
  126. function tvRP.varyThirst(variation)
  127. local user_id = vRP.getUserId(source)
  128. if user_id then
  129. vRP.varyThirst(user_id,variation)
  130. end
  131. end
  132.  
  133. -- tasks
  134.  
  135. -- hunger/thirst increase
  136. function task_update()
  137. for k,v in pairs(vRP.users) do
  138. vRP.varyHunger(v,cfg.hunger_per_minute)
  139. vRP.varyThirst(v,cfg.thirst_per_minute)
  140. end
  141.  
  142. SetTimeout(60000,task_update)
  143. end
  144.  
  145. async(function()
  146. task_update()
  147. end)
  148.  
  149. -- handlers
  150.  
  151. -- init values
  152. AddEventHandler("vRP:playerJoin",function(user_id,source,name,last_login)
  153. local data = vRP.getUserDataTable(user_id)
  154. if data.hunger == nil then
  155. data.hunger = 0
  156. data.thirst = 0
  157. end
  158. end)
  159.  
  160. -- add survival progress bars on spawn
  161. AddEventHandler("vRP:playerSpawn",function(user_id, source, first_spawn)
  162. local data = vRP.getUserDataTable(user_id)
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement