Добро пожаловать на RAGEM.RU

Все для RageMP GTA 5

Баг с трактором Onyx

Svyat

Только зашёл
Участник портала
Регистрация
13.11.2024
Сообщения
3
Розыгрыши
0
Репутация
0
Реакции
0
Баллы
1
RC
80

Баг с трактором в сборке Onyx.

Если подбежать к трактору не арендуя ферму, зажать кнопку F то можно в него сесть и уехать.

Пробовал глушить анимацию в коде перед очисткой но ничего не вышло.
JavaScript:
if (!this.currentActivity || vehicleFarmActivityId != this.currentActivity.id) {
    user.notify('Вы не работаете на ферме которой принадлежит этот транспорт', 'warning');
    mp.players.local.stopAnimation();
    mp.players.local.clearTasksImmediately(); // очистка задач
}

Может кто подскажет как исправить этот баг.

JavaScript:
import { CustomEvent } from '../custom.event'
import { IAnimalWorkData, IFarmWorkData, IFieldWorkData, IGreenhouseWorkData } from '../../../shared/farm/dtos'
import { user } from '../user'
import { FarmActivityBase } from './IFarmActivity'
import { ActivityType } from '../../../shared/farm/config'
import { FieldFarmActivity } from './field'
import { GreenhouseFarmActivity } from './greenhouse'
import { AnimalFarmActivity } from './animal'
export class FarmController {
    private currentActivity: FarmActivityBase
   
    public init(): void {
        CustomEvent.registerServer('farm:work:start', (data: IFieldWorkData | IGreenhouseWorkData | IAnimalWorkData | IFarmWorkData) => {
            this.currentActivity?.destroyAllWorkColshapes()
          
            switch (data.type) {
                case ActivityType.Field:
                    this.currentActivity = new FieldFarmActivity(data as IFieldWorkData)
                    break;
                case ActivityType.Greenhouse:
                    this.currentActivity = new GreenhouseFarmActivity(data as IGreenhouseWorkData)
                    break;
                case ActivityType.Animal:
                    this.currentActivity = new AnimalFarmActivity(data as IAnimalWorkData)
                    break;
            }
        })
        CustomEvent.registerServer('farm:point:processed', (pointIdx: number) => {
            this.currentActivity.onPointProcessed(pointIdx)
        })
       
        CustomEvent.registerServer('farm:work:stop', () => {
            this.currentActivity.destroyAllWorkColshapes()
            this.currentActivity = null
            CustomEvent.triggerCef('farmHud:hide')
        })
        mp.events.add('playerStartedEnterVehicle', (handle: number) => {
            const vehicle = mp.vehicles.atHandle(handle)
            const vehicleFarmActivityId = vehicle.getVariable('farm')
            if (!vehicleFarmActivityId) return
            if (!this.currentActivity || vehicleFarmActivityId != this.currentActivity.id) {
                user.notify('Вы не работаете на ферме которой принадлежит этот транспорт', 'warning')
                mp.players.local.clearTasksImmediately()
            }
        })
    }
}
new FarmController().init()
 
Для исправления данного бага с трактором в сборке Onyx, вам нужно обработать событие входа игрока в транспорт (playerStartedEnterVehicle) таким образом, чтобы игрок не мог садиться в трактор, если он не арендовал ферму, к которой относится данный транспорт.

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

JavaScript:
mp.events.add('playerStartedEnterVehicle', (player, vehicle, seat) => {

    const vehicleFarmActivityId = vehicle.getVariable('farm');

    if (!vehicleFarmActivityId) return; // Транспорт не принадлежит никакой ферме



    if (!user.isRentingFarm()) { // Проверка на аренду фермы игроком

        user.notify('Вы не арендуете ферму, которой принадлежит этот транспорт', 'warning');

        mp.players.local.taskLeaveVehicle(vehicle.handle, 0); // Игрок покидает транспорт

    }



    if (!this.currentActivity || vehicleFarmActivityId !== this.currentActivity.id) {

        user.notify('Вы не работаете на ферме, которой принадлежит этот транспорт', 'warning');

        mp.players.local.taskLeaveVehicle(vehicle.handle, 0); // Игрок покидает транспорт

    }

});
Таким образом, при попытке игрока сесть в трактор, если он не арендует ферму или не работает на соответствующей ферме, то игрок будет автоматически выходить из транспорта. Не забывайте также убедиться, что у вас корректно определена функция `user.isRentingFarm()` для проверки на аренду фермы.

Надеюсь, это поможет вам исправить данную проблему с багом в сборке Onyx. Если у вас возникнут дополнительные вопросы, не стесняйтесь задавать.
 
Если баг ещё не пофиксил то могу помочь за небольшую оплату.
 

Все для RAGE:MP

Все для RAGE:MP. Портал о мультиплеере. Подумывали об том «как создать гта 5 сервер?» или «скачать готовый сервер rage mp?» на нашем сайте вы найдете очень много полезных ресурсов для RAGE:MP: готовые сервера, скрипты, моды, карты, шаблоны сайтов, мануалы и уроки, помощь в разработке, услуги скриптеров и других специалистов в сфере RAGE Multiplayer.

RAGE Multiplayer

Объединитесь с другими игроками, создайте свой сервер, сообщество или новый игровой режим. В RAGE Multiplayer вас ждут безграничные возможности и беспрецедентный контроль. Пусть ваше воображение будет единственным горизонтом.
Официальный сайт мультиплеера - rage.mp.
Сайт входит в группу проектов GTA V MP
Верх