You should use storages, like quests already done. I never worked on pokemon servers, but i think there must be action to catch the pokemon. Set a storage to that action, if the player dont have the storage, he gets the exp, if he already has it, he wont get the exp but the action runs capturing...