Вопрос Обводка объектов...

Пользователь
Пользователь
Статус
Оффлайн
Регистрация
21 Окт 2019
Сообщения
376
Реакции
48
Почему-то при обводке объектов, например, мин или кейсов с ресами, если смещать камеру персонажа, то отрисовка исчезает. Пробовал юзать силуэт через адрес и через рендер - везде пропадает при смещении камеры. На скринах ниже это продемонстрировано.
C++:
Expand Collapse Copy
class CEntityRenderProxy
{
public:
    void SetRenderFlags(int32 flag)
    {
        *(int32*)((int64)this + 0x24) = flag;
    }
    IRenderNode* GetRenderNode()
    {
        return (IRenderNode*)((int64)this + 0x0008);
    }
    void SetHUDSilhouet(float a, float r, float g, float b)
    {
        return XFunction<void(__fastcall*)(PVOID, f32, f32, f32, f32)>(this, 0x160)(this, a, r, g, b);
    }
};
C++:
Expand Collapse Copy
enum EEntityProxy { ENTITY_PROXY_RENDER };

enum ESilhouettesParams {
    eAllMap = 524312,
    eLimitDistance = 524296
};
void EnemyHUDSilhouettes(CEntityRenderProxy * p_RenderProxy, float Red, float Green, float Blue)
{
    p_RenderProxy->SetRenderFlags(eAllMap);
    p_RenderProxy->SetHUDSilhouet(255, Red, Green, Blue);
}
Реализация:
C++:
Expand Collapse Copy
while (CEntity* pEntity = pEntityIt->Next())
        {
            auto pRenderProxy = pEntity->GetEntityRenderProxy();
            if (!pRenderProxy)
                continue;
            const char* Entity_Name = pEntity->GetName();

            if (!pEntity->IsHidden())
            {
                if (strstr(Entity_Name, "ammo"))
                {
                    if (ammo) EnemyHUDSilhouettes(pRenderProxy, 255, 0.0f, 255);//обводка взрывчатки
                    continue;
                }
      
          }

Всё нормально...
ScreenShot0028.jpg

Но стоит зайти за текстуру то всё пропало....
ScreenShot0029.jpg
 
Последнее редактирование:
Обратите внимание, пользователь заблокирован на форуме. Не рекомендуется проводить сделки.
За всеми текстурами пропадает обводка?
 
Обратите внимание, пользователь заблокирован на форуме. Не рекомендуется проводить сделки.
Обратите внимание, пользователь заблокирован на форуме. Не рекомендуется проводить сделки.
Почему-то при обводке объектов, например, мин или кейсов с ресами, если смещать камеру персонажа, то отрисовка исчезает. Пробовал юзать силуэт через адрес и через рендер - везде пропадает при смещении камеры. На скринах ниже это продемонстрировано.
C++:
Expand Collapse Copy
class CEntityRenderProxy
{
public:
    void SetRenderFlags(int32 flag)
    {
        *(int32*)((int64)this + 0x24) = flag;
    }
    IRenderNode* GetRenderNode()
    {
        return (IRenderNode*)((int64)this + 0x0008);
    }
    void SetHUDSilhouet(float a, float r, float g, float b)
    {
        return XFunction<void(__fastcall*)(PVOID, f32, f32, f32, f32)>(this, 0x160)(this, a, r, g, b);
    }
};
C++:
Expand Collapse Copy
enum EEntityProxy { ENTITY_PROXY_RENDER };

enum ESilhouettesParams {
    eAllMap = 524312,
    eLimitDistance = 524296
};
void EnemyHUDSilhouettes(CEntityRenderProxy * p_RenderProxy, float Red, float Green, float Blue)
{
    p_RenderProxy->SetRenderFlags(eAllMap);
    p_RenderProxy->SetHUDSilhouet(255, Red, Green, Blue);
}
Реализация:
C++:
Expand Collapse Copy
while (CEntity* pEntity = pEntityIt->Next())
        {
            auto pRenderProxy = pEntity->GetEntityRenderProxy();
            if (!pRenderProxy)
                continue;
            const char* Entity_Name = pEntity->GetName();

            if (!pEntity->IsHidden())
            {
                if (strstr(Entity_Name, "ammo"))
                {
                    if (ammo) EnemyHUDSilhouettes(pRenderProxy, 255, 0.0f, 255);//обводка взрывчатки
                    continue;
                }
     
          }

Всё нормально...
Посмотреть вложение 189127
Но стоит зайти за текстуру то всё пропало....
Посмотреть вложение 189128
0x24 |= 0x80018;
 
Обратите внимание, пользователь заблокирован на форуме. Не рекомендуется проводить сделки.
это флаг для видимости. Каждый делает по своему.
Скрытое содержимое
Почему не могут преобразоваться типы при обращении к классу:
static_cast: невозможно преобразовать "CEntityRenderProxy *" в "IEntityRenderProxy *"
CEntityRenderProxy у меня выглядит вот так
C++:
Expand Collapse Copy
class CEntity
{
public:
    CEntityRenderProxy* pEntityProxy(EEntityProxy proxy = EEntityProxy::ENTITY_PROXY_RENDER) { return XFunction<CEntityRenderProxy* (__fastcall*)(PVOID64, EEntityProxy)>(this, 0x1D8)(this, proxy); }
}
 
Обратите внимание, пользователь заблокирован на форуме. Не рекомендуется проводить сделки.
Почему не могут преобразоваться типы при обращении к классу:
static_cast: невозможно преобразовать "CEntityRenderProxy *" в "IEntityRenderProxy *"
CEntityRenderProxy у меня выглядит вот так
C++:
Expand Collapse Copy
class CEntity
{
public:
    CEntityRenderProxy* pEntityProxy(EEntityProxy proxy = EEntityProxy::ENTITY_PROXY_RENDER) { return XFunction<CEntityRenderProxy* (__fastcall*)(PVOID64, EEntityProxy)>(this, 0x1D8)(this, proxy); }
}
Так в сдк написано и больше я не трогал это.
Суть в самой функции, которая прописана в клиенте игры.
Этот силуэт выдергнут из клиента.
 
Назад
Сверху Снизу