class NodeRadiusStruct : public IBase
{
public:
ModelInstance* hModel() { return this->GetValue<ModelInstance*>(0x0000); }
int eNode() { return this->GetValue<int>(0x0000); }
};
class CTList : public IBase
{
public:
NodeRadiusStruct* m_pCurGetItemLink() { return this->GetValue<NodeRadiusStruct*>(0x0000); }
CTList* GetNext();
};
class CCharacterHitBox : public IBase, public singleton<CCharacterHitBox>
{
public:
CCharacterHitBox();
public:
ModelInstance* hModel() { return this->GetValue<ModelInstance*>(0x0000); }
CTList* pHead() { return this->GetValue<CTList*>(0x0000); }
CTList* m_NodeRadiusList_() { return **(CTList***)((uintptr_t)this + 0x0000); }
};
*(BYTE*)(CShell + 0xEAC89B) = 0xEB;
inline void nop_instruction(LPVOID address, const SIZE_T size, const char* original_bytes,
const bool should_nop = false) {
DWORD tmp;
VirtualProtect(reinterpret_cast<LPVOID>(address), size, PAGE_EXECUTE_READWRITE, &tmp);
if (should_nop) {
std::string nop_bytes{};
for (SIZE_T i{ 0 }; i < size; i++) { nop_bytes += "\x90"; }
memcpy(reinterpret_cast<void*>(address), nop_bytes.c_str(), size); // NOP bytes
}
else {
memcpy(reinterpret_cast<void*>(address), original_bytes, size); // Restore bytes
}
}
nop_instruction(reinterpret_cast<LPVOID>(CShell + Addr), 2, "\x73\xً2E",/* Ur Variable*/);