You need something like the mirror_yavin shader in system.shader. There you can see they map another texture (a simple black color) onto the surface to make it darker. In the mirror_yavin the amount of black depends on the distance between the player and the surface. This is because "alphaGen portal 512". You need "alphaGen const 0.5" for example for your own shader to make it half way black.
Of course you can use any floor texture instead of the simple black color if you want. If the value in the alphaGen is higher the the reflectiveness of the surface is smaller.
For character I sugges using fake reflections, like newfloor_kej. It uses a texture mapped as an evironment map. It seems it is shiny. I used the same technik to make windows look like they reflecting the sky, however they don't.