aboutsummaryrefslogtreecommitdiff
path: root/gamemode/core/database/sv_queries.lua
diff options
context:
space:
mode:
authorAlexander Pickering <alexandermpickering@gmail.com>2017-04-02 20:05:56 -0400
committerAlexander Pickering <alexandermpickering@gmail.com>2017-04-02 20:05:56 -0400
commit191ba416c8b611ea4901cead138789a357c56134 (patch)
treeb30ae3473c16028a14d3ed0c80633f360cc1c914 /gamemode/core/database/sv_queries.lua
parenta22cbeddc5f8fb61e87a30aa14ba354de5cf4431 (diff)
downloadartery-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.lua51
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