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

sc6ut

неизвестный
Модератор
382
1,089
Пробовал я её уже через CLEO опкод вызывать в SF API, не срабатывает.
Как я понял, когда получаешь хендл в том же луа, то он будет не такой, как в SF API.
мне тут подсказали, что тебе хендл нужен, попробуй эту - https://wiki.blast.hk/ru/moonloader/lua/sampGetObjectHandleBySampId
 

Yayachana)

Известный
32
10
Лучше бы мне ответили, как узнать что локальный игрок в прицеле находится😭
 

Yuriy Code

Известный
753
929
С луа сработает, это понятно. На луа там вообще сложности не возникнет.
Но, я делаю на SF API, ещё раз повторюсь.

Ладно, не парьте себе мозги. Уж можно сделать через отлов создания объекта от сервера и просто return false сделать.
 

Yuriy Code

Известный
753
929
@SC6UT

Вообщем, вот так решил проблему, бери на заметку) Функцию такую вот написал)
Возможно, пригодится кому-нибудь из вас функция)

Функция удаляет объект по серверному ID.
Видишь, начал ты уже гнобить Юрия Кода, но Юрий Код во как придумал) И даже париться не нужно)
Код:
void destroyObject(int id)
{
    BitStream bs;
    bs.ResetWritePointer();

    bs.Write(id);

    SF->getRakNet()->emulateRecvRPC(RPC_ScrDestroyObject, &bs);
}
 

sc6ut

неизвестный
Модератор
382
1,089
бери на заметку)
обязательно
Видишь, начал ты уже гнобить Юрия Кода, но Юрий Код во как придумал)
я тебя искренне поздравляю, что ты придумал это, а нет не придумал https://www.blast.hk/threads/74942/post-640772
тут кстати даже на си код есть, которые работает именно через пул, если поискать получше, то можно найти такое решение прямиком из 2012 года думаю
гнобить я никого не начинал, просто ты не умеешь писать на с++, и не понимаешь его, все что я тебе сказал это выучить язык. на заметку, синтакс языка это не язык)
 
  • Нравится
Реакции: etereon и sizeoftrickster

kin4stat

mq-team · kin4@naebalovo.team
Всефорумный модератор
2,744
4,813
Лучше бы мне ответили, как узнать что локальный игрок в прицеле находится😭
Проверяй режим камеры. Если не ошибаюсь, в прицеле 53 режим будет(так еще можно проверять отдельно состояние прицеливания в машине кстати)
 
  • Нравится
Реакции: Yayachana)

Dark_Knight

Me, me and me.
Друг
4,082
2,106
Разно уже пробовал. Вот вариант, который просто крашит самп:
Код:
                CObject* object = GAME->GetPools()->GetObjectA((DWORD*)SF->getSAMP()->getInfo()->pPools->pObject->object[id]);
                GAME->GetPools()->RemoveObject(object);
Не умеешь срать не мучай жопу.
 

Yayachana)

Известный
32
10
Проверяй режим камеры. Если не ошибаюсь, в прицеле 53 режим будет(так еще можно проверять отдельно состояние прицеливания в машине кстати)
Сделал чуть проще, спасибо за помощь)
с++:
auto cam = SF->getSAMP()->getPlayers()->pLocalPlayer->aimData.byteCamMode;
        if (cam == 53)
            //code
 

Yuriy Code

Известный
753
929
Ребят, как сделать работу сампа в свёрнутом режиме? То есть антиафк.
Какому оффсету и что нужно присвоить?
 

Fiksae

Потрачен
26
10
Обратите внимание, пользователь заблокирован на форуме. Не рекомендуется проводить сделки.
Как исправить?
1650713848044.png


imgui
 

Fiksae

Потрачен
26
10
Обратите внимание, пользователь заблокирован на форуме. Не рекомендуется проводить сделки.
Вот код main.cpp:
main.cpp:
#include "includes.h"

#ifdef _WIN64
#define GWL_WNDPROC GWLP_WNDPROC
#endif

extern LRESULT ImGui_ImplWin32_WndProcHandler(HWND hWnd, UINT msg, WPARAM wParam, LPARAM lParam);

typedef long(__stdcall* EndScene)(LPDIRECT3DDEVICE9);
static EndScene oEndScene = NULL;
LPDIRECT3DDEVICE9 pDevice = nullptr;

WNDPROC oWndProc;
static HWND window = NULL;

void InitImGui(LPDIRECT3DDEVICE9 pDevice)
{
    ImGui::CreateContext();
    ImGuiIO& io = ImGui::GetIO();
    io.Fonts->AddFontFromFileTTF(("C:\\Windows\\Fonts\\Arial.ttf"), 20, NULL, io.Fonts->GetGlyphRangesCyrillic());
    io.ConfigFlags = ImGuiConfigFlags_NoMouseCursorChange;
    ImGui_ImplWin32_Init(window);
    ImGui_ImplDX9_Init(pDevice);
}


bool init = false;
bool openmenu = false;
long __stdcall hkEndScene(LPDIRECT3DDEVICE9 pDevice)
{
    // Unhook
    if (GetAsyncKeyState(VK_END)) {

        kiero::shutdown();
    }

    // Open Menu
    if (GetAsyncKeyState(VK_HOME) & 1) {
        openmenu = !openmenu;
    }

    if (openmenu) {

        ImGui_ImplDX9_NewFrame();
        ImGui_ImplWin32_NewFrame();
        ImGui::NewFrame();

        auto flags = ImGuiConfigFlags_NoMouseCursorChange | ImGuiWindowFlags_NoCollapse | ImGuiWindowFlags_NoTitleBar | ImGuiWindowFlags_NoScrollbar | ImGuiWindowFlags_NoResize | ImGuiWindowFlags_AlwaysAutoResize;
        static int ttab;

        ImGui::Begin(("DarwinTap"), nullptr, flags);

        if (ImGui::Button((u8"Аимбот"), ImVec2(100.f, 0.f))) {
            ttab = 1;
        }
        ImGui::SameLine(0.f, 2.f);
        if (ImGui::Button((u8"Визуалы"), ImVec2(100.f, 0.f))) {
            ttab = 2;
        }
        ImGui::SameLine(0.f, 2.f);
        if (ImGui::Button((u8"Другое"), ImVec2(100.f, 0.f))) {
            ttab = 3;
        }
        ImGui::SameLine(0.f, 2.f);
        if (ImGui::Button((u8"Цвета"), ImVec2(100.f, 0.f))) {
            ttab = 4;
        }

        ImGui::End();
        ImGui::EndFrame();
        ImGui::Render();
        ImGui_ImplDX9_RenderDrawData(ImGui::GetDrawData());
    }
    return oEndScene(pDevice);
}

LRESULT __stdcall WndProc(const HWND hWnd, UINT uMsg, WPARAM wParam, LPARAM lParam) {

    if (true && ImGui_ImplWin32_WndProcHandler(hWnd, uMsg, wParam, lParam))
        return true;

    return CallWindowProc(oWndProc, hWnd, uMsg, wParam, lParam);
}

BOOL CALLBACK EnumWindowsCallback(HWND handle, LPARAM lParam)
{
    DWORD wndProcId;
    GetWindowThreadProcessId(handle, &wndProcId);

    if (GetCurrentProcessId() != wndProcId)
        return TRUE; // skip to next window

    window = handle;
    return FALSE; // window found abort search
}

HWND GetProcessWindow()
{
    window = NULL;
    EnumWindows(EnumWindowsCallback, NULL);
    return window;
}

DWORD WINAPI MainThread(LPVOID lpReserved)
{
    bool attached = false;
    do
    {
        if (kiero::init(kiero::RenderType::D3D9) == kiero::Status::Success)
        {
            kiero::bind(42, (void**)& oEndScene, hkEndScene);
            do
                window = GetProcessWindow();
            while (window == NULL);
            oWndProc = (WNDPROC)SetWindowLongPtr(window, GWL_WNDPROC, (LONG_PTR)WndProc);
            attached = true;
        }
    } while (!attached);
    return TRUE;
}

BOOL WINAPI DllMain(HMODULE hMod, DWORD dwReason, LPVOID lpReserved)
{
    switch (dwReason)
    {
    case DLL_PROCESS_ATTACH:
        DisableThreadLibraryCalls(hMod);
        CreateThread(nullptr, 0, MainThread, hMod, 0, nullptr);
        break;
    case DLL_PROCESS_DETACH:
        kiero::shutdown();
        break;
    }
    return TRUE;
}