Подведи собственные итоги года совместно с YOUGAME и забери ценные призы! Перейти

Исходник CMaterial::GetAlphaModulation

  • Автор темы Автор темы Seek
  • Дата начала Дата начала
Начинающий
Начинающий
Статус
Оффлайн
Регистрация
26 Сен 2020
Сообщения
16
Реакции
6
Привет, маслята. Я увидел новый способ найтмода и подумал, почему бы мне не сделать то же самое с альфой материалов. Собсна приступим:

Хукаем две функи:
  1. CMaterial::GetAlphaModulation: materialsystem.dll 56 8B F1 8A 46 20 C0 E8 02 A8 01 75 0B 6A 00 6A 00 6A 00 E8 ? ? ? ? 80 7E 22 05 76 0E
  2. IsUsingStaticPropDebugModes: engine.dll 8B 0D ? ? ? ? 81 F9 ? ? ? ? 75 ? A1 ? ? ? ? 35 ? ? ? ? EB ? 8B 01 FF 50 ? 83 F8 ? 0F 85 ? ? ? ? 8B 0D
во второй возвращаем true, а в первой чекаете имя материала или имя его группы и возвращаете число от 0 до 1
Пример:
C++:
Expand Collapse Copy
float __fastcall hkGetAlphaModulation( IMaterial* pEcx, uint32_t )
{
    if ( strstr( pEcx->GetGroupName( ), "StaticProp" ) )
        return 0.75f;
    return o_GetAlphaModulation( pEcx );
}
 
Привет, маслята. Я увидел новый способ найтмода и подумал, почему бы мне не сделать то же самое с альфой материалов. Собсна приступим:

Хукаем две функи:
  1. CMaterial::GetAlphaModulation: materialsystem.dll 56 8B F1 8A 46 20 C0 E8 02 A8 01 75 0B 6A 00 6A 00 6A 00 E8 ? ? ? ? 80 7E 22 05 76 0E
  2. IsUsingStaticPropDebugModes: engine.dll 8B 0D ? ? ? ? 81 F9 ? ? ? ? 75 ? A1 ? ? ? ? 35 ? ? ? ? EB ? 8B 01 FF 50 ? 83 F8 ? 0F 85 ? ? ? ? 8B 0D
во второй возвращаем true, а в первой чекаете имя материала или имя его группы и возвращаете число от 0 до 1
Пример:
C++:
Expand Collapse Copy
float __fastcall hkGetAlphaModulation( IMaterial* pEcx, uint32_t )
{
    if ( strstr( pEcx->GetGroupName( ), "StaticProp" ) )
        return 0.75f;
    return o_GetAlphaModulation( pEcx );
}
позволь спросить, чем этот найтмод отличается от обычного (и для какой базы этот код?) (или он по до все)
 
Обратите внимание, пользователь заблокирован на форуме. Не рекомендуется проводить сделки.
Блять ну гайд кстати для новичков подойдёт отлично)) Только не забывай что сейчас всякие умники будут спрашивать А КАК ХУКАТЬ
 
Обратите внимание, пользователь заблокирован на форуме. Не рекомендуется проводить сделки.
C++:
Expand Collapse Copy
        const auto getcolormodulation_address = reinterpret_cast< decltype( &getcolormodulation_hk ) >( shared::memory::v_func<std::uintptr_t> ( reinterpret_cast< void * >( hack::game::addresses::functions::imaterialvtable_address ) , 45 ) );
        const auto getalphamodulation_address = reinterpret_cast< decltype( &getalphamodulation_hk ) >( shared::memory::v_func<std::uintptr_t> ( reinterpret_cast< void * >( hack::game::addresses::functions::imaterialvtable_address ) , 44 ) );


        functions::imaterialvtable_address = sig ( MODULE_MATERIAL_SYSTEM , STR ( "C7 06 ? ? ? ? C7 46 ? ? ? ? ? C7 46 ? ? ? ? ? 89 4D E8" ) ) + 2;

in case you want alternative sigs
 
Обратите внимание, пользователь заблокирован на форуме. Не рекомендуется проводить сделки.
already public information, your unknowncheats post got taken down for a reason
 
C++:
Expand Collapse Copy
        const auto getcolormodulation_address = reinterpret_cast< decltype( &getcolormodulation_hk ) >( shared::memory::v_func<std::uintptr_t> ( reinterpret_cast< void * >( hack::game::addresses::functions::imaterialvtable_address ) , 45 ) );
        const auto getalphamodulation_address = reinterpret_cast< decltype( &getalphamodulation_hk ) >( shared::memory::v_func<std::uintptr_t> ( reinterpret_cast< void * >( hack::game::addresses::functions::imaterialvtable_address ) , 44 ) );


        functions::imaterialvtable_address = sig ( MODULE_MATERIAL_SYSTEM , STR ( "C7 06 ? ? ? ? C7 46 ? ? ? ? ? C7 46 ? ? ? ? ? 89 4D E8" ) ) + 2;

in case you want alternative sigs
enjoy rtti for imaterial_vtable?)
 
Назад
Сверху Снизу