M I S T E V (19 марта 2025 - 14:56) писал:
Нажмите сюда, чтобы прочитать это сообщение. [Показать]
Цитата - это ответ GPT?
Ладно, оставайся при своём мнение, я не тебя пытаюсь переубедить, а чтоб другие не воспринимали твоё сообщение за чистую монету.
Логически если мыслить, в OnGameModeInit есть какой-то код, который начинает выполнение при старте, когда компилятор доходит до строчки
1864, он уже затратил время на выполнение, которое допустимо по мнению крашдетекта, а всё что дальше - не вписывается в допустимое время.
Если ты такой неверующий, перемести эту строчку в начало паблика и ты удивишься - никаких проблем не будет с этой строкой

Но как так? Прежде чем писать и что-то доказывать, проверь

Это не только chat GPT такое писал, но и в поисковиках Google и Яндекс находил подобные ответы, не из воздуха взялось такое мнение, собственно первый скриншот я и отправил тебе из поиска Яндекса. Естественно у меня встал вопрос, раз в поисковиках, в AI пишут что нельзя, значит НЕЛЬЗЯ. Собственно вы на форумах в основном и советуете "Google в помощь", собственно что я и сделал и принял это за чистую монету.
DeimoS (19 марта 2025 - 15:15) писал:
Нажмите сюда, чтобы прочитать это сообщение. [Показать]
Эту шизу даже комментировать не буду. Сначала изучи что из себя представляет LongCallTime в CrashDetect, а потом поговорим.
Ага. И когда на сервере создастся больше 100 машин - автор словит переполнение массивов, хранящих данные для транспорта :) Замечательный совет (нет).
Не говоря уже о том, что на быстродействие этот твой совет не повлияет практически никак (если речь о циклах, то ты этим буквально сотые доли миллисекунды выиграешь, в лучшем случае).
Поэтому трогать какие-либо стандартные макросы, кроме, разве что MAX_PLAYERS (ибо количество игроков можно физически ограничить настройками сервера) = стрелять в собственную ногу.
Какое переполнение массива? Ты вообще лог внимательно читал?
Так может ты попробуешь внимательнее прочитать то, что тут написано? Давай попробую разжевать: если есть код, который вызывает проблемы (подсказка: лаги) и если "long_call_time" так же сообщает о том, что код выполняется долго, то отключение "long_call_time" не решит проблему. Всё. Больше тут не подразумевается ровным счётом ничего.
При этом, стандартные 5 миллисекунд, на которые настроен "long_call_time" - это далеко не какой-то универсальный тайминг, чтоб считать, что раз у тебя условный OnGameModeInit обрабатывается дольше, то это проблема. У тебя только подключение к БД может 5 миллисекунд занять (в некоторых случаях (когда сервер удалён и т.п.) оно СЕКУНДЫ занимает, а не миллисекунды). Поэтому все тайминги нужно подстраивать под себя, если хочется использовать "long_call_time". При этом, не получится установить какой-то универсальный тайминг (кроме случая, когда хочется просто совсем уж медленный код отлавливать), ибо у тебя в моде будут как функции, которые должны за секунду обрабатываться, так и функции, которым на обработку и 10 секунд может быть мало (тот же OnGameModeInit, инициализирующий мод).
В общем, разберись сначала в вопросе, а потом пытайся что-то комментировать (по крайней мере в таком тоне, который ты тут используешь).
Тоже самое что и комментатору выше отвечу. Тут меня конкретно вот это интересует:
В общем, разберись сначала в вопросе, а потом пытайся что-то комментировать (по крайней мере в таком тоне, который ты тут используешь)
Собственно, что не так? Я ни кого не оскорблял. Я лишь излагал свою мысль. То что я написал, что от тебя такого ответа не ожидал, потому что не первый раз с тобой сталкиваюсь, ты мне сам много помогал, а тут просто вставь вот это... Я погуглил и получил ответ сам знаешь какой. Ты обычно разжевываешь что это такое и с чем его едят как говорится. Ну извини если оскорбил тебя чем то. Я сюда не ссорится зашел, а подискутировать. Спасибо что разжевал в комментариях ниже, я благодарен.
MuthaX (19 марта 2025 - 16:04) писал:
Нажмите сюда, чтобы прочитать это сообщение. [Показать]
Причину со следствием путаешь.
Дубу дал? Где-то посеял #undef и не так написал условие.
Это я скопировал с первой попавшийся темы через поиск. Там такое советуют.
А ты сам-то одупляешь, что его функция AddStaticVehicleEx была перехвачена и проблема там не с теми массивами, которые видно, а с итераторами?!
И то, что не AddStaticVehicleEx порождает долгое выполнение, а не выход за пределы массива.
Тут тоже самое что и комментаторам выше, можешь почитать почему я так возмутился.
Небогатая у тебя практика использования.
Про небогатую практику использования, тут хотел бы отметить. Я не могу найти ту тему, где я задавал вопрос. У меня была подобная фигня и мне какой то скриптер посоветовал объявлять отдельную переменную для каждой машины. То есть не new groovecar[2], а new groovecar[12] к примеру. И на удивление мне это тогда действительно помогло. Пойми что вас тут много и каждый со своим мнением. Никогда не знаешь кто прав, а кто нет. По этому я предложил тот вариант, которому меня научили.
Nexius (20 марта 2025 - 11:20) писал:
Нажмите сюда, чтобы прочитать это сообщение. [Показать]
Для новичков вроде Danny_Marcelo, кратко поясню основную суть этой диагностики в крашдетекте и отвечу на некоторые сумасбродные умозаключения, которые изначально комментировать не хотелось (но если в 2025 ещё такое люди выдают, то лучше всё-таки раскидать это по полочкам):
Диагностика long call time выбивается из всех остальных проверок этого плагина. Она не подсвечивает
причину и
реальную проблему, а лишь втупую, по косвенным признакам, уведомляет о
следствии какой-то гипотетической проблемы, которая может быть в той функции, на которую она сработала, а может и не быть. А может быть вообще не на стороне твоего павн скрипта и сервера в принципе (а, например, на стороне слабого железа физического сервера).
Собственно потому и тот факт, что такая штука была включена в крашдетекте по умолчанию - это ошибка, учитывая что ранее все диагностики в этом плагине всегда сообщали лишь о реальных проблемах и подсвечивали именно их причину, где они возникают, и пользователи плагина к такой логике привыкли, воспринимая каждое сообщение от крашдетекта с максимальной серьёзностью (и правильно делали, но теперь этот варнинг зачастую засирает логи и размывает важность от сообщений крашдетекта в принципе).
Так вот, если хочешь и дальше принимать лишь действительно серьёзные оповещения от крашдетекта, то делаешь именно так:
public OnGameModeInit()
{
DisableCrashDetectLongCall();
return 1;
}
или "long_call_time 0" в server.cfg (но таким способом этот параметр не применится из конфига под омп сервером, так что лучше прописать именно в павн скрипте)
Ну и тебе отдельное спасибо что разжевал в данном случае о crashdetect. Когда я начинал изучать pawn, мне говорили что нельзя игнорировать все, что пишет в консоли crashdetect. Про гугл я уже написал вышел) От того и развел тут свои сомнения в спорах. Ну и извините еще раз те, кого обидил как то. Повторюсь, я уж точно сюда не ругаться пришел. Не ошибается тот, кто ничего не делает как говорится.