Leone Posted January 22, 2017 Posted January 22, 2017 Цитата Друзья, есть вариант с готовым кодом и с инструкцией? Вот, Вам бы всем только готовый код с примером...
Noah_Murray Posted January 22, 2017 Posted January 22, 2017 4 часа назад, ddoommbbaass сказал: Друзья, есть вариант с готовым кодом и с инструкцией? (куда как писать, как запретить без авторизации доступ в игру) Прошу не писать об учении языка, я учу язык как могу. Спасибо! Лично я пока что сделал вот так: Объявил что при входе на сервер переменная допустим pLogin = 0, и когда игрок введет команду /login, или авторизуется через окно, то переменная pLogin = 1, также ставь проверки на команды. Допустим если pLogin = 0, то возвращай функцию.
cacao Posted January 23, 2017 Posted January 23, 2017 14 часа назад, ddoommbbaass сказал: Друзья, есть вариант с готовым кодом и с инструкцией? (куда как писать, как запретить без авторизации доступ в игру) Прошу не писать об учении языка, я учу язык как могу. Спасибо! есть готовый алгоритм, без кода, код давай сам по нему 1. Игрок входит на сервер (событие playerJoin) (вариант без CEF, так как его еще не завезли) 2. меняем ему позицию условно на место где никто не появится или меняем ему виртуальный мир, отличный от того, где все играют 3. Пишем в чам что необходимо либо авторизоваться, либо зарегистрироваться, командами (условно) login | register 4. Вводя login, ждем от него два параметра, login и password, хэшируем password и делаем запрос к БД 5. Все ок? Логиним персонажа (условно) присвоив ему например переменную logged как true, player.logged = true 6. Регистрация все точно так же как с авторизацией, ток мы делаем не SELECT а SELECT (проверяем есть ли такой логин уже в системе) + INSERT (если такого логина нет), отдаем ему в случае успешного INSERT данные, и ставим тоже player.logged = true 7. В случае успешно авторизации или регистрации делаем что захочем с персонажем (например спавним туда, где у тебя игровой спавн всех игроков) 2
ddoommbbaass Posted January 25, 2017 Author Posted January 25, 2017 В 23.01.2017 в 10:25, cacao сказал: есть готовый алгоритм, без кода, код давай сам по нему 1. Игрок входит на сервер (событие playerJoin) (вариант без CEF, так как его еще не завезли) 2. меняем ему позицию условно на место где никто не появится или меняем ему виртуальный мир, отличный от того, где все играют 3. Пишем в чам что необходимо либо авторизоваться, либо зарегистрироваться, командами (условно) login | register 4. Вводя login, ждем от него два параметра, login и password, хэшируем password и делаем запрос к БД 5. Все ок? Логиним персонажа (условно) присвоив ему например переменную logged как true, player.logged = true 6. Регистрация все точно так же как с авторизацией, ток мы делаем не SELECT а SELECT (проверяем есть ли такой логин уже в системе) + INSERT (если такого логина нет), отдаем ему в случае успешного INSERT данные, и ставим тоже player.logged = true 7. В случае успешно авторизации или регистрации делаем что захочем с персонажем (например спавним туда, где у тебя игровой спавн всех игроков) Благодарю! Попробуй, ведь уже неделю, как начал изучать JavaScript, если будут сложности, надеюсь на вашу поддержку
aptyp Posted January 26, 2017 Posted January 26, 2017 У меня такая проблема Цитата \node_modules\mysql\lib\protocol\Parser.js:2496: Uncaught Error: ER_PARSE_ERROR: You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near '"users" VALUES ("gta", "123456", "2")' at line 1 вчера работала, сегодня пишет так. Что делать?
Leone Posted January 31, 2017 Posted January 31, 2017 синтаксис нарушен, где то забыли ( ) или " или же ,
Daniel Clark Posted May 29, 2017 Posted May 29, 2017 В 19.01.2017 в 12:32, ZDiels сказал: Привет! Для начала тебе необходимо установить node.js, а затем загрузить пакет для работы с mysql. Как это сделать описано здесь. После этого необходимо создать скрип, который будет заниматься регистрацией наших пользователей. Перейдем в каталог server\packages\keker\commands и создадим файл с именем database.js и поместим в него следующий код: var mysql = require('mysql'); var connection = mysql.createConnection({ //создаем подключение к БД host : 'localhost', user : 'root', password : '', database : 'WARNB' }); module.exports = //добавляем новые команды пользователей { "login": (player, args) => { if(args.length == 3){ //параметров должно быть 3 (команда, логин, пароль) connection.connect(); //подключаемся к БД connection.query('SELECT * FROM `users` WHERE `login` = "' + args[1] + '" AND `password` = "' + args[2] +'";', function(err, rows, fields) { //делаем запрос if (err){ //если возникла ошибка player.outputChatBox("Ошибка входа. Попробуйте снова"); //выводим в чат сообщение об ошибке throw err; } else{ console.log(rows[0].login, ' is login'); //выводим информацию о входе в консоль player.outputChatBox("Добро пожаловать, " + rows[0].login); //выводим информацию о входе в чат игрока } }); connection.end(); //завершаем соединение } else player.outputChatBox("Используйте /login [имя пользователя] [пароль] для входа"); //если количество параметров не соответвует 3 }, "registration": (player, args) => { if(args.length == 3){ connection.connect; connection.query('INSERT INTO `users` VALUES ("' + args[1] + '", "' + args[2] + '", NOW(), "");', function(err, rows, fields) { if (err){ player.outputChatBox("Ошибка регистрации. Попробуйте снова"); throw err; } else{ player.outputChatBox("Учетная запись успешно создана!"); } }); connection.end(); } else player.outputChatBox("Используйте /registration [имя пользователя] [пароль] для регистрации"); } }; Конечно же в mysql уже должна быть создана БД и таблица users с полями login и password. Ну а при необходимости сможешь расширить ее, думаю теперь будет понятней. Вот как-то так реализовал я. Не гарантирую что это правильный подход, ведь сам тоже совсем недавно занялся программированием. Но тем не менее решил помочь) После регистрации, пытаюсь залогиниться, пишет ошибку в консоли и в игре(keker\commands\reg.js:782: Uncaught Error: Cannot enqueue Query after invoking quit.)
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