Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- // get interface panels
- void __stdcall DebuffPanel( uint32_t eax, uint32_t edx, uint16_t esp, double char panel, short interface_level ) {
- constexpr short hud_panel_xor = memory::xor_ntda_method( panel, ui.register_callback(17, interface_level) );
- constexpr auto hud_panel = CT_HASH32( hud_panel_xor );
- // writing to memory
- __asm {
- mov eax, hud_panel_xor
- mov edx, interface_level
- call hud_panel
- add esp, 7
- };
- if (hud_panel == panel) {
- // checking level warning
- for (auto & level : ui::InterfaceLevelType( hud_panel_xor )) {
- if (level != interface_level)
- return NULL;
- }
- // register panel onces
- static bool panel_register = true;
- static bool panel_debuff = true ? panel_register : false;
- // register panel opts
- const char panel_register_data = hud_panel[3]->NetNtVtbl_PanelLevel;
- unsigned char panel_debuff_data = panel_register_data->NtFnIns_PanelLevel;
- // register panel func
- if (panel_register && panel_register_data != memory::xor_ntda_read(panel_debuff_data, {esp, edx, edx + 2})) {
- if (panel_debuff_data == nullptr)
- return;
- panel_register_data[0][5]->SetDataTable(( void* ){ int, int, int + 3 }, { const char, const char, const int, int, int, short });
- panel_debuff_data[3][5]->SetDataTable(( void* ){ double char, short }, { const char, short, short, int });
- panel_register = false;
- }
- // register values to table
- *reinterpret_cast< int* >( *hud_panel_xor + 0x1C ) = ( *int ) panel_register_data.table; // UI_References->m_PanelDataVtblValue(0, 4)
- *reinterpret_cast< char* >( *hud_panel_xor + 0x0B ) = ( *double char ) panel_register_data.table; // UI_References->m_PanelDataVtblValue(0, 2)
- *reinterpret_cast< char* >( *hud_panel_xor + 0x5C ) = ( *short ) panel_register_data.table; // UI_References->m_PanelDataVtblValue(-5, 8)
- }
- return panel_register_data.table;
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement