Гайд Fix black chams csgosimple

Забаненный
Статус
Оффлайн
Регистрация
24 Фев 2022
Сообщения
276
Реакции[?]
20
Поинты[?]
0
Обратите внимание, пользователь заблокирован на форуме. Не рекомендуется проводить сделки.
Столкнулся с проблемой, что были черные чамсы в симпле ( старый сурс очень ). В итоге нашел решение проблемы
Пожалуйста, авторизуйтесь для просмотра ссылки.
- это мне очень помогло. Ну а теперь к коду на симпле
Код:
Chams::Chams() {
    materialRegular = g_MatSystem->FindMaterial("debug/debugambientcube", TEXTURE_GROUP_MODEL);
    materialFlat = g_MatSystem->FindMaterial("debug/debugdrawflat", TEXTURE_GROUP_MODEL);

    materialRegularIgnoreZ = g_MatSystem->FindMaterial("debug/debugambientcube_ignorez", TEXTURE_GROUP_MODEL);
    materialFlatIgnoreZ = g_MatSystem->FindMaterial("debug/debugdrawflat_ignorez", TEXTURE_GROUP_MODEL);
}

void Chams::OverrideMaterial(bool ignoreZ, bool flat, bool wireframe, bool glass, const Color& rgba) {
    IMaterial* material = nullptr;

    if (flat) {
        material = materialFlat;
    }
    else {
        material = materialRegular;
    }

    material->SetMaterialVarFlag(MATERIAL_VAR_IGNOREZ, ignoreZ);

    if (glass) {
        material = materialFlat;
        material->AlphaModulate(0.45f);
    }
    else {
        material->AlphaModulate(
            rgba.a() / 255.0f);
    }

    material->SetMaterialVarFlag(MATERIAL_VAR_WIREFRAME, wireframe);
    material->ColorModulate(
        rgba.r() / 255.0f,
        rgba.g() / 255.0f,
        rgba.b() / 255.0f);

    g_MdlRender->ForcedMaterialOverride(material);
}
Столкнулся с проблемой, что были черные чамсы в симпле ( старый сурс очень ). В итоге нашел решение проблемы
Пожалуйста, авторизуйтесь для просмотра ссылки.
- это мне очень помогло. Ну а теперь к коду на симпле
Код:
Chams::Chams() {
    materialRegular = g_MatSystem->FindMaterial("debug/debugambientcube", TEXTURE_GROUP_MODEL);
    materialFlat = g_MatSystem->FindMaterial("debug/debugdrawflat", TEXTURE_GROUP_MODEL);

    materialRegularIgnoreZ = g_MatSystem->FindMaterial("debug/debugambientcube_ignorez", TEXTURE_GROUP_MODEL);
    materialFlatIgnoreZ = g_MatSystem->FindMaterial("debug/debugdrawflat_ignorez", TEXTURE_GROUP_MODEL);
}

void Chams::OverrideMaterial(bool ignoreZ, bool flat, bool wireframe, bool glass, const Color& rgba) {
    IMaterial* material = nullptr;

    if (flat) {
        material = materialFlat;
    }
    else {
        material = materialRegular;
    }

    material->SetMaterialVarFlag(MATERIAL_VAR_IGNOREZ, ignoreZ);

    if (glass) {
        material = materialFlat;
        material->AlphaModulate(0.45f);
    }
    else {
        material->AlphaModulate(
            rgba.a() / 255.0f);
    }

    material->SetMaterialVarFlag(MATERIAL_VAR_WIREFRAME, wireframe);
    material->ColorModulate(
        rgba.r() / 255.0f,
        rgba.g() / 255.0f,
        rgba.b() / 255.0f);

    g_MdlRender->ForcedMaterialOverride(material);
}
materialRegularIgnoreZ = g_MatSystem->FindMaterial("debug/debugambientcube_ignorez", TEXTURE_GROUP_MODEL);
materialFlatIgnoreZ = g_MatSystem->FindMaterial("debug/debugdrawflat_ignorez", TEXTURE_GROUP_MODEL);
можете убрать, они не нужны
 
Эксперт
Статус
Оффлайн
Регистрация
30 Дек 2019
Сообщения
1,970
Реакции[?]
958
Поинты[?]
19K
Столкнулся с проблемой, что были черные чамсы в симпле ( старый сурс очень ). В итоге нашел решение проблемы
Пожалуйста, авторизуйтесь для просмотра ссылки.
- это мне очень помогло. Ну а теперь к коду на симпле
Код:
Chams::Chams() {
    materialRegular = g_MatSystem->FindMaterial("debug/debugambientcube", TEXTURE_GROUP_MODEL);
    materialFlat = g_MatSystem->FindMaterial("debug/debugdrawflat", TEXTURE_GROUP_MODEL);

    materialRegularIgnoreZ = g_MatSystem->FindMaterial("debug/debugambientcube_ignorez", TEXTURE_GROUP_MODEL);
    materialFlatIgnoreZ = g_MatSystem->FindMaterial("debug/debugdrawflat_ignorez", TEXTURE_GROUP_MODEL);
}

void Chams::OverrideMaterial(bool ignoreZ, bool flat, bool wireframe, bool glass, const Color& rgba) {
    IMaterial* material = nullptr;

    if (flat) {
        material = materialFlat;
    }
    else {
        material = materialRegular;
    }

    material->SetMaterialVarFlag(MATERIAL_VAR_IGNOREZ, ignoreZ);

    if (glass) {
        material = materialFlat;
        material->AlphaModulate(0.45f);
    }
    else {
        material->AlphaModulate(
            rgba.a() / 255.0f);
    }

    material->SetMaterialVarFlag(MATERIAL_VAR_WIREFRAME, wireframe);
    material->ColorModulate(
        rgba.r() / 255.0f,
        rgba.g() / 255.0f,
        rgba.b() / 255.0f);

    g_MdlRender->ForcedMaterialOverride(material);
}
materialRegularIgnoreZ = g_MatSystem->FindMaterial("debug/debugambientcube_ignorez", TEXTURE_GROUP_MODEL);
materialFlatIgnoreZ = g_MatSystem->FindMaterial("debug/debugdrawflat_ignorez", TEXTURE_GROUP_MODEL);
можете убрать, они не нужны
а зачем создавать отдельные материалы для ignoreZ, если для этого есть флаг?
 
Забаненный
Статус
Оффлайн
Регистрация
24 Фев 2022
Сообщения
276
Реакции[?]
20
Поинты[?]
0
Обратите внимание, пользователь заблокирован на форуме. Не рекомендуется проводить сделки.
Сверху Снизу