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

Вопрос Изменение персонажа на стороне сервера при входе

ilhmjv

Новый участник
18 Июл 2021
75
2
45
Всем привет. Вопрос, каким образом можно изменить пользователю внешность уже после того как он залогинился?
Данные что приходят у меня из БД:
JavaScript:
{
  hair: { style: 43, color: 61 },
  face: {
    mother: 12,
    father: 21,
    resemblance: 0,
    data: [
      -10, -10, -10,
      1,   1,   null,
      0
    ]
  },
  clothes: { top: 4, top2: 4, pants: 4, shoes: 10 },
  gender: 'male',
  brows: 12,
  beard: 10,
  skinColor: 46,
  eyeColor: 6
}
Нашёл функцию setCustomization:
пробовал так:

JavaScript:
player.setCustomization({
    gender: 1, // 0 для мужчин, 1 для женщин
    headBlend: [10, 5, 15], // настройки лица [морфология, костяная структура, микро-детали]
    hair: { style: 2, color: 4 }, // настройки волос [стиль, цвет]
    eyeColor: 2, // цвет глаз
    eyebrows: 3, // настройки бровей
    eyebrowsColor: 7, // цвет бровей
    beard: { style: 6, color: 8 }, // настройки бороды [стиль, цвет]
    torso: 4, // настройки торса
    torsoColor: 1, // цвет торса
    legs: 2, // настройки ног
    legsColor: 3, // цвет ног
    foot: 5, // настройки обуви
    footColor: 2 // цвет обуви
});
И так:

JavaScript:
player.setCustomization(
    1, // gender: 0 для мужчин, 1 для женщин
    [10, 5, 15], // headBlend: настройки лица [морфология, костяная структура, микро-детали]
    { style: 2, color: 4 }, // hair: настройки волос [стиль, цвет]
    2, // eyeColor: цвет глаз
    3, // eyebrows: настройки бровей
    7, // eyebrowsColor: цвет бровей
    { style: 6, color: 8 }, // beard: настройки бороды [стиль, цвет]
    4, // torso: настройки торса
    1, // torsoColor: цвет торса
    2, // legs: настройки ног
    3, // legsColor: цвет ног
    5, // foot: настройки обуви
    2 // footColor: цвет обуви
);
Результат одинаковый:
лысый чел и Error: argument count does not match function definition(да, знаю что проблема в "количестве" аргументов. но хоть бы хны, хоть так поставь хоть так результат один и тот же)
Может кто знает более крутой способ?(хотя если бы эта функция работала это было бы кайф, так как она очень удобная, но судя по всему не вариант...)
 

koltr

Гуру
BackEnd developer
14 Сен 2020
157
108
121
Для этого тебе нужно через entity.setVariable хранить информацию о кастомизации персонажа. Например player.setVariable("player.customization", JSON.stringify({ top: 0, pants: 5 })); Дальше тебе нужно на стороне клиента уже принимать эти данные. Сделать это можно через вызов эвента "entityStreamIn" и в дабавок для синхронизации сразу в кругу стрима метод mp.events.addHandlerData, вроде так. В них ты получаешь данные через player.getVariable(...) И обрабатываешь как тебе нужно.
 

ilhmjv

Новый участник
18 Июл 2021
75
2
45
Для этого тебе нужно через entity.setVariable хранить информацию о кастомизации персонажа. Например player.setVariable("player.customization", JSON.stringify({ top: 0, pants: 5 })); Дальше тебе нужно на стороне клиента уже принимать эти данные. Сделать это можно через вызов эвента "entityStreamIn" и в дабавок для синхронизации сразу в кругу стрима метод mp.events.addHandlerData, вроде так. В них ты получаешь данные через player.getVariable(...) И обрабатываешь как тебе нужно.
то есть я создаю переменную, обрабатываю событие на клиенте entitySteamIn и addHandlerData, получаю эту переменную с помощью getVariable, "выдаю" внешность игроку на клиенте и это все синхронизируется с другими пользователями?
 

koltr

Гуру
BackEnd developer
14 Сен 2020
157
108
121
Верно, понял все правильно. Так создается базовая синхронизация
 

koltr

Гуру
BackEnd developer
14 Сен 2020
157
108
121
Да ты можешь изменить и модельку персонажа. Условно все игроки вокруг тебя это простые Ped(-ы) которые синхронизируются при помощи задач (Task).
 
Реакции: ilhmjv

Mr.Scalise

Специалист
7 Окт 2021
447
88
90
А что, на серверке на ноде нет установки внешности? У меня серверка на c# и там просто устанавливаю внешность