Server:
local spawnX, spawnY, spawnZ = 1959.55, -1714.46, 20
addEvent( "submitLogin", true )
function loginHandler( username, password )
local result = mysql_query( mysqldb, "SELECT * FROM players WHERE username = '"..username.. "' AND pass = '"..password.. "'" )
if not result then
outputDebugString( "mysql_query failed: (" .. tostring( mysql_errno( mysqldb ) ).. ") " ..tostring( mysql_error( mysqldb ) ) )
else
if mysql_num_rows( result ) > 0 then
spawnPlayer( source, spawnX, spawnY, spawnZ )
fadeCamera( source, true)
setCameraTarget( source, source )
outputChatBox( "Welcome to My Server.", source )
else
outputChatBox( "Invalid username and password. Please try again.",source )
triggerClientEvent ( "falseLogin", root )
end
end
mysql_free_result( result )
end
addEventHandler( "submitLogin", root, loginHandler )
function registerHandler(player, user, pass, repass)
result = mysql_query(mysqldb, "Select * From players Where username='"..user.."'")
if(result ~= nil) then
if(mysql_num_rows(result) > 0) then
outputChatBox("Username which you selected already exists!",source, 255, 0, 0)
mysql_free_result(result)
else
mysql_free_result(result)
result = mysql_query(mysqldb, "Insert into players (username, pass) values ('"..user.."', '"..pass.."')")
outputChatBox("Succes register", source)
return
end
end
end
addEvent("submitRegister", true)
addEventHandler("submitRegister", getRootElement(), registerHandler)
addEventHandler( "onPlayerWasted", getRootElement( ),
function()
setTimer( spawnPlayer, 2000, 1, source, spawnX, spawnY, spawnZ)
end
)
function connectMySQLdb()
mysqldb = mysql_connect("localhost", "", "", "mtadb")
end
addEventHandler ( "onResourceStart", getRootElement(), connectMySQLdb )
Client:
function createLoginRegisterGUI()
local X = 0.375
local Y = 0.375
local Width = 0.35
local Height = 0.35
myFont = guiCreateFont( "password.ttf", 15 )
wdwLogin = guiCreateWindow(X, Y, Width, Height, "Login/Register window", true)
local tabPanel = guiCreateTabPanel ( 0, 0.1, 1, 1, true, wdwLogin)
local tabLogin = guiCreateTab( "Login", tabPanel )
local tabRegister = guiCreateTab( "Register", tabPanel )
X = 0.0825
Y = 0.2
Width = 0.25
Height = 0.25
guiCreateLabel(X, Y, Width, Height, "Username", true, tabLogin)
Y = 0.5
guiCreateLabel(X, Y, Width, Height, "Password", true, tabLogin)
X = 0.315
Y = 0.2
Width = 0.6
Height = 0.15
edtUser = guiCreateEdit(X, Y, Width, Height, "", true, tabLogin)
Y = 0.5
edtPass = guiCreateEdit(X, Y, Width, Height, "", true, tabLogin)
guiSetFont(edtPass, myFont )
guiEditSetMaxLength(edtUser, 50)
guiEditSetMaxLength(edtPass, 50)
X = 0.05
Y = 0.7
Width = 0.9
Height = 0.15
btnLogin = guiCreateButton(X, Y, Width, Height, "Log In", true, tabLogin)
--========================Regsiter===============================================
X = 0.0825
Y = 0.21
Width = 0.2
Height = 0.2
guiCreateLabel(X, Y, Width, Height, "Username", true, tabRegister)
Y = 0.41
guiCreateLabel(X, Y, Width, Height, "Password", true, tabRegister)
Y = 0.61
guiCreateLabel(X, Y, Width, Height, "Repeat password", true, tabRegister)
X = 0.315
Y = 0.2
Width = 0.6
Height = 0.1
edtReUser = guiCreateEdit(X, Y, Width, Height, "", true, tabRegister)
Y = 0.4
edtRegPass = guiCreateEdit(X, Y, Width, Height, "", true, tabRegister)
Y = 0.6
edtRePass = guiCreateEdit(X, Y, Width, Height, "", true, tabRegister)
myFont = guiCreateFont( "password.ttf", 10 )
guiSetFont( edtRegPass, myFont )
guiSetFont( edtRePass, myFont )
guiEditSetMaxLength(edtReUser, 50)
guiEditSetMaxLength(edtRegPass, 50)
guiEditSetMaxLength(edtRePass, 50)
X = 0.05
Y = 0.8
Width = 0.9
Height = 0.15
btnRegister = guiCreateButton(X, Y, Width, Height, "Register", true, tabRegister)
guiSetVisible(wdwLogin, false)
addEventHandler("onClientGUIClick", btnLogin, clientSubmitLogin, false)
addEventHandler("onClientGUIClick", btnRegister, clientSubmitRegister, false)
end
function clientSubmitRegister(button, state)
if button == "left" and state == "up" then
local username = guiGetText(edtReUser)
local password = guiGetText(edtRegPass)
local repass = guiGetText(edtRePass)
if username and password then
triggerServerEvent("submitRegister", getRootElement(), getLocalPlayer(), username, password, repass)
end
end
end
addEvent( "falseLogin", true)
function clientSubmitLogin( button,state )
if button == "left" and state == "up" then
local username = guiGetText( edtUser )
local password = guiGetText( edtPass )
if username and password then
triggerServerEvent( "submitLogin", localPlayer, username, password )
guiSetInputEnabled( false)
guiSetVisible( wdwLogin, false)
showCursor( false )
else
outputChatBox("Please enter a username and password.")
end
end
end
addEventHandler( "onClientResourceStart", resourceRoot,
function ( )
createLoginRegisterGUI( )
outputChatBox( "Welcome to My MTA:SA Server." )
if wdwLogin then
guiSetVisible( wdwLogin, true )
else
outputChatBox( "An unexpected error has occurred and the log in GUI has not been created." )
end
showCursor( true )
guiSetInputEnabled( true )
end
)
addEventHandler( "falseLogin", root,
function( )
guiSetInputEnabled( true )
guiSetVisible( wdwLogin, true )
showCursor( true )
end
)