diff --git a/server/main.lua b/server/main.lua index 8f818bd..c448621 100644 --- a/server/main.lua +++ b/server/main.lua @@ -102,16 +102,14 @@ end) AddEventHandler("playerDropped", function() local src = source local char = NDCore.players[src] - if char then - char.unload() - end + if char then char.unload() end PlayersInfo[src] = nil end) AddEventHandler("onResourceStop", function(name) if name ~= resourceName then return end - for src, player in pairs(NDCore.players) do - player.save() + for _, player in pairs(NDCore.players) do + player.unload() Wait(10) end end) diff --git a/server/player.lua b/server/player.lua index 7c080dc..c92a32c 100644 --- a/server/player.lua +++ b/server/player.lua @@ -145,14 +145,16 @@ local function createCharacterTable(info) w = heading }) end + self.triggerEvent("ND:characterUnloaded") TriggerEvent("ND:characterUnloaded", self.source, self) - self.save() + local saved = self.save() NDCore.players[self.source] = nil + return saved end -- Save character information to database 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.firstname, self.lastname, @@ -163,8 +165,9 @@ local function createCharacterTable(info) json.encode(self.groups), json.encode(self.metadata), json.encode(self.inventory), - self.id, + self.id }) + return affectedRows > 0 end ---Create a license/permit for the character