Guest User

Untitled

a guest
Jun 24th, 2018
81
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
Lua 11.24 KB | None | 0 0
  1. local localPlayer = getLocalPlayer()
  2. local playerName = getPlayerName(localPlayer)
  3.  
  4. local file = xmlLoadFile ("account.xml")
  5. if not (file) then
  6. file = xmlCreateFile("account.xml","accounts")
  7. local NewNode = xmlCreateChild(file, "username")
  8. local NewNode2 = xmlCreateChild(file, "password")
  9. end
  10. xmlSaveFile(file)
  11.  
  12. file = xmlLoadFile ("account.xml")
  13. node = xmlFindChild(file, "username", 0)
  14. success = xmlNodeGetValue (node)
  15. node2 = xmlFindChild(file, "password", 0)
  16. success2 = xmlNodeGetValue (node2)
  17.  
  18. function createSuccesRegisterWindow()
  19.  
  20. succesWindow = guiCreateWindow(493,312,260,136,"SSC ~ Account Created",false)
  21. succesLabel1 = guiCreateLabel(38,27,196,16,"Your account is created and ready!",false,succesWindow)
  22. succesLabel2 = guiCreateLabel(19,44,227,16,"Login with your username and password.",false,succesWindow)
  23. succesLabel3 = guiCreateLabel(25,61,212,16,"Press F1 for the rules and information.",false,succesWindow)
  24. succesClose = guiCreateButton(39,95,180,32,"Close",false,succesWindow)
  25.  
  26. guiWindowSetMovable (succesWindow, true)
  27. guiWindowSetSizable (succesWindow, false)
  28. guiSetVisible (succesWindow, false)
  29.  
  30. addEventHandler("onClientGUIClick", succesClose, clientCloseSuccesWindow, false)
  31. end
  32.  
  33. function createLoginWindow()
  34.  
  35. local xml = xmlLoadFile( "information.xml" )
  36. local content = xmlNodeGetValue( xml )
  37.  
  38. loginWindow = guiCreateWindow(425,204,359,412,"SSC RP/CnR Server ~ Login",false)
  39. guiWindowSetMovable(loginWindow,false)
  40. usernameField = guiCreateEdit(82,44,204,27,success,false,loginWindow)
  41. usernameLabel = guiCreateLabel(11,49,68,15,"Username:",false,loginWindow)
  42. usernameCheckBox = guiCreateCheckBox(297,48,53,19,"Save",false,false,loginWindow)
  43. passwordField = guiCreateEdit(82,94,204,27,success2,false,loginWindow)
  44. guiEditSetMasked ( passwordField, true )
  45. passwordlabel = guiCreateLabel(11,99,68,15,"Password:",false,loginWindow)
  46. passwordCheckBox = guiCreateCheckBox(297,97,53,19,"Save",false,false,loginWindow)
  47. loginButton = guiCreateButton(10,173,72,32,"Login",false,loginWindow)
  48. registerButton = guiCreateButton(86,172,143,32,"Create new account",false,loginWindow)
  49. passwordButton = guiCreateButton(233,172,117,32,"Forget password",false,loginWindow)
  50. infoLabel = guiCreateLabel(11,140,335,15,"Make sure your username and password are correct!",false,loginWindow)
  51. guiLabelSetHorizontalAlign(infoLabel,"center",false)
  52.  
  53. guiSetFont(infoLabel,"default-bold-small")
  54. serverInfoLabel = guiCreateLabel(11,218,335,15,"Server updates and information",false,loginWindow)
  55. guiLabelSetHorizontalAlign(serverInfoLabel,"center",false)
  56.  
  57. guiSetFont(serverInfoLabel,"default-bold-small")
  58. serverInfoMemo = guiCreateMemo(9,240,341,163,content,false,loginWindow)
  59. guiMemoSetReadOnly(serverInfoMemo,true)
  60.  
  61. guiWindowSetMovable (loginWindow, true)
  62. guiWindowSetSizable (loginWindow, false)
  63. guiSetVisible (loginWindow, false)
  64.  
  65. addEventHandler("onClientGUIClick", loginButton, clientSubmitLogin, false)
  66. addEventHandler("onClientGUIClick", registerButton, showRegisterGui, false)
  67.  
  68. end
  69.  
  70.      if (success) then
  71.           if (success ~= "") then
  72.                guiCheckBoxSetSelected(usernameCheckBox, true)
  73.           end
  74.      end
  75.      if (success2) then
  76.           if (success2 ~= "") then
  77.                guiCheckBoxSetSelected(usernameCheckBox, true)
  78.           end
  79.      end
  80.  
  81. function createRegisterWindow()
  82.  
  83. registerWindow = guiCreateWindow(462,180,438,356,"SSC ~ Account Registration",false)
  84. registerName = guiCreateEdit(186,46,243,27,"",false,registerWindow)
  85. registerLabel1 = guiCreateLabel(11,51,89,18,"Account name:",false,registerWindow)
  86. registerLabel2 = guiCreateLabel(11,112,89,18,"Password:",false,registerWindow)
  87. registerLabel3 = guiCreateLabel(11,154,102,18,"Confirm password:",false,registerWindow)
  88. registerPassword = guiCreateEdit(186,108,243,27,"",false,registerWindow)
  89. registerPassword2 = guiCreateEdit(186,150,243,27,"",false,registerWindow)
  90. guiEditSetMasked ( registerPassword, true )
  91. guiEditSetMasked ( registerPassword2, true )
  92. registerLabel4 = guiCreateLabel(186,22,235,18,"This is not your screen name",false,registerWindow)
  93. guiLabelSetColor(registerLabel4,225,0,0)
  94. registerLabel5 = guiCreateLabel(186,87,235,18,"Create a safe password use also uppercase",false,registerWindow)
  95. guiLabelSetColor(registerLabel5,225,0,0)
  96. registerEmail = guiCreateEdit(186,235,243,27,"",false,registerWindow)
  97. registerLabel6 = guiCreateLabel(11,239,102,18,"Your email:",false,registerWindow)
  98. registerLabel7 = guiCreateLabel(186,216,235,18,"password recover function, when lost it.",false,registerWindow)
  99. guiLabelSetColor(registerLabel7,0,200,0)
  100. registerLabel8 = guiCreateLabel(186,200,235,18,"Email is optional, but is required for the",false,registerWindow)
  101. guiLabelSetColor(registerLabel8,0,200,0)
  102. registerCreate = guiCreateButton(86,312,139,29,"Create account",false,registerWindow)
  103. registerCancel = guiCreateButton(229,312,139,29,"Cancel",false,registerWindow)
  104. registerInfo = guiCreateLabel(11,280,414,18,"Account registration is complete free, your password will be decoded.",false,registerWindow)
  105.  
  106. guiWindowSetMovable (registerWindow, true)
  107. guiWindowSetSizable (registerWindow, false)
  108. guiSetVisible (registerWindow, false)
  109.  
  110. addEventHandler("onClientGUIClick", registerCreate, clientSubmitRegister, false)
  111. addEventHandler("onClientGUIClick", registerCancel, clientSubmitRegisterCancel, false)
  112.  
  113. end
  114.  
  115. addEventHandler("onClientResourceStart", resourceRoot,
  116.     function ()
  117.         createLoginWindow()
  118.         createRegisterWindow()
  119.         createSuccesRegisterWindow()
  120.  
  121.         triggerServerEvent("loginScreen", getLocalPlayer())
  122.     end
  123. )
  124.  
  125. function banCheck ()
  126.  
  127. if (loginWindow ~= nil) then
  128.     guiSetVisible(loginWindow, true)
  129. else
  130.     guiSetText(infoLabel, "Error: There is something wrong, try again")
  131.     guiLabelSetColor ( infoLabel, 225, 0, 0 )
  132. end
  133.  
  134. showCursor(true)
  135. guiSetInputEnabled(true)
  136.  
  137. end
  138. addEvent("banCheck", true)
  139. addEventHandler("banCheck", getRootElement(), banCheck )
  140.  
  141. function banned (days, reason)
  142.  
  143. if (loginWindow ~= nil) then
  144.  
  145. dxDrawText("Reason: ",80.0,222.0,796.0,281.0,tocolor(225,156,0,200),1.5,"pricedown","left","top",false,false,false)
  146. dxDrawText("You are banned from this server!",80.0,98.0,796.0,157.0,tocolor(200,0,0,200),2.0,"pricedown","left","top",false,false,false)
  147. end
  148. end
  149. addEvent("banned", true)
  150. addEventHandler("banned", getRootElement(), banned )
  151.  
  152. function clientSubmitRegister(button, state)
  153.     if button == "left" and state == "up" then
  154.         if guiGetText(registerPassword) == guiGetText(registerPassword2) then
  155.             if  guiGetText(registerName) ~= "" and  guiGetText(registerName) ~= " " then
  156.                 if  guiGetText(registerPassword) ~= "" and  guiGetText(registerPassword) ~= " " then
  157.                     local usernameR = guiGetText(registerName):lower()
  158.                     local passwordR = guiGetText(registerPassword)
  159.                     local email = guiGetText(registerEmail)
  160.                     local serial = getPlayerSerial( source )
  161.                     if usernameR and passwordR then
  162.                     triggerServerEvent("ContactSQL",getLocalPlayer(),usernameR,passwordR,email,serial)
  163.                     else
  164.                     guiSetText(registerInfo, "Error: There is something wrong, try reconnect")
  165.                     guiLabelSetColor ( registerInfo, 225, 0, 0 )
  166.                     end
  167.                 else
  168.                 guiSetText(registerInfo, "Error: Password field is empty")
  169.                 guiLabelSetColor ( registerInfo, 225, 0, 0 )
  170.                 end
  171.             else
  172.             guiSetText(registerInfo, "Error: Username field is empty")
  173.             guiLabelSetColor ( registerInfo, 225, 0, 0 )
  174.             end
  175.         else
  176.         guiSetText(registerInfo, "Error: Passwords dont match")
  177.         guiLabelSetColor ( registerInfo, 225, 0, 0 )
  178.         end
  179.     end
  180. end
  181.  
  182. function clientSubmitLogin(button, state)
  183.     if button == "left" and state == "up" then
  184.         if  guiGetText(usernameField) ~= "" and  guiGetText(usernameField) ~= " " then
  185.             if  guiGetText(passwordField) ~= "" and  guiGetText(passwordField) ~= " " then
  186.             local username = guiGetText(usernameField):lower()
  187.             local password = guiGetText(passwordField)
  188.             if username and password then
  189.             triggerServerEvent("submitLogin", localPlayer, username, password)
  190.             guiSetText(infoLabel, "Attempting to login...")
  191.             guiLabelSetColor ( infoLabel, 225, 165, 0 )
  192.  
  193.             local c1 = guiCheckBoxGetSelected(usernameCheckBox)
  194.             local c2 = guiCheckBoxGetSelected(passwordCheckBox)
  195.  
  196.             local file = xmlLoadFile("account.xml")
  197.             if (c1 == true) then
  198.                 if (username) then
  199.                     local node = xmlFindChild(file, "username", 0)
  200.                     local success = xmlNodeGetValue (node)
  201.                     xmlNodeSetValue(node, username)
  202.                 end
  203.                 end
  204.             if (c2 == true) then
  205.                 if (password) then
  206.                     local node = xmlFindChild(file, "password", 0)
  207.                     local success = xmlNodeGetValue(node)
  208.                     xmlNodeSetValue(node, password)
  209.                 end
  210.                 end
  211.                 if (c1 == false) then
  212.                 node = xmlFindChild(file, "username", 0)
  213.                 xmlNodeSetValue(node, "")
  214.                 end
  215.                 if (c2 == false) then
  216.                 node = xmlFindChild(file, "password", 0)
  217.                 xmlNodeSetValue(node, "")
  218.                 end
  219.                 xmlSaveFile(file)
  220.  
  221.         else
  222.             -- Info when unknown error going wrong here
  223.         end
  224.         else
  225.             guiSetText(infoLabel, "Error: Password field is empty")
  226.             guiLabelSetColor ( infoLabel, 225, 0, 0 )
  227.         end
  228.         else
  229.             guiSetText(infoLabel, "Error: Username field is empty")
  230.             guiLabelSetColor ( infoLabel, 225, 0, 0 )
  231.         end
  232.     end
  233. end
  234.  
  235. function clientSubmitRegisterCancel()
  236.     guiSetVisible(registerWindow,false)
  237.     guiSetVisible(loginWindow,true)
  238.     showCursor(true)
  239.     guiSetInputEnabled(true)
  240. end
  241.  
  242. function clientCloseSuccesWindow()
  243.     guiSetVisible(succesWindow,false)
  244. end
  245.  
  246. function hideGUI()
  247.     guiSetVisible(loginWindow,false)
  248.     showCursor(false,false)
  249.     guiSetInputEnabled(false)
  250.     setAmbientSoundEnabled( "gunfire", false )
  251.     setAmbientSoundEnabled( "general", false )
  252.     showChat ( true )
  253. end
  254.  
  255. function showRegisterGui()
  256.     guiSetVisible(registerWindow,true)
  257.     guiSetVisible(loginWindow,false)
  258.     showCursor(true)
  259.     guiSetInputEnabled(true)
  260. end
  261.  
  262. -- Error handlers here
  263.  
  264.  
  265. function unknownError()
  266.     guiSetText(infoLabel, "Error: Unknown error has occured.")
  267.     guiLabelSetColor ( infoLabel, 225, 0, 0 )
  268. end
  269.  
  270. function wrongLogin()
  271.     guiSetText(infoLabel, "Error: Wrong username and/or password.")
  272.     guiLabelSetColor ( infoLabel, 225, 0, 0 )
  273. end
  274.  
  275. function usernameTaken()
  276.     guiSetText(registerInfo, "Error: This username is allready taken.")
  277.     guiLabelSetColor ( registerInfo, 225, 0, 0 )
  278. end
  279.  
  280. function accountCreated()
  281.     guiSetVisible(registerWindow,false)
  282.     guiSetVisible(loginWindow,true)
  283.     guiSetVisible(succesWindow,true)
  284.     guiBringToFront ( succesWindow )
  285.     showCursor(true)
  286.     guiSetInputEnabled(true)
  287. end
  288.  
  289. function accountError()
  290.     guiSetText(registerInfo, "Error: An error has occured try reconnect")
  291.     guiLabelSetColor ( registerInfo, 225, 0, 0 )
  292. end
  293.  
  294. -- End of errors
  295.  
  296. addEvent("hideGUI", true)
  297. addEvent("unknownError", true)
  298. addEvent("wrongLogin", true)
  299. addEvent("usernameTaken", true)
  300. addEvent("accountCreated", true)
  301. addEvent("accountError", true)
  302. addEventHandler("hideGUI", getRootElement(), hideGUI)
  303. addEventHandler("unknownError", getRootElement(), unknownError)
  304. addEventHandler("wrongLogin", getRootElement(), wrongLogin)
  305. addEventHandler("usernameTaken", getRootElement(), usernameTaken)
  306. addEventHandler("accountCreated", getRootElement(), accountCreated)
  307. addEventHandler("accountError", getRootElement(), accountError)
Add Comment
Please, Sign In to add comment