For the re-purchasing for free.
For the first event on the brick do:
onActivate > Client > LoadVariable > [HasBought_WEAPONNAME] (You can call the variable whatever you want).
Now add in a couple events after they've successfully bought it. One that sets the above variable to 1, and One that saves the above variable.
Then for the first check on the brick, check if that variable is 1. If it is, they've bought it before. If it's not, have them try to buy it.