Подпишитесь на наш Telegram-канал, чтобы всегда быть в курсе важных обновлений! Перейти

Исходник Viewmodel glow

  • Автор темы Автор темы vtbl
  • Дата начала Дата начала
Забаненный
Забаненный
Статус
Оффлайн
Регистрация
11 Май 2020
Сообщения
115
Реакции
91
Обратите внимание, пользователь заблокирован на форуме. Не рекомендуется проводить сделки.
Делал давно ,работает криво,но работает.
В хуке DrawModel:
Код:
Expand Collapse Copy
  static std::vector<std::pair<int, int>> CustomGlowEntities;


    if (auto renderable = pInfo->m_pClientEntity)
    {
      if (auto entity = reinterpret_cast<C_BasePlayer*>(uintptr_t(renderable) - 0x4))
      {
        auto i = entity->EntIndex();

        if (auto mdl = entity->GetModel())
        {
          bool is_arm = strstr(mdl->szName, "arms") != nullptr;
          bool is_player = strstr(mdl->szName, "models/player") != nullptr;
          bool is_sleeve = strstr(mdl->szName, "sleeve") != nullptr;
          bool is_weapon = strstr(mdl->szName, "weapons/v_") != nullptr;

          if ((is_sleeve || is_weapon) && !is_player)
          {
            //Entity is valid, check if we want to glow it
            if (!g_GlowObjManager->HasGlowEffect(entity))
            {
              auto pos = g_GlowObjManager->RegisterGlowObject(
                entity,
                g_Options.color_glow_enemy,
                1.0f,
                false,
                false,
                GlowObjectDefinition_t::END_OF_FREE_LIST
              );

              //Append it to the vector
              CustomGlowEntities.emplace_back(i, pos);
            }
          }
        }
        else {
          //
          // The entity is invalid.
          // Check if the entity on this index was glowing before it was removed by the game
          //
          auto it = std::find_if(
            CustomGlowEntities.begin(),
            CustomGlowEntities.end(),
            [&](const std::pair<int, int>& p) {
              return p.first == i;
            });

          if (it != CustomGlowEntities.end()) {
            // It was glowing. Unregister it and remove from our vector.
            g_GlowObjManager->UnregisterGlowObject(it->second);
            CustomGlowEntities.erase(it);
          }
        }
      }
    }
    for (auto i = 0; i < g_GlowObjManager->m_GlowObjectDefinitions.Count(); i++)
    {
      auto& glowObject = g_GlowObjManager->m_GlowObjectDefinitions[i];
      auto entity = reinterpret_cast<C_BasePlayer*>(glowObject.m_pEntity);

      if (!entity || glowObject.IsUnused())
      {
        continue;
      }

      if (auto mdl = entity->GetModel())
      {
        bool is_arm = strstr(mdl->szName, "arms") != nullptr;
        bool is_player = strstr(mdl->szName, "models/player") != nullptr;
        bool is_sleeve = strstr(mdl->szName, "sleeve") != nullptr;
        bool is_weapon = strstr(mdl->szName, "weapons/v_") != nullptr;

        if ((is_sleeve || is_weapon) && !is_player)
        {
          glowObject.m_flRed = g_Options.color_glow_enemy[0];
          glowObject.m_flGreen = g_Options.color_glow_enemy[1];
          glowObject.m_flBlue = g_Options.color_glow_enemy[2];
          glowObject.m_bRenderWhenOccluded = false;
          glowObject.m_bRenderWhenUnoccluded = false;
          glowObject.m_nRenderStyle = g_Options.glow_style;
        }
      }

    }

Если подогнать вьюмодел по хуz,то результат :
1639447567240.png

Иначе :
1639447578095.png


Есть еще баг что подсвечивает руки от 3 лица.
В прицнипе,если кто-нибудь пофиксит - дропайте работягам в комментах (дополню тему).
А так,можно сделать костыльно,чтобы при включении хуз менялся под нужный.
 
Назад
Сверху Снизу