C++ Вопрос Хочу сделать меню как у читов в консоле

Статус
В этой теме нельзя размещать новые ответы.
Начинающий
Статус
Оффлайн
Регистрация
20 Апр 2021
Сообщения
257
Реакции[?]
19
Поинты[?]
4K
я написал код менюшки у меня не срабатывают нажатие не находясь в консоле также не меняется цвет на голубой при выборе и вместо кнопок на нампаде на которые я все сделал срабатывают также 0-9 вместо тех которые находятся на нампаде короче хз че делать вот код:


C++:
#include <iostream>
#include <windows.h>

using namespace std;

void handleWeapon(int key) {
    switch (key) {
    case VK_NUMPAD0:
        cout << "Вы выбрали Ak." << endl;
        break;
    case VK_NUMPAD1:
        cout << "Вы выбрали LR." << endl;
        break;
    case VK_NUMPAD2:
        cout << "Вы выбрали MP5." << endl;
        break;
    case VK_NUMPAD3:
        cout << "Вы выбрали Tompshon." << endl;
        break;
    case VK_NUMPAD4:
        cout << "Вы выбрали SMG." << endl;
        break;
    case VK_NUMPAD5:
        cout << "Вы выбрали M249." << endl;
        break;
    default:
        break;
    }
}

void handleScope(int key) {
    switch (key) {
    case VK_NUMPAD6:
        cout << "Вы выбрали 8x." << endl;
        break;
    case VK_NUMPAD7:
        cout << "Вы выбрали Holo." << endl;
        break;
    case VK_NUMPAD8:
        cout << "Вы выбрали SimpleSight." << endl;
        break;
    case VK_NUMPAD9:
        cout << "Вы выбрали 16x." << endl;
        break;
    case VK_SUBTRACT:
        cout << "Вы выбрали Silencer." << endl;
        break;
    default:
        break;
    }
}

void changeColor(int color) {
    SetConsoleTextAttribute(GetStdHandle(STD_OUTPUT_HANDLE), color);
}

void printMenu() {
    cout << "\rFOV: 70-90   Чувствительность: " << endl;
    cout << "   ОРУЖИЕ                ПРИЦЕЛЫ\n";
    cout << "---------------------------------------\n";
    cout << "num0 - Ak             num6 - 8x\n";
    cout << "num1 - LR             num7 - Holo\n";
    cout << "num2 - MP5            num8 - SimpleSight\n";
    cout << "num3 - Tompshon       num9 - 16x\n";
    cout << "num4 - SMG\n";
    cout << "num5 - M249\n";
    cout << "---------------------------------------\n";
    cout << "           ГЛУШИТЕЛЬ\n";
    cout << "---------------------------------------\n";
    cout << "num- - Silencer\n";
    cout << "---------------------------------------\n";
    cout << "АХХААХХАХАХА: ";
}

int main() {

    SetConsoleOutputCP(65001);
    SetConsoleCP(65001);

    // Цвет по умолчанию (белый)
    changeColor(15);

    printMenu();

 
    while (true) {
      
        for (int key = VK_NUMPAD0; key <= VK_SUBTRACT; ++key) {
            if (GetAsyncKeyState(key) & 0x8000) {
                // Изменяем цвет на голубой при выборе оружия
                if (key >= VK_NUMPAD0 && key <= VK_NUMPAD5) {
                    changeColor(11); // Голубой цвет
                    handleWeapon(key);
                    changeColor(15); // белый цвет
                }
                //при выборе прицела
                else if (key >= VK_NUMPAD6 && key <= VK_SUBTRACT) {
                    changeColor(11); // Голубой цвет
                    handleScope(key);
                    changeColor(15);
                }
                printMenu();
            }
        }

        Sleep(100);
    }

    return 0;
}
я написал код менюшки у меня не срабатывают нажатие не находясь в консоле также не меняется цвет на голубой при выборе и вместо кнопок на нампаде на которые я все сделал срабатывают также 0-9 вместо тех которые находятся на нампаде короче хз че делать вот код:


C++:
#include <iostream>
#include <windows.h>

using namespace std;

void handleWeapon(int key) {
    switch (key) {
    case VK_NUMPAD0:
        cout << "Вы выбрали Ak." << endl;
        break;
    case VK_NUMPAD1:
        cout << "Вы выбрали LR." << endl;
        break;
    case VK_NUMPAD2:
        cout << "Вы выбрали MP5." << endl;
        break;
    case VK_NUMPAD3:
        cout << "Вы выбрали Tompshon." << endl;
        break;
    case VK_NUMPAD4:
        cout << "Вы выбрали SMG." << endl;
        break;
    case VK_NUMPAD5:
        cout << "Вы выбрали M249." << endl;
        break;
    default:
        break;
    }
}

void handleScope(int key) {
    switch (key) {
    case VK_NUMPAD6:
        cout << "Вы выбрали 8x." << endl;
        break;
    case VK_NUMPAD7:
        cout << "Вы выбрали Holo." << endl;
        break;
    case VK_NUMPAD8:
        cout << "Вы выбрали SimpleSight." << endl;
        break;
    case VK_NUMPAD9:
        cout << "Вы выбрали 16x." << endl;
        break;
    case VK_SUBTRACT:
        cout << "Вы выбрали Silencer." << endl;
        break;
    default:
        break;
    }
}

void changeColor(int color) {
    SetConsoleTextAttribute(GetStdHandle(STD_OUTPUT_HANDLE), color);
}

void printMenu() {
    cout << "\rFOV: 70-90   Чувствительность: " << endl;
    cout << "   ОРУЖИЕ                ПРИЦЕЛЫ\n";
    cout << "---------------------------------------\n";
    cout << "num0 - Ak             num6 - 8x\n";
    cout << "num1 - LR             num7 - Holo\n";
    cout << "num2 - MP5            num8 - SimpleSight\n";
    cout << "num3 - Tompshon       num9 - 16x\n";
    cout << "num4 - SMG\n";
    cout << "num5 - M249\n";
    cout << "---------------------------------------\n";
    cout << "           ГЛУШИТЕЛЬ\n";
    cout << "---------------------------------------\n";
    cout << "num- - Silencer\n";
    cout << "---------------------------------------\n";
    cout << "АХХААХХАХАХА: ";
}

int main() {

    SetConsoleOutputCP(65001);
    SetConsoleCP(65001);

    // Цвет по умолчанию (белый)
    changeColor(15);

    printMenu();


    while (true) {
     
        for (int key = VK_NUMPAD0; key <= VK_SUBTRACT; ++key) {
            if (GetAsyncKeyState(key) & 0x8000) {
                // Изменяем цвет на голубой при выборе оружия
                if (key >= VK_NUMPAD0 && key <= VK_NUMPAD5) {
                    changeColor(11); // Голубой цвет
                    handleWeapon(key);
                    changeColor(15); // белый цвет
                }
                //при выборе прицела
                else if (key >= VK_NUMPAD6 && key <= VK_SUBTRACT) {
                    changeColor(11); // Голубой цвет
                    handleScope(key);
                    changeColor(15);
                }
                printMenu();
            }
        }

        Sleep(100);
    }

    return 0;
}
или я уже под вечер ничего не понимаю или велком шиза
 
Начинающий
Статус
Оффлайн
Регистрация
9 Май 2024
Сообщения
2
Реакции[?]
0
Поинты[?]
0
PasterDabokin228,
C++:
#include <iostream>
#include <windows.h>

void handleWeapon(int key) {
    switch (key) {
    case VK_NUMPAD0:
        std::cout << "Вы выбрали Ak.\n";
        break;
    case VK_NUMPAD1:
        std::cout << "Вы выбрали LR.\n";
        break;
    case VK_NUMPAD2:
        std::cout << "Вы выбрали MP5.\n";
        break;
    case VK_NUMPAD3:
        std::cout << "Вы выбрали Tompshon.\n";
        break;
    case VK_NUMPAD4:
        std::cout << "Вы выбрали SMG.\n";
        break;
    case VK_NUMPAD5:
        std::cout << "Вы выбрали M249.\n";
        break;
    default:
        break;
    }
}

void handleScope(int key) {
    switch (key) {
    case VK_NUMPAD6:
        std::cout << "Вы выбрали 8x.\n";
        break;
    case VK_NUMPAD7:
        std::cout << "Вы выбрали Holo.\n";
        break;
    case VK_NUMPAD8:
        std::cout << "Вы выбрали SimpleSight.\n";
        break;
    case VK_NUMPAD9:
        std::cout << "Вы выбрали 16x.\n";
        break;
    case VK_SUBTRACT:
        std::cout << "Вы выбрали Silencer.\n";
        break;
    default:
        break;
    }
}

void changeColor(int color) {
    SetConsoleTextAttribute(GetStdHandle(STD_OUTPUT_HANDLE), color);
}

void printMenu() {
    std::cout << "\rFOV: 70-90   Чувствительность: \n";
    std::cout << "   ОРУЖИЕ                ПРИЦЕЛЫ\n";
    std::cout << "---------------------------------------\n";
    std::cout << "num0 - Ak             num6 - 8x\n";
    std::cout << "num1 - LR             num7 - Holo\n";
    std::cout << "num2 - MP5            num8 - SimpleSight\n";
    std::cout << "num3 - Tompshon       num9 - 16x\n";
    std::cout << "num4 - SMG\n";
    std::cout << "num5 - M249\n";
    std::cout << "---------------------------------------\n";
    std::cout << "           ГЛУШИТЕЛЬ\n";
    std::cout << "---------------------------------------\n";
    std::cout << "num- - Silencer\n";
    std::cout << "---------------------------------------\n";
    std::cout << "АХХААХХАХАХА: ";
}

int main() {
    SetConsoleOutputCP(65001);
    SetConsoleCP(65001);

    changeColor(15);

    printMenu();

    while (true) {
        for (int key = VK_NUMPAD0; key <= VK_NUMPAD9; ++key) {
            if (GetAsyncKeyState(key) & 0x8000) {
                changeColor(11);
                handleWeapon(key);
                changeColor(15);
                printMenu();
            }
        }

        if (GetAsyncKeyState(VK_SUBTRACT) & 0x8000) {
            changeColor(11);
            handleScope(VK_SUBTRACT);
            changeColor(15);
            printMenu();
        }

        Sleep(100);
    }

    return 0;
}
PasterDabokin228, Не забудь включить на клавиатуре Num Lock
 
Последнее редактирование модератором:
Начинающий
Статус
Оффлайн
Регистрация
6 Ноя 2023
Сообщения
16
Реакции[?]
4
Поинты[?]
4K
я написал код менюшки у меня не срабатывают нажатие не находясь в консоле также не меняется цвет на голубой при выборе и вместо кнопок на нампаде на которые я все сделал срабатывают также 0-9 вместо тех которые находятся на нампаде короче хз че делать вот код:


C++:
#include <iostream>
#include <windows.h>

using namespace std;

void handleWeapon(int key) {
    switch (key) {
    case VK_NUMPAD0:
        cout << "Вы выбрали Ak." << endl;
        break;
    case VK_NUMPAD1:
        cout << "Вы выбрали LR." << endl;
        break;
    case VK_NUMPAD2:
        cout << "Вы выбрали MP5." << endl;
        break;
    case VK_NUMPAD3:
        cout << "Вы выбрали Tompshon." << endl;
        break;
    case VK_NUMPAD4:
        cout << "Вы выбрали SMG." << endl;
        break;
    case VK_NUMPAD5:
        cout << "Вы выбрали M249." << endl;
        break;
    default:
        break;
    }
}

void handleScope(int key) {
    switch (key) {
    case VK_NUMPAD6:
        cout << "Вы выбрали 8x." << endl;
        break;
    case VK_NUMPAD7:
        cout << "Вы выбрали Holo." << endl;
        break;
    case VK_NUMPAD8:
        cout << "Вы выбрали SimpleSight." << endl;
        break;
    case VK_NUMPAD9:
        cout << "Вы выбрали 16x." << endl;
        break;
    case VK_SUBTRACT:
        cout << "Вы выбрали Silencer." << endl;
        break;
    default:
        break;
    }
}

void changeColor(int color) {
    SetConsoleTextAttribute(GetStdHandle(STD_OUTPUT_HANDLE), color);
}

void printMenu() {
    cout << "\rFOV: 70-90   Чувствительность: " << endl;
    cout << "   ОРУЖИЕ                ПРИЦЕЛЫ\n";
    cout << "---------------------------------------\n";
    cout << "num0 - Ak             num6 - 8x\n";
    cout << "num1 - LR             num7 - Holo\n";
    cout << "num2 - MP5            num8 - SimpleSight\n";
    cout << "num3 - Tompshon       num9 - 16x\n";
    cout << "num4 - SMG\n";
    cout << "num5 - M249\n";
    cout << "---------------------------------------\n";
    cout << "           ГЛУШИТЕЛЬ\n";
    cout << "---------------------------------------\n";
    cout << "num- - Silencer\n";
    cout << "---------------------------------------\n";
    cout << "АХХААХХАХАХА: ";
}

int main() {

    SetConsoleOutputCP(65001);
    SetConsoleCP(65001);

    // Цвет по умолчанию (белый)
    changeColor(15);

    printMenu();


    while (true) {
     
        for (int key = VK_NUMPAD0; key <= VK_SUBTRACT; ++key) {
            if (GetAsyncKeyState(key) & 0x8000) {
                // Изменяем цвет на голубой при выборе оружия
                if (key >= VK_NUMPAD0 && key <= VK_NUMPAD5) {
                    changeColor(11); // Голубой цвет
                    handleWeapon(key);
                    changeColor(15); // белый цвет
                }
                //при выборе прицела
                else if (key >= VK_NUMPAD6 && key <= VK_SUBTRACT) {
                    changeColor(11); // Голубой цвет
                    handleScope(key);
                    changeColor(15);
                }
                printMenu();
            }
        }

        Sleep(100);
    }

    return 0;
}
или я уже под вечер ничего не понимаю или велком шиза
Если ты хочешь, чтобы ещё в игре была обработка, то надо wndproc хукать.
 
Статус
В этой теме нельзя размещать новые ответы.
Сверху Снизу