Follow along with the video below to see how to install our site as a web app on your home screen.
Note: This feature may not be available in some browsers.
#include <amxmodx>
#include <amxmisc>
#include <fakemeta>
#include <hamsandwich>
#include <engine>
#define PLUGIN "[CSAW] Block CS Weapons"
#define VERSION "0.1"
#define AUTHOR "jc980, NST"
#define MAX_CMD 26
new Array: csaw_amodel, Array: csaw_asound, csaw_isfakeattack, csaw_fwspawn, csaw_wpnpickupmsg, csaw_ammopickupmsg
const m_pPlayer = 41
const m_iId = 43
const m_flNextAttack = 83
const m_flNextPrimaryAttack = 46
const m_flNextSecondaryAttack = 47
const m_flTimeWeaponIdle = 48
const m_iUserPrefs = 510
const CSWPN_NOBLOCK = ( (1<<CSW_C4) | (1<<CSW_KNIFE) | (1<<CSW_VEST) | (1<<CSW_VESTHELM) )
new const CSWPN_NAME[CSW_P90+1][] = {"", "weapon_p228", "", "weapon_scout", "weapon_hegrenade", "weapon_xm1014", "weapon_c4", "weapon_mac10",
"weapon_aug", "weapon_smokegrenade", "weapon_elite", "weapon_fiveseven", "weapon_ump45", "weapon_sg550",
"weapon_galil", "weapon_famas", "weapon_usp", "weapon_glock18", "weapon_awp", "weapon_mp5navy", "weapon_m249",
"weapon_m3", "weapon_m4a1", "weapon_tmp", "weapon_g3sg1", "weapon_flashbang", "weapon_deagle", "weapon_sg552",
"weapon_ak47", "weapon_knife", "weapon_p90"
}
new csaw_cmdblock[MAX_CMD][] = {"usp","glock","deagle","p228","elites","fn57","m3","xm1014","mp5","tmp","p90","mac10","ump45","ak47","galil","famas","sg552","m4a1","aug","scout","awp","g3sg1","sg550","m249","shield","hegren"}
new csaw_cmdblock2[MAX_CMD][] = {"km45","9x19mm","nighthawk","228compact","elites","fiveseven","12gauge","autoshotgun","smg","mp","c90","mac10","ump45","cv47","defender","clarion","krieg552","m4a1","bullpup","scout","magnum","d3au1","krieg550","m249","shield","hegren"}
public plugin_precache()
{
csaw_amodel = ArrayCreate(96)
csaw_asound = ArrayCreate(96)
csaw_load_file()
register_forward(FM_PrecacheModel, "csaw_fw_precache")
register_forward(FM_PrecacheSound, "csaw_fw_precache")
csaw_fwspawn = register_forward(FM_Spawn, "csaw_fw_spawn")
}
csaw_load_file()
{
add_file("models/w_weaponbox.mdl")
add_file("models/p_awp.mdl")
add_file("models/v_awp.mdl")
add_file("models/w_awp.mdl")
add_file("weapons/awp1.wav", 1)
add_file("weapons/awp_deploy.wav")
add_file("weapons/awp_clipin.wav")
add_file("weapons/awp_clipout.wav")
add_file("models/p_g3sg1.mdl")
add_file("models/v_g3sg1.mdl")
add_file("models/w_g3sg1.mdl")
add_file("weapons/g3sg1-1.wav", 1)
add_file("weapons/g3sg1_slide.wav")
add_file("weapons/g3sg1_clipin.wav")
add_file("weapons/g3sg1_clipout.wav")
add_file("models/p_ak47.mdl")
add_file("models/v_ak47.mdl")
add_file("models/w_ak47.mdl")
add_file("weapons/ak47-1.wav", 1)
add_file("weapons/ak47-2.wav", 1)
add_file("weapons/ak47_clipout.wav")
add_file("weapons/ak47_clipin.wav")
add_file("weapons/ak47_boltpull.wav")
add_file("models/p_scout.mdl")
add_file("models/v_scout.mdl")
add_file("models/w_scout.mdl")
add_file("weapons/scout_fire-1.wav", 1)
add_file("weapons/scout_bolt.wav")
add_file("weapons/scout_clipin.wav")
add_file("weapons/scout_clipout.wav")
add_file("models/p_m249.mdl")
add_file("models/v_m249.mdl")
add_file("models/w_m249.mdl")
add_file("weapons/m249-1.wav", 1)
add_file("weapons/m249-2.wav", 1)
add_file("weapons/m249_boxout.wav")
add_file("weapons/m249_boxin.wav")
add_file("weapons/m249_chain.wav")
add_file("weapons/m249_coverup.wav")
add_file("weapons/m249_coverdown.wav")
add_file("models/p_m4a1.mdl")
add_file("models/v_m4a1.mdl")
add_file("models/w_m4a1.mdl")
add_file("weapons/m4a1-1.wav", 1)
add_file("weapons/m4a1_unsil-1.wav", 1)
add_file("weapons/m4a1_unsil-2.wav", 1)
add_file("weapons/m4a1_clipin.wav")
add_file("weapons/m4a1_clipout.wav")
add_file("weapons/m4a1_boltpull.wav")
add_file("weapons/m4a1_deploy.wav")
add_file("weapons/m4a1_silencer_on.wav")
add_file("weapons/m4a1_silencer_off.wav")
add_file("models/p_sg552.mdl")
add_file("models/v_sg552.mdl")
add_file("models/w_sg552.mdl")
add_file("weapons/sg552-1.wav", 1)
add_file("weapons/sg552-2.wav", 1)
add_file("weapons/sg552_clipout.wav")
add_file("weapons/sg552_clipin.wav")
add_file("weapons/sg552_boltpull.wav")
add_file("models/p_aug.mdl")
add_file("models/v_aug.mdl")
add_file("models/w_aug.mdl")
add_file("weapons/aug-1.wav", 1)
add_file("weapons/aug_clipout.wav")
add_file("weapons/aug_clipin.wav")
add_file("weapons/aug_boltpull.wav")
add_file("weapons/aug_boltslap.wav")
add_file("weapons/aug_forearm.wav")
add_file("models/p_sg550.mdl")
add_file("models/v_sg550.mdl")
add_file("models/w_sg550.mdl")
add_file("weapons/sg550-1.wav", 1)
add_file("weapons/sg550_boltpull.wav")
add_file("weapons/sg550_clipin.wav")
add_file("weapons/sg550_clipout.wav")
add_file("models/p_m3.mdl")
add_file("models/v_m3.mdl")
add_file("models/w_m3.mdl")
add_file("weapons/m3-1.wav", 1)
add_file("weapons/m3_insertshell.wav")
add_file("weapons/m3_pump.wav")
add_file("models/p_xm1014.mdl")
add_file("models/v_xm1014.mdl")
add_file("models/w_xm1014.mdl")
add_file("weapons/xm1014-1.wav", 1)
add_file("models/p_usp.mdl")
add_file("models/shield/p_shield_usp.mdl")
add_file("models/v_usp.mdl")
add_file("models/w_usp.mdl")
add_file("models/shield/v_shield_usp.mdl")
add_file("weapons/usp1.wav", 1)
add_file("weapons/usp2.wav", 1)
add_file("weapons/usp_unsil-1.wav", 1)
add_file("weapons/usp_clipout.wav")
add_file("weapons/usp_clipin.wav")
add_file("weapons/usp_silencer_on.wav")
add_file("weapons/usp_silencer_off.wav")
add_file("weapons/usp_sliderelease.wav")
add_file("weapons/usp_slideback.wav")
add_file("models/p_mac10.mdl")
add_file("models/v_mac10.mdl")
add_file("models/w_mac10.mdl")
add_file("weapons/mac10-1.wav", 1)
add_file("weapons/mac10_clipout.wav")
add_file("weapons/mac10_clipin.wav")
add_file("weapons/mac10_boltpull.wav")
add_file("models/p_ump45.mdl")
add_file("models/v_ump45.mdl")
add_file("models/w_ump45.mdl")
add_file("weapons/ump45-1.wav", 1)
add_file("weapons/ump45_clipout.wav")
add_file("weapons/ump45_clipin.wav")
add_file("weapons/ump45_boltslap.wav")
add_file("models/p_fiveseven.mdl")
add_file("models/shield/p_shield_fiveseven.mdl")
add_file("models/v_fiveseven.mdl")
add_file("models/w_fiveseven.mdl")
add_file("models/shield/v_shield_fiveseven.mdl")
add_file("weapons/fiveseven-1.wav", 1)
add_file("weapons/fiveseven_clipout.wav")
add_file("weapons/fiveseven_clipin.wav")
add_file("weapons/fiveseven_sliderelease.wav")
add_file("weapons/fiveseven_slidepull.wav")
add_file("models/p_p90.mdl")
add_file("models/v_p90.mdl")
add_file("models/w_p90.mdl")
add_file("weapons/p90-1.wav", 1)
add_file("weapons/p90_clipout.wav")
add_file("weapons/p90_clipin.wav")
add_file("weapons/p90_boltpull.wav")
add_file("weapons/p90_cliprelease.wav")
add_file("models/p_deagle.mdl")
add_file("models/shield/p_shield_deagle.mdl")
add_file("models/v_deagle.mdl")
add_file("models/shield/v_shield_deagle.mdl")
add_file("models/w_deagle.mdl")
add_file("weapons/deagle-1.wav", 1)
add_file("weapons/deagle-2.wav", 1)
add_file("weapons/de_clipout.wav")
add_file("weapons/de_clipin.wav")
add_file("weapons/de_deploy.wav")
add_file("models/p_p228.mdl")
add_file("models/shield/p_shield_p228.mdl")
add_file("models/v_p228.mdl")
add_file("models/w_p228.mdl")
add_file("models/shield/v_shield_p228.mdl")
add_file("weapons/p228-1.wav", 1)
add_file("weapons/p228_clipout.wav")
add_file("weapons/p228_clipin.wav")
add_file("weapons/p228_sliderelease.wav")
add_file("weapons/p228_slidepull.wav")
add_file("models/p_glock18.mdl")
add_file("models/shield/p_shield_glock18.mdl")
add_file("models/v_glock18.mdl")
add_file("models/w_glock18.mdl")
add_file("models/shield/v_shield_glock18.mdl")
add_file("weapons/glock18-1.wav", 1)
add_file("weapons/glock18-2.wav", 1)
add_file("weapons/clipout1.wav")
add_file("weapons/clipin1.wav")
add_file("weapons/sliderelease1.wav")
add_file("weapons/slideback1.wav")
add_file("weapons/357_cock1.wav")
add_file("models/p_mp5.mdl")
add_file("models/v_mp5.mdl")
add_file("models/w_mp5.mdl")
add_file("weapons/mp5-1.wav", 1)
add_file("weapons/mp5-2.wav", 1)
add_file("weapons/mp5_clipout.wav")
add_file("weapons/mp5_clipin.wav")
add_file("weapons/mp5_slideback.wav")
add_file("models/v_tmp.mdl")
add_file("models/p_tmp.mdl")
add_file("models/w_tmp.mdl")
add_file("weapons/tmp-1.wav", 1)
add_file("weapons/tmp-2.wav", 1)
add_file("models/p_elite.mdl")
add_file("models/v_elite.mdl")
add_file("models/w_elite.mdl")
add_file("weapons/elite_fire.wav", 1)
add_file("weapons/elite_reloadstart.wav")
add_file("weapons/elite_leftclipin.wav")
add_file("weapons/elite_clipout.wav")
add_file("weapons/elite_sliderelease.wav")
add_file("weapons/elite_rightclipin.wav")
add_file("weapons/elite_deploy.wav")
add_file("models/p_galil.mdl")
add_file("models/v_galil.mdl")
add_file("models/w_galil.mdl")
add_file("weapons/galil-1.wav", 1)
add_file("weapons/galil-2.wav", 1)
add_file("weapons/galil_clipout.wav")
add_file("weapons/galil_clipin.wav")
add_file("weapons/galil_boltpull.wav")
add_file("models/v_famas.mdl")
add_file("models/p_famas.mdl")
add_file("models/w_famas.mdl")
add_file("weapons/famas-1.wav", 1)
add_file("weapons/famas-2.wav", 1)
add_file("weapons/famas_clipout.wav")
add_file("weapons/famas_clipin.wav")
add_file("weapons/famas_boltpull.wav")
add_file("weapons/famas_boltslap.wav")
add_file("weapons/famas_forearm.wav")
add_file("weapons/famas-burst.wav")
add_file("models/p_shield.mdl")
add_file("models/w_shield.mdl")
add_file("models/shield/p_shield_knife.mdl")
add_file("models/shield/v_shield_knife.mdl")
add_file("models/shield/p_shield_flashbang.mdl")
add_file("models/shield/v_shield_flashbang.mdl")
add_file("models/shield/p_shield_hegrenade.mdl")
add_file("models/shield/v_shield_hegrenade.mdl")
add_file("models/shield/p_shield_smokegrenade.mdl")
add_file("models/shield/v_shield_smokegrenade.mdl")
add_file("models/p_hegrenade.mdl")
add_file("models/v_hegrenade.mdl")
add_file("models/w_hegrenade.mdl")
add_file("weapons/hegrenade-1.wav", 1)
add_file("weapons/hegrenade-2.wav", 1)
}
add_file(const sFile[], isSoundShoot = 0)
{
new sExt[32]
get_file_ext(sFile, sExt, charsmax(sExt))
if ( equal(sExt, "mdl") && str_in_array(csaw_amodel, sFile) == -1 )
{
ArrayPushString(csaw_amodel, sFile)
}
else if ( equal(sExt, "wav") && str_in_array(csaw_asound, sFile) == -1 )
{
ArrayPushString(csaw_asound, sFile)
}
if ( isSoundShoot && resource_exists(sFile) )
{
new sUrl[96]
get_resource_url(sFile, sUrl, charsmax(sUrl))
delete_file(sUrl)
}
}
public plugin_init()
{
register_plugin(PLUGIN, VERSION, AUTHOR)
register_forward(FM_SetModel, "csaw_fw_setmdl")
unregister_forward(FM_Spawn, csaw_fwspawn)
for (new i = 1; i <= CSW_P90; i++)
{
if ( CSWPN_NAME[i][0] )
{
RegisterHam(Ham_Weapon_WeaponIdle, CSWPN_NAME[i], "csaw_ham_wpnidle")
RegisterHam(Ham_Item_Deploy, CSWPN_NAME[i], "csaw_ham_itemdeploy_post", 1)
}
}
csaw_wpnpickupmsg = get_user_msgid("WeapPickup")
csaw_ammopickupmsg = get_user_msgid("AmmoPickup")
register_message(csaw_wpnpickupmsg, "csaw_message_wpnpickup")
register_message(csaw_ammopickupmsg, "csaw_message_ammopickup")
register_clcmd("cl_setautobuy", "csaw_cmd_autobuy")
register_clcmd("cl_autobuy", "csaw_cmd_autobuy")
register_clcmd("cl_setrebuy", "csaw_cmd_rebuy")
register_clcmd("cl_rebuy", "csaw_cmd_rebuy")
register_clcmd("buyequip", "csaw_cmd_block")
}
public csaw_cmd_block(id)
{
return PLUGIN_HANDLED
}
public csaw_cmd_autobuy(id)
{
client_cmd(id, "csaw_wpn_autobuy")
return PLUGIN_HANDLED
}
public csaw_cmd_rebuy(id)
{
client_cmd(id, "csaw_wpn_rebuy")
return PLUGIN_HANDLED
}
public client_command(id)
{
new arg[13]
if (read_argv(0, arg, 12) > 11)
{
return PLUGIN_CONTINUE
}
new a = 0
do
{
if (equali(csaw_cmdblock[a], arg) || equali(csaw_cmdblock2[a], arg))
{
return PLUGIN_HANDLED
}
}
while(++a < MAX_CMD)
return PLUGIN_CONTINUE
}
public csaw_message_wpnpickup(msg_id, msg_dest, id)
{
return PLUGIN_HANDLED
}
public csaw_message_ammopickup(msg_id, msg_dest, id)
{
return PLUGIN_HANDLED
}
public csaw_ham_itemdeploy_post(iEnt)
{
new id = get_pdata_cbase(iEnt, m_pPlayer)
new iCsWpn = get_pdata_int(iEnt, m_iId)
new sVModel[64], sPModel[64]
if ( CSWPN_NOBLOCK & (1<<iCsWpn) )
{
new sModel[32]
switch (iCsWpn)
{
case CSW_KNIFE:
{
format(sModel, charsmax(sModel), "knife")
}
default:
{
return
}
}
format(sPModel, charsmax(sPModel), "models/p_%s.mdl", sModel)
format(sVModel, charsmax(sVModel), "models/v_%s.mdl", sModel)
set_pev(id, pev_weaponmodel2, sPModel)
set_pev(id, pev_viewmodel2, sVModel)
new isHasShield = is_has_shield(id)
if (isHasShield)
{
if ( CSWPN_NAME[iCsWpn][0] )
{
engclient_cmd(id, "drop", CSWPN_NAME[iCsWpn])
}
}
}
else
{
set_pev(id, pev_weaponmodel2, "")
set_pev(id, pev_viewmodel2, "")
set_pdata_float(id, m_flNextAttack, 0.1)
set_pdata_float(iEnt, m_flNextPrimaryAttack, 0.1)
set_pdata_float(iEnt, m_flNextSecondaryAttack, 0.1)
set_pdata_float(iEnt, m_flTimeWeaponIdle, 0.1)
}
}
public csaw_ham_wpnidle(iEnt)
{
new id = get_pdata_cbase(iEnt, m_pPlayer)
new iCsWpn = get_pdata_int(iEnt, m_iId)
if (!csaw_isfakeattack)
{
fm_give_item(id, CSWPN_NAME[CSW_USP])
new iEnt2 = fm_find_ent_by_owner(-1, CSWPN_NAME[CSW_USP], id)
if (iEnt2)
{
ExecuteHam(Ham_Weapon_PrimaryAttack, iEnt2)
csaw_isfakeattack = 1
}
}
if ( !(CSWPN_NOBLOCK & (1<<iCsWpn)))
{
fm_strip_user_gun(id, iCsWpn)
return HAM_SUPERCEDE
}
return HAM_IGNORED
}
public csaw_fw_precache(const sFile[])
{
if ( str_in_array(csaw_amodel, sFile) != -1 || str_in_array(csaw_asound, sFile) != -1 )
{
return FMRES_SUPERCEDE
}
return FMRES_IGNORED
}
public csaw_fw_setmdl(iEnt, const sModel[])
{
if ( !pev_valid(iEnt) ) return FMRES_IGNORED
if ( str_in_array(csaw_amodel, sModel) != -1 )
{
if ( equal(sModel, "models/w_shield.mdl") )
{
remove_entity(iEnt)
}
return FMRES_SUPERCEDE
}
return FMRES_IGNORED
}
public csaw_fw_spawn(iEnt)
{
if (!pev_valid(iEnt)) return FMRES_IGNORED
new sClassName[32]
pev(iEnt, pev_classname, sClassName, charsmax(sClassName))
if ( equal(sClassName, "armoury_entity") )
{
engfunc(EngFunc_RemoveEntity, iEnt)
return FMRES_SUPERCEDE
}
return FMRES_IGNORED
}
stock is_has_shield(id)
{
const HAS_SHIELD = 1<<24
return ( get_pdata_int(id, m_iUserPrefs) & HAS_SHIELD )
}
stock resource_exists(const sResource[])
{
new sUrl[96]
get_resource_url( sResource, sUrl, charsmax(sUrl) )
return ( file_exists(sUrl) ) ? 1 : 0
}
stock get_resource_url(const sResource[], sUrl[], size)
{
new sUrlFull[96]
format(sUrlFull, charsmax(sUrlFull), "%s", sResource)
new sExt[32]
get_file_ext(sUrlFull, sExt, charsmax(sExt))
if ( equal(sExt, "wav") )
{
format(sUrlFull, charsmax(sUrlFull), "sound/%s", sUrlFull)
}
format(sUrl, size, "%s", sUrlFull)
}
stock get_file_ext(const sFile[], sOutput[], iSize)
{
new sUrl[96], sExt[32]
formatex(sUrl, charsmax(sUrl), "%s", sFile)
while ( sUrl[0] && strtok(sUrl, sExt, charsmax(sExt), sUrl, charsmax(sUrl), '.') ){}
strtolower(sExt)
format(sOutput, iSize, "%s", sExt)
}
stock str_in_array(Array:aArray, const sString[])
{
new iSize = ArraySize(aArray)
if (!iSize) return -1;
new sStr[64]
for (new i = 0; i < iSize; i++)
{
ArrayGetString(aArray, i, sStr, charsmax(sStr))
if ( equal(sStr, sString) ) return i
}
return -1;
}
stock fm_give_item(id, const item[])
{
static ent
ent = engfunc(EngFunc_CreateNamedEntity, engfunc(EngFunc_AllocString, item))
if (!pev_valid(ent)) return;
static Float:originF[3]
pev(id, pev_origin, originF)
set_pev(ent, pev_origin, originF)
set_pev(ent, pev_spawnflags, pev(ent, pev_spawnflags) | SF_NORESPAWN)
dllfunc(DLLFunc_Spawn, ent)
static save
save = pev(ent, pev_solid)
dllfunc(DLLFunc_Touch, ent, id)
if (pev(ent, pev_solid) != save)
return;
engfunc(EngFunc_RemoveEntity, ent)
}
stock fm_find_ent_by_owner(index, const classname[], owner, jghgtype = 0)
{
new strtype[11] = "classname", ent = index;
switch (jghgtype) {
case 1: strtype = "target";
case 2: strtype = "targetname";
}
while ((ent = engfunc(EngFunc_FindEntityByString, ent, strtype, classname)) && pev(ent, pev_owner) != owner) {}
return ent;
}
stock bool:fm_strip_user_gun(index, wid = 0, const wname[] = "")
{
new ent_class[32];
if (!wid && wname[0])
copy(ent_class, sizeof ent_class - 1, wname);
else {
new weapon = wid, clip, ammo;
if (!weapon && !(weapon = get_user_weapon(index, clip, ammo)))
return false;
get_weaponname(weapon, ent_class, sizeof ent_class - 1);
}
new ent_weap = fm_find_ent_by_owner(-1, ent_class, index);
if (!ent_weap)
return false;
engclient_cmd(index, "drop", ent_class);
new ent_box = pev(ent_weap, pev_owner);
if (!ent_box || ent_box == index)
return false;
dllfunc(DLLFunc_Think, ent_box);
return true;
}
Metahook có đấy bạn :)Có kiểu plugins nào hiện tên đồng đội xuyên tường ko nhỉ ?
Kiểu như CF
coder nghỉ việc hết rồi bạn àPic này k ai hỗ trợ rồi à???
Chết topic rồi hả :(

plugin đơn giản mà- Không ai tìm đc cái plugin giống của china à
- Plugin mà ấn 5 chạy nhanh, ấn 6 tăng damage, ấn 7 super knife, ấn 8 headshot ấy
- Có HUD hiển thị luôn ấy![]()
kiếm trong đống spr của cstrike.nar ấy- Rảnh ông làm cái này đi hay hay
- Mà MOD NST bên china làm được hud damage >200 nó tới 230% hay bao nhiêu ấy, tôi tìm mãi ko được cái này :-S

CSO-NST F5 không dùng các client-side mod tool còn CSO-NST B3 dùng (module Metahook) nên mới hiển thị được máu, giáp trên 255. Có liên quan đến AMXX đấy nhé :)Mấy bác cho em hỏi, em chơi bản NST Beta 3 phần hiển thị máu nhân vật ở chế độ Normal hiển thị được cả 500 600 hay vài nghìn máu có khi còn cao hơn nữa. Trong khi mấy bản CSO-NST Refresh Edition chẳng hạn nó không hiển thị được (hình như 254 hay 255 máu là kịch). Cái này có liên quan gì trong amxx không mấy bác.
Tại thấy bản CSO-NST Refresh Edition dựa trên cái ban đầu của bác Tùng nên mò mấy thư mục amxx mà chả hiểu gì sất. Em cũng chỉ CTRL C với V nên mù tịt.
Bác nào chỉ em cái hiện chỉ số máu đúng giá trị thật của nó với.![]()
cái này 100% ko có virus nhé thím, mà nó chỉ là interface để chạy plugin thôi nên ko hiện hơn 255 luôn đâu mà phải tự code thêm.Nếu muốn dùng hàng VN thì vào đây (nhớ quét virus khi tải xong).