mirror of
https://github.com/ND-Framework/ND_Core.git
synced 2026-08-17 05:56:01 +01:00
tweak(server): character saving and unloading
This commit is contained in:
@@ -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)
|
||||||
|
|||||||
@@ -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
|
||||||
|
|||||||
Reference in New Issue
Block a user