Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- if getElementData(localPlayer, "user:logged") or getElementData(localPlayer, "user:uid") then return end
- Login_Client = {}
- Login_Client.__index = Login_Client
- function Login_Client:new (...)
- local object = setmetatable({}, {__index = self})
- if object.construct then
- object:construct(...)
- end
- return object
- end
- function Login_Client:Background ()
- Fog:renderFogRectangle()
- self.FFTData = getSoundFFTData(self.music, 2048, 130)
- if not self.FFTData then return end
- for key, value in pairs(self.FFTData) do
- opacity = Elements:Round((value * 1920), 5) > 110 and 110 or Elements:Round((value * 1920), 5)
- alpha = interpolateBetween(opacity, 220, opacity, 220, opacity, 220, (getTickCount()/570), "CosineCurve")
- end
- Fog:setFogSpeed(4.6)
- dxDrawImage(0, 0, self.screen.x, self.screen.y, self.textures['background'])
- dxDrawRectangle(0, 0, self.screen.x, self.screen.y, tocolor(102, 105, 107, 110))
- dxDrawImage(0, 0, self.screen.x, self.screen.y, self.textures['lights'], 0, 0, 0, tocolor(255, 255, 255, alpha), true)
- end
- function Login_Client:Music (bool)
- if bool == true then
- if not self.music then
- self.music = playSound("sounds/music.mp3", true)
- setSoundVolume(self.music, self.volume)
- end
- addEventHandler("onClientRender", root, self.VUPFunct)
- removeEventHandler("onClientRender", root, self.VDNFunct)
- else
- addEventHandler("onClientRender", root, self.VDNFunct)
- removeEventHandler("onClientRender", root, self.VUPFunct)
- end
- end
- function Login_Client:VUP ()
- self.volume = self.volume + 0.0075
- setSoundVolume(self.music, self.volume)
- if self.volume >= 1 then
- removeEventHandler("onClientRender", root, self.VUPFunct)
- end
- end
- function Login_Client:VDN ()
- self.volume = self.volume - 0.0075
- setSoundVolume(self.music, self.volume)
- if self.volume <= 0 then
- removeEventHandler("onClientRender", root, self.VDNFunct)
- destroyElement(self.music)
- self.music = false
- end
- end
- function Login_Client:RenderAnimations ()
- if self.Main ~= true then
- self.MainAlpha = interpolateBetween(255, 0, 0, 0, 0, 0, (getTickCount() - self.LoginTick) / 620, "Linear")
- else
- self.MainAlpha = interpolateBetween(0, 0, 0, 255, 0, 0, (getTickCount() - self.LoginTick) / 620, "Linear")
- self.LoginPosX = interpolateBetween(self.screen.x - 860/1080*self.screen.y, 0, 0, self.screen.x - 600/1080*self.screen.y, 0, 0, (getTickCount() - self.LoginTick) / 720, "OutQuad")
- self.RegisterPosY = interpolateBetween(self.screen.y/2 - 350/1080*self.screen.y, 0, 0, self.screen.y/2 - 220/1080*self.screen.y, 0, 0, (getTickCount() - self.LoginTick) / 720, "OutQuad")
- self.ChangesPosY = interpolateBetween(self.screen.y - 340/1080*self.screen.y, 0, 0, self.screen.y - 520/1080*self.screen.y, 0, 0, (getTickCount() - self.LoginTick) / 720, "OutQuad")
- end
- if self.Login ~= true then
- self.LoginAlpha = interpolateBetween(255, 0, 0, 0, 0, 0, (getTickCount() - self.LoginTick) / 620, "Linear")
- else
- self.LoginAlpha = interpolateBetween(0, 0, 0, 255, 0, 0, (getTickCount() - self.LoginTick) / 620, "Linear")
- end
- if self.Register ~= true then
- self.RegisterAlpha = interpolateBetween(255, 0, 0, 0, 0, 0, (getTickCount() - self.LoginTick) / 620, "Linear")
- else
- self.RegisterAlpha = interpolateBetween(0, 0, 0, 255, 0, 0, (getTickCount() - self.LoginTick) / 620, "Linear")
- end
- if self.Changes ~= true then
- self.ChangesAlpha = interpolateBetween(255, 0, 0, 0, 0, 0, (getTickCount() - self.LoginTick) / 620, "Linear")
- else
- self.ChangesAlpha = interpolateBetween(0, 0, 0, 255, 0, 0, (getTickCount() - self.LoginTick) / 620, "Linear")
- end
- if self.Banned ~= true then
- self.BannedAlpha = interpolateBetween(255, 0, 0, 0, 0, 0, (getTickCount() - self.LoginTick) / 620, "Linear")
- else
- self.BannedAlpha = interpolateBetween(0, 0, 0, 255, 0, 0, (getTickCount() - self.LoginTick) / 620, "Linear")
- end
- end
- function Login_Client:RenderMain ()
- if self.Main ~= true and getTickCount() - self.LoginTick > 720 then
- self.LoginTick = getTickCount()
- if self.Login ~= false then
- removeEventHandler("onClientRender", root, self.mainRender)
- addEventHandler("onClientRender", root, self.loginRender)
- elseif self.Register ~= false then
- removeEventHandler("onClientRender", root, self.mainRender)
- addEventHandler("onClientRender", root, self.registerRender)
- elseif self.Changes ~= false then
- removeEventHandler("onClientRender", root, self.mainRender)
- addEventHandler("onClientRender", root, self.changesRender)
- elseif self.Banned ~= false then
- removeEventHandler("onClientRender", root, self.mainRender)
- addEventHandler("onClientRender", root, self.bannedRender)
- end
- end
- local h = (512/1080*self.screen.y)*(1.0/1080*self.screen.y)
- dxDrawImage( 130/1080*self.screen.y, self.screen.y/2 - (434/self.zoom)/2, (371/self.zoom), (434/self.zoom), self.textures['logo'], 0, 0, 0, tocolor(255, 255, 255, self.MainAlpha))
- Elements:DrawMainButton( self.LoginPosX, 443/1080*self.screen.y, self.textures['buttons']['login']['hover'], self.textures['buttons']['login']['nohover'], self.textures['buttons']['login']['nohover'], self.MainAlpha)
- Elements:DrawMainButton( self.screen.x - 390/1080*self.screen.y, self.RegisterPosY, self.textures['buttons']['register']['hover'], self.textures['buttons']['register']['nohover'], self.textures['buttons']['register']['nohover'], self.MainAlpha)
- Elements:DrawMainButton( self.screen.x - 390/1080*self.screen.y, self.ChangesPosY, self.textures['buttons']['changes']['hover'], self.textures['buttons']['changes']['nohover'], self.textures['buttons']['changes']['nohover'], self.MainAlpha)
- end
- function Login_Client:RenderBanned ()
- local w, h = 271/self.zoom, 334/self.zoom
- dxDrawImage( self.screen.x/2 - w/2, (self.screen.y/2 - h/2) - 305/1080*self.screen.y, w, h, self.textures['logo'], 0, 0, 0, tocolor(255, 255, 255, self.BannedAlpha))
- dxDrawText("ZBANOWANY", 0, 656/1080*self.screen.y, self.screen.x, 280/1080*self.screen.y, tocolor(255, 255, 255, self.BannedAlpha), 1, self.fonts['light_login'], "center", "center")
- dxDrawText("Zostałeś zbanowany na tym serwerze!\n\nGracz: " .. getElementData(localPlayer, "ban:playernick") .. " (".. getElementData(localPlayer, "ban:playerserial") ..")\nPowód bana: " .. getElementData(localPlayer, "ban:reason") .. "\nZbanowany przez: " .. getElementData(localPlayer, "ban:playerbannedby") .. "\nData ważności bana: " .. getElementData(localPlayer, "ban:date"), 0, 512/1080*self.screen.y, self.screen.x, 280/1080*self.screen.y, tocolor(255, 255, 255, self.BannedAlpha), 1, self.fonts['normal_button'], "center", "top")
- GUI:renderButton(self.DisconnectButton)
- GUI:setButtonPosition(self.DisconnectButton, self.screen.x/2 - (190/1080*self.screen.y)/2, 784/1080*self.screen.y)
- GUI:setButtonTexturesColor(self.DisconnectButton, tocolor(255, 255, 255, self.BannedAlpha))
- end
- function Login_Client:RenderLogin ()
- if self.Login == false and getTickCount() - self.LoginTick > 720 then
- removeEventHandler("onClientRender", root, self.loginRender)
- GUI:destroyButton(self.loginBackButton)
- GUI:destroyButton(self.loginEnterButton)
- GUI:destroyEditBox(self.loginEditbox)
- GUI:destroyEditBox(self.passwordEditbox)
- GUI:destroyCheckbox(self.rememberMeCheckBox)
- collectgarbage("collect")
- if self.Destroy ~= true then
- collectgarbage()
- addEventHandler("onClientRender", root, self.mainRender)
- end
- self.LoginTick = getTickCount()
- end
- local w, h = 271/self.zoom, 334/self.zoom
- dxDrawImage( self.screen.x/2 - w/2, (self.screen.y/2 - h/2) - 305/1080*self.screen.y, w, h, self.textures['logo'], 0, 0, 0, tocolor(255, 255, 255, self.LoginAlpha))
- dxDrawText("AUTORYZACJA", 0, 656/1080*self.screen.y, self.screen.x, 280/1080*self.screen.y, tocolor(255, 255, 255, self.LoginAlpha), 1, self.fonts['light_login'], "center", "center")
- GUI:renderEditBox(self.loginEditbox)
- GUI:setEditBoxAlpha(self.loginEditbox, self.LoginAlpha)
- GUI:renderEditBox(self.passwordEditbox)
- GUI:setEditBoxAlpha(self.passwordEditbox, self.LoginAlpha)
- GUI:renderButton(self.loginBackButton)
- GUI:renderButton(self.loginEnterButton)
- GUI:renderCheckbox(self.rememberMeCheckBox)
- GUI:setCheckboxTexturesColor(self.rememberMeCheckBox, tocolor(255, 255, 255, self.LoginAlpha), self.LoginAlpha )
- GUI:setButtonPosition(self.loginEnterButton, self.screen.x/2 - (404/1080*self.screen.y)/2, 748/1080*self.screen.y)
- GUI:setButtonTexturesColor(self.loginEnterButton, tocolor(255, 255, 255, self.LoginAlpha))
- GUI:setEditBoxPosition(self.loginEditbox, self.screen.x/2 - (200/1080*self.screen.y)/2 + (52/1080*self.screen.y), 525/1080*self.screen.y)
- GUI:setEditBoxPosition(self.passwordEditbox, self.screen.x/2 - (200/1080*self.screen.y)/2 + (52/1080*self.screen.y), 601/1080*self.screen.y)
- GUI:setButtonPosition(self.loginBackButton, self.screen.x/2 + (74/1080*self.screen.y)/2, 750/1080*self.screen.y)
- GUI:setButtonTexturesColor(self.loginBackButton, tocolor(255, 255, 255, self.LoginAlpha))
- if isElement(self.rememberMeCheckBox) then
- local radius, width = GUI:getCheckBoxRadius(self.rememberMeCheckBox), GUI:getCheckBoxTextWidth(self.rememberMeCheckBox)
- GUI:setCheckboxPosition(self.rememberMeCheckBox, (self.screen.x/2 - radius/2) - (width*0.33) - 25/1080*self.screen.y, 700/1080*self.screen.y )
- end
- end
- function Login_Client:RenderRegister ()
- if self.Register == false and getTickCount() - self.LoginTick > 720 then
- removeEventHandler("onClientRender", root, self.registerRender)
- GUI:destroyButton(self.registerBackButton)
- GUI:destroyButton(self.registerEnterButton)
- GUI:destroyEditBox(self.Register_Login_Editbox)
- GUI:destroyEditBox(self.Register_Password_Editbox)
- GUI:destroyEditBox(self.Register_PasswordAgain_Editbox)
- GUI:destroyEditBox(self.Register_Email_Editbox)
- GUI:destroyCheckbox(self.acceptRegulations)
- GUI:destroyButton(self.registerBackButton)
- collectgarbage("collect")
- if self.Destroy ~= true then
- collectgarbage()
- addEventHandler("onClientRender", root, self.mainRender)
- end
- self.LoginTick = getTickCount()
- end
- local w, h = 271/self.zoom, 334/self.zoom
- dxDrawImage( self.screen.x/2 - w/2, (self.screen.y/2 - h/2) - 314/1080*self.screen.y, w, h, self.textures['logo'], 0, 0, 0, tocolor(255, 255, 255, self.RegisterAlpha))
- dxDrawText("REJESTRACJA", 0, 629/1080*self.screen.y, self.screen.x, 280/1080*self.screen.y, tocolor(255, 255, 255, self.RegisterAlpha), 1, self.fonts['light_login'], "center", "center")
- GUI:renderEditBox(self.Register_Login_Editbox)
- GUI:setEditBoxPosition(self.Register_Login_Editbox, self.screen.x/2 + (510/1080*self.screen.y)/2 + (56/1080*self.screen.y), 507/1080*self.screen.y)
- GUI:setEditBoxAlpha(self.Register_Login_Editbox, self.RegisterAlpha )
- GUI:renderEditBox(self.Register_Password_Editbox)
- GUI:setEditBoxPosition(self.Register_Password_Editbox, self.screen.x/2 - (410/1080*self.screen.y)/2 + (56/1080*self.screen.y), 581/1080*self.screen.y)
- GUI:setEditBoxAlpha(self.Register_Password_Editbox, self.RegisterAlpha )
- GUI:renderEditBox(self.Register_PasswordAgain_Editbox)
- GUI:setEditBoxPosition(self.Register_PasswordAgain_Editbox, self.screen.x/2 - (410/1080*self.screen.y)/2 + (56/1080*self.screen.y), 656/1080*self.screen.y)
- GUI:setEditBoxAlpha(self.Register_PasswordAgain_Editbox, self.RegisterAlpha )
- GUI:renderEditBox(self.Register_Email_Editbox)
- GUI:setEditBoxPosition(self.Register_Email_Editbox, self.screen.x/2 - (410/1080*self.screen.y)/2 + (56/1080*self.screen.y), 731/1080*self.screen.y)
- GUI:setEditBoxAlpha(self.Register_Email_Editbox, self.RegisterAlpha )
- GUI:renderCheckbox(self.acceptRegulations)
- GUI:setCheckboxTexturesColor(self.acceptRegulations, tocolor(255, 255, 255, self.RegisterAlpha), self.RegisterAlpha )
- GUI:renderButton(self.registerBackButton)
- GUI:setButtonPosition(self.registerBackButton, self.screen.x/2 + (75/1080*self.screen.y)/2, self.screen.y - 211/1080*self.screen.y)
- GUI:setButtonTexturesColor(self.registerBackButton, tocolor(255, 255, 255, self.RegisterAlpha))
- GUI:renderButton(self.registerEnterButton)
- GUI:setButtonPosition(self.registerEnterButton, self.screen.x/2 - (406/1080*self.screen.y)/2, self.screen.y - 211/1080*self.screen.y)
- GUI:setButtonTexturesColor(self.registerEnterButton, tocolor(255, 255, 255, self.RegisterAlpha))
- if isElement(self.acceptRegulations) then
- local radius, width = GUI:getCheckBoxRadius(self.acceptRegulations), GUI:getCheckBoxTextWidth(self.acceptRegulations)
- GUI:setCheckboxPosition(self.acceptRegulations, (self.screen.x/2 - radius/2) - (width*0.34) - 25/1080*self.screen.y, self.screen.y - 250/1080*self.screen.y )
- end
- end
- function Login_Client:RenderChanges ()
- if self.Changes == false and getTickCount() - self.LoginTick > 720 then
- removeEventHandler("onClientRender", root, self.changesRender)
- GUI:destroyButton(self.changesBackButton)
- collectgarbage("collect")
- if self.Destroy ~= true then
- collectgarbage()
- addEventHandler("onClientRender", root, self.mainRender)
- end
- self.LoginTick = getTickCount()
- end
- GUI:renderButton(self.changesBackButton)
- GUI:setButtonPosition(self.changesBackButton, self.screen.x/2 - (190/1080*self.screen.y)/2, 940/1080*self.screen.y)
- GUI:setButtonTexturesColor(self.changesBackButton, tocolor(255, 255, 255, self.ChangesAlpha))
- dxDrawText("ZMIANY", 170/1080*self.screen.y, 340/1080*self.screen.y, 1020/1080*self.screen.y, 160/1080*self.screen.y, tocolor(255, 255, 255, self.ChangesAlpha), 1, self.fonts['light_title'], "left", "bottom")
- local offsetTable = {}
- offsetTable["data"] = 170/1080*self.screen.y
- dxDrawText("DATA", offsetTable["data"], 340/1080*self.screen.y, 1020/1080*self.screen.y, 200/1080*self.screen.y, tocolor(255, 255, 255, self.ChangesAlpha), 1, self.fonts['changes_grid'], "left", "bottom")
- offsetTable["category"] = offsetTable["data"]+dxGetTextWidth("DATA", 1.0, self.fonts['changes_grid'])+100/1080*self.screen.y
- dxDrawText("KATEGORIA", offsetTable["category"], 340/1080*self.screen.y, 1020/1080*self.screen.y, 200/1080*self.screen.y, tocolor(255, 255, 255, self.ChangesAlpha), 1, self.fonts['changes_grid'], "left", "bottom")
- offsetTable["change"] = offsetTable["category"]+dxGetTextWidth("KATEGORIA", 1.0, self.fonts['changes_grid'])+50/1080*self.screen.y
- dxDrawText("ZMIANA", offsetTable["change"], 340/1080*self.screen.y, 1020/1080*self.screen.y, 200/1080*self.screen.y, tocolor(255, 255, 255, self.ChangesAlpha), 1, self.fonts['changes_grid'], "left", "bottom")
- dxDrawImage(170/1080*self.screen.y, 220/1080*self.screen.y, self.screen.x-350/1080*self.screen.y, 2/1080*self.screen.y, self.textures['line'], 0, 0, 0, tocolor(255, 255, 255, self.ChangesAlpha), true)
- self.index = 0
- for key, value in ipairs(self.changesLog) do
- self.index = self.index + 1
- local sy = 38/1080 * self.screen.y * self.index
- dxDrawText(value.changeDate, offsetTable["data"], 200/1080*self.screen.y + sy, 1020/1080*self.screen.y, 290/1080*self.screen.y, tocolor(255, 255, 255, self.ChangesAlpha), 1, self.fonts['changes_text'], "left", "top")
- dxDrawText(value.changeType, offsetTable["category"], 200/1080*self.screen.y + sy, 1020/1080*self.screen.y, 290/1080*self.screen.y, tocolor(255, 255, 255, self.ChangesAlpha), 1, self.fonts['changes_text'], "left", "top")
- dxDrawText(value.changeText, offsetTable["change"], 200/1080*self.screen.y + sy, 1020/1080*self.screen.y, 290/1080*self.screen.y, tocolor(255, 255, 255, self.ChangesAlpha), 1, self.fonts['changes_text'], "left", "top")
- end
- end
- function Login_Client:onLogin()
- local login = GUI:getEditBoxText(self.loginEditbox)
- local password = GUI:getEditBoxText(self.passwordEditbox)
- if string.len(login) == 0 or string.len(password) == 0 then
- exports["ps_hud"]:showPlayerNotification("Musisz wypełnić wszystkie pola tekstowe!", "error", true, 6500)
- else
- exports["ps_hud"]:showPlayerNotification("Trwa weryfikacja danych, proszę czekać...", "info", true, 4100)
- setTimer(function()
- triggerServerEvent("onPlayerLoginAccount", resourceRoot, login, password)
- end, 800, 1)
- self:saveXML(login, password, self.rememberMeCheckBox)
- end
- end
- function Login_Client:loadXML ()
- if not self.xmlFile then
- self.xmlFile = xmlCreateFile("userdata.xml", "userdata")
- usernameChild = xmlCreateChild(self.xmlFile, "username")
- passwordChild = xmlCreateChild(self.xmlFile, "password")
- checkboxChild = xmlCreateChild(self.xmlFile, "state")
- xmlSaveFile(self.xmlFile)
- else
- usernameChild = xmlFindChild(self.xmlFile, "username", 0)
- passwordChild = xmlFindChild(self.xmlFile, "password", 0)
- checkboxChild = xmlFindChild(self.xmlFile, "state", 0)
- end
- if xmlNodeGetValue(checkboxChild) == "true" then
- GUI:setCheckboxSelected(self.rememberMeCheckBox, true)
- end
- usernameLoad = xmlNodeGetValue(usernameChild)
- passwordLoad = xmlNodeGetValue(passwordChild)
- if usernameLoad ~= "" then
- GUI:setEditBoxText(self.loginEditbox, usernameLoad)
- end
- if passwordLoad ~= "" then
- GUI:setEditBoxText(self.passwordEditbox, passwordLoad)
- end
- end
- function Login_Client:saveXML (login, password)
- if GUI:getCheckBoxSelected(self.rememberMeCheckBox) == true then
- xmlNodeSetValue(usernameChild, login)
- xmlNodeSetValue(passwordChild, password)
- xmlNodeSetValue(checkboxChild, "true")
- xmlSaveFile(self.xmlFile)
- else
- xmlNodeSetValue(usernameChild, "")
- xmlNodeSetValue(passwordChild, "")
- xmlNodeSetValue(checkboxChild, "")
- xmlSaveFile(self.xmlFile)
- end
- end
- function Login_Client:onRegister()
- local login = GUI:getEditBoxText(self.Register_Login_Editbox)
- local password = GUI:getEditBoxText(self.Register_Password_Editbox)
- local password_again = GUI:getEditBoxText(self.Register_PasswordAgain_Editbox)
- local email = GUI:getEditBoxText(self.Register_Email_Editbox)
- local accept = GUI:getCheckBoxSelected(self.acceptRegulations)
- if string.len(login) == 0 or string.len(password) == 0 or string.len(password_again) == 0 or string.len(email) == 0 then
- exports["ps_hud"]:showPlayerNotification("Musisz wypełnić wszystkie pola tekstowe!", "error", true, 6500)
- elseif string.len(login) < 5 then
- exports["ps_hud"]:showPlayerNotification("Minimalna ilość znaków loginu to 5!", "error", true, 6500)
- elseif string.len(password) < 5 or string.len(password_again) < 5 then
- exports["ps_hud"]:showPlayerNotification("Minimalna ilość znaków hasła to 5!", "error", true, 6500)
- elseif password ~= password_again then
- exports["ps_hud"]:showPlayerNotification("Hasła muszą być identyczne!", "error", true, 6500)
- elseif password == login then
- exports["ps_hud"]:showPlayerNotification("Login nie może być taki sam jak hasło!", "error", true, 6500)
- elseif Elements:validEmail(email) == false then
- exports["ps_hud"]:showPlayerNotification("Adres email jest nieprawidłowy!", "error", true, 6500)
- elseif accept == false then
- exports["ps_hud"]:showPlayerNotification("Wymagana jest akceptacja regulaminu serwera!", "error", true, 6500)
- else
- exports["ps_hud"]:showPlayerNotification("Trwa weryfikacja danych, proszę czekać...", "info", true, 4100)
- setTimer(function()
- triggerServerEvent("onPlayerCreateAccount", resourceRoot, login, password, email)
- end, 800, 1)
- end
- end
- function Login_Client:onBackMenu()
- self.LoginTick = getTickCount()
- self.Main = true
- self.Login = false
- self.Register = false
- self.Changes = false
- end
- function Login_Client:construct (...)
- GUI = exports["ps_gui"]
- Fog = exports["shader_2dfog"]
- Elements = Login_Elements_Client:new()
- self.zoom = GUI:getInterfaceScale()
- self.screen = Vector2(guiGetScreenSize())
- self.onLogIn = function(...) return self:onLogin(...) end
- self.onRegisterIn = function(...) return self:onRegister(...) end
- self.onEventBackMenu = function(...) return self:onBackMenu(...) end
- self.saveLoginData = function(...) return self:saveLoginXML(...) end
- self.VUPFunct = function(...) return self:VUP(...) end
- self.VDNFunct = function(...) return self:VDN(...) end
- addEvent("onPlayerSaveLoginData", true)
- addEventHandler("onPlayerSaveLoginData", root, self.saveLoginData)
- addEvent("showPlayerIsBanned", true)
- addEventHandler("showPlayerIsBanned", root, function()
- self.LoginTick = getTickCount()
- self.Main = false
- self.Destroy = true
- self.Login = false
- self.Register = false
- self.Changes = false
- self.Banned = true
- self.DisconnectButton = GUI:createButton("Rozłącz z serwera", self.screen.x, self.screen.y, 165/1080*self.screen.y, 52/1080*self.screen.y)
- GUI:setButtonFont(self.DisconnectButton, self.fonts['bold_button'], 0.7)
- GUI:setButtonTextures(self.DisconnectButton, {default=self.textures['buttons']['normal_button']['nohover'], hover=self.textures['buttons']['normal_button']['hover'], press=self.textures['buttons']['normal_button']['nohover']})
- addEventHandler("onPlayerClickButton", self.DisconnectButton, function()
- triggerEvent("onPlayerShowBlackScreen", localPlayer)
- self:Music(false)
- self.Main = false
- self.Login = false
- self.Register = false
- self.Changes = false
- self.Banned = false
- setTimer(function()
- triggerServerEvent("onPlayerClickDisconnect", resourceRoot)
- end, 4125, 1)
- end)
- end)
- addEventHandler("onClientResourceStart", resourceRoot, function()
- showChat(false)
- showCursor(true)
- fadeCamera(false)
- setElementAlpha(localPlayer, 0)
- Fog:refreshInstance(180)
- showPlayerHudComponent("all", false)
- triggerServerEvent("onPlayerCheckIsBanned", resourceRoot, getPlayerSerial(localPlayer))
- triggerEvent("onResourcesDownloadedStop", resourceRoot)
- self.music = false
- self.volume = 0
- self:Music(true)
- self.LoginTick = getTickCount()
- self.Main = true
- self.hexagon = Hexagon:new()
- collectgarbage()
- addEventHandler("onClientClick", root, function(button, state)
- local hx, hy, hsize = self.LoginPosX + ( (200/1080*self.screen.y)/2)+32/1080*self.screen.y, 443/1080*self.screen.y - 23/1080*self.screen.y, 129/1080*self.screen.y
- if self.Main == true and self.hexagon:colission(hx, hy + hsize, hsize, 122) then -- Logowanie
- if getKeyState("mouse1") ~= true then
- self.LoginTick = getTickCount()
- self.loginBackButton = GUI:createButton("Wróć", self.screen.x, self.screen.y, 165/1080*self.screen.y, 52/1080*self.screen.y)
- self.loginEnterButton = GUI:createButton("Zaloguj", self.screen.x, self.screen.y, 165/1080*self.screen.y, 55/1080*self.screen.y)
- self.loginEditbox = GUI:createEditBox("", self.screen.x/2, 400/1080*self.screen.y, 348/1080*self.screen.y, 52/1080*self.screen.y, "Login")
- GUI:setEditBoxVertical(self.loginEditbox, "left")
- GUI:setEditBoxIcon(self.loginEditbox, ":ps_gui/images/icons/person.png", 52/1080*self.screen.y)
- GUI:setEditBoxFont(self.loginEditbox, self.fonts['editbox_font'], 1)
- GUI:setEditBoxAlpha(self.loginEditbox, 0)
- self.passwordEditbox = GUI:createEditBox("", self.screen.x/2, 600/1080*self.screen.y, 348/1080*self.screen.y, 52/1080*self.screen.y, "Hasło")
- GUI:setEditBoxVertical(self.passwordEditbox, "left")
- GUI:setEditBoxIcon(self.passwordEditbox, ":ps_gui/images/icons/key.png", 52/1080*self.screen.y)
- GUI:setEditBoxFont(self.passwordEditbox, self.fonts['editbox_font'], 1)
- GUI:setEditBoxAlpha(self.passwordEditbox, 0)
- GUI:setEditBoxMasked(self.passwordEditbox, true, "*")
- GUI:setButtonTextures(self.loginEnterButton, {default=self.textures['buttons']['normal_button']['nohover'], hover=self.textures['buttons']['normal_button']['hover'], press=self.textures['buttons']['normal_button']['nohover']})
- GUI:setButtonFont(self.loginEnterButton, self.fonts['normal_button'], 0.85)
- GUI:setButtonTextures(self.loginBackButton, {default=self.textures['buttons']['normal_button']['nohover'], hover=self.textures['buttons']['normal_button']['hover'], press=self.textures['buttons']['normal_button']['nohover']})
- GUI:setButtonFont(self.loginBackButton, self.fonts['normal_button'], 0.85)
- self.rememberMeCheckBox = GUI:createCheckbox(self.screen.x/2, 370/1080*self.screen.y, 17/1080*self.screen.y, "Zapamiętaj mnie", false)
- GUI:setCheckboxTexturesColor(self.rememberMeCheckBox, tocolor(255, 255, 255, 0) )
- GUI:setCheckboxFont(self.rememberMeCheckBox, self.fonts['normal_button'], 0.79)
- GUI:setCheckboxTextures(self.rememberMeCheckBox, {off = ":ps_gui/images/checkbox_off.png", on = ":ps_gui/images/checkbox_on.png"} )
- addEventHandler("onPlayerClickButton", self.loginEnterButton, self.onLogIn )
- addEventHandler("onPlayerClickButton", self.loginBackButton, self.onEventBackMenu )
- self.xmlFile = xmlLoadFile("userdata.xml")
- self:loadXML()
- self.Main = false
- self.Login = true
- self.Register = false
- self.Changes = false
- end
- end
- local hx, hy, hsize = (self.screen.x - 390/1080*self.screen.y) + ( (200/1080*self.screen.y)/2)+32/1080*self.screen.y, self.RegisterPosY - 23/1080*self.screen.y, 129/1080*self.screen.y
- if self.Main == true and self.hexagon:colission(hx, hy + hsize, hsize, 122) then -- Rejestracja
- if getKeyState("mouse1") ~= true then
- self.LoginTick = getTickCount()
- self.registerBackButton = GUI:createButton("Wróć", self.screen.x, self.screen.y, 165/1080*self.screen.y, 55/1080*self.screen.y)
- self.registerEnterButton = GUI:createButton("Zarejestruj", self.screen.x, self.screen.y, 165/1080*self.screen.y, 55/1080*self.screen.y)
- addEventHandler("onPlayerClickButton", self.registerEnterButton, self.onRegisterIn )
- addEventHandler("onPlayerClickButton", self.registerBackButton, self.onEventBackMenu )
- self.Register_Login_Editbox = GUI:createEditBox("", self.screen.x/2, 600/1080*self.screen.y, 348/1080*self.screen.y, 52/1080*self.screen.y, "Login")
- GUI:setEditBoxVertical(self.Register_Login_Editbox, "left")
- GUI:setEditBoxIcon(self.Register_Login_Editbox, ":ps_gui/images/icons/person.png", 52/1080*self.screen.y)
- GUI:setEditBoxFont(self.Register_Login_Editbox, self.fonts['editbox_font'], 1)
- GUI:setEditBoxAlpha(self.Register_Login_Editbox, 0)
- self.Register_Password_Editbox = GUI:createEditBox("", self.screen.x/2, 600/1080*self.screen.y, 348/1080*self.screen.y, 52/1080*self.screen.y, "Hasło")
- GUI:setEditBoxVertical(self.Register_Password_Editbox, "left")
- GUI:setEditBoxIcon(self.Register_Password_Editbox, ":ps_gui/images/icons/key.png", 52/1080*self.screen.y)
- GUI:setEditBoxFont(self.Register_Password_Editbox, self.fonts['editbox_font'], 1)
- GUI:setEditBoxAlpha(self.Register_Password_Editbox, 0)
- GUI:setEditBoxMasked(self.Register_Password_Editbox, true, "*")
- self.Register_PasswordAgain_Editbox = GUI:createEditBox("", self.screen.x/2, 600/1080*self.screen.y, 348/1080*self.screen.y, 52/1080*self.screen.y, "Powtórz hasło")
- GUI:setEditBoxVertical(self.Register_PasswordAgain_Editbox, "left")
- GUI:setEditBoxIcon(self.Register_PasswordAgain_Editbox, ":ps_gui/images/icons/key.png", 52/1080*self.screen.y)
- GUI:setEditBoxFont(self.Register_PasswordAgain_Editbox, self.fonts['editbox_font'], 1)
- GUI:setEditBoxAlpha(self.Register_PasswordAgain_Editbox, 0)
- GUI:setEditBoxMasked(self.Register_PasswordAgain_Editbox, true, "*")
- self.Register_Email_Editbox = GUI:createEditBox("", self.screen.x/2, 600/1080*self.screen.y, 348/1080*self.screen.y, 52/1080*self.screen.y, "E-mail")
- GUI:setEditBoxVertical(self.Register_Email_Editbox, "left")
- GUI:setEditBoxIcon(self.Register_Email_Editbox, ":ps_gui/images/icons/mail.png", 52/1080*self.screen.y)
- GUI:setEditBoxFont(self.Register_Email_Editbox, self.fonts['editbox_font'], 1)
- GUI:setEditBoxAlpha(self.Register_Email_Editbox, 0)
- GUI:setEditBoxRule(self.Register_Email_Editbox, "%p*[^@.%a%d]")
- self.acceptRegulations = GUI:createCheckbox(self.screen.x/2, 348/1080*self.screen.y, 17/1080*self.screen.y, "Akceptuję regulamin", false)
- GUI:setCheckboxTexturesColor(self.acceptRegulations, tocolor(255, 255, 255, 0) )
- GUI:setCheckboxFont(self.acceptRegulations, self.fonts['normal_button'], 0.80)
- GUI:setCheckboxTextures(self.acceptRegulations, {off = ":ps_gui/images/checkbox_off.png", on = ":ps_gui/images/checkbox_on.png"} )
- GUI:setButtonTextures(self.registerBackButton, {default=self.textures['buttons']['normal_button']['nohover'], hover=self.textures['buttons']['normal_button']['hover'], press=self.textures['buttons']['normal_button']['nohover']})
- GUI:setButtonFont(self.registerBackButton, self.fonts['normal_button'], 0.85)
- GUI:setButtonTextures(self.registerEnterButton, {default=self.textures['buttons']['normal_button']['nohover'], hover=self.textures['buttons']['normal_button']['hover'], press=self.textures['buttons']['normal_button']['nohover']})
- GUI:setButtonFont(self.registerEnterButton, self.fonts['normal_button'], 0.85)
- self.Main = false
- self.Login = false
- self.Register = true
- self.Changes = false
- end
- end
- local hx, hy, hsize = (self.screen.x - 390/1080*self.screen.y) + ( (200/1080*self.screen.y)/2)+32/1080*self.screen.y, self.ChangesPosY - 23/1080*self.screen.y, 129/1080*self.screen.y
- if self.Main == true and self.hexagon:colission(hx, hy + hsize, hsize, 122) then -- Zmiany
- if getKeyState("mouse1") ~= true then
- self.LoginTick = getTickCount()
- self.changesBackButton = GUI:createButton("Wróć", self.screen.x, self.screen.y, 190/1080*self.screen.y, 55/1080*self.screen.y, 5)
- GUI:setButtonTextures(self.changesBackButton, {default=self.textures['buttons']['normal_button']['nohover'], hover=self.textures['buttons']['normal_button']['hover'], press=self.textures['buttons']['normal_button']['nohover']})
- GUI:setButtonFont(self.changesBackButton, self.fonts['normal_button'], 0.85)
- addEventHandler("onPlayerClickButton", self.changesBackButton, self.onEventBackMenu )
- self.Main = false
- self.Login = false
- self.Register = false
- self.Changes = true
- end
- end
- end)
- end)
- self.backgroundRender = function() self:Background() end
- addEventHandler("onClientRender", root, self.backgroundRender)
- self.animationsRender = function() self:RenderAnimations() end
- addEventHandler("onClientRender", root, self.animationsRender)
- self.mainRender = function() self:RenderMain() end
- addEventHandler("onClientRender", root, self.mainRender, true, "low-3")
- self.loginRender = function() self:RenderLogin() end
- self.registerRender = function() self:RenderRegister() end
- self.changesRender = function() self:RenderChanges() end
- self.bannedRender = function() self:RenderBanned() end
- self.textures = {
- ['logo'] = GUI:createInterfaceTexture(":ps_login/images/logo.png"),
- ['background'] = GUI:createInterfaceTexture(":ps_login/images/background.png"),
- ['lights'] = GUI:createInterfaceTexture(":ps_login/images/lights.png"),
- ['line'] = GUI:createInterfaceTexture(":ps_login/images/changes/changes_line.png"),
- ['buttons'] = {
- ['login'] = {
- ['hover'] = GUI:createInterfaceTexture(":ps_login/images/main/login_button_active.png"),
- ['nohover'] = GUI:createInterfaceTexture(":ps_login/images/main/login_button.png")
- },
- ['register'] = {
- ['hover'] = GUI:createInterfaceTexture(":ps_login/images/main/register_button_active.png"),
- ['nohover'] = GUI:createInterfaceTexture(":ps_login/images/main/register_button.png")
- },
- ['changes'] = {
- ['hover'] = GUI:createInterfaceTexture(":ps_login/images/main/changes_button_active.png"),
- ['nohover'] = GUI:createInterfaceTexture(":ps_login/images/main/changes_button.png")
- },
- ['normal_button'] = {
- ['hover'] = GUI:createInterfaceTexture(":ps_gui/images/button_active.png"),
- ['nohover'] = GUI:createInterfaceTexture(":ps_gui/images/button.png")
- },
- },
- }
- self.fonts = {
- ['light_login'] = GUI:setInterfaceFont("light", 30.93/1080*self.screen.y),
- ['light_title'] = GUI:setInterfaceFont("bold", 31/1080*self.screen.y),
- ['normal_button'] = GUI:setInterfaceFont("normal", 21/1080*self.screen.y),
- ['bold_button'] = GUI:setInterfaceFont("bold", 21/1080*self.screen.y),
- ['editbox_font'] = GUI:setInterfaceFont("normal", 16/1080*self.screen.y),
- ['changes_grid'] = GUI:setInterfaceFont("light", 20/1080*self.screen.y),
- ['changes_text'] = GUI:setInterfaceFont("normal", 19/1080*self.screen.y)
- }
- self.changesLog = ChangesLogs
- addEvent("destroyLoginBackground", true)
- addEventHandler("destroyLoginBackground", root, function()
- self:Music(false)
- Fog:destroyFogRectangle()
- removeEventHandler("onClientRender", root, self.backgroundRender)
- end)
- addEvent("onPlayerLoginResults", true)
- addEventHandler("onPlayerLoginResults", resourceRoot, function(bool, text, type)
- if not text then text = "" end
- if not type then type = "info" end
- if bool then
- self.LoginTick = getTickCount()
- self.Main = false
- self.Login = false
- self.Register = false
- self.Changes = false
- self.Destroy = true
- showCursor(false)
- triggerEvent("onPlayerShowBlackScreen", localPlayer)
- setTimer(function()
- triggerEvent("onPlayerHideBlackScreen", localPlayer)
- Spawns = Spawns_Client:new()
- Spawns:ShowSpawnsGUI()
- end, 3800, 1)
- else
- exports["ps_hud"]:showPlayerNotification(text, type, true, 5600)
- return
- end
- end)
- addEventHandler("onClientResourceStop", resourceRoot, function()
- showChat(true)
- showCursor(false)
- fadeCamera(true)
- setElementAlpha(localPlayer, 255)
- Fog:destroyFogRectangle()
- GUI:destroyButton(self.loginEnterButton)
- GUI:destroyButton(self.loginBackButton)
- GUI:destroyButton(self.registerBackButton)
- GUI:destroyButton(self.changesBackButton)
- GUI:destroyEditBox(self.loginEditbox)
- GUI:destroyEditBox(self.passwordEditbox)
- GUI:destroyCheckbox(self.rememberMeCheckBox)
- GUI:destroyButton(self.registerBackButton)
- GUI:destroyButton(self.registerEnterButton)
- GUI:destroyButton(self.DisconnectButton)
- GUI:destroyEditBox(self.Register_Login_Editbox)
- GUI:destroyEditBox(self.Register_Password_Editbox)
- GUI:destroyEditBox(self.Register_PasswordAgain_Editbox)
- GUI:destroyEditBox(self.Register_Email_Editbox)
- GUI:destroyCheckbox(self.acceptRegulations)
- collectgarbage("collect")
- end)
- end
- Login_Client:new()
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement