Jump to content

Recommended Posts

Posted
Цитата

Друзья, есть вариант с готовым кодом и с инструкцией?

Вот, Вам бы всем только готовый код с примером... 

Posted
4 часа назад, ddoommbbaass сказал:

Друзья, есть вариант с готовым кодом и с инструкцией?

(куда как писать, как запретить без авторизации доступ в игру)

Прошу не писать об учении языка, я учу язык как могу.

Спасибо!

Лично я пока что сделал вот так:

Объявил что при входе на сервер переменная допустим pLogin = 0, и когда игрок введет команду /login, или авторизуется через окно, то переменная pLogin = 1, также ставь проверки на команды. Допустим если pLogin = 0, то возвращай функцию.

Posted
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. В случае успешно авторизации или регистрации делаем что захочем с персонажем (например спавним туда, где у тебя игровой спавн всех игроков)

  • Like 2
Posted
В 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, если будут сложности, надеюсь на вашу поддержку

Posted

У меня такая проблема 

Цитата

\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

вчера работала, сегодня пишет так. Что делать?

  • 3 months later...
Posted
В 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.)

  • 1 year later...

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 account

Sign in

Already have an account? Sign in here.

Sign In Now
  • Recently Browsing   0 members

    • No registered users viewing this page.
×
×
  • Create New...