Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- --config
- radius = 4.0 -- i think ~3.7 is perfect, but works fine with 4.0
- DelTime = 45000 -- 45000ms = 45s
- --function
- function DeleteE(ent)
- return Citizen.InvokeNative(0x539E0AE3E6634B9F, Citizen.PointerValueIntInitialized(ent))
- end
- function SetNoLonger(obj)
- return Citizen.InvokeNative(0x3AE22DEB5BA5A3E6, Citizen.PointerValueIntInitialized(obj))
- end
- --IS_VEHICLE_TYRE_BURST(Vehicle vehicle, int wheelID, BOOL completely)
- pos = nil
- SpikeC = {}
- Citizen.CreateThread(function()
- for i = 1,200 do
- SpikeC[i] = 0
- end
- end)
- spike = {}
- trpos = {}
- trpos.x = {}
- trpos.y = {}
- trpos.z = {}
- RegisterNetEvent("spk_strip")
- AddEventHandler("spk_strip", function()
- Citizen.CreateThread(function()
- prop_spike = GetHashKey("prop_tyre_spike_01")
- SimulatePlayerInputGait(PlayerId(), 100.0, 2000, 1.0, true, false)
- for i = #spike, #spike+15 do
- spike[i] = CreateObject(prop_spike, pos.x , pos.y, pos.z - 1.3, true, true ,true)
- PlaceObjectOnGroundProperly(spike[i])
- FreezeEntityPosition(spike[i], true)
- --SetEntityCollision(spike[i], false, true)
- Citizen.Wait(100)
- end
- local pos = GetEntityCoords(spike[#spike-5])
- TriggerServerEvent("SyncSV",PlayerId(),spike[#spike-5], pos.x, pos.y, pos.z) -- Trigger Server Event
- Citizen.Trace("SEND:"..spike[#spike-5]..'.\n') -- #DEBUG
- -- wait --
- Citizen.Wait(DelTime)
- for i = 1,#spike do
- Citizen.Wait(50)
- SetEntityAsMissionEntity(spike[i], true, true)
- DeleteE(spike[i])
- end
- TriggerServerEvent("SyncSVdel",PlayerId())
- end)
- end)
- RegisterNetEvent("SyncCL")
- AddEventHandler("SyncCL", function(t,sp, x,y,z)
- SpikeC[#SpikeC + 1] = sp
- trpos.x[#trpos.x+1] = x
- trpos.y[#trpos.y+1] = y
- trpos.z[#trpos.z+1] = z
- Citizen.Trace("RECIVE: "..sp..'.\n') -- #DEBUG
- end)
- RegisterNetEvent("SyncCLdel")
- AddEventHandler("SyncCLdel", function(t)
- for i = 1,#SpikeC do
- SpikeC[i] = 0
- end
- for i = 1,#trpos.x do
- trpos.x[i] = nil
- end
- for i = 1,#trpos.y do
- trpos.y[i] = nil
- end
- for i = 1,#trpos.z do
- trpos.z[i] = nil
- end
- Citizen.Trace("SYNC:Spike deleted\n") -- #DEBUG
- end)
- -- IsVehicleTyreBurst(cveh, 0, true)
- Citizen.CreateThread(function()
- while true do
- Citizen.Wait(0)
- pos = GetEntityCoords(GetPlayerPed(-1))
- for i = 1,#SpikeC do
- if SpikeC[i] ~= 0 then
- cveh = GetVehiclePedIsIn(GetPlayerPed(-1), false)
- if DoesEntityExist(cveh) then
- SetVehicleTyreBurst(cveh, true)
- for k = 1,#trpos.x do
- 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
- for l = 0,7 do
- if not(IsVehicleTyreBurst(cveh, l, true)) then
- SetVehicleTyreBurst(cveh, l, true, 1000.0)
- end
- end
- end
- end
- end
- end
- end
- end
- end)
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement