Немного похожеэто разве имгуи?
Тогда гугли d3d9 menu, изучай все и пытайся писать своёСпасибо конечно, но я хотел попробовать сам, без ИмГуи, можно как-то?
Немного похожеэто разве имгуи?
Тогда гугли d3d9 menu, изучай все и пытайся писать своёСпасибо конечно, но я хотел попробовать сам, без ИмГуи, можно как-то?
if (params->packetId == PacketEnumeration::ID_PLAYER_SYNC)
{
stOnFootData data;
ZeroMemory(&data, sizeof(data));
byte packetId;
uint16 senderId;
params->bitStream->ResetReadPointer();
params->bitStream->Read(packetId);
params->bitStream->Read(senderId);
params->bitStream->Read((PCHAR)&data, sizeof(data));
SF->getSAMP()->getChat()->AddChatMessage(-1, (std::to_string(senderId) + " || " + std::to_string(data.byteHealth)).c_str());
};
P3ti/RakSAMP(https://github.com/P3ti/RakSAMP/blob/master/client/src/netgame.cpp#L127)Как правильно записать содержимое входящего пакета в структуру?
Код:if (params->packetId == PacketEnumeration::ID_PLAYER_SYNC) { stOnFootData data; ZeroMemory(&data, sizeof(data)); byte packetId; uint16 senderId; params->bitStream->ResetReadPointer(); params->bitStream->Read(packetId); params->bitStream->Read(senderId); params->bitStream->Read((PCHAR)&data, sizeof(data)); SF->getSAMP()->getChat()->AddChatMessage(-1, (std::to_string(senderId) + " || " + std::to_string(data.byteHealth)).c_str()); };
Ид я нормаьно получаю, а вот хп из структуры не могу получить, все время 0. Подскажите, пожалуйста.
Меня интересует конкретно такой способ. Я понимаю, что могу сделать SF->getSAMP()->getPlayers()->pRemotePlayer[senderId]->pPlayerData->onFootData.byteHealth
BlastHackNet/mod_s0beit_sa(https://github.com/BlastHackNet/mod_s0beit_sa/blob/master/src/math_stuff.cpp#L34)how to detect if player is stationary = not moving ?
i tried this but nothing
if (g_Players->pLocalPlayer->onFootData.fMoveSpeed[0]
|| g_Players->pLocalPlayer->onFootData.fMoveSpeed[1]
|| g_Players->pLocalPlayer->onFootData.fMoveSpeed[2]
== 0)
GetTickCountthis code below is for rainbow but idk how to make these colors to change slower
D3DCOLOR_ARGB(255, (BYTE)(rand() % 255), (BYTE)(rand() % 255), (BYTE)(rand() % 255));
thanks for help !
Хуком bullet синхрычем отловить инфу о том что игрок произвел выстрел?
WriteProcessMemory если в другой процесс.Как записать какое-либо значение в памяти?
*(int*)0xB7CE50 = 1;
Данная фича не реагирует на тип bool, даже пробывал reinterpet_cast, хз как там. Вот как я делал.WriteProcessMemory если в другой процесс.
А если в свой, то:
C++:*(int*)0xB7CE50 = 1;
*(bool*)0xB7CEE4 = true; // типо должен выдавать мне беск. бег, но нихуя.
Попробуй это:Данная фича не реагирует на тип bool, даже пробывал reinterpet_cast, хз как там. Вот как я делал.
C++:*(bool*)0xB7CEE4 = true; // типо должен выдавать мне беск. бег, но нихуя.
*(BYTE*)0xB7CEE4 = 1;
Не, не сработало. Видимо не суждено мне быть бесконечным бегуном.Попробуй это:
C++:*(BYTE*)0xB7CEE4 = 1;
бесконечным бегуном.
memset_safe((void*)0x60A572, 0x90, 1);
#define _SILENCE_STDEXT_HASH_DEPRECATION_WARNINGS
#include <windows.h>
#include <string>
#include <assert.h>
#include <process.h>
#include "SAMPFUNCS_API.h"
#include "game_api\game_api.h"
#pragma comment(lib, "user32.lib")
SAMPFUNCS *SF = new SAMPFUNCS();
WNDPROC oWndProc = 0;
LRESULT __stdcall WndProc(HWND hWnd, UINT uMsg, WPARAM wParam, LPARAM lParam) {
SF->getSAMP()->getChat()->AddChatMessage(-1, "WNDPROC CALLED");
return CallWindowProcA(oWndProc, hWnd, uMsg, wParam, lParam);
}
void __stdcall Destructor() {
static bool once = false;
if (!once) {
SetWindowLongPtr(GetForegroundWindow(), GWLP_WNDPROC, (long)oWndProc);
once = true;
}
}
void CALLBACK mainloop()
{
static bool init = false;
if (!init)
{
if (GAME == nullptr || GAME->GetSystemState() != eSystemState::GS_PLAYING_GAME || !SF->getSAMP()->IsInitialized())
return;
oWndProc = (WNDPROC)SetWindowLongPtr(GetForegroundWindow(), GWLP_WNDPROC, (long)WndProc);
SF->getGame()->registerGameDestructorCallback(Destructor);
init = true;
}
}
BOOL APIENTRY DllMain(HMODULE hModule, DWORD dwReasonForCall, LPVOID lpReserved)
{
if (dwReasonForCall == DLL_PROCESS_ATTACH)
SF->initPlugin(mainloop, hModule);
else if (dwReasonForCall == DLL_PROCESS_DETACH)
Destructor();
return TRUE;
}