Хукаешь RPC_ScrClientMessage и strstrКак взять строку из чата и проверить ее на наличие ключевого слова? Для SF надо.
чет сложно) Можно подробней?Хукаешь RPC_ScrClientMessage и strstr
https://www.blast.hk/wiki/tutorials:api_lesson_raknetчет сложно) Можно подробней?
DWORD offsets[] = { 0x6FCF3 };// смещение
DWORD addressdllsamp = (DWORD)getModuleHandleRemote(PID, "samp.dll");// адрес samp.dll
DWORD ippointer1 = mem->ReadPointer(addressdllsamp, offsets, 1);
printf("Address samp.dll [2]: 0x%x \n=====================\n", addressdllsamp);
printf("[2] Adress: 0x%x / value = %d\n", ippointer1, mem->Read(ippointer1, 16));// ВОТ ТУТ value = всегда разное число
HMODULE AC::getModuleHandleRemote(DWORD processId, const char* moduleName)
{
HANDLE snap = CreateToolhelp32Snapshot(TH32CS_SNAPMODULE, processId);
if (snap == INVALID_HANDLE_VALUE) return NULL;
MODULEENTRY32 moduleEntry;
moduleEntry.dwSize = sizeof(moduleEntry);
bool found = Module32First(snap, &moduleEntry) == TRUE;
while (found)
{
if (strcmp(moduleEntry.szModule, moduleName) == 0) return CloseHandle(snap), moduleEntry.hModule;
found = Module32Next(snap, &moduleEntry) == TRUE;
}
CloseHandle(snap);
return NULL;
}
DWORD AC::ReadPointer(DWORD base, DWORD* offsets, int count)
{
for (int i = 0; i < count - 1; i++)
{
base = Read(base + offsets[i], 4).toUINT32();
}
return base + offsets[count - 1];
}
потому что CE использует оффсеты от начала модуля (например samp.dll + 1337)Почему при каждом запуске консоли значение адреса всегда разное, а в Cheat Engine оно не меняется? Код прилагаю ниже.
C++:DWORD offsets[] = { 0x6FCF3 };// смещение DWORD addressdllsamp = (DWORD)getModuleHandleRemote(PID, "samp.dll");// адрес samp.dll DWORD ippointer1 = mem->ReadPointer(addressdllsamp, offsets, 1); printf("Address samp.dll [2]: 0x%x \n=====================\n", addressdllsamp); printf("[2] Adress: 0x%x / value = %d\n", ippointer1, mem->Read(ippointer1, 16));// ВОТ ТУТ value = всегда разное числоC++:HMODULE AC::getModuleHandleRemote(DWORD processId, const char* moduleName) { HANDLE snap = CreateToolhelp32Snapshot(TH32CS_SNAPMODULE, processId); if (snap == INVALID_HANDLE_VALUE) return NULL; MODULEENTRY32 moduleEntry; moduleEntry.dwSize = sizeof(moduleEntry); bool found = Module32First(snap, &moduleEntry) == TRUE; while (found) { if (strcmp(moduleEntry.szModule, moduleName) == 0) return CloseHandle(snap), moduleEntry.hModule; found = Module32Next(snap, &moduleEntry) == TRUE; } CloseHandle(snap); return NULL; }C++:DWORD AC::ReadPointer(DWORD base, DWORD* offsets, int count) { for (int i = 0; i < count - 1; i++) { base = Read(base + offsets[i], 4).toUINT32(); } return base + offsets[count - 1]; }
1. Как можно поворачивать игрока?
2. Как можно удобней записать 72 точки телепорта, содержащие 3 координаты каждая?
А можно подробней?Через матрицу и структуру(только Z)
Так я и не понял ничего%). А с циклом for что?Пиздю. Это с начала до конца.
Щас усё будет. ПодождиТак я и не понял ничего%). А с циклом for что?
vector<int> vec = { 1, 2, 3, 4, 5 };
std::reverse(vec.begin(), vec.end());
for (auto &i : vec)
cout << i << " ";
std::reverse(vec.begin(), vec.end());
for (int j = vec.size(); j--; )
cout < vec[j];