Advertisement
Guest User

Untitled

a guest
Mar 29th, 2017
252
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 2.99 KB | None | 0 0
  1. --config
  2. radius = 4.0 -- i think ~3.7 is perfect, but works fine with 4.0
  3. DelTime = 45000 -- 45000ms = 45s
  4.  
  5. --function
  6. function DeleteE(ent)
  7. return Citizen.InvokeNative(0x539E0AE3E6634B9F, Citizen.PointerValueIntInitialized(ent))
  8. end
  9.  
  10. function SetNoLonger(obj)
  11. return Citizen.InvokeNative(0x3AE22DEB5BA5A3E6, Citizen.PointerValueIntInitialized(obj))
  12. end
  13.  
  14. --IS_VEHICLE_TYRE_BURST(Vehicle vehicle, int wheelID, BOOL completely)
  15. pos = nil
  16. SpikeC = {}
  17. Citizen.CreateThread(function()
  18. for i = 1,200 do
  19. SpikeC[i] = 0
  20. end
  21. end)
  22. spike = {}
  23. trpos = {}
  24. trpos.x = {}
  25. trpos.y = {}
  26. trpos.z = {}
  27. RegisterNetEvent("spk_strip")
  28. AddEventHandler("spk_strip", function()
  29. Citizen.CreateThread(function()
  30. prop_spike = GetHashKey("prop_tyre_spike_01")
  31.  
  32. SimulatePlayerInputGait(PlayerId(), 100.0, 2000, 1.0, true, false)
  33. for i = #spike, #spike+15 do
  34. spike[i] = CreateObject(prop_spike, pos.x , pos.y, pos.z - 1.3, true, true ,true)
  35. PlaceObjectOnGroundProperly(spike[i])
  36. FreezeEntityPosition(spike[i], true)
  37. --SetEntityCollision(spike[i], false, true)
  38. Citizen.Wait(100)
  39. end
  40. local pos = GetEntityCoords(spike[#spike-5])
  41.  
  42. TriggerServerEvent("SyncSV",PlayerId(),spike[#spike-5], pos.x, pos.y, pos.z) -- Trigger Server Event
  43.  
  44. Citizen.Trace("SEND:"..spike[#spike-5]..'.\n') -- #DEBUG
  45. -- wait --
  46. Citizen.Wait(DelTime)
  47. for i = 1,#spike do
  48. Citizen.Wait(50)
  49. SetEntityAsMissionEntity(spike[i], true, true)
  50. DeleteE(spike[i])
  51. end
  52.  
  53. TriggerServerEvent("SyncSVdel",PlayerId())
  54. end)
  55. end)
  56.  
  57. RegisterNetEvent("SyncCL")
  58. AddEventHandler("SyncCL", function(t,sp, x,y,z)
  59. SpikeC[#SpikeC + 1] = sp
  60. trpos.x[#trpos.x+1] = x
  61. trpos.y[#trpos.y+1] = y
  62. trpos.z[#trpos.z+1] = z
  63. Citizen.Trace("RECIVE: "..sp..'.\n') -- #DEBUG
  64. end)
  65. RegisterNetEvent("SyncCLdel")
  66. AddEventHandler("SyncCLdel", function(t)
  67. for i = 1,#SpikeC do
  68. SpikeC[i] = 0
  69. end
  70. for i = 1,#trpos.x do
  71. trpos.x[i] = nil
  72. end
  73. for i = 1,#trpos.y do
  74. trpos.y[i] = nil
  75. end
  76. for i = 1,#trpos.z do
  77. trpos.z[i] = nil
  78. end
  79. Citizen.Trace("SYNC:Spike deleted\n") -- #DEBUG
  80. end)
  81. -- IsVehicleTyreBurst(cveh, 0, true)
  82. Citizen.CreateThread(function()
  83.  
  84. while true do
  85.  
  86. Citizen.Wait(0)
  87.  
  88. pos = GetEntityCoords(GetPlayerPed(-1))
  89.  
  90. for i = 1,#SpikeC do
  91.  
  92. if SpikeC[i] ~= 0 then
  93.  
  94. cveh = GetVehiclePedIsIn(GetPlayerPed(-1), false)
  95.  
  96. if DoesEntityExist(cveh) then
  97.  
  98. SetVehicleTyreBurst(cveh, true)
  99.  
  100. for k = 1,#trpos.x do
  101.  
  102. if IsEntityInArea(cveh, trpos.x[k] + radius, trpos.y[k] + radius, trpos.z[k] + 3.0, trpos.x[k] - radius, trpos.y[k] - radius, trpos.z[k] - 3.0) then
  103.  
  104. for l = 0,7 do
  105.  
  106. if not(IsVehicleTyreBurst(cveh, l, true)) then
  107.  
  108. SetVehicleTyreBurst(cveh, l, true, 1000.0)
  109.  
  110. end
  111. end
  112. end
  113. end
  114. end
  115. end
  116. end
  117. end
  118. end)
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement