Well if you only have a few weapons you can add an action for each weapon. So when you pick up the item you can can create the item with its action:
ent_create("ShortSword.mdl",vector_myrightarm,ShortSword);
The action of the item can than have things like
*when is the model visible (e.g. through a variable: var_weaponslot == 1)
*when it deals damage to an enemy (e.g. through c_trace or c_scan to check whether the weapon touches an enemy)
*its x, y and z coordinates (just use vec_for_bone to transfer the x/y/z coordinates of e.g. the 'right hand bone' to 'vector_myrightarm')
*the animations the sword uses etc.
If you have alot weapons, you can use an action for your 'right weapon' (or 'left weapon'). Through variables like e.g. var_weaponslot you can check which weapon the player has equiped.
There are ofcourse more possible ways and I dont know if this is the best one, but for me it works.