RenderWater(); /* reflection working but no opactity */
gl_all_textures(hash_tex, default_player,map,0); /* terrain */
// RenderWater(); /* opacity working but no reflection */
Well, I'm not sure if this will work or not, but assuming that you're using alpha values for the Water (or maybe you need alpha values for the reflection?), you should be enabling blending. Usually you use it like so, you can however use it many different ways though:
glEnable(GL_BLEND); // Enables blending for OpenGL
glBlendFunc(GL_SRC_ALPHA, GL_ONE_MINUS_SRC_ALPHA); // Set the Blending function
There's a lot more OpenGL blending functions, but this might do the job, ask Google if you don't like it.
The technique that you're using (where you use the stencil buffer to render the regular scene and the "mirrored" scene into the same render-target) is pretty old school.
To achieve robust transparency, I would recommend rendering the "mirrored" scene into a separate render-target, and then compositing the result on top of the regular scene.