static const char
MDL[][] =
{// модели
"models/nades/0.mdl", // decoy
"models/nades/1.mdl", // flashbang
"models/nades/2.mdl", // hegrenade
"models/nades/3.mdl", // molotov
"models/nades/4.mdl", // smokegrenade
"models/nades/5.mdl", // tagrenade
// записи ниже в этом массиве нужны только, если другой плагин не добавляет все файлы моделей и их текстуры в прекеш и загрузку
// остальные файлы моделей
"models/nades/0.dx90.vtx", // decoy
"models/nades/0.phy",
"models/nades/0.vtx",
"models/nades/0.vvd",
/* тут должны быть файлы остальных гранат */
"models/nades/5.dx90.vtx", // tagrenade
"models/nades/5.phy",
"models/nades/5.vtx",
"models/nades/5.vvd",
// текстуры
"materials/models/nades/0.vmt", // decoy
"materials/models/nades/0.vtf",
/* тут должны быть файлы остальных гранат */
"materials/models/nades/5.vmt", // tagrenade
"materials/models/nades/5.vtf"
};
/*
classname 0 1 2 3 4 5 6
breachcharge_projectile = b r e a c h c
bumpmine_projectile = b u m p m i n
decoy_projectile = d e c o y _ p
flashbang_projectile = f l a s h b a
hegrenade_projectile = h e g r e n a
molotov_projectile = m o l o t o v
smokegrenade_projectile = s m o k e g r
snowball_projectile = s n o w b a l
tagrenade_projectile = t a g r e n a
*/
public OnMapStart()
{
int i;
for(; i < 6; i++)
{
PrecacheModel(MDL[i], true);
AddFileToDownloadsTable(path); // необходимо только, если другой плагин не добавляет все файлы моделей и их текстуры в прекеш и загрузку
}
for(; i < sizeof(MDL); i++) AddFileToDownloadsTable(path); // необходимо только, если другой плагин не добавляет все файлы моделей и их текстуры в прекеш и загрузку
}
public void OnEntityCreated(int ent, const char[] cls)
{
static int len;
if((len = strlen(cls)) < 16 || len > 23 || StrContains(cls[5], "_projectile", false) == -1)
return;
switch(cls[0])
{
case 'd': SDKHook(ent, SDKHook_SpawnPost, OnSpawned_Decoy);
case 'f': SDKHook(ent, SDKHook_SpawnPost, OnSpawned_Flash);
case 'h': SDKHook(ent, SDKHook_SpawnPost, OnSpawned_HE);
case 'm': SDKHook(ent, SDKHook_SpawnPost, OnSpawned_Molotov);
case 's': if(cls[1] == 'm') SDKHook(ent, SDKHook_SpawnPost, OnSpawned_Smoke);
case 't': SDKHook(ent, SDKHook_SpawnPost, OnSpawned_TAG);
}
SDKHook(ent, SDKHook_SpawnPost, OnProjectileSpawned);
}
public void OnSpawned_Decoy(int ent)
{
SetEntityModel(ent, MDL[0]);
}
public void OnSpawned_Flash(int ent)
{
SetEntityModel(ent, MDL[1]);
}
public void OnSpawned_HE(int ent)
{
SetEntityModel(ent, MDL[2]);
}
public void OnSpawned_Molotov(int ent)
{
SetEntityModel(ent, MDL[3]);
}
public void OnSpawned_Smoke(int ent)
{
SetEntityModel(ent, MDL[4]);
}
public void OnSpawned_TAG(int ent)
{
SetEntityModel(ent, MDL[5]);
}