Stack overflow означает переполнение стэка. Стэк же, в свою очередь, это некое хранилище (достаточно маленького объёма), которое хранит все важные данные для выполнения текущего кода. Методы - не исключение, их тоже нужно запоминать, чтобы позже вернуться к изначальному методу, который программа должна была отработать.Как решить проблему Stack overflow?
Я запускаю сервер и спустя минут 10 он ложится так как выдает данную ошибку это какой-то костыль в сборках Radege а как решить я не знаю.
Буду рад вашей помощи!
Как можно достаточно легко найти этот код?Stack overflow означает переполнение стэка, если пытаться объяснить, то это некая короткосрочная память, которая хранит важные для выполнения текущего кода переменные и методы, чтобы вернуться к ним, когда задача будет окончена (когда внутри метода1 ты обращаешься к методу2, то ему нужно помнить метод1, чтобы вернуться к нему после выполнения метода2). Теория всегда была моей слабой частью, но как-то так.
Если переводить на русский язык, то где-то в твоём моде, скорее всего, есть метод, который вызывает сам себя, или другой метод, который в свою очередь вновь вызовет текущий и так по кругу. Тебе нужно найти эту рекурсию и исправить.
Как можно достаточно легко найти этот код?
А, это ошибка внутри RAGE.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)
Вот чего я смог добиться, а вот что мне с этим делать я не понимаю.
Не особо понял, на какие методы?А, это ошибка внутри RAGE.
Решается так:
Все методы CreateVehicle, которые используют Vector3 для Rotation замени на методы, где float Rotation. Баг рейджа.
NAPI.Vehicle.CreateVehicle - метод рейджа, который создаёт машину.Не особо понял, на какие методы?
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);
Нет, у тебя "Rotation" здесь Vector3 или float? Должен быть float.Тоесть если код такой:
То нужно превратить в это:Код: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);
Крч вот это Vector3 нужно заменить на это float?Нет, у тебя "Rotation" здесь Vector3 или float? Должен быть float.
Друг, если тебе не понятно то, как я буквально разжевал решение твоей проблемы, то сходи почитать пару книжек о ЯП.Крч вот это Vector3 нужно заменить на это float?
We use cookies and similar technologies for the following purposes:
Do you accept cookies and these technologies?
We use cookies and similar technologies for the following purposes:
Do you accept cookies and these technologies?