Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- --This function creates the login window
- function createLoginWindow(bUseSettings)
- showChat(false)
- showPlayerHudComponent("all", false)
- local mainWindow = guiCreateWindow(--[[COORDS REMOVED]], "Welcome "..getPlayerName(localPlayer)..", please login.", false)
- guiWindowSetSizable(mainWindow, false)
- guiWindowSetMovable(mainWindow, false)
- guiSetProperty(mainWindow, "ZOrderChangeEnabled", "False")
- local usernameLabel = guiCreateLabel(--[[COORDS REMOVED]], "Username:", false)
- guiLabelSetHorizontalAlign(usernameLabel, "center")
- guiLabelSetVerticalAlign(usernameLabel, "center")
- guiLabelSetHorizontalAlign(usernameLabel, "right")
- guiSetFont(usernameLabel, "clear-normal")
- local usernameEdit = guiCreateEdit(--[[COORDS REMOVED]], "", false)
- guiEditSetMaxLength(usernameEdit, 32)
- addEventHandler("onClientGUIClick", usernameEdit, function() guiSetText(source, "") end)
- local passwordLabel = guiCreateLabel(--[[COORDS REMOVED]], "Password:", false)
- guiLabelSetHorizontalAlign(passwordLabel, "center")
- guiLabelSetVerticalAlign(passwordLabel, "center")
- guiLabelSetHorizontalAlign(passwordLabel, "right")
- guiSetFont(passwordLabel, "clear-normal")
- local passwordEdit = guiCreateEdit(--[[COORDS REMOVED]], "", false)
- guiEditSetMaxLength(passwordEdit, 32)
- guiEditSetMasked(passwordEdit, true)
- addEventHandler("onClientGUIClick", passwordEdit, function() guiSetText(source, "") end)
- local loginButton = guiCreateButton(--[[COORDS REMOVED]], "Login", false)
- addEventHandler("onClientGUIClick", loginButton, submitLoginRequest)
- local registerButton = guiCreateButton(--[[COORDS REMOVED]], "Register >>", false)
- addEventHandler("onClientGUIClick", registerButton, onRegisterButtonClicked)
- local forgotPassword = guiCreateLabel(--[[COORDS REMOVED]], "Can't login?", false)
- guiSetFont(forgotPassword, "clear-normal")
- guiSetPosition(forgotPassword, getX(30) + 5, getY(65) - (guiLabelGetFontHeight(forgotPassword) + 5), false)
- guiSetSize(forgotPassword, guiLabelGetTextExtent(forgotPassword), guiLabelGetFontHeight(forgotPassword) + 2, false)
- addEventHandler("onClientGUIClick", forgotPassword, onForgotPasswordClicked)
- local guiNode = createElement("guiNode", "guiNodeLoginWindow")
- local guiElements = {mainWindow, usernameLabel, usernameEdit, passwordLabel, passwordEdit, loginButton, registerButton, forgotPassword}
- setElementData(guiNode, "guiElements", guiElements, false)
- --Use login settings
- if bUseSettings then
- local settingsRoot = getElementByID("settingsRoot")
- if settingsRoot then
- local loginSettings = getElementData(settingsRoot, "loginSettings", false)
- if loginSettings then
- if loginSettings.username then
- guiSetText(usernameEdit, loginSettings.username)
- end
- if loginSettings.password then
- if string.len(loginSettings.password) == 32 then
- guiSetText(passwordEdit, loginSettings.password)
- setElementData(guiNode, "passwordAutoInserted", true, false)
- else
- setLocalSetting("password", "")
- end
- end
- if loginSettings.autologin then
- submitLoginRequest()
- end
- end
- end
- end
- guiSetInputEnabled(true)
- end
- --This function destroys the login window
- function destroyLoginWindow()
- local guiNode = getElementByID("guiNodeLoginWindow")
- local guiElements = getElementData(guiNode, "guiElements")
- for _, guiElement in ipairs(guiElements) do
- destroyElement(guiElement)
- end
- destroyElement(guiNode)
- guiSetInputEnabled(false)
- end
- --This function is triggered when the login button is clicked, or when a autologin request should be sent.
- --It submits the login request to the server IF proper data is entered.
- function submitLoginRequest()
- local guiNode = getElementByID("guiNodeLoginWindow")
- setElementParent(guiNode, guiRoot)
- local guiElements = getElementData(guiNode, "guiElements")
- local usernameField = guiElements[3]
- local passwordField = guiElements[5]
- local username = guiGetText(usernameField)
- local password = guiGetText(passwordField)
- if username == "" or password == "" then
- destroyLoginWindow()
- createDialogWindow("Login failed!", "One or more field(s) were left blank!" , "error", "Okay", createLoginWindow)
- return
- end
- --Do not encrypt passwords automatically entered.
- if getElementData(guiNode, "passwordAutoInserted", false) then
- password = password
- else
- password = md5(password)
- end
- destroyLoginWindow()
- addResourceEventHandler("onLoginSuccess", resourceRoot, onLoginSuccess)
- addResourceEventHandler("onLoginFailure", resourceRoot, onLoginFailure)
- triggerServerResourceEvent("onLoginRequest", localPlayer, username, password)
- end
- --This function is triggered when the register button is clicked
- function onRegisterButtonClicked()
- destroyLoginWindow()
- createRegisterWindow()
- return
- end
- --This function is executed when the "Can't login?" text is clicked
- function onForgotPasswordClicked()
- destroyLoginWindow()
- createDialogWindow("Recovering your account:", "You're fucked! Haha!\n\nTo recover your account, e-mail queso1902@live.com with your username and client serial number.\nYour serial number is "..getPlayerSerial().."." , "info", "Okay", createLoginWindow)
- end
- --This function is executed when a login is completed successfully
- addResourceEvent("onLoginSuccess", true)
- function onLoginSuccess()
- removeResourceEventHandler("onLoginSuccess", resourceRoot, onLoginSuccess)
- removeResourceEventHandler("onLoginFailure", resourceRoot, onLoginFailure)
- showPlayerHudComponent("all", true)
- showChat(true)
- createMainMenu()
- openStartMenu()
- createCharacterMenu()
- return
- end
- --This function is executed when a login fails.
- addResourceEvent("onLoginFailure", true)
- function onLoginFailure(failureReason)
- createDialogWindow("Login failed!", failureReason, "error", "Okay", createLoginWindow)
- removeResourceEventHandler("onLoginSuccess", resourceRoot, onLoginSuccess)
- removeResourceEventHandler("onLoginFailure", resourceRoot, onLoginFailure)
- return
- end
Add Comment
Please, Sign In to add comment