TwiX! Posted September 14, 2011 Share Posted September 14, 2011 (edited) Помогите сделать так, чтобы логин и пароль записывался в файл при нажатом CheckBox, при перезаходе на сервер игроку не надо будет вводить данные, а просто нажать логин , у меня это не работает blackLoginScreen = true enableKickPlayer = true disallowLogout = false removeBlackScreenTime = 4 maxLoginAttempts = 3 local isChecked = false x,y = guiGetScreenSize() LoginWin = guiCreateWindow(219,182,414,237,"Login Panel v.2 by *Qwerty",false) TabPanel = guiCreateTabPanel(9,20,396,208,false,LoginWin) TabLogin = guiCreateTab("Login",TabPanel) LblUsername = guiCreateLabel(26,17,83,16,"Username",false,TabLogin) LoginUsername = guiCreateEdit(25,34,158,29,"",false,TabLogin) guiSetAlpha(LoginUsername,1) LblPassword = guiCreateLabel(26,65,84,16,"Password",false,TabLogin) LoginPassword = guiCreateEdit(24,82,162,30,"",false,TabLogin) guiSetAlpha(LoginPassword,1) myImage1 = guiCreateStaticImage(234,52,149,47,"images/loginpanel.png",false,TabLogin) remember = guiCreateCheckBox(26,127,17,19,"Remember me?",isChecked,false,TabLogin) myLabelRemember = guiCreateLabel(49,128,114,17,"Remember me?",false,TabLogin) guiSetAlpha(remember,1) guiCheckBoxSetSelected(remember,true) BtnAction = guiCreateButton(248,136,137,39,"Login",false,TabLogin) guiEditSetMasked(LoginPassword,true) TabRegister = guiCreateTab("Register",TabPanel) LblRegisterUsername = guiCreateLabel(27,17,128,22,"Username",false,TabRegister) EditRegisterUsername = guiCreateEdit(26,35,143,31,"",false,TabRegister) LblRegisterPassword = guiCreateLabel(29,67,79,17,"Password",false,TabRegister) EditRegisterPassword = guiCreateEdit(26,84,144,32,"",false,TabRegister) guiEditSetMasked(EditRegisterPassword,true) LblRegisterEmail = guiCreateLabel(26,115,35,16,"E-Mail",false,TabRegister) EditRegisterEmail = guiCreateEdit(26,130,144,32,"",false,TabRegister) myImage2 = guiCreateStaticImage(234,52,149,47,"images/loginpanel.png",false,TabRegister) BtnAction1 = guiCreateButton(250,135,135,40,"Register",false,TabRegister) guiSetFont(BtnAction,"default-bold-small") guiSetVisible(LoginWin, false) addEventHandler("onClientResourceStart", gResRoot, function () checkForRemember( ); end ) local localPlayer = getLocalPlayer() function receiveVars( allow, email) local playername = getPlayerName(localPlayer) guiSetText(LoginUsername, "") guiSetText(EditRegisterUsername, "") if (email == "false") then guiSetVisible(LblRegisterEmail, false) guiSetVisible(EditRegisterEmail, false) end if (allow == "false") then guiDeleteTab(TabRegister, TabPanel) end guiSetSelectedTab(TabPanel, TabLogin) guiSetText(LoginUsername, playername) guiSetText(EditRegisterUsername, playername) guiSetVisible(LoginWin, true) guiBringToFront(LoginWin) guiSetInputEnabled(true) showCursor(true) end addEvent( "onSendVars", true ) addEventHandler( "onSendVars", getRootElement(), receiveVars ) function windowHandler() triggerServerEvent("onNeedVars", getLocalPlayer()) end addEventHandler("onClientResourceStart", getResourceRootElement(getThisResource()), windowHandler) function onClickBtn(button, state) if(button == "left" and state == "up") then if(source == BtnAction) then if(guiGetSelectedTab(TabPanel) == TabLogin) then triggerServerEvent("Login", getRootElement(), localPlayer, guiGetText(LoginUsername), guiGetText(LoginPassword)) else triggerServerEvent("Register", getRootElement(), localPlayer, guiGetText(EditRegisterUsername), guiGetText(EditRegisterPassword), guiGetText(EditRegisterEmail)) end end end end addEventHandler("onClientGUIClick", BtnAction, onClickBtn, false) function onClickBtn1(button, state) if(button == "left" and state == "up") then if(source == BtnAction1) then if(guiGetSelectedTab(TabPanel) == TabLogin) then triggerServerEvent("Login", getRootElement(), localPlayer, guiGetText(LoginUsername), guiGetText(LoginPassword)) else triggerServerEvent("Register", getRootElement(), localPlayer, guiGetText(EditRegisterUsername), guiGetText(EditRegisterPassword), guiGetText(EditRegisterEmail)) end end end end addEventHandler("onClientGUIClick", BtnAction1, onClickBtn1, false) function hideLoginWindow() guiSetInputEnabled(false) guiSetVisible(LoginWin, false) showCursor(false) end addEvent("hideLoginWindow", true) addEventHandler("hideLoginWindow", getRootElement(), hideLoginWindow) function onServerAuthComplete() closeEverything() --triggerServerEvent( "onJoinLoginComplete", rootElement, localPlayer) isChecked = guiCheckBoxGetSelected(remember) if isChecked then saveForRemember( guiGetText(LoginUsername), guiGetText(LoginPassword)) end end addEvent("onServerAuthComplete", true) addEventHandler("onServerAuthComplete", rootElement, onServerAuthComplete) function saveForRemember( rememberUser, rememberPass ) local xml = xmlCreateFile( "rememberMe.xml", "remember" ); if ( xml ~= false ) then local child = xmlCreateChild (xml, "user" ); if( child ~= false ) then xmlNodeSetAttribute( child, "rem", rememberUser ); end child = xmlCreateChild (xml, "pass" ); if( child ~= false ) then xmlNodeSetAttribute( child, "rem", rememberPass ); end xmlSaveFile ( xml ); xmlUnloadFile ( xml ); end end function checkForRemember( ) local xml = xmlLoadFile ( "rememberMe.xml" ); if ( xml ~= false ) then local child = xmlFindChild (xml, "user", 0 ); if( child ~= false ) then user = xmlNodeGetAttribute( child, "rem" ); end child = xmlFindChild( xml, "pass", 0 ); if( child ~= false ) then pass = xmlNodeGetAttribute( child, "rem" ); isChecked = true; end xmlUnloadFile ( xml ); end end Edited September 15, 2011 by Guest Link to comment
MX_Master Posted September 15, 2011 Share Posted September 15, 2011 разбейте просьбу на более мелкие вопросы, ну и debugscript 3 в помощь Link to comment
TwiX! Posted September 15, 2011 Author Share Posted September 15, 2011 (edited) мне именно нужно, чтобы пароль и ник записывался в файл если галка стоит в чекбоксе, и при перезаходе его не надо было вводить, просто нажать кнопку логин, поля уже заполнены с паролем и акаунт ником, Debug Script : 45: addEventHandler("onClientResourceStart", gResRoot, 130: addEventHandler("onServerAuthComplete", rootElement, onServerAuthComplete) help? Edited September 15, 2011 by Guest Link to comment
StUNt71 Posted September 15, 2011 Share Posted September 15, 2011 rootElement и gResRoot замени на getRootElement() Link to comment
DakiLLa Posted September 15, 2011 Share Posted September 15, 2011 А точнее вместо gResRoot нужен getResourceRootElement() (или resourceRoot), а вместо rootElement необходим getRootElement() (либо root). Link to comment
TwiX! Posted September 15, 2011 Author Share Posted September 15, 2011 спасибо ошибок теперь нет, но он и не сохраняет в файл.. тоесть работает без ошибок, но не запоминает пароль и логин Link to comment
lil Toady Posted September 15, 2011 Share Posted September 15, 2011 Я бы не советовал сохранять пароли в файл на клиенте. Почему? Потому что ничего мне не мешает, взглянув на твой ресурс, создать свой с таким же именем, но который читает этот файл и отправляет пароль на сервер. Игроки будут заходить ко мне на сервер, а я буду складировать их пароли. Если ты зайдешь ко мне на сервер, я вообще пароль админа получу. Link to comment
DakiLLa Posted September 15, 2011 Share Posted September 15, 2011 Потому что ничего мне не мешает, взглянув на твой ресурс, создать свой с таким же именем, но который читает этот файл и отправляет пароль на сервер. Мм, где-то на вики видел статейку про то, что можно защитить файл от чтения на других серверах, или не прокатит? Link to comment
TwiX! Posted September 15, 2011 Author Share Posted September 15, 2011 Я бы не советовал сохранять пароли в файл на клиенте. Почему? Потому что ничего мне не мешает, взглянув на твой ресурс, создать свой с таким же именем, но который читает этот файл и отправляет пароль на сервер. Игроки будут заходить ко мне на сервер, а я буду складировать их пароли. Если ты зайдешь ко мне на сервер, я вообще пароль админа получу. как тогда сделать автологин и сохранить пароли на сервере? но если их созранять на сервере админ будет знать пароли игроков? Link to comment
lil Toady Posted September 15, 2011 Share Posted September 15, 2011 В МТА уже всё давно сделано. В сервер конфиге есть тэг autologin, включи его и всё. Далее, панель логина при старте ресурса на клиенте должна делать запрос на сервер, нужна ли авторизация, и если сервер ответил что нужна, ты её показываешь. Link to comment
MX_Master Posted September 16, 2011 Share Posted September 16, 2011 Если все-таки хочется сохранить данные в клиенте, как это обычно делает браузер (сохраняет файлы cookie), не надо хранить их в открытом виде (хотя бы в зашифрованном). А клиентские скрипты, связанные с сохранением лучше скомпилировать с системой защиты от запуска на других серверах. Но это куда сложней чем autologin в самом mtasa. Link to comment
TwiX! Posted September 16, 2011 Author Share Posted September 16, 2011 пример можно? раньше этого не было вроде Link to comment
MX_Master Posted September 16, 2011 Share Posted September 16, 2011 пример можно? раньше этого не было вроде пример стандартного autologin'a ? Link to comment
TwiX! Posted September 16, 2011 Author Share Posted September 16, 2011 пример можно? раньше этого не было вроде пример стандартного autologin'a ? да.. тоесть ты зарегистрирован - 1 раз вводишь логин и пароль, 2 раз при перезаходе уже логин вводить не надо Link to comment
StUNt71 Posted September 16, 2011 Share Posted September 16, 2011 Если я правильно понял то это так надо 1 Link to comment
TwiX! Posted September 16, 2011 Author Share Posted September 16, 2011 и есть другая проблема, не прибавляет poins и wins function DestructionMoney() local alivePlayers = getAlivePlayers() if info == "Destruction derby" then if #alivePlayers == 1 then local playername = getPlayerName(alivePlayers[1]) local serial = getPlayerSerial(alivePlayers[1]) givePlayerMoney(alivePlayers[1], 1200) local oldData = executeSQLSelect( "RaceStats", "RaceWins","serial = '" .. serial .. "'") newData = tonumber(oldData[1]["RaceWins"]) + 1 setElementData(alivePlayers[1],"Points",tonumber(getElementData(alivePlayers[1],"Points"))+5) setElementData(alivePlayers[1],"Race Wins",tonumber(getElementData(alivePlayers[1],"Race Wins"))+1) executeSQLUpdate ( "RaceStats", "RaceWins = '"..newData.."'","serial = '" .. serial .. "'") outputChatBox(playername ( alivePlayers[1] ) .. " has won $1200 as last player alive!",rootElement,0,255,0) end end end addEventHandler("onPlayerWasted",rootElement, function () setElementData(source,"Race Loses",tonumber(getElementData(source,"Race Loses"))+1) setElementData(source,"Points",tonumber(getElementData(source,"Points"))-2) local serial = getPlayerSerial(source) local oldData = executeSQLSelect( "RaceStats", "RaceLoses","serial = '" .. serial .. "'") newData = tonumber(oldData[1]["RaceWins"]) + 1 setElementData(alivePlayers[1],"Race Wins",tonumber(getElementData(alivePlayers[1],"Race Wins"))+1) executeSQLUpdate ( "RaceStats", "RaceLoses = '"..newData.."'","serial = '" .. serial .. "'") end ) Link to comment
MX_Master Posted September 16, 2011 Share Posted September 16, 2011 Другую проблему, пожалуйста - в другой теме (: А про автологин.. КЛИЕНТ -- ответ от сервера об автологине игрока addEvent( 'autologinDataAnswer', true ) addEventHandler( 'autologinDataAnswer', root, function ( autologged ) -- если игрок еще не залогинен if not autologged then -- ПОКАЗАТЬ ОКНО ВХОДА В АККАУНТ -- end end ) -- при старте клиентского ресурса спросим у сервера -- об автологине игрока addEventHandler( 'onClientResourceStart', resourceRoot, function() triggerServerEvent( 'autologinDataRequest', localPlayer ) end ) СЕРВЕР -- при автологине игрока, сохраним инфу об этом в его серверных данных addEventHandler( 'onPlayerLogin', root, function ( prevAcc, curAcc, autologged ) if autologged then setElementData( source, 'autologged', true, false ) end end ) -- при запросе от клиента инфы об автологине, -- отправим ему ответ addEvent( 'autologinDataRequest', true ) addEventHandler( 'autologinDataRequest', root, function () if source and isElement(source) and getElementType(source) == 'player' then triggerClientEvent( source, 'autologinDataAnswer', root, getElementData( source, 'autologged' ) ) end end ) Эти коды не проверены и являются просто моей идеей. Link to comment
TwiX! Posted September 17, 2011 Author Share Posted September 17, 2011 blackLoginScreen = true enableKickPlayer = true disallowLogout = false removeBlackScreenTime = 3 maxLoginAttempts = 3 local localPlayer = getLocalPlayer() gResRoot = getResourceRootElement(getThisResource()) x,y = guiGetScreenSize() function createLoginWindow() LoginWin = guiCreateWindow(219,182,414,237,"Login Panel v.2 by *Qwerty",false) TabPanel = guiCreateTabPanel(9,20,396,208,false,LoginWin) TabLogin = guiCreateTab("Login",TabPanel) LblUsername = guiCreateLabel(26,17,83,16,"Username",false,TabLogin) LoginUsername = guiCreateEdit(25,34,158,29,"",false,TabLogin) guiSetAlpha(LoginUsername,1) LoginPassword = guiCreateEdit(24,82,162,30,"",false,TabLogin) guiSetAlpha(LoginPassword,1) myImage1 = guiCreateStaticImage(234,52,149,47,"images/loginpanel.png",false,TabLogin) --guiCreateCheckBox(26,127,17,19,"Remember",false,TabLogin) --myLabelRemember = guiCreateLabel(49,128,114,17,"Remember me?",false,TabLogin) BtnAction = guiCreateButton(248,136,137,39,"Login",false,TabLogin) guiEditSetMasked(LoginPassword,true) TabRegister = guiCreateTab("Register",TabPanel) LblRegisterUsername = guiCreateLabel(27,17,128,22,"Username",false,TabRegister) EditRegisterUsername = guiCreateEdit(26,35,143,31,"",false,TabRegister) LblRegisterPassword = guiCreateLabel(29,67,79,17,"Password",false,TabRegister) EditRegisterPassword = guiCreateEdit(26,84,144,32,"",false,TabRegister) guiEditSetMasked(EditRegisterPassword,true) LblRegisterEmail = guiCreateLabel(26,115,35,16,"E-Mail",false,TabRegister) EditRegisterEmail = guiCreateEdit(26,130,144,32,"",false,TabRegister) myImage2 = guiCreateStaticImage(234,52,149,47,"images/loginpanel.png",false,TabRegister) BtnAction1 = guiCreateButton(250,135,135,40,"Register",false,TabRegister) guiSetFont(BtnAction,"default-bold-small") guiSetVisible(LoginWin, false) end function receiveVars( allow, email) local playername = getPlayerName(localPlayer) --guiSetText(LoginUsername, "") --guiSetText(EditRegisterUsername, "") if (email == "false") then guiSetVisible(LblRegisterEmail, false) guiSetVisible(EditRegisterEmail, false) end if (allow == "false") then guiDeleteTab(TabRegister, TabPanel) end guiSetSelectedTab(TabPanel, TabLogin) --guiSetText(LoginUsername, playername) --guiSetText(EditRegisterUsername, playername) guiSetVisible(LoginWin, true) guiBringToFront(LoginWin) guiSetInputEnabled(true) showCursor(true) end addEvent( "onSendVars", true ) addEventHandler( "onSendVars", getRootElement(), receiveVars ) function windowHandler() triggerServerEvent("onNeedVars", getLocalPlayer()) end addEvent("autologinDataAnswer", true) addEventHandler("autologinDataAnswer", root, function ( autologged ) hideLoginWindow() --isChecked = guiCheckBoxGetSelected(remember) if not autologged then createLoginWindow() end end ) addEventHandler( 'onClientResourceStart', gResRoot, function() createLoginWindow() addEventHandler("onClientGUIClick", BtnAction, onClickBtn, false) addEventHandler("onClientGUIClick", BtnAction1, onClickBtn1, false) triggerServerEvent( 'autologinDataRequest', localPlayer ) end ) --addEventHandler("onClientResourceStart", getResourceRootElement(getThisResource()), windowHandler) function onClickBtn(button, state) if(button == "left" and state == "up") then if(source == BtnAction) then if(guiGetSelectedTab(TabPanel) == TabLogin) then triggerServerEvent("Login", getRootElement(), localPlayer, guiGetText(LoginUsername), guiGetText(LoginPassword)) --else --triggerServerEvent("Register", getRootElement(), localPlayer, guiGetText(EditRegisterUsername), guiGetText(EditRegisterPassword), guiGetText(EditRegisterEmail)) end end end end --addEventHandler("onClientGUIClick", BtnAction, onClickBtn, false) function onClickBtn1(button, state) if(button == "left" and state == "up") then if(source == BtnAction1) then if(guiGetSelectedTab(TabPanel) == TabLogin) then triggerServerEvent("Register", getRootElement(), localPlayer, guiGetText(LoginUsername), guiGetText(LoginPassword)) --else --triggerServerEvent("Register", getRootElement(), localPlayer, guiGetText(EditRegisterUsername), guiGetText(EditRegisterPassword), guiGetText(EditRegisterEmail)) end end end end --addEventHandler("onClientGUIClick", BtnAction1, onClickBtn1, false) function hideLoginWindow() guiSetInputEnabled(false) guiSetVisible(LoginWin, false) showCursor(false) end addEvent("hideLoginWindow", true) addEventHandler("hideLoginWindow", getRootElement(), hideLoginWindow) поправьте .. вроде без ошибок, панель не открывает Link to comment
Kenix Posted September 19, 2011 Share Posted September 19, 2011 Исправил blackLoginScreen = true enableKickPlayer = true disallowLogout = false removeBlackScreenTime = 3 maxLoginAttempts = 3 local localPlayer = getLocalPlayer() gResRoot = getResourceRootElement(getThisResource()) x,y = guiGetScreenSize() function createLoginWindow() LoginWin = guiCreateWindow(219,182,414,237,"Login Panel v.2 by *Qwerty",false) TabPanel = guiCreateTabPanel(9,20,396,208,false,LoginWin) TabLogin = guiCreateTab("Login",TabPanel) LblUsername = guiCreateLabel(26,17,83,16,"Username",false,TabLogin) LoginUsername = guiCreateEdit(25,34,158,29,"",false,TabLogin) guiSetAlpha(LoginUsername,1) LoginPassword = guiCreateEdit(24,82,162,30,"",false,TabLogin) guiSetAlpha(LoginPassword,1) myImage1 = guiCreateStaticImage(234,52,149,47,"images/loginpanel.png",false,TabLogin) --guiCreateCheckBox(26,127,17,19,"Remember",false,TabLogin) --myLabelRemember = guiCreateLabel(49,128,114,17,"Remember me?",false,TabLogin) BtnAction = guiCreateButton(248,136,137,39,"Login",false,TabLogin) guiEditSetMasked(LoginPassword,true) TabRegister = guiCreateTab("Register",TabPanel) LblRegisterUsername = guiCreateLabel(27,17,128,22,"Username",false,TabRegister) EditRegisterUsername = guiCreateEdit(26,35,143,31,"",false,TabRegister) LblRegisterPassword = guiCreateLabel(29,67,79,17,"Password",false,TabRegister) EditRegisterPassword = guiCreateEdit(26,84,144,32,"",false,TabRegister) guiEditSetMasked(EditRegisterPassword,true) LblRegisterEmail = guiCreateLabel(26,115,35,16,"E-Mail",false,TabRegister) EditRegisterEmail = guiCreateEdit(26,130,144,32,"",false,TabRegister) myImage2 = guiCreateStaticImage(234,52,149,47,"images/loginpanel.png",false,TabRegister) BtnAction1 = guiCreateButton(250,135,135,40,"Register",false,TabRegister) guiSetFont(BtnAction,"default-bold-small") end function receiveVars( allow, email) local playername = getPlayerName(localPlayer) --guiSetText(LoginUsername, "") --guiSetText(EditRegisterUsername, "") if (email == "false") then guiSetVisible(LblRegisterEmail, false) guiSetVisible(EditRegisterEmail, false) end if (allow == "false") then guiDeleteTab(TabRegister, TabPanel) end guiSetSelectedTab(TabPanel, TabLogin) --guiSetText(LoginUsername, playername) --guiSetText(EditRegisterUsername, playername) guiSetVisible(LoginWin, true) guiBringToFront(LoginWin) guiSetInputEnabled(true) showCursor(true) end addEvent( "onSendVars", true ) addEventHandler( "onSendVars", getRootElement(), receiveVars ) function windowHandler() triggerServerEvent("onNeedVars", getLocalPlayer()) end addEvent("autologinDataAnswer", true) addEventHandler("autologinDataAnswer", root, function ( autologged ) hideLoginWindow() --isChecked = guiCheckBoxGetSelected(remember) if not autologged then createLoginWindow() end end ) addEventHandler( 'onClientResourceStart', gResRoot, function() createLoginWindow() addEventHandler("onClientGUIClick", BtnAction, onClickBtn, false) addEventHandler("onClientGUIClick", BtnAction1, onClickBtn1, false) triggerServerEvent( 'autologinDataRequest', localPlayer ) end ) --addEventHandler("onClientResourceStart", getResourceRootElement(getThisResource()), windowHandler) function onClickBtn(button, state) if(button == "left" and state == "up") then if(source == BtnAction) then if(guiGetSelectedTab(TabPanel) == TabLogin) then triggerServerEvent("Login", getRootElement(), localPlayer, guiGetText(LoginUsername), guiGetText(LoginPassword)) --else --triggerServerEvent("Register", getRootElement(), localPlayer, guiGetText(EditRegisterUsername), guiGetText(EditRegisterPassword), guiGetText(EditRegisterEmail)) end end end end --addEventHandler("onClientGUIClick", BtnAction, onClickBtn, false) function onClickBtn1(button, state) if(button == "left" and state == "up") then if(source == BtnAction1) then if(guiGetSelectedTab(TabPanel) == TabLogin) then triggerServerEvent("Register", getRootElement(), localPlayer, guiGetText(LoginUsername), guiGetText(LoginPassword)) --else --triggerServerEvent("Register", getRootElement(), localPlayer, guiGetText(EditRegisterUsername), guiGetText(EditRegisterPassword), guiGetText(EditRegisterEmail)) end end end end --addEventHandler("onClientGUIClick", BtnAction1, onClickBtn1, false) function hideLoginWindow() guiSetInputEnabled(false) guiSetVisible(LoginWin, false) showCursor(false) end addEvent("hideLoginWindow", true) addEventHandler("hideLoginWindow", getRootElement(), hideLoginWindow) У тебя проблема была с guiSetVisible(LoginWin, false) в функции createLoginWindow Тоесть когда клиент защёл на сервер ты делаешь окно не видимым. Очевидно не ты делал этот логин а взял из комьюнити и переделал. Link to comment
TwiX! Posted September 20, 2011 Author Share Posted September 20, 2011 спс , но не работает Link to comment
Kenix Posted September 20, 2011 Share Posted September 20, 2011 У меня всё прекрасно работает!.Покажи мету Link to comment
TwiX! Posted September 20, 2011 Author Share Posted September 20, 2011 Client blackLoginScreen = true enableKickPlayer = true disallowLogout = false removeBlackScreenTime = 3 maxLoginAttempts = 3 local localPlayer = getLocalPlayer() gResRoot = getResourceRootElement(getThisResource()) x,y = guiGetScreenSize() function createLoginWindow() LoginWin = guiCreateWindow(219,182,414,237,"Login Panel v.2 by *Qwerty",false) TabPanel = guiCreateTabPanel(9,20,396,208,false,LoginWin) TabLogin = guiCreateTab("Login",TabPanel) LblUsername = guiCreateLabel(26,17,83,16,"Username",false,TabLogin) LoginUsername = guiCreateEdit(25,34,158,29,"",false,TabLogin) guiSetAlpha(LoginUsername,1) LoginPassword = guiCreateEdit(24,82,162,30,"",false,TabLogin) guiSetAlpha(LoginPassword,1) myImage1 = guiCreateStaticImage(234,52,149,47,"images/loginpanel.png",false,TabLogin) --guiCreateCheckBox(26,127,17,19,"Remember",false,TabLogin) --myLabelRemember = guiCreateLabel(49,128,114,17,"Remember me?",false,TabLogin) BtnAction = guiCreateButton(248,136,137,39,"Login",false,TabLogin) guiEditSetMasked(LoginPassword,true) TabRegister = guiCreateTab("Register",TabPanel) LblRegisterUsername = guiCreateLabel(27,17,128,22,"Username",false,TabRegister) EditRegisterUsername = guiCreateEdit(26,35,143,31,"",false,TabRegister) LblRegisterPassword = guiCreateLabel(29,67,79,17,"Password",false,TabRegister) EditRegisterPassword = guiCreateEdit(26,84,144,32,"",false,TabRegister) guiEditSetMasked(EditRegisterPassword,true) LblRegisterEmail = guiCreateLabel(26,115,35,16,"E-Mail",false,TabRegister) EditRegisterEmail = guiCreateEdit(26,130,144,32,"",false,TabRegister) myImage2 = guiCreateStaticImage(234,52,149,47,"images/loginpanel.png",false,TabRegister) BtnAction1 = guiCreateButton(250,135,135,40,"Register",false,TabRegister) guiSetFont(BtnAction,"default-bold-small") end function receiveVars( allow, email) local playername = getPlayerName(localPlayer) --guiSetText(LoginUsername, "") --guiSetText(EditRegisterUsername, "") if (email == "false") then guiSetVisible(LblRegisterEmail, false) guiSetVisible(EditRegisterEmail, false) end if (allow == "false") then guiDeleteTab(TabRegister, TabPanel) end guiSetSelectedTab(TabPanel, TabLogin) --guiSetText(LoginUsername, playername) --guiSetText(EditRegisterUsername, playername) guiSetVisible(LoginWin, true) guiBringToFront(LoginWin) guiSetInputEnabled(true) showCursor(true) end addEvent( "onSendVars", true ) addEventHandler( "onSendVars", getRootElement(), receiveVars ) function windowHandler() triggerServerEvent("onNeedVars", getLocalPlayer()) end addEvent("autologinDataAnswer", true) addEventHandler("autologinDataAnswer", root, function ( autologged ) hideLoginWindow() --isChecked = guiCheckBoxGetSelected(remember) if not autologged then createLoginWindow() end end ) addEventHandler( 'onClientResourceStart', gResRoot, function() createLoginWindow() addEventHandler("onClientGUIClick", BtnAction, onClickBtn, false) addEventHandler("onClientGUIClick", BtnAction1, onClickBtn1, false) triggerServerEvent( 'autologinDataRequest', localPlayer ) end ) --addEventHandler("onClientResourceStart", getResourceRootElement(getThisResource()), windowHandler) function onClickBtn(button, state) if(button == "left" and state == "up") then if(source == BtnAction) then if(guiGetSelectedTab(TabPanel) == TabLogin) then triggerServerEvent("Login", getRootElement(), localPlayer, guiGetText(LoginUsername), guiGetText(LoginPassword)) else triggerServerEvent("Register", getRootElement(), localPlayer, guiGetText(EditRegisterUsername), guiGetText(EditRegisterPassword), guiGetText(EditRegisterEmail)) end end end end --addEventHandler("onClientGUIClick", BtnAction, onClickBtn, false) function onClickBtn1(button, state) if(button == "left" and state == "up") then if(source == BtnAction1) then if(guiGetSelectedTab(TabPanel) == TabLogin) then triggerServerEvent("Register", getRootElement(), localPlayer, guiGetText(LoginUsername), guiGetText(LoginPassword)) else triggerServerEvent("Register", getRootElement(), localPlayer, guiGetText(EditRegisterUsername), guiGetText(EditRegisterPassword), guiGetText(EditRegisterEmail)) end end end end --addEventHandler("onClientGUIClick", BtnAction1, onClickBtn1, false) function hideLoginWindow() guiSetInputEnabled(false) guiSetVisible(LoginWin, false) showCursor(false) end addEvent("hideLoginWindow", true) addEventHandler("hideLoginWindow", getRootElement(), hideLoginWindow) Server function Login ( player, user, pass ) local account = getAccount ( user, pass ) if ( account ~= false ) then if ( not isGuestAccount ( account ) ) then -- For every player that's logged in.... logOut ( player ) -- Log them out. end if (logIn ( player, account, pass ) == true) then triggerClientEvent ( player, "hideLoginWindow", getRootElement()) else outputChatBox ( "Login error!", player, 255, 255, 0 ) -- Output they got the details wrong. end else outputChatBox ( "Wrong username or password!", player, 255, 255, 0 ) -- Output they got the details wrong. end end addEvent( "Login", true ) addEventHandler( "Login", getRootElement(), Login ) function Register ( player, user, pass, email ) local account = getAccount ( user, pass ) if ( account ~= false ) then if (logIn ( player, account, pass ) == true) then triggerClientEvent ( player, "hideLoginWindow", getRootElement()) else outputChatBox ( "Login error!", player, 255, 255, 0 ) -- Output they got the details wrong. end else account = addAccount ( user, pass ) setAccountData ( account, "email", email) if (logIn ( player, account, pass ) == true) then triggerClientEvent ( player, "hideLoginWindow", getRootElement()) else outputChatBox ( "Register/Login error!", player, 255, 255, 0 ) -- Output they got the details wrong. end end end addEvent( "Register", true ) addEventHandler( "Register", getRootElement(), Register ) function needVars() local allow_register = get("allow_register") local email_on_register = get("email_on_register") triggerClientEvent(source, "onSendVars", getRootElement(), allow_register, email_on_register) end addEvent("onNeedVars", true) addEventHandler("onNeedVars", getRootElement(), needVars) Meta type="script" version="3.4" name="loginpanel" description="v3.4" /> 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