client side:
LoginWin = guiCreateWindow(532,337,359,234,"LoGiN SySTeM v1.0",false)
loginLabel1 = guiCreateLabel(26,64,61,18,"Username:",false,LoginWin)
guiLabelSetColor(loginLabel1,255,139,0)
guiLabelSetVerticalAlign(loginLabel1,"top")
guiLabelSetHorizontalAlign(loginLabel1,"left",false)
loginLabel2 = guiCreateLabel(52,181,5,5,"",false,LoginWin)
guiLabelSetColor(loginLabel2,255,255,255)
guiLabelSetVerticalAlign(loginLabel2,"top")
guiLabelSetHorizontalAlign(loginLabel2,"left",false)
loginLabel3 = guiCreateLabel(26,108,61,18,"Password:",false,LoginWin)
guiLabelSetColor(loginLabel3,255,139,0)
guiLabelSetVerticalAlign(loginLabel3,"top")
guiLabelSetHorizontalAlign(loginLabel3,"left",false)
usernameEditLogin = guiCreateEdit(92,59,228,31,"",false,LoginWin)
passwordEditLogin = guiCreateEdit(92,103,228,31,"",false,LoginWin)
logbtn = guiCreateButton(22,171,138,22,"Log In",false,LoginWin)
regbtn = guiCreateButton(197,171,138,22,"Register",false,LoginWin)
guestbtn = guiCreateButton(22,199,313,23,"Guest",false,LoginWin)
loginLabel4 = guiCreateLabel(127,28,107,16,"Log in or Register.",false,LoginWin)
guiLabelSetColor(loginLabel4,255,255,255)
guiLabelSetVerticalAlign(loginLabel4,"top")
guiLabelSetHorizontalAlign(loginLabel4,"left",false)
guiSetFont(loginLabel4,"default-bold-small")
function receiveVars( allow, email)
local playername = getPlayerName(localPlayer)
guiSetText(LoginUsername, "")
guiSetText(EditRegisterUsername, "")
if (email == "false") then
guiSetVisible(LblRegisterEmail, false)
guiSetVisible(EditRegisterEmail, false)
end
if (allow == "false") then
guiDeleteTab(TabRegister, TabPanel)
end
guiSetSelectedTab(TabPanel, TabLogin)
guiSetText(usernameEditLogin, playername)
guiSetText(usernameEditPassword, playername)
guiSetVisible(LoginWin, true)
guiBringToFront(LoginWin)
guiSetInputEnabled(true)
showCursor(true)
end
addEvent( "onSendVars", true )
addEventHandler( "onSendVars", getRootElement(), receiveVars )
function windowHandler()
triggerServerEvent("onNeedVars", getLocalPlayer())
end
addEventHandler("onClientResourceStart", getResourceRootElement(getThisResource()), windowHandler)
function onClickBtn(button, state)
if(button == "left" and state == "up") then
if(source == logbtn) then
triggerServerEvent("onLogin", getRootElement(), localPlayer, guiGetText(usernameEditLogin), guiGetText(usernameEditPassword))
end
end
end
addEventHandler("onClientGUIClick", logbtn, onClickBtn, false)
function onClickBtn1(button, state)
if(button == "left" and state == "up") then
if(source == regbtn) then
triggerServerEvent("onRegister", getRootElement(), localPlayer, guiGetText(usernameEditLogin), guiGetText(usernameEditPassword))
end
end
end
addEventHandler("onClientGUIClick", regbtn, onClickBtn, false)
function onClickBtn2(button, state)
if(button == "left" and state == "up") then
if(source == guestbtn) then
guiSetInputEnabled(false)
guiSetVisible(LoginWin, false)
showCursor(false)
end
end
end
addEventHandler("onClientGUIClick", guestbtn, onClickBtn, false)
function hideLoginWindow()
guiSetInputEnabled(false)
guiSetVisible(LoginWin, false)
showCursor(false)
end
addEvent("hideLoginWindow", true)
addEventHandler("hideLoginWindow", getRootElement(), hideLoginWindow)
server side:
function onLogin ( player, user, pass )
local account = getAccount ( user, pass )
if ( account ~= false ) then
if ( not isGuestAccount ( account ) ) then -- For every player that's logged in....
logOut ( player ) -- Log them out.
end
if (logIn ( player, account, pass ) == true) then
triggerClientEvent ( player, "hideLoginWindow", getRootElement())
else
outputChatBox ( "Login error!", player, 255, 255, 0 ) -- Output they got the details wrong.
end
else
outputChatBox ( "Wrong username or password!", player, 255, 255, 0 ) -- Output they got the details wrong.
end
end
addEvent( "onLogin", true )
addEventHandler( "onLogin", getRootElement(), onLogin )
function onRegister ( player, user, pass, email )
local account = getAccount ( user, pass )
if ( account ~= false ) then
if (logIn ( player, account, pass ) == true) then
triggerClientEvent ( player, "hideLoginWindow", getRootElement())
else
outputChatBox ( "Login error!", player, 255, 255, 0 ) -- Output they got the details wrong.
end
else
account = addAccount ( user, pass )
setAccountData ( account, "email", email)
if (logIn ( player, account, pass ) == true) then
triggerClientEvent ( player, "hideLoginWindow", getRootElement())
else
outputChatBox ( "Register/Login error!", player, 255, 255, 0 ) -- Output they got the details wrong.
end
end
end
addEvent( "onRegister", true )
addEventHandler( "onRegister", getRootElement(), onRegister )
function needVars()
local allow_register = get("allow_register")
local email_on_register = get("email_on_register")
triggerClientEvent(source, "onSendVars", getRootElement(), allow_register, email_on_register)
end
addEvent("onNeedVars", true)
addEventHandler("onNeedVars", getRootElement(), needVars)