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);
}
});