I'm trying to think of a way this could be done. By donation, I simply mean when a player drops their weapon and another one picks it up (from the same team).
I thought about hooking weapon pickup, checking the weapon's owner and compare teams with the player picking the weapon.
I cannot find a proper hook for this though - I'm sure hooking WeapPickUp event would be too late, as the weapon's owner would already be overwritten. Ham with pre hook could work, but I've had problems with Ham_AddPlayerItem and I cannot see any other Ham hook for this.