Добро пожаловать на RAGE MULTIPLAYER

Собирайтесь с другими игроками, создавайте собственный сервер, формируйте сообщество или придумывайте новый игровой режим. В RAGE Multiplayer вас ждут бесконечные возможности и непревзойденный контроль. Пусть ваше воображение станет вашим единственным пределом.

Александр Фалькон

  • Автор темы Автор темы goffirek
  • Дата начала Дата начала
Статус
Закрыто для дальнейших ответов.

goffirek

Карантин 💉
👨 Участник портала
UID
2 763
Активность
Офлайн
Регистрация
13.05.2025
Сообщения
9
Розыгрыши
0
Реакции
1
Баллы
1
💰 RC
2
Автор темы
Расскажу кратко, (просто решил поделится.)

покупал я как то давно сборку гошки у фалькона, проебал я ее.

попросил сборку на что он сказал мне что у него ее теперь нету, я спросил есть ли фикс на грузчика мне больше не чего не нужно.
на что я услышал след что скинь мне GUI я пофикшу и пришлю, а сегодня уже пишет что нужно платить.
мол время потратил, ну написал бы тогда сразу, что нужно будет заплатить, а не обещать горы. 3.PNG4.PNG
 
Расскажу кратко, (просто решил поделится.)

покупал я как то давно сборку гошки у фалькона, проебал я ее.

попросил сборку на что он сказал мне что у него ее теперь нету, я спросил есть ли фикс на грузчика мне больше не чего не нужно.
на что я услышал след что скинь мне GUI я пофикшу и пришлю, а сегодня уже пишет что нужно платить.
мол время потратил, ну написал бы тогда сразу, что нужно будет заплатить, а не обещать горы. Посмотреть вложение 1089Посмотреть вложение 1090
Так а где скам?
 
JavaScript:
let unloadPoints;
let currentUnloadPoint;
let objToTrack;
let objToTrackStartZPosition;
let timer = null; // Инициализация таймера
let arrowMarker;
let vehMarker;
let unloadMarker;
let workBlip = null;

function calculateDistance(v1, v2) {
    let dx = v1.x - v2.x;
    let dy = v1.y - v2.y;
    let dz = v1.z - v2.z;

    return Math.sqrt(dx * dx + dy * dy + dz * dz);
}

function randomIntFromInterval(min, max) { // min and max included
    return Math.floor(Math.random() * (max - min + 1) + min);
}

function placeOnGround(obj) {
    obj.setActivatePhysicsAsSoonAsItIsUnfrozen(true);
    obj.placeOnGroundProperly();
    obj.setDynamic(true);
    obj.freezePosition(false);
}

mp.events.add('dockLoader:init', (cratesRemoteIds, points) => {
    cratesRemoteIds = JSON.parse(cratesRemoteIds);
    unloadPoints = JSON.parse(points);
    cratesRemoteIds.forEach(e => {
        let obj = mp.objects.atRemoteId(e);
        if (!obj || obj.handle === 0) return;

        for (let index = 0; !obj.doesExist() && index < 250; index++) {
            mp.game.wait(0);
        }
        placeOnGround(obj);
    });
});

mp.events.add('dockLoader:playerUnloaded', () => {
    if (objToTrack == undefined || objToTrack == null || currentUnloadPoint == null) return;
    if (calculateDistance(objToTrack.getCoords(false), currentUnloadPoint) > 5) return;
    objToTrack = null;
    if (unloadMarker != null) {
        unloadMarker.destroy();
        unloadMarker = null;
    }
    currentUnloadPoint = null;
    if (timer !== null) {
        clearInterval(timer);
        timer = null;
    }
    mp.events.callRemote("playerUnloadedDockCrate");
});

mp.events.add("dockLoader:destroyMarker", () => {
    global.sendTip('tip_docker_up');
    if (vehMarker != null) {
        vehMarker.destroy();
        vehMarker = null;
    }
});

mp.events.add('dockLoader:vehicleLoaded', (position) => {
    position = JSON.parse(position);
    if (vehMarker != null) {
        vehMarker.destroy();
        vehMarker = null;
    }
    vehMarker = mp.markers.new(20, new mp.Vector3(position.x, position.y, position.z + 4), 2, {
        rotation: new mp.Vector3(0, 180, 0),
        color: [182, 211, 0, 200]
    });
});

mp.events.add('dockLoader:CrateObjectsRequested', (id) => {
    let obj = mp.objects.atRemoteId(id);

    objToTrack = obj;
    objToTrackStartZPosition = obj.position.z;

    obj.notifyStreaming = true;
    obj.setDynamic(true);
    obj.freezePosition(false);
    if (unloadMarker != null) {
        unloadMarker.destroy();
        unloadMarker = null;
    }
    arrowMarker = mp.markers.new(20, new mp.Vector3(obj.position.x, obj.position.y, obj.position.z + 2.5), 2, {
        bobUpAndDown: true,
        rotation: new mp.Vector3(0, 180, 0),
        color: [182, 211, 0, 200]
    });
    if (timer !== null) {
        clearInterval(timer);
    }
    timer = setInterval(checkIfCrateLifted, 500);
    createWorkBlip(obj.position);
});

mp.events.add('dockLoader:stopedWorking', () => {
    if (timer !== null) {
        clearInterval(timer);
        timer = null;
    }
    currentUnloadPoint = null;
    objToTrack = null;
    if (unloadMarker !== null) {
        unloadMarker.destroy();
        unloadMarker = null;
    }
    if (arrowMarker !== null) {
        arrowMarker.destroy();
        arrowMarker = null;
    }
    if (vehMarker != null) {
        vehMarker.destroy();
        vehMarker = null;
    }
    if (workBlip != null && mp.blips.exists(workBlip)) {
        workBlip.destroy();
    }
});

function checkIfCrateLifted() {
    if (!objToTrack || objToTrack.handle == 0) return;
    objToTrack.freezePosition(false);
    if (Math.abs(objToTrack.getCoords(false).z - objToTrackStartZPosition) > 0.2) {
        var randomIndex = randomIntFromInterval(0, unloadPoints.length - 1);
        currentUnloadPoint = unloadPoints[randomIndex];
        if (timer !== null) {
            clearInterval(timer);
            timer = null;
        }
        createWorkBlip(currentUnloadPoint);
        mp.events.call('notify', 2, 9, "DockLoader_6", 3000);

        if (arrowMarker != null) {
            arrowMarker.destroy();
            arrowMarker = null;
        }

        unloadMarker = mp.markers.new(0, currentUnloadPoint, 1, {
            rotation: new mp.Vector3(0, 0, 0),
            color: [182, 211, 0, 200],
        });
    }
}

function createWorkBlip(position) {
    if (workBlip != null && mp.blips.exists(workBlip)) {
        workBlip.destroy();
    }
    workBlip = mp.blips.new(478, position, {
        name: "Dock Unload Point",
        scale: 1.3,
        color: 3,
        alpha: 255,
        shortRange: false,
        rotation: 0,
        dimension: 0,
    });
    mp.game.invoke('0x4F7D8A9BFB0B43E9', workBlip.handle, true);
}
 
Замените файл полностью по данному пути:
gtago-full\gta go\isxondiki\Client\src\client\docks

1.Инициализация timer как null в начале кода.
2.Проверка на null перед очисткой интервала с помощью clearInterval.
3.Сброс timer в null после очистки интервала.
4.Проверка существования объектов перед их использованием.

Фиксил не я автор : @Sheriff
 
Статус
Закрыто для дальнейших ответов.
Назад
Верх