1
0
mirror of https://github.com/citizenfx/cfx-server-data.git synced 2025-01-06 21:02:57 +08:00

Compare commits

...

3 Commits

Author SHA1 Message Date
リーフストーム
dd38bd0192
Merge pull request #105 from ESX-Org/master
Make spawnmanager exports available synchronously
2020-06-04 14:10:49 +02:00
Blue
2998a23ced
fix playernames serverside memory leak (#106)
* Update playernames_sv.lua

* Update playernames_cl.lua

* Update playernames_sv.lua

* clean up
2020-06-04 14:10:25 +02:00
Jérémie N'gadi
296226b734 Make spawnmanager exports available synchrounously 2020-06-03 12:47:49 +02:00
4 changed files with 27 additions and 18 deletions

View File

@ -46,9 +46,9 @@ function updatePlayerNames()
local localCoords = GetEntityCoords(PlayerPedId())
-- for each valid player index
for i = 0, 255 do
for _, i in ipairs(GetActivePlayers()) do
-- if the player exists
if NetworkIsPlayerActive(i) and i ~= PlayerId() then
if i ~= PlayerId() then
-- get their ped
local ped = GetPlayerPed(i)
local pedCoords = GetEntityCoords(ped)
@ -188,4 +188,4 @@ SetTimeout(0, function()
end)
-- run this function every frame
SetTimeout(0, updatePlayerNames)
SetTimeout(0, updatePlayerNames)

View File

@ -1,6 +1,8 @@
local curTemplate
local curTags = {}
local activePlayers = {}
local function detectUpdates()
SetTimeout(500, detectUpdates)
@ -14,23 +16,31 @@ local function detectUpdates()
template = GetConvar('playerNames_svTemplate', '[{{id}}] {{name}}')
for _, v in ipairs(GetPlayers()) do
for v, _ in pairs(activePlayers) do
local newTag = formatPlayerNameTag(v, template)
if newTag ~= curTags[v] then
setName(v, newTag)
curTags[v] = newTag
end
end
for i, tag in pairs(curTags) do
if not activePlayers[i] then
curTags[i] = nil -- in case curTags doesnt get cleared when the player left, clear it now.
end
end
end
AddEventHandler('playerDropped', function()
curTags[source] = nil
activePlayers[source] = nil
end)
RegisterNetEvent('playernames:init')
AddEventHandler('playernames:init', function()
reconfigure(source)
activePlayers[source] = true
end)
SetTimeout(500, detectUpdates)
detectUpdates()
detectUpdates()

View File

@ -1,14 +1,5 @@
client_script 'spawnmanager.lua'
export 'getRandomSpawnPoint'
export 'spawnPlayer'
export 'addSpawnPoint'
export 'removeSpawnPoint'
export 'loadSpawns'
export 'setAutoSpawn'
export 'setAutoSpawnCallback'
export 'forceRespawn'
fx_version 'adamant'
games { 'rdr3', 'gta5' }

View File

@ -369,3 +369,11 @@ function forceRespawn()
spawnLock = false
respawnForced = true
end
exports('spawnPlayer', spawnPlayer)
exports('addSpawnPoint', addSpawnPoint)
exports('removeSpawnPoint', removeSpawnPoint)
exports('loadSpawns', loadSpawns)
exports('setAutoSpawn', setAutoSpawn)
exports('setAutoSpawnCallback', setAutoSpawnCallback)
exports('forceRespawn', forceRespawn)