Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- Option Explicit
- On Error Resume Next
- ExecuteGlobal GetTextFile("controller.vbs")
- If Err Then MsgBox "You need the controller.vbs in order to run this table, available in the vp10 package"
- On Error Goto 0
- Const cGameName="punk",UseSolenoids=1,UseLamps=1,UseGI=0,SSolenoidOn="SolOn",SSolenoidOff="SolOff",SFlipperOn="Flipper2",SFlipperOff="Flipper"
- Const SCoin="coin3",cCredits=""
- LoadVPM "01120100","sys80.vbs",3.02
- Set LampCallback=GetRef("UpdateMultipleLamps")
- Sub Table1_KeyDown(ByVal keycode)
- If keycode=RightFlipperKey Then Controller.Switch(35)=1
- If vpmKeyDown(KeyCode) Then Exit Sub
- If keycode=PlungerKey Then Plunger.Pullback
- End Sub
- Sub Table1_KeyUp(ByVal keycode)
- If keycode=RightFlipperKey Then Controller.Switch(35)=0
- If vpmKeyUp(KeyCode) Then Exit Sub
- If keycode=PlungerKey Then Plunger.Fire:playsound "plunger"
- End Sub
- Const sTopBank=1
- Const sLeftBank=2
- Const sCLBank=3
- Const sCRBank=4
- Const sSaucer=5
- Const sSaucer2=6
- Const sknocker=8
- Const sOutHole=9
- SolCallback(sTopBank)="dtT.SolDropUp"
- SolCallback(sLeftBank)="dtL.SolDropUp"
- SolCallback(sCLBank)="dtCL.SolDropUp"
- SolCallback(sCRBank)="dtCR.SolDropUp"
- SolCallback(sSaucer)="bsSaucer.SolOut"
- SolCallback(sSaucer2)="bsSaucer2.SolOut"
- SolCallback(sKnocker)="VpmSolSound SoundFX(""knocker"",DOFKnocker),"
- SolCallback(sOutHole)="SolTrough"
- 'SolCallback(sLLFlipper)="VpmSolFlipper LeftFlipper,Flipper2,"
- 'SolCallback(sLRFlipper)="VpmSolFlipper RightFlipper,Flipper1,"
- SolCallback(sLRFlipper) = "SolRFlipper"
- SolCallback(sLLFlipper) = "SolLFlipper"
- Sub SolLFlipper(Enabled)
- If Enabled Then
- PlaySound SoundFX("FlipperUp",DOFFlippers):LeftFlipper.RotateToEnd:Flipper2.RotateToEnd
- Else
- PlaySound SoundFX("FlipperDown",DOFFlippers):LeftFlipper.RotateToStart:Flipper2.RotateToStart
- End If
- End Sub
- Sub SolRFlipper(Enabled)
- If Enabled Then
- PlaySound SoundFX("FlipperUp",DOFFlippers):RightFlipper.RotateToEnd:Flipper1.RotateToEnd
- Else
- PlaySound SoundFX("FlipperDown",DOFFlippers):RightFlipper.RotateToStart:Flipper1.RotateToStart
- End If
- End Sub
- Dim bsSaucer,bsSaucer2,dtL,dtT,dtCL,dtCR
- Dim BallR,OldBallR
- BallR=0
- Sub SolTrough(Enabled)
- If Enabled Then
- Controller.Switch(36)=0
- End If
- End Sub
- Sub UpdateMultipleLamps
- BallR=Light12.State
- If BallR<>OldBallR Then
- If BallR=1 Then
- BallsInPlay=BallsInPlay+1
- BallRelease.CreateBall
- BallRelease.Kick 100,1
- Controller.Switch(54)=0
- End If
- OldBallR=BallR
- End If
- End Sub
- Sub Table1_Init
- Controller.Games(cGameName).Settings.Value("dmd_red")=7
- Controller.Games(cGameName).Settings.Value("dmd_green")=194
- Controller.Games(cGameName).Settings.Value("dmd_blue")=78
- On Error Resume Next
- With Controller
- .GameName=cGameName
- If Err Then MsgBox "Can't start Game" & cGameName & vbNewLine & Err.Description : Exit Sub
- .SplashInfoLine="Punk!"
- .HandleMechanics=0
- .HandleKeyboard=0
- .ShowDMDOnly=1
- .ShowFrame=1
- .ShowTitle=0
- .Hidden=1
- If Err Then MsgBox Err.Description
- End With
- On Error Goto 0
- Controller.SolMask(0)=0
- vpmTimer.AddTimer 2000,"Controller.SolMask(0)=&Hffffffff'" 'ignore all solenoids - then add the timer to renable all the solenoids after 2 seconds
- Controller.Run
- Controller.Dip(0) = (0*1 + 0*2 + 0*4 + 0*8 + 0*16 + 0*32 + 0*64 + 0*128) '01-08
- Controller.Dip(1) = (0*1 + 0*2 + 0*4 + 0*8 + 0*16 + 1*32 + 1*64 + 1*128) '09-16
- Controller.Dip(2) = (0*1 + 0*2 + 0*4 + 0*8 + 0*16 + 1*32 + 1*64 + 1*128) '17-24
- Controller.Dip(3) = (1*1 + 1*2 + 1*4 + 0*8 + 0*16 + 0*32 + 1*64 + 1*128) '25-32
- 'Switch 25 Number Of Balls
- ' ON = 3
- ' OFF = 5
- PinMAMETimer.Interval=PinMAMEInterval
- PinMAMETimer.Enabled=1
- vpmNudge.TiltSwitch=57
- vpmNudge.Sensitivity=5
- vpmNudge.TiltObj=Array(LeftSlingshot,RightSlingshot,Bumper1,Bumper2,Bumper3,Bumper4,Bumper5,Wall20,Wall21,Wall22)
- Set bsSaucer=New cvpmBallStack
- bsSaucer.InitSaucer Kicker1,5,180,5
- bsSaucer.InitExitSnd SoundFX("popper",DOFContactors),SoundFX("popper",DOFContactors)
- Set bsSaucer2=New cvpmBallStack
- bsSaucer2.InitSaucer Kicker2,6,180,5
- bsSaucer2.InitExitSnd SoundFX("popper",DOFContactors),SoundFX("popper",DOFContactors)
- set dtL=New cvpmDropTarget
- dtL.InitDrop Array(Wall1,Wall2,Wall3),Array(1,11,21)
- dtL.initsnd SoundFX("flapclos",DOFContactors),SoundFX("flapopen",DOFContactors)
- set dtT=New cvpmDropTarget
- dtT.InitDrop Array(Wall4,Wall5,Wall6),Array(0,10,20)
- dtT.initsnd SoundFX("flapclos",DOFContactors),SoundFX("flapopen",DOFContactors)
- set dtCL=New cvpmDropTarget
- dtCL.InitDrop Array(Wall7,Wall8,Wall9),Array(2,12,22)
- dtCL.initsnd SoundFX("flapclos",DOFContactors),SoundFX("flapopen",DOFContactors)
- set dtCR=New cvpmDropTarget
- dtCR.InitDrop Array(Wall10,Wall11,Wall12),Array(3,13,23)
- dtCR.initsnd SoundFX("flapclos",DOFContactors),SoundFX("flapopen",DOFContactors)
- Controller.Switch(36)=1
- Controller.Switch(54)=1
- End Sub
- Sub Wall4_Hit:dtT.Hit 1:End Sub
- Sub Wall1_Hit:dtL.Hit 1:End Sub
- Sub Wall7_Hit:dtCL.Hit 1:End Sub
- Sub Wall10_Hit:dtCR.Hit 1:End Sub
- Sub Trigger1_Hit:Controller.Switch(4)=1:End Sub
- Sub Trigger1_unHit:Controller.Switch(4)=0:End Sub
- Sub Kicker1_Hit:bsSaucer.AddBall 0:End Sub '5
- Sub Kicker2_Hit:bsSaucer2.AddBall 0:End Sub '6
- Sub Wall5_Hit:dtT.Hit 2:End Sub
- Sub Wall2_Hit:dtL.Hit 2:End Sub
- Sub Wall8_Hit:dtCL.Hit 2:End Sub
- Sub Wall11_Hit:dtCR.Hit 2:End Sub
- Sub Trigger2_Hit:Controller.Switch(14)=1:End Sub
- Sub Trigger2_unHit:Controller.Switch(14)=0:End Sub
- Sub Trigger4_Hit:Controller.Switch(15)=1:End Sub
- Sub Trigger4_unHit:Controller.Switch(15)=0:End Sub
- Sub Trigger5_Hit:Controller.Switch(16)=1:End Sub
- Sub Trigger5_unHit:Controller.Switch(16)=0:End Sub
- Sub Wall6_Hit:dtT.Hit 3:End Sub
- Sub Wall3_Hit:dtL.Hit 3:End Sub
- Sub Wall9_Hit:dtCL.Hit 3:End Sub
- Sub Wall12_Hit:dtCR.Hit 3:End Sub
- Sub Trigger3_Hit:Controller.Switch(24)=1:End Sub
- Sub Trigger3_unHit:Controller.Switch(24)=0:End Sub
- Sub Wall15_Hit:vpmTimer.PulseSw 25:DOF 101, DOFPulse:End Sub
- Sub Wall16_Hit:vpmTimer.PulseSw 25:DOF 102, DOFPulse:End Sub
- Sub Wall17_Hit:vpmTimer.PulseSw 25:DOF 102, DOFPulse:End Sub
- Sub Wall18_Hit:vpmTimer.PulseSw 25:DOF 103, DOFPulse:End Sub
- Sub Wall19_Hit:vpmTimer.PulseSw 25:DOF 103, DOFPulse:End Sub
- Sub Wall22_Slingshot:PlaySound SoundFXDOF("sling",111,DOFPulse,DOFContactors):VpmTimer.PulseSw 26:End Sub
- Sub LeftSlingshot_Slingshot:PlaySound SoundFXDOF("sling",104,DOFPulse,DOFContactors):VpmTimer.PulseSw 26:End Sub
- Sub RightSlingshot_Slingshot:PlaySound SoundFXDOF("sling",105,DOFPulse,DOFContactors):VpmTimer.PulseSw 26:End Sub
- Sub LeftInlane_Hit:Controller.Switch(30)=1:End Sub
- Sub LeftInlane_unHit:Controller.switch(30)=0:End Sub
- Sub RightInlane_Hit:Controller.Switch(31)=1:End Sub
- Sub RightInlane_UnHit:Controller.Switch(31)=0:End Sub
- Sub Wall13_Hit:vpmTimer.PulseSw 32:End Sub
- Sub Wall20_Slingshot:vpmTimer.PulseSw 33:PlaySound SoundFXDOF("jet3",112,DOFPulse,DOFContactors):End Sub
- Sub Wall21_Slingshot:vpmTimer.PulseSw 33:PlaySound SoundFXDOF("jet3",111,DOFPulse,DOFContactors):End Sub
- Sub Bumper3_Hit:VpmTimer.PulseSw 34:PlaySound SoundFXDOF("jet1",108,DOFPulse,DOFContactors):End Sub
- Sub Bumper4_Hit:VpmTimer.PulseSw 34:PlaySound SoundFXDOF("jet1",109,DOFPulse,DOFContactors):End Sub
- Sub Bumper5_Hit:VpmTimer.PulseSw 34:PlaySound SoundFXDOF("jet1",110,DOFPulse,DOFContactors):End Sub
- Dim BallsInPlay
- BallsInPlay=0
- Sub Drain_Hit
- Me.DestroyBall
- BallsInPlay=BallsInPlay-1
- Controller.Switch(36)=1
- If BallsInPlay=0 Then Controller.Switch(54)=1
- End Sub
- Sub LeftOutlane_Hit:Controller.Switch(50)=1:End Sub
- Sub LeftOutlane_unHit:Controller.Switch(50)=0:End Sub
- Sub RightOutlane_Hit:Controller.Switch(51)=1:End Sub
- Sub RightOutlane_unHit:Controller.switch(51)=0:End Sub
- Sub Wall14_Hit:vpmTimer.PulseSw 52:End Sub
- Sub Bumper1_Hit:VpmTimer.PulseSw 53:PlaySound SoundFXDOF("jet1",106,DOFPulse,DOFContactors):End Sub
- Sub Bumper2_Hit:VpmTimer.PulseSw 53:PlaySound SoundFXDOF("jet1",107,DOFPulse,DOFContactors):End Sub
- set lights(3)=Light3
- set lights(4)=Light4
- set lights(5)=Light5
- set lights(6)=Light6
- set lights(7)=Light7
- set lights(8)=Light8
- set lights(13)=Light13
- set lights(14)=Light14
- set lights(15)=Light15
- set lights(16)=Light16
- set lights(17)=Light17
- set lights(18)=Light18
- set lights(19)=Light19
- set lights(20)=Light20
- set lights(21)=Light21
- set lights(22)=light22
- set lights(23)=light23
- set lights(24)=light24
- set lights(25)=light25
- set lights(26)=light26
- set lights(27)=light27
- set lights(28)=light28
- set lights(29)=light29
- set lights(30)=light30
- set lights(31)=light31
- set lights(32)=light32
- set lights(33)=light33
- set lights(34)=light34
- set lights(35)=light35
- set lights(36)=light36
- set lights(37)=light37
- set lights(38)=light38
- set lights(39)=light39
- set lights(40)=light40
- set lights(41)=light41
- set lights(42)=light42
- set lights(43)=light43
- set lights(44)=light44
- set lights(45)=light45
- Set Lights(12)=Light12
- Dim Digits(31)
- Digits(0)=Array(D1,D2,D3,D4,D5,D6,D7,D8,D9)
- Digits(1)=Array(D11,D12,D13,D14,D15,D16,D17,D18,D19)
- Digits(2)=Array(D21,D22,D23,D24,D25,D26,D27,D28,D29)
- Digits(3)=Array(D31,D32,D33,D34,D35,D36,D37,D38,D39)
- Digits(4)=Array(D41,D42,D43,D44,D45,D46,D47,D48,D49)
- Digits(5)=Array(D51,D52,D53,D54,D55,D56,D57,D58,D59)
- Digits(6)=Array(D61,D62,D63,D64,D65,D66,D67,D68,D69)
- Digits(7)=Array(D71,D72,D73,D74,D75,D76,D77,D78,D79)
- Digits(8)=Array(D81,D82,D83,D84,D85,D86,D87,D88,D89)
- Digits(9)=Array(D91,D92,D93,D94,D95,D96,D97,D98,D99)
- Digits(10)=Array(D101,D102,D103,D104,D105,D106,D107,D108,D109)
- Digits(11)=Array(D111,D112,D113,D114,D115,D116,D117,D118,D119)
- Digits(12)=Array(D121,D122,D123,D124,D125,D126,D127,D128,D129)
- Digits(13)=Array(D131,D132,D133,D134,D135,D136,D137,D138,D139)
- Digits(14)=Array(D141,D142,D143,D144,D145,D146,D147,D148,D149)
- Digits(15)=Array(D151,D152,D153,D154,D155,D156,D157,D158,D159)
- Digits(16)=Array(D161,D162,D163,D164,D165,D166,D167,D168,D169)
- Digits(17)=Array(D171,D172,D173,D174,D175,D176,D177,D178,D179)
- Digits(18)=Array(D181,D182,D183,D184,D185,D186,D187,D188,D189)
- Digits(19)=Array(D191,D192,D193,D194,D195,D196,D197,D198,D199)
- Digits(20)=Array(D201,D202,D203,D204,D205,D206,D207,D208,D209)
- Digits(21)=Array(D211,D212,D213,D214,D215,D216,D217,D218,D219)
- Digits(22)=Array(D221,D222,D223,D224,D225,D226,D227,D228,D229)
- Digits(23)=Array(D231,D232,D233,D234,D235,D236,D237,D238,D239)
- Digits(24)=Array(D241,D242,D243,D244,D245,D246,D247,D248,D249)
- Digits(25)=Array(D251,D252,D253,D254,D255,D256,D257,D258,D259)
- Digits(26)=Array(D261,D262,D263,D264,D265,D266,D267,D268,D269)
- Digits(27)=Array(D271,D272,D273,D274,D275,D276,D277,D278,D279)
- Digits(28)=Array(D281,D282,D283,D284,D285,D286,D287)
- Digits(29)=Array(D291,D292,D293,D294,D295,D296,D297)
- Digits(30)=Array(D301,D302,D303,D304,D305,D306,D307)
- Digits(31)=Array(D311,D312,D313,D314,D315,D316,D317)
- Sub DisplayTimer_Timer
- Dim ChgLED,ii,num,chg,stat,obj
- ChgLED=Controller.ChangedLEDs(&Hffffffff,&Hffffffff)
- If Not IsEmpty(ChgLED) Then
- For ii=0 To UBound(chgLED)
- num=chgLED(ii,0):chg=chgLED(ii,1):stat=chgLED(ii,2)
- For Each obj In Digits(num)
- If chg And 1 Then obj.State=stat And 1
- chg=chg\2:stat=stat\2
- Next
- Next
- End If
- End Sub
- Sub Table1_exit()
- Controller.Pause = False
- Controller.Stop
- End Sub
Advertisement
Add Comment
Please, Sign In to add comment