mercuryus is right about that. Imagine c_trace this way: you're aiming a gun at an enemy (c_trace(gun.x, enemy.x, options)). The function will return the
distance to the enemy.
you will
automatically be set to the enemy, and
target will automatically be set to the place where the enemy was hit.
What your code does is assign the distance returned, for example, 3 quants, to "you." "You" is now a pointer pointing to memory location 3, so when you try to write a number to one of "you"'s skills, you are trying to assign a value to a really low position in memory, one of the things Windows programs are Not Allowed to Do. As a result, Windows shuts down A7 with that ugly error message.
Long story short, your code should look like this:
Code:
c_trace(target.x, target.x, IGNORE_ME);
// mercuryus is also right here too, by the way: tracing from "target" to "target"
// won't usually hit anything. Imagine trying to aim a gun at the gun itself.
if(you) // you is automatically set for you. Isn't that nice?
{
beep();
you.HEALTH -= 5;
}
Hope I've helped explain it!