This is a mobile optimized page that loads fast, if you want to load the real page, click this text.

Проблема Stack overflow

kloners

scammer
Мошенник
16 Окт 2021
149
4
59
Как решить проблему Stack overflow?
Я запускаю сервер и спустя минут 10 он ложится так как выдает данную ошибку это какой-то костыль в сборках Radege а как решить я не знаю.
Буду рад вашей помощи!
 

XDeveluxe

⚡️BackEnd Developer
Команда форума
Moderator
High developer
BackEnd developer
30 Авг 2021
2,770
1,585
211
28
Stack overflow означает переполнение стэка. Стэк же, в свою очередь, это некое хранилище (достаточно маленького объёма), которое хранит все важные данные для выполнения текущего кода. Методы - не исключение, их тоже нужно запоминать, чтобы позже вернуться к изначальному методу, который программа должна была отработать.
Представим, что из метода1 ты вызвал метод2, а из метода2 вызвал еще метод3, 4 и 5 - в таком случае стэк будет хранить все эти элементы в обратном порядке: метод5, метод4, метод3, метод2 и наконец метод1, чтобы в конечном счёте вернуться к точке, с которой начал. Теория всегда была моей слабой частью, но как-то так.

Ошибка же говорит о том, что стэк был переполнен, то есть из метода1 ты либо вновь вызываешь метод1, либо метод2, который в свою очередь опять вызывает метод1 - стэк переполняется и не может выполняться дальше, так как ему просто негде больше хранить эти нужные данные. В таком случае программа закрывается с ошибкой. И это не обязательно связано конкретно с методом, это может быть и свойство класса, как пример.
Если переводить на русский язык, то где-то в твоём моде, скорее всего, есть метод или поле, который вызывает сам себя, или другой метод, который в свою очередь вновь вызовет текущий и так по кругу. Тебе нужно найти эту рекурсию и исправить.
 

kloners

scammer
Мошенник
16 Окт 2021
149
4
59
Как можно достаточно легко найти этот код?
 

XDeveluxe

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

kloners

scammer
Мошенник
16 Окт 2021
149
4
59
System.OverflowException: Arithmetic operation resulted in an overflow.
at Vehicle GTANetworkMethods.Vehicle.CreateVehicle(uint model, Vector3 pos, float rot, int color1, int color2, string numberPlate, byte alpha, bool locked, bool engine, uint dimension)

Вот чего я смог добиться, а вот что мне с этим делать я не понимаю.
 

XDeveluxe

⚡️BackEnd Developer
Команда форума
Moderator
High developer
BackEnd developer
30 Авг 2021
2,770
1,585
211
28
А, это ошибка внутри RAGE.
Решается так:
Все методы CreateVehicle, которые используют Vector3 для Rotation замени на методы, где float Rotation. Баг рейджа.
 

XDeveluxe

⚡️BackEnd Developer
Команда форума
Moderator
High developer
BackEnd developer
30 Авг 2021
2,770
1,585
211
28
Не особо понял, на какие методы?
NAPI.Vehicle.CreateVehicle - метод рейджа, который создаёт машину.
Тебе нужно найти все методы, которые используют Vector3 для rotation аргумента и заменить на методы, где используется float rotation.
Если еще более просто - везде, где у тебя используется Vector3 для rotation - используй только Vector3(xyz).Z.
 

kloners

scammer
Мошенник
16 Окт 2021
149
4
59
Тоесть если код такой:
Код:
var veh = NAPI.Vehicle.CreateVehicle((VehicleHash)NAPI.Util.GetHashKey(vData.Model), player.Position + new Vector3(0, 0, 0.3), Rotation, 0, 0, number);
То нужно превратить в это:
Код:
var veh = NAPI.Vehicle.CreateVehicle((VehicleHash)NAPI.Util.GetHashKey(vData.Model), player.Position + new Vector3(xyz).Z, Rotation, 0, 0, number);
 

XDeveluxe

⚡️BackEnd Developer
Команда форума
Moderator
High developer
BackEnd developer
30 Авг 2021
2,770
1,585
211
28
Нет, у тебя "Rotation" здесь Vector3 или float? Должен быть float.
 

XDeveluxe

⚡️BackEnd Developer
Команда форума
Moderator
High developer
BackEnd developer
30 Авг 2021
2,770
1,585
211
28
Крч вот это Vector3 нужно заменить на это float?
Друг, если тебе не понятно то, как я буквально разжевал решение твоей проблемы, то сходи почитать пару книжек о ЯП.
Того, что я сказал, должно было хватить, чтобы ты понял, что нужно сделать, но вопросы продолжаются, при чём с каждым разом всё более глупые, так как ответ дан.