Hi i am new scripting and i try to make a RP server!
Now i am working at a new resource (accounts-system)
It contains Login/Register Panel(GUI)
Database for accounts(Custom accounts;Dont use mta sa accounts system)
And i have some problems with my scripts
The resource contains 5 .lua files
1.c_log.reg.gui(Login/Register Panel )
2.c_log.reg.debug(Contains events with errors)
3.s_database(Loading the database)
4.s_login.validate
5.s_register.validate
1.c_log.reg.gui.lua
addEventHandler("onClientResourceStart", resourceRoot,
function()
acc_guiWindow = guiCreateWindow(608, 470, 384, 430, "Multi Role Play : Inceputul", false) --The window
guiWindowSetSizable(acc_guiWindow, false)
acc_GuiTabPanel = guiCreateTabPanel(9, 19, 361, 399, false, acc_guiWindow) --TabPanel
acc_loginTab = guiCreateTab("Logare", acc_GuiTabPanel) --LoginTab
login_userLabel = guiCreateLabel(20, 7, 146, 53, "Nume", false, acc_loginTab)
guiSetFont(login_userLabel, "sa-header")
login_passwordLabel = guiCreateLabel(20, 65, 146, 53, "Parola", false, acc_loginTab)
guiSetFont(login_passwordLabel, "sa-header")
login_inputUser = guiCreateEdit(174, 19, 177, 31, "", false, acc_loginTab) --inputUser
login_inputPassword = guiCreateEdit(174, 77, 177, 31, "", false, acc_loginTab) --inputPassword
acc_loginButton = guiCreateButton(76, 146, 204, 48, "Logheaza-te", false, acc_loginTab) --loginbutton
guiSetFont(acc_loginButton, "default-bold-small")
guiSetProperty(acc_loginButton, "NormalTextColour", "FFAAAAAA")
login_debugLabel = guiCreateLabel(21, 209, 330, 157, "Pentru un GUI mai frumos accesati \n\nSettings\Interface\Skin si alegeti \n\nLighter Black", false, acc_loginTab) --debuglabel
guiSetFont(login_debugLabel, "default-small")
guiLabelSetColor(login_debugLabel, 255, 0, 0)
guiLabelSetHorizontalAlign(login_debugLabel, "center", false)
acc_registerTab = guiCreateTab("Inregistrare", acc_GuiTabPanel) --tab
register_userLabel = guiCreateLabel(12, 6, 146, 46, "Nume", false, acc_registerTab)
guiSetFont(register_userLabel, "sa-header")
register_passwordLabel = guiCreateLabel(12, 52, 146, 46, "Parola", false, acc_registerTab)
guiSetFont(register_passwordLabel, "sa-header")
register_userInput = guiCreateEdit(165, 20, 186, 32, "", false, acc_registerTab) --userinput
register_passwordInput = guiCreateEdit(165, 62, 186, 32, "", false, acc_registerTab)--passwordinput
register_passRecoveryText = guiCreateLabel(15, 108, 336, 16, " -- Pentru recuperarea parolei --", false, acc_registerTab)
guiLabelSetHorizontalAlign(register_passRecoveryText, "center", false)
register_passRecoveryQuestion = guiCreateLabel(22, 131, 50, 21, "1 + 1 = ", false, acc_registerTab)
guiSetFont(register_passRecoveryQuestion, "default-bold-small")
register_inputQuestionAnswer = guiCreateEdit(70, 134, 32, 15, "", false, acc_registerTab)--recoveryinput
register_recoveryNote = guiCreateLabel(107, 132, 248, 17, "! Raspunsul trebuie sa fie un numar", false, acc_registerTab)
guiSetFont(register_recoveryNote, "default-bold-small")
guiLabelSetColor(register_recoveryNote, 255, 0, 0)
acc_registerButton = guiCreateButton(69, 159, 240, 59, "Inregistreaza-te", false, acc_registerTab) --register button
guiSetFont(acc_registerButton, "default-bold-small")
guiSetProperty(acc_registerButton, "NormalTextColour", "FFAAAAAA")
register_debugOutput = guiCreateLabel(28, 222, 317, 138, "Pentru un GUI mai frumos accesati \n\nSettings\Interface\Skin si alegeti \n\nLighter Black", false, acc_registerTab)
guiSetFont(register_debugOutput, "default-small")
guiLabelSetColor(register_debugOutput, 255, 0, 0)
guiLabelSetHorizontalAlign(register_debugOutput, "center", false)
acc_RecoveryTab = guiCreateTab("Recupereaza cont", acc_GuiTabPanel)
recovery_nameLabel = guiCreateLabel(16, 12, 68, 41, "Nume", false, acc_RecoveryTab)
guiSetFont(recovery_nameLabel, "default-bold-small")
guiLabelSetHorizontalAlign(recovery_nameLabel, "center", false)
recovery_userInput = guiCreateEdit(94, 12, 135, 19, "", false, acc_RecoveryTab)
recovery_labelPassword = guiCreateLabel(16, 53, 68, 41, "Parola noua", false, acc_RecoveryTab)
guiSetFont(recovery_labelPassword, "default-bold-small")
guiLabelSetHorizontalAlign(recovery_labelPassword, "center", false)
recovery_passwordInput = guiCreateEdit(94, 53, 135, 19, "", false, acc_RecoveryTab)
recovery_answerLabel = guiCreateLabel(16, 94, 74, 41, "Raspuns \n intrebare", false, acc_RecoveryTab)
guiSetFont(recovery_answerLabel, "default-bold-small")
guiLabelSetHorizontalAlign(recovery_answerLabel, "center", false)
recovery_answerInput = guiCreateEdit(94, 98, 135, 19, "", false, acc_RecoveryTab)
acc_recoveryButton = guiCreateButton(87, 151, 171, 71, "Recupereaza cont", false, acc_RecoveryTab)
guiSetFont(acc_recoveryButton, "default-bold-small")
guiSetProperty(acc_recoveryButton, "NormalTextColour", "FFAAAAAA")
recovery_debugLabel = guiCreateLabel(15, 230, 336, 140, "'Raspuns intrebare' e raspunsul la intrebarea 1 + 1 care \n l-ai dat cand ti-ai facut contul", false, acc_RecoveryTab)
guiSetFont(recovery_debugLabel, "default-small")
guiLabelSetColor(recovery_debugLabel, 255, 0, 0)
guiLabelSetHorizontalAlign(recovery_debugLabel, "center", false)
addEventHandler("onClientGUIClick",acc_loginButton,validateLogin)
addEventHandler("onClientGUIClick",acc_registerButton,validateRegister)
addEventHandler("onClientGUIClick",acc_recoveryButton,vaalidateRecovery)
end
)
function validateLogin(button,state)
panelUser = tostring(guiGetText(login_inputUser))
panelPassword = tostring(guiGetText(login_inputPassword))
if button == "left" and state == "up" then
triggerServerEvent("logInToServer",resourceRoot,panelUser,panelPassword)
end
end
function validateRegister(button,state)
panelUser = guiGetText(register_userInput)
panelPassword = guiGetText(register_passwordInput)
panelAnswer = tonumber(guiGetText(register_inputQuestionAnswer))
if button == "left" and state == "up" then
triggerServerEvent("registerToServer",resourceRoot,panelAnswer,panelPassword,panelUser)
end
end
function vaalidateRecovery(button,state)
panelUser = guiGetText(recovery_userInput)
panelPassword = guiGetText(recovery_passwordInput)
panelAnswer = guiGetText(recovery_answerInput)
if button == "left" and state == "up" then
triggerServerEvent("recoverAccount",resourceRoot,panelAnswer,panelPassword,panelUser)
end
end
2.c_log.reg.debug.lua
playerNickName = getPlayerName(getLocalPlayer())
--Login Events
addEvent("wrongLoginUser",true)
function isLoginUserWrong()
guiSetText(login_debugLabel,"Numele sau Parola este \n GRESIT(A)")
end
addEventHandler("wrongLoginUser",root,isLoginUserWrong)
addEvent("succesfullyLoggedIn",true)
function isLoginUserAndPasswordRight()
guiSetVisible(acc_guiWindow,false)
showCursor(false)
outputChatBox("Bine ai revenit "..playerNickName.." pe serverul Multi Role Play : Inceputul")
end
--Register Events
addEvent("wrongRegisterUser",true)
function isRegisterUserWrong()
guiSetText(register_debugOutput,"Numele este invalid \n Incearca alt nume")
end
addEventHandler("wrongRegisterUser",root,isRegisterUserWrong)
addEvent("wrongRegisterPassword",true)
function isRegisterPasswordWrong()
guiSetText(register_debugOutput,"Parola este invalida \n Incearca alta")
end
addEventHandler("wrongRegisterPassword",root,isRegisterPasswordWrong)
addEvent("wrongRegisterAnswer",true)
function isRegisterAnswerWrong()
guiSetText(register_debugOutput,"Raspunsul este invalid \n Raspunsul trebuie sa fie \n un NUMAR")
end
addEventHandler("wrongRegisterAnswer",root,isRegisterAnswerWrong)
addEvent("userAlreadyTaken",true)
function isUserAlreadyTaken()
guiSetText(register_debugOutput,"Numele acesta este luat \n Te rog incearca alt nume")
end
addEventHandler("userAlreadyTaken",root,isUserAlreadyTaken)
addEvent("newAccountCreated",true)
function theNewAccountHasBeenCreated()
guiSetVisible(acc_guiWindow,false)
showCursor(false)
outputChatBox("Bine ai venit "..playerNickName.." pe serverul Multi Role Play : Inceputul")
end
addEventHandler("newAccountCreated",root,theNewAccountHasBeenCreated)
3.s_database.lua
RootNode = xmlLoadFile("accounts.xml")
addEventHandler("onResourceStart",resourceRoot,
function ()
if RootNode then
outputDebugString("Baza de date accounts.xml a fost incarcata")
end
end
)
4.s_login.validate.lua
local vaildUser = 0
local vaidPassword = 0
addEvent("logInToServer",true)
function isAccountVaild(panelUser,panelPassword)
if RootNode then
AccountsNode = xmlNodeGetChildren(RootNode)
for i,node in ipairs (AccountsNode) do
NodeOfAccount = xmlFindChild(RootNode,"cont",tonumber(i))
otherUsers = xmlNodeGetAttribute(NodeOfAccount,"nume")
otherPasswords = xmlNodeGetAttribute(NodeOfAccount,"parola")
if panelUser == tostring(otherUsers) then
vaildUser = 1
if panelPassword == tostring(otherPasswords) then
vaidPassword = 1
end
end
end
end
if vaildUser == 1 and vaidPassword == 1 then
triggerClientEvent("succesfullyLoggedIn",resourceRoot)
xmlSaveFile(RootNode)
else
triggerClientEvent("wrongLoginUser",resourceRoot)
end
vaildUser = 0
vaidPassword = 0
end
addEventHandler("logInToServer",root,isAccountVaild)
5.s_register.validate.lua
local vaildUser = 1
addEvent("registerToServer",true)
function createNewAccount(panelUser,panelPassword,panelAnswer)
if RootNode then
AccountsNode = xmlNodeGetChildren(RootNode)
for i,node in ipairs (AccountsNode) do
local NodeOfAccount = xmlFindChild(RootNode,"cont",i)
local otherUsers = xmlNodeGetAttribute(NodeOfAccount,"nume")
if panelUser == tostring(otherUsers) then
vaildUser = 0
end
end
if vaildUser == 1 then
if panelUser then
if panelPassword then
if panelAnswer then
local accNode = xmlCreateChild(RootNode,"cont")
xmlNodeSetAttribute(accNode,"nume",panelUser)
xmlNodeSetAttribute(accNode,"parola",panelPassword)
xmlNodeSetAttribute(accNode,"raspuns",panelAnswer)
triggerClientEvent(getRootElement(),"newAccountCreated",resourceRoot)
xmlSaveFile(RootNode)
else
triggerClientEvent(getRootElement(),"wrongRegisterAnswer",resourceRoot)
end
else
triggerClientEvent(getRootElement(),"wrongRegisterPassword",resourceRoot)
end
else
triggerClientEvent(getRootElement(),"wrongRegisterUser",resourceRoot)
end
else
triggerClientEvent(getRootElement(),"userAlreadyTaken",resourceRoot)
end
vaildUser = 0
end
end
addEventHandler("registerToServer",root,createNewAccount)
So these are the scripts (s_ = server c_ = client)
The GUI is working
The database loader is working
Problems
When i press a tab in tab panel the debugLabels (The labels which output errors) changes and it is supposet to change only if user/password is wrong
At register panel the debugLabel will output user already taken(translated) whatever i type in the EditBoxes
At login panel same error
The account dont save in accounts.xml