#include <sdktools_stringtables>
char
g_sTexture[PLATFORM_MAX_PATH];
int
g_iTexture;
public void OnPluginStart()
{
ConVar cvar;
cvar = CreateConVar("sm_vsb_linetexture", "sprites/xbeam2.vmt", "Текстура обводки блокировки", FCVAR_PRINTABLEONLY);
cvar.AddChangeHook(CVarChange_Texture);
CVarChange_Texture(cvar, NULL_STRING, NULL_STRING);
AutoExecConfig(true, "Visual_Block");
}
public void CVarChange_Texture(ConVar cvar, const char[] oldValue, const char[] newValue)
{
cvar.GetString(g_sTexture, sizeof(g_sTexture));
int len = strlen(g_sTexture) - 4;
if(len > 0 && !strcmp(g_sTexture[len], ".vmt", false)) // проверяем длину пути и расширение файла
return;
LogError("Invalid texture path: \"%s\"", g_sTexture);
g_sTexture = "sprites/xbeam2.vmt";
}
public void OnMapStart()
{
if(!(g_iTexture = PrecacheModel(g_sTexture)))
{
LogError("Can't precache texture \"%s\"", g_sTexture);
return;
}
char path[PLATFORM_MAX_PATH];
FormatEx(path, sizeof(path), "materials/%s", g_sTexture);
AddFileToDownloadsTable(path);
int pos = strlen(path) - 2;
path[pos] = 't', path[pos+1] = 'f'; // меняем расширение vmt на vtf
AddFileToDownloadsTable(path);
}