Hi habe mit n paar kollegen das script probiert das ich modifizeirt habe nun spinnt es bei einem Spieler radnom immer das registrieren
so das der Spieler mit einem CJ Skin unter der erde auf 0 ,0 ,0 spawnt.
Hier das script:
Client:
Spoiler anzeigen
Lua
local gMe = getLocalPlayer()
local Guivar = 0 -- Guivariable, damit das Gui sich nicht 2 mal oeffnen kann
local Fenster = {}
local TabPanel = {}
local Tab = {}
local Knopf = {}
local Label = {}
local Edit = {}
local function createGui()
if(Guivar == 1) then return end -- Check
Guivar = 1 -- setze Variable auf 1
showCursor(true) -- Mauszeiger anzeigen
guiSetInputMode("no_binds_when_editing")
local sWidth, sHeight = guiGetScreenSize() -- Code zum Fixieren des GUIS in alle Aufloesungen
local Width,Height = 370,219 -- ""
local X = (sWidth/2) - (Width/2) -- ""
local Y = (sHeight/2) - (Height/2) -- ""
Fenster[1] = guiCreateWindow(X, Y, Width, Height, "Register Login Fenster",false)
TabPanel[1] = guiCreateTabPanel(9,22,352,188,false,Fenster[1])
Tab[1] = guiCreateTab("Einloggen",TabPanel[1])
Label[1] = guiCreateLabel(10,7,330,28,"Dein Account wurde gefunden, bitte logge dich Ein!",false,Tab[1])
guiSetFont(Label[1],"default-bold-small")
Edit[1] = guiCreateEdit(77,35,160,28,"passwort",false,Tab[1])
guiEditSetMasked ( Edit[1], true )
Knopf[1] = guiCreateButton(15,76,112,29,"Einloggen",false,Tab[1])
Label[2] = guiCreateLabel(9,38,88,30,"Passwort:",false,Tab[1])
guiSetFont(Label[2],"default-bold-small")
Tab[2] = guiCreateTab("Registrieren",TabPanel[1])
Label[3] = guiCreateLabel(8,5,331,15,"Dein Account wurde nicht gefunden, bitte Registriere dich!",false,Tab[2])
guiSetFont(Label[3],"default-bold-small")
Edit[2] = guiCreateEdit(77,30,123,27,"Passwort1",false,Tab[2])
Label[4] = guiCreateLabel(10,32,78,22,"Passwort:",false,Tab[2])
guiSetFont(Label[4],"default-bold-small")
Label[5] = guiCreateLabel(9,68,62,15,"Nochmal:",false,Tab[2])
guiSetFont(Label[5],"default-bold-small")
Edit[3] = guiCreateEdit(76,65,123,27,"Passwort2",false,Tab[2])
Knopf[2] = guiCreateButton(62,100,135,27,"Registrieren",false,Tab[2])
triggerServerEvent("onDatenbankCheck", gMe) -- das Event wird getriggert, damit wir wissen, ob der Account vorhanden ist
addEventHandler("onClientGUIClick", Knopf[2], function() -- dann den Registrieren Knopf
local text1, text2 = guiGetText(Edit[2]), guiGetText(Edit[3])
if(text1 ~= text2) then outputChatBox("Die Passwoerter stimmen nicht ueberein!", 255, 0, 0) return end -- Abfrage, ob die 2 Passwoerte identisch sind
if(text1 == "") or (text2 == "") then return end -- wenn kein Passwort angeben wird
triggerServerEvent("onDatenbankRegister", gMe, text1) -- Event triggern
destroyElement(Fenster[1])
Guivar = 0 -- Setzt Variable auf 0
showCursor(false) -- Cursor verbergen
end, false)
addEventHandler("onClientGUIClick", Knopf[1], function() -- dann den Login Knopf
local text1 = guiGetText(Edit[1]) -- den Text bekommen
if(text1 == "") then return end -- wenn kein Passwort angeben wird
triggerServerEvent("onDatenbankLogin", gMe, text1) -- Event triggern
end, false)
end
addEventHandler("onClientResourceStart", getResourceRootElement(), function()
createGui()
end)
addEvent("onDatenbankCheckBack", true) -- Event hinzufuegen
addEvent("onDatenbankLoginSuceed", true) -- Event hinzufuegen
addEventHandler("onDatenbankLoginSuceed", getRootElement(), function() -- Event Handler, der vom Server getriggert wurde
destroyElement(Fenster[1]) -- Zerstoert das Fenster, brauchen wir nicht + resourcenschonender
Guivar = 0 -- Setzt Variable auf 0
showCursor(false) -- Cursor verbergen
outputChatBox("Du hast dich erfolgreich Eingeloggt!", 0, 255, 0) -- Juhu
fadeCamera(true) -- Kamera einfaeden
end)
addEventHandler("onDatenbankCheckBack", getRootElement(), function(typ) -- Event Handler, der vom Server getriggert wurde
if(typ == false) then -- wenn der Account nicht vorhanden ist
guiSetEnabled(Tab[1], false) -- Tab "Einloggen" deaktivieren
guiSetSelectedTab(TabPanel[1], Tab[2]) -- Zu tab 2 springen
else -- wenn der Account vorhanden ist
guiSetEnabled(Tab[2], false) -- Tab "Registrieren" deaktivieren
guiSetSelectedTab(TabPanel[1], Tab[1]) -- Zu tab 1 springen
end
end)
Alles anzeigen
Server
Spoiler anzeigen
Lua
local mysqlhost = "localhost"
local mysqluser = "root"
local mysqlpw = ""
local mysqldatabase = "reallife"
handler = mysql_connect ( mysqlhost, mysqluser, mysqlpw, mysqldatabase )
addEvent("onDatenbankCheck", true)
addEvent("onDatenbankRegister", true)
addEvent("onDatenbankLogin", true)
addEventHandler("onDatenbankCheck", getRootElement(), function() -- der Event Handler
local result = mysql_query( handler, "SELECT * FROM accounts WHERE Name = '"..getPlayerName(source).."';" ) -- MySQL Abfrage, ob der Account in der Tabelle ist
if(result and mysql_num_rows( result ) > 0) then -- Wenn er Vorhanden ist
triggerClientEvent(source, "onDatenbankCheckBack", source, true) -- Event Triggern
else -- Wenn nicht
triggerClientEvent(source, "onDatenbankCheckBack", source, false) -- Event Triggern
end
end)
addEventHandler("onDatenbankRegister", getRootElement(), function(passwort) -- der Event Handler
if not(passwort) then return end -- wenn kein Passwort da ist
local newpw = md5(passwort) -- Das Passowort verschluesseln
local result = mysql_query(handler, "INSERT INTO accounts ( Name, Passwort, Fraktion, Premium, Skin, Geld ) VALUES ( '"..getPlayerName(source).."', '"..newpw.."','"..fraktionsid.."','"..premiumlevel.."','"..startskins[skincount].."','"..startgeld.."' );") -- die MySQL Abfrage
if(result) then -- wenn erfolgreich
local playerskin = getElementData( source, "skin" )
triggerEvent("onDatenbankCheck", source) -- Wir triggern nochmal das event, weil ja jetzt der Account drinne ist
outputChatBox("Du hast dich Erfolgreich Registriert!", source, 0, 255, 0) -- Juhu
setCameraTarget(source, source)
spawnPlayer(source, 1545.6999511719, -1675.5, 13.60, 90, playerskin)
setPlayerTeam(source, Zivilisten)
else
outputChatBox("Fehler beim Registrieren!", source, 255, 0, 0) -- fail
end
end)
addEventHandler("onDatenbankLogin", getRootElement(), function(passwort) -- der Event Handler
local result = mysql_query( handler, "SELECT * FROM accounts WHERE Name = '"..getPlayerName(source).."' AND Passwort = '"..md5(passwort).."';" ) -- MySQL Abfrage, ob der Account in der Tabelle ist und das Passwort das in md5 ist
if(result and mysql_num_rows( result ) > 0) then -- Wenn das Passwort richtig eingegeben ist
triggerClientEvent(source, "onDatenbankLoginSuceed", source) -- Event Triggern
-- die Daten per Element-Data setzen --
local row = mysql_fetch_assoc(result) -- die Spalten als Table bekommen
local playerskin = getElementData( source, "skin" )
setElementData(source, "adminlevel", tonumber(row['Adminlevel']) or 0) -- Adminlevel, falls vorhanden. Andererseits 0
setElementData(source, "fraktion", tonumber(row['Fraktion']) or 0) -- Adminlevel, falls vorhanden. Andererseits 0
setElementData(source, "premium", tonumber(row['Premium']) or 0) -- Adminlevel, falls vorhanden. Andererseits 0
setElementData(source, "skin", tonumber(row['Skin']) or 0)
setElementData(source, "money", tonumber(row['Geld']) or 0)
setCameraTarget(source, source)
spawnPlayer(source, 1545.6999511719, -1675.5, 13.60, 90, playerskin)
setPlayerTeam(source, Zivilisten)
addEventHandler("onElementDataChange", source, function(theData, oldValue) -- das Event hinzufuegen, was passiert, wenn sich die Daten aendern
local newdata = getElementData(source, theData) -- bekommt die neuen Daten
if(theData == "adminlevel") then -- wenn es die Daten "adminlevel" ist
mysql_query(handler, "UPDATE accounts SET Adminlevel = '"..tonumber(newdata).."' WHERE Name = '"..getPlayerName(source).."';") -- die Query zum Updaten der Zeile
end
end)
else -- Wenn nicht
outputChatBox("Dein Passwort ist nicht richtig oder dein Account exestiert nicht!", source, 255, 0, 0)
end
end)
Alles anzeigen