Light Runs
Created By: ScottyWic
This script block helps you quickly and easily do neat light runs on your tables.
Requirements
RGB Lights Function by JPSalas
All your lights in a collection called "aLights"
Bonus
To make these effects look even better have your GI and Spotlights coded to post their status as shown in lines 66-72 below in the code block. This will allow the script to turn off your gis and spots while the lights run and then flip them back on when it's complete.
Light Run Options
Category | Options |
|---|---|
Chaos | randoms |
Directions | up, down, left, right, diagdl, diagdr, diagul, diagur |
Swipes | middleih, middleiv, middleoh, middleov, stripe1h, hatch1h, hatch1v, hatch2h, hatch2v, stripe1v, stripe2h, stripe2v |
Spins | circlein, circleout, clockleft, clockright, screwl, screwr |
Curves | arcbld, arcblu, arcbrd, arcbru, arctld, arctlu, arctrd, arctru, fanld, fanlu, fanrd, fanru, radarl, radarr, wiperl, wiperr |
Example
lightrun red,arcbld,1
' this would run an Arc of lights from bottom to left to down (bld) in the color red - 1 time.
Syntax
lightrun color,direction,times to run
Total Code Block
'/ \/ \/ \/ \/ \/ \/ \/ \/ \/ \/ \/ \/ \/ \/ \/ \/ \/ \/ \/ \/ \/ \/ \/
' UTILITY - Light Runs
'\ /\ /\ /\ /\ /\ /\ /\ /\ /\ /\ /\ /\ /\ /\ /\ /\ /\ /\ /\ /\ /\ /\ /\
dim arcbld:arcbld=1
dim arcblu:arcblu=2
dim arcbrd:arcbrd=3
dim arcbru:arcbru=4
dim arctld:arctld=5
dim arctlu:arctlu=6
dim arctrd:arctrd=7
dim arctru:arctru=8
dim circlein:circlein=9
dim circleout:circleout=10
dim clockleft:clockleft=11
dim clockright:clockright=12
dim diagdl:diagdl=13
dim diagdr:diagdr=14
dim diagul:diagul=15
dim diagur:diagur=16
dim down:down=17
dim fanld:fanld=18
dim fanlu:fanlu=19
dim fanrd:fanrd=20
dim fanru:fanru=21
dim hatch1h:hatch1h=22
dim hatch1v:hatch1v=23
dim hatch2h:hatch2h=24
dim hatch2v:hatch2v=25
dim left:left=26
dim middleih:middleih=27
dim middleiv:middleiv=28
dim middleoh:middleoh=29
dim middleov:middleov=30
dim radarl:radarl=31
dim radarr:radarr=32
dim randoms:randoms=33
dim right:right=34
dim screwl:screwl=35
dim screwr:screwr=36
dim stripe1h:stripe1h=37
dim stripe1v:stripe1v=38
dim stripe2h:stripe2h=39
dim stripe2v:stripe2v=40
dim up:up=41
dim wiperl:wiperl=42
dim wiperr:wiperr=43
'***** LIGHT RUNS *****
'(CHAOS)randoms
'(DIRECTIONS)up|down|left|right|diagdl|diagdr|diagul|diagur
'(SWIPES)middleih|middleiv|middleoh|middleov|stripe1h|hatch1h|hatch1v|hatch2h|hatch2v|stripe1v|stripe2h|stripe2v
'(SPINS)circlein|circleout|clockleft|clockright|screwl|screwr
'(CURVES)arcbld|arcblu|arcbrd|arcbru|arctld|arctlu|arctrd|arctru|fanld|fanlu|fanrd|fanru|radarl|radarr|wiperl|wiperr
'(EXAMPLE)lightrun red,arcbld,1 (SYNTAX)lightrun color,direction,times to run
Sub lightrun(colorduring,direction,timenum)
On Error Resume Next
dim timefornext
' color setting
dim a
for each a in aLights
SetLightColor a, colorduring, -1
next
if spotstatus = 1 Then
spotsoff
end If
if gistatus = 1 Then
GiOff
end if
select case direction
Case arcbld
lrseq.UpdateInterval = 5
timefornext = timenum*1000
lrseq.Play SeqArcBottomLeftDownOn, 90,timenum,0
lrseq.Play SeqArcBottomLeftDownOff, 90,timenum,0
Case arcblu
lrseq.UpdateInterval = 5
timefornext = timenum*1000
lrseq.Play SeqArcBottomLeftUpOn, 90,timenum,0
lrseq.Play SeqArcBottomLeftUpOff, 90,timenum,0
Case arcbrd
lrseq.UpdateInterval = 5
timefornext = timenum*1000
lrseq.Play SeqArcBottomRightDownOn, 90,timenum,0
lrseq.Play SeqArcBottomRightDownOff, 90,timenum,0
Case arcbru
lrseq.UpdateInterval = 5
timefornext = timenum*1000
lrseq.Play SeqArcBottomRightUpOn, 90,timenum,0
lrseq.Play SeqArcBottomRightUpOff, 90,timenum,0
Case arctld
lrseq.UpdateInterval = 5
timefornext = timenum*1000
lrseq.Play SeqArcTopLeftDownOn, 90,timenum,0
lrseq.Play SeqArcTopLeftDownOff, 90,timenum,0
Case arctlu
lrseq.UpdateInterval = 5
timefornext = timenum*1000
lrseq.Play SeqArcTopLeftUpOn, 90,timenum,0
lrseq.Play SeqArcTopLeftUpOff, 90,timenum,0
Case arctrd
lrseq.UpdateInterval = 5
timefornext = timenum*1000
lrseq.Play SeqArcTopRightDownOn, 90,timenum,0
lrseq.Play SeqArcTopRightDownOff, 90,timenum,0
Case arctru
lrseq.UpdateInterval = 5
timefornext = timenum*1000
lrseq.Play SeqArcTopRightUpOn, 90,timenum,0
lrseq.Play SeqArcTopRightUpOff, 90,timenum,0
Case circlein
lrseq.UpdateInterval = 5
timefornext = timenum*800
lrseq.Play SeqCircleInOn,50,timenum,0
lrseq.Play SeqCircleInOff,50,timenum,0
Case circleout
lrseq.UpdateInterval = 5
timefornext = timenum*800
lrseq.Play SeqCircleOutOn,50,timenum,0
lrseq.Play SeqCircleOutOff,50,timenum,0
Case clockleft
lrseq.UpdateInterval = 2
timefornext = timenum*800
lrseq.Play SeqClockLeftOn, 45,timenum,0
lrseq.Play SeqClockLeftOff, 45,timenum,0
Case clockright
lrseq.UpdateInterval = 2
timefornext = timenum*800
lrseq.Play SeqClockRightOn,45,timenum,0
lrseq.Play SeqClockRightOff,45,timenum,0
Case diagdl
lrseq.UpdateInterval = 3
timefornext = timenum*800
lrseq.Play SeqDiagDownLeftOn, 25,timenum,0
lrseq.Play SeqDiagDownLeftOff, 25,timenum,0
Case diagdr
lrseq.UpdateInterval = 3
timefornext = timenum*800
lrseq.Play SeqDiagDownRightOn, 25,timenum,0
lrseq.Play SeqDiagDownRightOff, 25,timenum,0
Case diagul
lrseq.UpdateInterval = 3
timefornext = timenum*800
lrseq.Play SeqDiagUpLeftOn, 25,timenum,0
lrseq.Play SeqDiagUpLeftOff, 25,timenum,0
Case diagur
lrseq.UpdateInterval = 3
timefornext = timenum*800
lrseq.Play SeqDiagUpRightOn, 25,timenum,0
lrseq.Play SeqDiagUpRightOff, 25,timenum,0
Case down
lrseq.UpdateInterval = 5
timefornext = timenum*800
lrseq.Play SeqDownOn, 15,timenum,0
lrseq.Play SeqDownOff, 15,timenum,0
Case fanld
lrseq.UpdateInterval = 3
timefornext = timenum*800
lrseq.Play SeqFanLeftDownOn, 30,timenum,0
lrseq.Play SeqFanLeftDownOff, 30,timenum,0
Case fanlu
lrseq.UpdateInterval = 3
timefornext = timenum*800
lrseq.Play SeqFanLeftUpOn, 30,timenum,0
lrseq.Play SeqFanLeftUpOff, 30,timenum,0
Case fanrd
lrseq.UpdateInterval = 3
timefornext = timenum*800
lrseq.Play SeqFanRightDownOn, 30,timenum,0
lrseq.Play SeqFanRightDownOff, 30,timenum,0
Case fanru
lrseq.UpdateInterval = 3
timefornext = timenum*800
lrseq.Play SeqFanRightUpOn, 30,timenum,0
lrseq.Play SeqFanRightUpOff, 30,timenum,0
Case hatch1h
lrseq.UpdateInterval = 9
timefornext = timenum*800
lrseq.Play SeqHatch1HorizOn, 25,timenum,0
lrseq.Play SeqHatch1HorizOff, 25,timenum,0
Case hatch1v
lrseq.UpdateInterval = 9
timefornext = timenum*800
lrseq.Play SeqHatch1VertOn, 75,timenum,0
lrseq.Play SeqHatch1VertOff, 75,timenum,0
Case hatch2h
lrseq.UpdateInterval = 9
timefornext = timenum*800
lrseq.Play SeqHatch2HorizOn, 25,timenum,0
lrseq.Play SeqHatch2HorizOff, 25,timenum,0
Case hatch2v
lrseq.UpdateInterval = 9
timefornext = timenum*800
lrseq.Play SeqHatch2VertOn, 75,timenum,0
lrseq.Play SeqHatch2VertOff, 75,timenum,0
Case left
lrseq.UpdateInterval = 5
timefornext = timenum*800
lrseq.Play SeqLeftOn, 50,timenum,0
lrseq.Play SeqLeftOff, 50,timenum,0
Case middleih
lrseq.UpdateInterval = 12
timefornext = timenum*700
lrseq.Play SeqMiddleInHorizOn, 50,timenum,0
lrseq.Play SeqMiddleInHorizOff, 50,timenum,0
Case middleiv
lrseq.UpdateInterval = 12
timefornext = timenum*700
lrseq.Play SeqMiddleInVertOn, 50,timenum,0
lrseq.Play SeqMiddleInVertOff, 50,timenum,0
Case middleoh
lrseq.UpdateInterval = 12
timefornext = timenum*700
lrseq.Play SeqMiddleOutHorizOn, 50,timenum,0
lrseq.Play SeqMiddleOutHorizOff, 50,timenum,0
Case middleov
lrseq.UpdateInterval = 12
timefornext = timenum*700
lrseq.Play SeqMiddleOutVertOn, 50,timenum,0
lrseq.Play SeqMiddleOutVertOff, 50,timenum,0
Case radarl
lrseq.UpdateInterval = 4
timefornext = timenum*700
lrseq.Play SeqRadarLeftOn, 45,timenum,0
lrseq.Play SeqRadarLeftOff, 45,timenum,0
Case radarr
lrseq.UpdateInterval = 4
timefornext = timenum*700
lrseq.Play SeqRadarRightOn, 45,timenum,0
lrseq.Play SeqRadarRightOff, 45,timenum,0
Case randoms
lrseq.UpdateInterval = 5
timefornext = timenum*1000
lrseq.Play SeqRandom,40,,timefornext
Case right
lrseq.UpdateInterval = 5
timefornext = timenum*800
lrseq.Play SeqRightOn, 50,timenum,0
lrseq.Play SeqRightOff, 50,timenum,0
Case screwl
lrseq.UpdateInterval = 2
timefornext = timenum*500
lrseq.Play SeqScrewLeftOn, 25,timenum,0
lrseq.Play SeqScrewLeftOff, 25,timenum,0
Case screwr
lrseq.UpdateInterval = 2
timefornext = timenum*500
lrseq.Play SeqScrewRightOn, 25,timenum,0
lrseq.Play SeqScrewRightOff, 25,timenum,0
Case stripe1h
lrseq.UpdateInterval = 5
timefornext = timenum*900
lrseq.Play SeqStripe1HorizOn, 25,timenum,0
lrseq.Play SeqStripe1HorizOff, 25,timenum,0
Case stripe1v
lrseq.UpdateInterval = 5
timefornext = timenum*900
lrseq.Play SeqStripe1VertOn, 50,timenum,0
lrseq.Play SeqStripe1VertOff, 50,timenum,0
Case stripe2h
lrseq.UpdateInterval = 5
timefornext = timenum*900
lrseq.Play SeqStripe2HorizOn, 25,timenum,0
lrseq.Play SeqStripe2HorizOff, 25,timenum,0
Case stripe2v
lrseq.UpdateInterval = 5
timefornext = timenum*900
lrseq.Play SeqStripe2VertOn, 25,timenum,0
lrseq.Play SeqStripe2VertOff, 25,timenum,0
Case up
lrseq.UpdateInterval = 5
timefornext = timenum*800
lrseq.Play SeqUpOn, 15,timenum,0
lrseq.Play SeqUpOff, 15,timenum,0
Case wiperl
lrseq.UpdateInterval = 5
timefornext = timenum*900
lrseq.Play SeqWiperLeftOn, 45,timenum,0
lrseq.Play SeqWiperLeftOff, 45,timenum,0
Case wiperr
lrseq.UpdateInterval = 5
timefornext = timenum*900
lrseq.Play SeqWiperRightOn, 45,timenum,0
lrseq.Play SeqWiperRightOff, 45,timenum,0
end Select
runninglights = 1
vpmtimer.addtimer timefornext, "nolongerrun '"
end Sub
Sub nolongerrun
if spotstatus = 0 Then
spotson
end If
if gistatus = 0 Then
GiOn
end if
runninglights = 0
lrseq.StopPlay
if bMultiBallMode = 0 Then
relighttable
end if
end Sub