That's simple with global variables (should be possible with existing scripts using IFUSED but I've already whipped these up):
Main script for your (dynamic) lights
;Artificial Intelligence Script
;Header
desc = Light - Variable by Airslide
;Triggers
::globalvar=3
:state=0:state=1
:state=1,varequal=0:state=2,lighton
:state=2,varequal=1:state=1,lightoff
;End of Script
Destroy script for your generator/power source:
;Artificial Intelligence Script
;Header
desc = Destroy and Kill Lights
;Triggers
:state=1:destroy
:state=0:sound=audiobank\smash\concrete.wav,rundecal=0,globalvar=3,setvar=1,state=1
;End of Script
The only reason you would probably need to use variables as I did above and not IFUSED is if you want something that can say, still be activated, but only when the power is on or off. Like a door that is activated by a switch that could still be affected by the power state.
Change the globalvar=3 to whatever free global variable you have.