Вопрос Крашит игра при убирании смока

Начинающий
Статус
Оффлайн
Регистрация
19 Янв 2024
Сообщения
125
Реакции[?]
2
Поинты[?]
2K
C++:
#include "../../../hooks/hooks.h"
#include "../../../config/config.h"
// client.dll | 48 8D 05 ? ? ? ? C7 45 ? ? ? ? ? C7 45 ? ? ? ? ? 48 89 45 A0 4C 8D 45 88 48 89 45 A8 48 8D 55 98 49 8B 45 00 49 8B CD

void __fastcall H::hkRenderSmoke(void *ecx) {
    if (Config::noSmoke) return;
    return noRenderSmoke.GetOriginal()(ecx);
}
Короче взял сигнатуру SmokeRenderer, хукаю да кидаю смок просто зависает игра и вылетает через пару секунд
 
Начинающий
Статус
Оффлайн
Регистрация
2 Сен 2023
Сообщения
75
Реакции[?]
5
Поинты[?]
5K
ну вот че мне делать, че я не так делаю
"48 89 54 24 ? 55 41 55 48 8D AC 24" @client.dll
C++:
void* __fastcall hkDrawSmokeArray(void* rcx, void* pSomePointer1, void* pSomePointer2, void* pSomePointer3, void* pSomePointer4, void* pSomePointer5) {
    if (RemoveSmoke)
        return nullptr;

    oDrawSmokeArray(rcx, pSomePointer1, pSomePointer2, pSomePointer3, pSomePointer4, pSomePointer5);
}
 
Начинающий
Статус
Оффлайн
Регистрация
19 Янв 2024
Сообщения
125
Реакции[?]
2
Поинты[?]
2K
"48 89 54 24 ? 55 41 55 48 8D AC 24" @client.dll
C++:
void* __fastcall hkDrawSmokeArray(void* rcx, void* pSomePointer1, void* pSomePointer2, void* pSomePointer3, void* pSomePointer4, void* pSomePointer5) {
    if (RemoveSmoke)
        return nullptr;

    oDrawSmokeArray(rcx, pSomePointer1, pSomePointer2, pSomePointer3, pSomePointer4, pSomePointer5);
}
А какое название сигнатуры? Подскажи пожалуйста
 
Начинающий
Статус
Оффлайн
Регистрация
19 Янв 2024
Сообщения
125
Реакции[?]
2
Поинты[?]
2K
"48 89 54 24 ? 55 41 55 48 8D AC 24" @client.dll
C++:
void* __fastcall hkDrawSmokeArray(void* rcx, void* pSomePointer1, void* pSomePointer2, void* pSomePointer3, void* pSomePointer4, void* pSomePointer5) {
    if (RemoveSmoke)
        return nullptr;

    oDrawSmokeArray(rcx, pSomePointer1, pSomePointer2, pSomePointer3, pSomePointer4, pSomePointer5);
}
Кстати, как так сделать с скопом?
 
Начинающий
Статус
Оффлайн
Регистрация
17 Ноя 2023
Сообщения
30
Реакции[?]
1
Поинты[?]
1K
Кстати, как так сделать с скопом?
ida: client.dll; "4C 8B DC 53 56 57 48 83 EC"

C++:
void hooks::draw_scope_overlay::hook(void* a1, void* a2)
{
    static auto original = m_draw_scope_overlay.get_original< decltype(&hook) >();

    if (config.removals & REMOVALS_SCOPE)
        return;

    original(a1, a2);
}
 
Начинающий
Статус
Оффлайн
Регистрация
19 Янв 2024
Сообщения
125
Реакции[?]
2
Поинты[?]
2K
ida: client.dll; "4C 8B DC 53 56 57 48 83 EC"

C++:
void hooks::draw_scope_overlay::hook(void* a1, void* a2)
{
    static auto original = m_draw_scope_overlay.get_original< decltype(&hook) >();

    if (config.removals & REMOVALS_SCOPE)
        return;

    original(a1, a2);
}
ща чекну, скажу получилось или нет( скажи название сигнатуры, ида у меня есть )
 
Начинающий
Статус
Оффлайн
Регистрация
19 Янв 2024
Сообщения
125
Реакции[?]
2
Поинты[?]
2K
ida: client.dll; "4C 8B DC 53 56 57 48 83 EC"

C++:
void hooks::draw_scope_overlay::hook(void* a1, void* a2)
{
    static auto original = m_draw_scope_overlay.get_original< decltype(&hook) >();

    if (config.removals & REMOVALS_SCOPE)
        return;

    original(a1, a2);
}
все работает, но как кастом сделать, типо просто линии там?
ida: client.dll; "4C 8B DC 53 56 57 48 83 EC"

C++:
void hooks::draw_scope_overlay::hook(void* a1, void* a2)
{
    static auto original = m_draw_scope_overlay.get_original< decltype(&hook) >();

    if (config.removals & REMOVALS_SCOPE)
        return;

    original(a1, a2);
}
я как то слишком много прошу, но это последнее. Не мог ли бы ты пожалуйста сделать прицел при скауте и других оружий с прицелом пожалуйста?
 
Начинающий
Статус
Оффлайн
Регистрация
17 Ноя 2023
Сообщения
30
Реакции[?]
1
Поинты[?]
1K
все работает, но как кастом сделать, типо просто линии там?

я как то слишком много прошу, но это последнее. Не мог ли бы ты пожалуйста сделать прицел при скауте и других оружий с прицелом пожалуйста?
C++:
void custom_scope()
{
    if (!g_ctx.local || !g_ctx.local->is_alive() || !g_ctx.local->scoped())
        return;

    ImGuiIO io;

    ImGui::GetBackgroundDrawList()->AddRectFilled(ImVec2(io.DisplaySize.x * .5f, 0), ImVec2(io.DisplaySize.x * .5f + 1, io.DisplaySize.y), ImColor(0, 0, 0, 255));
    ImGui::GetBackgroundDrawList()->AddRectFilled(ImVec2(0, io.DisplaySize.x * .5f), ImVec2(io.DisplaySize.x, io.DisplaySize.y * .5f + 1), ImColor(0, 0, 0, 255));
}
потом это вызываешь в present в хуках
 
Начинающий
Статус
Оффлайн
Регистрация
19 Янв 2024
Сообщения
125
Реакции[?]
2
Поинты[?]
2K
C++:
void custom_scope()
{
    if (!g_ctx.local || !g_ctx.local->is_alive() || !g_ctx.local->scoped())
        return;

    ImGuiIO io;

    ImGui::GetBackgroundDrawList()->AddRectFilled(ImVec2(io.DisplaySize.x * .5f, 0), ImVec2(io.DisplaySize.x * .5f + 1, io.DisplaySize.y), ImColor(0, 0, 0, 255));
    ImGui::GetBackgroundDrawList()->AddRectFilled(ImVec2(0, io.DisplaySize.x * .5f), ImVec2(io.DisplaySize.x, io.DisplaySize.y * .5f + 1), ImColor(0, 0, 0, 255));
}
потом это вызываешь в present в хуках
емае ниче не понял, у меня база templeware, можешь пожалуйста код попробовать для нее перенести?
 
Начинающий
Статус
Оффлайн
Регистрация
17 Ноя 2023
Сообщения
30
Реакции[?]
1
Поинты[?]
1K
Последнее редактирование:
Начинающий
Статус
Оффлайн
Регистрация
18 Авг 2020
Сообщения
40
Реакции[?]
2
Поинты[?]
2K
Сверху Снизу