diff --git a/__resource.lua b/__resource.lua index 47c3023..4b9e337 100644 --- a/__resource.lua +++ b/__resource.lua @@ -13,4 +13,8 @@ client_scripts { "spawning/cl_player.lua", "spawning/cl_zombies.lua", "spawning/cl_savezones.lua" +} + +server_scripts{ + "spawning/sv_savezones.lua" } \ No newline at end of file diff --git a/spawning/cl_savezones.lua b/spawning/cl_savezones.lua index 404a686..661c4fc 100644 --- a/spawning/cl_savezones.lua +++ b/spawning/cl_savezones.lua @@ -55,6 +55,7 @@ local function HandleGuardSpawning() for _, safezone in ipairs(Config.Spawning.Safezones.SAFEZONES) do for _, guardSpawn in ipairs(safezone.GuardSpawns) do + if guardSpawn.Id and not spawnedIds[guardSpawn.Id] then SpawnGuard(guardSpawn) end @@ -62,12 +63,9 @@ local function HandleGuardSpawning() end end -Utils.CreateLoadedInThread(function() - Wait(250) - - if Player.IsSpawnHost() then - HandleGuardSpawning() - end +RegisterNetEvent("GuardSpawn") +AddEventHandler("GuardSpawn", function() + HandleGuardSpawning() end) Citizen.CreateThread(function() @@ -88,4 +86,4 @@ Citizen.CreateThread(function() id = id + 1 end end -end) \ No newline at end of file +end) diff --git a/spawning/cl_zombies.lua b/spawning/cl_zombies.lua index b2271ef..29dbfdb 100644 --- a/spawning/cl_zombies.lua +++ b/spawning/cl_zombies.lua @@ -180,4 +180,4 @@ Utils.CreateLoadedInThread(function() end end end -end) \ No newline at end of file +end) diff --git a/spawning/sv_savezones.lua b/spawning/sv_savezones.lua new file mode 100644 index 0000000..246ac65 --- /dev/null +++ b/spawning/sv_savezones.lua @@ -0,0 +1,15 @@ +Citizen.CreateThread(function() + while true do + Citizen.Wait(500) + local count = 0 + local spawned = false + players = GetPlayers() + for _ in ipairs(players) do + count = count + 1 + if count == 1 and spawned == false then + TriggerClientEvent("GuardSpawn", -1) + spawned = true + end + end +end +end)