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

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

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

Вопрос На некоторых героях нетвары не читаются

  • Автор темы Автор темы clmove
  • Дата начала Дата начала
ryo
Пользователь
Пользователь
Статус
Оффлайн
Регистрация
4 Июн 2021
Сообщения
329
Реакции
114
Пишу (ну.. пытаюсь) экстернал пасту на доту, почему-то на некоторых героях при чтении выдаёт 299 (ERROR_PARTIAL_COPY), не могу понять с чем это связано...

У алхимика не читается m_vecAbilities, у дизраптора m_iszUnitName, других пока не замечал

shit code:
Expand Collapse Copy
            const auto controller = entity_system->get_entity_by_index( i );
            if ( !controller || !controller->valid( ) )
                continue;
            const auto m_iszPlayerName = controller->read< std::array< char, 128 > >( 0x6c8 );
            const auto m_hAssignedHero = controller->read< std::uintptr_t >( 0x8e4 );
            const auto m_bIsLocalPlayerController = controller->read< bool >( 0x758 );
            const auto assigned_hero = entity_system->get_entity_by_handle( m_hAssignedHero );
            if ( !assigned_hero || !assigned_hero->valid( ) )
                continue;
            std::cout << "[1] GET SOME HERO DATA\n";
            try
            {
                const auto m_iHealth = assigned_hero->m_iHealth( );
                const auto m_iMaxHealth = assigned_hero->m_iMaxHealth( );
                const auto m_flMana = assigned_hero->m_flMana( );
                const auto m_flMaxMana = assigned_hero->m_flMaxMana( );
                const std::string unit_name = assigned_hero->m_iszUnitName( );
                std::cout << std::format(
                    "[{}] name: {} {}\n"
                    "    unit: {}\n"
                    "    HP:   {} / {}\n"
                    "    MP:   {} / {}\n",
                    i,
                    m_iszPlayerName.data( ),
                    m_bIsLocalPlayerController ? "(local player)" : "",
                    unit_name,
                    m_iHealth, m_iMaxHealth,
                    static_cast< int >( m_flMana ), static_cast< int >( m_flMaxMana )
                );
            }
            catch ( const std::exception& e )
            {
                std::cerr << "[1] FAILED (" << e.what( ) << ") ===============================\n";
            }
            // abilities
            std::cout << "[2] GET ABILITIES\n";
            try
            {
                const auto m_vecAbilities = assigned_hero->m_vecAbilities( );
                for ( int k = 0; k < m_vecAbilities.size( ); k++ )
                {
                    const auto ability_handle = m_vecAbilities [ k ];
                    if ( !ability_handle )
                        continue;
                    const auto ability_entity = entity_system->get_entity_by_handle( ability_handle );
                    if ( !ability_entity || !ability_entity->valid( ) )
                        continue;
                    //const auto m_iLevel = ability_entity->read< int >( 0x618 );
                    //const auto m_fCooldown = ability_entity->read< float >( 0x628 );
                    //const auto m_flCooldownLength = ability_entity->read< float >( 0x62C );
                    const auto ability_name = entity_system->get_unit_name( ability_entity );
                    std::cout << std::format( "    ability[{}] = {}\n", k, ability_name );
                }
            }
            catch ( const std::exception& e )
            {
                std::cerr << "[2] FAILED (" << e.what( ) << ") ===============================\n";
            }
            // items
            std::cout << "[3] GET ITEMS\n";
            try
            {
                // либо кальве либо хуй знает почему, но мой CUtlVector который я использую в m_vecAbilities тут не работает
                const auto m_hItems = assigned_hero->read< std::array< int, 25 > >( 0x1128 + 0x20 + 0x4 );
                for ( int k = 0; k < m_hItems.size( ); k++ )
                {
                    const auto item_handle = m_hItems [ k ];
                    if ( !item_handle )
                        continue;
                    const auto item_entity = entity_system->get_entity_by_handle( item_handle );
                    if ( !item_entity || !item_entity->valid( ) )
                        continue;
                    const auto item_name = entity_system->get_unit_name( item_entity );
                    std::cout << std::format( "    item[{}] = {}\n", k, item_name );
                }
            }
            catch ( const std::exception& e )
            {
                std::cerr << "[3] FAILED (" << e.what( ) << ") ===============================\n";
            }
 
Назад
Сверху Снизу