Подпишитесь на наш Telegram-канал, чтобы всегда быть в курсе важных обновлений! Перейти

Вопрос Проблема с RunCommand

  • Автор темы Автор темы train67
  • Дата начала Дата начала
Участник
Участник
Статус
Оффлайн
Регистрация
26 Апр 2018
Сообщения
866
Реакции
181
Пишет проблему IMoveHelper*

Ошибка C2061 синтаксическая ошибка: идентификатор "IMoveHelper"
Ошибка C2511 void Hooks::RunCommandFn(void *,void *,C_BaseEntity *,CUserCmd *,IMoveHelper *): перегруженная функция-член не найдена в "Hooks"
Как устранить проблему не по еврейский, буду очень благодарен.

Код:
Expand Collapse Copy
class IMoveHelper
{
public:
    virtual void _vpad() = 0;
    virtual void SetHost(C_BaseEntity* host) = 0;
private:
    virtual void pad00() = 0;
    virtual void pad01() = 0;
public:
    virtual void ProcessImpacts() = 0;
};
extern IMoveHelper* g_pMoveHelper;


Код:
Expand Collapse Copy
using RunCommand_t = void(__thiscall*)(void*, C_BaseEntity*, CUserCmd*, IMoveHelper*);
void __fastcall Hooks::RunCommandFn(void* ecx, void* edx, C_BaseEntity* player, CUserCmd* pCmd, IMoveHelper* g_pMoveHelper)
{
    static auto RunCommand = g_Hooks.pPredictionHook->GetOriginal< RunCommand_t >(19);

    if (player == nullptr || Globals::LocalPlayer == nullptr || !Globals::LocalPlayer->IsAlive())
        return RunCommand(ecx, player, pCmd, g_pMoveHelper);

    if (g_pEngine->IsConnected() && g_pEngine->IsInGame()) {
        if (player == Globals::LocalPlayer) {
            if (int(1.f / g_pGlobalVars->intervalPerTick) + unpdred_tick + 6 <= pCmd->tick_count)
            {
                pCmd->hasbeenpredicted = true;
                return RunCommand(ecx, player, pCmd, g_pMoveHelper);;
            }

            int m_nTickbase = Globals::LocalPlayer->GetTickBase();
            int m_flCurtime = g_pGlobalVars->curtime;

            if (pCmd->command_number == cmd_tick) {
                Globals::LocalPlayer->GetTickBasePtr() = base_tick - Globals::m_nTickbaseShift + 1;
                ++Globals::LocalPlayer->GetTickBasePtr();
                g_pGlobalVars->curtime = TICKS_TO_TIME(Globals::LocalPlayer->GetTickBasePtr());
            }

            RunCommand(ecx, player, pCmd, g_pMoveHelper);

            if (pCmd->command_number == cmd_tick)
            {
                ++Globals::LocalPlayer->GetTickBasePtr() = m_nTickbase;
                g_pGlobalVars->curtime = m_flCurtime;
            }

        }
    }
    else
        RunCommand(ecx, player, pCmd, g_pMoveHelper);
}
 
Ошибка C2511 void Hooks::RunCommandFn(void *,void *,C_BaseEntity *,CUserCmd *,IMoveHelper *): перегруженная функция-член не найдена в "Hooks"
Ну тут все написано
Пишет проблему IMoveHelper*

Ошибка C2061 синтаксическая ошибка: идентификатор "IMoveHelper"
Ошибка C2511 void Hooks::RunCommandFn(void *,void *,C_BaseEntity *,CUserCmd *,IMoveHelper *): перегруженная функция-член не найдена в "Hooks"
Как устранить проблему не по еврейский, буду очень благодарен.

Код:
Expand Collapse Copy
class IMoveHelper
{
public:
    virtual void _vpad() = 0;
    virtual void SetHost(C_BaseEntity* host) = 0;
private:
    virtual void pad00() = 0;
    virtual void pad01() = 0;
public:
    virtual void ProcessImpacts() = 0;
};
extern IMoveHelper* g_pMoveHelper;


Код:
Expand Collapse Copy
using RunCommand_t = void(__thiscall*)(void*, C_BaseEntity*, CUserCmd*, IMoveHelper*);
void __fastcall Hooks::RunCommandFn(void* ecx, void* edx, C_BaseEntity* player, CUserCmd* pCmd, IMoveHelper* g_pMoveHelper)
{
    static auto RunCommand = g_Hooks.pPredictionHook->GetOriginal< RunCommand_t >(19);

    if (player == nullptr || Globals::LocalPlayer == nullptr || !Globals::LocalPlayer->IsAlive())
        return RunCommand(ecx, player, pCmd, g_pMoveHelper);

    if (g_pEngine->IsConnected() && g_pEngine->IsInGame()) {
        if (player == Globals::LocalPlayer) {
            if (int(1.f / g_pGlobalVars->intervalPerTick) + unpdred_tick + 6 <= pCmd->tick_count)
            {
                pCmd->hasbeenpredicted = true;
                return RunCommand(ecx, player, pCmd, g_pMoveHelper);;
            }

            int m_nTickbase = Globals::LocalPlayer->GetTickBase();
            int m_flCurtime = g_pGlobalVars->curtime;

            if (pCmd->command_number == cmd_tick) {
                Globals::LocalPlayer->GetTickBasePtr() = base_tick - Globals::m_nTickbaseShift + 1;
                ++Globals::LocalPlayer->GetTickBasePtr();
                g_pGlobalVars->curtime = TICKS_TO_TIME(Globals::LocalPlayer->GetTickBasePtr());
            }

            RunCommand(ecx, player, pCmd, g_pMoveHelper);

            if (pCmd->command_number == cmd_tick)
            {
                ++Globals::LocalPlayer->GetTickBasePtr() = m_nTickbase;
                g_pGlobalVars->curtime = m_flCurtime;
            }

        }
    }
    else
        RunCommand(ecx, player, pCmd, g_pMoveHelper);
}
Скинь сурс
 
Последнее редактирование:

Вложения

Обратите внимание, пользователь заблокирован на форуме. Не рекомендуется проводить сделки.
в ошибке все сказано просто заинклудь свой CPrediction
 
Назад
Сверху Снизу