This function. It's not R1.What are you going to call?C++:// samp.dll (r1): .text:10068E60 fsub ds:flt_100D390C
This function. It's not R1.What are you going to call?C++:// samp.dll (r1): .text:10068E60 fsub ds:flt_100D390C
Все верно, он тебе показал, что по твоему адресу лежит инструкцияThis function. It's not R1.
fsub ds:flt_100D390C, а не функция отправки в чатно он же говорит, что это смещение не с [0.3.7-]R1Все верно, он тебе показал, что по твоему адресу лежит инструкцияfsub ds:flt_100D390C, а не функция отправки в чат
Она вроде из класса, поэтому нужно еще передавать указатель, а у тебя идет чисто аргумент в виде указателя на текстВызываем вот такое:
Получаем вот такое:C++:void SendChat(std::string msg) { typedef int(__stdcall* SendMsg)(const char*); static SendMsg sendMsg = (SendMsg)(dwSAMP + 0x68E65); sendMsg(msg.c_str()); }
Посмотреть вложение 76066
И чё делать? 😁
@KiN4StAt @checkdasound @Cake_ @redcode помогите плиз
нужную ему версию SAMP он тоже не написално он же говорит, что это смещение не с [0.3.7-]R1
Then it is a __thiscall and not __stdcall. It needs to pass a pointer to CChat.Она вроде из класса, поэтому нужно еще передавать указатель, а у тебя идет чисто аргумент в виде указателя на текст
Amazing CRMP какую использует? мне она и нужна.нужную ему версию SAMP он тоже не написал
Give me samp.dllAmazing CRMP какую использует? мне она и нужна.
Give me samp.dll
посмотри в свойствах samp.dllAmazing CRMP какую использует? мне она и нужна.
Она вроде из класса, поэтому нужно еще передавать указатель, а у тебя идет чисто аргумент в виде указателя на текст
void SendChat(const std::string& text)
{
typedef int(__stdcall* SendCommand)(const char*);
typedef int(__stdcall* SendText)(const char*);
static SendCommand sendCommand = (SendCommand)((DWORD)GetModuleHandle("samp.dll") + 0x65C60);
static SendText sendText = (SendText)((DWORD)GetModuleHandle("samp.dll") + 0x57F0);
/*
какой-нибудь способ конвертировать std::string -> const char*, чтобы оно не крашило через n повторений
*/
if (text[0] == '/')
sendCommand(cstr);
else
sendText(cstr);
}
R2 этоR3 насколько я помню
изучай![]()
BlastHackNet/SAMP-API
A library for interacting with functions, classes and structures of SA-MP client - BlastHackNet/SAMP-APIgithub.com
Почему то тут не передаёт человек только указатель на строку и у него работает (если что, из этой темы)C++:void SendChat(const std::string& text) { typedef int(__stdcall* SendCommand)(const char*); typedef int(__stdcall* SendText)(const char*); static SendCommand sendCommand = (SendCommand)((DWORD)GetModuleHandle("samp.dll") + 0x65C60); static SendText sendText = (SendText)((DWORD)GetModuleHandle("samp.dll") + 0x57F0); /* какой-нибудь способ конвертировать std::string -> const char*, чтобы оно не крашило через n повторений */ if (text[0] == '/') sendCommand(cstr); else sendText(cstr); }
const uint32_t sampHandle = ...;
void AddRecail(const char *const recailString)
{
using AddRecail_t = void(__thiscall *)(class CInput *, const char *const);
auto addRecail{reinterpret_cast<AddRecail_t>(sampHandle + 0x68E60)};
addRecail(*reinterpret_cast<class CInput **>(sampHandle + 0x26E8CC), recailString);
}
дллка р3