• Из-за обновления 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) последний раз были обновлены:

Проблема Взаимодействие с колшейпом

hun1yy

Новый участник
2 Авг 2022
248
3
33
Всем привет, у меня взаимодействие с нпс реализовано через колшейпы (не знаю как у других), когда 2 игрока и более в одном колшейпе он начинает срабатывать через раз, а то и больше
код прикреплять не стал т.к. очень большой

P.S. работает при 2-х и более игроках колшейп только с определённой стороны
 

XDeveluxe

⚡️BackEnd Developer
Команда форума
Moderator
High developer
BackEnd developer
30 Авг 2021
2,770
1,576
211
28
Всем привет, у меня взаимодействие с нпс реализовано через колшейпы (не знаю как у других), когда 2 игрока и более в одном колшейпе он начинает срабатывать через раз, а то и больше
код прикреплять не стал т.к. очень большой

P.S. работает при 2-х и более игроках колшейп только с определённой стороны
Ну, варианта тут 2:
1. У тебя очень маленький радиус колшейпа, из-за чего просто помещаются в него всего 1-2 игрока.
2. Ты так написал код взаимодействия с колшейпом. Без кода тут тебе ничем не помогут.
 

hun1yy

Новый участник
2 Авг 2022
248
3
33
Всем привет, у меня взаимодействие с нпс реализовано через колшейпы (не знаю как у других), когда 2 игрока и более в одном колшейпе он начинает срабатывать через раз, а то и больше
код прикреплять не стал т.к. очень большой

Ну, варианта тут 2:
1. У тебя очень маленький радиус колшейпа, из-за чего просто помещаются в него всего 1-2 игрока.
2. Ты так написал код взаимодействия с колшейпом. Без кода тут тебе ничем не помогут.
если без кода никуда то вот его часть
JavaScript:
mp.events.add('playerEnterColshape', async (player, colshape) => {
  await player.call('setInteract',[JSON.stringify(colshape)]);
  if(colshape.isParking && colshape.otherNumber){
    await player.setVariable('parkingNumberColshape',colshape.otherNumber);
    console.log(player.getVariable('parkingNumberColshape'));
  }
  if(colshape.isVehRent && colshape.otherNumber){
    await player.setVariable('rentNumberColshape',colshape.otherNumber);
  }
});

mp.events.add('interact',async (player,col) => {
  console.log('colshape')
  let colshape = JSON.parse(col);
  if( colshape.isRent){
    if (player.money >= 50){
      if(!player.isRent){
        playerRentStart(player,"faggio");
        player.money -= 50;
        await player.call('notify',[`Вы потратили 50 $`,3000,2]);
        mp.db.query("UPDATE `accounts` SET `money` = ? WHERE username = ?",[player.money,player.name]);
        await player.call("moneyUpD",[player.money]);
        await player.setVariable('money',player.money);
      }else{
        await player.call('notify',[`У вас уже есть арендованый транспорт`,3000,0]);
      }
    }else{
      await player.call('notify',[`У вас недостаточно денег`,3000,0]);
    }
  }
  else if(colshape.isNJob){
    await player.call('showNewJob');
    // player.outputChatBox("!{#00ab11}Скоро...");
  }
  else if(colshape.isDalnoJob){
    console.log(player.getVariable('isWork'));
      if(!player.getVariable('isWork')){
        let veh = mp.vehicles.new(mp.joaat('mule'),new mp.Vector3(-238.25372314453125, 6237.83203125, 31.449007034301758),{});
        await player.putIntoVehicle(veh,0);
        await player.setVariable('dalnoVeh',veh);
        await player.setVariable('isWork',true);
        player.jobBalance = 0;
        veh.heading = 90;
        await player.call('truck:startJob');
        // player.wayToD.routeFor(mp.players.local,69,1);
        // colshapeDalno = mp.colshapes.newSphere(3500.5029296875, 3678.830322265625, 33.159141540527344, 4);
        // colshapeDalno.isDalnoJobState1 = true;
      }else{
        // player.outputChatBox(`!{#a89700}Вы уже начали работу`);
        await player.setVariable('isWork',false);
        if(player.jobBalance){
          player.money += player.jobBalance;
          await player.call('truck:endJob');
          await player.call('moneyUpD',[player.money]);
          await player.call('notify',[`Рабочая смена окончена, вы получили ${player.jobBalance}$`,3000,2]);
          mp.db.query("UPDATE `accounts` SET `money` = ? WHERE username = ?",[player.money,player.name]);
        }
        // player.call('notify',["Вы уже начали работу",3000,0]);
      }
    }
})
 

XDeveluxe

⚡️BackEnd Developer
Команда форума
Moderator
High developer
BackEnd developer
30 Авг 2021
2,770
1,576
211
28

XDeveluxe

⚡️BackEnd Developer
Команда форума
Moderator
High developer
BackEnd developer
30 Авг 2021
2,770
1,576
211
28

XDeveluxe

⚡️BackEnd Developer
Команда форума
Moderator
High developer
BackEnd developer
30 Авг 2021
2,770
1,576
211
28

Mi-Zaft

Гений
VIP
9 Окт 2020
1,735
437
175
Создай маркер с таким же радиусом и поймешь, сколько это по ширине. Заодно сможешь понять, сколько тебе надо.
 

XDeveluxe

⚡️BackEnd Developer
Команда форума
Moderator
High developer
BackEnd developer
30 Авг 2021
2,770
1,576
211
28
это у меня нпс, вот 2 и поставил
Я понимаю, что NPC, но 2 это нужно быть почти впритык к точке. Какую-то дистанцию занимает сам NPC, вот и получается. Увеличь, попробуй и поймёшь разницу.
 

hun1yy

Новый участник
2 Авг 2022
248
3
33
Я понимаю, что NPC, но 2 это нужно быть почти впритык к точке. Какую-то дистанцию занимает сам NPC, вот и получается. Увеличь, попробуй и поймёшь разницу.
теперь с ним можно взаимодействовать через пол карты XD
 

XDeveluxe

⚡️BackEnd Developer
Команда форума
Moderator
High developer
BackEnd developer
30 Авг 2021
2,770
1,576
211
28

XDeveluxe

⚡️BackEnd Developer
Команда форума
Moderator
High developer
BackEnd developer
30 Авг 2021
2,770
1,576
211
28
ну это условно, но для нпс это слишком много
Так выставь сколько тебе надо. Откуда же мне знать какая цифра именно тебе нужна. Тебе написали выше - создай маркер на тех же координатах и выставь нужный радиус.
 

Inoi

/dev/null
Команда форума
Moderator
VIP
15 Окт 2020
3,809
1,863
208
35
2 - это очень маленький радиус. Просто увеличь его.
Мне кажется ниет
Зашёл почекал свои кулшейпы у нпс

1679317907808.png


Пошёл даже в старый проект и почекал кулшейпы которые делал там около нпс
1679317942151.png


И там и там - 2х2
Это не мало на самом деле для нпс-кулшейпа

У меня была когда-то давно похожая история с кулшейпами у автоматов в казино, они адски багались из-за того что наезжали друг на друга и слетала
1679318171195.png

похожая история из-за этого.
Я бы повыводил себе в чат какие-то интерракшен чеки или проверки этих твоих параметров ну так чисто.

Но вообще когда мельком на код из третьего поста смотришь возникает вопрос
А нахуя там столько async-await?
Я может чего-то не понимаю, но
JavaScript:
        await player.call('notify',[`Вы потратили 50 $`,3000,2]);
        mp.db.query("UPDATE `accounts` SET `money` = ? WHERE username = ?",[player.money,player.name]);
        await player.call("moneyUpD",[player.money]);
        await player.setVariable('money',player.money);
авейтить апдейты я так понимаю отображения денег в худе(видимо?) и установки вариаблов (зачем?)
но при этом не отправлять в ио процесс запрос с апдейтом в базу данных
это ну
интересный мягко скажем подход
 
Последнее редактирование:

hun1yy

Новый участник
2 Авг 2022
248
3
33
Мне кажется ниет
Зашёл почекал свои кулшейпы у нпс

Посмотреть вложение 6926

Пошёл даже в старый проект и почекал кулшейпы которые делал там около нпс
Посмотреть вложение 6927

И там и там - 2х2
Это не мало на самом деле для нпс-кулшейпа

У меня была когда-то давно похожая история с кулшейпами у автоматов в казино, они адски багались из-за того что наезжали друг на друга и слетала
Посмотреть вложение 6928
похожая история из-за этого.
Я бы повыводил себе в чат какие-то интерракшен чеки или проверки этих твоих параметров ну так чисто.

Но вообще когда мельком на код из третьего поста смотришь возникает вопрос
А нахуя там столько async-await?
Я может чего-то не понимаю, но
JavaScript:
        await player.call('notify',[`Вы потратили 50 $`,3000,2]);
        mp.db.query("UPDATE `accounts` SET `money` = ? WHERE username = ?",[player.money,player.name]);
        await player.call("moneyUpD",[player.money]);
        await player.setVariable('money',player.money);
авейтить апдейты я так понимаю отображения денег в худе(видимо?) и установки вариаблов (зачем?)
но при этом не отправлять в асинк запрос с апдейтом в базу данных
это ну
интересный мягко скажем подход
про авейты и асинки я подумал что так лучше будет работать, но нет
 

Inoi

/dev/null
Команда форума
Moderator
VIP
15 Окт 2020
3,809
1,863
208
35
я не сильно профессионал асинхронного программирования и если что заранее извиняюсь
но это выглядит как будто бы ты просто хуяришь везде асинк авейт где не попадя
а это ну не особо нужно

не вызывает ли это ошибок, когда у тебя часть кода выполняется до того, как то что было до него - успело ответить на эвейт
тогда ситуация которую ты описываешь, вполне может происходить
 

hun1yy

Новый участник
2 Авг 2022
248
3
33
я не сильно профессионал асинхронного программирования и если что заранее извиняюсь
но это выглядит как будто бы ты просто хуяришь везде асинк авейт где не попадя
а это ну не особо нужно

не вызывает ли это ошибок, когда у тебя часть кода выполняется до того, как то что было до него - успело ответить на эвейт
я пытался проблему фиксануть
 

Mi-Zaft

Гений
VIP
9 Окт 2020
1,735
437
175
я пытался проблему фиксануть
В идеале - почитать про асинки, а не просто наугад тыкать их в каждую строку))
Ты что-то пробовал из предложенных тебе вариантов?
1)Я тебе советовал создавать маркер, чтобы визуализировать радиус колшейпа.
2)Человек выше тебе посоветовал выводить в чат инфу при колшейпах.
 
Реакции: Inoi