For the distance, you can use the System object's distance between points expression in the math section.
it's formatted thusly;
distance(x1, y1, x2, y2)
The x1 and y1 refer to the first object to compare and the x2 and y2 refer to the second object, so in the case, the enemy would probably be x1, y1 and the player would be x2, y2.
The condition I would use is the 'Pick by comparison' under the enemy object's conditions list in the 'Pick' category. So it would look something like this:
Pick by comparison
Value 1: distance(enemy.X, enemy.Y, Player.X, Player.Y)
Is lower or equal to
Value 2: <insert distance in pixels you want the enemy to notice you>
Then insert the follow/attack action that you're currently using.
IF you're using a version of construct that does not have the system object's 'distance between points' function, simply use pythagora's theorem
So replace distance(x1, y1, x2, y2) with: (it's a little more complicated)
sqrt(((enemy.X - player.X) ^ 2) + ((enemy.Y - player.Y) ^ 2))
^^ This is actually simpler than it looks, in plain english it's:
The square root of; the distance between the enemy and player's X coordinates squared plus the distance between the enemy and player's Y coordinates squared. High school maths ftw
I hope this has been useful