Double post rullz ^^
There was a code for that.
When you pick up the item - drop the item and check if you still have an item like that one. If you do - Add the charges to the item you had (if you had one) and destroy the dropped item. If you don't have an item like that - give the item back to hero.
This will also require some turning on/off or a boolean.
Edit: The code in the link is better xD But there's a bug in the 3nd condition (2nd in set).
Acquire
Events
Unit - A unit Acquires an item
Conditions
Or Multiple Conditions
Item type of item being manipulated equal to your item
Actions
For each (Integer A) from 1 to 6, do (Actions)
Loop - Actions
If (All Conditions are True) then do (Then Actions) else do (Else Actions)
If - Conditions
(Item-type of (Item carried by (Hero manipulating item) in slot (Integer A))) Equal to (Item-type of (Item being manipulated))
(Item carried by (Hero manipulating item) in slot (Integer A)) Not equal to (Item being manipulated)
Then - Actions
Item - Set charges remaining in (Item carried by (Hero manipulating item) in slot (Integer A)) to ((Charges remaining in (Item carried by (Hero manipulating item) in slot (Integer A))) + (Charges remaining in (Item being manipulated)))
Item - Remove (Item being manipulated)
Else - Actions