ТИП ДАНЫХ

Voldemor

Senior Developer
При вводе логин и пароля, тип данных числовой, а нужно строковый. Кто то знает как это сделать?
 

Lev Angel

Developer
Команда форума
Не понял ничего. Показывай код и что от него хочешь :)
 

Voldemor

Senior Developer
Не понял ничего. Показывай код и что от него хочешь :)
При помощи TYPEOF я узнаю тип данных для ввода их. Я делаю триггер для регистрации, вроде бы их правильно записал, но не выводит notify при условии, начал рыть и узнавать в чём проблема, так и не нашёл. Для полей ввода пароля и логина должно использоваться string а у меня получается int.
Весь код:
function sendLoginInfo() {
let username = document.getElementById("user").value;
string u = user.TiString();
let password = document.getElementById("pass").value;
string p = pass.TiString();
//alert(`${username}, ${password}`);

mp.trigger("loginToClient", user, pass);
}
Ивент:
mp.events.add('loginToClient', (user, pass) => {
/*if (login.length < 5 || pass.length < 5) return*/ mp.game.graphics.notify(`$ u} ${pass} `);
});/ICODE]
 

Вложения

  • Скриншот 19-12-2020 124728.png
    Скриншот 19-12-2020 124728.png
    10,9 КБ · Просмотры: 9

Lev Angel

Developer
Команда форума
Посмотри в уроке по регистрации как мы передаем логин и пароль из браузера на клиент.
mp.trigger позволяем нам отправить из браузера на клиент только один дополнительный параметр. И это может быть только строка или число. Нам же нужно отправить два значения. Мы не можем отправить напрямую массив или объект, но мы можем преобразовать наш объект с логином и паролем в json строку JSON.stringify({ login, password }). И теперь эту строку мы легко передаем в одном аргументе.
Ты же пытаешься передать и логин, пароль отдельно. По идее у тебя передается только первый аргумент - user. И в ивенте pass будет неопределен.
Да и к тому же когда ты выводишь mp.game.graphics.notify(`$ u} ${pass} `);, то тут у тебя какие-то опечатки. Наверное предполагается что будет так mp.game.graphics.notify(`${user} ${pass} `);
 

Voldemor

Senior Developer
Посмотри в уроке по регистрации как мы передаем логин и пароль из браузера на клиент.

Ты же пытаешься передать и логин, пароль отдельно. По идее у тебя передается только первый аргумент - user. И в ивенте pass будет неопределен.
Да и к тому же когда ты выводишь mp.game.graphics.notify(`$ u} ${pass} `);, то тут у тебя какие-то опечатки. Наверное предполагается что будет так mp.game.graphics.notify(`${user} ${pass} `);
mp.game.graphics.notify(`$ u} ${pass} `); Это я стёр. И не увидел когда копировал код
 

Lev Angel

Developer
Команда форума
Вот это еще что за чудеса:
JavaScript:
string u = user.TiString();
Во-первых string u это будет ошибка в синтаксисе. Нет такого идентификатора string
Во-вторых не TiString, а ToString
В-третьих что ты хочешь сделать? У тебя значение которое ты получаешь из input и так будет строкой.
 

geneff

Junior Developer
Понимаю, что не по теме, но для будущего я рекомендую использовать нововведения Rage 1.1, а именно вместо mp.trigger -> mp.events.call. Разницы никакой, но кто знает, может в будующих обновлениях Rage и вовсе удалят mp.trigger и нужно будет искать все файлы где мы юзали mp.trigger и менять их на mp.events.call, что конечно не хорошо. Это лишь совет, а ты уже дальше сам думай как тебе удобней будет :)
 

geneff

Junior Developer
JavaScript:
// CEF:
function sendLoginInfo() {
    const  username = document.getElementById("user").value;
    const  password = document.getElementById("pass").value;
    mp.events.call("loginToClient", JSON.stringify({username, password}));
}

// Client:
mp.events.add('loginToClient', data => {
    data = JSON.parse(data);

    if (data.username.length < 5 || data.password.length < 5) {
        mp.game.graphics.notify(`${data.username}: ${data.password}`);
        return;
    }
    // выполняешь какие-то действия после проверки
})
 

Voldemor

Senior Developer
JavaScript:
// CEF:
function sendLoginInfo() {
    const  username = document.getElementById("user").value;
    const  password = document.getElementById("pass").value;
    mp.events.call("loginToClient", JSON.stringify({username, password}));
}

// Client:
mp.events.call('loginToClient', data => {
    data = JSON.parse(data);

    if (data.username.length < 5 || data.password.length < 5) {
        mp.game.graphics.notify(`${data.username}: ${data.password}`);
        return;
    }
})
спасибо, уже решил
 

Lev Angel

Developer
Команда форума
Понимаю, что не по теме, но для будущего я рекомендую использовать нововведения Rage 1.1, а именно вместо mp.trigger -> mp.events.call. Разницы никакой, но кто знает, может в будующих обновлениях Rage и вовсе удалят mp.trigger и нужно будет искать все файлы где мы юзали mp.trigger и менять их на mp.events.call, что конечно не хорошо. Это лишь совет, а ты уже дальше сам думай как тебе удобней будет :)

А оно точно умеет в CEF браузере работать? Судя по вики это только сервер-сервер или клиент-клиент события.
 

Lev Angel

Developer
Команда форума
Хм надо будет поэкспериментировать. Не до конца понял как оно работает.
 
Яндекс.Метрика
Верх