tweak(server): character saving and unloading

This commit is contained in:
Andyyy7666
2023-08-27 17:59:22 +02:00
parent 32801873f6
commit 0ded085a28
2 changed files with 9 additions and 8 deletions

View File

@@ -102,16 +102,14 @@ end)
AddEventHandler("playerDropped", function() AddEventHandler("playerDropped", function()
local src = source local src = source
local char = NDCore.players[src] local char = NDCore.players[src]
if char then if char then char.unload() end
char.unload()
end
PlayersInfo[src] = nil PlayersInfo[src] = nil
end) end)
AddEventHandler("onResourceStop", function(name) AddEventHandler("onResourceStop", function(name)
if name ~= resourceName then return end if name ~= resourceName then return end
for src, player in pairs(NDCore.players) do for _, player in pairs(NDCore.players) do
player.save() player.unload()
Wait(10) Wait(10)
end end
end) end)

View File

@@ -145,14 +145,16 @@ local function createCharacterTable(info)
w = heading w = heading
}) })
end end
self.triggerEvent("ND:characterUnloaded")
TriggerEvent("ND:characterUnloaded", self.source, self) TriggerEvent("ND:characterUnloaded", self.source, self)
self.save() local saved = self.save()
NDCore.players[self.source] = nil NDCore.players[self.source] = nil
return saved
end end
-- Save character information to database -- Save character information to database
function self.save() function self.save()
MySQL.update.await("UPDATE nd_characters SET name = ?, firstname = ?, lastname = ?, dob = ?, gender = ?, cash = ?, bank = ?, groups = ?, metadata = ?, inventory = ? WHERE charid = ?", { local affectedRows = MySQL.update.await("UPDATE nd_characters SET name = ?, firstname = ?, lastname = ?, dob = ?, gender = ?, cash = ?, bank = ?, groups = ?, metadata = ?, inventory = ? WHERE charid = ?", {
self.name, self.name,
self.firstname, self.firstname,
self.lastname, self.lastname,
@@ -163,8 +165,9 @@ local function createCharacterTable(info)
json.encode(self.groups), json.encode(self.groups),
json.encode(self.metadata), json.encode(self.metadata),
json.encode(self.inventory), json.encode(self.inventory),
self.id, self.id
}) })
return affectedRows > 0
end end
---Create a license/permit for the character ---Create a license/permit for the character