Well you could have a script:
givitem 0x(item number in hex) 0x1(amount) (MSG_FIND or MSG_OBTAIN)
So you get the hex number of the safari ball, give the amount.
So the difference between MSG_FIND and MSG_OBTAIN is MSG_FIND will say "[player] found one [item](s)!"
Then it will hide thew last OW, which is not good unless it's a pokeball on the floor.
MSG_OBTAIN basically is "[player] received (one, this one only appears if it's one) [item(s)]" This one does counting, and no OWs disappear. Then in a battle they have to catch it, or they have no pkmn :P