here's some of the code from the sql.lua file from ZenRP...
local meta = FindMetaTable( "Player" );
function meta:GetCharacter()
return self:GetNWString( "character" )
end
function meta:ChangeCharacter( name )
self:SaveCharacter( name )
Characters = sql.QueryValue("SELECT "..self:SteamID().." FROM Characters")
Character = sql.QueryValue("SELECT "..name.." FROM ".. Characters)
if (Character) then
Name = sql.QueryValue("SELECT name FROM " .. Character)
Desc = sql.QueryValue("SELECT desc FROM " .. Character)
Money = sql.QueryValue("SELECT money FROM " .. Character)
Inv = sql.QueryValue("SELECT inv FROM " .. Character)
Team = sql.QueryValue("SELECT team FROM " .. Character)
Dead = sql.QueryValue("SELECT dead FROM " .. Character)
if (self:GetStat(name, "dead")) then
Derma_Query("Revive Character? (900" .. CUR .. ")", "Hospital",
"Yes", function()
if (self:GetStat(name, "money") - 900 >= 0) then
self:SetStat(name, "dead", false)
self:SetStat(name, "money", self:GetStat(name, "money") - 900)
elseif (self:GetStat(name, "money") - 900 < 0) then
self:SetStat(name, "dead", false)
self:SetStat(name, "money", 0)
ply:ChatPrint("This character no longer has any money.")
end
end,
"No", function()
ply:ChatPrint("You won't be able to play that character until they're revived.")
end)
else
self:SetNWString("character", name)
Zen.SetPoints(self, Money)
self:SetNWString("name", Name)
self:SetInv( Inv )
self:SetTeam(Team)
self:Spawn()
end
else
self:ChatPrint("Invalid Character!")
end
end
function PlyChangeCharacter( ply, cmd, args )
ply:ChangeCharacter( args[1] )
end
concommand.Add( "zen_changecharacter", PlyChangeCharacter )
function PlySaveCharacter( ply, cmd, args )
ply:SaveCharacter( ply:GetCharacter() )
end
concommand.Add( "zen_savecharacter", PlySaveCharacter )
function meta:SaveCharacter( name )
Characters = sql.QueryValue("SELECT "self:SteamID()" FROM Characters")
Character = sql.QueryValue("SELECT "..name.." FROM ".. Characters)
if (Character) then
Name = self:Nick()
Desc = sql.QueryValue("SELECT desc FROM " .. Character)
Money = Zen.Points( self )
Inv = self:Inv()
Team = self:Team()
Dead = sql.QueryValue("SELECT dead FROM " .. Character)
sql.Query("UPDATE "..Character.." SET name = "..Name..", desc = "..Desc..", money = "..Money..", creatorname = "..self:Name()..", inv = "..Inv..", team = "..Team..", dead = "..Dead.."")
Msg("[ZENRP]Character Saved.")
else
self:ChatPrint("Invalid Character")
end
end
function tables_exist()
if (sql.TableExists("Characters")) then
Msg("Character table already exists!")
else
if (!sql.TableExists("Characters")) then
query = "CREATE TABLE Characters ( )"
result = sql.Query(query)
if (sql.TableExists("Characters")) then
Msg("Success! Character Table Created! \n")
else
Msg("Somthing went wrong with the Character query ! \n")
Msg( sql.LastError( result ) .. "\n" )
end
end
end
end
function NewCharacter( ply, cmd, args )
steamID = ply:SteamID()
sql.Query( "INSERT INTO Characters (`"..steamID.."`)VALUES ( '"..args[1].."' )" )
Blah1 = sql.Query("SELECT "..steamID.." FROM Characters")
Blah2 = sql.Query("SELECT "..args[1].." FROM "..Blah1.."")
sql.Query( "INSERT INTO "..Blah2.." ('name', 'desc', 'money', 'creatorname', 'inv', 'team', 'dead')VALUES ('"..args[1].."', '"..args[2].."', '"..tonumber(ConVars["StartingPoints"]).."', '', '"..TEAM_CITIZEN.."', '"..false.."')")
result1 = sql.Query( "SELECT "..steamID.." FROM Characters")
result2 = sql.Query("SELECT "..args[1].." FROM "..result1.."")
if (result2) then
Msg("Character Created!\n")
else
Msg("Something went wrong with creating the character!\n")
end
end
concommand.Add("zen_createcharacter", NewCharacter)
function meta:GetStat( name, stat )
ID = self:SteamID()
P1 = sql.Query("SELECT "..ID.." FROM Characters")
P2 = sql.Query("SELECT "..name.." FROM "..P1.."")
P3 = sql.QueryValue("SELECT "..stat.." FROM "..P2.."")
return P3
end
function meta:SetStat( name, stat, amt )
ID = self:SteamID()
P1 = sql.Query("SELECT "..ID.." FROM Characters")
P2 = sql.Query("SELECT "..name.." FROM "..P1.."")
sql.Query("UPDATE "..P2.." SET "..stat.." = "..amt)
end
i can help you, if i finish it soon... (i'm close to beta

)