Monsthers Posted March 27, 2016 Share Posted March 27, 2016 Hello again! I just have 3 script with error! 1 Solved for community <3 and 2 with error! this time is a login system I have a login with system sql! this login is good but i need what to login too in acl. I need add a function from login player of ACL! this login just login player in groups SQL, But I want the two login in sql and ACL. Help me! this login use database.db just login player in database.db And i want too acl. For I be admin i need use /login name and password i need only with click in button "Login" login me in database and acl local blockedUsernames = {["console"] = true,["admin"]= true,["moderator"]= true,["guest"]= true,["none"]= true,["sams"]= true,["[sams]"]= true,["sa agencia de casas"]= true,["sa_agencia_de_casas"] = true} function playerLogin(username,password,serial) if getElementData(source,"loggedIn") then return triggerClientEvent(source,"SAlogin.errorBox",source,"Ya estas logeado.") end local ip = getPlayerIP(source) local playername = getPlayerName(source) local playerQuery = executeSQLQuery("SELECT id, loggedin FROM user_data WHERE username = ? AND pwsalted = ? LIMIT 1",username,password) if playerQuery and #playerQuery > 0 then if (playerQuery[1].loggedin == 1) then return triggerClientEvent(source,"SAlogin.errorBox",source,"Tu cuenta ya se encuentra en uso.") end local account = setElementData(source,"username",username) local id = setElementData(source,"id",playerQuery[1].id) if account and id then local thetime = getRealTime() local MM = thetime.month+1 if MM < 10 then MM = "0"..MM end local DD = thetime.monthday if DD < 10 then DD = "0"..DD end local thedate = (thetime.year+1900).."-"..MM.."-"..DD local ip = getPlayerIP(source) local serial = getPlayerSerial(source) executeSQLQuery("UPDATE user_data SET lastlogin = '"..thedate.."', ip = '"..ip.."', serial = '"..serial.."', loggedin = 1 WHERE username = '"..username.."'") outputChatBox("Usted se a logeado con el nombre de usuario: "..username,source,0,255,255) setElementData(source,"loggedIn",true) triggerEvent("onPlayerLogIn",source,playerQuery[1].id,username) triggerClientEvent(source,"SAlogin.clearLoginGUI",source) outputServerLog(("SAlogin: %s has successfully logged in as %q. (IP: %s Serial: %s)"):format(playername,username,ip,serial)) triggerClientEvent(source,"SAlogin.hideLogin",source,true) else triggerClientEvent(source,"SAlogin.errorBox",source,"Error de login.") end elseif playerQuery then triggerClientEvent(source,"SAlogin.errorBox",source,"Contraseña no especificada.") outputServerLog(("SAlogin: %s failed to log in as %q. Wrong password. (IP: %s Serial: %s)"):format(playername,username,ip,serial)) else triggerClientEvent(source,"SAlogin.errorBox",source,"Ocurrio un error, por favor intentalo de nuevo") end end addEvent("SAlogin.playerLogin",true) addEventHandler("SAlogin.playerLogin",root,playerLogin) function registerPlayer(username,password,email) if username and password and email then if not blockedUsernames[username] then if not username:match("[%s%p]") then local accountQuery = executeSQLQuery("SELECT id FROM user_data WHERE username=? LIMIT 1",username) if accountQuery and #accountQuery == 0 then if executeSQLInsert("user_data","'"..username.."','"..password.."','"..email.."',0,0,1000,0","'username','pwsalted','email','wanted','jailed','money', 'loggedin'") then triggerClientEvent(source,"SAlogin.showLogin",source) triggerClientEvent(source,"SAlogin.errorBox",source,"Registro de la cuenta terminada. Su nombre de usuario es "..username..". Recuerdalo.") else triggerClientEvent(source,"SAlogin.errorBox",source,"Error en registro de cuenta") end elseif accountQuery and #accountQuery > 0 then triggerClientEvent(source,"SAlogin.errorBox",source,"Este nombre de cuenta ya esta registrado") else triggerClientEvent(source,"SAlogin.errorBox",source,"Error en registro de cuenta") end else triggerClientEvent(source,"SAlogin.errorBox",source,"El nombre de usuario que se registra no debe tener ningun espacio o puntuacion") end else triggerClientEvent(source,"SAlogin.errorBox",source,"Esta nombre de usuario esta bloqueado") end end end addEvent("SAlogin.playerRegisterAccount",true) addEventHandler("SAlogin.playerRegisterAccount",root,registerPlayer) function markAsLogOut() local id = getElementData(source,"id") if id then executeSQLUpdate("user_data","loggedin = 0","id = "..id) end end addEventHandler("onPlayerQuit", root,markAsLogOut) addEvent("onPlayerLogOut",true) addEventHandler("onPlayerLogOut",root,function() setElementData(source,"loggedIn",false) local username = getElementData(source,"username") local id = getElementData(source,"id") if id then executeSQLUpdate("user_data","loggedin = 0","id = "..id) end if not username then username = "N/A" end local ip = getPlayerIP(source) local serial = getPlayerSerial(source) if ip and serial then outputServerLog("SAlogin: "..getPlayerName(source).." ha cerrado la sesion '"..username.."' (IP: "..ip.." Serial: "..serial..")") end setElementData(source,"username",nil) setElementData(source,"id",nil) triggerClientEvent(source,"SAlogin.showLogin",source) killPed(source) fadeCamera(source,false) setElementInterior(source,0) setElementDimension(source,0) end) executeSQLQuery("CREATE TABLE IF NOT EXISTS user_data (id INTEGER PRIMARY KEY AUTOINCREMENT, username TEXT, pwsalted TEXT, groups TEXT, email TEXT, money INTEGER, wanted TINYINT, jailed BOOLEAN, lastnick TEXT, lastlogin TEXT, loggedin INTEGER, ip TEXT, serial TEXT)") Link to comment
Moderators Citizen Posted March 27, 2016 Moderators Share Posted March 27, 2016 You have to login the player with the internal system at the same time using the logIn function. You will also need to register the player using the addAccount function. And finally logout the player from the internal account system when he logs off. Check the modification I made to playerLogin, registerPlayer and the handler of onPlayerLogOut (I added comments): local blockedUsernames = {["console"] = true,["admin"]= true,["moderator"]= true,["guest"]= true,["none"]= true,["sams"]= true,["[sams]"]= true,["sa agencia de casas"]= true,["sa_agencia_de_casas"] = true} function playerLogin(username,password,serial) if getElementData(source,"loggedIn") then return triggerClientEvent(source,"SAlogin.errorBox",source,"Ya estas logeado.") end local ip = getPlayerIP(source) local playername = getPlayerName(source) local playerQuery = executeSQLQuery("SELECT id, loggedin FROM user_data WHERE username = ? AND pwsalted = ? LIMIT 1",username,password) if playerQuery and #playerQuery > 0 then if (playerQuery[1].loggedin == 1) then return triggerClientEvent(source,"SAlogin.errorBox",source,"Tu cuenta ya se encuentra en uso.") end local account = setElementData(source,"username",username) local id = setElementData(source,"id",playerQuery[1].id) local internalAccount = getAccount( username, password ) -- gets the internal player account local internalLoggin = logIn( source, internalAccount, password ) -- logs in the player using the internal account if account and id and internalLoggin then local thetime = getRealTime() local MM = thetime.month+1 if MM < 10 then MM = "0"..MM end local DD = thetime.monthday if DD < 10 then DD = "0"..DD end local thedate = (thetime.year+1900).."-"..MM.."-"..DD local ip = getPlayerIP(source) local serial = getPlayerSerial(source) executeSQLQuery("UPDATE user_data SET lastlogin = '"..thedate.."', ip = '"..ip.."', serial = '"..serial.."', loggedin = 1 WHERE username = '"..username.."'") outputChatBox("Usted se a logeado con el nombre de usuario: "..username,source,0,255,255) setElementData(source,"loggedIn",true) triggerEvent("onPlayerLogIn",source,playerQuery[1].id,username) triggerClientEvent(source,"SAlogin.clearLoginGUI",source) outputServerLog(("SAlogin: %s has successfully logged in as %q. (IP: %s Serial: %s)"):format(playername,username,ip,serial)) triggerClientEvent(source,"SAlogin.hideLogin",source,true) else triggerClientEvent(source,"SAlogin.errorBox",source,"Error de login.") end elseif playerQuery then triggerClientEvent(source,"SAlogin.errorBox",source,"Contraseña no especificada.") outputServerLog(("SAlogin: %s failed to log in as %q. Wrong password. (IP: %s Serial: %s)"):format(playername,username,ip,serial)) else triggerClientEvent(source,"SAlogin.errorBox",source,"Ocurrio un error, por favor intentalo de nuevo") end end addEvent("SAlogin.playerLogin",true) addEventHandler("SAlogin.playerLogin",root,playerLogin) function registerPlayer(username,password,email) if username and password and email then if not blockedUsernames[username] then if not username:match("[%s%p]") then local accountQuery = executeSQLQuery("SELECT id FROM user_data WHERE username=? LIMIT 1",username) if accountQuery and #accountQuery == 0 then local sqlAccount = executeSQLInsert("user_data","'"..username.."','"..password.."','"..email.."',0,0,1000,0","'username','pwsalted','email','wanted','jailed','money', 'loggedin'") local internalAccount = addAccount( username, password ) -- creates the internal player account if sqlAccount and internalAccount then triggerClientEvent(source,"SAlogin.showLogin",source) triggerClientEvent(source,"SAlogin.errorBox",source,"Registro de la cuenta terminada. Su nombre de usuario es "..username..". Recuerdalo.") else triggerClientEvent(source,"SAlogin.errorBox",source,"Error en registro de cuenta") end elseif accountQuery and #accountQuery > 0 then triggerClientEvent(source,"SAlogin.errorBox",source,"Este nombre de cuenta ya esta registrado") else triggerClientEvent(source,"SAlogin.errorBox",source,"Error en registro de cuenta") end else triggerClientEvent(source,"SAlogin.errorBox",source,"El nombre de usuario que se registra no debe tener ningun espacio o puntuacion") end else triggerClientEvent(source,"SAlogin.errorBox",source,"Esta nombre de usuario esta bloqueado") end end end addEvent("SAlogin.playerRegisterAccount",true) addEventHandler("SAlogin.playerRegisterAccount",root,registerPlayer) function markAsLogOut() local id = getElementData(source,"id") if id then executeSQLUpdate("user_data","loggedin = 0","id = "..id) end end addEventHandler("onPlayerQuit", root,markAsLogOut) addEvent("onPlayerLogOut",true) addEventHandler("onPlayerLogOut",root,function() setElementData(source,"loggedIn",false) local username = getElementData(source,"username") local id = getElementData(source,"id") if id then executeSQLUpdate("user_data","loggedin = 0","id = "..id) logOut( source ) -- logs the player off from its internal account end if not username then username = "N/A" end local ip = getPlayerIP(source) local serial = getPlayerSerial(source) if ip and serial then outputServerLog("SAlogin: "..getPlayerName(source).." ha cerrado la sesion '"..username.."' (IP: "..ip.." Serial: "..serial..")") end setElementData(source,"username",nil) setElementData(source,"id",nil) triggerClientEvent(source,"SAlogin.showLogin",source) killPed(source) fadeCamera(source,false) setElementInterior(source,0) setElementDimension(source,0) end) executeSQLQuery("CREATE TABLE IF NOT EXISTS user_data (id INTEGER PRIMARY KEY AUTOINCREMENT, username TEXT, pwsalted TEXT, groups TEXT, email TEXT, money INTEGER, wanted TINYINT, jailed BOOLEAN, lastnick TEXT, lastlogin TEXT, loggedin INTEGER, ip TEXT, serial TEXT)") Link to comment
Recommended Posts
Create an account or sign in to comment
You need to be a member in order to leave a comment
Create an account
Sign up for a new account in our community. It's easy!
Register a new accountSign in
Already have an account? Sign in here.
Sign In Now