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

Исходник (ADAPTED TO WEAVE) ONETAP v3 WriteUsercmdDeltaToBuffer + Static or Telleport DT mode

  • Автор темы Автор темы prismA
  • Дата начала Дата начала
Начинающий
Начинающий
Статус
Оффлайн
Регистрация
12 Ноя 2017
Сообщения
39
Реакции
14
C++:
Expand Collapse Copy
bool __fastcall Hooked_WriteUsercmdDeltaToBuffer(void* ecx, void*, int slot, bf_write* buf, int from, int to, bool isnewcommand)
{
    static auto ofunct = g_pClientHook->GetOriginal <WriteUsercmdDeltaToBufferFn>(24);

    static auto retn = csgo->Utils.FindPatternIDA(GetModuleHandleA(g_Modules[fnv::hash(hs::engine_dll::s().c_str())].c_str()),
        hs::write_user_cmd_retn::s().c_str());

    if ((_ReturnAddress()) != retn || csgo->DoUnload)
        return ofunct(ecx, slot, buf, from, to, isnewcommand);

    if (interfaces.engine->IsConnected() && interfaces.engine->IsInGame()) {
        if (csgo->game_rules->IsFreezeTime())
            return ofunct(ecx, slot, buf, from, to, isnewcommand);


        if (csgo->m_nTickbaseShift <= 0 || csgo->client_state->iChokedCommands > 3)
            return ofunct(ecx, slot, buf, from, to, isnewcommand);

        if (from != -1)
            return true;
        uintptr_t stackbase;
        __asm mov stackbase, ebp;
        CCLCMsg_Move_t* msg = reinterpret_cast<CCLCMsg_Move_t*>(stackbase + 0xFCC);
        auto net_channel = *reinterpret_cast <INetChannel**> (reinterpret_cast <uintptr_t> (csgo->client_state) + 0x9C);
        int32_t new_commands = msg->m_nNewCommands;

        int32_t next_cmdnr = csgo->client_state->nLastOutgoingCommand + csgo->client_state->iChokedCommands + 1;
            int32_t total_new_commands = abs(csgo->m_nTickbaseShift) + new_commands;

        csgo->m_nTickbaseShift -= total_new_commands;

        from = -1;
        msg->m_nNewCommands = total_new_commands;
        msg->m_nBackupCommands = 0;

        for (to = next_cmdnr - new_commands + 1; to <= next_cmdnr; to++) {
            if (!ofunct(ecx, slot, buf, from, to, true))
                return false;

            from = to;
        }

        CUserCmd* last_realCmd = interfaces.input->GetUserCmd(slot, from);
        CUserCmd fromCmd;



        CUserCmd m_nToCmd = *last_realCmd, m_nFromCmd = *last_realCmd;

        CUserCmd toCmd = fromCmd;
        toCmd.command_number++;


        // dont want to tp
        if (vars.ragebot.double_tap_mode == 0)
        toCmd.tick_count += interfaces.global_vars->tickcount + 2 * interfaces.global_vars->tickcount;

        // we want to tp
        if (vars.ragebot.double_tap_mode == 1)
        toCmd.tick_count++;


        for (int i = new_commands; i <= total_new_commands; i++) {
            WriteUsercmd(buf, &toCmd, &fromCmd);
            fromCmd = toCmd;
            fromCmd.viewangles.x = toCmd.viewangles.x;
            fromCmd.impulse = toCmd.impulse;
            fromCmd.weaponselect = toCmd.weaponselect;
            fromCmd.aimdirection.y = toCmd.aimdirection.y;
            fromCmd.weaponsubtype = toCmd.weaponsubtype;
            fromCmd.upmove = toCmd.upmove;
            fromCmd.random_seed = toCmd.random_seed;
            fromCmd.mousedx = toCmd.mousedx;
            fromCmd.pad_0x4C[3] = toCmd.pad_0x4C[3];
            fromCmd.command_number = toCmd.command_number;
            fromCmd.tick_count = toCmd.tick_count;
            fromCmd.mousedy = toCmd.mousedy;
            fromCmd.pad_0x4C[19] = toCmd.pad_0x4C[19];
            fromCmd.hasbeenpredicted = toCmd.hasbeenpredicted;
            fromCmd.pad_0x4C[23] = toCmd.pad_0x4C[23];
            toCmd.command_number++;
            toCmd.tick_count++;

        }
        return true;

    }
    else
        return ofunct(ecx, slot, buf, from, to, isnewcommand);
}

I added that to my cheat and i made it so much better ツ
 
Обратите внимание, пользователь заблокирован на форуме. Не рекомендуется проводить сделки.
for (int i = new_commands; i <= total_new_commands; i++) { WriteUsercmd(buf, &toCmd, &fromCmd); fromCmd = toCmd; fromCmd.viewangles.x = toCmd.viewangles.x; fromCmd.impulse = toCmd.impulse; fromCmd.weaponselect = toCmd.weaponselect; fromCmd.aimdirection.y = toCmd.aimdirection.y; fromCmd.weaponsubtype = toCmd.weaponsubtype; fromCmd.upmove = toCmd.upmove; fromCmd.random_seed = toCmd.random_seed; fromCmd.mousedx = toCmd.mousedx; fromCmd.pad_0x4C[3] = toCmd.pad_0x4C[3]; fromCmd.command_number = toCmd.command_number; fromCmd.tick_count = toCmd.tick_count; fromCmd.mousedy = toCmd.mousedy; fromCmd.pad_0x4C[19] = toCmd.pad_0x4C[19]; fromCmd.hasbeenpredicted = toCmd.hasbeenpredicted; fromCmd.pad_0x4C[23] = toCmd.pad_0x4C[23]; toCmd.command_number++; toCmd.tick_count++; }
Mi ne gordie, mi vse spastim!!!!!!!!! :flushed: :flushed: :flushed: :flushed: :flushed: :flushed: :flushed:
 
C++:
Expand Collapse Copy
            fromCmd = toCmd;
            fromCmd.viewangles.x = toCmd.viewangles.x;
            fromCmd.impulse = toCmd.impulse;
            fromCmd.weaponselect = toCmd.weaponselect;
            fromCmd.aimdirection.y = toCmd.aimdirection.y;
            fromCmd.weaponsubtype = toCmd.weaponsubtype;
            fromCmd.upmove = toCmd.upmove;
            fromCmd.random_seed = toCmd.random_seed;
            fromCmd.mousedx = toCmd.mousedx;
            fromCmd.pad_0x4C[3] = toCmd.pad_0x4C[3];
            fromCmd.command_number = toCmd.command_number;
            fromCmd.tick_count = toCmd.tick_count;
            fromCmd.mousedy = toCmd.mousedy;
            fromCmd.pad_0x4C[19] = toCmd.pad_0x4C[19];
            fromCmd.hasbeenpredicted = toCmd.hasbeenpredicted;
            fromCmd.pad_0x4C[23] = toCmd.pad_0x4C[23];
нахуя это делать если заменяется 1 строчкой -
fromCmd = toCmd;
 
Обратите внимание, пользователь заблокирован на форуме. Не рекомендуется проводить сделки.
C++:
Expand Collapse Copy
 fromCmd = toCmd;
            fromCmd.viewangles.x = toCmd.viewangles.x;
            fromCmd.impulse = toCmd.impulse;
            fromCmd.weaponselect = toCmd.weaponselect;
            fromCmd.aimdirection.y = toCmd.aimdirection.y;
            fromCmd.weaponsubtype = toCmd.weaponsubtype;
            fromCmd.upmove = toCmd.upmove;
            fromCmd.random_seed = toCmd.random_seed;
            fromCmd.mousedx = toCmd.mousedx;
            fromCmd.pad_0x4C[3] = toCmd.pad_0x4C[3];
            fromCmd.command_number = toCmd.command_number;
            fromCmd.tick_count = toCmd.tick_count;
            fromCmd.mousedy = toCmd.mousedy;
            fromCmd.pad_0x4C[19] = toCmd.pad_0x4C[19];
            fromCmd.hasbeenpredicted = toCmd.hasbeenpredicted;
            fromCmd.pad_0x4C[23] = toCmd.pad_0x4C[23];
}

I added that to my cheat and i made it so much better ツ
Говно, мусор, жопа.
Во первых лерн цпп, а во вторых чекать ретурн адреса абсолютно юзлес, она вызывается только в CL_SendMove
 
Говно, мусор, жопа.
Во первых лерн цпп, а во вторых чекать ретурн адреса абсолютно юзлес, она вызывается только в CL_SendMove

Sorry, but looks like you don't know about what you are talking, since this is about understanding the game engine and not c++ exactly (learn.cpp teachs you to learn c++, not about the source engine). Also, this was posted in this forum as onetap dump. I just addapted it to wave and i added the option to telleport dt or static.
 
Обратите внимание, пользователь заблокирован на форуме. Не рекомендуется проводить сделки.
Sorry, but looks like you don't know about what you are talking, since this is about understanding the game engine and not c++ exactly (learn.cpp teachs you to learn c++, not about the source engine). Also, this was posted in this forum as onetap dump. I just addapted it to wave and i added the option to telleport dt or static.
yo, can you give me the dt mode code both for rage and menu.cpp? I've defined it but idk what to do now xD
 
Последнее редактирование:
C++:
Expand Collapse Copy
bool __fastcall Hooked_WriteUsercmdDeltaToBuffer(void* ecx, void*, int slot, bf_write* buf, int from, int to, bool isnewcommand)
{
    static auto ofunct = g_pClientHook->GetOriginal <WriteUsercmdDeltaToBufferFn>(24);

    static auto retn = csgo->Utils.FindPatternIDA(GetModuleHandleA(g_Modules[fnv::hash(hs::engine_dll::s().c_str())].c_str()),
        hs::write_user_cmd_retn::s().c_str());

    if ((_ReturnAddress()) != retn || csgo->DoUnload)
        return ofunct(ecx, slot, buf, from, to, isnewcommand);

    if (interfaces.engine->IsConnected() && interfaces.engine->IsInGame()) {
        if (csgo->game_rules->IsFreezeTime())
            return ofunct(ecx, slot, buf, from, to, isnewcommand);


        if (csgo->m_nTickbaseShift <= 0 || csgo->client_state->iChokedCommands > 3)
            return ofunct(ecx, slot, buf, from, to, isnewcommand);

        if (from != -1)
            return true;
        uintptr_t stackbase;
        __asm mov stackbase, ebp;
        CCLCMsg_Move_t* msg = reinterpret_cast<CCLCMsg_Move_t*>(stackbase + 0xFCC);
        auto net_channel = *reinterpret_cast <INetChannel**> (reinterpret_cast <uintptr_t> (csgo->client_state) + 0x9C);
        int32_t new_commands = msg->m_nNewCommands;

        int32_t next_cmdnr = csgo->client_state->nLastOutgoingCommand + csgo->client_state->iChokedCommands + 1;
            int32_t total_new_commands = abs(csgo->m_nTickbaseShift) + new_commands;

        csgo->m_nTickbaseShift -= total_new_commands;

        from = -1;
        msg->m_nNewCommands = total_new_commands;
        msg->m_nBackupCommands = 0;

        for (to = next_cmdnr - new_commands + 1; to <= next_cmdnr; to++) {
            if (!ofunct(ecx, slot, buf, from, to, true))
                return false;

            from = to;
        }

        CUserCmd* last_realCmd = interfaces.input->GetUserCmd(slot, from);
        CUserCmd fromCmd;



        CUserCmd m_nToCmd = *last_realCmd, m_nFromCmd = *last_realCmd;

        CUserCmd toCmd = fromCmd;
        toCmd.command_number++;


        // dont want to tp
        if (vars.ragebot.double_tap_mode == 0)
        toCmd.tick_count += interfaces.global_vars->tickcount + 2 * interfaces.global_vars->tickcount;

        // we want to tp
        if (vars.ragebot.double_tap_mode == 1)
        toCmd.tick_count++;


        for (int i = new_commands; i <= total_new_commands; i++) {
            WriteUsercmd(buf, &toCmd, &fromCmd);
            fromCmd = toCmd;
            fromCmd.viewangles.x = toCmd.viewangles.x;
            fromCmd.impulse = toCmd.impulse;
            fromCmd.weaponselect = toCmd.weaponselect;
            fromCmd.aimdirection.y = toCmd.aimdirection.y;
            fromCmd.weaponsubtype = toCmd.weaponsubtype;
            fromCmd.upmove = toCmd.upmove;
            fromCmd.random_seed = toCmd.random_seed;
            fromCmd.mousedx = toCmd.mousedx;
            fromCmd.pad_0x4C[3] = toCmd.pad_0x4C[3];
            fromCmd.command_number = toCmd.command_number;
            fromCmd.tick_count = toCmd.tick_count;
            fromCmd.mousedy = toCmd.mousedy;
            fromCmd.pad_0x4C[19] = toCmd.pad_0x4C[19];
            fromCmd.hasbeenpredicted = toCmd.hasbeenpredicted;
            fromCmd.pad_0x4C[23] = toCmd.pad_0x4C[23];
            toCmd.command_number++;
            toCmd.tick_count++;

        }
        return true;

    }
    else
        return ofunct(ecx, slot, buf, from, to, isnewcommand);
}

I added that to my cheat and i made it so much better ツ
Man what?
I hope this is a joke

fromCmd = toCmd;

You literally set fromCmd to toCmd so why do u set everything again after this.

if (vars.ragebot.double_tap_mode == 0)
toCmd.tick_count += interfaces.global_vars->tickcount + 2 * interfaces.global_vars->tickcount;

That fucking stops u from simulating not fucking teleporting so u will wait an additional 300 ms before shooting.
Before releasing this shit could you at least learn how cmds are processed on server.
 
Назад
Сверху Снизу