As to your problem you could always store the variables into a global list, not much better but slightly better.
Another alternative would be to have a controller object that stores all the variables locally for whether a reward has been collected or not from a certain building object, which each new instance refers to.
A quick look at the manual shows this, but it looks like more trouble than what its worth compared to doing one of the above methods or just having tons of globals.
object_event_add(ind,evtype,evnumb,codestr) To give the object a behavior we must define events for the object. You can only add code actions to events. You need to specify the object, the event type, the event number (use the constants that have been specified before for the event_perform() function). Finally you provide the code string that must be executed. You can add multiple code actions to each event.
EDIT: Based on the above comment, I have obviously misunderstood too.
EDIT2: Oh right, he was pertaining to your last question.
Edited by Davido01, 21 January 2012 - 10:33 PM.