Если разговор идёт про GTA5, то запихнуть в FrontEnd полностью кастомизированную модельку персонажа, чтобы её ещё можно было крутить - я такого вообще в RAGEMP не видел. Если же речь идёт про другую игру, то желательно это упомянуть, хотя форум про GTA5 и конкретно про RAGEMP мультиплеер.
Ну вариантов два:
Реализовать не получается, есть ли пример кода?Ну вариантов два:
- ловишь события "зажатия лкм" и "движение мышки в определенной области". У получается у тебя есть тумблер "лкм зажат" и "лкм отжат", а также движение "mousemove" внутри контейнера
- на клиенте ловишь клик, ловишь в рендере положение мышки. И соответственно, что выше. Берешь локального игрока и вертишь (по-моему не этот метод, но всё-таки).
Реализовать получится, в столе заказов или я накидал всё. Удочка, как говорится, есть, лови рыбу сам.Реализовать не получается, есть ли пример кода?
А как именно не получается? Покажи код который ты попробовал сделать на основе предоставленного тебе алгоритмаРеализовать не получается, есть ли пример кода?
Что такое - customCamera? Полный код предоставь.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? Полный код предоставь.
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);
}
});
Выглядит как жизнеспособный, а в какой момент не работает? Дебажил?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); } });
а это тут зачем?