if i add code in the loop that alters the you pointer like c_scan or c_trace, will "while(you)" check if the creator or the target of scan/trace still exists?
No, it will not. But you can work around this quite easily.
while (you)
{
ENTITY* temp_you = you;
// Do any stuff that changes you here, like c_trace etc.
you = temp_you;
}