Assuming you have version 9, which has new legending functions, this is how I would do it.
data = Flatten[
Table[{x, y, Sin[ x y/50], Cos[x y/50]}, {x, 0,
10 π, π/10}, {y, 0, 10 π, π/10}], 1];
ListPointPlot3D[data[[All, {1, 2, 3}]],
ColorFunction -> Function[{x, y, z}, ColorData["IslandColors"][z]],
PlotLegends -> BarLegend[{ColorData["IslandColors"], {-1, 1}}]]

ShowLegend is a function from the old and much deviled PlotLegends package. If you intended to use that, you may have forgotten to include the package using Needs.
In earlier versions you would write something like:
Needs["PlotLegends`"]
ShowLegend[
ListPointPlot3D[data[[All, {1, 2, 3}]],
ColorFunction ->
Function[{x, y, z},
ColorData["IslandColors"][z]]], {ColorData["IslandColors"][
1 - #1] &, 10, " 1", "-1", LegendPosition -> {1.1, -.4}}]

Much of what you wrote yourself doesn't seem to make sense. The List/@ part is unnesessary as you can see from how I handle the data matrix. PlotStyle doesn't take a pure function as argument. Where did you encounter a construction like that?