Hallo,
und zwar habe ich ein Login Fenster geschrieben, und wenn man sich Fehlerhaft einloggt kommt ein Error Fenster und danach das Login Fenster erneut.
Meine Frage bezieht sich nun darauf ob der Aufbau richtig ist.
Sprich ich habe es getestet und es funktioniert auch soweit, allerdings weis ich jetzt nicht wegen Variablen Freigeben etc., ob sich das nicht überlaufen könnte.
Hier mal der Quellcode:
server.lua:
Code
function joinHandler()
triggerClientEvent ( "wdwLoginShow", getRootElement() )
MY_MYSQL_Connect()
end
function CheckUserLogin(username, password)
if username == "user" then
local x,y,z
x = 1959.55
y = -1714.46
z = 10
spawnPlayer(client, x, y, z)
fadeCamera(client, true)
outputChatBox("Willkommen auf meinem Testserver", client)
else
outputChatBox("Deine Angaben sind falsch!", client)
triggerClientEvent ( "wdwLoginError", getRootElement() )
end
end
function MY_MYSQL_Connect()
local handler = mysql_connect("localhost", "root", "", "database") -- Establish the connection
if ( not handler ) then -- The connection failed
outputDebugString("Unable to connect to the MySQL server")
else
mysql_close(handler) -- Close the connection
end
end
addEventHandler("onPlayerJoin", getRootElement(), joinHandler)
addEvent("SubmitLogin", true)
addEventHandler("SubmitLogin", getRootElement(), CheckUserLogin)
Alles anzeigen
client.lua
Code
function CreateLoginWindow()
local X = 0.375
local Y = 0.375
local Width = 0.25
local Height = 0.25
wdwLogin = guiCreateWindow(X, Y, Width, Height, "Login Fenster", true)
X = 0.0825
Y = 0.2
Width = 0.25
Height = 0.25
guiCreateLabel(X, Y, Width, Height, "Username", true, wdwLogin)
Y = 0.5
guiCreateLabel(X, Y, Width, Height, "Password", true, wdwLogin)
X = 0.415
Y = 0.2
Width = 0.5
Height = 0.15
edtUser = guiCreateEdit(X, Y, Width, Height, "", true, wdwLogin)
Y = 0.5
edtPass = guiCreateEdit(X, Y, Width, Height, "", true, wdwLogin)
guiEditSetMaxLength(edtUser, 50)
guiEditSetMaxLength(edtPass, 50)
X = 0.415
Y = 0.7
Width = 0.25
Height = 0.2
btnLogin = guiCreateButton(X, Y, Width, Height, "Log In", true, wdwLogin)
guiSetVisible(wdwLogin, true)
addEventHandler("onClientGUIClick", btnLogin, clientSubmitLogin, false)
end
function CreateErrorWindow()
local X = 0.375
local Y = 0.375
local Width = 0.25
local Height = 0.25
wdwError = guiCreateWindow(X, Y, Width, Height, "Error", true)
X = 0.415
Y = 0.7
Width = 0.25
Height = 0.2
btnOK = guiCreateButton(X, Y, Width, Height, "Log In", true, wdwError)
addEventHandler("onClientGUIClick", btnOK, clientSubmitError, false)
end
function clientSubmitError(button)
if button == "left" then
guiSetVisible(wdwError, false)
--triggerClientEvent ( "wdwLoginShow", getRootElement() )
triggerEvent( "wdwLoginShow", getRootElement() )
end
end
function clientSubmitLogin(button)
if button == "left" then
triggerServerEvent("SubmitLogin", getRootElement(), guiGetText(edtUser), guiGetText(edtPass))
guiSetInputEnabled(false)
guiSetVisible(wdwLogin, false)
showCursor(false)
end
end
addEvent("wdwLoginShow", true);
addEventHandler ( "wdwLoginShow", getRootElement (),
function()
CreateLoginWindow()
if (wdwLogin ~= nil) then
guiSetVisible(wdwLogin, true)
end
showCursor(true)
guiSetInputEnabled(true)
end
)
addEvent("wdwLoginError", true)
addEventHandler ( "wdwLoginError", getRootElement (),
function()
CreateErrorWindow()
if (wdwError ~= nil) then
guiSetVisible(wdwError, true)
end
showCursor(true)
guiSetInputEnabled(true)
end
)
Alles anzeigen
Kann ich das verbessern oder reicht das so und könnte es verwenden?