Вопросы

Привет всем,

 

Столкнулись с такой проблемой... После перехода на Open Multiplayer появилась проблема с машинами.

 

Пример:

Просто играя без всяких причин начинаеться нон-стоп респавн машин именно в одной части карты (добавлю скиншот). Из-за того, что там происходит такая „дискотека“ машин, то рандомно может снести любую машину в Сан-Фиерро, в которой нет водителя. 

 

Мы уже всё перепробовали, но причину найти не можем... Повторюсь, проблема появилась только после перехода на Open Multiplayer. В моде 190 тыс. строчек, найти в чём проблема очень сложно... Может есть какие-либо советы на что надо обратиться внимание? Допустим в 0.3 версии можно было манимипулировать машиной перед её смертью с помощью RakNet, но OMP больше не поддерживает Pawn.RakNet плагин.

 

Я пытался добавить принт на каждый SetVehicleToRespawn, но увы срабатывает принт только на OnVehicleDeath...

sa-mp-089.png

sa-mp-088.png

Поделиться сообщением


Ссылка на сообщение

17 ответов на этот вопрос

  • 0
Web
Что-то знаю, чего то - не знаю

Изучите вопрос связанный с изменением функций и коллбэков в OpenMP связанных непосредственно с транспортом.

Поделиться сообщением


Ссылка на сообщение
  • 0

Может можно подробнее об этом? Я пытался найти какой-то коллбэк, но ничего не получается сделать, есть функция IsVehicleDead, но не знаю или она может продетвратить респавн, так как машина уже бывает Dead...

Поделиться сообщением


Ссылка на сообщение
  • 0
Web
Что-то знаю, чего то - не знаю

Версия OpenMP последняя? Судя по логу обновлений и изменений есть функции которые помечены устаревшими:

https://www.open.mp/ru/docs/changelog

Мой взгляд зацепили:
 

GetVehiclePoolSize

GetVehicleTower

ChangeVehicleColor 

 

Я думаю проблема именно в :

https://www.open.mp/docs/scripting/functions/GetVehiclePoolSize

И том, что. Цитата с сайта OpenMP переведенная на русский:

Функция получает самый высокий идентификатор транспортного средства, который в настоящее время используется на сервере. Обратите внимание, что в SA:MP эта функция не работает и будет возвращать 0, даже если нет транспортных средств. fixes.inc и open.mp исправляют это, чтобы возвращать -1, но также отказываются от этой функции в пользу MAX_VEHICLES или foreach.

Отредактировано пользователем Web

Поделиться сообщением


Ссылка на сообщение
  • 0

При переходе на ОМП мы уже удалили все старые функции, нигде в нашем коде нет: GetVehiclePoolSize, GetVehicleTower или ChangeVehicleColor. Используем только foreach (new v : Vehicle) от YSI

 

 

Поделиться сообщением


Ссылка на сообщение
  • 0
Web
Что-то знаю, чего то - не знаю

Возможно, дело как раз в этом. Проверьте. Так же я бы отключил респавн транспорта спустя время в функциях создания транспорта. Если он там указан, конечно. К примеру таких как:

AddStaticVehicleEx

CreateVehicle

Так же интересует есть ли на сервере автоматический респавн транспорта по таймеру?

Отредактировано пользователем Web

Поделиться сообщением


Ссылка на сообщение
  • 0

Да, на сервере есть автоматический респавн транспорта, который находиться в продаже. По логам когда он респавниться ничего плохого не происходит, транспорт весь создаётся с помощью CreateVehicle.

 

Так а если foreach не подходит, что в этом случае использовать? 

Поделиться сообщением


Ссылка на сообщение
  • 0
Web
Что-то знаю, чего то - не знаю

Для начала я бы использовал стандартное:

for(new i = 0; i < MAX_PLAYERS; i++)

Что бы убедиться, что дело не в цикле. Ну и покажите, пожалуйста, код который отвечает за респавн транспорта.

Отредактировано пользователем Web

Поделиться сообщением


Ссылка на сообщение
  • 0

Проблема точно будет не в цикле, т.к. у нас до этого всегда стоял for(new i = 0; i < MAX_PLAYERS; i++) и проблема была та же самая, думал foreach поможет, но только убедился что проблема совершенно не в этом.

 

Вот сообственно код, который срабатывает каждые 30 минут.

foreach (new i : Vehicle)
{
    if(tInfo[i][Turgaus_Car]) // Проверяет или машина принадлежит покупаемым 
    {
        SetVehicleToRespawn(i);
    }
}

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

 

Иногда это начиналось при подключении нового игрока, иногда при выходе игрока из сервера. В SA-MP версии сервера у меня стояла защита/проверка перед смертью машины находиться ли она в воде с помощью RakNet. Как только пропала проверка перед смертью находится ли машина в воде - начались эти неясные респавны... И как я понимаю место, которое я указал проблемным как раз и находится довольно низко по координате Z и рядом с водой

 

Поделиться сообщением


Ссылка на сообщение
  • 0
Web
Что-то знаю, чего то - не знаю

Что было/осталось в OnVehicleDeath и OnPlayerDeath касаемо транспорта?

Поделиться сообщением


Ссылка на сообщение
  • 0

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

onvehicledeath.txt

Поделиться сообщением


Ссылка на сообщение
  • 0
Web
Что-то знаю, чего то - не знаю

@extN в обычном сампе без ракнета точно так же происходит респавн или нормально все? Так же по какому принципу работает страховка на проекте?

 

 

Отредактировано пользователем Web

Поделиться сообщением


Ссылка на сообщение
  • 0

На обычном сампе и без ракнета всё было хорошо по последним тэстам. Страховка просто навсего уменьшает цену починки авто после того как машина взорвалась

Поделиться сообщением


Ссылка на сообщение
  • 0
Web
Что-то знаю, чего то - не знаю
  В 10/23/2024 в 22:53, extN сказал:

На обычном сампе и без ракнета всё было хорошо по последним тэстам. Страховка просто навсего уменьшает цену починки авто после того как машина взорвалась

Читать далее...  

 

В функциях которые создают транспортные средства указан аргумент отвечающий за респавн?

Поделиться сообщением


Ссылка на сообщение
  • 0
  В 10/24/2024 в 08:16, Web сказал:

 

В функциях которые создают транспортные средства указан аргумент отвечающий за респавн?

Читать далее...  

 

Да, на похти всех стоит -1 (т.е. никогда не респавнить), есть несколько машин где стоит 300 секунд. 

Поделиться сообщением


Ссылка на сообщение
  • 0
Web
Что-то знаю, чего то - не знаю

Ну у меня больше нет догадок. Не имея доступа к полному коду игрового режима и возможности отладки. Попробуйте обратиться с проблемой на официальный форум Open MP или их дискорд.

Поделиться сообщением


Ссылка на сообщение
Гость
Эта тема закрыта для публикации ответов.
  • Последние посетители   0 пользователей онлайн

    Ни одного зарегистрированного пользователя не просматривает данную страницу

  • Похожий контент

    • gooding
      От gooding


      Скачать файл PAR RP | Уникальный мод без багов
      Всем здравствуйте, уважаемые читатели. Я много времени потратил на доработку данного игрового мода, чтобы его выставить на форум.
      Лог доработок можно посмотреть внизу, а скриншоты игрового мода внизу и верху.
       
       

      Добавил gooding Добавлено 20.11.2024 Категория Моды Автор GOODING (Я)  
    • gooding
      От gooding
      Всем здравствуйте, уважаемые читатели. Я много времени потратил на доработку данного игрового мода, чтобы его выставить на форум.
      Лог доработок можно посмотреть внизу, а скриншоты игрового мода внизу и верху.
       
       

    • Kalinin
      От Kalinin
      1. Набираю команду для создания CRMP сервера.
      2. Вакансии  которые свободны. Связь через TG @kalinin_sql
      Нам нужны;
      1.Кодеры
      2.Маперы
      3.СММ
      Так-же дружная работа. По поводу зарплаты будем обговаривать все лично в беседе ТГ
       
    • whccompany
      От whccompany
      Rostov Role Play | Rostov RP | CRMP Mobile Project объявляет набор людей в свою команду: Нам требуются:
       
      1. Маппера:
      Сдельная оплата труда от 250 до 3000 рублей/ за 1 работу
       
      2. Специалист по Text Draw:
      Сдельная оплата труда от 400 до 3500 рублей/ за одну работу
       
      3. Pawn разработчик:
      Заработная плата от 10 000 рублей/месяц
       
      4. Программист для создания лаунчера и сайта UCP с автодонатом:
      Заработная плата от 10 000 рублей/месяц
       
      Контакты для связи:
       
      ВКонтакте
       
      Telegram