Xakep_SDK Posted November 15, 2012 Share Posted November 15, 2012 Есть база sqlite: users.db В ней таблица: users В ней 3 поля: login, password и mail Как в скрипте логина прописать проверку логина и пароля. Т.е. в окошке с логином указан логин. К примеру user и пароль password. Скрипт проверяет, есть ли у такого поля Login значение user с паролем password. Сам скрипт: local spawnX, spawnY, spawnZ = -711, 957, 13 dbQueryUser = { dbconnect = dbConnect("sqlite", "users.db") dbQuery(dbConnect, "SELECT * FROM users") --похоже еще надо дописать этот контейнер } function loginHandler(username,password) if username == "user" and password == "apple" then --тут нао заменить на проверку, но я не знаю как if(client) then spawnPlayer(client, spawnX, spawnY, spawnZ) fadeCamera(client, true) setCameraTarget(client, client) outputChatBox("Добро пожаловать на мой сервер.", client) end else outputChatBox("неправильный логин или пароль! Пожалуйста перезайдите и попробуйте еще раз.", client) end end function ifUserDead() spawnPlayer(source, spawnX, spawnY, spawnZ) fadeCamera(source, true) setCameraTarget(source, source) end function playerDied(totalAmmo, killer, killerWeapon, bodypart) outputChatBox(getPlayerName(source).." Умер!") end addEvent("submitLogin",true) addEventHandler("submitLogin", root, loginHandler) addEventHandler("onPlayerWasted", getRootElement(), ifUserDead) addEventHandler("onPlayerWasted", getRootElement(), playerDied) Link to comment
Kenix Posted November 15, 2012 Share Posted November 15, 2012 P_CONNECTION = dbConnect( 'sqlite', 'users.db' ) function Login( sLogin, sPassword ) local pQuery = dbQuery( P_CONNECTION, "SELECT * FROM `users` WHERE `login` = '" .. sLogin .. "'" ) local aQuery = dbPoll( pQuery, - 1 ) if type( aQuery ) == 'table' and #aQuery > 0 then -- Аккаунт найден if sPassword == aQuery[ 1 ][ 'password' ] then -- .... end else -- Аккаунт не найден end end Это чисто пример функции, код ты должен сам дописывать. Link to comment
Xakep_SDK Posted November 15, 2012 Author Share Posted November 15, 2012 Спасибо, попробую! Link to comment
Xakep_SDK Posted November 15, 2012 Author Share Posted November 15, 2012 А что происходит где -- ....? Это если тайм аут? Link to comment
Kenix Posted November 15, 2012 Share Posted November 15, 2012 Перед этим идёт проверка пароля, если условие проходит, то код выполняется дальше т.е там где -- ... это комментарий, там должен быть ваш код, вообщем как и везде( это пример функции ). P.S Вы вообще знаете Lua? Если нет, то вам сюда: https://forum.multitheftauto.com/viewtop ... 1369f36da8 Link to comment
Xakep_SDK Posted November 15, 2012 Author Share Posted November 15, 2012 Перед этим идёт проверка пароля, если условие проходит, то код выполняется дальше т.е там где -- ... это комментарий, там должен быть ваш код, вообщем как и везде( это пример функции ). P.S Вы вообще знаете Lua? Если нет, то вам сюда: https://forum.multitheftauto.com/viewtop ... 1369f36da8 Знаю я что это комментарий. После if type( aQuery ) == 'table' and #aQuery > 0 then я добавил условие спавна spawnPlayer(client, spawnX, spawnY, spawnZ) fadeCamera(client, true) setCameraTarget(client, client) outputChatBox("Добро пожаловать на мой сервер.", client) Я не могу понять для чего это: if sPassword == aQuery[ 1 ][ 'password' ] then -- .... end Link to comment
Kenix Posted November 15, 2012 Share Posted November 15, 2012 Я не могу понять для чего это: if sPassword == aQuery[ 1 ][ 'password' ] then -- .... end Когда вы вводите пароль с клиента, то вам нужно проверить его на сервере чтобы залогинется, логично же? Ну вот вы тригерите свои данные с клиента на сервер ( также приаттачьте событие к этой функции Login ). sLogin, sPassword это аргументы этой функции. Соответственно это условие будет проверять верен ли пароль. Link to comment
Xakep_SDK Posted November 15, 2012 Author Share Posted November 15, 2012 Это я понял, а вот не понял зачем там комментарий? Оставить пустым? Link to comment
Flaker Posted November 15, 2012 Share Posted November 15, 2012 Вместо коментария пиши свой код! (Что делать если игрок зашел с правильным паролем и логином) Link to comment
Xakep_SDK Posted November 15, 2012 Author Share Posted November 15, 2012 Вместо коментария пиши свой код! (Что делать если игрок зашел с правильным паролем и логином) Спасибо, теперь дошло. Я думал не туда указывать действие. Простите что вел себя как дурак. хотя это слабо сказано. 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