-
Автор темы
- #1
Обратите внимание, пользователь заблокирован на форуме. Не рекомендуется проводить сделки.
Короче. Это мой собтсвенный фикс. Если бы беременный , и не можете изменить 1 паттерн или еще какие-то проблемы , то попорбуйте этот метод. PS. На UС я его выложил. Ненадо говорить , про пасту с UC. Так же фикшу ваши андефитеды , динго , ауувары , тгфы и т.д. Пишите в лс
Код:
void IncrementReferenceCount() // in IMaterial class
{
typedef void(__thiscall* IncrementReferenceCountFn)(void*);
call_vfunc<IncrementReferenceCountFn>(this, 14)(this);
}
IMaterial* CreateMaterial(bool bShouldIgnoreZ, bool bShouldFlat)
{
IMaterial* createdMaterial;
if(bShouldIgnoreZ)
{
if(bShouldFlat)
createdMaterial = Interfaces.MatSysClass->FindMaterial("chamsmat_flat_ignorez");
else
createdMaterial = Interfaces.MatSysClass->FindMaterial("chamsmat_ignorez");
}
else
{
if(bShouldFlat)
createdMaterial = Interfaces.MatSysClass->FindMaterial("chamsmat_flat");
else
createdMaterial = Interfaces.MatSysClass->FindMaterial("chamsmat");
}
createdMaterial->IncrementReferenceCount();
return createdMaterial;
}
std::string GetWorkingPath()
{
char szPath[MAX_PATH];
GetModuleFileNameA(0, szPath, MAX_PATH);
std::string path(szPath);
return path.substr(0, path.find_last_of("\\") + 1);
}
bool IsFileExists(const std::string& name)
{
struct stat buffer;
return (stat(name.c_str(), &buffer) == 0);
}
void InitMaterials()
{
if(!IsFileExists(GetWorkingPath().append("csgo\\materials\\chamsmat.vmt")))
{
std::stringstream ss;
ss << "\"VertexLitGeneric\"" << std::endl;
ss << "{" << std::endl;
ss << "\t\"$basetexture\" \"VGUI/white_additive\"" << std::endl;
ss << "\t\"$ignorez\" \"0\"" << std::endl;
ss << "\t\"$nofog\" \"1\"" << std::endl;
ss << "\t\"$model\" \"1\"" << std::endl;
ss << "\t\"$nocull\" \"1\"" << std::endl;
ss << "\t\"$halflambert\" \"1\"" << std::endl;
ss << "}" << std::endl;
std::ofstream(GetWorkingPath().append("csgo\\materials\\chamsmat.vmt").c_str()) << ss.str();
}
if(!IsFileExists(GetWorkingPath().append("csgo\\materials\\chamsmat_ignorez.vmt")))
{
std::stringstream ss;
ss << "\"VertexLitGeneric\"" << std::endl;
ss << "{" << std::endl;
ss << "\t\"$basetexture\" \"VGUI/white_additive\"" << std::endl;
ss << "\t\"$ignorez\" \"1\"" << std::endl;
ss << "\t\"$nofog\" \"1\"" << std::endl;
ss << "\t\"$model\" \"1\"" << std::endl;
ss << "\t\"$nocull\" \"1\"" << std::endl;
ss << "\t\"$halflambert\" \"1\"" << std::endl;
ss << "}" << std::endl;
std::ofstream(GetWorkingPath().append("csgo\\materials\\chamsmat_ignorez.vmt").c_str()) << ss.str();
}
if(!IsFileExists(GetWorkingPath().append("csgo\\materials\\chamsmat_flat.vmt")))
{
std::stringstream ss;
ss << "\"UnlitGeneric\"" << std::endl;
ss << "{" << std::endl;
ss << "\t\"$basetexture\" \"VGUI/white_additive\"" << std::endl;
ss << "\t\"$ignorez\" \"0\"" << std::endl;
ss << "\t\"$nofog\" \"1\"" << std::endl;
ss << "\t\"$model\" \"1\"" << std::endl;
ss << "\t\"$nocull\" \"1\"" << std::endl;
ss << "\t\"$halflambert\" \"1\"" << std::endl;
ss << "}" << std::endl;
std::ofstream(GetWorkingPath().append("csgo\\materials\\chamsmat_flat.vmt").c_str()) << ss.str();
}
if(!IsFileExists(GetWorkingPath().append("csgo\\materials\\chamsmat_flat_ignorez.vmt")))
{
std::stringstream ss;
ss << "\"UnlitGeneric\"" << std::endl;
ss << "{" << std::endl;
ss << "\t\"$basetexture\" \"VGUI/white_additive\"" << std::endl;
ss << "\t\"$ignorez\" \"1\"" << std::endl;
ss << "\t\"$nofog\" \"1\"" << std::endl;
ss << "\t\"$model\" \"1\"" << std::endl;
ss << "\t\"$nocull\" \"1\"" << std::endl;
ss << "\t\"$halflambert\" \"1\"" << std::endl;
ss << "}" << std::endl;
std::ofstream(GetWorkingPath().append("csgo\\materials\\chamsmat_flat_ignorez.vmt").c_str()) << ss.str();
}
ChamsMat = CreateMaterial(false, false);
ChamsMat_IgnoreZ = CreateMaterial(true, false);
ChamsMat_Flat = CreateMaterial(false, true);
ChamsMat_Flat_IgnoreZ = CreateMaterial(true, true);
}
Последнее редактирование: