diff options
| author | Alexander Pickering <alexandermpickering@gmail.com> | 2017-04-02 20:05:56 -0400 |
|---|---|---|
| committer | Alexander Pickering <alexandermpickering@gmail.com> | 2017-04-02 20:05:56 -0400 |
| commit | 191ba416c8b611ea4901cead138789a357c56134 (patch) | |
| tree | b30ae3473c16028a14d3ed0c80633f360cc1c914 /gamemode/core/database/sv_queries.lua | |
| parent | a22cbeddc5f8fb61e87a30aa14ba354de5cf4431 (diff) | |
| download | artery-191ba416c8b611ea4901cead138789a357c56134.tar.gz artery-191ba416c8b611ea4901cead138789a357c56134.tar.bz2 artery-191ba416c8b611ea4901cead138789a357c56134.zip | |
I finally had some time to work on this... dependency added on bobbleheadbob's zone addon
Diffstat (limited to 'gamemode/core/database/sv_queries.lua')
| -rw-r--r-- | gamemode/core/database/sv_queries.lua | 51 |
1 files changed, 51 insertions, 0 deletions
diff --git a/gamemode/core/database/sv_queries.lua b/gamemode/core/database/sv_queries.lua new file mode 100644 index 0000000..4e48255 --- /dev/null +++ b/gamemode/core/database/sv_queries.lua @@ -0,0 +1,51 @@ +--[[ + Some helper functions for building sql queries +]] + +local fn = nrequire("utility/fn.lua") +local track = nrequire("core/inventory/sv_invtracker.lua") + +local q = {} + +function q.serialize_player(ply) + local sdata = {} + local invs = {} + for k,v in pairs(ply.data.inventories) do + invs[k] = {v.Name,v:Serialize()} + end + sdata.inventories = invs + sdata.skills = ply.data.skills + sdata.quests = ply.data.quests + sdata.prayers = ply.data.prayers + sdata.credits = ply.data.credits + return util.TableToJSON(sdata) +end + +function q.deserialize_player(ply,str) + print("Deseriailizeing player",ply," with ", str) + track.ClearInventories(ply) + local tbl = util.JSONToTable(str) + local invs = tbl.inventories + print("Inventories was", invs) + PrintTable(invs) + for k,v in pairs(invs) do + print("Giveing inventory",v[1],v[2]) + track.GiveInventoryWithData(ply,v[1],v[2]) + end + ply.data = ply.data or {} + ply.data.skills = tbl.skills or {} + ply.data.quests = tbl.quests or {} + ply.data.prayers = tbl.prayers or {} + ply.data.credits = tbl.credits or 100 + print("After deserializeing player, their .data is",ply.data) + PrintTable(ply.data) + track.SendPlayerData(ply) +end + +function q.s_fmt(fmt,...) + local args = {...} + fn.map(args,MySQLite.SQLStr) + return string.format(fmt,unpack(args)) +end + +return q |
