so that i don't mislead you, i am not a scripter, I know nothing about ecp and even less about event handlers
the above syntax is desgined to create a dummy and intentionally useless statement to the engine that does bugger all. As in, allow the underlying event handler to occur instead since nothing in the macro (#define) now refers to it.
fred is deliberate. It is an intentional UNUSED label (pete, willy,joe, mary) to make sure nothing you write there touches the engine at all. (nothing in the engine looks for a 'fred')
the other purpose was to do something with the semi colon at the end of each invoked macro; otherwise the engine will throw it's hands in the air with a parsing error. (void syntax)
Is it enough to define the EVENT_INJURE fired=0 once or is it needed to call for every unit class in the vehicles section?
I don't really understand what you're asking, but, it is sufficient for each already existing EVENT_INJURE to be automatically replaced with this new expression by default.