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

CSGOSimple chams

  • Автор темы Автор темы Frzguy
  • Дата начала Дата начала
Пользователь
Пользователь
Статус
Оффлайн
Регистрация
24 Авг 2019
Сообщения
239
Реакции
37
Вообще в целом как работать с материалами чамсов в ксгосимпле. С кастомными то более менее всё понятно(я имею ввиду вот эти
C++:
Expand Collapse Copy
    std::ofstream("csgo\\materials\\simple_flat_ignorez.vmt") << R"#("UnlitGeneric"
{
  "$basetexture" "vgui/white_additive"
  "$ignorez"      "1"
  "$envmap"       ""
  "$nofog"        "1"
  "$model"        "1"
  "$nocull"       "0"
  "$selfillum"    "1"
  "$halflambert"  "1"
  "$znearer"      "0"
  "$flat"         "1"
}
)#";
)

а вот как сделать чтобы это штука работала я хз
C++:
Expand Collapse Copy
pulse = g_MatSystem->FindMaterial("models/inventory_items/dogtags/dogtags_outline", TEXTURE_GROUP_MODEL);
(взято с этой темы не релама)

Вот например с кастом чамсами идёт remove vmt файла:
C++:
Expand Collapse Copy
MaterialManager::~MaterialManager()
{
    std::remove("csgo\\materials\\simple_regular.vmt");
    std::remove("csgo\\materials\\simple_ignorez.vmt");
    std::remove("csgo\\materials\\simple_flat.vmt");
    std::remove("csgo\\materials\\simple_flat_ignorez.vmt");
    std::remove("csgo\\materials\\regular_reflective.vmt");
    std::remove("csgo\\materials\\simple_reflective.vmt");

}

а вот что делать с тем я хз.
Я пробовал и с ремувом и без него и указывал всякие разные пути до материала.
Для того чтобы просто протестить я просто заменил флет чамсы(ignoreZ) на пульс:
C++:
Expand Collapse Copy
    if (flat)
    {
        if (ignoreZ)
        {
            material = pulse;
        }
        else
        {
            material = materialFlat;
        }
    }
Но в итоге рендерились обычные флет чамсы (не ignoreZ)
 
Тебе ещё нужно прописать вроде как OverrideMaterial, как на скрине.
1580629503531.png
 
Обратите внимание, пользователь заблокирован на форуме. Не рекомендуется проводить сделки.
Ты в chams.hpp прописал материал?, Мб для него нужен ofstream
нет не нужен
C++:
Expand Collapse Copy
if (ent == g_LocalPlayer && Settings::Visual::LocalChams.Enabled)
        {
            const auto clr_front = Color(Settings::Visual::LocalChams.Visible);
            const auto clr_back = Color(Settings::Visual::LocalChams.Invisible);
            const auto flat = Settings::Visual::LocalChams.Mode == 1 || Settings::Visual::LocalChams.Mode == 7;
            const auto metallic = Settings::Visual::LocalChams.Mode == 4 || Settings::Visual::LocalChams.Mode == 6;
            const auto wireframe = Settings::Visual::LocalChams.Mode == 2;
            const auto glass = Settings::Visual::LocalChams.Mode == 3;
            bool ignoreZ = Settings::Visual::LocalChams.Mode >= 5;



            if (ignoreZ)
            {
                MaterialManager::Get().OverrideMaterial(true, flat, wireframe, false, metallic, clr_back);
                fnDME(g_StudioRender, pResults, pInfo, pBoneToWorld, flpFlexWeights, flpFlexDelayedWeights, vrModelOrigin, iFlags);

                MaterialManager::Get().OverrideMaterial(false, flat, wireframe, false, metallic, clr_front);
            }
            else
            {
                MaterialManager::Get().OverrideMaterial(false, flat, wireframe, glass, metallic, clr_front);
            }

        }
 
C++:
Expand Collapse Copy
Chams::Chams(){
pulse = g_MatSystem->FindVar("models/inventory_items/dogtags/dogtags_outline");
}
void Chams::OverrideMaterial(bool pulsa, ...) {
    IMaterial* material = nullptr;
    if (pulsa)
        material = pulse;
    else
        material = nullptr;
}

а overridematerial сам сделаешь
 
Обратите внимание, пользователь заблокирован на форуме. Не рекомендуется проводить сделки.
C++:
Expand Collapse Copy
Chams::Chams(){
pulse = g_MatSystem->FindVar("models/inventory_items/dogtags/dogtags_outline");
}
void Chams::OverrideMaterial(bool pulsa, ...) {
    IMaterial* material = nullptr;
    if (pulsa)
        material = pulse;
    else
        material = nullptr;
}

а overridematerial сам сделаешь
А нахуя через overridematerial?
 
if (flat) { if (ignoreZ) { material = pulse; } else { material = materialFlat; } }
А вот и ошибка. Зачем ты в if (flat) прописал if (ignoreZ), если ignoreZ должен прописываться в чамсах для игрока (if (g_Options.chams_player_ignorez))?
 
А вот и ошибка. Зачем ты в if (flat) прописал if (ignoreZ), если ignoreZ должен прописываться в чамсах для игрока (if (g_Options.chams_player_ignorez))?
значение ignorez передаётся в override material через код самих чамсов :
C++:
Expand Collapse Copy
const auto clr_front = Color(Settings::Visual::LocalChams.Visible);
            const auto clr_back = Color(Settings::Visual::LocalChams.Invisible);
            const auto flat = Settings::Visual::LocalChams.Mode == 1 || Settings::Visual::LocalChams.Mode == 7;
            const auto metallic = Settings::Visual::LocalChams.Mode == 4 || Settings::Visual::LocalChams.Mode == 6;
            const auto wireframe = Settings::Visual::LocalChams.Mode == 2;
            const auto glass = Settings::Visual::LocalChams.Mode == 3;
            bool ignoreZ = Settings::Visual::LocalChams.Mode >= 5;



            if (ignoreZ)
            {
                MaterialManager::Get().OverrideMaterial(true, flat, wireframe, false, metallic, clr_back);
                fnDME(g_StudioRender, pResults, pInfo, pBoneToWorld, flpFlexWeights, flpFlexDelayedWeights, vrModelOrigin, iFlags);

                MaterialManager::Get().OverrideMaterial(false, flat, wireframe, false, metallic, clr_front);
            }
            else
            {
                MaterialManager::Get().OverrideMaterial(false, flat, wireframe, glass, metallic, clr_front);
            }
 
Назад
Сверху Снизу