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

jenekbueno

Известный
157
69
в имгуи можно как то сменить цвет этих стрелочек на затрагивая цвет текста?
это в функции BeginMenu

upload_2019-1-9_8-13-19.png
 

F11GAR0.

Потрачен
0
59
Обратите внимание, пользователь заблокирован на форуме. Не рекомендуется проводить сделки.
upload_2019-1-9_14-26-40.png
upload_2019-1-9_14-27-1.png
upload_2019-1-9_14-27-18.png

один хуй недопустимый тип операнда, чё делать?
 

#Rin

Известный
Всефорумный модератор
1,214
1,043
Хз почему, но в студии нельзя сделать jmp адрес.
Записывай адрес в какой-либо регистр. Ну или закрой asm вставку и запиши static uint32_t addr =адрес, и в jmp юзать его.
 

jenekbueno

Известный
157
69
Хз почему, но в студии нельзя сделать jmp адрес.
Записывай адрес в какой-либо регистр. Ну или закрой asm вставку и запиши static uint32_t addr =адрес, и в jmp юзать его.
можно)

в имгуи можно как то сменить цвет этих стрелочек на затрагивая цвет текста?
это в функции BeginMenu

Посмотреть вложение 23653
 

F11GAR0.

Потрачен
0
59
Обратите внимание, пользователь заблокирован на форуме. Не рекомендуется проводить сделки.
Хз почему, но в студии нельзя сделать jmp адрес.
Записывай адрес в какой-либо регистр. Ну или закрой asm вставку и запиши static uint32_t addr =адрес, и в jmp юзать его.
кароче там немного в другом был прикол, я переписывал fixdist от сртима, и долго думал чё там хук на хук стоит, кароче это были джампы внутри области этой хексовой, я тупо метки ебанул и заработало норм
upload_2019-1-9_17-40-59.png
 

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

Известный
Проверенный
208
147
Как получить координату кости?
Пример получения кости игрока и отрисовка их. ID костей находятся в CPed.h

Код:
#pragma region DrawBones
                    if (enableDrawBones) {
                        actor_info *actorInfo = SF->getSAMP()->getPlayers()->pRemotePlayer[i]->pPlayerData->pSAMP_Actor->pGTA_Ped;
                        CPed* Ped = GAME->GetPools()->GetPed((DWORD*)actorInfo);

                        float posX[15], posY[15];
                        int counter = 0;
                        CVector vPos[15];

                        for (int i = 1; i <= 53; i++)
                        {
                            switch (i)
                            {
                            case 1:
                                Ped->GetTransformedBonePosition((eBone)i, &vPos[counter]);
                                counter++;
                                break;
                            case 3:
                                Ped->GetTransformedBonePosition((eBone)i, &vPos[counter]);
                                counter++;
                                break;
                            case 4:
                                Ped->GetTransformedBonePosition((eBone)i, &vPos[counter]);

                                counter++;
                                break;
                            case 5:
                                Ped->GetTransformedBonePosition((eBone)i, &vPos[counter]);
                                counter++;
                                break;
                            case 6:
                                Ped->GetTransformedBonePosition((eBone)i, &vPos[counter]);
                                counter++;
                                break;
                            case 22:
                                Ped->GetTransformedBonePosition((eBone)i, &vPos[counter]);
                                counter++;
                                break;
                            case 23:
                                Ped->GetTransformedBonePosition((eBone)i, &vPos[counter]);
                                counter++;
                                break;
                            case 25:
                                Ped->GetTransformedBonePosition((eBone)i, &vPos[counter]);
                                counter++;
                                break;
                            case 32:
                                Ped->GetTransformedBonePosition((eBone)i, &vPos[counter]);
                                counter++;
                                break;
                            case 33:
                                Ped->GetTransformedBonePosition((eBone)i, &vPos[counter]);
                                counter++;
                                break;
                            case 35:
                                Ped->GetTransformedBonePosition((eBone)i, &vPos[counter]);
                                counter++;
                                break;
                            case 42:
                                Ped->GetTransformedBonePosition((eBone)i, &vPos[counter]);
                                counter++;
                                break;
                            case 43:
                                Ped->GetTransformedBonePosition((eBone)i, &vPos[counter]);
                                counter++;
                                break;
                            case 52:
                                Ped->GetTransformedBonePosition((eBone)i, &vPos[counter]);
                                counter++;
                                break;
                            case 53:
                                Ped->GetTransformedBonePosition((eBone)i, &vPos[counter]);
                                counter++;
                                break;

                            }

                        }

                        for (int i = 0; i <= 14; i++) SF->getGame()->convert3DCoordsToScreen(vPos[i].fX, vPos[i].fY, vPos[i].fZ, &posX[i], &posY[i]);

                        SF->getRender()->DrawLine(posX[0], posY[0], posX[1], posY[1], 1, 0xFFFFFFFF);
                        SF->getRender()->DrawLine(posX[0], posY[0], posX[11], posY[11], 1, 0xFFFFFFFF);
                        SF->getRender()->DrawLine(posX[0], posY[0], posX[13], posY[13], 1, 0xFFFFFFFF);

                        SF->getRender()->DrawLine(posX[1], posY[1], posX[2], posY[2], 1, 0xFFFFFFFF);

                        SF->getRender()->DrawLine(posX[2], posY[2], posX[5], posY[5], 1, 0xFFFFFFFF);
                        SF->getRender()->DrawLine(posX[2], posY[2], posX[8], posY[8], 1, 0xFFFFFFFF);
                        SF->getRender()->DrawLine(posX[2], posY[2], posX[3], posY[3], 1, 0xFFFFFFFF);

                        SF->getRender()->DrawLine(posX[3], posY[3], posX[4], posY[4], 1, 0xFFFFFFFF);

                        SF->getRender()->DrawLine(posX[5], posY[5], posX[6], posY[6], 1, 0xFFFFFFFF);

                        SF->getRender()->DrawLine(posX[6], posY[6], posX[7], posY[7], 1, 0xFFFFFFFF);

                        SF->getRender()->DrawLine(posX[8], posY[8], posX[9], posY[9], 1, 0xFFFFFFFF);

                        SF->getRender()->DrawLine(posX[9], posY[9], posX[10], posY[10], 1, 0xFFFFFFFF);
                    }
#pragma endregion DrawBones
 
  • Нравится
Реакции: SiTrak

jenekbueno

Известный
157
69
Пример получения кости игрока и отрисовка их. ID костей находятся в CPed.h

Код:
#pragma region DrawBones
                    if (enableDrawBones) {
                        actor_info *actorInfo = SF->getSAMP()->getPlayers()->pRemotePlayer[i]->pPlayerData->pSAMP_Actor->pGTA_Ped;
                        CPed* Ped = GAME->GetPools()->GetPed((DWORD*)actorInfo);

                        float posX[15], posY[15];
                        int counter = 0;
                        CVector vPos[15];

                        for (int i = 1; i <= 53; i++)
                        {
                            switch (i)
                            {
                            case 1:
                                Ped->GetTransformedBonePosition((eBone)i, &vPos[counter]);
                                counter++;
                                break;
                            case 3:
                                Ped->GetTransformedBonePosition((eBone)i, &vPos[counter]);
                                counter++;
                                break;
                            case 4:
                                Ped->GetTransformedBonePosition((eBone)i, &vPos[counter]);

                                counter++;
                                break;
                            case 5:
                                Ped->GetTransformedBonePosition((eBone)i, &vPos[counter]);
                                counter++;
                                break;
                            case 6:
                                Ped->GetTransformedBonePosition((eBone)i, &vPos[counter]);
                                counter++;
                                break;
                            case 22:
                                Ped->GetTransformedBonePosition((eBone)i, &vPos[counter]);
                                counter++;
                                break;
                            case 23:
                                Ped->GetTransformedBonePosition((eBone)i, &vPos[counter]);
                                counter++;
                                break;
                            case 25:
                                Ped->GetTransformedBonePosition((eBone)i, &vPos[counter]);
                                counter++;
                                break;
                            case 32:
                                Ped->GetTransformedBonePosition((eBone)i, &vPos[counter]);
                                counter++;
                                break;
                            case 33:
                                Ped->GetTransformedBonePosition((eBone)i, &vPos[counter]);
                                counter++;
                                break;
                            case 35:
                                Ped->GetTransformedBonePosition((eBone)i, &vPos[counter]);
                                counter++;
                                break;
                            case 42:
                                Ped->GetTransformedBonePosition((eBone)i, &vPos[counter]);
                                counter++;
                                break;
                            case 43:
                                Ped->GetTransformedBonePosition((eBone)i, &vPos[counter]);
                                counter++;
                                break;
                            case 52:
                                Ped->GetTransformedBonePosition((eBone)i, &vPos[counter]);
                                counter++;
                                break;
                            case 53:
                                Ped->GetTransformedBonePosition((eBone)i, &vPos[counter]);
                                counter++;
                                break;

                            }

                        }

                        for (int i = 0; i <= 14; i++) SF->getGame()->convert3DCoordsToScreen(vPos[i].fX, vPos[i].fY, vPos[i].fZ, &posX[i], &posY[i]);

                        SF->getRender()->DrawLine(posX[0], posY[0], posX[1], posY[1], 1, 0xFFFFFFFF);
                        SF->getRender()->DrawLine(posX[0], posY[0], posX[11], posY[11], 1, 0xFFFFFFFF);
                        SF->getRender()->DrawLine(posX[0], posY[0], posX[13], posY[13], 1, 0xFFFFFFFF);

                        SF->getRender()->DrawLine(posX[1], posY[1], posX[2], posY[2], 1, 0xFFFFFFFF);

                        SF->getRender()->DrawLine(posX[2], posY[2], posX[5], posY[5], 1, 0xFFFFFFFF);
                        SF->getRender()->DrawLine(posX[2], posY[2], posX[8], posY[8], 1, 0xFFFFFFFF);
                        SF->getRender()->DrawLine(posX[2], posY[2], posX[3], posY[3], 1, 0xFFFFFFFF);

                        SF->getRender()->DrawLine(posX[3], posY[3], posX[4], posY[4], 1, 0xFFFFFFFF);

                        SF->getRender()->DrawLine(posX[5], posY[5], posX[6], posY[6], 1, 0xFFFFFFFF);

                        SF->getRender()->DrawLine(posX[6], posY[6], posX[7], posY[7], 1, 0xFFFFFFFF);

                        SF->getRender()->DrawLine(posX[8], posY[8], posX[9], posY[9], 1, 0xFFFFFFFF);

                        SF->getRender()->DrawLine(posX[9], posY[9], posX[10], posY[10], 1, 0xFFFFFFFF);
                    }
#pragma endregion DrawBones
кто тебя учил плюсам?
 
  • Нравится
Реакции: imring

#Rin

Известный
Всефорумный модератор
1,214
1,043
case 1: Ped->GetTransformedBonePosition((eBone)i, &vPos[counter]); counter++; break; case 3: Ped->GetTransformedBonePosition((eBone)i, &vPos[counter]); counter++; break; case 4: Ped->GetTransformedBonePosition((eBone)i, &vPos[counter]); counter++; break; case 5: Ped->GetTransformedBonePosition((eBone)i, &vPos[counter]); counter++; break; case 6: Ped->GetTransformedBonePosition((eBone)i, &vPos[counter]); counter++; break; case 22: Ped->GetTransformedBonePosition((eBone)i, &vPos[counter]); counter++; break; case 23: Ped->GetTransformedBonePosition((eBone)i, &vPos[counter]); counter++; break; case 25: Ped->GetTransformedBonePosition((eBone)i, &vPos[counter]); counter++; break; case 32: Ped->GetTransformedBonePosition((eBone)i, &vPos[counter]); counter++; break; case 33: Ped->GetTransformedBonePosition((eBone)i, &vPos[counter]); counter++; break; case 35: Ped->GetTransformedBonePosition((eBone)i, &vPos[counter]); counter++; break; case 42: Ped->GetTransformedBonePosition((eBone)i, &vPos[counter]); counter++; break; case 43: Ped->GetTransformedBonePosition((eBone)i, &vPos[counter]); counter++; break; case 52: Ped->GetTransformedBonePosition((eBone)i, &vPos[counter]); counter++; break; case 53: Ped->GetTransformedBonePosition((eBone)i, &vPos[counter]); counter++; break;
Че за ...?
Перечисляй так:
C++:
case 1: case 3: case 4: case 5: case 6: case 22: // ...
Ped->GetTransformedBonePosition((eBone)i, &vPos[counter]);
counter++;
break;
 

Harryss

Участник
233
26
Вынес за блок init, но уведомляет об оружии в руке только при загрузке скрипта. Почему лишь при загрузке?
C++:
void CALLBACK mainloop()
{  
    static bool init = false;
    if (!init)
    {
        if (GAME == nullptr)
            return;
        if (GAME->GetSystemState() != eSystemState::GS_PLAYING_GAME)
            return;
        if (!SF->getSAMP()->IsInitialized())
            return;
        SF->getSAMP()->getChat()->AddChatMessage(-1, "{FFFFFF}• {FFDA44}[SAMPFUNCS]: {FFFFFF}Loaded.");
        init = true;  
    }

    // Уведомляет только 1 раз, держа оружие в руке при подгрузке скрипта. без использования static флудит в чат, пытался исправить установкой 0 значения - сразу же заменяет, return'нить - не помогло.
    static int current_weapon = SF->getSAMP()->getPlayers()->pLocalPlayer->byteCurrentWeapon;
    if (current_weapon == 31)
    {
        SF->getSAMP()->getChat()->AddChatMessage(-1, "{FFFFFF}• {FFDA44}[SAMPFUNCS]: {FFFFFF}M4A1 at your right hand.");
        current_weapon = 0;
    }
}
 

Romelo

dev.
Проверенный
540
627
Вынес за блок init, но уведомляет об оружии в руке только при загрузке скрипта. Почему лишь при загрузке?
C++:
void CALLBACK mainloop()
{ 
    static bool init = false;
    if (!init)
    {
        if (GAME == nullptr)
            return;
        if (GAME->GetSystemState() != eSystemState::GS_PLAYING_GAME)
            return;
        if (!SF->getSAMP()->IsInitialized())
            return;
        SF->getSAMP()->getChat()->AddChatMessage(-1, "{FFFFFF}• {FFDA44}[SAMPFUNCS]: {FFFFFF}Loaded.");
        init = true; 
    }

    // Уведомляет только 1 раз, держа оружие в руке при подгрузке скрипта. без использования static флудит в чат, пытался исправить установкой 0 значения - сразу же заменяет, return'нить - не помогло.
    static int current_weapon = SF->getSAMP()->getPlayers()->pLocalPlayer->byteCurrentWeapon;
    if (current_weapon == 31)
    {
        SF->getSAMP()->getChat()->AddChatMessage(-1, "{FFFFFF}• {FFDA44}[SAMPFUNCS]: {FFFFFF}M4A1 at your right hand.");
        current_weapon = 0;
    }
}
статик это круто
 

jenekbueno

Известный
157
69
Че за ...?
Перечисляй так:
C++:
case 1: case 3: case 4: case 5: case 6: case 22: // ...
Ped->GetTransformedBonePosition((eBone)i, &vPos[counter]);
counter++;
break;
нахуя здесь свитч обьясните, если можно сразу вызвать функу какую он хочет перед этим поставив проверку на число