Advertisement
Guest User

Untitled

a guest
Dec 6th, 2019
317
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 13.06 KB | None | 0 0
  1. local BLUR = exports['cl-blurbox']
  2.  
  3. local login = {
  4. fonts = {},
  5. pos = {},
  6. sound = nil,
  7. actual = "logowanie",
  8. editbox = {},
  9. textures = {},
  10. alpha = {},
  11. showpass = true,
  12. }
  13.  
  14. login.alpha[1], login.alpha[2], login.alpha[3] = 255, 255, 255
  15.  
  16. function isEventHandlerAdded( sEventName, pElementAttachedTo, func )
  17. if type( sEventName ) == 'string' and isElement( pElementAttachedTo ) and type( func ) == 'function' then
  18. local aAttachedFunctions = getEventHandlers( sEventName, pElementAttachedTo )
  19. if type( aAttachedFunctions ) == 'table' and #aAttachedFunctions > 0 then
  20. for i, v in ipairs( aAttachedFunctions ) do
  21. if v == func then
  22. return true
  23. end
  24. end
  25. end
  26. end
  27. return false
  28. end
  29.  
  30. local sx, sy = guiGetScreenSize()
  31. local screen = Vector2(guiGetScreenSize())
  32. local zoom = 1920 / sx
  33.  
  34. function isMouseIn(psx,psy,pssx,pssy,abx,aby)
  35. if not isCursorShowing() then return end
  36. cx,cy=getCursorPosition()
  37. cx,cy=cx*sx,cy*sy
  38. if cx >= psx and cx <= psx+pssx and cy >= psy and cy <= psy+pssy then
  39. return true,cx,cy
  40. else
  41. return false
  42. end
  43. end
  44.  
  45. login.interface = function()
  46. login.textures = {
  47. logo = dxCreateTexture("files/images/logo.png", "argb", true, "clamp"),
  48. button = dxCreateTexture("files/images/button.png", "argb", true, "clamp"),
  49. password_hash = dxCreateTexture("files/images/password_hash.png", "argb", true, "clamp"),
  50. password = dxCreateTexture("files/images/password.png", "argb", true, "clamp"),
  51. }
  52. login.fonts = {
  53. default20 = dxCreateFont("files/fonts/normal.ttf", 20),
  54. default22 = dxCreateFont("files/fonts/normal.ttf", 22),
  55. default10 = dxCreateFont("files/fonts/normal.ttf", 10),
  56. default13 = dxCreateFont("files/fonts/normal.ttf", 13),
  57. }
  58.  
  59. login.pos = {
  60. x = (screen.x - 412/zoom)/2,
  61. y = (screen.y - 475/zoom)/2,
  62. w = 412/zoom,
  63. h = 475/zoom,
  64. }
  65. end
  66.  
  67. login.destroyInterface = function()
  68. BLUR:destroyBlurBox(blurbox)
  69. showCursor(false)
  70. blurbox = nil
  71. end
  72. addEventHandler("onClientResourceStop", resourceRoot, login.destroyInterface)
  73.  
  74. login.render = function()
  75. if login.actual == "rejestracja" then
  76. guiSetVisible(login.editbox[1], false)
  77. guiSetVisible(login.editbox[2], false)
  78. guiSetVisible(login.editbox[3], true)
  79. guiSetVisible(login.editbox[4], true)
  80. dxDrawImage(login.pos.x + 105/zoom, login.pos.y + 395/zoom, 195/zoom, 40/zoom, login.textures.button, 0, 0, 0, tocolor(7, 200, 54, login.alpha[1]))
  81. dxDrawImage(login.pos.x + 105/zoom, login.pos.y + 450/zoom, 195/zoom, 40/zoom, login.textures.button, 0, 0, 0, tocolor(7, 200, 54, login.alpha[2]))
  82. if isMouseIn(login.pos.x + 105/zoom, login.pos.y + 395/zoom, 195/zoom, 40/zoom) and not (login.alpha[1] == 180) then login.alpha[1] = login.alpha[1] - 5 end
  83. if not isMouseIn(login.pos.x + 105/zoom, login.pos.y + 395/zoom, 195/zoom, 40/zoom) and not (login.alpha[1] == 255) then login.alpha[1] = login.alpha[1] + 5 end
  84. if isMouseIn(login.pos.x + 105/zoom, login.pos.y + 450/zoom, 195/zoom, 40/zoom) and not (login.alpha[2] == 180) then login.alpha[2] = login.alpha[2] - 5 end
  85. if not isMouseIn(login.pos.x + 105/zoom, login.pos.y + 450/zoom, 195/zoom, 40/zoom) and not (login.alpha[2] == 255) then login.alpha[2] = login.alpha[2] + 5 end
  86. if isMouseIn(login.pos.x + 305/zoom, login.pos.y + 324/zoom, 35/zoom, 20/zoom) and not (login.alpha[3] == 180) then login.alpha[3] = login.alpha[3] - 5 end
  87. if not isMouseIn(login.pos.x + 305/zoom, login.pos.y + 324/zoom, 35/zoom, 20/zoom) and not (login.alpha[3] == 255) then login.alpha[3] = login.alpha[3] + 5 end
  88. if login.showpass == false then dxDrawImage(login.pos.x + 305/zoom, login.pos.y + 324/zoom, 35/zoom, 20/zoom, login.textures.password, 0, 0, 0, tocolor(255, 255, 255, login.alpha[3])) else dxDrawImage(login.pos.x + 305/zoom, login.pos.y + 324/zoom, 35/zoom, 20/zoom, login.textures.password_hash, 0, 0, 0, tocolor(255, 255, 255, login.alpha[3])) end
  89. dxDrawText("REJESTRACJA", login.pos.x - 10/zoom, login.pos.y + 133/zoom, login.pos.x + login.pos.w, login.pos.y + login.pos.h, tocolor(255, 255, 255, 255), 1/zoom, login.fonts.default22, "center", "top", false, true)
  90. dxDrawText("Uzupełnij poniższe pola.", login.pos.x - 10/zoom, login.pos.y + 165/zoom, login.pos.x + login.pos.w, login.pos.y + login.pos.h, tocolor(255, 255, 255, 255), 1/zoom, login.fonts.default10, "center", "top", false, true)
  91. dxDrawText("Login:", login.pos.x - 10/zoom, login.pos.y + 230/zoom, login.pos.x + login.pos.w, login.pos.y + login.pos.h, tocolor(255, 255, 255, 255), 1/zoom, login.fonts.default10, "center", "top", false, true)
  92. dxDrawText("Hasło:", login.pos.x - 10/zoom, login.pos.y + 300/zoom, login.pos.x + login.pos.w, login.pos.y + login.pos.h, tocolor(255, 255, 255, 255), 1/zoom, login.fonts.default10, "center", "top", false, true)
  93. dxDrawText("Zarejestruj się", login.pos.x - 7/zoom, login.pos.y + 405/zoom, login.pos.x + login.pos.w, login.pos.y + login.pos.h, tocolor(255, 255, 255, 255), 1/zoom, login.fonts.default13, "center", "top")
  94. dxDrawText("Powrót do logowania", login.pos.x - 5/zoom, login.pos.y + 459/zoom, login.pos.x + login.pos.w, login.pos.y + login.pos.h, tocolor(255, 255, 255, 255), 1/zoom, login.fonts.default13, "center", "top")
  95. elseif login.actual == "logowanie" then
  96. guiSetVisible(login.editbox[1], true)
  97. guiSetVisible(login.editbox[2], true)
  98. guiSetVisible(login.editbox[3], false)
  99. guiSetVisible(login.editbox[4], false)
  100. dxDrawImage(login.pos.x + 105/zoom, login.pos.y + 395/zoom, 195/zoom, 40/zoom, login.textures.button, 0, 0, 0, tocolor(7, 200, 54, login.alpha[1]))
  101. dxDrawImage(login.pos.x + 105/zoom, login.pos.y + 450/zoom, 195/zoom, 40/zoom, login.textures.button, 0, 0, 0, tocolor(7, 200, 54, login.alpha[2]))
  102. if isMouseIn(login.pos.x + 105/zoom, login.pos.y + 395/zoom, 195/zoom, 40/zoom) and not (login.alpha[1] == 180) then login.alpha[1] = login.alpha[1] - 5 end
  103. if not isMouseIn(login.pos.x + 105/zoom, login.pos.y + 395/zoom, 195/zoom, 40/zoom) and not (login.alpha[1] == 255) then login.alpha[1] = login.alpha[1] + 5 end
  104. if isMouseIn(login.pos.x + 105/zoom, login.pos.y + 450/zoom, 195/zoom, 40/zoom) and not (login.alpha[2] == 180) then login.alpha[2] = login.alpha[2] - 5 end
  105. if not isMouseIn(login.pos.x + 105/zoom, login.pos.y + 450/zoom, 195/zoom, 40/zoom) and not (login.alpha[2] == 255) then login.alpha[2] = login.alpha[2] + 5 end
  106. if isMouseIn(login.pos.x + 305/zoom, login.pos.y + 324/zoom, 35/zoom, 20/zoom) and not (login.alpha[3] == 180) then login.alpha[3] = login.alpha[3] - 5 end
  107. if not isMouseIn(login.pos.x + 305/zoom, login.pos.y + 324/zoom, 35/zoom, 20/zoom) and not (login.alpha[3] == 255) then login.alpha[3] = login.alpha[3] + 5 end
  108. if login.showpass == false then dxDrawImage(login.pos.x + 305/zoom, login.pos.y + 324/zoom, 35/zoom, 20/zoom, login.textures.password, 0, 0, 0, tocolor(255, 255, 255, login.alpha[3])) else dxDrawImage(login.pos.x + 305/zoom, login.pos.y + 324/zoom, 35/zoom, 20/zoom, login.textures.password_hash, 0, 0, 0, tocolor(255, 255, 255, login.alpha[3])) end
  109. dxDrawText("LOGOWANIE", login.pos.x - 10/zoom, login.pos.y + 133/zoom, login.pos.x + login.pos.w, login.pos.y + login.pos.h, tocolor(255, 255, 255, 255), 1/zoom, login.fonts.default22, "center", "top", false, true)
  110. dxDrawText("Uzupełnij poniższe pola.", login.pos.x - 10/zoom, login.pos.y + 165/zoom, login.pos.x + login.pos.w, login.pos.y + login.pos.h, tocolor(255, 255, 255, 255), 1/zoom, login.fonts.default10, "center", "top", false, true)
  111. dxDrawText("Login:", login.pos.x - 10/zoom, login.pos.y + 230/zoom, login.pos.x + login.pos.w, login.pos.y + login.pos.h, tocolor(255, 255, 255, 255), 1/zoom, login.fonts.default10, "center", "top", false, true)
  112. dxDrawText("Hasło:", login.pos.x - 10/zoom, login.pos.y + 300/zoom, login.pos.x + login.pos.w, login.pos.y + login.pos.h, tocolor(255, 255, 255, 255), 1/zoom, login.fonts.default10, "center", "top", false, true)
  113. dxDrawText("Zaloguj się", login.pos.x - 7/zoom, login.pos.y + 405/zoom, login.pos.x + login.pos.w, login.pos.y + login.pos.h, tocolor(255, 255, 255, 255), 1/zoom, login.fonts.default13, "center", "top")
  114. dxDrawText("Zarejestruj się", login.pos.x - 8/zoom, login.pos.y + 459/zoom, login.pos.x + login.pos.w, login.pos.y + login.pos.h, tocolor(255, 255, 255, 255), 1/zoom, login.fonts.default13, "center", "top")
  115. end
  116. dxDrawRectangle(login.pos.x + 10/zoom, login.pos.y + 540/zoom, login.pos.w - 20/zoom, login.pos.h - 470/zoom, tocolor(7, 141, 54, 255))
  117. dxDrawImage(login.pos.x + 100/zoom, login.pos.y, 200/zoom, 105/zoom, login.textures.logo, 0, 0, 0, tocolor(255, 255, 255, 255))
  118. if blurbox then return end
  119. blurbox = BLUR:createBlurBox(login.pos.x + 10/zoom, login.pos.y - 45/zoom, login.pos.w - 20/zoom, login.pos.h + 110/zoom, 75, 75, 75, 255)
  120. setCameraMatrix(-1975.30591, 62.41966, 41.06683, -2000.61511, 137.18013, 40.66983 - 10, 0, 90)
  121. end
  122.  
  123. login.click = function(btn, state)
  124. if btn == "left" and state == "down" then
  125. if isMouseIn(login.pos.x + 105/zoom, login.pos.y + 395/zoom, 195/zoom, 40/zoom) and login.actual == "logowanie" then
  126. local username = guiGetText(login.editbox[1])
  127. local password = guiGetText(login.editbox[2])
  128. if string.len(username) < 3 then outputChatBox("Podany login ma za mało znaków.") return end
  129. if string.len(username) > 16 then outputChatBox("Podany login ma za dużo znaków") return end
  130. if string.len(password) < 3 then outputChatBox("Podane hasło ma za mało znaków.") return end
  131. triggerServerEvent("onPlayerClickLoginButton", resourceRoot, username, password)
  132. elseif isMouseIn(login.pos.x + 305/zoom, login.pos.y + 324/zoom, 35/zoom, 20/zoom) and login.actual == "logowanie" then
  133. if login.showpass == false then login.showpass = true guiEditSetMasked(login.editbox[2], true) else login.showpass = false guiEditSetMasked(login.editbox[2], false) end
  134. elseif isMouseIn(login.pos.x + 305/zoom, login.pos.y + 324/zoom, 35/zoom, 20/zoom) and login.actual == "rejestracja" then
  135. if login.showpass == false then login.showpass = true guiEditSetMasked(login.editbox[4], true) else login.showpass = false guiEditSetMasked(login.editbox[4], false) end
  136. elseif isMouseIn(login.pos.x + 105/zoom, login.pos.y + 395/zoom, 195/zoom, 40/zoom) and login.actual == "rejestracja" then
  137. local username = guiGetText(login.editbox[3])
  138. local password = guiGetText(login.editbox[4])
  139. if string.len(username) < 3 then outputChatBox("Podany login ma za mało znaków.") return end
  140. if string.len(username) > 16 then outputChatBox("Podany login ma za dużo znaków") return end
  141. if string.len(password) < 3 then outputChatBox("Podane hasło ma za mało znaków.") return end
  142. triggerServerEvent("onPlayerClickRegisterButton", resourceRoot, username, password)
  143. elseif isMouseIn(login.pos.x + 105/zoom, login.pos.y + 450/zoom, 195/zoom, 40/zoom) and login.actual == "logowanie" then
  144. if tick == true then return end
  145. tick = true
  146. login.actual = "rejestracja"
  147. setTimer(function()
  148. tick = false
  149. end, 1000, 1)
  150. elseif isMouseIn(login.pos.x + 105/zoom, login.pos.y + 450, 195/zoom, 40/zoom) and login.actual == "rejestracja" then
  151. if tick == true then return end
  152. tick = true
  153. login.actual = "logowanie"
  154. setTimer(function()
  155. tick = false
  156. end, 1000, 1)
  157. end
  158. end
  159. end
  160. addEventHandler("onClientClick", root, login.click)
  161.  
  162. addEvent("onClientClickButton", true)
  163. addEventHandler("onClientClickButton", resourceRoot, function(value)
  164. if value == true then
  165. fadeCamera(false)
  166. removeEventHandler("onClientRender", root, login.render)
  167. BLUR:destroyBlurBox(blurbox)
  168. showCursor(false)
  169.  
  170. if isElement(login.editbox[1]) then
  171. destroyElement(login.editbox[1])
  172. end
  173.  
  174. if isElement(login.editbox[2]) then
  175. destroyElement(login.editbox[2])
  176. end
  177.  
  178. if isElement(login.editbox[3]) then
  179. destroyElement(login.editbox[3])
  180. end
  181.  
  182. if isElement(login.editbox[4]) then
  183. destroyElement(login.editbox[4])
  184. end
  185.  
  186. blurbox = nil
  187. setTimer(function()
  188. showCursor(true)
  189. addEventHandler("onClientRender", root, login.render)
  190. login.actual = "spawnowanie"
  191. fadeCamera(true)
  192. end, 1500, 1)
  193. end
  194. end)
  195.  
  196.  
  197. login.check = function()
  198. if getElementData(getLocalPlayer(), "user:uid") and getElementData(getLocalPlayer(), "user:spawned") then return end
  199. showCursor(true)
  200. showChat(false)
  201. fadeCamera(true)
  202. setElementAlpha(getLocalPlayer(), 0)
  203. addEventHandler("onClientRender", root, login.render)
  204. login.sound = playSound("http://foow.org/W35DfE5nLmlwSmRE9uHn", true)
  205. login.editbox[1] = guiCreateEdit((screen.x - 412/zoom)/2 + 102/zoom, (screen.y - 475/zoom)/2 + 247/zoom, 200/zoom, 35/zoom, "", false)
  206. login.editbox[2] = guiCreateEdit((screen.x - 412/zoom)/2 + 102/zoom, (screen.y - 475/zoom)/2 + 317/zoom, 200/zoom, 35/zoom, "", false)
  207. login.editbox[3] = guiCreateEdit((screen.x - 412/zoom)/2 + 102/zoom, (screen.y - 475/zoom)/2 + 247/zoom, 200/zoom, 35/zoom, "", false)
  208. login.editbox[4] = guiCreateEdit((screen.x - 412/zoom)/2 + 102/zoom, (screen.y - 475/zoom)/2 + 317/zoom, 200/zoom, 35/zoom, "", false)
  209. guiEditSetMasked(login.editbox[4], true)
  210. guiEditSetMasked(login.editbox[2], true)
  211. guiEditSetMaxLength(login.editbox[1], 16)
  212. guiEditSetMaxLength(login.editbox[3], 16)
  213. guiEditSetMaxLength(login.editbox[2], 32)
  214. guiEditSetMaxLength(login.editbox[4], 32)
  215. setPlayerHudComponentVisible("all", false)
  216. login.interface()
  217. end
  218.  
  219. login.check()
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement