Skip to content

Commit a061ea4

Browse files
committed
added health system for jammer [disabled]
1 parent e044fb5 commit a061ea4

File tree

2 files changed

+50
-22
lines changed

2 files changed

+50
-22
lines changed

client/event.lua

+20-3
Original file line numberDiff line numberDiff line change
@@ -60,13 +60,22 @@ RegisterNetEvent('mm_radio:client:usejammer', function()
6060
local forward = GetEntityForwardVector(cache.ped)
6161
local x, y, z = table.unpack(plyCoords + forward * 1.0)
6262
local id = math.random(1000, 9999)
63-
TriggerServerEvent('mm_radio:server:spawnobject', Shared.Jammer.model, vec4(x, y, z - 1.0, GetEntityHeading(cache.ped)), id, Shared.Jammer.range, {}, true)
63+
TriggerServerEvent('mm_radio:server:spawnobject', {
64+
coords = vec4(x, y, z - 1.0, GetEntityHeading(cache.ped)),
65+
id = id,
66+
range = Shared.Jammer.range.default,
67+
allowedChannels = {},
68+
canRemove = true,
69+
canDamage = true
70+
})
6471
end)
6572

6673
RegisterNetEvent('mm_radio:client:syncobject', function(data)
74+
local entity = NetworkGetEntityFromNetworkId(data.object)
75+
SetEntityCanBeDamaged(entity, data.canDamage)
6776
Radio.jammer[#Radio.jammer+1] = {
6877
id = data.id,
69-
object = data.obj,
78+
entity = entity,
7079
coords = data.coords,
7180
allowedChannels = data.allowedChannels,
7281
range = data.range,
@@ -77,14 +86,17 @@ RegisterNetEvent('mm_radio:client:syncobject', function(data)
7786
radius = data.range,
7887
debug = Shared.Debug,
7988
jammerid = data.id,
89+
entity = entity,
8090
onEnter = OnEnterJammerZone,
91+
--inside = OnInsideJammerZone,
8192
onExit = OnExitJammerZone
8293
}),
8394
zoneJammer = lib.zones.sphere({
8495
coords = data.coords,
8596
radius = 2.5,
8697
debug = Shared.Debug,
8798
jammerid = data.id,
99+
entity = entity,
88100
onEnter = OnEnterJammer,
89101
onExit = OnExitJammer
90102
})
@@ -96,13 +108,16 @@ RegisterNetEvent('mm_radio:client:changeJammerRange', function(id, range)
96108
local entity = Radio.jammer[i]
97109
if entity.id == id then
98110
entity.zone:remove()
111+
Wait(1000)
99112
entity.range = range
100113
entity.zone = lib.zones.sphere({
101114
coords = entity.coords,
102115
radius = range,
103116
debug = Shared.Debug,
104117
jammerid = id,
118+
entity = entity.entity,
105119
onEnter = OnEnterJammerZone,
120+
--inside = OnInsideJammerZone,
106121
onExit = OnExitJammerZone
107122
})
108123
break
@@ -143,7 +158,9 @@ RegisterNetEvent('mm_radio:client:togglejammer', function(id, state)
143158
radius = entity.range,
144159
debug = Shared.Debug,
145160
jammerid = id,
161+
entity = NetworkGetEntityFromNetworkId(entity.object),
146162
onEnter = OnEnterJammerZone,
163+
--inside = OnInsideJammerZone,
147164
onExit = OnExitJammerZone
148165
})
149166

@@ -209,7 +226,7 @@ RegisterNetEvent('bl_bridge:client:playerLoaded', function()
209226
TriggerServerEvent('mm_radio:server:createdefaultjammer')
210227
local jammer = lib.callback.await('mm_radio:server:getjammer', false)
211228
for i = 1, #jammer do
212-
jammer[i].obj = NetworkGetNetworkIdFromEntity(jammer[i].entity)
229+
jammer[i].object = NetworkGetNetworkIdFromEntity(jammer[i].entity)
213230
TriggerEvent('mm_radio:client:syncobject', jammer[i])
214231
end
215232
end)

server/main.lua

+30-19
Original file line numberDiff line numberDiff line change
@@ -25,34 +25,36 @@ RegisterNetEvent('mm_radio:server:rechargeBattery', function()
2525
player.removeItem('radiocell', 1)
2626
end)
2727

28-
RegisterNetEvent('mm_radio:server:spawnobject', function(model, coords, id, range, allowedChannels, canRemove)
28+
RegisterNetEvent('mm_radio:server:spawnobject', function(data)
2929
local src = source
3030
CreateThread(function()
31-
local entity = CreateObject(joaat(model), coords.x, coords.y, coords.z, true, true, false)
31+
local entity = CreateObject(joaat(Shared.Jammer.model), data.coords.x, data.coords.y, data.coords.z, true, true, false)
3232
while not DoesEntityExist(entity) do Wait(50) end
33-
SetEntityHeading(entity, coords.w)
33+
SetEntityHeading(entity, data.coords.w)
3434
local netobj = NetworkGetNetworkIdFromEntity(entity)
35-
if canRemove then
35+
if data.canRemove then
3636
local player = Framework.core.GetPlayer(src)
3737
player.removeItem('jammer', 1)
3838
end
3939
TriggerClientEvent('mm_radio:client:syncobject', -1, {
4040
enable = true,
41-
obj = netobj,
42-
coords = coords,
43-
id = id,
44-
range = range or Shared.Jammer.distance,
45-
allowedChannels = allowedChannels or {},
46-
canRemove = canRemove
41+
object = netobj,
42+
coords = data.coords,
43+
id = data.id,
44+
range = data.range or Shared.Jammer.range.default,
45+
allowedChannels = data.allowedChannels or {},
46+
canRemove = data.canRemove,
47+
canDamage = data.canDamage
4748
})
4849
jammer[#jammer+1] = {
4950
enable = true,
5051
entity = entity,
51-
id = id,
52-
coords = coords,
53-
range = range or Shared.Jammer.distance,
54-
allowedChannels = allowedChannels or {},
55-
canRemove = canRemove
52+
id = data.id,
53+
coords = data.coords,
54+
range = data.range or Shared.Jammer.range.default,
55+
allowedChannels = data.allowedChannels or {},
56+
canRemove = data.canRemove,
57+
canDamage = data.canDamage
5658
}
5759
end)
5860
end)
@@ -68,7 +70,7 @@ RegisterNetEvent('mm_radio:server:togglejammer', function(id)
6870
end
6971
end)
7072

71-
RegisterNetEvent('mm_radio:server:removejammer', function(id)
73+
RegisterNetEvent('mm_radio:server:removejammer', function(id, isDamaged)
7274
local src = source
7375
CreateThread(function()
7476
for i=1, #jammer do
@@ -77,8 +79,10 @@ RegisterNetEvent('mm_radio:server:removejammer', function(id)
7779
DeleteEntity(entity.entity)
7880
TriggerClientEvent('mm_radio:client:removejammer', -1, id)
7981
table.remove(jammer, i)
80-
local player = Framework.core.GetPlayer(src)
81-
player.addItem('jammer', 1)
82+
if not isDamaged then
83+
local player = Framework.core.GetPlayer(src)
84+
player.addItem('jammer', 1)
85+
end
8286
break
8387
end
8488
end
@@ -164,7 +168,14 @@ RegisterNetEvent("mm_radio:server:createdefaultjammer", function()
164168
if spawnedDefaultJammer then return end
165169
for i=1, #Shared.Jammer.default do
166170
local data = Shared.Jammer.default[i]
167-
TriggerEvent('mm_radio:server:spawnobject', Shared.Jammer.model, data.coords, data.id, data.range, data.allowedChannels, false)
171+
TriggerEvent('mm_radio:server:spawnobject', {
172+
coords = data.coords,
173+
id = data.id,
174+
range = data.range,
175+
allowedChannels = data.allowedChannels,
176+
canRemove = false,
177+
canDamage = data.canDamage
178+
})
168179
end
169180
spawnedDefaultJammer = true
170181
end)

0 commit comments

Comments
 (0)