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

SR_team

like pancake
BH Team
4,722
6,380
3 вопроса:
1] Есть ли функция на то, имеет ли игрок у себя оружие под определённым id? lua:
hasCharGotWeapon(Ped ped, int weapon)
2] Можно ли как то делать изменение активации считывая нажатия с клавиатуры? Тип не так что id клавишы вводиться или её имя, а ты начал кнопку X, программа зарегала её id
3] Есть альтернатива на взятие ствола в руку? lua:
setCurrentCharWeapon(playerPed, id)
1. есть
2. можно
3. есть
 

Const

Потрачен
28
54
Обратите внимание, пользователь заблокирован на форуме. Не рекомендуется проводить сделки.
3 вопроса:
1] Есть ли функция на то, имеет ли игрок у себя оружие под определённым id? lua:
hasCharGotWeapon(Ped ped, int weapon)
2] Можно ли как то делать изменение активации считывая нажатия с клавиатуры? Тип не так что id клавишы вводиться или её имя, а ты начал кнопку X, программа зарегала её id
3] Есть альтернатива на взятие ствола в руку? lua:
setCurrentCharWeapon(playerPed, id)
1.
C++:
__int32 getCurrentWeapon() {
    return *reinterpret_cast<__int32 *>(0x00BAA410);
}

2. самый простой вариант, на скорую руку:
C++:
#include <vector>
#include <thread>

uint32_t cheat_key = 0;

void new_key(uint32_t &cheat_key) {
    std::vector<uint32_t> virtual_keys = {
        VK_INSERT,
        VK_DELETE,
        VK_HOME,
        // добавляешь сюда все айдишники клавиш, из которых будет осуществляться выбор
    };

    while (true) {
        for (auto key : virtual_keys) {
            if (GetAsyncKeyState(key)) {
                cheat_key = key;
                return;
            }
        }
    }
}

std::thread thr([&]() {
    new_key(cheat_key);
});
thr.detach();
 
  • Нравится
Реакции: bab0n

loganhackerdff

Известный
868
518
1.
C++:
__int32 getCurrentWeapon() {
    return *reinterpret_cast<__int32 *>(0x00BAA410);
}

2. самый простой вариант, на скорую руку:
C++:
#include <vector>
#include <thread>

uint32_t cheat_key = 0;

void new_key(uint32_t &cheat_key) {
    std::vector<uint32_t> virtual_keys = {
        VK_INSERT,
        VK_DELETE,
        VK_HOME,
        // добавляешь сюда все айдишники клавиш, из которых будет осуществляться выбор
    };

    while (true) {
        for (auto key : virtual_keys) {
            if (GetAsyncKeyState(key)) {
                cheat_key = key;
                return;
            }
        }
    }
}

std::thread thr([&]() {
    new_key(cheat_key);
});
thr.detach();
C++:
bool KeyButton(uint16_t& key, char cSpliter)
{
    char szKey[32];
    if (key != 0)
    {
        GetKeyNameTextA((MapVirtualKeyA(key, MAPVK_VK_TO_VSC) << 16), szKey, 32);
        sprintf(szKey, "%s###%c", szKey, cSpliter);
    }

    else
        sprintf(szKey, "...###%c", cSpliter);
    if (ImGui::Button(szKey))
        key = 0;
    if (key == 0)
        for (uint16_t i = 4; i < 255; i++)
        {
            if (ImGui::IsKeyPressed(i))
            {
                key = i;
                return true;
            }
        }
    return false;
}
 
  • Нравится
Реакции: bab0n

loganhackerdff

Известный
868
518
Почему когда я использую метод push_back у класса vector который состоит из class ChatBuble игра крашит? тоже самое и с указателями на класс
C++:
class ChatBubble
{
public:
    UINT16 PlayerID = 0;
    UINT32 color = 0;
    UINT32 expiretime = 0;
    float drawDistance = 0.f;
    string message = 0;
    ChatBubble()
    {

    }
    ~ChatBubble()
    {

    }
    void InIt(UINT16 PlayerIDC,
    UINT32 colorC,
    UINT32 expiretimeC,
    float drawDistanceC,
    string messageC)
    {
        PlayerID = PlayerIDC;
        color = colorC;
        expiretime = expiretimeC;
        drawDistance = drawDistanceC;
        message = messageC;
    }
};
 

loganhackerdff

Известный
868
518
1596476011293.png

Попробовал с структурой и в консольном приложении, тоже что-то не так
вроде нащёл проблему
 
Последнее редактирование:

bab0n

Известный
95
10
Можете описать пару способов экспорта и импорта значений переменных?
Вот подобный код на LUA:
Lua:
local defaults = {sets ={arg1 = 113,arg2 = 1,arg3 = 50, notification = true}}

local ini = inicfg.load(defaults, 'Kavo.ini')
local sets = ini.sets

function arg3(arg)
    if type(tonumber(arg)) == 'number' then
        sets.arg3 = arg
        inicfg.save(ini, 'Kavo.ini')
        printString('~y~ updated', 1000)
        addOneOffSound(0, 0, 0, 1150)
    else
        printString('~r~ error', 1000)
        addOneOffSound(0, 0, 0, 1055)
    end
end

-- пример использования
if wasKeyPressed(sets.arg1) then
        work = not work
         if work then
             printString('~p~ON', 1000)
         else
             printString('OFF', 1000)
          end
end

Я не настаиваю на текстовике, может есть какие то ещё варианты? Реестр может, или какие-то ещё файлы/директории
 
Последнее редактирование:

Dark_Knight

Me, me and me.
Друг
4,068
2,083
  • Нравится
Реакции: imring

loganhackerdff

Известный
868
518
По дефолту, все контейнеры пустые. Обнуление делать при иницилизации не нужно.
у меня присутствуют глобальные переменные , они там нарушают инкапсуляцию и крч в переменных мусор при объявлении появляется
 

Dark_Knight

Me, me and me.
Друг
4,068
2,083
Избавляйся от них тогда. Лично, глобальные крайне редко юзаю.
 

Dark_Knight

Me, me and me.
Друг
4,068
2,083
Отказывайся от них лучше. Сделай себе нормальный класс или пространство имен и работай спокойно