rgb(24, 205, 154)
-
Автор темы
- #1
Всем ку, делаю пасту для себя на основе асфиксии, и у меня траблы с созданием материалов
Проблема в том что pMaterial нормально создается а pMaterialInvisible нет, даже если я буду создавать один и тот же материал, на втором создании всегда крашит, а ну и крашит на строчке
if (!MEM::fnLoadKV3(kv3, nullptr, szVmatBuffer, &kv3ID, nullptr))
Создание:
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;
}
if (!MEM::fnLoadKV3(kv3, nullptr, szVmatBuffer, &kv3ID, nullptr))
Последнее редактирование: