Подведи собственные итоги года совместно с YOUGAME и забери ценные призы! Перейти

Draw hitbox- крашит

bool brain = true
Забаненный
Забаненный
Статус
Оффлайн
Регистрация
30 Янв 2019
Сообщения
193
Реакции
16
Обратите внимание, пользователь заблокирован на форуме. Не рекомендуется проводить сделки.
пмогите пж может я овощ и делаю что-то не так.
Код:
Expand Collapse Copy
    if (c_config::get().draw_hitboxes)
    {
        C_BaseEntity* hittedplayer = (C_BaseEntity*)g_pEntityList->GetClientEntity(g_pEngine->GetPlayerForUserID(event->GetInt("userid")));

        if (hittedplayer && hittedplayer->EntIndex() > 0 && hittedplayer->EntIndex() < 64)
        {
            if (Globals::LocalPlayer && hittedplayer != Globals::LocalPlayer)
                CapsuleOverlay(hittedplayer, Color(255, 255, 255, 255), 8);
        }
Код:
Expand Collapse Copy
static void CapsuleOverlay(C_BaseEntity* pPlayer, Color col, float duration)
{
    if (!pPlayer)
        return;

    studiohdr_t* pStudioModel = g_pModelInfo->GetStudiomodel((model_t*)pPlayer->GetModel());
    if (!pStudioModel)
        return;

    static matrix3x4_t pBoneToWorldOut[128];
    if (!pPlayer->SetupBones(pBoneToWorldOut, 128, 256, 0))
        return;

    mstudiohitboxset_t* pHitboxSet = pStudioModel->GetHitboxSet(0);
    if (!pHitboxSet)
        return;

    auto VectorTransform2 = [](const Vector in1, matrix3x4_t in2, Vector& out)
    {

        out[0] = dot_product(in1, Vector(in2[0][0], in2[0][1], in2[0][2])) + in2[0][3];
        out[1] = dot_product(in1, Vector(in2[1][0], in2[1][1], in2[1][2])) + in2[1][3];
        out[2] = dot_product(in1, Vector(in2[2][0], in2[2][1], in2[2][2])) + in2[2][3];
    };

    for (int i = 0; i < pHitboxSet->numhitboxes; i++)
    {
        mstudiobbox_t* pHitbox = pHitboxSet->GetHitbox(i);
        if (!pHitbox)
            continue;

        Vector vMin, vMax;
        VectorTransform2(pHitbox->min, pBoneToWorldOut[pHitbox->bone], vMin); //nullptr???
        VectorTransform2(pHitbox->max, pBoneToWorldOut[pHitbox->bone], vMax);

        if (pHitbox->radius > -1)
        {
            g_pIVDebugOverlay->AddCapsuleOverlay(vMin, vMax, pHitbox->radius, col.red, col.green, col.blue, col.alpha, duration);
        }
    }
}
захожу на карту стреляю и происходит краш
может я что-то не указал?
 

Вложения

  • 20200411141242_1.jpg
    20200411141242_1.jpg
    421 KB · Просмотры: 97
Обратите внимание, пользователь заблокирован на форуме. Не рекомендуется проводить сделки.
дебажь
 
Обратите внимание, пользователь заблокирован на форуме. Не рекомендуется проводить сделки.
Обратите внимание, пользователь заблокирован на форуме. Не рекомендуется проводить сделки.
Обратите внимание, пользователь заблокирован на форуме. Не рекомендуется проводить сделки.

Вложения

  • JRaOsf4HGJQ.jpg
    JRaOsf4HGJQ.jpg
    318.7 KB · Просмотры: 47
извини за качество HDBLUR
Попробуй вместо этого:
C++:
Expand Collapse Copy
C_BaseEntity* hittedplayer = (C_BaseEntity*)g_pEntityList->GetClientEntity(g_pEngine->GetPlayerForUserID(event->GetInt("userid")));
Использовать это:
C++:
Expand Collapse Copy
auto GetID_W = g_pEngine->GetPlayerForUserID(event->GetInt("userid"));
 
Обратите внимание, пользователь заблокирован на форуме. Не рекомендуется проводить сделки.
cпасибо щас попробую
 
Обратите внимание, пользователь заблокирован на форуме. Не рекомендуется проводить сделки.
if (hittedplayer && hittedplayer->EntIndex() > 0 && hittedplayer->EntIndex() < 64)
{
if (Globals::LocalPlayer && hittedplayer != Globals::LocalPlayer)
 
Обратите внимание, пользователь заблокирован на форуме. Не рекомендуется проводить сделки.
Обратите внимание, пользователь заблокирован на форуме. Не рекомендуется проводить сделки.
Обратите внимание, пользователь заблокирован на форуме. Не рекомендуется проводить сделки.
Обратите внимание, пользователь заблокирован на форуме. Не рекомендуется проводить сделки.
Охз
Ох уж эти бигкоды. Практичнее будет использовать last_origin на чамсы с использованием bsendpacket и curtime. Ты таким образом фризишь чамс после убийства и он остаётся на то время которое укажешь и даже если будет использоваться материал dogtags, то у тебя получится ТУПА ЭФФЭКТО РЕЗЪЕБОНО :roflanBuldiga: А если на убывание времени добавить изменение alpha в минус, то получится эффект исчезания. И никакие матриксы вот эти тут вообще не нужны да и код получится простым :CoolStoryBob:
 
Обратите внимание, пользователь заблокирован на форуме. Не рекомендуется проводить сделки.
Охз

Ох уж эти бигкоды. Практичнее будет использовать last_origin на чамсы с использованием bsendpacket и curtime. Ты таким образом фризишь чамс после убийства и он остаётся на то время которое укажешь и даже если будет использоваться материал dogtags, то у тебя получится ТУПА ЭФФЭКТО РЕЗЪЕБОНО :roflanBuldiga: А если на убывание времени добавить изменение alpha в минус, то получится эффект исчезания. И никакие матриксы вот эти тут вообще не нужны да и код получится простым :CoolStoryBob:
можно попробовать
 
Назад
Сверху Снизу