You could use the normal scan_path to find the path that the actor is nearest to, then cycle through all the points on the path to check which one is closest. Just start the actor from this point.
eg.
code:
var numPoints;
var nearestPoint;
var minDist;
...
// find the path - you could also use numPoints = ent_path("yourPathName");
temp.pan = 360; // scan the full sphere
temp.tilt = 180;
temp.z = 1000; // max distance the entity can be from the first waypoint
numPoints = scan_path(my.x,temp);
// find the closest point on the path
nearestPoint = 0;
ent_waypoint(vecTo,nearestPoint);
minDist = vec_dist(my.x,vecTo);
temp = 1;
while(temp < numPoints)
{
// retrieve the next point
ent_waypoint(vecTo,temp);
// compare to the previous nearest point
if(vec_dist(my.x,vecTo) < minDist)
{
// found a new nearest point
nearestPoint = temp;
minDist = vec_dist(my.x,vecTo);
}
temp += 1;
}
// nearestPoint now holds the index of the waypoint closest to the actor