kuba90pl Posted November 4, 2011 Share Posted November 4, 2011 Hi! I wanted to make my own login system so i created : client: function getLoginData (n,p,i) local imie = getPlayerName(getLocalPlayer()) local nick = guiGetText ( edit ) local pass = guiGetText ( edit2 ) n=nick p=pass i=imie triggerServerEvent("getLoginDataServer", getRootElement(), n,p,i) outputChatBox("wyslalem") end function destroyLoginWindow() destroyElement(win) showCursor(false) end addEvent("loginapproved",true) addEventHandler("loginapproved", getRootElement(), destroyLoginWindow) server: function logincheck(name,pass,imie) p=getPlayerFromName(imie) account=getPlayerAccount(p) pass_s=getAccountData(account,"player.pass") name_s=getAccountData(account,"player.nick") if name==name_s and pass==pass_s then outputChatBox("You logged in, welcome back "..imie.." ",p,0,255,0) triggerClientEvent("loginapproved",getRootElement()) else outputChatBox("Wrong password or account name!",p,255,0,0) end end addEvent("getLoginDataServer", true) addEventHandler("getLoginDataServer", getRootElement(), logincheck) but server still cant get player from nick(so its cant get data from account) , i tested this function by adding outputChatBox(imie) and its triggering good from client. Whats the problem? Link to comment
Castillo Posted November 4, 2011 Share Posted November 4, 2011 -- client side: function getLoginData () local nick = guiGetText ( edit ) local pass = guiGetText ( edit2 ) local n=nick local p=pass local i=getPlayerName(localPlayer) triggerServerEvent("getLoginDataServer", localPlayer, n,p,i) outputChatBox("wyslalem") end function destroyLoginWindow() destroyElement(win) showCursor(false) end addEvent("loginapproved",true) addEventHandler("loginapproved", getRootElement(), destroyLoginWindow) -- server side: function logincheck(name,pass,imie) local p=source local account=getPlayerAccount(p) local pass_s=getAccountData(account,"player.pass") local name_s=getAccountData(account,"player.nick") if (name==name_s and pass==pass_s) then outputChatBox("You logged in, welcome back "..imie.." ",p,0,255,0) triggerClientEvent("loginapproved",getRootElement()) else outputChatBox("Wrong password or account name!",p,255,0,0) end end addEvent("getLoginDataServer", true) addEventHandler("getLoginDataServer", getRootElement(), logincheck) Try that. Link to comment
kuba90pl Posted November 4, 2011 Author Share Posted November 4, 2011 -- client side: function getLoginData () local nick = guiGetText ( edit ) local pass = guiGetText ( edit2 ) local n=nick local p=pass local i=getPlayerName(localPlayer) triggerServerEvent("getLoginDataServer", localPlayer, n,p,i) outputChatBox("wyslalem") end function destroyLoginWindow() destroyElement(win) showCursor(false) end addEvent("loginapproved",true) addEventHandler("loginapproved", getRootElement(), destroyLoginWindow) -- server side: function logincheck(name,pass,imie) local p=source local account=getPlayerAccount(p) local pass_s=getAccountData(account,"player.pass") local name_s=getAccountData(account,"player.nick") if (name==name_s and pass==pass_s) then outputChatBox("You logged in, welcome back "..imie.." ",p,0,255,0) triggerClientEvent("loginapproved",getRootElement()) else outputChatBox("Wrong password or account name!",p,255,0,0) end end addEvent("getLoginDataServer", true) addEventHandler("getLoginDataServer", getRootElement(), logincheck) Try that. still same , i put right values and still i see Wrong password or account name. my full client with gui for test: ------------------------- ------login window------- function logwindow() local w,s=guiGetScreenSize() showCursor(true) win = guiCreateWindow(w/2-100,-50,315,300,"Oli Login",false) edit = guiCreateEdit(77,75,144,37,"",false,win) edit2 = guiCreateEdit(77,147,144,36,"",false,win) label1 = guiCreateLabel(89,51,125,22,"Name:",false,win) label2 = guiCreateLabel(84,123,125,22,"Password:",false,win) but1 = guiCreateButton(60,235,81,34,"Register",false,win) but2 = guiCreateButton(147,236,81,34,"LogIN!",false,win) radio1 = guiCreateRadioButton(95,191,17,13,"",false,win) guiRadioButtonSetSelected(radio1,true) label3 = guiCreateLabel(112,189,108,18,"I accept rules (OR)",false,win) guiEditSetMasked ( edit2, true ) addEventHandler ( "onClientGUIClick", but2, getLoginData, false ) end addEventHandler("onClientResourceStart", root, logwindow) function getLoginData () local nick = guiGetText ( edit ) local pass = guiGetText ( edit2 ) local n=nick local p=pass local i=getPlayerName(localPlayer) triggerServerEvent("getLoginDataServer", localPlayer, n,p,i) outputChatBox("wyslalem") end function destroyLoginWindow() destroyElement(win) showCursor(false) end addEvent("loginapproved",true) addEventHandler("loginapproved", getRootElement(), destroyLoginWindow) edit: this script is working only when i got logged first by /login pass (build-in mta login system) Link to comment
Castillo Posted November 4, 2011 Share Posted November 4, 2011 That's because you're using the MTA built-on system.. getPlayerAccount getAccountData only works for MTA built-on account system. Link to comment
Charlie_Jefferson Posted November 5, 2011 Share Posted November 5, 2011 That means you need a database for it to work, doesn't it? Link to comment
myonlake Posted November 5, 2011 Share Posted November 5, 2011 That means you need a database for it to work, doesn't it? Yes. You can use a mySQL one or then you can use a XML one (with a password hash on). Link to comment
Jaysds1 Posted November 5, 2011 Share Posted November 5, 2011 Actually, you don't need a mysql, because it's already built in to mta. The internal.dbs is the database with all the players accounts Link to comment
Recommended Posts
Create an account or sign in to comment
You need to be a member in order to leave a comment
Create an account
Sign up for a new account in our community. It's easy!
Register a new accountSign in
Already have an account? Sign in here.
Sign In Now