I'd actually suggest that you use invisible blocks. They will provide faster and better collision detection than just about anything you could code in C-Script. They would offer the advantage of: gliding along force fields, hull instead of single point collision detection, much, much easier.
Having said that though, if you want to go ahead and code it - good for you. To test if a point is inside a convex polygon of any shape and number of sides, just add up the angles the point makes with the vertices of the polygon. If the result is pretty damn close to 360 degrees, the point is inside the polygon. If not, the point is outside.
For a concave polgon like a star, you would have to break it up into convex geometry like triangles for the points, and a pentagon in the center.
For a single convex (n vertices) polygon, heres what the algorithm would look like:
code:
// make a vector from the point to the 1st vertex
// make a vector from the point to the 2nd vertex
// calculate the angle betweent the two vectors
// add this angle to a running sum
// repeat for the 2nd & 3rd vertices, 3rd & 4th...... nth & 1st
// if abs(angle-360) < some small number, the point is inside
// otherwise, it is not