A shader with transparent lit area

Hi there,
I found this shader on the forums, it works well, but I need one that does the inverse:
The ‘non-lit’ areas need to be opaque and the lit areas completely transparent.
I’m really struggling with shaders. Could someone help me understand how to adapt it?

Shader "Lighting Only" 
    {
        Properties 
     {
            _Color ("Main Color", Color) = (1,1,1,1)
            _MainTex ("Base (RGB)", 2D) = "white" {}
        }
        SubShader 
     {
            Blend SrcAlpha One
            ZWrite Off
            Tags {Queue = Transparent}
            ColorMask RGB
            // Vertex lights
            Pass 
     { 
                Tags {"LightMode" = "Vertex"}
                Lighting On
                Material 
     {
                    Diffuse [_Color]
                }
                SetTexture [_MainTex] 
     {
                    constantColor [_Color]
                    Combine texture * primary DOUBLE, texture * constant
                }
            }
        }
        Fallback "VertexLit", 2
    }

Edit

Image for ScroodgeM:

1914-atmosphereproblem.png

Hey, this is what I get :confused: Light is from left to right.
There’s another sphere inside, you can see it with the gizmo’s on… but it doesn’t appear visible through the outer sphere.
I’m not sure why this is…

Shader “Lighting Only”
{
Properties
{
_Color (“Main Color”, Color) = (1,1,1,1)
_MainTex (“Base (RGB)”, 2D) = “white” {}
}
SubShader
{
Blend SrcAlpha One
ZWrite Off
Tags
{
Queue = Transparent
}
ColorMask RGB

		CGPROGRAM

		#pragma surface surf MyLight alpha finalcolor:mycolor

		sampler2D _MainTex;
		fixed4 _Color;

		struct Input
		{
			float2 uv_MainTex;
		};

		void surf(Input IN, inout SurfaceOutput o)
		{
			fixed4 tex = tex2D(_MainTex, IN.uv_MainTex) * _Color;
			o.Albedo = tex.rgb;
			o.Alpha = tex.a;
		}

		float lightPower;
		fixed4 LightingMyLight(SurfaceOutput s, half3 lightDir, fixed atten)
		{
			lightPower = 1 - saturate(dot(normalize(s.Normal), lightDir));
			return fixed4((s.Albedo * _LightColor0.rgb) * (lightPower * atten * 2), 1);
		}
 
		void mycolor(Input IN, SurfaceOutput o, inout fixed4 color)
		{
			color.a = o.Alpha * lightPower;
		}

		ENDCG
	}
	Fallback "VertexLit", 2
}

edit 15.07.2012

on this screen two spheres. one inside other. small sphere have white opaque material (diffuse) and the second have this shader colored to red. light direction is right-to-left on screen. lighted surface is transparent on red sphere because lighted and we can see second one.

1910-1.jpg