• Я зарабатываю 100 000 RUB / месяц на этом сайте!

    А знаешь как? Я всего-лишь публикую (создаю темы), а админ мне платит. Трачу деньги на мороженое, робуксы и сервера в Minecraft. А ещё на паль из Китая. 

    Хочешь так же? Пиши и узнавай условия: https://t.me/alex_redact
    Реклама: https://t.me/yougame_official

Вопрос Run_js_script получение c_ui_panel

  • Автор темы Автор темы M1fisto
  • Дата начала Дата начала
Начинающий
Начинающий
Статус
Оффлайн
Регистрация
19 Сен 2023
Сообщения
30
Реакции
4
вот что у меня есть на данный момент
C++:
Expand Collapse Copy
namespace interfaces {
    class c_ui_panel {
    private:
        const void* vtable;
    public:
        vfunc(const char* (__thiscall*)(decltype(this)), get_name(), 11u);

    };

    struct panel_data_t {
        uint64_t padd;
        uint32_t flags;
        uint32_t visible;
        c_ui_panel* panel;
        uint32_t panel_id;
        uint32_t padd2;
    };

    class c_ui_engine_source2 {
    public:
        vfunc(void(__thiscall*)(decltype(this), c_ui_panel*, const char*, const char*, std::uint64_t), run_script(c_ui_panel* panel, const char* script_src, const char* origin_file, std::uint64_t line), 81u, panel, script_src, origin_file, line);
    };

    class c_panorama_ui_engine {
    private:
        void*                         vtable;
        char                         padd[0xE0];
    public:
        sdk::utl_vec_t<panel_data_t> m_panel;
    public:
        bool is_valid_panel(c_ui_panel* panel) {
            return reinterpret_cast<bool(__thiscall*)(decltype(this), c_ui_panel*)>((*reinterpret_cast<std::uintptr_t**>(this))[32u])(this, panel);
        };
    public:
        c_ui_panel* get_panel_by_name(dependencie::hash_t hash) {
            for (auto i = 0; i < m_panel.size(); i++) {
                auto& elem = m_panel.at(i);

                if (!elem.panel)
                    continue;

                if (!elem.visible)
                    continue;

                if (!is_valid_panel(elem.panel))
                    continue;

                auto panel_name = elem.panel->get_name();
                if (!panel_name)
                    continue;

                if (HASH_RT(panel_name) != hash)
                    continue;

                return elem.panel;
            }

            return nullptr;
        };

        void dump_list_panels() {
            for (auto i = 0; i < m_panel.size(); i++) {
                auto& elem = m_panel.at(i);

                if (!elem.panel)
                    continue;

                if (!is_valid_panel(elem.panel))
                    continue;

                printf("%s\n", elem.panel->get_name());
            }
        }
    public:
        vfunc(c_ui_engine_source2* (__thiscall*)(decltype(this)), access_ui_engine(), 13u);
    } inline* i_panorama_ui_engine{};
}

вот что я сейчас пытаюсь сделать

C++:
Expand Collapse Copy
void test() {
    if (!interfaces::i_panorama_ui_engine) {
        return;
    }

    interfaces::i_panorama_ui_engine->dump_list_panels();
}

сам dump_list_panels

C++:
Expand Collapse Copy
        void dump_list_panels() {
            for (auto i = 0; i < m_panel.size(); i++) {
                auto& elem = m_panel.at(i);

                if (!elem.panel)
                    continue;

                if (!is_valid_panel(elem.panel))
                    continue;

                printf("%s\n", elem.panel->get_name());
            }
        }

но мой m_panel.size(); всегда равен 0
1748512006159.png


sdk::utl_vec_t<panel_data_t> m_panel; - кукда то сьехало а куда все что в ней всегда 0 и из за этого проблема как я пониаю
 
char padd[0xE0];
sdk::utl_vec_t<panel_data_t> m_panel;


я непонимаю как мне это найти
1748532825062.png
 
Назад
Сверху Снизу