Вопрос Thirdperson cs2

Начинающий
Статус
Оффлайн
Регистрация
13 Окт 2022
Сообщения
2
Реакции[?]
0
Поинты[?]
0
Я не так давно начал писать internal чит и столкнулся с проблемой:

C++:
int m_iObserverMode = 0x40;
const uintptr_t localPlayer = VARS::memRead<uintptr_t>(VARS::baseAddress + dwLocalPlayer);
if (thirdperson) {
     (int)(localPlayer + m_iObserverMode) = 1;
}
else {
     (int)(localPlayer + m_iObserverMode) = 0;
}

Третье лицо не работает, может с момента кс го поменялся способ смены лица, типо уже localPlayer + m_iObserverMode не работает и нужен другой способ?
 
Начинающий
Статус
Оффлайн
Регистрация
1 Ноя 2024
Сообщения
30
Реакции[?]
22
Поинты[?]
17K
Я не так давно начал писать internal чит и столкнулся с проблемой:

C++:
int m_iObserverMode = 0x40;
const uintptr_t localPlayer = VARS::memRead<uintptr_t>(VARS::baseAddress + dwLocalPlayer);
if (thirdperson) {
     (int)(localPlayer + m_iObserverMode) = 1;
}
else {
     (int)(localPlayer + m_iObserverMode) = 0;
}

Третье лицо не работает, может с момента кс го поменялся способ смены лица, типо уже localPlayer + m_iObserverMode не работает и нужен другой способ?
learncpp.com
on topic:
just get CCSGOInput interface and set bInThirdPerson to true
 
09-29-2022 Thu 18:48:59
Эксперт
Статус
Оффлайн
Регистрация
28 Ноя 2019
Сообщения
1,225
Реакции[?]
413
Поинты[?]
110K
Если ты делаешь интернал хак, то почему бы тебе не использовать интерфейсы из игры для твоих целей?
Зачем ты получаешь локалплеера по захардкоженным оффсетам, если это можно сделать обратившись к виртуальной функции из интерфейса Source2EngineToClient
Эти оффсеты ещё и поменяются после обновления игры. Твой "интернал" подход полная хуйня, так читы не делаются. Это больше похоже на экстернал.
Получай интерфейсы, используй виртуальные функции, не занимайся хуйнёй
 
Последнее редактирование:
Пользователь
Статус
Оффлайн
Регистрация
25 Мар 2021
Сообщения
186
Реакции[?]
73
Поинты[?]
31K
Если ты делаешь интернал хак, то почему бы тебе не использовать интерфейсы из игры для твоих целей?
Зачем ты получаешь локалплеера по захардкоженным оффсетам, если это можно сделать обратившись к виртуальной функции из интерфейса Source2EngineToClient
Эти оффсеты ещё и поменяются после обновления игры. Твой "интернал" подход полная хуйня, так читы не делаются. Это больше похоже на экстернал.
Получай интерфейсы, используй виртуальные функции, не занимайся хуйнёй
а павн и контроллер можно получить ещё проще) прям как игра это делает(сплит скрин ноль у локала)
 
Пользователь
Статус
Оффлайн
Регистрация
4 Окт 2014
Сообщения
183
Реакции[?]
71
Поинты[?]
15K
а павн и контроллер можно получить ещё проще) прям как игра это делает(сплит скрин ноль у локала)
у меня так, да и так легче как то ) впадлу через сплит скрин

1730912850458.png
 
Начинающий
Статус
Оффлайн
Регистрация
2 Сен 2023
Сообщения
26
Реакции[?]
3
Поинты[?]
3K
Hook OverrideView:
"48 89 5C 24 ? 48 89 6C 24 ? 48 89 74 24 ? 57 41 56 41 57 48 83 EC ? 48 8B FA E8" @client.dll
Thirdperson(no sv_cheat):
void CS_FASTCALL H::OverrideView(void* pClientModeCSNormal, CViewSetup* pSetup)
{
    const auto oOverrideView = hkOverrideView.GetOriginal();

    if (!I::Engine->IsConnected() || !I::Engine->IsInGame())
        return oOverrideView(pClientModeCSNormal, pSetup);

    if (!SDK::LocalController || !SDK::LocalController->IsPawnAlive())
        return oOverrideView(pClientModeCSNormal, pSetup);

    if (IPT::GetBindState(C_GET(KeyBind_t, Vars.nThirdpersonActivationKey)))
        enableThirdPerson = true;
    else
        enableThirdPerson = false;

    if (enableThirdPerson && C_GET(bool, Vars.bThirdperson))
    {
        cheat->InThirdperson = true;

        QAngle_t adjusted_cam_view_angle = cheat->StoreAngle;
        adjusted_cam_view_angle.x *= -1;

        pSetup->vecOrigin = CalculateCameraPosition(SDK::LocalPawn->GetEyePosition(), -C_GET(int, Vars.flThirdperson), adjusted_cam_view_angle);

        Ray_t ray{};
        GameTrace_t trace{};
        TraceFilter_t filter{ 0x1C3003, SDK::LocalPawn, nullptr, 4 };

        if (I::GameTraceManager->TraceShape(&ray, SDK::LocalPawn->GetEyePosition(), pSetup->vecOrigin, &filter, &trace))
        {
            if (trace.m_pHitEntity != nullptr)
            {
                pSetup->vecOrigin = trace.m_vecPosition;
            }
        }

        pSetup->angView = NormalizeAngles(CalcAngle(pSetup->vecOrigin, SDK::LocalPawn->GetEyePosition()));

    }

    oOverrideView(pClientModeCSNormal, pSetup);
}
 
Последнее редактирование:
Сверху Снизу