Sehr geehrte Community,
ich habe ein weiteres Problem, ich benutze den Standart Race Gamemode und habe dort ein Login & Register System eingebaut.
Allerdings wenn ich auf den Server connecte, werde ich trotzdem gespawnt und kann die Map fahren und das Login Fenster erscheint trotzdem.
Wie mache ich es das ich mich einloggen muss und dann erst gespawnt werde und vorher dann immer sterbe oder einen anderen Spieler spectate ?
Hier mal das System:
register_login_c.lua (Client):
Lua
GUIEditor = {
label = {},
button = {},
edit = {},
window = {},
}
function open_register_login_window_clientside ()
local player = getLocalPlayer()
triggerServerEvent ( "open_register_login_window_serverside", getLocalPlayer(), player )
end
addEventHandler("onClientResourceStart", getResourceRootElement(getThisResource()), open_register_login_window_clientside)
addEventHandler("onClientResourceStart",resourceRoot,
function()
GUIEditor.window[1] = guiCreateWindow(710, 392, 487, 281, "Pure Race | Login and Register Panel", false)
guiWindowSetSizable(GUIEditor.window[1], false)
guiSetAlpha(GUIEditor.window[1], 1.00)
guiSetProperty(GUIEditor.window[1], "CaptionColour", "FFFFC000")
GUIEditor.edit[1] = guiCreateEdit(164, 117, 156, 32, "", false, GUIEditor.window[1])
GUIEditor.label[1] = guiCreateLabel(211, 92, 62, 15, "Username", false, GUIEditor.window[1])
guiSetFont(GUIEditor.label[1], "default-bold-small")
guiLabelSetColor(GUIEditor.label[1], 255, 192, 0)
GUIEditor.edit[3] = guiCreateEdit(164, 178, 156, 32, "", false, GUIEditor.window[1])
guiSetAlpha(GUIEditor.edit[3], 1)
guiEditSetMasked(GUIEditor.edit[3], true)
GUIEditor.label[2] = guiCreateLabel(212, 157, 62, 15, "Password", false, GUIEditor.window[1])
guiSetFont(GUIEditor.label[2], "default-bold-small")
guiLabelSetColor(GUIEditor.label[2], 255, 192, 0)
GUIEditor.button[1] = guiCreateButton(106, 219, 119, 42, "Login", false, GUIEditor.window[1])
GUIEditor.button[2] = guiCreateButton(258, 221, 119, 40, "Register", false, GUIEditor.window[1])
GUIEditor.label[3] = guiCreateLabel(12, 25, 464, 66, "Welcome on the Pure Gaming - Race server!\n\nOur server is already in development!\npG - Development Team", false, GUIEditor.window[1])
guiLabelSetHorizontalAlign(GUIEditor.label[3], "center", false)
addEventHandler("onClientGUIClick", GUIEditor.button[1], register_login_login_definition, false)
addEventHandler("onClientGUIClick", GUIEditor.button[2], register_login_register_definition, false)
guiSetVisible(GUIEditor.window[1], true)
guiSetInputEnabled(true)
showCursor(true)
end
)
function register_login_window_settings ()
guiSetVisible (GUIEditor.window[1], false)
guiWindowSetMovable ( GUIEditor.window[1], false )
guiWindowSetSizable ( GUIEditor.window[1], false )
end
addEventHandler("onClientResourceStart", getResourceRootElement(getThisResource()), register_login_window_settings)
function register_login_show_function ()
getVisible = guiGetVisible (GUIEditor.window[1])
playerName = getPlayerName ( getLocalPlayer() )
if (getVisible == true) then
guiSetInputEnabled ( false )
guiSetVisible (GUIEditor.window[1], false)
showCursor (false)
end
if (getVisible == false) then
guiSetInputEnabled ( true )
guiSetVisible (GUIEditor.window[1], true)
showCursor (true)
end
end
addEvent( "register_login_show_function", true )
addEventHandler( "register_login_show_function", getRootElement(), register_login_show_function )
function register_login_register_definition (button)
if button == "left" then
local username = guiGetText ( GUIEditor.edit[1] )
local password = guiGetText ( GUIEditor.edit[3] )
if (password ~= username) and (username ~= "") and (password ~= "") then
R_player = getLocalPlayer()
R_name = getPlayerName (R_player)
triggerServerEvent ( "register_function_serverside", getLocalPlayer(), username, password, R_name)
else
outputChatBox ("[#FF8000Register#FFFFFF]#FF0000Invalid password or username!", 255, 255 ,255 , true)
end
end
end
function register_login_login_definition (button)
if button == "left" then
local username = guiGetText ( GUIEditor.edit[1] )
local password = guiGetText ( GUIEditor.edit[3] )
if (username ~= "") and (password ~= "") then
R_player = getLocalPlayer()
R_name = getPlayerName (R_player)
triggerServerEvent ( "login_function_serverside", getLocalPlayer(), username, password, R_name)
else
outputChatBox ("[#FF8000Register#FFFFFF]#FF0000Invalid password or username!", 255, 255 ,255 , true)
end
end
end
Alles anzeigen
register_login_s.lua (Server):
Lua
login_state = "on" --"on" or "off"--
function open_register_login_window_serverside ()
if login_state == "on" then
triggerClientEvent ( source, "register_login_show_function", getRootElement())
end
end
addEvent( "open_register_login_window_serverside", true )
addEventHandler( "open_register_login_window_serverside", getRootElement(), open_register_login_window_serverside )
function register_function_serverside ( username, password, R_name)
local result = mysql_query(handler,"SELECT * FROM users WHERE Username='"..mysql_escape_string( handler, username ).."';")
if result then
rows = mysql_num_rows(result)
if rows == 1 then
row = mysql_fetch_row(result)
outputChatBox ("[#FF8000Register#FFFFFF] #FF0000This account allready exist!", source, 255, 255 ,255 , true)
end
mysql_free_result(result)
end
if rows == 0 then
local result = mysql_query(handler, "INSERT INTO users SET Username='"..mysql_escape_string(handler, username).."', Password='"..md5(password).."', Admin='0', Money='0';")
mysql_free_result(result)
result = mysql_query(handler,"SELECT * FROM users WHERE Username='"..mysql_escape_string( handler, username ).."';")
if mysql_num_rows( result ) == 1 then
row = mysql_fetch_row(result)
else
outputChatBox( "Der Account konnte nicht erfolgreich erstellt werden, bitte kontaktiere einen Admin!", source, 255, 255, 255 )
end
mysql_free_result(result)
setElementData(source,"Username",row[1])
setElementData(source,"Password",row[2])
setElementData(source,"Admin",row[3])
setElementData(source,"Money",row[4])
outputChatBox ("[#FF8000Register#FFFFFF] "..R_name.." #FF0000has registered the account #FFFFFF'#FF8000"..username.."#FFFFFF'", getRootElement(), 255, 255 ,255 , true)
triggerClientEvent ( source, "register_login_show_function", getRootElement())
end
local addNewAccount = addAccount( username, password )
end
addEvent( "register_function_serverside", true )
addEventHandler( "register_function_serverside", getRootElement(), register_function_serverside )
function login_function_serverside ( username, password, R_name)
local result = mysql_query(handler,"SELECT * FROM users WHERE Username='"..mysql_escape_string( handler, username ).."';")
if result then
rows = mysql_num_rows(result)
if rows == 1 then
row = mysql_fetch_row(result)
end
mysql_free_result(result)
end
if rows == 1 then
if (row[2] == md5(password)) then
setElementData(source,"Username",row[1])
outputChatBox ("[#FF8000Login#FFFFFF] "..R_name.." #FF0000has logged in!", getRootElement(), 255, 255 ,255 , true)
triggerClientEvent ( source, "register_login_show_function", getRootElement())
local acc = getAccount ( username, password )
logIn ( source, acc, password )
else
outputChatBox ("[#FF8000Login#FFFFFF] #FF0000Invalid password!", source, 255, 255 ,255 , true)
end
end
end
addEvent( "login_function_serverside", true )
addEventHandler( "login_function_serverside", getRootElement(), login_function_serverside )
Alles anzeigen