Другое С/С++ Вопрос - Ответ

imring

Ride the Lightning
Всефорумный модератор
2,361
2,546
Судя по скрину, у тебя отсутствует DllMain.

C++:
void yourMainCycle(void *) {
//put your stuff there
}

C++:
BOOL APIENTRY DllMain(HMODULE hModule, DWORD dwReasonForCall, LPVOID lpReserved)
{
    switch (dwReasonForCall)
    {
    case DLL_PROCESS_ATTACH:
        _beginthread(yourMainCycle, NULL, NULL);
        break;
    case DLL_THREAD_ATTACH:
    case DLL_THREAD_DETACH:
    case DLL_PROCESS_DETACH:
        break;
    }
    return TRUE;
}
зачем для плагин-сдк dllmain?
Посмотреть вложение 22005
Не втыкаю что дальше? Точки остановки делать?
тестишь в сампе?
если да, то:
C++:
Events::initRwEvent += [] {
    Events::gameProcessEvent += [] {
        // code
    };
};
 
  • Нравится
Реакции: AnWu

Musaigen

abobusnik
Проверенный
1,607
1,365
ой, не правильно сформулировал вопрос, как сделать так, чтоб чекбоксы были в 2 столбика?
Если у тебя ряд чекбоксов то
C++:
ImGui::BeginGroup();
// checkboxes
ImGui::EndGroup();
ImGui::SameLine();
// тоже самое
либо ImGui::SameLine();
 
  • Нравится
Реакции: SiTrak

rraggerr

проверенный какой-то
1,626
848
Обратите внимание, пользователь заблокирован на форуме. Не рекомендуется проводить сделки.
Как изменить направление вектора по градусам? CVector
чтобы было примерно так
rotate_vec(Vector, 45)


Уп
 

SiTrak

Известный
192
253
Как можно создать такую вкладку?
 

Вложения

  • 1111.png
    1111.png
    1.8 KB · Просмотры: 243

Неадекватная сова

Известный
Проверенный
208
147
Как изменить направление вектора по градусам? CVector
чтобы было примерно так
rotate_vec(Vector, 45)


Уп
Это конечно все не точно, но может тебе даст направление

Код:
// get player matrix
                CMatrix matPed;
                pPedSelf->GetMatrix(&matPed);

                // tilt player upright
                CVector rotationAxis = g_vecUpNormal;
                rotationAxis.CrossProduct( &matPed.vUp );
                float theta = ( matPed.vUp.DotProduct( &g_vecUpNormal ) );
                if ( !near_zero(theta) )
                {
                    matPed = matPed.Rotate( &rotationAxis, cos(theta) );
                    // normalize everything
                    matPed.vFront.Normalize();
                    matPed.vRight.Normalize();
                    matPed.vUp.Normalize();
                    // zero near zero
                    matPed.vFront.ZeroNearZero();
                    matPed.vRight.ZeroNearZero();
                    matPed.vUp.ZeroNearZero();
                    // set player matrix
                    pPedSelf->SetMatrix(&matPed);

Код:
CMatrix Rotate ( const CVector * param, float theta )
    {
        // Rotate the rotation matrix
        double sin_t = sinf( theta ), cos_t = cosf( theta );
        CMatrix mRotateMult;
        // rotate X
        mRotateMult.vRight.fX = (double) cos_t + ( 1.0f - cos_t ) * param->fX * param->fX;
        mRotateMult.vRight.fY = (double) ( 1.0f - cos_t ) * param->fX * param->fY - sin_t * param->fZ;
        mRotateMult.vRight.fZ = (double) ( 1.0f - cos_t ) * param->fX * param->fZ + sin_t * param->fY;
        // rotate Y
        mRotateMult.vFront.fX = (double) ( 1.0f - cos_t ) * param->fY * param->fX + sin_t * param->fZ;
        mRotateMult.vFront.fY = (double) cos_t + ( 1.0f - cos_t ) * param->fY * param->fY;
        mRotateMult.vFront.fZ = (double) ( 1.0f - cos_t ) * param->fY * param->fZ - sin_t * param->fX;
        // rotate Z
        mRotateMult.vUp.fX = (double) ( 1.0f - cos_t ) * param->fZ * param->fX - sin_t * param->fY;
        mRotateMult.vUp.fY = (double) ( 1.0f - cos_t ) * param->fZ * param->fY + sin_t * param->fX;
        mRotateMult.vUp.fZ = (double) cos_t + ( 1.0f - cos_t ) * param->fZ * param->fZ;
        // multiply matrix
        mRotateMult = mRotateMult * (*this);
        // set vectors
        mRotateMult.vPos = vPos;
        // return
        return mRotateMult;
    }

Попробуй еще сам поковыряться в сурсах собейта. По сути можно найти функцию которая срабатывает на Backspace. Она разворачивает кар на 180 градусов. Видимо тебя это интересует
 

rraggerr

проверенный какой-то
1,626
848
Обратите внимание, пользователь заблокирован на форуме. Не рекомендуется проводить сделки.
Это конечно все не точно, но может тебе даст направление

Код:
// get player matrix
                CMatrix matPed;
                pPedSelf->GetMatrix(&matPed);

                // tilt player upright
                CVector rotationAxis = g_vecUpNormal;
                rotationAxis.CrossProduct( &matPed.vUp );
                float theta = ( matPed.vUp.DotProduct( &g_vecUpNormal ) );
                if ( !near_zero(theta) )
                {
                    matPed = matPed.Rotate( &rotationAxis, cos(theta) );
                    // normalize everything
                    matPed.vFront.Normalize();
                    matPed.vRight.Normalize();
                    matPed.vUp.Normalize();
                    // zero near zero
                    matPed.vFront.ZeroNearZero();
                    matPed.vRight.ZeroNearZero();
                    matPed.vUp.ZeroNearZero();
                    // set player matrix
                    pPedSelf->SetMatrix(&matPed);

Код:
CMatrix Rotate ( const CVector * param, float theta )
    {
        // Rotate the rotation matrix
        double sin_t = sinf( theta ), cos_t = cosf( theta );
        CMatrix mRotateMult;
        // rotate X
        mRotateMult.vRight.fX = (double) cos_t + ( 1.0f - cos_t ) * param->fX * param->fX;
        mRotateMult.vRight.fY = (double) ( 1.0f - cos_t ) * param->fX * param->fY - sin_t * param->fZ;
        mRotateMult.vRight.fZ = (double) ( 1.0f - cos_t ) * param->fX * param->fZ + sin_t * param->fY;
        // rotate Y
        mRotateMult.vFront.fX = (double) ( 1.0f - cos_t ) * param->fY * param->fX + sin_t * param->fZ;
        mRotateMult.vFront.fY = (double) cos_t + ( 1.0f - cos_t ) * param->fY * param->fY;
        mRotateMult.vFront.fZ = (double) ( 1.0f - cos_t ) * param->fY * param->fZ - sin_t * param->fX;
        // rotate Z
        mRotateMult.vUp.fX = (double) ( 1.0f - cos_t ) * param->fZ * param->fX - sin_t * param->fY;
        mRotateMult.vUp.fY = (double) ( 1.0f - cos_t ) * param->fZ * param->fY + sin_t * param->fX;
        mRotateMult.vUp.fZ = (double) cos_t + ( 1.0f - cos_t ) * param->fZ * param->fZ;
        // multiply matrix
        mRotateMult = mRotateMult * (*this);
        // set vectors
        mRotateMult.vPos = vPos;
        // return
        return mRotateMult;
    }

Попробуй еще сам поковыряться в сурсах собейта. По сути можно найти функцию которая срабатывает на Backspace. Она разворачивает кар на 180 градусов. Видимо тебя это интересует
Примерно да
 

iAmerican

Известный
Друг
614
260
ой, не правильно сформулировал вопрос, как сделать так, чтоб чекбоксы были в 2 столбика?
ImGui::Columns(2,"name(любое)",false)
чекбокс
чекбокс
ImGui::NextColumns()
Чекбокс
чекбокс
ImGui::Columns(1) // закрывающий колумнс
 
  • Нравится
Реакции: SiTrak