Вопросы

5 ответов на этот вопрос

  • 0
.037
Освоившийся

@MurBoy 

Спойлер

#include <Windows.h>
#include <iostream>

#include "MinHook.h"
#pragma comment(lib, "libMinHook-x86-v141-mt.lib")

typedef void(__thiscall* tChatAddEntry)(void *, int nType, char* szText, char* szPrefix, DWORD textColor, DWORD prefixColor);
tChatAddEntry origChatAddEntry = nullptr;

void __fastcall HOOKED_ChatAddEntry(void *_this, void *pUnk, int nType, char* szText, char* szPrefix, DWORD textColor, DWORD prefixColor) {

    printf("type: %d, msg: %s\n", nType, szText);
    
    return origChatAddEntry(_this, nType, szText, szPrefix, textColor, prefixColor);
}

class CPluginInit {
public:
    CPluginInit() {
        base = (DWORD)GetModuleHandleA("samp.dll");
        MH_Initialize();
        MH_CreateHook((void*)(base + 0x0064010), &HOOKED_ChatAddEntry, (void**)&origChatAddEntry);
        MH_EnableHook((void*)(base + 0x0064010));
    };

    ~CPluginInit() {
        MH_DisableHook((void*)(base + 0x0064010));
    };

private:
    DWORD base = 0;
}PluginInit;

 

by. AdCKuY_DpO4uLa

1629746829406.png

Остальное дописывать придётся самому 

Отредактировано пользователем .037

Поделиться сообщением


Ссылка на сообщение
  • 0
MurBoy
Освоившийся
3 минуты назад, .037 сказал:

@MurBoy 

  код (закрыть спойлер)


#include <Windows.h>
#include <iostream>

#include "MinHook.h"
#pragma comment(lib, "libMinHook-x86-v141-mt.lib")

typedef void(__thiscall* tChatAddEntry)(void *, int nType, char* szText, char* szPrefix, DWORD textColor, DWORD prefixColor);
tChatAddEntry origChatAddEntry = nullptr;

void __fastcall HOOKED_ChatAddEntry(void *_this, void *pUnk, int nType, char* szText, char* szPrefix, DWORD textColor, DWORD prefixColor) {

    printf("type: %d, msg: %s\n", nType, szText);
    
    return origChatAddEntry(_this, nType, szText, szPrefix, textColor, prefixColor);
}

class CPluginInit {
public:
    CPluginInit() {
        base = (DWORD)GetModuleHandleA("samp.dll");
        MH_Initialize();
        MH_CreateHook((void*)(base + 0x0064010), &HOOKED_ChatAddEntry, (void**)&origChatAddEntry);
        MH_EnableHook((void*)(base + 0x0064010));
    };

    ~CPluginInit() {
        MH_DisableHook((void*)(base + 0x0064010));
    };

private:
    DWORD base = 0;
}PluginInit;

 

by. AdCKuY_DpO4uLa

1629746829406.png

Остальное дописывать придётся самому 

Это ASI или CLEO?

Поделиться сообщением


Ссылка на сообщение
  • 0
.037
Освоившийся

@MurBoy Asi , надеюсь с компиляцией трудностей не будет, если будут, то в стол заказов (также пишу на заказ asi и SF )))) https://vk.com/id665567261 )

Отредактировано пользователем .037

Поделиться сообщением


Ссылка на сообщение
Гость
Эта тема закрыта для публикации ответов.
  • Последние посетители   0 пользователей онлайн

    Ни одного зарегистрированного пользователя не просматривает данную страницу

  • Похожий контент

    • HostX_
      От HostX_
      Доброго времени суток!
       
      Ищу маппера для SA-MP проекта в стилистике выживания и постапокалипсиса. Важно уметь создавать атмосферные и аутентичные локации.
       
      Возможно как разовое, так и долгосрочное сотрудничество. Писать только с примерами своих работ.
       
      Discord: hostmoney
      Почта:  host@obscur.tech
    • Vova_Zenko
      От Vova_Zenko
      Подскажите пожалуйста. 
      В моде авто для фракции не через мод вписаны, а покупаются в автосалоне и хранятся в базе данных MySQL. 
      В полиции есть эвакуатор, но с цветографикой гражданского. Хочу добавить две цветографики. towtruck.txd(гражданский) и towtruck1.txd(ДПС). 
      В базе данных есть строка cPaintJob, там тоже менял значение, результата 0.
      Как сделать, чтобы допустим администратор смог поменять цветографику?