From 522cdfc0e24b45cf02d8c22cef85fa32408f1376 Mon Sep 17 00:00:00 2001 From: Alexander Pickering Date: Mon, 21 Aug 2017 20:43:26 -0400 Subject: Fixed a bug with server teleporters Server teleports were not saveing to the database in the right format --- gamemode/core/database/sv_setup.lua | 7 ++++++- gamemode/core/mapstich/sv_mapstich.lua | 11 +++++------ gamemode/inventorysystem/shapedinventory/sh_shaped.lua | 4 +++- 3 files changed, 14 insertions(+), 8 deletions(-) diff --git a/gamemode/core/database/sv_setup.lua b/gamemode/core/database/sv_setup.lua index 6a7548d..6676735 100644 --- a/gamemode/core/database/sv_setup.lua +++ b/gamemode/core/database/sv_setup.lua @@ -67,7 +67,10 @@ function sql.GetPlayerData(ply) ply:ConCommand("connect " .. mtbl.lastserver) return end - ply:SetPos(mtbl.lastlocation) + local _,_,x,y,z = string.find(mtbl.lastlocation,"([-%d%.]+) ([-%d%.]+) ([-%d%.]+)") + local vec = {x,y,z} + for k,v in pairs(vec) do vec[k] = tonumber(v) end + ply:SetPos(Vector(unpack(vec))) q.deserialize_player(ply,plyd) end end @@ -88,6 +91,8 @@ function sql.CreatePlayerTable(ply) local plymet = data.newmeta() local plydata = util.TableToJSON(plytbl) local metdata = util.TableToJSON(plymet) + print("plydata", plydata) + print("metdata", metdata) local q_str = q.s_fmt(create_player_query,s64,plydata,metdata) local q_suc = function(res,li) --print("Inserted new player",ply) diff --git a/gamemode/core/mapstich/sv_mapstich.lua b/gamemode/core/mapstich/sv_mapstich.lua index 121c0c9..7a90189 100644 --- a/gamemode/core/mapstich/sv_mapstich.lua +++ b/gamemode/core/mapstich/sv_mapstich.lua @@ -23,8 +23,9 @@ local function SavePlayerData(ply) ]] local pmet = util.TableToJSON({ lastserver = game.GetIPAddress(), - lastlocation = ply:GetPos() + lastlocation = tostring(ply:GetPos()) }) + print("pmet turns out to be",pmet) query = q.s_fmt(query,pdat,pmet,ply:SteamID64()) end MySQLite.query(query,function(data) @@ -48,16 +49,14 @@ net.Receive("art_zonechange",function(len,ply) dontupdatedisconnect[ply] = true local query = [[ - UPDATE playerdata SET PlayerData='%s',MetaData='%s' WHERE SteamID=%.0f + UPDATE playerdata SET MetaData='%s' WHERE SteamID=%.0f ]] - local pdat = util.TableToJSON(ply.data) local pmet = util.TableToJSON({ lastserver = zone.toserver, - lastlocation = zone.topos + lastlocation = tostring(zone.topos) }) - print("pdat is", pdat) print("pmet is", pmet) - local fquery = q.s_fmt(query,pdat,pmet,ply:SteamID64()) + local fquery = q.s_fmt(query,pmet,ply:SteamID64()) print("fquery was", fquery) print("Running query:",qc) MySQLite.query(fquery,function(data) diff --git a/gamemode/inventorysystem/shapedinventory/sh_shaped.lua b/gamemode/inventorysystem/shapedinventory/sh_shaped.lua index 09668e2..7c171c3 100644 --- a/gamemode/inventorysystem/shapedinventory/sh_shaped.lua +++ b/gamemode/inventorysystem/shapedinventory/sh_shaped.lua @@ -126,7 +126,9 @@ function inv:DeSerialize(str) local name = k local pos = v[1] local data = v[2] - ret.tracker[pos] = itm.GetItemFromData(name,data) + local item = itm.GetItemFromData(name,data) + self:Put(pos,item) + --ret.tracker[pos] = itm.GetItemFromData(name,data) end return ret end -- cgit v1.2.3-70-g09d2