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

mp.flow

Начинающий специалист
Автор темы
9 Май 2022
30
10
48
Привет, было нечего делать и сделал вполне удобную систему для татуировок для вашего сервера (полностью готовый файл со всем кодом внизу)

Для начала нам нужно создать и записать список доступных татуировок на сервере, я это сделал отдельным файлом
JavaScript:
const tattoosList = [
    {
        collection: "mpbiker_overlays",
        overlayMale: "MP_MP_Biker_Tat_000_M", // Это татуировка на торс персонажа, её не будет видно в футболке
        overlayFemale: "MP_MP_Biker_Tat_000_F"
    }
]

Затем, при входе на сервер, нам нужно определить массив татуировок для игрока:
JavaScript:
mp.events.add("playerReady", (player) => {
    player.tattoos = [];
});

Далее нужно создать функцию для обновления всех татуировок на персонаже:
JavaScript:
const updateTattoos = (player) => {
    // Убираем все татуировки с тела
    player.clearDecorations();

    // Получаем пол персонажа
    const characterGender = player.model == mp.joaat("mp_m_freemode_01");

    // Добавляем их всех заново по массиву
    player.tattoos.forEach((tattooIndex) => {
        const tattooData = tattoosList[tattooIndex];
        player.setDecoration(mp.joaat(tattooData.collection), mp.joaat(characterGender ? tattooData.overlayMale : tattooData.overlayFemale));
    })
};

Затем сделаем команды для добавление и удаления татуировок:
JavaScript:
mp.events.addCommand("addTattoo", (player, index) => {
    index = Number(index);

    // Проверяем есть ли эта татуировка у персонажа
    if (player.tattoos.indexOf(index) >= 0)
        return player.outputChatBox("У вас уже есть эта татуировка");

    // Добавляем татуировку в массив
    player.tattoos.push(index);

    // Вызываем функцию для обновление татуировок
    updateTattoos(player);
});

mp.events.addCommand("removeTattoo", (player, index) => {
    index = Number(index);
    const arrayIndex = player.tattoos.indexOf(index);

    // Проверяем есть ли эта татуировка у персонажа
    if (arrayIndex < 0)
        return player.outputChatBox("У вас нет этой татуировки");

    // Удаляем татуировку из массива
    player.tattoos.splice(arrayIndex, 1);

    // Вызываем функцию для обновление татуировок
    updateTattoos(player);
});

И вот наша система готова, вы можете её переделать как угодно для своего сервера

Для поиска татуировок есть таблица со всеми татуировками из гта: https://github.com/root-cause/v-tattoos
Использование команды: /addTattoo [Индекс из массива tattoosList]
Если что, весь файл на сервере

JavaScript:
const tattoosList = [
    {
        collection: "mpbiker_overlays",
        overlayMale: "MP_MP_Biker_Tat_000_M",
        overlayFemale: "MP_MP_Biker_Tat_000_F"
    }
]

mp.events.add("playerReady", (player) => {
    player.tattoos = [];
});

const updateTattoos = (player) => {
    // Убираем все татуировки с тела
    player.clearDecorations();

    // Получаем пол персонажа
    const characterGender = player.model == mp.joaat("mp_m_freemode_01");

    // Добавляем их всех заново по массиву
    player.tattoos.forEach((tattooIndex) => {
        const tattooData = tattoosList[tattooIndex];
        player.setDecoration(mp.joaat(tattooData.collection), mp.joaat(characterGender ? tattooData.overlayMale : tattooData.overlayFemale));
    });
};

mp.events.addCommand("addTattoo", (player, index) => {
    index = Number(index);

    // Проверяем есть ли эта татуировка у персонажа
    if (player.tattoos.indexOf(index) >= 0)
        return player.outputChatBox("У вас уже есть эта татуировка");

    // Добавляем татуировку в массив
    player.tattoos.push(index);

    // Вызываем функцию для обновление татуировок
    updateTattoos(player);
});



mp.events.addCommand("removeTattoo", (player, index) => {
    index = Number(index);
    const arrayIndex = player.tattoos.indexOf(index);

    // Проверяем есть ли эта татуировка у персонажа
    if (arrayIndex < 0)
        return player.outputChatBox("У вас нет этой татуировки");

    // Удаляем татуировку из массива
    player.tattoos.splice(arrayIndex, 1);

    // Вызываем функцию для обновление татуировок
    updateTattoos(player);
});
 
Последнее редактирование:

Stepan

Участник портала
12 Фев 2023
45
3
20
а если ты делаешь все на своей сборке с нуля что надо изменить чтобы все работало и можно было делать тату