-
Notifications
You must be signed in to change notification settings - Fork 1
Expand file tree
/
Copy pathclient.lua
More file actions
53 lines (47 loc) · 2.16 KB
/
client.lua
File metadata and controls
53 lines (47 loc) · 2.16 KB
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
RegisterNetEvent('explodeMine')
AddEventHandler('explodeMine', function(mineCoords)
AddExplosion(mineCoords.x, mineCoords.y, mineCoords.z, 40, 10.0, true, false, 2.0)
end)
local explodedMines = {}
local function IsVehicleNearMine(vehicle, mineHashes)
local vehiclePos = GetEntityCoords(vehicle)
for _, mineHash in ipairs(mineHashes) do
local mine = GetClosestObjectOfType(vehiclePos, Config.DetectionRadius, mineHash, false, false, false)
if mine and DoesEntityExist(mine) and not explodedMines[mine] then
explodedMines[mine] = true
local mineCoords = GetEntityCoords(mine)
TriggerServerEvent('detectMine', mineCoords, NetworkGetNetworkIdFromEntity(vehicle))
local vehicleModel = GetEntityModel(vehicle)
local vehicleName = GetDisplayNameFromVehicleModel(vehicleModel)
local playerServerId = GetPlayerServerId(NetworkGetEntityOwner(vehicle))
TriggerServerEvent('logMineExplosion', playerServerId, vehicleName, mineHash, mineCoords)
return true
end
end
return false
end
Citizen.CreateThread(function()
while true do
Citizen.Wait(500)
local playerPed = PlayerPedId()
if IsPedInAnyVehicle(playerPed, false) then
local vehicle = GetVehiclePedIsIn(playerPed, false)
local vehicleModel = GetEntityModel(vehicle)
local vehicleName = GetDisplayNameFromVehicleModel(vehicleModel):lower()
for _, vName in ipairs(Config.Vehicles) do
if vName == vehicleName then
local mineHashes = {}
for _, mine in ipairs(Config.Mines) do
table.insert(mineHashes, mine.hash)
end
if IsVehicleNearMine(vehicle, mineHashes) then
SetVehicleEngineHealth(vehicle, -4000)
SetVehiclePetrolTankHealth(vehicle, -4000)
NetworkExplodeVehicle(vehicle)
break
end
end
end
end
end
end)