• Из-за обновления 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) последний раз были обновлены:

Вопрос Определить ближайшего игрока на стороне клиента?

dreamharakiri

Новый участник
25 Дек 2021
75
1
49
Появился вопрос, как определить ближайшего игрока (допустим тоже взаимодействие между игроками) и поменять ему ник на стороне нашего клиента (Допустим был незнакомец, стал Его_Ник)
 

XDeveluxe

⚡️BackEnd Developer
Команда форума
Moderator
High developer
BackEnd developer
30 Авг 2021
2,766
1,581
211
28
Со стороны клиента, насколько я знаю, ты не можешь поменять его ник, ты можешь поменять отображение (3dtext над головой), а что туда писать - дело твоё.
По поводу ближайшего игрока - берёшь пул персонаже внутри зоны стрима и проверяешь какой из них ближе всего, сверяешь самый подходящий вариант с нужной тебе цифрой дистанции и понимаешь достаточно ли он близко к тебе.
 

dreamharakiri

Новый участник
25 Дек 2021
75
1
49
Со стороны клиента, насколько я знаю, ты не можешь поменять его ник, ты можешь поменять отображение (3dtext над головой), а что туда писать - дело твоё.
По поводу ближайшего игрока - берёшь пул персонаже внутри зоны стрима и проверяешь какой из них ближе всего, сверяешь самый подходящий вариант с нужной тебе цифрой дистанции и понимаешь достаточно ли он близко к тебе.
Т.е. у меня вот такой ивент
JavaScript:
mp.events.add('entityStreamIn', (entity) => {
    const isInvincible = entity.getVariable('isInvincible');
    entity.setInvincible(!!isInvincible);
});
Но как с помощью него узнать какой именно игрок вошел в зону, если пул можно юзать только на стороне сервера.
 

XDeveluxe

⚡️BackEnd Developer
Команда форума
Moderator
High developer
BackEnd developer
30 Авг 2021
2,766
1,581
211
28
Т.е. у меня вот такой ивент
JavaScript:
mp.events.add('entityStreamIn', (entity) => {
    const isInvincible = entity.getVariable('isInvincible');
    entity.setInvincible(!!isInvincible);
});
Но как с помощью него узнать какой именно игрок вошел в зону, если пул можно юзать только на стороне сервера.
Пул есть с любой стороны, не только на сервере.
Конкретно этот ивент просто дает тебе информацию, что такая-то сущность (entity) появилось в зоне стрима локального игрока (клиента).
 

dreamharakiri

Новый участник
25 Дек 2021
75
1
49
Пул есть с любой стороны, не только на сервере.
Конкретно этот ивент просто дает тебе информацию, что такая-то сущность (entity) появилось в зоне стрима локального игрока (клиента).
Нашел вот это:

JavaScript:
let getNicknamesText = () => {
    let text = ``;
    mp.players.forEachInStreamRange(
        (player, id) => {
            text = text == `` ? player.name : `${text} , ${player.name}`;
        }
    );
    return text;
};

let blahBlah = getNicknamesText();
console.log(blahBlah != `` ? blahBlah : `There are no players in your streaming range.`);

Я так понимаю, это то что мне нужно? Но сразу еще вопрос, тут лучше использовать рендер или все же таймер на 5 милисекунд??
 

XDeveluxe

⚡️BackEnd Developer
Команда форума
Moderator
High developer
BackEnd developer
30 Авг 2021
2,766
1,581
211
28
Нашел вот это:

JavaScript:
let getNicknamesText = () => {
    let text = ``;
    mp.players.forEachInStreamRange(
        (player, id) => {
            text = text == `` ? player.name : `${text} , ${player.name}`;
        }
    );
    return text;
};

let blahBlah = getNicknamesText();
console.log(blahBlah != `` ? blahBlah : `There are no players in your streaming range.`);

Я так понимаю, это то что мне нужно? Но сразу еще вопрос, тут лучше использовать рендер или все же таймер на 5 милисекунд??
Ну, здесь то, что тебе нужно - только mp.players.forEachInStreamRange, который и будет делать переборку всех в пуле только зоны стрима. Внутри него тебе нужно придумать свою логику. Та, что здесь - не рисует текст над головой.
И использовать для рендера текста лучше рендер, так как он работает каждый кадр, а 5 мс это 5 мс.