• Из-за обновления GTA 5 (был добавлен новый патч) может временно не работать вход в RAGE Multiplayer.

    Ошибка: Ваша версия Grand Theft Auto V не поддерживается RAGE Multiplayer.
    ERROR: Your game version is not supported by RAGE Multiplayer.

    Данная ошибка говорит о том, что GTA V обновилась до новой версии (GTA Online тоже). Вам необходимо обновить саму игру в главном меню вашего приложения (Steam / Epic Games / Rockstar Games).
    Если после этого RAGE:MP все равно не работает - вам нужно дождаться выхода патча для самого мультиплеера (обычно это занимает от нескольких часов до нескольких дней).

    Новости и апдейты Rockstar Games - https://www.rockstargames.com/newswire/
    Статус всех служб для Rockstar Games Launcher и поддерживаемых игр: https://support.rockstargames.com/ru/servicestatus


    Grand Theft Auto 5 (+ GTA Online) последний раз были обновлены:

Вопрос Vehicle Spawn (heading)

TTox421

Участник портала
23 Май 2021
65
19
65
Подскажите почему когда спавнишь машину ее разворот определяется не правильно.

Например если воспользоваться примером на rage

Код:
mp.events.addCommand("spawnVehicle", (player, vehId) => {
  const vehicle = mp.vehicles.at(vehId);
  if (vehicle) {
    vehicle.spawn(player.position, player.heading);
  }
});

То машина спавнится вот так




А вот например мой код

Код:
mp.events.addCommand('spawnveh', (player) => {
    sheriffVehicle[0].spawn(new mp.Vector3(-461.884521484375, 6009.5087890625, 30.962833404541016), 86.9545669555664);
})

let sheriffVehicle = [];

sheriffVehicle[0] = mp.vehicles.new(mp.joaat("sheriff2"), new mp.Vector3(-461.884521484375, 6009.5087890625, 30.962833404541016), {
    numberPlate: "sheriff",
    heading: 86.9545669555664,
    locked: false,
    engine: true,
    dimension: 0,
    alpha: 259
})

И при таком раскладе машина спавнится вот так
до команды - https://ibb.co/k1Fnvfw
после команды - https://ibb.co/BsjMtY3



Так же поэкспериментировал и попробовал затестить и выдать им числа близкие к 0, потому что на 0 они спавнятся одинакого.

Код:
mp.events.addCommand('spawnveh', (player) => {
    sheriffVehicle[0].spawn(new mp.Vector3(-461.884521484375, 6009.5087890625, 30.962833404541016), 1);
})

let sheriffVehicle = [];

sheriffVehicle[0] = mp.vehicles.new(mp.joaat("sheriff2"), new mp.Vector3(-461.884521484375, 6009.5087890625, 30.962833404541016), {
    numberPlate: "sheriff",
    heading: 1,
    locked: false,
    engine: true,
    dimension: 0,
    alpha: 259
})

до команды - https://ibb.co/tQJptNY
после команды - https://ibb.co/8NW44c3
 
Последнее редактирование:

TTox421

Участник портала
23 Май 2021
65
19
65
Попробовал вариант первый который в Rage документации.

Поворачивался прописывал команду и заметил что иногда совпадает. Начал выводить при каких результатах совпадает.

-0.005313886795192957
13.04665756225586
6.262845993041992

При 1.6276203393936157 уже все, причем дернешься чучуть и все машина косит. При 3.7704827785491943 тоже не в ту сторону поворачивает. При 13.934746742248535 не правильно, за то на 5.98209810256958 повернулся как надо, но 4 уже все...
Кароче я пытался поймать логику, но не понимаю нихуя...
 

koltr

Гуру
BackEnd developer
14 Сен 2020
157
108
121
Написал в слепую, вроде должно работать

JavaScript:
class Fraction {
    constructor(name) {
        this.name = name;
        this.vehicles = [];
    }
}

class FractionVehicle {

  constructor(model, position, heading, fraction) {
    this.model = model;
    this.pos = position;
    this.rot = heading;
    this.frac = fraction:   
    this.spawn();
    this.frac.vehicles.push(this.entity);
  },

  spawn: function() {
    this.entity = mp.vehicles.new(mp.joaat(this.model), this.position, {
        numberPlate: "sheriff",
        heading: this.heading,
        locked: false,
        engine: true,
        dimension: 0,
        alpha: 259
    })
  }

  respawn() {
    this.entity.destroy();
    this.spawn();
  }
}

var sheriff = new Fraction("Шерифы");
new FractionVehicle("sheriff2", new mp.Vector3(-461.884, 6009.5, 30.96), 86.95, sheriff );

mp.events.addCommand('spawnveh', (player) => {
    sheriff.vehicles[0].respawn();
})
 

TTox421

Участник портала
23 Май 2021
65
19
65
Написал в слепую, вроде должно работать

JavaScript:
class Fraction {
    constructor(name) {
        this.name = name;
        this.vehicles = [];
    }
}

class FractionVehicle {

  constructor(model, position, heading, fraction) {
    this.model = model;
    this.pos = position;
    this.rot = heading;
    this.frac = fraction:  
    this.spawn();
    this.frac.vehicles.push(this.entity);
  },

  spawn: function() {
    this.entity = mp.vehicles.new(mp.joaat(this.model), this.position, {
        numberPlate: "sheriff",
        heading: this.heading,
        locked: false,
        engine: true,
        dimension: 0,
        alpha: 259
    })
  }

  respawn() {
    this.entity.destroy();
    this.spawn();
  }
}

var sheriff = new Fraction("Шерифы");
new FractionVehicle("sheriff2", new mp.Vector3(-461.884, 6009.5, 30.96), 86.95, sheriff );

mp.events.addCommand('spawnveh', (player) => {
    sheriff.vehicles[0].respawn();
})
как я понял суть в том, что вместо спавна мы удаляем машины и создаем их заного, а не спавним, верно?
 

Similar threads