Mmmh, I'm not sure. I told you that you need as many vectorProducts as you have lights, but I think you need one more vp to determine the dotProduct of both lightDirections of your lights.
Make the connections like I said (for 1 light)
If you want to insert one more light, create 2 vectorProducts
Make again the conenctions between the samplerInfo and the 2nd vectorProduct, connect the lightDirection of your 2nd light into the input2 of the 2nd vp again.
Then connect the output of both vectorProducts into the input1 and 2 of the third vectorProduct.
Ah, forgot to tell you to insert between the ramp and the 3rd vp a setRnage or a clamp node to clamp the values from 0 to 1, then connect the outValueX (of the clamp) into the u or vcoord of the ramp.
This should work, but like I said, I'm not quite sure if the network is correct.
So to sum this up, you need one vp per light to determine it's dotProduct between its lightDirection and rayDirection, then another vp to make the dorProduct of each dotProduct of your lights.
Hope this make sense
Emmanuel
Emmanuel Campin
Lighting & shading TD
www.pixho.com