Guest User

Untitled

a guest
Jan 23rd, 2018
334
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
Lua 5.96 KB | None | 0 0
  1. --This function creates the login window
  2. function createLoginWindow(bUseSettings)
  3.     showChat(false)
  4.     showPlayerHudComponent("all", false)
  5.    
  6.     local mainWindow = guiCreateWindow(--[[COORDS REMOVED]], "Welcome "..getPlayerName(localPlayer)..", please login.", false)
  7.     guiWindowSetSizable(mainWindow, false)
  8.     guiWindowSetMovable(mainWindow, false)
  9.     guiSetProperty(mainWindow, "ZOrderChangeEnabled", "False")
  10.    
  11.     local usernameLabel = guiCreateLabel(--[[COORDS REMOVED]], "Username:", false)
  12.     guiLabelSetHorizontalAlign(usernameLabel, "center")
  13.     guiLabelSetVerticalAlign(usernameLabel, "center")
  14.     guiLabelSetHorizontalAlign(usernameLabel, "right")
  15.     guiSetFont(usernameLabel, "clear-normal")
  16.    
  17.     local usernameEdit = guiCreateEdit(--[[COORDS REMOVED]], "", false)
  18.     guiEditSetMaxLength(usernameEdit, 32)
  19.     addEventHandler("onClientGUIClick", usernameEdit, function() guiSetText(source, "") end)
  20.    
  21.    
  22.     local passwordLabel = guiCreateLabel(--[[COORDS REMOVED]], "Password:", false)
  23.     guiLabelSetHorizontalAlign(passwordLabel, "center")
  24.     guiLabelSetVerticalAlign(passwordLabel, "center")
  25.     guiLabelSetHorizontalAlign(passwordLabel, "right")
  26.     guiSetFont(passwordLabel, "clear-normal")
  27.    
  28.     local passwordEdit = guiCreateEdit(--[[COORDS REMOVED]], "", false)
  29.     guiEditSetMaxLength(passwordEdit, 32)
  30.     guiEditSetMasked(passwordEdit, true)
  31.     addEventHandler("onClientGUIClick", passwordEdit, function() guiSetText(source, "") end)
  32.    
  33.    
  34.     local loginButton = guiCreateButton(--[[COORDS REMOVED]], "Login", false)
  35.     addEventHandler("onClientGUIClick", loginButton, submitLoginRequest)
  36.    
  37.     local registerButton = guiCreateButton(--[[COORDS REMOVED]], "Register >>", false)
  38.     addEventHandler("onClientGUIClick", registerButton, onRegisterButtonClicked)
  39.    
  40.     local forgotPassword = guiCreateLabel(--[[COORDS REMOVED]], "Can't login?", false)
  41.     guiSetFont(forgotPassword, "clear-normal")
  42.     guiSetPosition(forgotPassword, getX(30) + 5, getY(65) - (guiLabelGetFontHeight(forgotPassword) + 5), false)
  43.     guiSetSize(forgotPassword, guiLabelGetTextExtent(forgotPassword), guiLabelGetFontHeight(forgotPassword) + 2, false)
  44.     addEventHandler("onClientGUIClick", forgotPassword, onForgotPasswordClicked)
  45.    
  46.     local guiNode = createElement("guiNode", "guiNodeLoginWindow")
  47.     local guiElements = {mainWindow, usernameLabel, usernameEdit, passwordLabel, passwordEdit, loginButton, registerButton, forgotPassword}
  48.     setElementData(guiNode, "guiElements", guiElements, false)
  49.    
  50.     --Use login settings
  51.     if bUseSettings then
  52.         local settingsRoot = getElementByID("settingsRoot")
  53.         if settingsRoot then
  54.             local loginSettings = getElementData(settingsRoot, "loginSettings", false)
  55.             if loginSettings then
  56.                 if loginSettings.username then
  57.                     guiSetText(usernameEdit, loginSettings.username)
  58.                 end
  59.                 if loginSettings.password then
  60.                     if string.len(loginSettings.password) == 32 then
  61.                         guiSetText(passwordEdit, loginSettings.password)
  62.                         setElementData(guiNode, "passwordAutoInserted", true, false)
  63.                     else
  64.                         setLocalSetting("password", "")
  65.                     end
  66.                 end
  67.                 if loginSettings.autologin then
  68.                     submitLoginRequest()
  69.                 end
  70.             end
  71.         end
  72.     end
  73.     guiSetInputEnabled(true)
  74. end
  75.  
  76. --This function destroys the login window
  77. function destroyLoginWindow()
  78.     local guiNode = getElementByID("guiNodeLoginWindow")
  79.     local guiElements = getElementData(guiNode, "guiElements")
  80.    
  81.     for _, guiElement in ipairs(guiElements) do
  82.         destroyElement(guiElement)
  83.     end
  84.     destroyElement(guiNode)
  85.    
  86.     guiSetInputEnabled(false)
  87. end
  88.  
  89. --This function is triggered when the login button is clicked, or when a autologin request should be sent.
  90. --It submits the login request to the server IF proper data is entered.
  91. function submitLoginRequest()
  92.     local guiNode = getElementByID("guiNodeLoginWindow")
  93.     setElementParent(guiNode, guiRoot)
  94.     local guiElements = getElementData(guiNode, "guiElements")
  95.    
  96.     local usernameField = guiElements[3]
  97.     local passwordField = guiElements[5]
  98.    
  99.     local username = guiGetText(usernameField)
  100.     local password = guiGetText(passwordField)
  101.    
  102.     if username == "" or password == "" then
  103.         destroyLoginWindow()
  104.         createDialogWindow("Login failed!", "One or more field(s) were left blank!" , "error", "Okay", createLoginWindow)
  105.         return
  106.     end
  107.    
  108.     --Do not encrypt passwords automatically entered.
  109.     if getElementData(guiNode, "passwordAutoInserted", false) then
  110.         password = password
  111.     else
  112.         password = md5(password)
  113.     end
  114.    
  115.     destroyLoginWindow()
  116.    
  117.     addResourceEventHandler("onLoginSuccess", resourceRoot, onLoginSuccess)
  118.     addResourceEventHandler("onLoginFailure", resourceRoot, onLoginFailure)
  119.     triggerServerResourceEvent("onLoginRequest", localPlayer, username, password)
  120. end
  121.  
  122. --This function is triggered when the register button is clicked
  123. function onRegisterButtonClicked()
  124.     destroyLoginWindow()
  125.     createRegisterWindow()
  126.     return
  127. end
  128.  
  129. --This function is executed when the "Can't login?" text is clicked
  130. function onForgotPasswordClicked()
  131.     destroyLoginWindow()
  132.     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)
  133. end
  134.  
  135. --This function is executed when a login is completed successfully
  136. addResourceEvent("onLoginSuccess", true)
  137. function onLoginSuccess()
  138.     removeResourceEventHandler("onLoginSuccess", resourceRoot, onLoginSuccess)
  139.     removeResourceEventHandler("onLoginFailure", resourceRoot, onLoginFailure)
  140.     showPlayerHudComponent("all", true)
  141.     showChat(true)
  142.     createMainMenu()
  143.     openStartMenu()
  144.     createCharacterMenu()
  145.     return
  146. end
  147.  
  148. --This function is executed when a login fails.
  149. addResourceEvent("onLoginFailure", true)
  150. function onLoginFailure(failureReason)
  151.     createDialogWindow("Login failed!", failureReason, "error", "Okay", createLoginWindow)
  152.     removeResourceEventHandler("onLoginSuccess", resourceRoot, onLoginSuccess)
  153.     removeResourceEventHandler("onLoginFailure", resourceRoot, onLoginFailure)
  154.     return
  155. end
Add Comment
Please, Sign In to add comment