We can't answer, a plugin alone won't usually cause any clear difference(of course, if not using, for example, per frame forwards badly with crap code).
What you can do is to remove CurWeapon event and also weapPickupEvent, and use Ham_Item_Deploy. Even with CurWeapon, you don't need the weapPickupEvent, but Item_Deploy is better than CurWeapon, it's called only at the moment when you need to show the model again.
Ham_TakeDamage is using game default function(for players it should be CBasePlayer::TakeDamage), and it's okay to use it too. Generally, if it's ok for the game it should be ok for you too.
For example, instead of:
PHP Code:
give_item(id,"ammo_9mm");
give_item(id,"ammo_9mm");
give_item(id,"ammo_9mm");
give_item(id,"ammo_9mm");
You could use cs_set_user_bpammo to save some native calls, even if kinda trivial. give_item firstly creates an entity then force touch between the ent and the player, cs_set_user_bpammo is a more direct way, it alters directly the m_rgAmmo offset.
Edit: About your last post, it's bullshit, don't try to micro optimize, why you are afraid of few checks ?
__________________