To get from a point on one layer to the correct point on a different layer, you can use LayerToCanvasX / Y and then CanvasToLayerX / Y
so, since you have the object Button_Point on the UI layer, and want to create a Swat object on the Human layer you would do this:
System Create Object Swat on layer "Human" at CanvasToLayerX("Human",LayerToCanvasX("UI",Button_Point.X,0),0) , CanvasToLayerY("Human",0,LayerToCanvasY("UI",0,Button_Point.Y))
that is a little confusing to see all at once, so I will break it down...
You have Button_Point.X which is on the UI layer and want to know what X is under that on the Human layer, so you first convert to a canvas coordinate by:
LayerToCanvasX("UI",Button_Point.X,0)
lets call that cx, then you take cx and convert it to a point on the Human layer by:
CanvasToLayerX("Human",cx,0)
(and you have to do the same for the y coordinate)
What happens if you scroll after you create the button_point - before you create the swat object? since the button_point is on the UI layer, it will not scroll with the map, and then it will be over a different place than where the player click...