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: 4295 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: 5643 dni
Posty: 967
Nick w MP: Jacob

Piwa: 786

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

zamie?
function zarejestruj ()

na
function zarejestruj (username, password)


Postaw piwo autorowi tego posta
 

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


Jurandovsky

Kurdebele






Wiek: 17
Na forum: 4979 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: 4295 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: 4585 dni
Posty: 192
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: 4295 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: 32
Na forum: 4323 dni
Posty: 48
Nick w MP: Artux

Piwa: 505

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 (loguj, true)
guiSetVisible (>rejestruj<, true)
guiSetVisible (login, true)
guiSetVisible (haslo, true)
showCursor (true)
end
)


addEventHandler("onClientGUIClick", >rejestruj<, zarejestuj, false)




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

Testuj

Postaw piwo autorowi tego posta
 

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


SweetFixPL







Wiek: 24
Na forum: 4295 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(833, 415, 343, 162, "Panel Logowanie v.01 ALPHA", false)
guiWindowSetSizable(okno, false)

editt = guiCreateEdit(93, 55, 148, 23, "", false, okno)
editt2 = guiCreateEdit(93, 84, 148, 23, "", false, okno)
przycisk = guiCreateButton(120, 119, 94, 16, "ZALOGUJ", false, okno)
przycisk2 = guiCreateButton(120, 140, 94, 12, "ZAREJESTRUJ", false, okno)

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: 32
Na forum: 4323 dni
Posty: 48
Nick w MP: Artux

Piwa: 505

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: 4295 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: 32
Na forum: 4323 dni
Posty: 48
Nick w MP: Artux

Piwa: 505

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: 4295 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 ~=false) then
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: 3800 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: 4092 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/sw, 415/sh, 343/sw, 162/sh, "Panel Logowanie v.01 ALPHA", false)
    
    gui.login = guiCreateEdit(93/sw, 55/sh, 148/sw, 23/sh, "", false, gui.okno)
    gui.pass = guiCreateEdit(93/sw, 84/sh, 148/sw, 23/sh, "", false, gui.okno)
    
    gui.zaloguj = guiCreateButton(120/sw, 119/sh, 94/sw, 16/sh, "ZALOGUJ", false, gui.okno)
    gui.zarejestruj = guiCreateButton(120/sw, 140/sh, 94/sw, 12/sh, "ZAREJESTRUJ", false, gui.okno)
    
    guiWindowSetSizable(gui.okno, false)
end)



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



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

    if guiGetVisible(gui.okno) then
        if button == "left" and state then
            if source == gui.zaloguj then
                triggerServerEvent("zaloguj", resourceRoot, login, pass)
            elseif source == gui.zarejestruj then
                if #login >= 1 and #pass >= 3 then
                    triggerServerEvent("zarejestruj", resourceRoot, login, pass)
                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(login, pass)
    
    if account then
        logIn(client, getAccount(login, pass), 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(login, pass)
    
    if not account then
        addAccount(login, pass)
        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