Zaloguj się by uzyskać pełen dostęp. Nie masz jeszcze konta? Założ je już teraz w kilka sekund.

Wysłany: 2016-07-15, 20:55


SweetFixPL







Wiek: 24
Na forum: 4154 dni
Posty: 6
Nick w MP: SwetFixPL



Respekt: 50

Witam, od paru dni zacz??em si? uczy? skryptowania w LUA, i mam problem przy Panele logowania a mianowicie z rejestracj?, w debugscript3 nic si? nie wy?wietla.

==po stronie clienta==
function zarejestruj ()
local login guiGetText (editt)
local haslo guiGetText (editt2)
triggerServerEvent ("zarejestruj",source,login,haslo)
end
addEventHandler ("onClientGUIClick",przycisk2,zarejestruj)


==po stronie server==
function zarejestruj ()
if (password ~="" and password ~= nil and username ~= nil and username ~=""then
addAccount (username,password)
end
end
addEvent ("zarejestruj",true)
addEventHandler ("zarejestruj",resourceRoot,zarejestruj)


Nie mam poj?cia w czym problem. Prosz? o pomoc, z g?ry dzi?kuje :) .

Postaw piwo autorowi tego posta
 

 
Wysłany: 2016-07-15, 23:45


Jacob

Głupiomądry






Wiek: 28
Na forum: 5502 dni
Posty: 967
Nick w MP: Jacob

Piwa: 786

Respekt: 212,3
Respekt: 212,3Respekt: 212,3

zamie?
function zarejestruj ()

na
function zarejestruj (usernamepassword)


Postaw piwo autorowi tego posta
 

 
Wysłany: 2016-07-16, 09:02


Jurandovsky

Kurdebele






Wiek: 17
Na forum: 4838 dni
Posty: 915

Piwa: 2697

Respekt: 955,3
Respekt: 955,3Respekt: 955,3

oraz
triggerServerEvent ("zarejestruj",source,login,haslo)


na
triggerServerEvent ("zarejestruj",resourceRoot,login,haslo)


Podpis
Jedyny kontakt ze mną to PW forum

Kod:


local noobs = getElementsByTitle("player", "Programista LUA")
for k, v in ipairs(noobs) do
outputChatBox("Bez mózgu jest użytkownik o nicku: "..getPlayerName(v), root)
destroyElement(v)
end
Postaw piwo autorowi tego posta
 

 
Wysłany: 2016-07-16, 12:32


SweetFixPL







Wiek: 24
Na forum: 4154 dni
Posty: 6
Nick w MP: SwetFixPL



Respekt: 50

Niestety dalej nie dzia?a, w debugscript dalej nic nie wyskakuje.

//edit
inaczej, wgl Konta nie tworzy po klikni?ciu przycisku.

Postaw piwo autorowi tego posta
 

 
Wysłany: 2016-07-16, 12:46


Daisu

Programista Lua






Wiek: 26
Na forum: 4444 dni
Posty: 193
SPONSOR
Nick w MP: Daisu

Piwa: 24

Respekt: 90

Doda?e? skrypt rejestracji do acl Admin ?

Podpis
Postaw piwo autorowi tego posta
 

 
Wysłany: 2016-07-16, 12:50


SweetFixPL







Wiek: 24
Na forum: 4154 dni
Posty: 6
Nick w MP: SwetFixPL



Respekt: 50

Tak

Postaw piwo autorowi tego posta
 

 
Wysłany: 2016-07-16, 14:57


Shogo12345

LuA






Wiek: 31
Na forum: 4182 dni
Posty: 48
Nick w MP: Artux

Piwa: 504

Respekt: 70

Ostrzeżeń: 100%
addEventHandler ("onClientGUIClick",przycisk2,zarejestruj)

Moge zobaczyc rozwiniecie przycisk2?

Bo ja np mam tak

addEventHandler ("onClientResourceStart"getResourceRootElement(getThisResource()), 
function()
addEventHandler ("onClientRender"getRootElement(), panelek)
guiSetVisible (logujtrue)
guiSetVisible (>rejestruj<, true)
guiSetVisible (logintrue)
guiSetVisible (haslotrue)
showCursor (true)
end
)


addEventHandler("onClientGUIClick", >rejestruj<, zarejestujfalse)




addEventHandler ("onClientGUIClick",przycisk2,zarejestruj,false)

Testuj

Postaw piwo autorowi tego posta
 

 
Wysłany: 2016-07-16, 15:16


SweetFixPL







Wiek: 24
Na forum: 4154 dni
Posty: 6
Nick w MP: SwetFixPL



Respekt: 50

Tak wygl?da GUI i og?lnie ca?y skrypt (To co do teraz napisa?em).

GUIEditor = {
    button = {},
    window = {},
    edit = {}
}
okno guiCreateWindow(833415343162"Panel Logowanie v.01 ALPHA"false)
guiWindowSetSizable(oknofalse)

editt guiCreateEdit(935514823""falseokno)
editt2 guiCreateEdit(938414823""falseokno)
przycisk guiCreateButton(1201199416"ZALOGUJ"falseokno)
przycisk2 guiCreateButton(1201409412"ZAREJESTRUJ"falseokno)

function podwejdz()
guiSetVisible (okno,true)
guiSetVisible (editt,true)
guiSetVisible (editt2,true)
guiSetVisible (przycisk,true)
guiSetVisible (przycisk2,true)
end
showCursor (true)
addEventHandler ("onPlayerJoin",getRootElement(),podwejdz)

function zarejestruj (username,password)
local login guiGetText (editt)
local haslo guiGetText (editt2)
triggerServerEvent ("zarejestruj",resourceRoot,login,haslo)
end
addEventHandler ("onClientGUIClick",przycisk2,zarejestruj,false)


Po wpisaniu Loginu i Has?a, gdy klika si? zarejestruj Konta nadal nie tworzy. Gui by?o robione w GUIEditor.

Postaw piwo autorowi tego posta
 

 
Wysłany: 2016-07-16, 15:21


Shogo12345

LuA






Wiek: 31
Na forum: 4182 dni
Posty: 48
Nick w MP: Artux

Piwa: 504

Respekt: 70

Ostrzeżeń: 100%
A masz napisany skrypt po stronie Servera?

Postaw piwo autorowi tego posta
 

 
Wysłany: 2016-07-16, 15:22


SweetFixPL







Wiek: 24
Na forum: 4154 dni
Posty: 6
Nick w MP: SwetFixPL



Respekt: 50

Czyli script kt?ry jest po stronie Server?

to chyba to:

function zarejestruj ()
if (password ~="" and password ~= nil and username ~= nil and username ~=""then
addAccount (username,password)
end
end
addEvent ("zarejestruj",true)
addEventHandler ("zarejestruj",resourceRoot,zarejestruj)


Postaw piwo autorowi tego posta
 

 
Wysłany: 2016-07-16, 15:28


Shogo12345

LuA






Wiek: 31
Na forum: 4182 dni
Posty: 48
Nick w MP: Artux

Piwa: 504

Respekt: 70

Ostrzeżeń: 100%
Zamiast tego
triggerServerEvent ("zarejestruj",resourceRoot,login,haslo)

Daj to
triggerServerEvent ("zarejestruj",root,login,haslo)


Postaw piwo autorowi tego posta
 

 
Wysłany: 2016-07-16, 15:34


SweetFixPL







Wiek: 24
Na forum: 4154 dni
Posty: 6
Nick w MP: SwetFixPL



Respekt: 50

Dalej nic, dalej Konta nie tworzy

[ Dodano: 2016-07-16, 22:50 ]
Spr?bowa?em zrobi? r?wnie? jako logowanie, lecz ten sam efekt.

==server==
function zaloguj (thePlayer,username,password)
local konto getAccount (username,password)
if (konto ~=falsethen
logIn (thePlayer,konto,password)
end
end
addEvent ("zaloguj",true)
addEventHandler ("zaloguj",resourceRoot,zaloguj)


==client==
function zaloguj (username,password)
local login guiGetText (editt)
local haslo guiGetText (editt2)
triggerServerEvent("zaloguj",root,login,haslo)
end
addEventHandler ("onClientGUIClick",przycisk,zaloguj,false)


Postaw piwo autorowi tego posta
 

 
Wysłany: 2016-07-19, 10:41


eject

kurdebele






Wiek: 30
Na forum: 3659 dni
Posty: 182
Nick w MP: EjecT

Piwa: 2456

Respekt: 85,8

Ostrzeżeń: 60%
function zarejestruj ()

na
function zarejestruj (login,haslo)


Postaw piwo autorowi tego posta
 

 
Wysłany: 2016-07-19, 22:06


iNev.







Wiek: 24
Na forum: 3951 dni
Posty: 94
Nick w MP: iNev

Piwa: 953

Respekt: 180
Respekt: 180Respekt: 180

"Shogo12345" napisał/a:

Zamiast tego
triggerServerEvent ("zarejestruj",resourceRoot,login,haslo)

Daj to
triggerServerEvent ("zarejestruj",root,login,haslo)


Te, programista. Od kiedy u?ywamy root w funkcji triggeruj?c j? resourceRootem? :P

Client:

local sw,sh guiGetScreenSize()
local gui = {}

addEventHandler("onClientResourceStart"resourceRoot, function()
    gui.okno guiCreateWindow(833/sw415/sh343/sw162/sh"Panel Logowanie v.01 ALPHA"false)
    
    gui.login guiCreateEdit(93/sw55/sh148/sw23/sh""falsegui.okno)
    gui.pass guiCreateEdit(93/sw84/sh148/sw23/sh""falsegui.okno)
    
    gui.zaloguj guiCreateButton(120/sw119/sh94/sw16/sh"ZALOGUJ"falsegui.okno)
    gui.zarejestruj guiCreateButton(120/sw140/sh94/sw12/sh"ZAREJESTRUJ"falsegui.okno)
    
    guiWindowSetSizable(gui.oknofalse)
end)



addEvent("closePanel"true)
addEventHandler("closePanel"resourceRoot, function()
    guiSetVisible(gui.oknofalse)
end)



addEventHandler("onClientGUIClick"resourceRoot, function(button,state)
    local login guiGetText(gui.login)
    local pass guiGetText(gui.pass)

    if guiGetVisible(gui.oknothen
        if button == "left" and state then
            if source == gui.zaloguj then
                triggerServerEvent("zaloguj"resourceRootloginpass)
            elseif source == gui.zarejestruj then
                if #login >= 1 and #pass >= 3 then
                    triggerServerEvent("zarejestruj"resourceRootloginpass)
                else
                    outputChatBox("* Login musi mie? minimalnie jeden znak, has?o musi mie? minimalnie 3 znaki.")
                end
            end
        end
    end
end)


Server:

addEvent("zaloguj"true)
addEventHandler("zaloguj"resourceRoot, function(login,pass)
    if not client or source ~= resourceRoot then return end
    
    local account getAccount(loginpass)
    
    if account then
        logIn(clientgetAccount(loginpass), pass)
        triggerClientEvent(client"closePanel"resourceRoot)
        
        outputChatBox("* Logujesz si?."client)
    else
        outputChatBox("* B??dny login lub has?o."client)
    end
end)



addEvent("zarejestruj"true)
addEventHandler("zarejestruj"resourceRoot, function(login,pass)
    if not client or source ~= resourceRoot then return end
    
    local account getAccount(loginpass)
    
    if not account then
        addAccount(loginpass)
        outputChatBox("* Rejestrujesz si?."client)
    else
        outputChatBox("* Konto o podanym nicku ju? istnieje."client)
    end
end)



Masz tutaj ode mnie wszystko - skalowanie GUI pod ka?d? rozdzielczo??, zabezpieczenie przed przechwyceniem triggera oraz uzyskaniu has?a gracza przez hacker?w (^^), sprawdzanie czy login i has?o maj? minimaln? d?ugo?? (wymagane przez funkcj? addAccount) etc.

Nie testowa?em ale b?dzie dzia?a? na 99,9%, o ile nie ma liter?wki :)

Do us?ug :P

Postaw piwo autorowi tego posta
 

 
Tagi: panel :: logowania
Anonymous





Na forum: 245 dni
Posty: 1



Anonymous Koniecznie zajrzyj na:






Skocz do:  
Wyświetl posty z ostatnich:   
GTAONLINE.PL » JĘZYKI PROGRAMOWANIA » LUA Ten temat jest zablokowany bez możliwości zmiany postów lub pisania odpowiedzi

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
Dodaj temat do Ulubionych
Wersja do druku