local screenX, screenY = guiGetScreenSize()
local tick = getTickCount()
local zoom = exports.sc_gui:getInterfaceZoom() -- Skalowanie
local Font = exports.sc_gui:setFont("normal.ttf", 14)
local ladujteksty = 0
function alertNotSupportedScreen()
local progress = (getTickCount() - tick) / 3000
redcolor = math.floor(interpolateBetween(255, 0, 255, 0, 255, 0, progress, "CosineCurve"))
scaleicon = math.floor(interpolateBetween(50, 20, 50, 20, 50, 20, progress, "CosineCurve"))
exports.sc_gui:drawBlur(0, 0, screenX, screenY, tocolor(80, 0, 0, 255))
ladujteksty = ladujteksty + 0.006
if ladujteksty >= 0 and ladujteksty < 4 then
textwarning = "Niestety twoja rozdzielczo?? monitoru (" .. screenX .. "x" .. screenY ..") nie jest wspierana przez nasz serwer.\nWi?cej szczeg???w na naszym forum: "
elseif ladujteksty >= 4 and ladujteksty < 8 then
textwarning = "Sorry your monitor resolution (" .. screenX .."x" .. screenY .. ") is not supported by our server.\nMore details on our forum: "
elseif ladujteksty >= 4 then
ladujteksty = 0
end
dxDrawImage(screenX - 1195 / zoom, 420 / zoom, 320 / zoom, 290 / zoom, "images/icons/warning_icon.png", 0, 0, 0, tocolor(255, redcolor, redcolor, 255), true)
dxDrawText(textwarning, screenX - 494 / zoom, 1270 / zoom, 500 / zoom, 500 / zoom, tocolor(255, 255, 255, 255), 1, Font, "center", "center", false, false, false, false, false)
end
if localPlayer:getData("user:id") or localPlayer:getData("user:logged") then return end -- Je?eli jest ju? zalogowany, nie musi logowa? si? ponownie.
local X, Y = guiGetScreenSize() -- Pozycja element?w
local W, H = guiGetScreenSize() -- Wysoko??, szeroko??
logo = true
local choose = true
local activebar = 0
local activebar_passwd = 0
local activebar_passwd_repeat = 0
local rotation = 0
data = { showed=nil, info=nil, misc=nil, }
local chooseTimes = 700
local chooseBackTimes = 200
local centering = 0
-- Okno logowania (czas animacji)
loginTimes = 900
loginWindowTimes = 700
loginAlphaTimes = 500
-- Okno listy zmian (czas animacji)
changesTimes = 900
changesWindowTimes = 700
changesAlphaTimes = 500
-- Okno rejestracji konta (czas animacji)
registerTimes = 900
registerWindowTimes = 700
registerAlphaTimes = 500
function chooseGUI ()
if choose == false then
yl1 = interpolateBetween(340, 0, 0, -500, 0, 0, (getTickCount()-tick)/chooseTimes, "OutQuad")
yl2 = interpolateBetween(540, 0, 0, -500, 0, 0, (getTickCount()-tick)/chooseTimes, "OutQuad")
xl1 = interpolateBetween(-580, 0, 0, 2000, 0, 0, (getTickCount()-tick)/chooseTimes, "OutQuad")
xl2 = interpolateBetween(-340, 0, 0, 2000, 0, 0, (getTickCount()-tick)/chooseTimes, "OutQuad")
xl3 = interpolateBetween(-460, 0, 0, 2000, 0, 0, (getTickCount()-tick)/chooseTimes, "OutQuad")
alpha = interpolateBetween(255,0,0,0,0,0,(getTickCount()-tick)/chooseBackTimes,"InQuad")
alpha2 = interpolateBetween(200,0,0,0,0,0,(getTickCount()-tick)/chooseBackTimes,"InQuad")
else
yl1 = interpolateBetween(-500, 0, 0, 340, 0, 0, (getTickCount()-tick)/chooseTimes, "OutQuad")
xl1 = interpolateBetween(-2000, 0, 0, 580, 0, 0, (getTickCount()-tick)/chooseTimes, "OutQuad")
xl2 = interpolateBetween(-2000, 0, 0, 340, 0, 0, (getTickCount()-tick)/chooseTimes, "OutQuad")
xl3 = interpolateBetween(-2000, 0, 0, 460, 0, 0, (getTickCount()-tick)/chooseTimes, "OutQuad")
alpha = interpolateBetween(0,0,0,255,0,0,(getTickCount()-tick)/chooseBackTimes,"InQuad")
alpha2 = interpolateBetween(0,0,0,200,0,0,(getTickCount()-tick)/chooseBackTimes,"InQuad")
end
if choose == false and getTickCount()-tick > chooseBackTimes then
tick = getTickCount()
if choosetochanges == true then
removeEventHandler('onClientRender',root,chooseGUI)
addEventHandler('onClientRender',root,changesGUI)
choosetochanges = false
elseif choosetologin == true then
removeEventHandler('onClientRender',root,chooseGUI)
addEventHandler('onClientRender',root,loginGUI)
choosetologin = false
elseif choosetoregister == true then
removeEventHandler('onClientRender',root,chooseGUI)
addEventHandler('onClientRender',root,registerGUI)
choosetoregister = false
end
end
showChat(false)
if choose == false then
createBoxButton("login", X - 580 / zoom, yl1 / zoom, alpha2, alpha)
createBoxButton("register", X - 340 / zoom, yl1 / zoom, alpha2, alpha)
createBoxButton("list", X - 460 / zoom, yl2 / zoom, alpha2, alpha)
else
createBoxButton("login", X - xl1 / zoom, 340 / zoom, alpha2, alpha)
createBoxButton("register", X - xl2 / zoom, 340 / zoom, alpha2, alpha)
createBoxButton("list", X - xl3 / zoom, 540 / zoom, alpha2, alpha)
end
end
function changesGUI ()
if changes == false then
yc1 = interpolateBetween(295, 0, 0, -800, 0, 0, (getTickCount()-tick)/changesWindowTimes, "OutQuad")
alpha = interpolateBetween(255,0,0,0,0,0,(getTickCount()-tick)/changesAlphaTimes,"InQuad")
else
xc1 = interpolateBetween(-800, 0, 0, 680, 0, 0, (getTickCount()-tick)/changesWindowTimes, "OutQuad")
yc1 = interpolateBetween(2000, 0, 0, 295, 0, 0, (getTickCount()-tick)/changesWindowTimes, "OutQuad")
yc2 = interpolateBetween(2000, 0, 0, 295, 0, 0, (getTickCount()-tick)/changesWindowTimes, "OutQuad")
alpha = interpolateBetween(0,0,0,255,0,0,(getTickCount()-tick)/changesAlphaTimes,"InQuad")
end
if changes == false and getTickCount()-tick > changesTimes then
removeEventHandler('onClientRender',root,changesGUI)
if destroywindow ~= true then addEventHandler('onClientRender',root,chooseGUI) end
tick = getTickCount()
end
if changes == false then
drawWindow("26.02.2018", X - 680 / zoom, yc1 / zoom, "- Nazwa zmiany\n- Nazwa zmiany\n- Nazwa zmiany\n- Nazwa zmiany")
backButton(X - 490 / zoom, 695 / zoom, alpha)
else
drawWindow("26.02.2018", X - xc1 / zoom, 295 / zoom, "- Nazwa zmiany\n- Nazwa zmiany\n- Nazwa zmiany\n- Nazwa zmiany")
backButton(X - 490 / zoom, 695 / zoom, alpha)
end
end
function loginGUI ()
if login == false then
yl1 = interpolateBetween(295, 0, 0, -1000, 0, 0, (getTickCount()-tick)/loginWindowTimes, "OutQuad")
yl2 = interpolateBetween(575, 0, 0, -1000, 0, 0, (getTickCount()-tick)/loginWindowTimes, "OutQuad")
xl1 = interpolateBetween(680, 0, 0, 1000, 0, 0, (getTickCount()-tick)/loginWindowTimes, "OutQuad")
xl2 = interpolateBetween(490, 0, 0, 1000, 0, 0, (getTickCount()-tick)/loginWindowTimes, "OutQuad")
alpha = interpolateBetween(255,0,0,0,0,0,(getTickCount()-tick)/loginAlphaTimes,"InQuad")
else
yl1 = interpolateBetween(1000, 0, 0, 295, 0, 0, (getTickCount()-tick)/loginWindowTimes, "OutQuad")
yl2 = interpolateBetween(1000, 0, 0, 575, 0, 0, (getTickCount()-tick)/loginWindowTimes, "OutQuad")
xl1 = interpolateBetween(-1000, 0, 0, 680, 0, 0, (getTickCount()-tick)/loginWindowTimes, "OutQuad")
xl2 = interpolateBetween(-1000, 0, 0, 490, 0, 0, (getTickCount()-tick)/loginWindowTimes, "OutQuad")
alpha = interpolateBetween(0,0,0,255,0,0,(getTickCount()-tick)/loginAlphaTimes,"InQuad")
end
if login == false and getTickCount()-tick > loginTimes then
removeEventHandler('onClientRender',root,loginGUI)
if destroywindow ~= true then addEventHandler('onClientRender',root,chooseGUI) end
tick = getTickCount()
end
if data.info then dxDrawText(data.info, X*252/1024, Y*272/768, W*800/1024, H*255/768, tocolor(237, 0, 0, 255), 1.00, "default", "center", "center", false) end
if login == false then
drawWindow("Logowanie", X - 680 / zoom, yl1 / zoom)
drawButton("Zaloguj", X - 490 / zoom, yl2 / zoom)
backButton(X - 490 / zoom, 695 / zoom, alpha)
else
drawWindow("Logowanie", X - xl1 / zoom, 295 / zoom)
drawButton("Zaloguj", X - xl2 / zoom, 575 / zoom)
backButton(X - 490 / zoom, 695 / zoom, alpha)
end
end
function registerGUI ()
if register == false then
yr1 = interpolateBetween(295, 0, 0, -1000, 0, 0, (getTickCount()-tick)/registerWindowTimes, "OutQuad")
yr2 = interpolateBetween(575, 0, 0, -1000, 0, 0, (getTickCount()-tick)/registerWindowTimes, "OutQuad")
alpha = interpolateBetween(255,0,0,0,0,0,(getTickCount()-tick)/registerAlphaTimes,"InQuad")
else
xr1 = interpolateBetween(-1000, 0, 0, 680, 0, 0, (getTickCount()-tick)/registerWindowTimes, "OutQuad")
xr2 = interpolateBetween(-1000, 0, 0, 490, 0, 0, (getTickCount()-tick)/registerWindowTimes, "OutQuad")
yr1 = interpolateBetween(2000, 0, 0, -295, 0, 0, (getTickCount()-tick)/registerWindowTimes, "OutQuad")
yr2 = interpolateBetween(2000, 0, 0, -575, 0, 0, (getTickCount()-tick)/registerWindowTimes, "OutQuad")
alpha = interpolateBetween(0,0,0,255,0,0,(getTickCount()-tick)/registerAlphaTimes,"InQuad")
end
if register == false and getTickCount()-tick > registerTimes then
removeEventHandler('onClientRender',root,registerGUI)
if destroywindow ~= true then addEventHandler('onClientRender',root,chooseGUI) end
tick = getTickCount()
end
if data.info then dxDrawText(data.info, X*252/1024, Y*272/768, W*800/1024, H*255/768, tocolor(237, 0, 0, 255), 1.00, "default", "center", "center", false) end
if register == false then
drawWindow("Rejestracja", X - 680 / zoom, yr1 / zoom)
drawButton("Zarejestruj", X - 490 / zoom, yr2 / zoom)
backButton(X - 490 / zoom, 695 / zoom, alpha)
else
drawWindow("Rejestracja", X - xr1 / zoom, 295 / zoom)
drawButton("Zarejestruj", X - xr2 / zoom, 575 / zoom)
backButton(X - 490 / zoom, 695 / zoom, alpha)
end
end
addEventHandler("onClientClick", root, function(btn, state)
if btn == "left" and state == "down" then
-- Logowanie
if exports.sc_gui:isMouseIn(X - 580 / zoom, 340 / zoom, 175 / zoom, 195 / zoom) and choose == true then
tick = getTickCount()
choose = false
choosetoregister = false
choosetochanges = false
choosetologin = true
login = true
setTimer(function()
exports.sc_gui:createEditbox("login", 0.76 - 0.044 / zoom, 0.36 / zoom, 0.20 / zoom, 0.04 / zoom, true, "", false, 25, editboxTextFont, false, 0, { 255, 255, 255, 180 }, true, { 12, 12, 12, 32 }, 1, true, 60, true, "Nazwa u?ytkownika", { 255, 255, 255, 40 }, true, 1, editboxTextFont, true, true, {0, 114, 210}, true)
exports.sc_gui:createEditbox("password", 0.76 - 0.044 / zoom, 0.42 / zoom, 0.20 / zoom, 0.04 / zoom, true, "", true, 25, editboxTextFont, false, 0, { 255, 255, 255, 180 }, true, { 12, 12, 12, 32 }, 1, true, 60, true, "Has?o", { 255, 255, 255, 40 }, true, 1, editboxTextFont, true, true, {0, 114, 210}, true)
end,loginWindowTimes+100,1)
end
-- Gdy naci?niesz przycisk, zalogujesz si? na serwer
if exports.sc_gui:isMouseIn(X - 490 / zoom, 575 / zoom, 208 / zoom, 68 / zoom) and data.showed and login == true then
local loginBox = exports.sc_gui:getEditboxText("login")
local passwordBox = exports.sc_gui:getEditboxText("password")
if string.len(loginBox) < 2 or string.len(passwordBox) < 2 and string.len(loginBox) > 22 or string.len(passwordBox) > 22 then
data.info="Wype?nij wszystkie brakuj?ce pola!"
setTimer(function() data.info=nil end, 3000, 1)
return
end
triggerServerEvent("onPlayerEnterAccount", resourceRoot, loginBox, passwordBox)
end
-- Wyj?cie z logowania
if exports.sc_gui:isMouseIn(X - 480 / zoom, 695 / zoom, 190 / zoom, 73 / zoom) and login == true then
tick = getTickCount()
login = false
choose = true
exports.sc_gui:destroyEditbox("login")
exports.sc_gui:destroyEditbox("password")
end
-- Rejestracja
if exports.sc_gui:isMouseIn(X - 340 / zoom, 340 / zoom, 175 / zoom, 195 / zoom) and choose == true then
tick = getTickCount()
choose = false
choosetoregister = true
choosetochanges = false
choosetologin = false
register = true
setTimer(function()
exports.sc_gui:createEditbox("login", 0.76 - 0.044 / zoom, 0.34 / zoom, 0.20 / zoom, 0.04 / zoom, true, "", false, 25, editboxTextFont, false, 0, { 255, 255, 255, 180 }, true, { 12, 12, 12, 32 }, 1, true, 60, true, "Nazwa u?ytkownika", { 255, 255, 255, 40 }, true, 1, editboxTextFont, true, true, {0, 114, 210}, true)
exports.sc_gui:createEditbox("password", 0.76 - 0.044 / zoom, 0.40 / zoom, 0.20 / zoom, 0.04 / zoom, true, "", true, 25, editboxTextFont, false, 0, { 255, 255, 255, 180 }, true, { 12, 12, 12, 32 }, 1, true, 60, true, "Has?o", { 255, 255, 255, 40 }, true, 1, editboxTextFont, true, true, {0, 114, 210}, true)
exports.sc_gui:createEditbox("password_repeat", 0.76 - 0.044 / zoom, 0.46 / zoom, 0.20 / zoom, 0.04 / zoom, true, "", true, 25, editboxTextFont, false, 0, { 255, 255, 255, 180 }, true, { 12, 12, 12, 32 }, 1, true, 60, true, "Powt?rz has?o", { 255, 255, 255, 40 }, true, 1, editboxTextFont, true, true, {0, 114, 210}, true)
end,registerWindowTimes+100,1)
end
-- Naci?ni?cie powoduje rejestrowanie
if exports.sc_gui:isMouseIn(X - 490 / zoom, 575 / zoom, 208 / zoom, 68 / zoom) and data.showed and register == true then
local loginBox=exports.sc_gui:getEditboxText("login")
local passwordBox=exports.sc_gui:getEditboxText("password")
local passwordrBox=exports.sc_gui:getEditboxText("password_repeat")
if string.len(loginBox) > 22 or string.len(passwordBox) > 22 or string.len(passwordrBox) > 22 and string.len(loginBox) < 3 or string.len(passwordBox) < 3 or string.len(passwordrBox) < 3 then
data.info="Nazwa u?ytkownika lub has?o musz? mie? mniej ni? od 3 do 22 znak?w."
setTimer(function() data.info=nil end, 3000, 1)
return
end
triggerServerEvent("onPlayerCreateAccount", resourceRoot, loginBox, passwordBox)
end
-- Wyj?cie z rejestracji
if exports.sc_gui:isMouseIn(X - 480 / zoom, 695 / zoom, 190 / zoom, 73 / zoom) and register == true then
tick = getTickCount()
register = false
choose = true
exports.sc_gui:destroyEditbox("login")
exports.sc_gui:destroyEditbox("password")
exports.sc_gui:destroyEditbox("password_repeat")
end
-- Lista zmian
if exports.sc_gui:isMouseIn(X - 460 / zoom, 540 / zoom, 175 / zoom, 195 / zoom) and choose == true then
tick = getTickCount()
choose = false
choosetoregister = false
choosetochanges = true
choosetologin = false
changes = true
end
-- Wyj?cie z listy zmian
if exports.sc_gui:isMouseIn(X - 480 / zoom, 695 / zoom, 190 / zoom, 73 / zoom) and changes == true then
tick = getTickCount()
changes = false
choose = true
end
end
end)
addEvent("login:results", true)
addEventHandler("login:results", resourceRoot, function(value, info)
if not info then info = "" end
if value then
tick = getTickCount()
login = false
logo = false
destroywindow = true
data.showed = false
exports.sc_gui:destroyEditbox("login")
exports.sc_gui:destroyEditbox("password")
removeEventHandler("onClientRender", root, backgroundCamera)
exports.sc_loading:renderObject(true)
setTimer(function()
removeEventHandler("onClientRender", root, jumpingLogo)
end, 1200, 1)
setTimer(function()
setSoundVolume(data.misc, getSoundVolume(data.misc) - 0.04)
end, 100, 25)
if getSoundVolume(data.misc) == 0 then
data.misc:stop()
end
setTimer(function()
exports.sc_loading:renderObject(false)
localPlayer:setData("user:spawnlocation", {1481.33105, -1749.21191, 15.44531+0.1})
triggerServerEvent("base:spawnuser", localPlayer)
showPlayerHudComponent("all",false)
blackWhiteDrawing(false)
localPlayer:setAlpha(255)
showChat(true)
showCursor(false)
end, 12000, 1)
else
data.info=tostring(info)
setTimer(function() data.info=nil end, 3000, 1)
end
end)
addEventHandler("onClientResourceStart", resourceRoot, function()
if screenX == 1024 then
addEventHandler("onClientRender", root, alertNotSupportedScreen)
addEventHandler("onClientRender", root, backgroundCamera)
data.misc = playSound("", true)
showChat(false)
showCursor(true)
fadeCamera(true)
elseif screenX == 1152 then
addEventHandler("onClientRender", root, alertNotSupportedScreen)
addEventHandler("onClientRender", root, backgroundCamera)
data.misc = playSound("", true)
showChat(false)
showCursor(true)
fadeCamera(true)
else
showChat(false)
showCursor(true)
fadeCamera(true)
localPlayer:setAlpha(0)
data.showed = true
data.misc = playSound("", true)
setSoundVolume(data.misc, 0)
setTimer(function()
setSoundVolume(data.misc, getSoundVolume(data.misc) + 0.04)
--outputDebugString(getSoundVolume(data.misc))
end, 100, 25)
blackWhiteDrawing(true)
setPlayerHudComponentVisible("all", false)
addEventHandler("onClientRender", root, backgroundCamera)
addEventHandler("onClientRender", root, jumpingLogo)
addEventHandler("onClientRender", root, chooseGUI)
end
end)