Full:Server-Side;
-- CONNECT DATABASE --
addEventHandler ("onResourceStart",root,
function()
dataBase = dbConnect ("sqlite","userDatabase.db")
userDatabase = dbExec (dataBase ,"CREATE TABLE IF NOT EXISTS userDatabase(accountName TEXT,money INT,playerKills INT,playerDeaths INT,playerJoin INT)" )
end
)
-- ADD ACCOUNT DATA --
addEventHandler ("onPlayerLogin",root,
function(_,acName)
local userAccountName = getAccountName (acName)
local accountNameQuery = dbQuery(dataBase, "SELECT accountName FROM userDatabase WHERE accountName = ?", userAccountName)
local result = dbPoll(accountNameQuery, -1)
if #result == 0 or not result then
createData = dbExec (dataBase,"INSERT INTO userDatabase(accountName,money,playerKills,playerDeaths,playerJoin) VALUES (?,?,?,?,?)",userAccountName,0,0,0,0)
if (createData) then
outputChatBox ("#FF8600*#C1C1C1Your account data was successfully created.",source,255,255,255,true)
end
end
end
)
-- DELETE ACCOUNT DATA --
addCommandHandler ("deleteAccountData",
function(thePlayer,command,accName)
local aName = getAccountName( getPlayerAccount(thePlayer) )
if isObjectInACLGroup("user."..aName, aclGetGroup("Admin")) then
if accName then
local accountNameDB = dbQuery(dataBase, "SELECT accountName FROM userDatabase WHERE accountName = ?", accName)
local result = dbPoll(accountNameDB, -1)
if #result ~= 0 then
deleteUserData = dbExec (dataBase,"DELETE FROM userDatabase WHERE accountName=?", accName)
if (deleteUserData) then
outputChatBox ("#FF8600*#C1C1C1Account data was deleted. ("..accName..")",source,255,255,255,true)
end
else
outputChatBox ("#FF8600*#C1C1C1Account name could not be found. ("..accName..")",source,255,255,255,true)
end
end
end
end
)
-- ACCOUNT CLIENT-SIDE --
function gAccountsToSend(getUserName)
local gAccount = getPlayerAccount(getUserName)
local gAccountName = getAccountName(gAccount)
if (gAccountName) then
local query = dbQuery (dataBase,"SELECT money,playerKills,playerDeaths,playerJoin FROM userDatabase WHERE accountName = ?",gAccountName)
local result = dbPoll (query,-1)
if (#result ~= 0) then
userMoney = result.money
userKills = result.playerKills
userDeaths = result.playerDeaths
userJoins = result.playerJoin
triggerClientEvent(source, "onSendAccountNamesToClient", getRootElement(), userMoney,userKills,userDeaths,userJoins)
end
end
end
addEvent("onClientRequestAccountNames", true)
addEventHandler("onClientRequestAccountNames", getRootElement(), gAccountsToSend)
-- STATICS: DEATHS --
function deathPlayer()
local playerAccount = getPlayerAccount(source)
local userAccountName = getAccountName (playerAccount)
dbExec(dataBase, "UPDATE userDatabase SET playerDeaths = IFNULL (playerDeaths, 0) + 1 WHERE accountName = ?", userAccountName)
end
addEventHandler ("onPlayerWasted",root,deathPlayer)
-- STATICS: JOINS --
function joinsX(_,uName)
local userAccountName = getAccountName (uName)
dbExec(dataBase, "UPDATE userDatabase SET playerJoin = IFNULL (playerJoin, 0) + 1 WHERE accountName = ?", userAccountName)
end
addEventHandler ("onPlayerLogin",root,joinsX)