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

Вопрос Как реализовать мотание персонажа мышкой?

whait

Новый участник
18 Мар 2023
61
2
45
Нужно в магазине одежды сделать мотание персонажа лкмом. Как это реализовать, есть ли уже готовое решение?
 

Jerry (ChatGPT)

AI-powered language model
VIP
helper
17 Окт 2023
2,160
223
5
Для реализации мотания персонажа лкмом в магазине одежды можно использовать скрипты управления анимациями и физикой в вашем движке. Возможно, есть готовые решения или сторонние плагины для этой задачи, которые можно найти в интернете.
 

Dmitry_V

Гений
23 Июн 2023
1,939
316
131
27
Если разговор идёт про GTA5, то запихнуть в FrontEnd полностью кастомизированную модельку персонажа, чтобы её ещё можно было крутить - я такого вообще в RAGEMP не видел. Если же речь идёт про другую игру, то желательно это упомянуть, хотя форум про GTA5 и конкретно про RAGEMP мультиплеер.
 

enotit

Гений
High developer
BackEnd developer
13 Ноя 2020
1,488
470
187
21
Ну вариантов два:
  • ловишь события "зажатия лкм" и "движение мышки в определенной области". У получается у тебя есть тумблер "лкм зажат" и "лкм отжат", а также движение "mousemove" внутри контейнера
  • на клиенте ловишь клик, ловишь в рендере положение мышки. И соответственно, что выше. Берешь локального игрока и вертишь (по-моему не этот метод, но всё-таки).
 
Реакции: Dmitry_V

whait

Новый участник
18 Мар 2023
61
2
45
Ну вариантов два:
  • ловишь события "зажатия лкм" и "движение мышки в определенной области". У получается у тебя есть тумблер "лкм зажат" и "лкм отжат", а также движение "mousemove" внутри контейнера
  • на клиенте ловишь клик, ловишь в рендере положение мышки. И соответственно, что выше. Берешь локального игрока и вертишь (по-моему не этот метод, но всё-таки).
Реализовать не получается, есть ли пример кода?
 

enotit

Гений
High developer
BackEnd developer
13 Ноя 2020
1,488
470
187
21
Реализовать не получается, есть ли пример кода?
Реализовать получится, в столе заказов или я накидал всё. Удочка, как говорится, есть, лови рыбу сам.
Примеры можешь в слитых модах поискать.
 
Реакции: Harland David Sanders

Harland David Sanders

🍔 ChefBurger
Команда форума
High developer
10 Сен 2020
3,582
2,712
219
Реализовать не получается, есть ли пример кода?
А как именно не получается? Покажи код который ты попробовал сделать на основе предоставленного тебе алгоритма ;)
 

Harland David Sanders

🍔 ChefBurger
Команда форума
High developer
10 Сен 2020
3,582
2,712
219
JavaScript:
mp.events.add('render', () => {
    if (customCamera !== null && customCamera.isActive()) {
        if (!mp.gui.cursor.visible) return;
        const cursorPos = mp.gui.cursor.position;
        if (!cursorPos) return;
        const player = mp.players.local;
        const rotation = player.getRotation(2);
        const newRotation = rotation.z + (cursorPos[0] - 0.5) * 2;
       
        player.setRotation(rotation.x, rotation.y, newRotation, 2, true);
    }
});

Не доходит как организовать отслеживание лкма чётко на теле персонажа и перемещения влево вправо. Код который я предоставил выше тупо как крутилка..
Что такое - customCamera? Полный код предоставь.
 

whait

Новый участник
18 Мар 2023
61
2
45
Что такое - customCamera? Полный код предоставь.
JavaScript:
let customCamera = null;
function setCustomCamera(position, rotation, distance) {
    if (customCamera) {
        customCamera.setActive(false);
        customCamera.destroy();
    }
    const offsetPosition = new mp.Vector3(
        position.x,
        position.y - distance,
        position.z
    );
    customCamera = mp.cameras.new('default', offsetPosition, new mp.Vector3(rotation.x, rotation.y, rotation.z + 180), 40);
    customCamera.setActive(true);
    mp.game.cam.renderScriptCams(true, false, 0, true, false);
}
function setFixedCameraWithRotationAndDistance() {
    const cameraPosition = new mp.Vector3(75.0, -1395.0, 30.0);
    const cameraRotation = new mp.Vector3(0.0, 0.0, 0.0);
    const cameraDistance = -1.0;
    setCustomCamera(cameraPosition, cameraRotation, cameraDistance);
}
mp.events.add('render', () => {
    if (customCamera !== null && customCamera.isActive()) {
        if (!mp.gui.cursor.visible) return;
        const cursorPos = mp.gui.cursor.position;
        if (!cursorPos) return;
        const player = mp.players.local;
        const rotation = player.getRotation(2);
        const newRotation = rotation.z + (cursorPos[0] - 0.5) * 2;
        
        player.setRotation(rotation.x, rotation.y, newRotation, 2, true);
    }
});
 

enotit

Гений
High developer
BackEnd developer
13 Ноя 2020
1,488
470
187
21
JavaScript:
let customCamera = null;
function setCustomCamera(position, rotation, distance) {
    if (customCamera) {
        customCamera.setActive(false);
        customCamera.destroy();
    }
    const offsetPosition = new mp.Vector3(
        position.x,
        position.y - distance,
        position.z
    );
    customCamera = mp.cameras.new('default', offsetPosition, new mp.Vector3(rotation.x, rotation.y, rotation.z + 180), 40);
    customCamera.setActive(true);
    mp.game.cam.renderScriptCams(true, false, 0, true, false);
}
function setFixedCameraWithRotationAndDistance() {
    const cameraPosition = new mp.Vector3(75.0, -1395.0, 30.0);
    const cameraRotation = new mp.Vector3(0.0, 0.0, 0.0);
    const cameraDistance = -1.0;
    setCustomCamera(cameraPosition, cameraRotation, cameraDistance);
}
mp.events.add('render', () => {
    if (customCamera !== null && customCamera.isActive()) {
        if (!mp.gui.cursor.visible) return;
        const cursorPos = mp.gui.cursor.position;
        if (!cursorPos) return;
        const player = mp.players.local;
        const rotation = player.getRotation(2);
        const newRotation = rotation.z + (cursorPos[0] - 0.5) * 2;
       
        player.setRotation(rotation.x, rotation.y, newRotation, 2, true);
    }
});
Выглядит как жизнеспособный, а в какой момент не работает? Дебажил?


а это тут зачем?