• Из-за обновления GTA 5 (был добавлен новый патч) может временно не работать вход в RAGE Multiplayer.

    ERROR: Your game version is not supported by RAGE Multiplayer.

    Данная ошибка говорит о том, что GTA V обновилась до новой версии (GTA Online тоже). Вам необходимо обновить саму игру в главном меню вашего приложения (Steam / Epic Games / Rockstar Games).
    Если после этого RAGE:MP все равно не работает - вам нужно дождаться выхода патча для самого мультиплеера (обычно это занимает от нескольких часов до нескольких дней).

    Новости и апдейты Rockstar Games - https://www.rockstargames.com/ru/newswire/
    Статус всех служб для Rockstar Games Launcher и поддерживаемых игр: https://support.rockstargames.com/ru/servicestatus


    Grand Theft Auto 5 (+ GTA Online) последний раз были обновлены:

Вопрос Как добавить свойства к объекту player? [JS]

Novip

Участник портала
Автор темы
2 Янв 2021
4
1
13
Всем привет!
Такой вопрос: как добавить свойства к объекту player? Например player.sID, player.money
Должно получиться как то вот так:
JavaScript:
mp.events.add('playerReady', (player) => {

  let player.money = // database request

  let player.sId = // database request

})
Мне нужно это, чтобы использовать например для админ команд для сравнения player.adminLevel
 

Moretti

Специалист
high coder
19 Янв 2021
83
30
92
Если тебе не нужно передавать на клиента это - просто player.adminLevel, везде он будет доступен.
Если нужно передать на клиента - player.setVariable("name", "data")
А на самом клиенте уже player.getVariable("name") // вернет data
 

X-Clusiv

Модератор
Команда форума
high coder
4 Окт 2020
581
273
161
29
Всем привет!
Такой вопрос: как добавить свойства к объекту player? Например player.sID, player.money
Должно получиться как то вот так:
JavaScript:
mp.events.add('playerReady', (player) => {

  let player.money = // database request

  let player.sId = // database request

})
Мне нужно это, чтобы использовать например для админ команд для сравнения player.adminLevel
Приветствую на нашем форуме! Сам код сверху некорректен. Вы пытаетесь объявить уже созданный объект player который передается в этот эвент при его вызове.
Screenshot_68.png

player в данном случае является так сказать персонажем который вызвал это событие.
И вы можете к примеру переместить его в какую-то позицию:
JavaScript:
mp.events.add('playerReady', (player) => {
   player.position = new.Vector3(100,100,3000);//заставим персонажа немного полетать
})

Если вы хотите взять из базы данных и привязать их к пользователю. Вам нужно сначала вытянуть их из бд. А затем присвоить игроку.
 
Последнее редактирование:

X-Clusiv

Модератор
Команда форума
high coder
4 Окт 2020
581
273
161
29
JavaScript:
mp.events.add('playerReady', (player) => {
    DB.Handle.query(`SELECT money,sId FROM players WHERE socialClub=?`, [player.socialClub], (e, result) => {
        if(e)return console.warn(e)
        else{
            if(request.length==0){/* Код для регистрации персонажа так как в бд нет соцклаба*/}
            let req = request[0]
             player.money = req.money;
             player.sId = req.sId;
        }
    })
})
Примерно таким должен быть код.
НО, DB это обьект который хранит подключение к БД вам нужно будет это инициализировать самостоятельно, так как для каждого проекта это индивидуально.
Почему идентификация пользователя идет по его социал-клабу? Вы указали событие playerReady. Оно срабатывает сразу после того как пользователь загрузил все файлы к себе, и так сказать подключился к серверу. Т.е. не успел еще ни ввести логина ни пароля. Поэтому данных о логине и пароля в этом случае быть не может.
 
Последнее редактирование:

Novip

Участник портала
Автор темы
2 Янв 2021
4
1
13
Спасибо за ответ, но у меня почему то так не работает.
Сделал такой код для примера:
JavaScript:
mp.events.add('playerReady', (player) => {
    player.money = 1000
})



mp.events.addCommand('money', (player) => {
    player.notify(player.money)
})
Выдает такую ошибку:

Error: expected String
player.notify(player.money)
 

Novip

Участник портала
Автор темы
2 Янв 2021
4
1
13
JavaScript:
mp.events.add('playerReady', (player) => {
    DB.Handle.query(`SELECT money,sId FROM players WHERE socialClub=?`, [player.socialClub], (e, result) => {
        if(e)return console.warn(e)
        else{
            if(request.length==0){/* Код для регистрации персонажа так как в бд нет соцклаба*/}
            let req = request[0]
             player.money = req.money;
             player.sId = req.money;
        }
    })
})
Примерно таким должен быть код.
НО, DB это обьект который хранит подключение к БД вам нужно будет это инициализировать самостоятельно, так как для каждого проекта это индивидуально.
Почему идентификация пользователя идет по его социал-клабу? Вы указали событие playerReady. Оно срабатывает сразу после того как пользователь загрузил все файлы к себе, и так сказать подключился к серверу. Т.е. не успел еще ни ввести логина ни пароля. Поэтому данных о логине и пароля в этом случае быть не может.
Подскажите пожалуйста по поводу сообщения выше
 

X-Clusiv

Модератор
Команда форума
high coder
4 Окт 2020
581
273
161
29
Спасибо за ответ, но у меня почему то так не работает.
Сделал такой код для примера:
JavaScript:
mp.events.add('playerReady', (player) => {
    player.money = 1000
})



mp.events.addCommand('money', (player) => {
    player.notify(player.money)
})
Выдает такую ошибку:

Error: expected String
player.notify(player.money)
Чтобы понять ошибку достаточно перевести ее, по крайней мере в этом конкретном случае.
Ошибка: ожидаемая строка
 

X-Clusiv

Модератор
Команда форума
high coder
4 Окт 2020
581
273
161
29
можно так
JavaScript:
mp.events.add('playerReady', (player) => {
    player.money = 1000
})
mp.events.addCommand('money', (player) => {
    player.notify(`${player.money}`)
})
Либо так
JavaScript:
mp.events.add('playerReady', (player) => {
    player.money = 1000
})
mp.events.addCommand('money', (player) => {
    player.notify('У персонажа, '+player.name+' в кармане '+player.money+'$')
})
 
  • Like
Реакции: Novip

Novip

Участник портала
Автор темы
2 Янв 2021
4
1
13
Спасибо большое, очень Вам благодарен!
 
  • OK
Реакции: X-Clusiv

Moretti

Специалист
high coder
19 Янв 2021
83
30
92
можно так
JavaScript:
mp.events.add('playerReady', (player) => {
    player.money = 1000
})
mp.events.addCommand('money', (player) => {
    player.notify(`${player.money}`)
})
Либо так
JavaScript:
mp.events.add('playerReady', (player) => {
    player.money = 1000
})
mp.events.addCommand('money', (player) => {
    player.notify('У персонажа, '+player.name+' в кармане '+player.money+'$')
})
Хватило бы просто String(player.money) :)