#include <sourcemod>
#pragma semicolon 1
new Model;
public OnMapStart()
{
Model = PrecacheModel("тут путь к модели оружия", true); // Делаем прекэш модели, которая установится
}
public Action::OnPlayerRunCmd(client, &buttons, &impulse, Float:vel[3], Float:angles[3], &weapon) // Перехватываем каждое нажатие кнопки
{
new active_weapon = GetEntPropEnt(client, Prop_Data, "m_hActiveWeapon"); // Получаем номер ентити, которое является текущим активным оружием
if(active_weapon != -1) // Проверяем правильное ли оружие
{
decl String:name_weapon[64];
GetEdictClassname(active_weapon, name_weapon, sizeof(name_weapon)); // Получаем название ентити, которое является текущим активным оружием, и вписываем в name_weapon
if(StrEqual(name_weapon, "название оружия")) // Проверяем название оружие, должен быть префикс weapon_, к примеру: weapon_knife или weapon_p90. Если оно соответствует нужному, то изменяем модель.
SetEntProp(active_weapon, Prop_Send, "m_iWorldModelIndex", Model); // Изменяем модель оружия ну нужную (за это отвечает переменная Model)
}
}