Originally Posted By: Abarudra
Do i realy have to add a while loop just to check once for if(my.flagX)

The while loop is one possibility.
Originally Posted By: Abarudra
or is it possible to have something like an event-function that is only triggered when a flag gets set to 1?

Not natively. But you can easily call that function every time after manipulating the skill:
Code:
my_special_ent->skill1 += 1;
skill_was_changed(my_special_ent);


If you're doing this frequently you can also write a setter function:
Code:
void set_skill1(ENTITY* ent,fixed value)
{
  if (!ent)
    return;

  ent->skill1 = value;

  skill_was_changed(ent);
}



Always learn from history, to be sure you make the same mistakes again...