C++ Prediction для XY0

Я у мамы даун
Начинающий
Статус
Оффлайн
Регистрация
2 Янв 2019
Сообщения
81
Реакции[?]
19
Поинты[?]
0
predict.cpp
Код:
void prediction::start()
{
    static auto g_pLocalPlayer = Globals::LocalPlayer;
    if (!g_pLocalPlayer)
        return;

    static auto oldorigin = g_pLocalPlayer->GetOrigin();
    unpred_vel = (g_pLocalPlayer->GetOrigin() - oldorigin) * (1.0 / g_pGlobalVars->intervalPerTick);
    oldorigin = g_pLocalPlayer->GetOrigin();

    unpred_eyepos = g_pLocalPlayer->GetEyePosition();
    static bool is_initialized = false;
    if (!is_initialized)
    {
        m_prediction_random_seed = *(int**)(Utils::FindSignature("client_panorama.dll", "8B 0D ? ? ? ? BA ? ? ? ? E8 ? ? ? ? 83 C4 04") + 2);
        is_initialized = true;
    }
   

    *m_prediction_random_seed = MD5_PseudoRandom(Globals::pCmd->command_number) & 0x7FFFFFFF;

    orig_currtime = g_pGlobalVars->curtime;
    orig_frametime = g_pGlobalVars->frametime;

    g_pGlobalVars->curtime = get_curtime();
    g_pGlobalVars->frametime = g_pLocalPlayer->GetFlags() & FL_FROZEN ? 0 : g_pGlobalVars->intervalPerTick;

    g_pMovement->StartTrackPredictionErrors(g_pLocalPlayer);

    memset(&move_data, 0, sizeof(move_data));
    g_pMoveHelper->SetHost(g_pLocalPlayer);
    g_pPrediction->SetupMove(g_pLocalPlayer, Globals::pCmd, g_pMoveHelper, &move_data);
    g_pMovement->ProcessMovement(g_pLocalPlayer, &move_data);
    g_pPrediction->FinishMove(g_pLocalPlayer, Globals::pCmd, &move_data);

    static auto pred_oldorigin = g_pLocalPlayer->GetOrigin();
    pred_vel = (g_pLocalPlayer->GetOrigin() - pred_oldorigin) * (1.0 / g_pGlobalVars->intervalPerTick);
    pred_oldorigin = g_pLocalPlayer->GetOrigin();

    unpred_eyepos = g_pLocalPlayer->GetEyePosition();
}

void prediction::finish() const
{
    static auto g_pLocalPlayer = Globals::LocalPlayer;
    if (!g_pLocalPlayer)
        return;

    g_pMovement->FinishTrackPredictionErrors(g_pLocalPlayer);
    g_pMoveHelper->SetHost(nullptr);

    *m_prediction_random_seed = -1;

    g_pGlobalVars->curtime = orig_currtime;
    g_pGlobalVars->frametime = orig_frametime;
}

int prediction::get_tickbase()
{
    return Globals::LocalPlayer->GetTickBase();
}

float prediction::get_curtime()
{
    return get_tickbase() * g_pGlobalVars->intervalPerTick;
}

float prediction::get_unpred_curtime()
{
    return orig_currtime;
}

Vector prediction::get_unpred_vel()
{
    return unpred_vel;
}

Vector prediction::get_pred_vel()
{
    return pred_vel;
}

Vector prediction::get_unpred_eyepos()
{
    return unpred_eyepos;
}
predict.hpp
Код:
#pragma once
#include "../../SDK/singleton.h"
#include "../../SDK/Vector.h"
#include "../../SDK/CPrediction.h"
class prediction : public singleton<prediction>
{
public:
    void start();
    void finish() const;
    static int get_tickbase();
    static float get_curtime();
    float get_unpred_curtime();
    Vector get_unpred_vel();
    Vector get_pred_vel();
    Vector get_unpred_eyepos();
private:
    float orig_currtime = 0.f;
    float orig_frametime = 0.f;
    CMoveData move_data;

    int* m_prediction_random_seed = nullptr;
    Vector unpred_vel;
    Vector unpred_eyepos;
    Vector pred_vel;
};
 
Я у мамы даун
Начинающий
Статус
Оффлайн
Регистрация
2 Янв 2019
Сообщения
81
Реакции[?]
19
Поинты[?]
0
Скрытое содержимое
class IMoveHelper
{
public:
virtual void _vpad() = 0;
virtual void SetHost( IClientEntity* host ) = 0;

bool m_bFirstRunOfFunctions : 1;
bool m_bGameCodeMovedPlayer : 1;
int m_nPlayerHandle; // edict index on server, client entity handle on client=
int m_nImpulseCommand; // Impulse command issued.
QAngle m_vecViewAngles; // Command view angles (local space)
QAngle m_vecAbsViewAngles; // Command view angles (world space)
int m_nButtons; // Attack buttons.
int m_nOldButtons; // From host_client->oldbuttons;
float m_flForwardMove;
float m_flSideMove;
float m_flUpMove;
float m_flMaxSpeed;
float m_flClientMaxSpeed;
Vector m_vecVelocity; // edict::velocity // Current movement direction.
QAngle m_vecAngles; // edict::angles
QAngle m_vecOldAngles;
float m_outStepHeight; // how much you climbed this move
Vector m_outWishVel; // This is where you tried
Vector m_outJumpVel; // This is your jump velocity
Vector m_vecConstraintCenter;
float m_flConstraintRadius;
float m_flConstraintWidth;
float m_flConstraintSpeedFactor;
float m_flUnknown[ 5 ];
Vector m_vecAbsOrigin;
};
 
Участник
Статус
Оффлайн
Регистрация
15 Дек 2018
Сообщения
1,081
Реакции[?]
213
Поинты[?]
0
ahah xD what whould it predict there?
OT you need to call it in createmove and call some stuff inside begin and end functions that u need to predict.
предиктить модельную экзекуцию, а вообще в сурсе хуя уже есть предикшн который посредством сочетания клавиш CTRL + F можно заменить и не задавать такие глупые вопросы
 
//comment your shit paste
Пользователь
Статус
Оффлайн
Регистрация
16 Апр 2017
Сообщения
450
Реакции[?]
119
Поинты[?]
0
предиктить модельную экзекуцию, а вообще в сурсе хуя уже есть предикшн который посредством сочетания клавиш CTRL + F можно заменить и не задавать такие глупые вопросы
Чего глупого я написал? И вообще глупость тут написал ты) Сам то веришь в то что написал?
И вообще для фикса всех модельных *экзекуций* тебе хватит 2-х фрэйм стэйджей) Но ты написал конечно эта тема не про это)
 
CoderAlmir
Забаненный
Статус
Оффлайн
Регистрация
24 Мар 2020
Сообщения
58
Реакции[?]
26
Поинты[?]
0
Обратите внимание, пользователь заблокирован на форуме. Не рекомендуется проводить сделки.
Оставьте предикт фт в покое
 
Участник
Статус
Оффлайн
Регистрация
15 Дек 2018
Сообщения
1,081
Реакции[?]
213
Поинты[?]
0
Чего глупого я написал? И вообще глупость тут написал ты) Сам то веришь в то что написал?
И вообще для фикса всех модельных *экзекуций* тебе хватит 2-х фрэйм стэйджей) Но ты написал конечно эта тема не про это)
понятное дело ибо ответ был рофлом, а смысл был в том, что зачем отвечать глупым людям которые не знают куда засунуть предикшн
 
Сверху Снизу