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

Bramble

Известный
1,207
193
как сделать такое имгуи окно?
1706545834749.png
 

Bramble

Известный
1,207
193
подскажите, как за пару кликов подключить АТБ? все что мне нужно, это выведенная меню
 

Dark_Knight

Me, me and me.
Друг
4,080
2,112
имгуи не так смотрится, как АТБ. где найти пример?
Сделай такой же визуальный стиль. Имуги гибок. Пример тебе уже дали. На офф сайте. Дальше думай сам. Там все просто и глупо одновременно.
 
Последнее редактирование:

manukhov

Известный
122
129
имгуи не так смотрится, как АТБ. где найти пример?
странный фетиш)

полно собейтов на этом ATB, тот же оверлайт:
1) https://gitlab.com/RcKoid/mod-s0beit-overlight/-/tree/master/src?ref_type=heads
2) https://github.com/grimesfive/overlight_fork

статейки:
1) https://www.blast.hk/threads/1062/
2) https://ugbase.eu/threads/tutorial-add-anttweakbar-into-your-sobeit.9988/
p.s. если тебе просто хочется уникальное и стильное меню, чтобы наяривать на него каждый раз когда оно открывается, то лучше yougame глянуть, там люди постят исходники готовых дизайнов на имгуи
 
  • Влюблен
Реакции: Bramble

Grisha2307

Новичок
18
4
Помогите пожалуйста, при получении любого пакета игра закрывается.
код:
#include <Windows.h>
#include "main.h"
#include <string>
#include <thread>
#include <chrono>
#include "fstream"

using namespace std;

SAMPFUNCS* SF = new SAMPFUNCS();
void __stdcall initScript(string);
void logSF(char);

static bool isActive = false;

static bool CALLBACK incomingPacket(stRakNetHookParams *params) {

    return true;
}

static void __stdcall mainloop() {
    static bool initialized = false;
    if (!initialized) {
        if (GAME && GAME->GetSystemState() == eSystemState::GS_PLAYING_GAME && SF->getSAMP()->IsInitialized()) {
            initialized = true;
            SF->getRakNet()->registerRakNetCallback(RakNetScriptHookType::RAKHOOK_TYPE_INCOMING_PACKET, incomingPacket);
            SF->getSAMP()->registerChatCommand("stallSkip", initScript);
        }
    }
}

void __stdcall initScript(string) {
    string text;
    int color;
    if (!isActive) {
        color = D3DCOLOR_ARGB(255, 0, 255, 0);
        text = "[******] Активирован";
    } else {
        color = D3DCOLOR_ARGB(255, 255, 0, 0);
        text = "[******] Деактивирован";
    }
    isActive ^= true;
    SF->getSAMP()->getChat()->AddChatMessage(color, "%s", text);
}

void logSF(char text) {
    ofstream outputFile("SAMPFUNCS/logs.txt");
    if (outputFile.is_open()) {
        outputFile << text;
        outputFile.close();
    }
}

BOOL APIENTRY DllMain(HMODULE hModule, DWORD dwReasonForCall, LPVOID lpReserved) {
    if (dwReasonForCall == DLL_PROCESS_ATTACH)
        SF->initPlugin(mainloop, hModule);
    return TRUE;
}
 

Dark_Knight

Me, me and me.
Друг
4,080
2,112
AddChatMessage не поддерживает форматирование со стрингами. юзай std::tring::data() или std::string::c_str();
 
  • Нравится
Реакции: Z3roKwq

0x73616D

Активный
140
43
Can someone provide a clear, direct and concise example code of an OnCloseDialog hook? (.ASI)

Может ли кто-нибудь предоставить ясный, прямой и краткий пример кода перехватчика OnCloseDialog? (.ASI)
 
  • Нравится
Реакции: Vintik

Rvmsitow

Новичок
12
1
Патч samp.dll | CreateVehicle

Здравствуйте, я хотел бы обойти ограничение на модели транспортных средств между 400 и 611 в SA:MP 0.3DL, есть идеи?

СПАСИБО !
 

вайега52

cache miss
Модератор
3,060
3,294
Can someone provide a clear, direct and concise example code of an OnCloseDialog hook? (.ASI)

Может ли кто-нибудь предоставить ясный, прямой и краткий пример кода перехватчика OnCloseDialog? (.ASI)
Попробуй что-то подобное (показал на примере kthook)
C++:
#include <Windows.h>

#include "kthook/kthook.hpp"



// edx - bypass MSVC
kthook::kthook_simple<void(__fastcall*)(void* pDialog, void* edx, char button);>(CDialogCloseHook);



void __fastcall CDialogCloseHooked(const decltype(CDialogCloseHook)& hook, void* pDialog, void* edx, char button)
{
    // code
    return hook.get_trampoline()(pDialog, edx, button);
}


// install hoook (after initialization of SAMP)
CDialogCloseHook.set_cb(&CDialogCloseHooked);
auto sampHandle = reinterpret_cast<uintptr_t>(GetModuleHandleA("samp.dll"));
// 0x6C040 - R1
CDialogCloseHook.set_dest(sampHandle + 0x6C040);
CDialogCloseHook.install();
 
  • Нравится
Реакции: 0x73616D