Nie jestem pewny czy działa ale kompiluje sie 
#include <amxmisc>
#include <amxmodx>
#include <codmod>
#include <hamsandwich>
#include <cstrike>
#include <engine>
#include <fun>
#define DMG_BULLET (1<<1)
new bool:ma_klase[33];
new const nazwa[] = "Espia";
new const opis[] = "Puede aparecer en la base del enemigo, ropa enemiga, no se le oyen pasos y hace danio con el cuchillo";
new const bronie = 1<<CSW_M4A1;
new const zdrowie = 20;
new const kondycja = 20;
new const inteligencja = 20;
new const wytrzymalosc = 20;
new CT_Skins[4][] = {"sas","gsg9","urban","gign"};
new Terro_Skins[4][] = {"arctic","leet","guerilla","terror"};
public plugin_init()
{
register_plugin(nazwa, "1.0", "Kiper");
cod_register_class(nazwa, opis, bronie, zdrowie, kondycja, inteligencja, wytrzymalosc); RegisterHam(Ham_Spawn, "player", "Spawn", 1);
register_event("CurWeapon", "CurWeapon", "be", "1=1");
RegisterHam(Ham_TakeDamage, "player", "TakeDamage");
}
public cod_class_enabled(id)
{
ZmienUbranie(id, 0);
ma_klase[id] = true;
set_user_footsteps(id, 1);
}
public cod_class_disabled(id)
{
ZmienUbranie(id, 1);
ma_klase[id] = false;
set_user_footsteps(id, 0);
}
public Spawn(id)
{
if(!is_user_alive(id))
return;
if(!ma_klase[id])
return;
if(random_num(1,4) == 1)
{
new CsTeams:team = cs_get_user_team(id);
cs_set_user_team(id, (team == CS_TEAM_CT)? CS_TEAM_T: CS_TEAM_CT);
ExecuteHam(Ham_CS_RoundRespawn, id);
cs_set_user_team(id, team);
}
}
public ZmienUbranie(id,reset)
{
if (!is_user_connected(id))
return PLUGIN_CONTINUE;
if (reset)
cs_reset_user_model(id);
else
{
new num = random_num(0,3);
cs_set_user_model(id, (get_user_team(id) == 1)? CT_Skins[num]: Terro_Skins[num]);
}
return PLUGIN_CONTINUE;
}
public CurWeapon(id)
{
if(!ma_klase[id])
return;
if(get_user_weapon(id) != CSW_KNIFE) // if(get_user_weapon(id) != CSW_KNIFE)
{
set_rendering(id,kRenderFxGlowShell,0,0,0 ,kRenderTransAlpha, 255);
return;
}
set_rendering(id,kRenderFxGlowShell,0,0,0 ,kRenderTransAlpha, 100);
}
public TakeDamage(this, idinflictor, idattacker, Float:damage, damagebits)
{
if(!is_user_connected(idattacker))
return HAM_IGNORED;
if(!ma_klase[idattacker])
return HAM_IGNORED;
if(get_user_team(this) != get_user_team(idattacker) && get_user_weapon(idattacker) == CSW_M4A1 && damagebits & DMG_BULLET)
cod_inflict_damage(idattacker, this, 5.0, 0.0, idinflictor, damagebits);
return HAM_IGNORED;
}
/* AMXX-Studio Notes - DO NOT MODIFY BELOW HERE
*{\\ rtf1\\ ansi\\ deff0{\\ fonttbl{\\ f0\\ fnil Tahoma;}}\n\\ viewkind4\\ uc1\\ pard\\ lang3082\\ f0\\ fs16 \n\\ par }
*/