Другое С/С++ Вопрос - Ответ

  • На сайте сейчас активно проводятся работы после глобального обновления. Многое будет изменено, а что-то сейчас добавлено временно. Просим вас побыть терпеливыми и отнестись к этому с пониманием.

Cake_

Активный
338
78
C++:
if (SUCCEEDED(SF->getRender()->BeginRender()))
        {
            ImGui_ImplDX9_NewFrame();
            ImGui_ImplWin32_NewFrame();
            ImGui::NewFrame();

            static bool bAimbot;
            ImGui::Begin("Test", NULL, ImVec2(300, -1), 1,
                ImGuiWindowFlags_NoCollapse |
                ImGuiWindowFlags_NoSavedSettings |
                ImGuiWindowFlags_NoResize);

            ImGui::Checkbox("Aimbot", &bAimbot);

            ImGui::End;

            ImGui::EndFrame();
            ImGui::Render();
            ImGui_ImplDX9_RenderDrawData(ImGui::GetDrawData());
            SF->getRender()->EndRender();
        }
C++:
bool window = false;

if (SUCCEEDED(SF->getRender()->BeginRender())) {
    ImGui_ImplDX9_NewFrame();
    ImGui_ImplWin32_NewFrame();
    ImGui::NewFrame();
    if (window) {
        ImGui::Begin(u8"", &activew, ImVec2(305, 160), 0.8f); {
        }
        ImGui::End();
    }
    ImGui::EndFrame();
    ImGui::Render();
    ImGui_ImplDX9_RenderDrawData(ImGui::GetDrawData());

    SF->getRender()->EndRender();
}
У меня вот так всё норм работает
 
  • Нравится
Реакции: Stiopko

Stiopko

Активный
225
82
C++:
bool window = false;

if (SUCCEEDED(SF->getRender()->BeginRender())) {
    ImGui_ImplDX9_NewFrame();
    ImGui_ImplWin32_NewFrame();
    ImGui::NewFrame();
    if (window) {
        ImGui::Begin(u8"", &activew, ImVec2(305, 160), 0.8f); {
        }
        ImGui::End();
    }
    ImGui::EndFrame();
    ImGui::Render();
    ImGui_ImplDX9_RenderDrawData(ImGui::GetDrawData());

    SF->getRender()->EndRender();
}
У меня вот так всё норм работает
Я чес хз что было не так, вставил твой код все заработало, спс
 

Vadim.dll

Активный
191
67
Почему эта херня крашиииит? Адреса все правильные, проверял. Где-то ошибка в определении функции? Перепробовал уже все что можно

C++:
typedef void(__stdcall* _PrintChatMsg)(DWORD chat_info, wchar_t* message);

void mainThread(PVOID)
{
    MessageBoxW(NULL, L"WAIT", L"WAIT", MB_OK);
    DWORD dwSamp = (DWORD)GetModuleHandle(L"samp.dll");
    _PrintChatMsg print_char_msg = (_PrintChatMsg)(dwSamp + 0x64520);
    DWORD chat_info = (DWORD)(dwSamp + 0x21A0E4);
    print_char_msg(chat_info, (wchar_t*)L"Hello world!");
}
 

index

Активный
102
64
Почему эта херня крашиииит? Адреса все правильные, проверял. Где-то ошибка в определении функции? Перепробовал уже все что можно

C++:
typedef void(__stdcall* _PrintChatMsg)(DWORD chat_info, wchar_t* message);

void mainThread(PVOID)
{
    MessageBoxW(NULL, L"WAIT", L"WAIT", MB_OK);
    DWORD dwSamp = (DWORD)GetModuleHandle(L"samp.dll");
    _PrintChatMsg print_char_msg = (_PrintChatMsg)(dwSamp + 0x64520);
    DWORD chat_info = (DWORD)(dwSamp + 0x21A0E4);
    print_char_msg(chat_info, (wchar_t*)L"Hello world!");
}
1. Второй аргумент функции имеет тип char *, а не wchar_t *.
2. В какой кодировке идет компиляция? Есть подозрение, что компилируешь с набором символов ANSI. В этом случае макрос GetModuleHandle заменяется на функцию GetModuleHandleA, принимает твою Юникод-строку, возвращает NULL и далее идет попытка вызова функции по адресу NULL + 0x64520 с ошибкой доступа.
 

Vadim.dll

Активный
191
67
1. Второй аргумент функции имеет тип char *, а не wchar_t *.
2. В какой кодировке идет компиляция? Есть подозрение, что компилируешь с набором символов ANSI. В этом случае макрос GetModuleHandle заменяется на функцию GetModuleHandleA, принимает твою Юникод-строку, возвращает NULL и далее идет попытка вызова функции по адресу NULL + 0x64520 с ошибкой доступа.
Пробовал с char - не помогает, Компилирую с набором символов Юникод, написал же выше, что адреса проверил, все правильно
 

_Vine_

Активный
150
39
Почему эта херня крашиииит? Адреса все правильные, проверял. Где-то ошибка в определении функции? Перепробовал уже все что можно

C++:
typedef void(__stdcall* _PrintChatMsg)(DWORD chat_info, wchar_t* message);

void mainThread(PVOID)
{
    MessageBoxW(NULL, L"WAIT", L"WAIT", MB_OK);
    DWORD dwSamp = (DWORD)GetModuleHandle(L"samp.dll");
    _PrintChatMsg print_char_msg = (_PrintChatMsg)(dwSamp + 0x64520);
    DWORD chat_info = (DWORD)(dwSamp + 0x21A0E4);
    print_char_msg(chat_info, (wchar_t*)L"Hello world!");
}
Эта функция имеет переменное количество аргументов
Сделай такой прототип функции
C++:
typedef void(__stdcall* _PrintChatMsg)(DWORD chat_info, const char* message, ...);
 

memir

Проверенный
Проверенный
124
54
Эта функция имеет переменное количество аргументов
Сделай такой прототип функции
C++:
typedef void(__stdcall* _PrintChatMsg)(DWORD chat_info, const char* message, ...);
stdcall
переменное количество аргументов
фигню говоришь
Почему эта херня крашиииит? Адреса все правильные, проверял. Где-то ошибка в определении функции? Перепробовал уже все что можно

C++:
typedef void(__stdcall* _PrintChatMsg)(DWORD chat_info, wchar_t* message);

void mainThread(PVOID)
{
    MessageBoxW(NULL, L"WAIT", L"WAIT", MB_OK);
    DWORD dwSamp = (DWORD)GetModuleHandle(L"samp.dll");
    _PrintChatMsg print_char_msg = (_PrintChatMsg)(dwSamp + 0x64520);
    DWORD chat_info = (DWORD)(dwSamp + 0x21A0E4);
    print_char_msg(chat_info, (wchar_t*)L"Hello world!");
}
у тя прототип не правильный. а ещё ты берешь не указатель на структуру чата, а указатель на указатель на структуру чата. исправляй
 
  • Нравится
Реакции: Vadim.dll

Stiopko

Активный
225
82
Как в ImGui можно сделать чтобы при измении размеров круг и трикутник не выходил за грани темно зеленого квадрата, а обрезался на грани34203
 

Stiopko

Активный
225
82
А что это за элементы ? Дай код
Вот
C++:
#define RGBA_TO_FLOAT(r,g,b,a) (float)r/255.0f, (float)g/255.0f, (float)b/255.0f, (float)a/255.0f
void PlayerItem(const char* str_id, bool *online = nullptr, bool *spectate = nullptr)
    {
        ImVec2 p = ImGui::GetCursorScreenPos();
        ImDrawList* draw_list = ImGui::GetWindowDrawList();

        float height = ImGui::GetFrameHeight() + 0.001;
        float width = ImGui::GetWindowContentRegionWidth() + 0.001 - height / 2;
        p.x += height / 2;

        ImGui::InvisibleButton(str_id, ImVec2(width, height));
       

        ImGuiContext& g = *GImGui;
        float t = ImGui::IsItemHovered() ? 1.0f : 0.0f;
        float ANIM_SPEED = 0.00001f;
        if (g.LastActiveId == g.CurrentWindow->GetID(str_id))
        {
            float t_anim = ImSaturate(g.LastActiveIdTimer / ANIM_SPEED);
            t = ImGui::IsItemHovered() ? (t_anim) : (1.0f - t_anim);
        }

        ImU32 col_bg;
        const ImVec2 text_size = CalcTextSize(str_id);
        col_bg = ImGui::GetColorU32(ImLerp(ImVec4(RGBA_TO_FLOAT(19, 26, 19, 255)), ImVec4(RGBA_TO_FLOAT(15, 40, 15, 255)), t));

        draw_list->AddRectFilled(p, ImVec2(p.x + width, p.y + height), col_bg, height * 0.2f);
       
        RenderTextClipped(ImVec2(p.x + height / 2, p.y + (height - text_size.y)/2), ImVec2(p.x + width - height - height / 4, p.y + height / 2 + height / 4), str_id, (const char *)0, &text_size);

        if (online != nullptr) {
            draw_list->AddCircleFilled(ImVec2(p.x + width - height/2, p.y + height / 2), height / 4, ImGui::GetColorU32(*online ? ImVec4(RGBA_TO_FLOAT(2, 114, 6, 255)) : ImVec4(RGBA_TO_FLOAT(184, 19, 19, 255))));
        }

        if (spectate != nullptr && *spectate) {
            draw_list->AddTriangleFilled(
                ImVec2(p.x + width - height - height / 4, p.y + height / 2 + height / 4),
                ImVec2(p.x + width - height, p.y + height / 2 - height / 4),
                ImVec2(p.x + width - height + height / 4, p.y + height / 2 + height / 4),
                ImGui::GetColorU32(ImVec4(RGBA_TO_FLOAT(224, 217, 15, 255))));
        }
    }
Как можно проверить подключение к серверу?
 
Последнее редактирование:

Vadim.dll

Активный
191
67
Где находится функция, которая обрабатывает RPC в samp.dll R1 или любой другой версии? Мне бы хотя бы наводку, как ее искать