Гайд Update hud with skinchanger

Забаненный
Статус
Оффлайн
Регистрация
18 Ноя 2017
Сообщения
193
Реакции[?]
123
Поинты[?]
0
Обратите внимание, пользователь заблокирован на форуме. Не рекомендуется проводить сделки.
update hud with skinchanger
так как нигде вроде гайдов нету, есть на uc, но там хуй найдешь
Все вставляем в меню(где у вас идет вызов форсе апдеит)

Код:
struct hud_weapons_t {
std::int32_t* get_weapon_count() {
return reinterpret_cast<std::int32_t*>(std::uintptr_t(this) + 0x80);
}
};
template<class T>
static T* FindHudElement(const char* name)
{
static auto pThis = *reinterpret_cast<DWORD**>(UTILS::FindSignature("client_panorama.dll", "B9 ? ? ? ? E8 ? ? ? ? 85 C0 0F 84 ? ? ? ? 8D 58") + 1);
static auto find_hud_element = reinterpret_cast<DWORD(__thiscall*)(void*, const char*)>(UTILS::FindSignature("client_panorama.dll", "55 8B EC 53 8B 5D 08 56 57 8B F9 33 F6 39"));
return (T*)find_hud_element(pThis, name);
}
void KnifeApplyCallbk()
{
static auto clear_hud_weapon_icon_fn =
reinterpret_cast<std::int32_t(__thiscall*)(void*, std::int32_t)>(
UTILS::FindSignature("client_panorama.dll", "55 8B EC 51 53 56 8B 75 08 8B D9 57 6B FE 2C"));
auto element = FindHudElement<std::uintptr_t*>("CCSGO_HudWeaponSelection");
auto hud_weapons = reinterpret_cast<hud_weapons_t*>(std::uintptr_t(element) - 0x9c);
if (hud_weapons == nullptr)
return;
if (!*hud_weapons->get_weapon_count())
return;
for (std::int32_t i = 0; i < *hud_weapons->get_weapon_count(); i++)
i = clear_hud_weapon_icon_fn(hud_weapons, i);
typedef void(*ForceUpdate) (void);
ForceUpdate FullUpdate = (ForceUpdate)UTILS::FindSignaturenew("engine.dll", "FullUpdate", "A1 ? ? ? ? B9 ? ? ? ? 56 FF 50 14 8B 34 85");
FullUpdate();
}
FindSignaturenew:
Код:
DWORD FindSig(DWORD dwAddress, DWORD dwLength, const char* szPattern)
{
if (!dwAddress || !dwLength || !szPattern)
return 0;
const char* pat = szPattern;
DWORD firstMatch = NULL;
for (DWORD pCur = dwAddress; pCur < dwLength; pCur++)
{
if (!*pat)
return firstMatch;
if (*(PBYTE)pat == '\?' || *(BYTE*)pCur == getByte(pat))
{
if (!firstMatch)
firstMatch = pCur;
if (!pat[2])
return firstMatch;
if (*(PWORD)pat == '\?\?' || *(PBYTE)pat != '\?')
pat += 3;
else pat += 2;
}
else
{
pat = szPattern;
firstMatch = 0;
}
}
return 0;
}
DWORD FindSignaturenew(const char* szModuleName, const char* PatternName, char* szPattern)
{
HMODULE hModule = GetModuleHandleA(szModuleName);
PIMAGE_DOS_HEADER pDOSHeader = (PIMAGE_DOS_HEADER)hModule;
PIMAGE_NT_HEADERS pNTHeaders = (PIMAGE_NT_HEADERS)(((DWORD)hModule) + pDOSHeader->e_lfanew);
DWORD ret = FindSig(((DWORD)hModule) + pNTHeaders->OptionalHeader.BaseOfCode, ((DWORD)hModule) + pNTHeaders->OptionalHeader.SizeOfCode, szPattern);;
return ret;
}
 
Последнее редактирование:
Забаненный
Статус
Оффлайн
Регистрация
18 Ноя 2017
Сообщения
193
Реакции[?]
123
Поинты[?]
0
Обратите внимание, пользователь заблокирован на форуме. Не рекомендуется проводить сделки.
Забаненный
Статус
Оффлайн
Регистрация
18 Ноя 2017
Сообщения
193
Реакции[?]
123
Поинты[?]
0
Обратите внимание, пользователь заблокирован на форуме. Не рекомендуется проводить сделки.
добавил код также для FindSignaturenew
мб кому-то будет нужно...
 
Забаненный
Статус
Оффлайн
Регистрация
27 Сен 2018
Сообщения
45
Реакции[?]
0
Поинты[?]
0
Обратите внимание, пользователь заблокирован на форуме. Не рекомендуется проводить сделки.
No, just no, pasters
 
Похожие темы
Сверху Снизу