Advertisement
Guest User

Untitled

a guest
May 24th, 2018
101
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 2.36 KB | None | 0 0
  1. ESX = nil
  2. local hasShot = false
  3. local playerPed = nil
  4. local GunpowderSaveTime = 15 * 60 * 1000 -- krutstänk sparas 15 minuter standard
  5.  
  6. ----- Kommando
  7.  
  8. RegisterCommand("guntest", function(source)
  9. TriggerEvent("esx_guntest:checkGun", source)
  10. end, false)
  11.  
  12.  
  13. -- Koll om närmaste spelaren har krutstänk
  14. RegisterNetEvent('esx_guntest:checkGun')
  15. AddEventHandler('esx_guntest:checkGun', function(source)
  16. local player, distance = ESX.Game.GetClosestPlayer()
  17. if distance ~= -1 and distance <= 3.0 then
  18. TaskStartScenarioInPlace(playerPed, "CODE_HUMAN_MEDIC_KNEEL", 0, true)
  19.  
  20. Citizen.Wait(10000)
  21.  
  22. ClearPedTasksImmediately(playerPed)
  23.  
  24. -- Fråga servern om spelaren man undersöker (närmaste spelaren) har krutstänk på sig
  25. ESX.TriggerServerCallback('esx_guntest:hasPlayerRecentlyFiredAGun', function(hasGunpowder)
  26. if hasGunpowder then
  27. ESX.ShowNotification('Personen har krutstänk på sina kläder')
  28. else
  29. ESX.ShowNotification('Inga spår av krut hittades')
  30. end
  31. end, GetPlayerServerId(player))
  32. else
  33. ESX.ShowNotification('Ingen person i närheten.')
  34. end
  35. end)
  36.  
  37.  
  38. -- First load
  39. Citizen.CreateThread(function()
  40. while ESX == nil do
  41. TriggerEvent('esx:getSharedObject', function(obj) ESX = obj end)
  42. Citizen.Wait(0)
  43. end
  44.  
  45. -- Hämta spelarens ped en gång
  46. playerPed = GetPlayerPed(-1)
  47. end)
  48.  
  49. -- Main thread
  50. Citizen.CreateThread(function()
  51. while true do
  52. Citizen.Wait(0)
  53.  
  54. if IsPedShooting(GetPlayerPed(-1)) then
  55. hasShot = true
  56. -- Om man skjuter så lagra status på server 1 gång
  57. TriggerServerEvent('esx_guntest:storePlayerGunpowderStatus')
  58. end
  59.  
  60. if hasShot then
  61. -- Om man har skjutit så vänta en stund och ta sedan bort statusen
  62. Citizen.Wait(GunpowderSaveTime)
  63. hasShot = false
  64. TriggerServerEvent('esx_guntest:removePlayerGunpowderStatus')
  65. end
  66.  
  67. -- När man är nära en person så körs en serverfunktion 1 gång i framen, kommer ta extremt mycket på servern
  68. --[[if (hasShot) then
  69. local player, distance = ESX.Game.GetClosestPlayer()
  70. if distance ~= -1 and distance <= 3.0 then
  71. TriggerServerEvent('esx_guntest:storeStatusTrue', GetPlayerServerId(player))
  72. end
  73. else
  74. TriggerServerEvent('esx_guntest:storeStatusFalse', GetPlayerServerId(player))
  75. end]]
  76. end
  77. end)
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement