Краш из-за DebugOverlay

Пользователь
Статус
Оффлайн
Регистрация
13 Янв 2018
Сообщения
193
Реакции[?]
75
Поинты[?]
10K
Помогите пофиксить краш из-за DebugOverlay->AddBoxOverlay
C++:
virtual void AddBoxOverlay(const Vector& origin, const Vector& mins, const Vector& max, QAngle const& orientation, int r, int g, int b, int a, float duration) = 0;
C++:
for (int i = 0; i < bullet_impacts.size(); i++)
{
    g_DebugOverlay->AddBoxOverlay(bullet_impacts[i].pos, Vector(-2, -2, -2), Vector(2, 2, 2), QAngle(0, 0, 0), 255, 255, 255, 255, 10.f);
}
C++:
if (strstr(pEvent->GetName(), "bullet_impact"))
{
      auto index = g_EngineClient->GetPlayerForUserID(pEvent->GetInt("userid"));

      Vector position(pEvent->GetFloat("x"), pEvent->GetFloat("y"), pEvent->GetFloat("z"));

      if (index == g_LocalPlayer)
      {
            if (settings::visuals::bullet_impact::box::enable)
            {
                  bullet_impact imp;
                  imp.pos = position;

                  bullet_impacts.push_back(imp);
            }
      }
}
Лог краша -
Пожалуйста, авторизуйтесь для просмотра ссылки.
 
Олдфаг
Статус
Оффлайн
Регистрация
6 Мар 2019
Сообщения
2,936
Реакции[?]
1,002
Поинты[?]
0
for (int i = 0; i < bullet_impacts.size(); i++)
Это пизда, потому что здесь идёт цикл по всем импактам на карте (поэтому и падает, так как выстрелов может быть и 100+ за раз со всех игроков и он рендерит всё, естественно игра падает)

if (index == g_LocalPlayer)
Здесь нужно условие что стрелок это локальный игрок и не является целью/объектом.
 
Пользователь
Статус
Оффлайн
Регистрация
13 Янв 2018
Сообщения
193
Реакции[?]
75
Поинты[?]
10K
for (int i = 0; i < bullet_impacts.size(); i++)
Это пизда, потому что здесь идёт цикл по всем импактам на карте (поэтому и падает, так как выстрелов может быть и 100+ за раз со всех игроков и он рендерит всё, естественно игра падает)
Краш происходит после первого выстрела
 
Пользователь
Статус
Оффлайн
Регистрация
13 Янв 2018
Сообщения
193
Реакции[?]
75
Поинты[?]
10K
Последнее редактирование:
Сверху Снизу