require ("mysqloo") // Include the modules local meta = FindMetaTable("Player") function meta:notify(str) DarkRP.notify(ply, 1, 4, str) end local DATABASE_HOST = "192.254.232.76" // database host (can be an ip) local DATABASE_PORT = 3306 // port to the database, you probably wont need to change this unless you get told to local DATABASE_NAME = "samahl_xp" // name of the database local DATABASE_USERNAME = "samahl_xp" // username which you use to access it local DATABASE_PASSWORD = "Aa970916" // password of the username function connectToDatabase() databaseObject = mysqloo.connect(DATABASE_HOST, DATABASE_USERNAME, DATABASE_PASSWORD, DATABASE_NAME, DATABASE_PORT) databaseObject.onConnected = function() print("Database linked!") end databaseObject.onConnectionFailed = function() print("Failed to connect to the database. Re-trying!") timer.Simple(2, function() connectToDatabase() end) end databaseObject:connect() end connectToDatabase() function checkQuery(query) local playerInfo = query:getData() if playerInfo[1] ~= nil then return true else return false end end function FirstJoinMysql( ply ) timer.Simple(10, function() local query1 = databaseObject:query("SELECT * FROM players WHERE id = '" .. ply:UniqueID() .. "'") query1.onSuccess = function(q) if not checkQuery(q) then local query2 = databaseObject:query("INSERT INTO players(xp, id) VALUES (".. 120 ..", ".. ply:UniqueID() ..")") query2.onSuccess = function(q) DarkRP.notify(ply, 1, 10, "User was added to database!") end query2.onError = function(q,e) DarkRP.notify(ply, 1, 10, "Opppsss, seams like something went wrong!? (ERROR 1)") end query2:start() else DarkRP.notify(ply, 1, 4, "User is allready created!")s end) end hook.Add( "PlayerInitialSpawn", "PlayerInitialSpawn", FirstJoinMysql ) end end query1.onError = function(q,e) DarkRP.notify(ply, 1, 4, "Opppsss, seams like something went wrong!? (ERROR 2)") end query1:start() util.AddNetworkString("netsmessage") function test(ply) local q = databaseObject:query("SELECT xp FROM players WHERE id=".. self:UniqueID()) q.onSuccess = function(query, data) net.Start("netsmessage") net.WriteString(data[1].xp) net.Send(ply) end end -- Meta functions function meta:GetXp() local q = databaseObject:query("SELECT xp FROM players WHERE id=".. self:UniqueID()) q.onSuccess = function(query, data) return data[1].xp end end function meta:AddXp(value) local q = databaseObject:query("UPDATE players SET xp=xp + ".. value .." WHERE id=".. self:UniqueID()) q.onError = function(q, e) DarkRP.notify(ply, 1, 30, "ERROR! Please report the following error message to a developer! (ERROR: ".. e ..")") end q:start() end function AddOnQuery(ply, cmd, args) ply:AddXp(100) end concommand.Add("AddXP", AddOnQuery)