- Код: Выделить всё
public Ham_TraceAttack_Player(iVictim, iAttacker, Float:fDamage, Float:fDeriction[3], iTraceHandle, iBitDamage)
{
if(is_user_connected(iAttacker))
{
if(zp_get_user_zombie(iVictim) && !zp_get_user_zombie(iAttacker) && !zp_get_user_nemesis(iAttacker))
{
if(g_Energy[g_Ent]==100)
{
if(get_pdata_int(iVictim, m_LastHitGroup, linux_diff_player) == HIT_HEAD) ExecuteHamB(Ham_Killed, iVictim, iAttacker, 2)
}
}
}
}
массив g_Energy отвечает за зарядку оружия, то бишь если значение 100, то появляется дополнительный урон:
- Код: Выделить всё
public HookHam_Weapon_Frame(ent){
if(!Is_CustomItem(ent))return HAM_IGNORED;
static id;id=get_pdata_cbase(ent,pDataKey_iOwner,pData_Item);
if(get_pdata_int(ent,pDataKey_iInReload,pData_Item)){
static clip,ammotype,ammo,j
clip=get_pdata_int(ent,pDataKey_iClip,pData_Item);
ammotype=pDataKey_ibpAmmo+get_pdata_int(ent,pDataKey_iPrimaryAmmoType,pData_Item);
ammo=get_pdata_int(id,ammotype,pData_Player);
j=min(weapon_ammo-clip,ammo);
set_pdata_int(ent,pDataKey_iClip,clip+j,pData_Item);
set_pdata_int(id,ammotype,ammo-j,pData_Player);
set_pdata_int(ent,pDataKey_iInReload,0,pData_Item);
}
if(cs_get_user_zoom(id)==2||cs_get_user_zoom(id)==3) g_Energy[ent]=100 //решил не заморачиваться с зарядкой :D
else g_Energy[ent]=1
return HAM_IGNORED;
}