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.
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
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)
[ 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)
Te, programista. Od kiedy u?ywamy root w funkcji triggeruj?c j? resourceRootem?
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
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