It does not go to 9 directly, it probably goes way beyond 9. You only display a one digit number in your panel, change the definition as follows:
PANEL* violations =
{
digits (210, 100, 3, *, 1, viol_cntr);
flags = VISIBLE;
}
You will need to change the event function, too, because it is called at least once per frame when the player touches the object.
function hit_event()
{
my.event = NULL;
set(damageproperty,VISIBLE);
wait(-3);
reset(damageproperty,VISIBLE);
viol_cntr += 1;
my.event = hit_event;
}