• Просьба не публиковать сообщения с предложениями продажи модов или сборок!

    Мы против использования и перепродажи слитых модов и переделок на их основе. Остальное также сложно верифицировать, поэтому в целом пока что запрещаем эту тему на сайте.

JS Написание в чат

kylie

Trainee
Сообщения
18
Как сделать чтобы игрок мог писать в чат (мод с 0)
 
Как-то так
JavaScript:
mp.events.add("playerChat", (sender, message) => {
        mp.players.forEach( player => {
            player.outputChatBox(`${sender.name}: ${message}`);
        })
});
 
1662232587427.png
А как изменить ник WeirdNewbie ? Чтоб он брал имя с бд
 
Записуй имя из базы куда-то в player и используй где тебе нужно
 
А если точнее? Я просто новичек еще в rage
Когда мы логиним игрока, то выгружаем из базы данных его аккаунт. Например, в туториале по регистрации https://rage-script.com/threads/registracija-i-avtorizacija-na-cef-mysql.67/
JavaScript:
mp.events.add('onLoginAttempt', (player, data) => {
    data = JSON.parse(data);
    DB.query('SELECT * FROM accounts WHERE login = ? LIMIT 1', [data.login], function (error, results) {
        if(results.length == 0) return player.call('showAuthError', ['Неверный Логин и/или Пароль']);

        const passwordHash = results[0].password;
        bcrypt.compare(data.password, passwordHash, function(err, isMatched) {
            if( isMatched ) {




                player.login = results[0].login; // записываем логин в объект игрока, чтобы использовать его в других местах





                return player.call('hideLoginDialog');
            }
            player.call('showAuthError', ['Неверный Логин и/или Пароль']);
        });
    });
});

И теперь на сервере везде где у нас есть объект игрока player, мы можем получить его login
JavaScript:
mp.events.add("playerChat", (sender, message) => {
        mp.players.forEach( player => {
            player.outputChatBox(`${sender.login}: ${message}`);
        })
});
 
Когда мы логиним игрока, то выгружаем из базы данных его аккаунт. Например, в туториале по регистрации https://rage-script.com/threads/registracija-i-avtorizacija-na-cef-mysql.67/
JavaScript:
mp.events.add('onLoginAttempt', (player, data) => {
    data = JSON.parse(data);
    DB.query('SELECT * FROM accounts WHERE login = ? LIMIT 1', [data.login], function (error, results) {
        if(results.length == 0) return player.call('showAuthError', ['Неверный Логин и/или Пароль']);

        const passwordHash = results[0].password;
        bcrypt.compare(data.password, passwordHash, function(err, isMatched) {
            if( isMatched ) {




                player.login = results[0].login; // записываем логин в объект игрока, чтобы использовать его в других местах





                return player.call('hideLoginDialog');
            }
            player.call('showAuthError', ['Неверный Логин и/или Пароль']);
        });
    });
});

И теперь на сервере везде где у нас есть объект игрока player, мы можем получить его login
JavaScript:
mp.events.add("playerChat", (sender, message) => {
        mp.players.forEach( player => {
            player.outputChatBox(`${sender.login}: ${message}`);
        })
});
Или же в случае успешной регистрации: player.name = data.login;
 
Назад
Верх