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

    Ошибка: Ваша версия Grand Theft Auto V не поддерживается 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/newswire/
    Статус всех служб для Rockstar Games Launcher и поддерживаемых игр: https://support.rockstargames.com/ru/servicestatus


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

Вопрос JS + render + player.getVariable("data");

Cold

Участник портала
9 Окт 2022
46
22
46
Доброго времени суток господа, у меня такой вот вопрос, как можно получить данные из игрока на клиенте в render, вставлю кусочек кода для понимия о чем я
Код:
mp.events.add('render', (nametags) => {
    nametags.forEach(nametag => {
        let plfrq= player.getVariable("data");
Я хочу сделать так, если игроки в одной фракции то например над головой выводилось его имя, фракция в нашем случае это просто число, но проблема заключается в том что я пытаюсь получить число а оно undefined.
Покопался еще на форуме увидел решение с
Код:
         mp.players.forEachInStreamRange(
        (player) => {
             mp.gui.chat.push(`${player.getVariable("freq_gps")}`);
        });
Здесь тоже самое, правда еще и мое число выводит а вот другого игрока нет, тот же undefined
 

Jerry (ChatGPT)

AI-powered language model
VIP
helper
17 Окт 2023
2,241
230
5
Здравствуйте! Проблема возникает из-за того, что вы пытаетесь получить переменную "data" у игрока, используя метод player.getVariable("data"), но в вашем случае нужно использовать player.getVariable("freq_gps") для получения числа фракции. Если вы хотите сравнивать числовые значения фракций, то можете использовать player.getVariable("freq_gps") вместо "data" в вашем первом примере кода. Чтобы отобразить имя игрока над его головой в зависимости от фракции, вы можете выполнить сравнение чисел фракций и отобразить имя, если они совпадают. Надеюсь, это поможет!
 

nafanya100

нафаныч
BackEnd developer
FrontEnd developer
25 Ноя 2023
143
24
65
Server:

JavaScript:
mp.events.add('playerReady', (player) => {
    player.setVariable('fraction', id_fraction);
})

Client:

JavaScript:
mp.events.add('render', () => {
    let fraction = mp.players.local.getVariable('fraction')
    mp.gui.chat.push(fraction)
})

При заходе на сервер достаешь данные с бд о фракции игрока и ставишь их в вариебл
На клиенте получаешь его и юзаешь!
 

Vermilion

Высший разум
High developer
BackEnd developer
FrontEnd developer
29 Сен 2021
1,278
754
181
34
Для начала тебя нужно установить через setVariable на стороне сервера для каждого игрока, на пример после авторизации

JavaScript:
player.mp.setVariable('name', player.name)
player.mp.setVariable('faction', player.faction)

На стороне клиента запускаешь рендер с проверкой на фракцию

JavaScript:
mp.events.add('render', () => {
   mp.players.forEachInStreamRange(target => {
      const targetFaction = target.getVariable('faction')
      const targetName = target.getVariable('name')
      const playerFaction = mp.players.local.getVariable('faction')
      if(!playerFaction || !playerName || !targetFaction || target === mp.players.local) return
      if(playerFaction === targetFaction) {
         //здесь отображаешь имя над игроком используя targetName
      }
   })
})
 
Последнее редактирование:
  • Love
Реакции: Cold и FireFeed

Cold

Участник портала
9 Окт 2022
46
22
46
Для начала тебя нужно установить через setVariable на стороне сервера для каждого игрока, на пример после авторизации

JavaScript:
player.mp.setVariable('name', player.name)
player.mp.setVariable('faction', player.faction)

На стороне клиента запускаешь рендер с проверкой на фракцию

JavaScript:
mp.events.add('render', () => {
   mp.players.forEachInStreamRange(target => {
      const targetFaction = target.getVariable('faction')
      const targetName = target.getVariable('name')
      const playerFaction = mp.players.local.getVariable('faction')
      if(!playerFaction || !playerName || !playerFaction || target === mp.players.local) return
      if(playerFaction === targetFaction) {
         //здесь отображаешь имя над игроком используя targetName
      }
   })
})
Да у меня на сервере(c#) стоит записывание в setownshareddata после того как игрок залогинился или не получится если сервер на шарпе? У меня просто подобный код и я не понимаю почему не работает, пишет undefined
 

Cold

Участник портала
9 Окт 2022
46
22
46
Server:

JavaScript:
mp.events.add('playerReady', (player) => {
    player.setVariable('fraction', id_fraction);
})

Client:

JavaScript:
mp.events.add('render', () => {
    let fraction = mp.players.local.getVariable('fraction')
    mp.gui.chat.push(fraction)
})

При заходе на сервер достаешь данные с бд о фракции игрока и ставишь их в вариебл
На клиенте получаешь его и юзаешь!
Только здесь мы достаем же из локального игрока, это не проблема, вот с другими игроками проблема, у них достать
 

Vermilion

Высший разум
High developer
BackEnd developer
FrontEnd developer
29 Сен 2021
1,278
754
181
34
Да у меня на сервере(c#) стоит записывание в setownshareddata после того как игрок залогинился или не получится если сервер на шарпе? У меня просто подобный код и я не понимаю почему не работает, пишет undefined
Тебе нужно сетить через SetSharedData, потому что SetOwnSharedData доступна только клиенту
 
  • Love
Реакции: Cold и MADARAdev