1. Register event Health with filter "1<20" or "1<=20"
2. Hook Ham_Weapon_Deploy as post, retrieve player index using get_pdata_cbase with ent index and m_pPlayer offset, retrieve weapon type using either cs_get_weapon_id or get_pdata_int with ent index and m_iId offset.
Set player pev_viewmodel2 (v_) and pev_weaponmodel2 (v_).
If you need all weapons, you have to register all weapons classes, if you only want knife for example, you can only register weapon_knife class and then you won't have to retrieve weapon type.
Don't forget to precache models.