Вопрос CreateMaterial crashes

rgb(24, 205, 154)
Пользователь
Статус
Оффлайн
Регистрация
9 Фев 2019
Сообщения
284
Реакции[?]
78
Поинты[?]
73K
Всем ку, делаю пасту для себя на основе асфиксии, и у меня траблы с созданием материалов
Создание:
    arrMaterials[VISUAL_MATERIAL_ILLUMINATE] = CustomMaterial_t
    {
        .pMaterial = create_material_illum_visible("csgo_unlitgeneric"),
        .pMaterialInvisible = create_material_illum_invisible("csgo_unlitgeneric"),

    };
create_material:
CMaterial2* create_material_illum_visible(const char* m_name)
{
    const char szVmatBuffer[] = R"(<!-- kv3 encoding:text:version{e21c7f3c-8a33-41c5-9977-a76d3a32aa0d} format:generic:version{7412167c-06e9-4698-aff2-e63eb59037e7} -->
{
     shader = "csgo_complex.vfx"

    g_tColor = resource:"materials/default/default_mask_tga_fde710a5.vtex"
    g_tNormal = resource:"materials/default/default_mask_tga_fde710a5.vtex"
    g_tSelfIllumMask = resource:"materials/default/default_mask_tga_fde710a5.vtex"
    TextureAmbientOcclusion = resource:"materials/debug/particleerror.vtex"
    g_tAmbientOcclusion = resource:"materials/debug/particleerror.vtex"
   
    g_vColorTint = [ 20.000000, 20.000000, 20.000000, 20.000000 ]
    g_flSelfIllumScale = [ 5.000000, 5.000000, 5.000000, 5.000000 ]
    g_flSelfIllumBrightness = [ 5.000000, 5.000000, 5.000000, 5.000000 ]
    g_vSelfIllumTint = [ 10.000000, 10.000000, 10.000000, 10.000000 ]

    F_SELF_ILLUM = 1
   
    F_PAINT_VERTEX_COLORS = 1

    F_TRANSLUCENT = 1

})";

    L_PRINT(LOG_ERROR) << "!";
    auto buffer = new unsigned char[0x100 + sizeof(CKeyValues3)];
    CRT::MemorySet(buffer, 0, sizeof(buffer));
    auto pBuffer = (char*)(I::MemAlloc->Alloc(0x100 + sizeof(CKeyValues3)));
    CKeyValues3* kv3 = (CKeyValues3*)(pBuffer + 0x100);

    L_PRINT(LOG_ERROR) << "2";
    KV3ID_t kv3ID;
    kv3ID.szName = m_name;
    kv3ID.unk0 = 0x469806E97412167C;
    kv3ID.unk1 = 0xE73790B53EE6F2AF;

    L_PRINT(LOG_ERROR) << "3";
    L_PRINT(LOG_ERROR) << pBuffer;
    if (!MEM::fnLoadKV3(kv3, nullptr, szVmatBuffer, &kv3ID, nullptr))
        throw;

    L_PRINT(LOG_ERROR) << "4";
    CMaterial2** custom_material;
    MEM::fnCreateMaterial(nullptr, &custom_material, m_name, kv3, 0, 1);

    L_PRINT(LOG_ERROR) << "5";
    L_PRINT(LOG_ERROR) << custom_material;
    return *custom_material;
}
Проблема в том что pMaterial нормально создается а pMaterialInvisible нет, даже если я буду создавать один и тот же материал, на втором создании всегда крашит, а ну и крашит на строчке
if (!MEM::fnLoadKV3(kv3, nullptr, szVmatBuffer, &kv3ID, nullptr))
 
Последнее редактирование:
Сверху Снизу