• Просьба не публиковать сообщения с предложениями продажи модов или сборок!

    Мы против использования и перепродажи слитых модов и переделок на их основе. Остальное также сложно верифицировать, поэтому в целом пока что запрещаем эту тему на сайте.

JS Копирование в буфер обмена позиции игрока/машины

Drogo

Middle Developer
Скриптер
Сообщения
91
Данный код позволяет получить точку на земле под игроком ,а если он в технике, то её положение и поворот (Heading):

1. Создаем HTML и подключаем к нему библиотеку Jquery (можете и на ванильном JS)

HTML:
<!DOCTYPE html>
<html lang="en">
    <head>
        <meta charset="UTF-8" />
        <meta http-equiv="X-UA-Compatible" content="IE=edge" />
        <meta name="viewport" content="width=device-width, initial-scale=1.0" />
    </head>
    <body>
        <script src="https://ajax.googleapis.com/ajax/libs/jquery/3.5.1/jquery.min.js"></script>
        <script src="./script.js"></script>
    </body>
</html>
2. Рядом создаем файл script.js
JavaScript:
mp.events.add('DEBUG::COPY_BUFFER', pos => {
    copyBuffer(pos);
});

function copyBuffer(pos) {
    let $tmp = $('<textarea>');
    $('body').append($tmp);
    $tmp.val(pos).select();
    document.execCommand('copy');
    $tmp.remove();
}

3. И наконец-то клиентский файл
JavaScript:
let localPlayer = mp.players.local;
let debugBrowser = mp.browsers.new('ссылка на созданный вами HTML');
mp.keys.bind(Виртуальный код выбранной клавиши, true, function () {
    let pos;
    if (!localPlayer.vehicle) {
        pos = {
            x: localPlayer.position.x,
            y: localPlayer.position.y,
            z: (z = mp.game.gameplay.getGroundZFor3dCoord(localPlayer.position.x, localPlayer.position.y, localPlayer.position.z, parseFloat(0), false)),
        };
    } else {
        pos = {
            x: localPlayer.vehicle.position.x,
            y: localPlayer.vehicle.position.y,
            z: localPlayer.vehicle.position.z,
            heading: localPlayer.vehicle.getHeading(),
        };
    }
    debugBrowser.call('DEBUG::COPY_BUFFER', JSON.stringify(pos));
    mp.gui.chat.push(`Координаты скопированы!`);
});

debugBrowser.call работает только с версии 1.1, для версии 0.3.7 вам необходимо выполнить
JavaScript:
debugBrowser.execute(`copyBuffer(${JSON.stringify(pos)})`)


Готово, теперь вы сможете получать в буфер обмена вашу позицию :)
 
Отличная идея! Так порой реально удобнее чем копировать из консоли.
 
Назад
Верх