Cze??, jak zrobi? aby serwer wykrywa? czy gracz si? zalogowa? w sensie klikn?? przycisk "zaloguj" i pomy?lnie si? zalogowa? a nast?pnie wy?wietla?o si? kolejne GUI w kt?rym by?o by tworzenie postaci (na chwile obecn? chodzi o to jak zrobi? aby po zalogowaniu graczowi si? pojawia?o kolejne okno w kt?rym mo?e stworzy? postke)
Po zalogowaniu odwo?ujesz si? do strony klienta po rysowanie gui,
function PlayerLogin(username,password,checksave)
if not (username == "") then
if not (password == "") then
local account = getAccount ( username,password )
if ( account ~= false ) then
logIn(source, account, password)
setPlayerName(source,username)
setCameraTarget(source, source)
triggerClientEvent (source,"statygracza",getRootElement())
triggerClientEvent(source,'show:panel_tworzenia',root)
end
end
end
end
addEvent("onRequestLogin",true)
addEventHandler("onRequestLogin",getRootElement(),PlayerLogin)
Dalej sobie dopisujesz ewentualne funkcje, w zakresie twoich potrzeb.
No dobrze, lecz jak zrobi? zapis aby po stworzeniu postaci i ponownym wej?ciu na serwer graczowi wczytywa?a si? ona?
[ Dodano: 2018-09-05, 23:10 ]
Oraz jak zrobi? aby po wpisaniu imienia i nazwiska nick zmienia? si? na nie, wraz z tym jak zrobi? aby da?o si? klikn?? "stworz postac" bo gui normalnie dzia?a
S-SIDE
function PlayerLogin(username,password,checksave)
if not (username == "") then
if not (password == "") then
local account = getAccount ( username,password )
if ( account ~= false ) then
logIn(source, account, password)
setPlayerName(source,username)
setCameraTarget(source, source)
triggerClientEvent (source,"statygracza",getRootElement())
triggerClientEvent(source,'show:panel_tworzenia',root)
end
end
end
end
addEvent("onRequestLogin",true)
addEventHandler("onRequestLogin",getRootElement(),PlayerLogin)
function registerPlayer(username,password,passwordConfirm)
if not (username == "") then
if not (password == "") then
local account = getAccount (username,password)
if (account == false) then
local accountAdded = addAccount(tostring(username),tostring(password))
if (accountAdded) then
triggerClientEvent (source, "Zaloguj_N", root, source)
else
triggerClientEvent (source, "Konto_Jest", root, source)
end
else
triggerClientEvent (source, "Konto_Jest1", root, source)
end
else
triggerClientEvent (source, "Haslo", root, source)
end
else
triggerClientEvent (source, "login", root, source)
end
end
addEvent("onRequestRegister",true)
addEventHandler("onRequestRegister",getRootElement(),registerPlayer)
function playerLogin( thePlayer )
end
addEventHandler("onPlayerLogin", getRootElement(), playerLogin)
addEvent('show:panel_tworzenia',true)
addEventHandler('show:panel_tworzenia',root,function()
addEventHandler('onClientRender',root,panel_tworzenia) -- rysujemy gui
end)
function playerJoin( thePlayer )
spawnPlayer(thePlayer,822.51379, -1358.98242, -0.50781,0)
end
addEventHandler("onPlayerJoin", getRootElement(), playerLogin)
#3: przydatna b?dzie ta funkcja, najlepiej zbindowa? funkcje pod lewy przycisk myszy i sprawdza? czy myszka znajduje si? w miejscu napisu "Stw?rz posta?"
Wilq, Tych funkcji kt?re mi podes?a?e? nie ogarniam, nie mam zielonego poj?cia jak ich u?y? (mimo ?e w kodzie ju? jakie? argumenty s? zawarte) a je?li chodzi zapis to w S-SIDE z tego co widze s? "statygracza"
tak jak wspomnia?em wy?ej
S-SIDE
function PlayerLogin(username,password,checksave)
if not (username == "") then
if not (password == "") then
local account = getAccount ( username,password )
if ( account ~= false ) then
logIn(source, account, password)
setPlayerName(source,username)
setCameraTarget(source, source)
triggerClientEvent (source,"statygracza",getRootElement())
triggerClientEvent(source,'show:panel_tworzenia',root)
end
end
end
end
addEvent("onRequestLogin",true)
addEventHandler("onRequestLogin",getRootElement(),PlayerLogin)
function registerPlayer(username,password,passwordConfirm)
if not (username == "") then
if not (password == "") then
local account = getAccount (username,password)
if (account == false) then
local accountAdded = addAccount(tostring(username),tostring(password))
if (accountAdded) then
triggerClientEvent (source, "Zaloguj_N", root, source)
else
triggerClientEvent (source, "Konto_Jest", root, source)
end
else
triggerClientEvent (source, "Konto_Jest1", root, source)
end
else
triggerClientEvent (source, "Haslo", root, source)
end
else
triggerClientEvent (source, "login", root, source)
end
end
addEvent("onRequestRegister",true)
addEventHandler("onRequestRegister",getRootElement(),registerPlayer)
function playerLogin( thePlayer )
end
addEventHandler("onPlayerLogin", getRootElement(), playerLogin)
addEvent('show:panel_tworzenia',true)
addEventHandler('show:panel_tworzenia',root,function()
addEventHandler('onClientRender',root,panel_tworzenia) -- rysujemy gui
end)
function playerJoin( thePlayer )
spawnPlayer(thePlayer,822.51379, -1358.98242, -0.50781,0)
end
addEventHandler("onPlayerJoin", getRootElement(), playerLogin)
Nie lubi? pracowa? w syfie. Pozwolisz, ?e wszystko poprawi? i lekko zedytuj? tworzenie postaci - sam zobaczysz efekty, dasz zna? czy Ci si? podoba czy nie.
Posprz?tam w kodzie, troszk? jest zb?dnych linijek albo mo?na co? zrobi? w jednym evencie (b??dy logowania ; )).
Je?li chodzi o zapis postaci nadal nie dosta?em kodu. Event, o kt?rym m?wisz nie ma nic zwi?zanego z tym o czego chc?. Zacznijmy: masz ju? jaki? GM wgrany czy robisz od podstaw wszystko 'sam'?
Aktualnie bez zapisu postaci, z ka?dy zalogowaniem tworzymy now?:
Zawsze mog? zrobi? zapis w accountDacie, daj zna? co o tym my?lisz.
S-SIDE
addEvent("onRequestLogin", true)
addEventHandler("onRequestLogin", getRootElement(), function(username, password)
if (username == "" or not username) then triggerClientEvent(source, "bladLogowania", source, "Podaj login!") return end
if (password == "" or not password) then triggerClientEvent(source, "bladLogowania", source, "Podaj has?o!") return end
local account = getAccount(username, password)
if (account == false) then triggerClientEvent(source, "bladLogowania", source, "Nie ma podanego konta lub has?o jest nieprawid?owe!") return end
if logIn(source, account, password) then
setCameraTarget(source, source)
triggerClientEvent(source, 'show:panel_tworzenia', source)
else
triggerClientEvent(source, "bladLogowania", source, "Has?o nieprawid?owe!")
end
end)
addEvent("onRequestRegister",true)
addEventHandler("onRequestRegister", getRootElement(), function(username,password,passwordConfirm)
if (username == "" or not username) then triggerClientEvent(source, "bladLogowania", source, "Podaj login!") return end
if (password == "" or not password) then triggerClientEvent(source, "bladLogowania", source, "Podaj has?o!") return end
local account = getAccount (username,password)
if (account == true) then triggerClientEvent(source, "bladLogowania", source, "Takie konto ju? istnieje!") return end
local accountAdded = addAccount(tostring(username),tostring(password))
if (not accountAdded) then triggerClientEvent(source, "bladLogowania", source, "Takie konto ju? istnieje!") return end
triggerClientEvent(source, "bladLogowania", source, "Konto zosta?o utworzone.")
end)
addEvent("savePlayer",true)
addEventHandler("savePlayer", getRootElement(), function(imie, wiek)
playerJoin(source)
if wiek then
setElementData(source, "wiek", wiek)
end
if imie then
setPlayerName(source, imie)
end
triggerClientEvent(source, "hide:panel_tworzenia", source)
end)
function playerJoin(thePlayer)
spawnPlayer(thePlayer, 822.51379, -1358.98242, -0.50781, 0)
end
addEventHandler("onPlayerJoin", getRootElement(), playerJoin)
C-SIDE
local sW, sH = guiGetScreenSize()
local x = 1360
local y = 768
-- /x) * sW, /y) * sH
local sm = {}
sm.moov = 0
sm.object1, sm.object2 = nil, nil
local function camRender ()
local x1, y1, z1 = getElementPosition ( sm.object1 )
local x2, y2, z2 = getElementPosition ( sm.object2 )
setCameraMatrix ( x1, y1, z1, x2, y2, z2 )
end
local function removeCamHandler ()
if(sm.moov == 1) then
sm.moov = 0
removeEventHandler ( "onClientPreRender", getRootElement(), camRender )
end
end
function smoothMoveCameraa ( x1, y1, z1, x1t, y1t, z1t, x2, y2, z2, x2t, y2t, z2t, time )
if(sm.moov == 1) then return false end
sm.object1 = createObject ( 1337, x1, y1, z1 )
sm.object2 = createObject ( 1337, x1t, y1t, z1t )
setElementAlpha ( sm.object1, 0 )
setElementAlpha ( sm.object2, 0 )
setObjectScale(sm.object1, 0.01)
setObjectScale(sm.object2, 0.01)
moveObject ( sm.object1, time, x2, y2, z2, 0, 0, 0, "InOutQuad" )
moveObject ( sm.object2, time, x2t, y2t, z2t, 0, 0, 0, "InOutQuad" )
addEventHandler ( "onClientPreRender", getRootElement(), camRender )
sm.moov = 1
setTimer ( removeCamHandler, time, 1 )
setTimer ( destroyElement, time, 1, sm.object1 )
setTimer ( destroyElement, time, 1, sm.object2 )
return true
end
local logowanie = guiCreateLabel(0.77, 0.41, 0.18, 0.05, "", true)
local rejka = guiCreateLabel(0.77, 0.49, 0.18, 0.05, "", true)
local login = guiCreateEdit(0.38, 0.42, 0.16, 0.04, "WilQ", true)
local haslo = guiCreateEdit(0.38, 0.50, 0.16, 0.04, "mta", true)
guiEditSetMasked(haslo, true)
guiSetVisible(logowanie, false)
guiSetVisible(rejka, false)
guiSetVisible(login, false)
guiSetVisible(haslo, false)
local blad = guiCreateLabel(0.00, 0.57, 1.00, 0.05, "", true)
guiSetAlpha(blad, 0.7)
guiLabelSetColor(blad, 0, 255, 0)
guiLabelSetHorizontalAlign(blad, "center", false)
guiLabelSetVerticalAlign(blad, "center")
guiSetVisible(blad, false)
local bladpostaci = guiCreateLabel(0.00, 0.38, 1.00, 0.05, "", true)
guiSetAlpha(bladpostaci, 0.7)
guiLabelSetColor(bladpostaci, 0, 255, 0)
guiLabelSetHorizontalAlign(bladpostaci, "center", false)
guiLabelSetVerticalAlign(bladpostaci, "center")
guiSetVisible(bladpostaci, false)
local Imie = guiCreateEdit(537, 310, 325, 32, "", false)
local Wiek = guiCreateEdit(683, 397, 41, 32, "", false)
guiSetVisible(Imie, false)
guiSetVisible(Wiek, false)
local stworzpostac = guiCreateLabel(0.535, 0.33, 0.155, 0.04, "", true)
guiSetVisible(stworzpostac, false)
function gui1()
dxDrawRectangle(sW * 0.000, sH * 0.345, sW * 1.000, sH * 0.281, tocolor(0, 0, 0, 200), false)
dxDrawText("Login Gracza:", sW * 0.215, sH * 0.418, sW * 0.366, sH * 0.456, tocolor(0, 100, 100, 255), 1.00, "default-bold", "center", "center", false, false, false, false, false)
dxDrawText("Has?o Gracza:", sW * 0.215, sH * 0.499, sW * 0.366, sH * 0.536, tocolor(0, 100, 100, 255), 1.00, "default-bold", "center", "center", false, false, false, false, false)
dxDrawLine(sW * 0.215, sH * 0.536, sW * 0.366, sH * 0.536, tocolor(0, 100, 100, 255), 2, false)
dxDrawLine(sW * 0.215, sH * 0.456, sW * 0.366, sH * 0.456, tocolor(0, 100, 100, 255), 2, false)
dxDrawRectangle(sW * 0.771, sH * 0.409, sW * 0.177, sH * 0.053, tocolor(0, 100, 100, 200), false)
dxDrawRectangle(sW * 0.771, sH * 0.492, sW * 0.177, sH * 0.053, tocolor(0, 100, 100, 200), false)
dxDrawText("Zaloguj", sW * 0.770, sH * 0.408, sW * 0.948, sH * 0.462, tocolor(255, 255, 255, 255), 1.00, "default-bold", "center", "center", false, false, false, false, false)
dxDrawText("Zarejestruj", sW * 0.770, sH * 0.491, sW * 0.948, sH * 0.546, tocolor(255, 255, 255, 255), 1.00, "default-bold", "center", "center", false, false, false, false, false)
end
function panel_tworzenia()
dxDrawRectangle(0, 272, 1366, 207, tocolor(0, 0, 0, 200), false)
dxDrawText("IMIE_NAZWISKO\n\n\n WIEK", 585, 276, 962, 300, tocolor(254, 254, 254, 200), 1.00, "bankgothic", "left", "top", false, false, false, false, false)
dxDrawRectangle(1033, 360, 291, 31, tocolor(0, 100, 100, 200), false)
dxDrawText("Stw?rz Posta?", 1135, 368, 1339, 391, tocolor(255, 255, 255, 255), 1.00, "default", "left", "top", false, false, false, false, false)
end
addEventHandler("onClientResourceStart", getResourceRootElement(getThisResource()), function()
smoothMoveCameraa (648.00696, -1400.34131, 25.43704, 810.72760, -1400.45178, 25.53072,1045.97888, -1400.84802, 25.44975,1329.71045, -1400.40442, 25.41130, 42000 )
showChat (false)
setPlayerHudComponentVisible("all",false)
guiSetVisible (logowanie, true)
guiSetVisible (rejka, true)
guiSetVisible (login, true)
guiSetVisible (haslo, true)
guiSetVisible (blad, true)
showCursor (true)
addEventHandler("onClientRender", root, gui1)
fadeCamera (true)
end)
addEventHandler("onClientGUIClick", logowanie, function(button)
if (button ~= "left") then return end
triggerServerEvent("onRequestLogin", getLocalPlayer(), guiGetText(login), guiGetText(haslo))
end)
addEventHandler ("onClientGUIClick", rejka, function(button)
if (button ~= "left") then return end
triggerServerEvent("onRequestRegister", getLocalPlayer(), guiGetText(login), guiGetText(haslo))
end)
addEventHandler ("onClientGUIClick", stworzpostac, function(button)
if (button ~= "left") then return end
if guiGetText(Wiek) == "" or string.len(tonumber(guiGetText(Wiek))) > 2 then triggerEvent("bladPostaci", localPlayer, "Podaj wiek!") return end
if guiGetText(Imie) == "" or string.len(tostring(guiGetText(Imie))) > 17 or string.len(tostring(guiGetText(Imie))) < 6 then triggerEvent("bladPostaci", localPlayer, "Podaj imie i nazwisko!") return end
triggerServerEvent("savePlayer", getLocalPlayer(), tostring(guiGetText(Imie)), tonumber(guiGetText(Wiek)))
end)
addEvent('show:panel_tworzenia',true)
addEventHandler('show:panel_tworzenia', getRootElement(), function()
removeEventHandler("onClientRender", root, gui1)
guiSetVisible (logowanie, false)
guiSetVisible (rejka, false)
guiSetVisible (login, false)
guiSetVisible (haslo, false)
guiSetVisible (blad, false)
addEventHandler('onClientRender', getRootElement(), panel_tworzenia)
guiSetVisible(Imie, true)
guiSetVisible(Wiek, true)
guiSetVisible(stworzpostac, true)
guiSetVisible(bladpostaci, true)
end)
addEvent("hide:panel_tworzenia", true)
addEventHandler("hide:panel_tworzenia", getRootElement(), function()
setCameraTarget(localPlayer)
setPlayerHudComponentVisible("all", true)
guiSetVisible(Imie, false)
guiSetVisible(Wiek, false)
guiSetVisible(stworzpostac, false)
guiSetVisible(bladpostaci, false)
showChat(true)
showCursor(false)
removeCamHandler()
removeEventHandler("onClientRender", root, panel_tworzenia)
end)
addEvent("bladLogowania", true)
addEventHandler("bladLogowania", getRootElement(), function(komunikat)
guiSetText(blad, komunikat)
end)
addEvent("bladPostaci", true)
addEventHandler("bladPostaci", getRootElement(), function(komunikat)
guiSetText(bladpostaci, komunikat)
end)
W spoilerze zapis na accountDat?.
S-SIDE
addEvent("onRequestLogin", true)
addEventHandler("onRequestLogin", getRootElement(), function(username, password)
if (username == "" or not username) then triggerClientEvent(source, "bladLogowania", source, "Podaj login!") return end
if (password == "" or not password) then triggerClientEvent(source, "bladLogowania", source, "Podaj has?o!") return end
local account = getAccount(username, password)
if (account == false) then triggerClientEvent(source, "bladLogowania", source, "Nie ma podanego konta lub has?o jest nieprawid?owe!") return end
if logIn(source, account, password) then
setCameraTarget(source, source)
if getAccountData(account, "player.stworzonapostac") == true then
triggerClientEvent(source, "hide:loginpanel", source)
playerJoin(source)
setPlayerName(source, getAccountData(account, "player.imie"))
setElementData(source, "player.wiek", getAccountData(account, "player.wiek"))
return
end
triggerClientEvent(source, 'show:panel_tworzenia', source)
else
triggerClientEvent(source, "bladLogowania", source, "Kto? ju? jest zalogowany na podane konto!")
end
end)
addEvent("onRequestRegister",true)
addEventHandler("onRequestRegister", getRootElement(), function(username,password,passwordConfirm)
if (username == "" or not username) then triggerClientEvent(source, "bladLogowania", source, "Podaj login!") return end
if (password == "" or not password) then triggerClientEvent(source, "bladLogowania", source, "Podaj has?o!") return end
local account = getAccount (username,password)
if (account == true) then triggerClientEvent(source, "bladLogowania", source, "Takie konto ju? istnieje!") return end
local accountAdded = addAccount(tostring(username),tostring(password))
if (not accountAdded) then triggerClientEvent(source, "bladLogowania", source, "Takie konto ju? istnieje!") return end
triggerClientEvent(source, "bladLogowania", source, "Konto zosta?o utworzone.")
end)
addEvent("savePlayer",true)
addEventHandler("savePlayer", getRootElement(), function(imie, wiek)
playerJoin(source)
if wiek then
setAccountData(getPlayerAccount(source), "player.wiek", wiek)
setElementData(source, "player.wiek", wiek)
end
if imie then
setPlayerName(source, imie)
setAccountData(getPlayerAccount(source), "player.imie", imie)
end
setAccountData(getPlayerAccount(source), "player.stworzonapostac", true)
triggerClientEvent(source, "hide:panel_tworzenia", source)
end)
function playerJoin(thePlayer)
spawnPlayer(thePlayer, 822.51379, -1358.98242, -0.50781, 0)
end
addEventHandler("onPlayerJoin", getRootElement(), playerJoin)
C-SIDE
local sW, sH = guiGetScreenSize()
local x = 1360
local y = 768
-- /x) * sW, /y) * sH
local sm = {}
sm.moov = 0
sm.object1, sm.object2 = nil, nil
local function camRender ()
local x1, y1, z1 = getElementPosition ( sm.object1 )
local x2, y2, z2 = getElementPosition ( sm.object2 )
setCameraMatrix ( x1, y1, z1, x2, y2, z2 )
end
local function removeCamHandler ()
if(sm.moov == 1) then
sm.moov = 0
removeEventHandler ( "onClientPreRender", getRootElement(), camRender )
end
end
function smoothMoveCameraa ( x1, y1, z1, x1t, y1t, z1t, x2, y2, z2, x2t, y2t, z2t, time )
if(sm.moov == 1) then return false end
sm.object1 = createObject ( 1337, x1, y1, z1 )
sm.object2 = createObject ( 1337, x1t, y1t, z1t )
setElementAlpha ( sm.object1, 0 )
setElementAlpha ( sm.object2, 0 )
setObjectScale(sm.object1, 0.01)
setObjectScale(sm.object2, 0.01)
moveObject ( sm.object1, time, x2, y2, z2, 0, 0, 0, "InOutQuad" )
moveObject ( sm.object2, time, x2t, y2t, z2t, 0, 0, 0, "InOutQuad" )
addEventHandler ( "onClientPreRender", getRootElement(), camRender )
sm.moov = 1
setTimer ( removeCamHandler, time, 1 )
setTimer ( destroyElement, time, 1, sm.object1 )
setTimer ( destroyElement, time, 1, sm.object2 )
return true
end
local logowanie = guiCreateLabel(0.77, 0.41, 0.18, 0.05, "", true)
local rejka = guiCreateLabel(0.77, 0.49, 0.18, 0.05, "", true)
local login = guiCreateEdit(0.38, 0.42, 0.16, 0.04, "WilQ", true)
local haslo = guiCreateEdit(0.38, 0.50, 0.16, 0.04, "mta", true)
guiEditSetMasked(haslo, true)
guiSetVisible(logowanie, false)
guiSetVisible(rejka, false)
guiSetVisible(login, false)
guiSetVisible(haslo, false)
local blad = guiCreateLabel(0.00, 0.57, 1.00, 0.05, "", true)
guiSetAlpha(blad, 0.7)
guiLabelSetColor(blad, 0, 255, 0)
guiLabelSetHorizontalAlign(blad, "center", false)
guiLabelSetVerticalAlign(blad, "center")
guiSetVisible(blad, false)
local bladpostaci = guiCreateLabel(0.00, 0.38, 1.00, 0.05, "", true)
guiSetAlpha(bladpostaci, 0.7)
guiLabelSetColor(bladpostaci, 0, 255, 0)
guiLabelSetHorizontalAlign(bladpostaci, "center", false)
guiLabelSetVerticalAlign(bladpostaci, "center")
guiSetVisible(bladpostaci, false)
local Imie = guiCreateEdit(537, 310, 325, 32, "", false)
local Wiek = guiCreateEdit(683, 397, 41, 32, "", false)
guiSetVisible(Imie, false)
guiSetVisible(Wiek, false)
local stworzpostac = guiCreateLabel(0.535, 0.33, 0.155, 0.04, "", true)
guiSetVisible(stworzpostac, false)
function gui1()
dxDrawRectangle(sW * 0.000, sH * 0.345, sW * 1.000, sH * 0.281, tocolor(0, 0, 0, 200), false)
dxDrawText("Login Gracza:", sW * 0.215, sH * 0.418, sW * 0.366, sH * 0.456, tocolor(0, 100, 100, 255), 1.00, "default-bold", "center", "center", false, false, false, false, false)
dxDrawText("Has?o Gracza:", sW * 0.215, sH * 0.499, sW * 0.366, sH * 0.536, tocolor(0, 100, 100, 255), 1.00, "default-bold", "center", "center", false, false, false, false, false)
dxDrawLine(sW * 0.215, sH * 0.536, sW * 0.366, sH * 0.536, tocolor(0, 100, 100, 255), 2, false)
dxDrawLine(sW * 0.215, sH * 0.456, sW * 0.366, sH * 0.456, tocolor(0, 100, 100, 255), 2, false)
dxDrawRectangle(sW * 0.771, sH * 0.409, sW * 0.177, sH * 0.053, tocolor(0, 100, 100, 200), false)
dxDrawRectangle(sW * 0.771, sH * 0.492, sW * 0.177, sH * 0.053, tocolor(0, 100, 100, 200), false)
dxDrawText("Zaloguj", sW * 0.770, sH * 0.408, sW * 0.948, sH * 0.462, tocolor(255, 255, 255, 255), 1.00, "default-bold", "center", "center", false, false, false, false, false)
dxDrawText("Zarejestruj", sW * 0.770, sH * 0.491, sW * 0.948, sH * 0.546, tocolor(255, 255, 255, 255), 1.00, "default-bold", "center", "center", false, false, false, false, false)
end
function panel_tworzenia()
dxDrawRectangle(0, 272, 1366, 207, tocolor(0, 0, 0, 200), false)
dxDrawText("IMIE_NAZWISKO\n\n\n WIEK", 585, 276, 962, 300, tocolor(254, 254, 254, 200), 1.00, "bankgothic", "left", "top", false, false, false, false, false)
dxDrawRectangle(1033, 360, 291, 31, tocolor(0, 100, 100, 200), false)
dxDrawText("Stw?rz Posta?", 1135, 368, 1339, 391, tocolor(255, 255, 255, 255), 1.00, "default", "left", "top", false, false, false, false, false)
end
addEventHandler("onClientResourceStart", getResourceRootElement(getThisResource()), function()
smoothMoveCameraa(648.00696, -1400.34131, 25.43704, 810.72760, -1400.45178, 25.53072,1045.97888, -1400.84802, 25.44975,1329.71045, -1400.40442, 25.41130, 42000 )
showChat(false)
setPlayerHudComponentVisible("all",false)
guiSetVisible(logowanie, true)
guiSetVisible(rejka, true)
guiSetVisible(login, true)
guiSetVisible(haslo, true)
guiSetVisible(blad, true)
showCursor(true)
addEventHandler("onClientRender", root, gui1)
fadeCamera(true)
end)
addEventHandler("onClientGUIClick", logowanie, function(button)
if (button ~= "left") then return end
triggerServerEvent("onRequestLogin", getLocalPlayer(), guiGetText(login), guiGetText(haslo))
end)
addEventHandler ("onClientGUIClick", rejka, function(button)
if (button ~= "left") then return end
triggerServerEvent("onRequestRegister", getLocalPlayer(), guiGetText(login), guiGetText(haslo))
end)
addEventHandler ("onClientGUIClick", stworzpostac, function(button)
if (button ~= "left") then return end
if guiGetText(Wiek) == "" or string.len(tonumber(guiGetText(Wiek))) > 2 then triggerEvent("bladPostaci", localPlayer, "Podaj wiek!") return end
if guiGetText(Imie) == "" or string.len(tostring(guiGetText(Imie))) > 17 or string.len(tostring(guiGetText(Imie))) < 6 then triggerEvent("bladPostaci", localPlayer, "Podaj imie i nazwisko!") return end
triggerServerEvent("savePlayer", getLocalPlayer(), tostring(guiGetText(Imie)), tonumber(guiGetText(Wiek)))
end)
addEvent('show:panel_tworzenia',true)
addEventHandler('show:panel_tworzenia', getRootElement(), function()
removeEventHandler("onClientRender", root, gui1)
guiSetVisible (logowanie, false)
guiSetVisible (rejka, false)
guiSetVisible (login, false)
guiSetVisible (haslo, false)
guiSetVisible (blad, false)
addEventHandler('onClientRender', getRootElement(), panel_tworzenia)
guiSetVisible(Imie, true)
guiSetVisible(Wiek, true)
guiSetVisible(stworzpostac, true)
guiSetVisible(bladpostaci, true)
end)
addEvent("hide:loginpanel", true)
addEventHandler("hide:loginpanel", getRootElement(), function()
setCameraTarget(localPlayer)
setPlayerHudComponentVisible("all", true)
removeEventHandler("onClientRender", root, gui1)
guiSetVisible (logowanie, false)
guiSetVisible (rejka, false)
guiSetVisible (login, false)
guiSetVisible (haslo, false)
guiSetVisible (blad, false)
showChat(true)
showCursor(false)
removeCamHandler()
end)
addEvent("hide:panel_tworzenia", true)
addEventHandler("hide:panel_tworzenia", getRootElement(), function()
setCameraTarget(localPlayer)
setPlayerHudComponentVisible("all", true)
guiSetVisible(Imie, false)
guiSetVisible(Wiek, false)
guiSetVisible(stworzpostac, false)
guiSetVisible(bladpostaci, false)
showChat(true)
showCursor(false)
removeCamHandler()
removeEventHandler("onClientRender", root, panel_tworzenia)
end)
addEvent("bladLogowania", true)
addEventHandler("bladLogowania", getRootElement(), function(komunikat)
if not komunikat then return end
guiSetText(blad, tostring(komunikat))
end)
addEvent("bladPostaci", true)
addEventHandler("bladPostaci", getRootElement(), function(komunikat)
if not komunikat then return end
guiSetText(bladpostaci, tostring(komunikat))
end)
Ostatnio zmieniony przez Wilq 2018-09-06, 19:28, w całości zmieniany 1 raz
Wilq, tak robie od podstaw, bo chce zrobi? co? swojego niestety nie umiem pisa? w LUA a dzi?ki u?ytkownikom GTAO troch? si? poducz? sam panel nie jest wykonany przeze mnie
[ Dodano: 2018-09-06, 19:22 ]
A je?li chodzi o save system narazie u?yj? z forum MTA bss (w przysz?o?ci spr?buj? to zrobi? autorsko)
Przyznam, ?e nie jestem najlepszy w SQlite wi?c ?rednio b?dzie z pomoc? z mojej strony.
Tak, zauwa?y?em, ?e przycisk nie dzia?a i go poprawi?em, w spoilerze najnowsza wersja.
Powodzenia!
S-SIDE
addEvent("onRequestLogin", true)
addEventHandler("onRequestLogin", getRootElement(), function(username, password)
if (username == "" or not username) then triggerClientEvent(source, "bladLogowania", source, "Podaj login!") return end
if (password == "" or not password) then triggerClientEvent(source, "bladLogowania", source, "Podaj has?o!") return end
local account = getAccount(username, password)
if (account == false) then triggerClientEvent(source, "bladLogowania", source, "Nie ma podanego konta lub has?o jest nieprawid?owe!") return end
if logIn(source, account, password) then
setCameraTarget(source, source)
if getAccountData(account, "player.stworzonapostac") == true then
triggerClientEvent(source, "hide:loginpanel", source)
playerJoin(source)
setPlayerName(source, getAccountData(account, "player.imie"))
setElementData(source, "player.wiek", getAccountData(account, "player.wiek"))
return
end
triggerClientEvent(source, 'show:panel_tworzenia', source)
else
triggerClientEvent(source, "bladLogowania", source, "Kto? ju? jest zalogowany na podane konto!")
end
end)
addEvent("onRequestRegister",true)
addEventHandler("onRequestRegister", getRootElement(), function(username,password,passwordConfirm)
if (username == "" or not username) then triggerClientEvent(source, "bladLogowania", source, "Podaj login!") return end
if (password == "" or not password) then triggerClientEvent(source, "bladLogowania", source, "Podaj has?o!") return end
local account = getAccount (username,password)
if (account == true) then triggerClientEvent(source, "bladLogowania", source, "Takie konto ju? istnieje!") return end
local accountAdded = addAccount(tostring(username),tostring(password))
if (not accountAdded) then triggerClientEvent(source, "bladLogowania", source, "Takie konto ju? istnieje!") return end
triggerClientEvent(source, "bladLogowania", source, "Konto zosta?o utworzone.")
end)
addEvent("savePlayer",true)
addEventHandler("savePlayer", getRootElement(), function(imie, wiek)
playerJoin(source)
if wiek then
setAccountData(getPlayerAccount(source), "player.wiek", wiek)
setElementData(source, "player.wiek", wiek)
end
if imie then
setPlayerName(source, imie)
setAccountData(getPlayerAccount(source), "player.imie", imie)
end
setAccountData(getPlayerAccount(source), "player.stworzonapostac", true)
triggerClientEvent(source, "hide:panel_tworzenia", source)
end)
function playerJoin(thePlayer)
spawnPlayer(thePlayer, 822.51379, -1358.98242, -0.50781, 0)
end
addEventHandler("onPlayerJoin", getRootElement(), playerJoin)
C-SIDE
local sW, sH = guiGetScreenSize()
local x = 1360
local y = 768
-- /x) * sW, /y) * sH
local sm = {}
sm.moov = 0
sm.object1, sm.object2 = nil, nil
local function camRender ()
local x1, y1, z1 = getElementPosition ( sm.object1 )
local x2, y2, z2 = getElementPosition ( sm.object2 )
setCameraMatrix ( x1, y1, z1, x2, y2, z2 )
end
local function removeCamHandler ()
if(sm.moov == 1) then
sm.moov = 0
removeEventHandler ( "onClientPreRender", getRootElement(), camRender )
end
end
function smoothMoveCameraa ( x1, y1, z1, x1t, y1t, z1t, x2, y2, z2, x2t, y2t, z2t, time )
if(sm.moov == 1) then return false end
sm.object1 = createObject ( 1337, x1, y1, z1 )
sm.object2 = createObject ( 1337, x1t, y1t, z1t )
setElementAlpha ( sm.object1, 0 )
setElementAlpha ( sm.object2, 0 )
setObjectScale(sm.object1, 0.01)
setObjectScale(sm.object2, 0.01)
moveObject ( sm.object1, time, x2, y2, z2, 0, 0, 0, "InOutQuad" )
moveObject ( sm.object2, time, x2t, y2t, z2t, 0, 0, 0, "InOutQuad" )
addEventHandler ( "onClientPreRender", getRootElement(), camRender )
sm.moov = 1
setTimer ( removeCamHandler, time, 1 )
setTimer ( destroyElement, time, 1, sm.object1 )
setTimer ( destroyElement, time, 1, sm.object2 )
return true
end
local logowanie = guiCreateLabel(0.77, 0.41, 0.18, 0.05, "", true)
local rejka = guiCreateLabel(0.77, 0.49, 0.18, 0.05, "", true)
local login = guiCreateEdit(0.38, 0.42, 0.16, 0.04, "WilQ", true)
local haslo = guiCreateEdit(0.38, 0.50, 0.16, 0.04, "mta", true)
guiEditSetMasked(haslo, true)
guiSetVisible(logowanie, false)
guiSetVisible(rejka, false)
guiSetVisible(login, false)
guiSetVisible(haslo, false)
local blad = guiCreateLabel(0.00, 0.57, 1.00, 0.05, "", true)
guiSetAlpha(blad, 0.7)
guiLabelSetColor(blad, 0, 255, 0)
guiLabelSetHorizontalAlign(blad, "center", false)
guiLabelSetVerticalAlign(blad, "center")
guiSetVisible(blad, false)
local bladpostaci = guiCreateLabel(0.00, 0.38, 1.00, 0.05, "", true)
guiSetAlpha(bladpostaci, 0.7)
guiLabelSetColor(bladpostaci, 0, 255, 0)
guiLabelSetHorizontalAlign(bladpostaci, "center", false)
guiLabelSetVerticalAlign(bladpostaci, "center")
guiSetVisible(bladpostaci, false)
local Imie = guiCreateEdit(537, 310, 325, 32, "", false)
local Wiek = guiCreateEdit(683, 397, 41, 32, "", false)
guiSetVisible(Imie, false)
guiSetVisible(Wiek, false)
local stworzpostac = guiCreateLabel(0.535, 0.33, 0.155, 0.04, "", true)
guiSetVisible(stworzpostac, false)
function gui1()
dxDrawRectangle(sW * 0.000, sH * 0.345, sW * 1.000, sH * 0.281, tocolor(0, 0, 0, 200), false)
dxDrawText("Login Gracza:", sW * 0.215, sH * 0.418, sW * 0.366, sH * 0.456, tocolor(0, 100, 100, 255), 1.00, "default-bold", "center", "center", false, false, false, false, false)
dxDrawText("Has?o Gracza:", sW * 0.215, sH * 0.499, sW * 0.366, sH * 0.536, tocolor(0, 100, 100, 255), 1.00, "default-bold", "center", "center", false, false, false, false, false)
dxDrawLine(sW * 0.215, sH * 0.536, sW * 0.366, sH * 0.536, tocolor(0, 100, 100, 255), 2, false)
dxDrawLine(sW * 0.215, sH * 0.456, sW * 0.366, sH * 0.456, tocolor(0, 100, 100, 255), 2, false)
dxDrawRectangle(sW * 0.771, sH * 0.409, sW * 0.177, sH * 0.053, tocolor(0, 100, 100, 200), false)
dxDrawRectangle(sW * 0.771, sH * 0.492, sW * 0.177, sH * 0.053, tocolor(0, 100, 100, 200), false)
dxDrawText("Zaloguj", sW * 0.770, sH * 0.408, sW * 0.948, sH * 0.462, tocolor(255, 255, 255, 255), 1.00, "default-bold", "center", "center", false, false, false, false, false)
dxDrawText("Zarejestruj", sW * 0.770, sH * 0.491, sW * 0.948, sH * 0.546, tocolor(255, 255, 255, 255), 1.00, "default-bold", "center", "center", false, false, false, false, false)
end
function panel_tworzenia()
dxDrawRectangle(0, 272, 1366, 207, tocolor(0, 0, 0, 200), false)
dxDrawText("IMIE_NAZWISKO\n\n\n WIEK", 585, 276, 962, 300, tocolor(254, 254, 254, 200), 1.00, "bankgothic", "left", "top", false, false, false, false, false)
dxDrawRectangle(1033, 360, 291, 31, tocolor(0, 100, 100, 200), false)
dxDrawText("Stw?rz Posta?", 1135, 368, 1339, 391, tocolor(255, 255, 255, 255), 1.00, "default", "left", "top", false, false, false, false, false)
end
addEventHandler("onClientResourceStart", getResourceRootElement(getThisResource()), function()
smoothMoveCameraa(648.00696, -1400.34131, 25.43704, 810.72760, -1400.45178, 25.53072,1045.97888, -1400.84802, 25.44975,1329.71045, -1400.40442, 25.41130, 42000 )
showChat(false)
setPlayerHudComponentVisible("all",false)
guiSetVisible(logowanie, true)
guiSetVisible(rejka, true)
guiSetVisible(login, true)
guiSetVisible(haslo, true)
guiSetVisible(blad, true)
showCursor(true)
addEventHandler("onClientRender", root, gui1)
fadeCamera(true)
end)
addEventHandler("onClientGUIClick", logowanie, function(button)
if (button ~= "left") then return end
triggerServerEvent("onRequestLogin", getLocalPlayer(), guiGetText(login), guiGetText(haslo))
end)
addEventHandler ("onClientGUIClick", rejka, function(button)
if (button ~= "left") then return end
triggerServerEvent("onRequestRegister", getLocalPlayer(), guiGetText(login), guiGetText(haslo))
end)
addEventHandler ("onClientGUIClick", stworzpostac, function(button)
if (button ~= "left") then return end
if guiGetText(Wiek) == "" or string.len(tonumber(guiGetText(Wiek))) > 2 then triggerEvent("bladPostaci", localPlayer, "Podaj wiek!") return end
if guiGetText(Imie) == "" or string.len(tostring(guiGetText(Imie))) > 17 or string.len(tostring(guiGetText(Imie))) < 6 then triggerEvent("bladPostaci", localPlayer, "Podaj imie i nazwisko!") return end
triggerServerEvent("savePlayer", getLocalPlayer(), tostring(guiGetText(Imie)), tonumber(guiGetText(Wiek)))
end)
addEvent('show:panel_tworzenia',true)
addEventHandler('show:panel_tworzenia', getRootElement(), function()
removeEventHandler("onClientRender", root, gui1)
guiSetVisible (logowanie, false)
guiSetVisible (rejka, false)
guiSetVisible (login, false)
guiSetVisible (haslo, false)
guiSetVisible (blad, false)
addEventHandler('onClientRender', getRootElement(), panel_tworzenia)
guiSetVisible(Imie, true)
guiSetVisible(Wiek, true)
guiSetVisible(stworzpostac, true)
guiSetVisible(bladpostaci, true)
end)
addEvent("hide:loginpanel", true)
addEventHandler("hide:loginpanel", getRootElement(), function()
setCameraTarget(localPlayer)
setPlayerHudComponentVisible("all", true)
removeEventHandler("onClientRender", root, gui1)
guiSetVisible (logowanie, false)
guiSetVisible (rejka, false)
guiSetVisible (login, false)
guiSetVisible (haslo, false)
guiSetVisible (blad, false)
showChat(true)
showCursor(false)
removeCamHandler()
end)
addEvent("hide:panel_tworzenia", true)
addEventHandler("hide:panel_tworzenia", getRootElement(), function()
setCameraTarget(localPlayer)
setPlayerHudComponentVisible("all", true)
guiSetVisible(Imie, false)
guiSetVisible(Wiek, false)
guiSetVisible(stworzpostac, false)
guiSetVisible(bladpostaci, false)
showChat(true)
showCursor(false)
removeCamHandler()
removeEventHandler("onClientRender", root, panel_tworzenia)
end)
addEvent("bladLogowania", true)
addEventHandler("bladLogowania", getRootElement(), function(komunikat)
if not komunikat then return end
guiSetText(blad, tostring(komunikat))
end)
addEvent("bladPostaci", true)
addEventHandler("bladPostaci", getRootElement(), function(komunikat)
if not komunikat then return end
guiSetText(bladpostaci, tostring(komunikat))
end)
Oczywi?cie, ?e jest.
Je?li chcesz, do 20 minut wy?l? system zapisu i system logowania zintegrowany ze sob?,
tylko pytanie czy jest po co, przecie? logowanie ma ju? samo w sobie zapis na accountDat? co powoduje, ?e te inforomacje nie s? tracone.
Wilq, Bardziej chodzi mi o to aby przy logowaniu nie by?a potrzeba tworzenia nowej postaci, tylko od razu gdy skrypt wykryje ju? posta? z automatu po klikni?ciu "zaloguj" ?aduje posta? a je?eli konto nie wykryje postaci to wy?wietla si? gui tworzenia
Podpis
RCRP (Red County Role Play) - Nowy projekt. W czasie prac.
Tak, zale?ne od rozdzielczo?ci. Do tworzenia postaci zapomnia?e? doda? skalowania, rozumiem, ?e pasek ma by? na ca?? szeroko?? ekranu? Na FullHD on nie jest po ca?ej szeroko?ci jakby co.
Nie możesz pisać nowych tematów Nie możesz odpowiadać w tematach Nie możesz zmieniać swoich postów Nie możesz usuwać swoich postów Nie możesz głosować w ankietach