I think the code for the function is sound. The only thing I noticed was that you use naked skill names: what are skill3 and skill50 here?

The problem is probably in some other function, though. Check the player movement code and the crosshair creation code to make sure they don't block the player.

Also, does the function do what it is intended to do? i.e. does the crosshair appear in the right place, even though the player can't move? If it does, then you know it's not the player colliding with the crosshair.