Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- Option Explicit
- Randomize
- '---------- UltraDMD Unique Table Color preference -------------
- Dim DMDColor, DMDColorSelect, UseFullColor
- Dim DMDPosition, DMDPosX, DMDPosY, DMDSize, DMDWidth, DMDHeight
- UseFullColor = "True" ' "True" / "False"
- DMDColorSelect = "Red" ' Rightclick on UDMD window to get full list of colours
- DMDPosition = False ' Use Manual DMD Position, True / False
- DMDPosX = 100 ' Position in Decimal
- DMDPosY = 40 ' Position in Decimal
- DMDSize = False ' Use Manual DMD Size, True / False
- DMDWidth = 512 ' Width in Decimal
- DMDHeight = 128 ' Height in Decimal
- 'Note open Ultradmd and right click on window to get the various sizes in decimal
- GetDMDColor
- Sub GetDMDColor
- Dim WshShell,filecheck,directory
- Set WshShell = CreateObject("WScript.Shell")
- If DMDSize then
- WshShell.RegWrite "HKCU\Software\UltraDMD\w",DMDWidth,"REG_DWORD"
- WshShell.RegWrite "HKCU\Software\UltraDMD\h",DMDHeight,"REG_DWORD"
- End if
- If DMDPosition then
- WshShell.RegWrite "HKCU\Software\UltraDMD\x",DMDPosX,"REG_DWORD"
- WshShell.RegWrite "HKCU\Software\UltraDMD\y",DMDPosY,"REG_DWORD"
- End if
- WshShell.RegWrite "HKCU\Software\UltraDMD\fullcolor",UseFullColor,"REG_SZ"
- WshShell.RegWrite "HKCU\Software\UltraDMD\color",DMDColorSelect,"REG_SZ"
- End Sub
- '---------------------------------------------------
- ' Load the core.vbs for supporting Subs and functions
- LoadCoreFiles
- Sub LoadCoreFiles
- On Error Resume Next
- ExecuteGlobal GetTextFile("core.vbs")
- If Err Then MsgBox "Can't open core.vbs"
- ExecuteGlobal GetTextFile("controller.vbs")
- If Err Then MsgBox "Can't open controller.vbs"
- On Error Goto 0
- End Sub
- Const cGameName = "nudge_test"
- 'Const UseFullColor = "True" 'Use Color DMD (True / False)
- 'Const DMDColorSelect = "Azure" 'Rightclick on UDMD window to get full list of colors
- Dim Ballsize,BallMass
- Ballsize = 50
- BallMass = (Ballsize^3)/125000
- ' Define any Constants
- Const TableName = "goldorak"
- Const myVersion = "1.0.2"
- Const MaxPlayers = 4 ' from 1 to 4
- Const BallSaverTime = 10 ' in seconds
- Const MaxMultiplier = 5 ' limit to 5x in this game
- Const BallsPerGame = 3 ' 3 or 5
- Const MaxMultiballs = 5 ' max number of balls during multiballs
- ' Define Global Variables
- Dim PlayersPlayingGame
- Dim CurrentPlayer
- Dim Credits
- Dim BonusPoints(4)
- Dim BonusHeldPoints(4)
- Dim BonusMultiplier(4)
- Dim bBonusHeld
- Dim BallsRemaining(4)
- Dim ExtraBallsAwards(4)
- Dim Score(4)
- Dim HighScore(4)
- Dim HighScoreName(4)
- Dim Jackpot
- Dim SuperJackpot
- Dim Tilt
- Dim TiltSensitivity
- Dim Tilted
- Dim TotalGamesPlayed
- Dim mBalls2Eject
- Dim SkillshotValue(4)
- Dim bAutoPlunger
- Dim bInstantInfo
- Dim bAttractMode
- Dim ComboValue
- ' Define Game Control Variables
- Dim LastSwitchHit
- Dim BallsOnPlayfield
- Dim BallsInLock
- Dim BallsInHole
- ' Define Game Flags
- Dim bFreePlay
- Dim bGameInPlay
- Dim bOnTheFirstBall
- Dim bBallInPlungerLane
- Dim bBallSaverActive
- Dim bBallSaverReady
- Dim bMultiBallMode
- Dim bMusicOn
- Dim bSkillshotReady
- Dim bExtraBallWonThisBall
- Dim bJustStarted
- ' core.vbs variables
- Dim plungerIM 'used mostly as an autofire plunger
- ' //////////////////////
- ' B2S Light Show
- ' cause i mean everyone loves a good light show
- ' 1 = top right art
- ' 2 = left robot guy
- ' 3 = right robot guy
- ' 4 = title
- ' 5 = animation
- ' 6 = Lightning
- ' /////////////////////
- Dim b2sstep
- b2sstep = 0
- 'b2sflash.enabled = 0
- Dim b2satm
- Sub startB2S(aB2S)
- b2sflash.enabled = 1
- b2satm = ab2s
- End Sub
- Sub b2sflash_timer
- If B2SOn Then
- b2sstep = b2sstep + 1
- Select Case b2sstep
- Case 0
- Controller.B2SSetData b2satm, 0
- Case 1
- Controller.B2SSetData b2satm, 1
- Case 2
- Controller.B2SSetData b2satm, 0
- Case 3
- Controller.B2SSetData b2satm, 1
- Case 4
- Controller.B2SSetData b2satm, 0
- Case 5
- Controller.B2SSetData b2satm, 1
- Case 6
- Controller.B2SSetData b2satm, 0
- Case 7
- Controller.B2SSetData b2satm, 1
- Case 8
- Controller.B2SSetData b2satm, 0
- b2sstep = 0
- b2sflash.enabled = 0
- End Select
- End If
- End Sub
- ' /////////////////
- ' END b2s
- ' well that was quick, tacos anyone?
- ' /////////////////
- ' *********************************************************************
- ' Visual Pinball Defined Script Events
- ' *********************************************************************
- '*DOF method for non rom controller tables by Arngrim****************
- '*******Use DOF 1**, 1 to activate a ledwiz output*******************
- '*******Use DOF 1**, 0 to deactivate a ledwiz output*****************
- '*******Use DOF 1**, 2 to pulse a ledwiz output**********************
- Sub DOF(dofevent, dofstate)
- If dofstate = 2 Then
- Controller.B2SSetData dofevent, 1:Controller.B2SSetData dofevent, 0
- Else
- Controller.B2SSetData dofevent, dofstate
- End If
- End Sub
- Sub Table1_Init()
- LoadEM
- Dim i
- Randomize
- 'Impulse Plunger as autoplunger
- Const IMPowerSetting = 45 ' Plunger Power
- Const IMTime = 1.1 ' Time in seconds for Full Plunge
- Set plungerIM = New cvpmImpulseP
- With plungerIM
- .InitImpulseP swplunger, IMPowerSetting, IMTime
- .Random 1.5
- .InitExitSnd SoundFX("fx_kicker", DOFContactors), SoundFX("fx_solenoid", DOFContactors)
- .CreateEvents "plungerIM"
- End With
- vpmtimer.AddTimer 1000, "PlaySound ""fx_sys11_bootup"" '"
- vpmtimer.AddTimer 2700, "PlaySound ""fx_sys11_bootup"" '"
- ' Misc. VP table objects Initialisation, droptargets, animations...
- VPObjects_Init
- ' load saved values, highscore, names, jackpot
- Loadhs
- ' Initalise the DMD display
- DMD_Init
- ' freeplay or coins
- bFreePlay = False 'we dont want coins
- ' Init main variables and any other flags
- bAttractMode = False
- bOnTheFirstBall = False
- bBallInPlungerLane = False
- bBallSaverActive = False
- bBallSaverReady = False
- bMultiBallMode = False
- bGameInPlay = False
- bAutoPlunger = False
- bMusicOn = True
- BallsOnPlayfield = 0
- BallsInLock = 0
- BallsInHole = 0
- LastSwitchHit = ""
- Tilt = 0
- TiltSensitivity = 6
- Tilted = False
- bJustStarted = True
- bInstantInfo = False
- BHit = 0
- ' set any lights for the attract mode
- GiOff
- vpmtimer.AddTimer 8000, "StartAttractMode '"
- End Sub
- '******
- ' Keys
- '******
- Sub Table1_KeyDown(ByVal Keycode)
- If Keycode = AddCreditKey Then
- Credits = Credits + 1
- DOF 140, DOFOn
- If(Tilted = False) Then
- PlaySound "goldrake voce"
- DMDFlush
- DMD "DMD meta.gif", " ", "", 2800
- DMD "black.jpg", "_", " CREDITS " &credits, 500
- PlaySound "fx_coin"
- If NOT bGameInPlay Then ShowTableInfo
- DOF 322, DOFOn 'DOF MX - Credits in, Ready to Start Game - ON
- End If
- End If
- If keycode = PlungerKey Then
- plungerIM.AutoFire
- If (Bulb30.State = 2) Then
- addscore 50000
- Playsound "goldrake voce"
- BrazosL.enabled = 1
- BrazosR.enabled = 1
- GiEffect 2
- FlashEffect 2
- LightEffect 1
- FireFlash.State = 0
- ' maglio.moveto maglio.tx-330, maglio.ty, maglio.tz-350, +700
- ' maglio2.moveto maglio2.tx+350, maglio2.ty, maglio2.tz-650, 900
- ' Timermaglio.set true , 700
- ' Timerholo.set true , 450
- Explosion()
- ' Holo3.frame 1,26
- ' Holo4.frame 1,26
- flashforms flasher2,2000, 50, 0
- flashforms flasher6, 2000, 50, 0
- ' playsound "goldrake maglio"
- Bulb30.State = 0
- ' DMDframe.set true, 4000
- ' DispDmd1.QueueText "[f6][edge4][y5]SPECIAL KEY1[y17]PRESSED 50.000", deNone, 3000, True
- ' DispDmd2.QueueText "[f6][edge4][y5]SPECIAL KEY1[y17]PRESSED 50.000", deNone, 3000, True
- DMD "Bomba.gif", " ", "", 3000
- DMDFLush
- DMDBlink "black.jpg", "SPECIAL KEY", "PRESSED 50.000" , 200, 20
- End If
- End If
- If hsbModeActive Then
- EnterHighScoreKey(keycode)
- Exit Sub
- End If
- ' Table specific
- ' Normal flipper action
- If bGameInPlay AND NOT Tilted Then
- If keycode = LeftTiltKey Then Nudge 90, 6:PlaySound "fx_nudge", 0, 1, -0.1, 0.25:CheckTilt
- If keycode = RightTiltKey Then Nudge 270, 6:PlaySound "fx_nudge", 0, 1, 0.1, 0.25:CheckTilt
- If keycode = CenterTiltKey Then Nudge 0, 7:PlaySound "fx_nudge", 0, 1, 1, 0.25:CheckTilt
- If keycode = LeftFlipperKey Then SolLFlipper 1:InstantInfoTimer.Enabled = True
- If keycode = RightFlipperKey Then SolRFlipper 1:InstantInfoTimer.Enabled = True
- If keycode = StartGameKey Then
- If((PlayersPlayingGame <MaxPlayers) AND(bOnTheFirstBall = True) ) Then
- If(bFreePlay = True) Then
- PlayersPlayingGame = PlayersPlayingGame + 1
- TotalGamesPlayed = TotalGamesPlayed + 1
- DMDFlush
- DMD "black.jpg", " ", PlayersPlayingGame & " PLAYERS", 500
- PlaySound "so_fanfare1"
- Else
- If(Credits> 0) then
- PlayersPlayingGame = PlayersPlayingGame + 1
- TotalGamesPlayed = TotalGamesPlayed + 1
- Credits = Credits - 1
- DMDFlush
- DMD "black.jpg", " ", PlayersPlayingGame & " PLAYERS", 500
- PlaySound "so_fanfare1"
- Else
- ' Not Enough Credits to start a game.
- DOF 140, DOFOff
- DMDFlush
- DMD "black.jpg", "CREDITS " &credits, "INSERT COIN", 500
- PlaySound "so_nocredits"
- End If
- End If
- End If
- End If
- Else ' If (GameInPlay)
- If keycode = StartGameKey Then
- If(bFreePlay = True) Then
- If(BallsOnPlayfield = 0) Then
- ResetForNewGame()
- End If
- Else
- If(Credits> 0) Then
- If(BallsOnPlayfield = 0) Then
- Credits = Credits - 1
- ResetForNewGame()
- End If
- Else
- ' Not Enough Credits to start a game.
- DOF 140, DOFOff
- DMDFlush
- DMD "black.jpg", "CREDITS " &credits, "INSERT COIN", 500
- ShowTableInfo
- End If
- End If
- End If
- End If ' If (GameInPlay)
- End Sub
- Sub Table1_KeyUp(ByVal keycode)
- If hsbModeActive Then
- Exit Sub
- End If
- ' Table specific
- If bGameInPLay AND NOT Tilted Then
- If keycode = LeftFlipperKey Then
- SolLFlipper 0
- InstantInfoTimer.Enabled = False
- If bInstantInfo Then
- DMDScoreNow
- bInstantInfo = False
- End If
- End If
- If keycode = RightFlipperKey Then
- SolRFlipper 0
- InstantInfoTimer.Enabled = False
- If bInstantInfo Then
- DMDScoreNow
- bInstantInfo = False
- End If
- End If
- End If
- End Sub
- Sub InstantInfoTimer_Timer
- InstantInfoTimer.Enabled = False
- bInstantInfo = True
- DMDFlush
- UltraDMDTimer.Enabled = 1
- End Sub
- Sub InstantInfo
- DMD "HighScores.gif", "", "", 2500
- Dim X
- ' Jackpot = 250000 (Score(CurrentPlayer) / 10, 0)
- DMD "black.jpg", "", "INSTANT INFO", 500
- x = LoadValue(TableName, "HighScore1")
- If(x <> "") Then HighScore(0) = CDbl(x) Else HighScore(0) = 100000 End If
- End Sub
- '*************
- ' Pause Table
- '*************
- Sub table1_Paused
- End Sub
- Sub table1_unPaused
- End Sub
- Sub table1_Exit
- Savehs
- Controller.Stop
- End Sub
- '********************
- ' Special JP Flippers
- '********************
- Sub SolLFlipper(Enabled)
- If Enabled Then
- PlaySound SoundFXDOF("fx_flipperup", 101, DOFOn, DOFFlippers), 0, 1, -0.05, 0.15
- LeftFlipper.RotateToEnd
- RotateLaneLightsLeft
- Else
- PlaySound SoundFXDOF("fx_flipperdown", 101, DOFOff, DOFFlippers), 0, 1, -0.05, 0.15
- LeftFlipper.RotateToStart
- End If
- End Sub
- Sub SolRFlipper(Enabled)
- If Enabled Then
- PlaySound SoundFXDOF("fx_flipperup", 102, DOFOn, DOFFlippers), 0, 1, 0.05, 0.15
- RightFlipper.RotateToEnd
- RotateLaneLightsRight
- Else
- PlaySound SoundFXDOF("fx_flipperdown", 102, DOFOff, DOFFlippers), 0, 1, 0.05, 0.15
- RightFlipper.RotateToStart
- End If
- End Sub
- ' flippers hit Sound
- Sub LeftFlipper_Collide(parm)
- PlaySound "fx_rubber_flipper", 0, parm / 10, -0.05, 0.25
- End Sub
- Sub RightFlipper_Collide(parm)
- PlaySound "fx_rubber_flipper", 0, parm / 10, 0.05, 0.25
- End Sub
- Sub UpdateFlipperLogo_Timer
- LFLogo.RotY = LeftFlipper.CurrentAngle
- RFlogo.RotY = RightFlipper.CurrentAngle
- End Sub
- Sub RotateLaneLightsLeft
- Dim TempState
- TempState = SP1.State
- SP1.State = SP2.State
- SP2.State = SP3.State
- SP3.State = SP4.State
- SP4.State = TempState
- End Sub
- Sub RotateLaneLightsRight
- Dim TempState
- TempState = SP4.State
- SP4.State = SP3.State
- SP3.State = SP2.State
- SP2.State = SP1.State
- SP1.State = TempState
- End Sub
- '*********
- ' TILT
- '*********
- 'NOTE: The TiltDecreaseTimer Subtracts .01 from the "Tilt" variable every round
- Sub CheckTilt 'Called when table is nudged
- Tilt = Tilt + TiltSensitivity 'Add to tilt count
- TiltDecreaseTimer.Enabled = True
- If(Tilt> TiltSensitivity) AND(Tilt <15) Then 'show a warning
- DMDFlush
- DMD "black.jpg", " ", "CAREFUL!", 800
- DOF 131, DOFPulse
- DOF 311, DOFPulse 'DOF MX - Tilt Warning
- End if
- If Tilt> 15 Then 'If more that 15 then TILT the table
- Tilted = True
- 'display Tilt
- DMDFlush
- DMD "black.jpg", " ", "TILT!", 99999
- Playsound "tilt"
- DMDFlush
- DMD "black.jpg", " ", "TILT!", 99999
- Playsound "tilt"
- DOF 310, DOFPulse 'DOF MX - TILT
- DOF 127, DOFOff 'DOF - Beacon - OFF
- DisableTable True
- TiltRecoveryTimer.Enabled = True 'start the Tilt delay to check for all the balls to be drained
- End If
- End Sub
- Sub TiltDecreaseTimer_Timer
- ' DecreaseTilt
- If Tilt> 0 Then
- Tilt = Tilt - 0.1
- Else
- TiltDecreaseTimer.Enabled = False
- End If
- End Sub
- Sub DisableTable(Enabled)
- If Enabled Then
- 'turn off GI and turn off all the lights
- GiOff
- 'Disable slings, bumpers etc
- LeftFlipper.RotateToStart
- RightFlipper.RotateToStart
- LeftSlingshot.Disabled = 1
- RightSlingshot.Disabled = 1
- Else
- 'turn back on GI and the lights
- GiOn
- 'Bumper1.Force = 6
- LeftSlingshot.Disabled = 0
- RightSlingshot.Disabled = 0
- 'clean up the buffer display
- DMDFlush
- End If
- End Sub
- Sub TiltRecoveryTimer_Timer()
- ' if all the balls have been drained then..
- If(BallsOnPlayfield = 0) Then
- ' do the normal end of ball thing (this doesn't give a bonus if the table is tilted)
- EndOfBall()
- Me.Enabled = False
- End If
- ' else retry (checks again in another second or so)
- End Sub
- '********************
- ' Music as wav sounds
- '********************
- Dim Song
- Song = ""
- Sub PlaySong(name)
- If bMusicOn Then
- If Song <> name Then
- StopSound Song
- Song = name
- If Song = "mu_end" Then
- PlaySound Song, 0, 0.1 'this last number is the volume, from 0 to 1
- Else
- PlaySound Song, -1, 0.1 'this last number is the volume, from 0 to 1
- End If
- End If
- End If
- End Sub
- '**********************
- ' GI effects
- ' independent routine
- ' it turns on the gi
- ' when there is a ball
- ' in play
- '**********************
- Dim OldGiState
- OldGiState = -1 'start witht the Gi off
- Sub ChangeGi(col) 'changes the gi color
- Dim bulb
- For each bulb in aGILights
- SetLightColor bulb, col, -1
- Next
- End Sub
- Sub GIUpdateTimer_Timer
- Dim tmp, obj
- tmp = Getballs
- If UBound(tmp) <> OldGiState Then
- OldGiState = Ubound(tmp)
- If UBound(tmp) = -1 Then
- GiOff
- Else
- Gion
- End If
- End If
- End Sub
- Sub GiOn
- DOF 126, DOFOn
- Dim bulb
- For each bulb in aGiLights
- bulb.State = 1
- Next
- Table1.ColorGradeImage = "ColorGradeLUT256x16_ConSat"
- End Sub
- Sub GiOff
- DOF 126, DOFOff
- Dim bulb
- For each bulb in aGiLights
- bulb.State = 0
- Next
- Table1.ColorGradeImage = "ColorGradeLUT256x16_ConSatDark"
- End Sub
- ' GI & light sequence effects
- Sub GiEffect(n)
- Select Case n
- Case 0 'all off
- LightSeqGi.Play SeqAlloff
- Case 1 'all blink
- LightSeqGi.UpdateInterval = 4
- LightSeqGi.Play SeqBlinking, , 5, 100
- Case 2 'random
- LightSeqGi.UpdateInterval = 10
- LightSeqGi.Play SeqRandom, 5, , 1000
- Case 3 'upon
- LightSeqGi.UpdateInterval = 4
- LightSeqGi.Play SeqUpOn, 5, 1
- Case 4 ' left-right-left
- LightSeqGi.UpdateInterval = 5
- LightSeqGi.Play SeqLeftOn, 10, 1
- LightSeqGi.UpdateInterval = 5
- LightSeqGi.Play SeqRightOn, 10, 1
- End Select
- End Sub
- Sub LightEffect(n)
- Select Case n
- Case 0 ' all off
- LightSeqInserts.Play SeqAlloff
- Case 1 'all blink
- LightSeqInserts.UpdateInterval = 10
- LightSeqInserts.Play SeqBlinking, , 10, 10
- Case 2 'random
- LightSeqInserts.UpdateInterval = 10
- LightSeqInserts.Play SeqRandom, 50, , 1000
- Case 3 'upon
- LightSeqInserts.UpdateInterval = 4
- LightSeqInserts.Play SeqUpOn, 10, 1
- Case 4 ' left-right-left
- LightSeqInserts.UpdateInterval = 5
- LightSeqInserts.Play SeqLeftOn, 10, 1
- LightSeqInserts.UpdateInterval = 5
- LightSeqInserts.Play SeqRightOn, 10, 1
- End Select
- End Sub
- ' Flasher Effects using lights
- Dim FEStep, FEffect
- FEStep = 0
- FEffect = 0
- Sub FlashEffect(n)
- Dim ii
- Select case n
- Case 0 ' all off
- LightSeqFlasher.Play SeqAlloff
- Case 1 'all blink
- LightSeqFlasher.UpdateInterval = 10
- LightSeqFlasher.Play SeqBlinking, , 10, 10
- Case 2 'random
- LightSeqFlasher.UpdateInterval = 10
- LightSeqFlasher.Play SeqRandom, 50, , 1000
- Case 3 'upon
- LightSeqFlasher.UpdateInterval = 4
- LightSeqFlasher.Play SeqUpOn, 10, 1
- Case 4 ' left-right-left
- LightSeqFlasher.UpdateInterval = 5
- LightSeqFlasher.Play SeqLeftOn, 10, 1
- LightSeqFlasher.UpdateInterval = 5
- LightSeqFlasher.Play SeqRightOn, 10, 1
- End Select
- End Sub
- Sub GameTimer_Timer()
- RollingUpdate
- 'BallShadowUpdate
- If Lame <= 0 Then
- LameAnimTimerOff.enabled = 0
- Lame = 0
- End If
- If Lame >= 45 Then
- LameAnimTimer.enabled = 0
- LameAnimTimerS.enabled = 1
- vpmtimer.addtimer 700, "LameAnimTimerOff.enabled = 1 '"
- vpmtimer.addtimer 750, "LameAnimTimerOffS '"
- End If
- If ActarusA = True And ActarusY >= 345 Then ActarusY = 0: ActarusA = False: ActarusMoveA.enabled = 0
- If ActarusB = True And ActarusY >= 235 Then ActarusY = 0: ActarusB = False: ActarusMoveB.enabled = 0
- If ActarusC = True And ActarusY >= 427 Then ActarusY = 0: ActarusC = False: ActarusMoveC.enabled = 0
- if GolgothRotateD >= 2000 Then
- GolgothRotateTimer.enabled = 0
- GolgothRotateD = 0
- End If
- 'Boomeran
- If boomerD <= 0 Then
- TimerboomerOff.enabled = 0
- boomerD = 0
- End If
- If boomerD >= 400 Then
- Timerboomer.enabled = 0
- vpmtimer.addtimer 200, "TimerboomerOff.enabled = 1 '"
- End If
- 'BrazosL
- If BrazosLD <= 1 Then
- BrazosLOff.enabled = 0
- BrazosLD = 0
- maglio2.Y = 1548
- maglio2.X = 136
- maglio2.Z = 107
- End If
- If BrazosLD >= 250 Then
- BrazosL.enabled = 0
- BrazosLOff.enabled = 1
- End If
- 'BrazosR
- If BrazosRD <= 1 Then
- BrazosROff.enabled = 0
- BrazosRD = 0
- maglio1.X = 807
- maglio1.Y = 1581
- maglio1.Z = 107
- End If
- If BrazosRD >= 300 Then
- BrazosR.enabled = 0
- BrazosROff.enabled = 1
- End If
- If A6.state = 0 Then
- A6P.image = "plasticYellow"
- End If
- If A6.state = 1 Then
- A6P.image = "PlasticWhite"
- End If
- If A7.state = 0 Then
- A7P.image = "plasticYellow"
- End If
- If A7.state = 1 Then
- A7P.image = "PlasticWhite"
- End If
- If A8.state = 0 Then
- A8P.image = "plasticYellow"
- End If
- If A8.state = 1 Then
- A8P.image = "PlasticWhite"
- End If
- End Sub
- ' *********************************************************************
- ' Supporting Ball & Sound Functions
- ' *********************************************************************
- Function Vol(ball) ' Calculates the Volume of the sound based on the ball speed
- Vol = Csng(BallVel(ball) ^2 / 1500)
- End Function
- Function Pan(ball) ' Calculates the pan for a ball based on the X position on the table. "table1" is the name of the table
- Dim tmp
- tmp = ball.x * 2 / table1.width-1
- If tmp> 0 Then
- Pan = Csng(tmp ^10)
- Else
- Pan = Csng(-((- tmp) ^10) )
- End If
- End Function
- Function Pitch(ball) ' Calculates the pitch of the sound based on the ball speed
- Pitch = BallVel(ball) * 20
- End Function
- Function BallVel(ball) 'Calculates the ball speed
- BallVel = INT(SQR((ball.VelX ^2) + (ball.VelY ^2) ) )
- End Function
- '*****************************************
- ' JP's VP10 Rolling Sounds
- '*****************************************
- Const tnob = 20 ' total number of balls
- Const lob = 0 'number of locked balls
- ReDim rolling(tnob)
- InitRolling
- Sub InitRolling
- Dim i
- For i = 0 to tnob
- rolling(i) = False
- Next
- End Sub
- Sub RollingUpdate()
- Dim BOT, b, ballpitch
- BOT = GetBalls
- ' stop the sound of deleted balls
- For b = UBound(BOT) + 1 to tnob
- rolling(b) = False
- StopSound("fx_ballrolling" & b)
- Next
- ' exit the sub if no balls on the table
- If UBound(BOT) = -1 Then Exit Sub 'there no extra balls on this table
- ' play the rolling sound for each ball
- For b = lob to UBound(BOT)
- If BallVel(BOT(b) )> 1 Then
- If BOT(b).z <30 Then
- ballpitch = Pitch(BOT(b) )
- Else
- ballpitch = Pitch(BOT(b) ) * 50
- End If
- rolling(b) = True
- PlaySound("fx_ballrolling" & b), -1, Vol(BOT(b) ), Pan(BOT(b) ), 0, ballpitch, 1, 0
- Else
- If rolling(b) = True Then
- StopSound("fx_ballrolling" & b)
- rolling(b) = False
- End If
- End If
- Next
- End Sub
- '**********************
- ' Ball Collision Sound
- '**********************
- Sub OnBallBallCollision(ball1, ball2, velocity)
- PlaySound("fx_collide"), 0, Csng(velocity) ^2 / 2000, Pan(ball1), 0, Pitch(ball1), 0, 0
- End Sub
- '******************************
- ' Diverse Collection Hit Sounds
- '******************************
- Sub aMetals_Hit(idx):PlaySound "fx_MetalHit", 0, Vol(ActiveBall), pan(ActiveBall), 0, Pitch(ActiveBall), 0, 0:End Sub
- Sub aRubber_Pins_Hit(idx):PlaySound "fx_postrubber", 0, Vol(ActiveBall), pan(ActiveBall), 0, Pitch(ActiveBall), 0, 0:End Sub
- Sub aPlastics_Hit(idx):PlaySound "fx_PlasticHit", 0, Vol(ActiveBall), pan(ActiveBall), 0, Pitch(ActiveBall), 0, 0:End Sub
- Sub aGates_Hit(idx):PlaySound "fx_Gate", 0, Vol(ActiveBall), pan(ActiveBall), 0, Pitch(ActiveBall), 0, 0:End Sub
- Sub aWoods_Hit(idx):PlaySound "fx_Woodhit", 0, Vol(ActiveBall), pan(ActiveBall), 0, Pitch(ActiveBall), 0, 0:End Sub
- Sub aRubber_Bands_Hit(idx):PlaySound "fx_rubber_band", 0, Vol(ActiveBall), pan(ActiveBall), 0, Pitch(ActiveBall), 0, 0:End Sub
- Sub aRubber_Posts_Hit(idx):PlaySound "fx_rubber", 0, Vol(ActiveBall), pan(ActiveBall), 0, Pitch(ActiveBall), 0, 0:End Sub
- ' Some quotes from the 2 first movies
- Sub PlayQuote_timer() 'one quote each 2 minutes
- Dim Quote
- Quote = "gb_quote" & INT(RND * 56) + 1
- PlaySound Quote
- End Sub
- ' Ramp Soundss
- Sub RHelp_Hit()
- PlaySound "fx_ballrampdrop", 0, 1, pan(ActiveBall)
- End Sub
- Sub RHelp2_Hit()
- StopSound "fx_metalrolling"
- PlaySound "fx_ballrampdrop", 0, 1, pan(ActiveBall)
- End Sub
- Sub LHelp1_Hit()
- StopSound "fx_metalrolling"
- PlaySound "fx_ballrampdrop", 0, 1, pan(ActiveBall)
- End Sub
- Sub Trigger212121_hit()
- StopSound "fx_metalrolling"
- PlaySound "fx_metalrolling", 0, 1, pan(ActiveBall)
- End Sub
- ' *********************************************************************
- ' User Defined Script Events
- ' *********************************************************************
- ' Initialise the Table for a new Game
- '
- Sub ResetForNewGame()
- Dim i
- 'Animaciones
- ActarusP.RotY = ActarusP.RotY = -45
- ActarusTimer360.enabled = 0
- AlabardaAnimOff
- diskoAnim
- DMDSmallSequence 0, 0
- bGameInPLay = True
- PlaySong "GamePlay"
- 'resets the score display, and turn off attrack mode
- StopAttractMode
- GiOn
- If B2SOn Then Controller.B2SSetData 1,1
- TotalGamesPlayed = TotalGamesPlayed + 1
- CurrentPlayer = 1
- PlayersPlayingGame = 1
- bOnTheFirstBall = True
- For i = 1 To MaxPlayers
- Score(i) = 0
- BonusPoints(i) = 0
- BonusHeldPoints(i) = 0
- BonusMultiplier(i) = 1
- BallsRemaining(i) = BallsPerGame
- ExtraBallsAwards(i) = 0
- Next
- ' initialise any other flags
- Tilt = 0
- ComboM = 0
- ' initialise Game variables
- Game_Init()
- ' you may wish to start some music, play a sound, do whatever at this point
- vpmtimer.addtimer 3500, "FirstBall '"
- End Sub
- ' This is used to delay the start of a game to allow any attract sequence to
- ' complete. When it expires it creates a ball for the player to start playing with
- Sub FirstBall
- ' reset the table for a new ball
- ResetForNewPlayerBall()
- ' create a new ball in the shooters lane
- CreateNewBall()
- 'MiniDMD
- vpmtimer.addtimer 1500, "IntroSmallDMD '"
- End Sub
- ' (Re-)Initialise the Table for a new ball (either a new ball after the player has
- ' lost one or we have moved onto the next player (if multiple are playing))
- Sub ResetForNewPlayerBall()
- ' make sure the correct display is upto date
- AddScore 0
- ' set the current players bonus multiplier back down to 1X
- SetBonusMultiplier 1
- ' reset any drop targets, lights, game modes etc..
- 'LightShootAgain.State = 0
- ' Bonus = 0
- bExtraBallWonThisBall = False
- ResetNewBallLights()
- 'This is a new ball, so activate the ballsaver
- bBallSaverReady = True
- 'and the skillshot
- 'bSkillShotReady = True 'no skillshot in this game
- 'Change the music ?
- 'Reset any table specific
- ' TargetBonus = 0
- ' BumperBonus = 0
- ' PokemonBonus = 0
- ' HoleBonus = 0
- ' EggBonus = 0
- ' Bumperlanes reset:
- FlashForMs bulb17, 100, 10, 0 'off
- FlashForMs bulb25, 100, 10, 0 'off
- End Sub
- ' Create a new ball on the Playfield
- Sub CreateNewBall()
- ' create a ball in the plunger lane kicker.
- BallRelease.CreateSizedball BallSize / 2
- ' UpdateBallImage
- ' There is a (or another) ball on the playfield
- BallsOnPlayfield = BallsOnPlayfield + 1
- ' kick it out..
- PlaySound SoundFXDOF("fx_Ballrel", 114, DOFPulse, DOFContactors), 0, 1, 0.1, 0.1
- BallRelease.Kick 90, 4
- ' if there is 2 or more balls then set the multibal flag (remember to check for locked balls and other balls used for animations)
- ' set the bAutoPlunger flag to kick the ball in play automatically
- If BallsOnPlayfield > 1 Then
- bMultiBallMode = True
- DOF 127, DOFOn 'Beacon ON
- bAutoPlunger = True
- 'ChangeSong
- ' PlaySong "Multiball"
- End If
- End Sub
- ' Add extra balls to the table with autoplunger
- ' Use it as AddMultiball 4 to add 4 extra balls to the table
- Sub AddMultiball(nballs)
- mBalls2Eject = mBalls2Eject + nballs
- CreateMultiballTimer.Enabled = True
- End Sub
- ' Eject the ball after the delay, AddMultiballDelay
- Sub CreateMultiballTimer_Timer()
- ' wait if there is a ball in the plunger lane
- If bBallInPlungerLane Then
- Exit Sub
- Else
- CreateNewBall()
- mBalls2Eject = mBalls2Eject -1
- If mBalls2Eject = 0 Then 'if there are no more balls to eject then stop the timer
- Me.Enabled = False
- End If
- End If
- End Sub
- ' The Player has lost his ball (there are no more balls on the playfield).
- ' Handle any bonus points awarded
- '
- Sub EndOfBall()
- Dim BonusDelayTime
- ' the first ball has been lost. From this point on no new players can join in
- bOnTheFirstBall = False
- ' only process any of this if the table is not tilted. (the tilt recovery
- ' mechanism will handle any extra balls or end of game)
- If(Tilted = False) Then
- Dim AwardPoints, TotalBonus
- AwardPoints = 0:TotalBonus = 0
- DMDBlink "black.jpg", " ", " LOST BALL ", 100, 20
- LightEffect 1
- FlashEffect 1
- ' add in any bonus points (multipled by the bonus multiplier)
- AwardPoints = BonusPoints(CurrentPlayer) * BonusMultiplier(CurrentPlayer)
- AddScore AwardPoints
- debug.print "Bonus Points = " & AwardPoints
- 'DMD_DisplaySceneEx "DMD1.png", "AWARD: " & BonusPoints(CurrentPlayer), 15, 4, "Bonus", -1, -1, UltraDMD_Animation_None, 1000, UltraDMD_Animation_None
- 'DMD_DisplaySceneEx "DMD1.png", "", 15, 4, "", -1, -1, UltraDMD_Animation_None, 5, UltraDMD_Animation_None
- 'this table uses several bonus
- ' DMD CenterLine(0, FormatScore(TotalBonus) ), CenterLine(1, "TOTAL BONUS " & " X" & BonusMultiplier(CurrentPlayer) ), 0, eBlinkFast, eNone, eNone, 1000, True, ""
- ' TotalBonus = TotalBonus * BonusMultiplier(CurrentPlayer)
- ' add a bit of a delay to allow for the bonus points to be shown & added up
- BonusDelayTime = 3000
- vpmtimer.addtimer BonusDelayTime, "Addscore TotalBonus '"
- Else
- 'no bonus to count so move quickly to the next stage
- BonusDelayTime = 100
- End If
- ' start the end of ball timer which allows you to add a delay at this point
- vpmtimer.addtimer BonusDelayTime, "EndOfBall2 '"
- End Sub
- ' The Timer which delays the machine to allow any bonus points to be added up
- ' has expired. Check to see if there are any extra balls for this player.
- ' if not, then check to see if this was the last ball (of the currentplayer)
- '
- Sub EndOfBall2()
- ' if were tilted, reset the internal tilted flag (this will also
- ' set TiltWarnings back to zero) which is useful if we are changing player LOL
- Tilted = False
- Tilt = 0
- DisableTable False 'enable again bumpers and slingshots
- ' has the player won an extra-ball ? (might be multiple outstanding)
- If(ExtraBallsAwards(CurrentPlayer) <> 0) Then
- debug.print "Extra Ball"
- DMDBlink "black.jpg", " ", "Extra Ball", 100, 20
- ' yep got to give it to them
- ExtraBallsAwards(CurrentPlayer) = ExtraBallsAwards(CurrentPlayer) - 1
- ' if no more EB's then turn off any shoot again light
- If(ExtraBallsAwards(CurrentPlayer) = 0) Then
- FlashForMs ShootAgainLightF, 100, 10, 0 'off
- ShootAgainLight.State = 0
- playsound "Shootagain"
- End If
- ' You may wish to do a bit of a song AND dance at this point
- ' Create a new ball in the shooters lane
- CreateNewBall()
- Else ' no extra balls
- BallsRemaining(CurrentPlayer) = BallsRemaining(CurrentPlayer) - 1
- ' was that the last ball ?
- If(BallsRemaining(CurrentPlayer) <= 0) Then
- debug.print "No More Balls, High Score Entry"
- If B2SOn Then Controller.B2SSetData 1,0
- ' Submit the currentplayers score to the High Score system
- CheckHighScore()
- ' you may wish to play some music at this point
- Else
- ' not the last ball (for that player)
- ' if multiple players are playing then move onto the next one
- EndOfBallComplete()
- End If
- End If
- End Sub
- ' This function is called when the end of bonus display
- ' (or high score entry finished) AND it either end the game or
- ' move onto the next player (or the next ball of the same player)
- '
- Sub EndOfBallComplete()
- Dim NextPlayer
- 'debug.print "EndOfBall - Complete"
- ' are there multiple players playing this game ?
- If(PlayersPlayingGame> 1) Then
- ' then move to the next player
- NextPlayer = CurrentPlayer + 1
- ' are we going from the last player back to the first
- ' (ie say from player 4 back to player 1)
- If(NextPlayer> PlayersPlayingGame) Then
- NextPlayer = 1
- End If
- Else
- NextPlayer = CurrentPlayer
- End If
- 'debug.print "Next Player = " & NextPlayer
- ' is it the end of the game ? (all balls been lost for all players)
- If((BallsRemaining(CurrentPlayer) <= 0) AND(BallsRemaining(NextPlayer) <= 0) ) Then
- ' you may wish to do some sort of Point Match free game award here
- ' generally only done when not in free play mode
- ' set the machine into game over mode
- EndOfGame()
- BHit = 0
- ' you may wish to put a Game Over message on the desktop/backglass
- Else
- ' set the next player
- CurrentPlayer = NextPlayer
- ' make sure the correct display is up to date
- AddScore 0
- ' reset the playfield for the new player (or new ball)
- ResetForNewPlayerBall()
- ' AND create a new ball
- CreateNewBall()
- ' play a sound if more than 1 player
- If PlayersPlayingGame> 1 Then
- PlaySound "vo_player" &CurrentPlayer
- DMD "black.jpg", " ", "PLAYER " &CurrentPlayer, 800
- End If
- End If
- End Sub
- ' This function is called at the End of the Game, it should reset all
- ' Drop targets, AND eject any 'held' balls, start any attract sequences etc..
- Sub EndOfGame()
- 'debug.print "End Of Game"
- bGameInPLay = False
- ' just ended your game then play the end of game tune
- If NOT bJustStarted Then
- 'PlaySong "m_end"
- End If
- BHit = 0
- bJustStarted = False
- ' ensure that the flippers are down
- SolLFlipper 0
- SolRFlipper 0
- ' terminate all Mode - eject locked balls
- ' most of the Mode/timers terminate at the end of the ball
- 'PlayQuote.Enabled = 0
- ' show game over on the DMD
- StopSound "mu_GamePlay"
- DMD "black.jpg", " ", "GAME OVER", 1500
- ' set any lights for the attract mode
- GiOff
- StartAttractMode
- ActarusTimer360.enabled = 1
- diskoAnimOff
- ' you may wish to light any Game Over Light you may have
- End Sub
- Function Balls
- Dim tmp
- tmp = BallsPerGame - BallsRemaining(CurrentPlayer) + 1
- If tmp > BallsPerGame Then
- Balls = BallsPerGame
- Else
- Balls = tmp
- End If
- End Function
- ' *********************************************************************
- ' Drain / Plunger Functions
- ' *********************************************************************
- ' lost a ball ;-( check to see how many balls are on the playfield.
- ' if only one then decrement the remaining count AND test for End of game
- ' if more than 1 ball (multi-ball) then kill of the ball but don't create
- ' a new one
- '
- Sub Drain_Hit()
- startB2S(5)
- 'GolgothRotateTimer.enabled = 0
- if ballsonplayfield = 2 and ShootAgainLight.state = 0 then
- 'DMDframe.set true, 1
- J1.state = 0
- J2.state = 0
- J3.state = 0
- J4.state = 0
- StopSound Song:Song = ""
- PlaySong "mu_GamePlay"
- 'playmusic 1, "GAMEPLAY2songs", true
- 'effectmusic 1, fadeoutandpause, 0, 10
- 'musicin.set true, 100
- 'duringMULTIBALL.stopplay
- ExtraBall.state = 2
- 'hologram.frame 211
- end if
- if ballsonplayfield = 2 and ShootAgainLight.state = 1 then
- 'DMDframe.set true, 1
- J1.state = 0
- J2.state = 0
- J3.state = 0
- J4.state = 0
- StopSound Song:Song = ""
- PlaySong "mu_GamePlay"
- 'playmusic 1, "GAMEPLAY2songs", true
- 'effectmusic 1, fadeoutandpause, 0, 10
- 'musicin.set true, 100
- 'duringMULTIBALL.stopplay
- ExtraBall.state = 2
- 'hologram.frame 211
- end if
- ' Destroy the ball
- Drain.DestroyBall
- BallsOnPlayfield = BallsOnPlayfield - 1
- ' pretend to knock the ball into the ball storage mech
- PlaySound "fx_drain"
- ' if there is a game in progress AND it is not Tilted
- If(bGameInPLay = True) AND(Tilted = False) Then
- ' is the ball saver active,
- If(bBallSaverActive = True) Then
- ' yep, create a new ball in the shooters lane
- ' we use the Addmultiball in case the multiballs are being ejected
- AddMultiball 1
- ' we kick the ball with the autoplunger
- bAutoPlunger = True
- ' you may wish to put something on a display or play a sound at this point
- ' DMD_DisplaySceneEx "DMD1.png", "", 14, 2, "BALL SAVED", -1, -1, UltraDMD_Animation_ScrollOnUp, 1200, UltraDMD_Animation_ScrollOffDown
- GiEffect 2
- FlashEffect 2
- DMDBlink "black.jpg", " ", " BALL SAVED ", 150, 20
- Else
- ' cancel any multiball if on last ball (ie. lost all other balls)
- If(BallsOnPlayfield = 1) Then
- ' AND in a multi-ball??
- If(bMultiBallMode = True) then
- ' not in multiball mode any more
- bMultiBallMode = False
- DOF 127, DOFOff 'DOF - Beacon - OFF
- ' ChangeGi "white"
- ' you may wish to change any music over at this point and
- ' turn off any multiball specific lights
- ' ResetJackpotLights
- 'ChangeSong
- ' PlaySong "GamePlay"
- End If
- End If
- ' was that the last ball on the playfield
- If(BallsOnPlayfield = 0) Then
- ' handle the end of ball (change player, high score entry etc..)
- EndOfBall()
- ' End Modes and timers
- ' If bCatchemMode Then StopCatchem_Timer
- ' If bcoinfrenzy Then StopCoinFrenzyTimer_Timer
- ' If bPikachuTargetMode Then PikachuTargetTimer_Timer
- ' If bCharizardMode Then StopCharizardTimer_Timer
- ' If bRampBonus Then StopRampBonusTimer_Timer
- ' If bLoopBonus Then StopLoopBonusTimer_Timer
- if kickbacklit.state = 0 Then
- kickbacktargets()
- End If
- End If
- End If
- End If
- End Sub
- ' The Ball has rolled out of the Plunger Lane and it is pressing down the trigger in the shooters lane
- ' Check to see if a ball saver mechanism is needed and if so fire it up.
- Sub ballrelease_UnHit
- DMD "BallRelease.gif", "", "", 1000
- End Sub
- Sub swPlungerRest_Hit()
- startB2S(6)
- 'debug.print "ball in plunger lane"
- ' some sound according to the ball position
- PlaySound "fx_sensor", 0, 1, 0.15, 0.25
- bBallInPlungerLane = True
- ' turn on Launch light is there is one
- LaunchLight.State = 2
- 'be sure to update the Scoreboard after the animations, if any
- UltraDMDScoreTimer.Enabled = 1
- ' kick the ball in play if the bAutoPlunger flag is on
- If bAutoPlunger Then
- 'debug.print "autofire the ball"
- PlungerIM.AutoFire
- DOF 114, DOFPulse
- DOF 115, DOFPulse
- DOF 318, DOFPulse 'DOF MX - Autoplunger - Launch Ball
- bAutoPlunger = False
- End If
- DOF 141, DOFOn
- DOF 317, DOFOn 'DOF MX - Ball is ready to Launch - ON
- ' if there is a need for a ball saver, then start off a timer
- ' only start if it is ready, and it is currently not running, else it will reset the time period
- If(bBallSaverReady = True) AND(BallSaverTime <> 0) And(bBallSaverActive = False) Then
- EnableBallSaver BallSaverTime
- End If
- 'Start the Selection of the skillshot if ready
- If bSkillShotReady Then
- swPlungerRest.TimerEnabled = 1 ' this is a new ball, so show the launch ball if inactive for 6 seconds
- UpdateSkillshot()
- End If
- ' remember last trigger hit by the ball.
- LastSwitchHit = "swPlungerRest"
- End Sub
- ' The ball is released from the plunger turn off some flags and check for skillshot
- Sub swPlungerRest_UnHit()
- bBallInPlungerLane = False
- DMD "PlungerLane.gif", "", "", 2500
- swPlungerRest.TimerEnabled = 0 'stop the launch ball timer if active
- If bSkillShotReady Then
- ResetSkillShotTimer.Enabled = 1
- End If
- If NOT bMultiballMode Then
- 'PlaySong "mu_GamePlay"
- End If
- LaserKickP.TransY = 100
- Playsound "bumper_retro"
- End Sub
- ' swPlungerRest timer to show the "launch ball" if the player has not shot the ball during 6 seconds
- Sub swPlungerRest_Timer
- DMD "black.jpg", "Player "&CurrentPlayer, "let's play", 3000
- swPlungerRest.TimerEnabled = 0
- End Sub
- Sub EnableBallSaver(seconds)
- 'debug.print "Ballsaver started"
- ' set our game flag
- bBallSaverActive = True
- bBallSaverReady = False
- ' start the timer
- BallSaverTimerExpired.Interval = 1000 * seconds
- BallSaverTimerExpired.Enabled = True
- BallSaverSpeedUpTimer.Interval = 1000 * seconds -(1000 * seconds) / 3
- BallSaverSpeedUpTimer.Enabled = True
- ' if you have a ball saver light you might want to turn it on at this point (or make it flash)
- ShootAgainLight.BlinkInterval = 160
- SetLightColor ShootAgainLight, green, 2
- End Sub
- ' The ball saver timer has expired. Turn it off AND reset the game flag
- '
- Sub BallSaverTimerExpired_Timer()
- 'debug.print "Ballsaver ended"
- BallSaverTimerExpired.Enabled = False
- ' clear the flag
- bBallSaverActive = False
- ' if you have a ball saver light then turn it off at this point
- ShootAgainLight.State = 0
- End Sub
- Sub BallSaverSpeedUpTimer_Timer()
- 'debug.print "Ballsaver Speed Up Light"
- BallSaverSpeedUpTimer.Enabled = False
- ' Speed up the blinking
- ShootAgainLight.BlinkInterval = 80
- ShootAgainLight.State = 2
- End Sub
- ' *********************************************************************
- ' Supporting Score Functions
- ' *********************************************************************
- ' Add points to the score AND update the score board
- '
- Sub AddScore(points)
- If(Tilted = False) Then
- ' add the points to the current players score variable
- Score(CurrentPlayer) = Score(CurrentPlayer) + points' * BallType
- ' update the score displays
- DMDScore
- End if
- ' you may wish to check to see if the player has gotten a replay
- End Sub
- ' Add bonus to the bonuspoints AND update the score board
- '
- Sub AddBonus(points)
- If(Tilted = False) Then
- ' add the bonus to the current players bonus variable
- BonusPoints(CurrentPlayer) = BonusPoints(CurrentPlayer) + points
- ' update the score displays
- DMDScore
- End if
- ' you may wish to check to see if the player has gotten a replay
- End Sub
- Sub AddCoin(n)
- If(Tilted = False) Then
- ' add the coins to the current players coin variable
- Coins(CurrentPlayer) = Coins(CurrentPlayer) + n
- ' update the score displays
- DMDScore
- End if
- ' check if there is enough coins to enable the update ball
- If Coins(CurrentPlayer) > 249 Then
- BallUpdateLight.State = 2
- Else
- BallUpdateLight.State = 0
- End If
- End Sub
- ' Add some points to the current Jackpot.
- '
- Sub AddJackpot(points)
- ' Jackpots only generally increment in multiball mode AND not tilted
- ' but this doesn't have to be the case
- If(Tilted = False) Then
- If(bMultiBallMode = True) Then
- Jackpot = Jackpot + points
- ' you may wish to limit the jackpot to a upper limit, ie..
- ' If (Jackpot >= 6000) Then
- ' Jackpot = 6000
- ' End if
- End if
- End if
- End Sub
- ' Will increment the Bonus Multiplier to the next level
- '
- Sub IncrementBonusMultiplier()
- Dim NewBonusLevel
- ' if not at the maximum bonus level
- if(BonusMultiplier(CurrentPlayer) < MaxMultiplier) then
- ' then set it the next next one AND set the lights
- NewBonusLevel = BonusMultiplier(CurrentPlayer) + 1
- SetBonusMultiplier(NewBonusLevel)
- End if
- End Sub
- ' Set the Bonus Multiplier to the specified level AND set any lights accordingly
- '
- Sub SetBonusMultiplier(Level)
- ' Set the multiplier to the specified level
- BonusMultiplier(CurrentPlayer) = Level
- ' If the multiplier is 1 then turn off all the bonus lights
- If(BonusMultiplier(CurrentPlayer) = 1) Then
- ' LightBonus2x.State = 0
- ' LightBonus3x.State = 0
- ' LightBigBonus.State = 0
- Else
- ' there is a bonus, turn on all the lights upto the current level
- If(BonusMultiplier(CurrentPlayer) >= 2) Then
- If(BonusMultiplier(CurrentPlayer) >= 2) Then
- ' LightBonus2x.state = 1
- End If
- If(BonusMultiplier(CurrentPlayer) >= 3) Then
- ' LightBonus3x.state = 1
- End If
- If(BonusMultiplier(CurrentPlayer) >= 4) Then
- ' LightBigBonus.state = 1
- End If
- End If
- ' etc..
- End If
- End Sub
- Sub IncrementBonus(Amount)
- Dim Value
- AddBonus Amount * 1000
- Bonus = Bonus + Amount
- End Sub
- Sub AwardSpecial()
- DMDBlink "black.jpg", " ", "EXTRA GAME WON", 100, 10
- Credits = Credits + 1
- GiEffect 1
- LightEffect 1
- End Sub
- '*****************************
- ' Load / Save / Highscore
- '*****************************
- Sub Loadhs
- Dim x
- x = LoadValue(TableName, "HighScore1")
- If(x <> "") Then HighScore(0) = CDbl(x) Else HighScore(0) = 100000 End If
- x = LoadValue(TableName, "HighScore1Name")
- If(x <> "") Then HighScoreName(0) = x Else HighScoreName(0) = "AAA" End If
- x = LoadValue(TableName, "HighScore2")
- If(x <> "") then HighScore(1) = CDbl(x) Else HighScore(1) = 100000 End If
- x = LoadValue(TableName, "HighScore2Name")
- If(x <> "") then HighScoreName(1) = x Else HighScoreName(1) = "BBB" End If
- x = LoadValue(TableName, "HighScore3")
- If(x <> "") then HighScore(2) = CDbl(x) Else HighScore(2) = 100000 End If
- x = LoadValue(TableName, "HighScore3Name")
- If(x <> "") then HighScoreName(2) = x Else HighScoreName(2) = "CCC" End If
- x = LoadValue(TableName, "HighScore4")
- If(x <> "") then HighScore(3) = CDbl(x) Else HighScore(3) = 100000 End If
- x = LoadValue(TableName, "HighScore4Name")
- If(x <> "") then HighScoreName(3) = x Else HighScoreName(3) = "DDD" End If
- x = LoadValue(TableName, "Credits")
- If(x <> "") then Credits = CInt(x) Else Credits = 0 End If
- 'x = LoadValue(TableName, "Jackpot")
- 'If(x <> "") then Jackpot = CDbl(x) Else Jackpot = 200000 End If
- x = LoadValue(TableName, "TotalGamesPlayed")
- If(x <> "") then TotalGamesPlayed = CInt(x) Else TotalGamesPlayed = 0 End If
- End Sub
- Sub Savehs
- SaveValue TableName, "HighScore1", HighScore(0)
- SaveValue TableName, "HighScore1Name", HighScoreName(0)
- SaveValue TableName, "HighScore2", HighScore(1)
- SaveValue TableName, "HighScore2Name", HighScoreName(1)
- SaveValue TableName, "HighScore3", HighScore(2)
- SaveValue TableName, "HighScore3Name", HighScoreName(2)
- SaveValue TableName, "HighScore4", HighScore(3)
- SaveValue TableName, "HighScore4Name", HighScoreName(3)
- SaveValue TableName, "Credits", Credits
- 'SaveValue TableName, "Jackpot", Jackpot
- SaveValue TableName, "TotalGamesPlayed", TotalGamesPlayed
- End Sub
- ' ***********************************************************
- ' High Score Initals Entry Functions - based on Black's code
- ' ***********************************************************
- Dim hsbModeActive
- Dim hsEnteredName
- Dim hsEnteredDigits(3)
- Dim hsCurrentDigit
- Dim hsValidLetters
- Dim hsCurrentLetter
- Dim hsLetterFlash
- Sub CheckHighscore()
- Dim tmp
- tmp = Score(1)
- If Score(2)> tmp Then tmp = Score(2)
- If Score(3)> tmp Then tmp = Score(3)
- If Score(4)> tmp Then tmp = Score(4)
- If tmp> HighScore(1) Then 'add 1 credit for beating the highscore
- AwardSpecial
- End If
- If tmp> HighScore(3) Then
- vpmtimer.addtimer 2000, "PlaySound ""goldrake voce"" '"
- HighScore(3) = tmp
- 'enter player's name
- HighScoreEntryInit()
- DOF 403, DOFPulse 'DOF MX - Hi Score
- Else
- EndOfBallComplete()
- End If
- End Sub
- Sub HighScoreEntryInit()
- hsbModeActive = True
- PlaySound "fx_knocker"
- hsLetterFlash = 0
- hsEnteredDigits(0) = "A"
- hsEnteredDigits(1) = "A"
- hsEnteredDigits(2) = "A"
- hsCurrentDigit = 0
- hsValidLetters = "ABCDEFGHIJKLMNOPQRSTUVWXYZ<+-0123456789" ' < is used to delete the last letter
- hsCurrentLetter = 1
- DMDFlush
- DMDId "hsc", "Enter.png", "YOUR NAME:", " ", 999999
- HighScoreDisplayName()
- End Sub
- Sub EnterHighScoreKey(keycode)
- If keycode = LeftFlipperKey Then
- Playsound "fx_Previous"
- hsCurrentLetter = hsCurrentLetter - 1
- if(hsCurrentLetter = 0) then
- hsCurrentLetter = len(hsValidLetters)
- end if
- HighScoreDisplayName()
- End If
- If keycode = RightFlipperKey Then
- Playsound "fx_Next"
- hsCurrentLetter = hsCurrentLetter + 1
- if(hsCurrentLetter> len(hsValidLetters) ) then
- hsCurrentLetter = 1
- end if
- HighScoreDisplayName()
- End If
- If keycode = StartGameKey OR keycode = PlungerKey Then
- if(mid(hsValidLetters, hsCurrentLetter, 1) <> "<") then
- playsound "fx_Enter"
- hsEnteredDigits(hsCurrentDigit) = mid(hsValidLetters, hsCurrentLetter, 1)
- hsCurrentDigit = hsCurrentDigit + 1
- if(hsCurrentDigit = 3) then
- HighScoreCommitName()
- else
- HighScoreDisplayName()
- end if
- else
- playsound "fx_Esc"
- hsEnteredDigits(hsCurrentDigit) = " "
- if(hsCurrentDigit> 0) then
- hsCurrentDigit = hsCurrentDigit - 1
- end if
- HighScoreDisplayName()
- end if
- end if
- End Sub
- Sub HighScoreDisplayName()
- Dim i, TempStr
- TempStr = " >"
- if(hsCurrentDigit> 0) then TempStr = TempStr & hsEnteredDigits(0)
- if(hsCurrentDigit> 1) then TempStr = TempStr & hsEnteredDigits(1)
- if(hsCurrentDigit> 2) then TempStr = TempStr & hsEnteredDigits(2)
- if(hsCurrentDigit <> 3) then
- if(hsLetterFlash <> 0) then
- TempStr = TempStr & "_"
- else
- TempStr = TempStr & mid(hsValidLetters, hsCurrentLetter, 1)
- end if
- end if
- if(hsCurrentDigit <1) then TempStr = TempStr & hsEnteredDigits(1)
- if(hsCurrentDigit <2) then TempStr = TempStr & hsEnteredDigits(2)
- TempStr = TempStr & "< "
- DMDMod "hsc", "YOUR NAME:", Mid(TempStr, 2, 5), 999999
- End Sub
- Sub HighScoreCommitName()
- hsbModeActive = False
- 'PlaySong "m_end"
- hsEnteredName = hsEnteredDigits(0) & hsEnteredDigits(1) & hsEnteredDigits(2)
- if(hsEnteredName = " ") then
- hsEnteredName = "YOU"
- end if
- HighScoreName(3) = hsEnteredName
- SortHighscore
- DMDFlush
- EndOfBallComplete()
- End Sub
- Sub SortHighscore
- Dim tmp, tmp2, i, j
- For i = 0 to 3
- For j = 0 to 2
- If HighScore(j) <HighScore(j + 1) Then
- tmp = HighScore(j + 1)
- tmp2 = HighScoreName(j + 1)
- HighScore(j + 1) = HighScore(j)
- HighScoreName(j + 1) = HighScoreName(j)
- HighScore(j) = tmp
- HighScoreName(j) = tmp2
- End If
- Next
- Next
- End Sub
- '***********************************************************************************
- ' JPS DMD - very simple DMD routines using UltraDMD
- '***********************************************************************************
- Dim UltraDMD
- ' DMD using UltraDMD calls
- Sub DMD(background, toptext, bottomtext, duration)
- UltraDMD.DisplayScene00 background, toptext, 15, bottomtext, 15, 14, duration, 14
- UltraDMDScoreTimer.Enabled = 1 'to show the score after the animation/message
- End Sub
- Sub DMDBlink(background, toptext, bottomtext, duration, nblinks) 'blinks the lower text nblinks times
- Dim i
- For i = 1 to nblinks
- UltraDMD.DisplayScene00 background, toptext, 15, bottomtext, 15, 14, duration, 14
- Next
- UltraDMDScoreTimer.Enabled = 1 'to show the score after the animation/message
- End Sub
- Sub DMDScore
- If NOT UltraDMD.IsRendering Then
- UltraDMD.SetScoreboardBackgroundImage "DMD.jpg", 15, 15
- UltraDMD.DisplayScoreboard PlayersPlayingGame, CurrentPlayer, Score(1), Score(2), Score(3), Score(4), "Player " & CurrentPlayer, "Ball " & Balls
- Else
- UltraDMDScoreTimer.Enabled = 1
- End If
- End Sub
- Sub DMDScoreNow
- DMDFlush
- DMDScore
- End Sub
- Sub DMDFLush
- UltraDMDTimer.Enabled = 0
- UltraDMDScoreTimer.Enabled = 0
- UltraDMD.CancelRendering
- UltraDMD.Clear
- End Sub
- Sub DMDScrollCredits(background, text, duration)
- UltraDMD.ScrollingCredits background, text, 15, 14, duration, 14
- End Sub
- Sub DMDId(id, background, toptext, bottomtext, duration)
- UltraDMD.DisplayScene00ExwithID id, False, background, toptext, 15, 0, bottomtext, 15, 0, 14, duration, 14
- End Sub
- Sub DMDMod(id, toptext, bottomtext, duration)
- UltraDMD.ModifyScene00Ex id, toptext, bottomtext, duration
- End Sub
- Sub UltraDMDTimer_Timer() 'used for repeating the attrack mode and the instant info.
- If bInstantInfo Then
- InstantInfo
- ElseIf bAttractMode Then
- ShowTableInfo
- End If
- End Sub
- Sub UltraDMDScoreTimer_Timer()
- If NOT UltraDMD.IsRendering Then
- DMDScoreNow
- End If
- End Sub
- Sub DMD_Init
- Set UltraDMD = CreateObject("UltraDMD.DMDObject")
- If UltraDMD is Nothing Then
- MsgBox "No UltraDMD found. This table will NOT run without it."
- Exit Sub
- End If
- UltraDMD.Init
- If Not UltraDMD.GetMajorVersion = 1 Then
- MsgBox "Incompatible Version of UltraDMD found."
- Exit Sub
- End If
- If UltraDMD.GetMinorVersion <1 Then
- MsgBox "Incompatible Version of UltraDMD found. Please update to version 1.1 or newer."
- Exit Sub
- End If
- Dim fso:Set fso = CreateObject("Scripting.FileSystemObject")
- Dim curDir:curDir = fso.GetAbsolutePathName(".")
- Dim DirName
- DirName = curDir& "\" &TableName& ".UltraDMD"
- If Not fso.FolderExists(DirName) Then _
- Msgbox "UltraDMD userfiles directory '" & DirName & "' does not exist." & CHR(13) & "No graphic images will be displayed on the DMD"
- UltraDMD.SetProjectFolder DirName
- ' wait for the animation to end
- While UltraDMD.IsRendering = True
- WEnd
- ' Show ROM version number
- DMDBlink "black.jpg", " ", " ", 1000,2
- DMD "black.jpg", "Goldorak", "ROM VERS " &myVersion, 2000
- End Sub
- ' ********************************
- ' Table info & Attract Mode
- ' ********************************
- Sub ShowTableInfo
- Dim i
- 'info goes in a loop only stopped by the credits and the startkey
- If Score(1) Then
- DMD "black.jpg", "PLAYER 1", Score(1), 3000
- End If
- If Score(2) Then
- DMD "black.jpg", "PLAYER 2", Score(2), 3000
- End If
- If Score(3) Then
- DMD "black.jpg", "PLAYER 3", Score(3), 3000
- End If
- If Score(4) Then
- DMD "black.jpg", "PLAYER 4", Score(4), 3000
- End If
- 'coins or freeplay
- If bFreePlay Then
- DMD "black.jpg", " ", "FREE PLAY", 2500
- DMD "introCompleta3.wmv", "", "", 109500
- DMD "DMD.jpg", "", "", 2000
- Else
- If Credits> 0 Then
- DMD "black.jpg", " CREDITS " &credits, " PRESS START ", 2000
- DOF 140, DOFOn
- Else
- DMD "black.jpg", " CREDITS " &credits, " INSERT COIN ", 2000
- DOF 140, DOFOff
- End If
- DMD "introCompleta3.wmv", "", "", 109500
- DMD "HighScores.gif", "", "", 2500
- End If
- DMD "black.jpg", "HIGHSCORES", "1> " & HighScoreName(0) & " " & FormatNumber(HighScore(0), 0, , , -1), 3000
- DMD "black.jpg", "HIGHSCORES", "2> " & HighScoreName(1) & " " & FormatNumber(HighScore(1), 0, , , -1), 3000
- DMD "black.jpg", "HIGHSCORES", "3> " & HighScoreName(2) & " " & FormatNumber(HighScore(2), 0, , , -1), 3000
- DMD "black.jpg", "HIGHSCORES", "4> " & HighScoreName(3) & " " & FormatNumber(HighScore(3), 0, , , -1), 3000
- End Sub
- Sub StartAttractMode()
- DOF 323, DOFOn 'DOF MX - Attract Mode ON
- bAttractMode = True
- UltraDMDTimer.Enabled = 1
- StartLightSeq
- ShowTableInfo
- 'Animaciones
- ActarusTimer360.enabled = 1
- AlabardaAnim()
- 'Start SmallDMD
- vpmtimer.AddTimer 25000, "IntroSmallDMD '"
- End Sub
- Sub StopAttractMode()
- DOF 323, DOFOff 'DOF MX - Attract Mode Off
- bAttractMode = False
- DMDScoreNow
- LightSeqAttract.StopPlay
- LightSeqFlasher.StopPlay
- 'StopSong
- End Sub
- '********************************************************************************************
- ' Only for VPX 10.2 and higher.
- ' FlashForMs will blink light or a flasher for TotalPeriod(ms) at rate of BlinkPeriod(ms)
- ' When TotalPeriod done, light or flasher will be set to FinalState value where
- ' Final State values are: 0=Off, 1=On, 2=Return to previous State
- '********************************************************************************************
- Sub FlashForMs(MyLight, TotalPeriod, BlinkPeriod, FinalState) 'thanks gtxjoe for the first myVersion
- If TypeName(MyLight) = "Light" Then
- If FinalState = 2 Then
- FinalState = MyLight.State 'Keep the current light state
- End If
- MyLight.BlinkInterval = BlinkPeriod
- MyLight.Duration 2, TotalPeriod, FinalState
- ElseIf TypeName(MyLight) = "Flasher" Then
- Dim steps
- ' Store all blink information
- steps = Int(TotalPeriod / BlinkPeriod + .5) 'Number of ON/OFF steps to perform
- If FinalState = 2 Then 'Keep the current flasher state
- FinalState = ABS(MyLight.Visible)
- End If
- MyLight.UserValue = steps * 10 + FinalState 'Store # of blinks, and final state
- ' Start blink timer and create timer subroutine
- MyLight.TimerInterval = BlinkPeriod
- MyLight.TimerEnabled = 0
- MyLight.TimerEnabled = 1
- ExecuteGlobal "Sub " & MyLight.Name & "_Timer:" & "Dim tmp, steps, fstate:tmp=me.UserValue:fstate = tmp MOD 10:steps= tmp\10 -1:Me.Visible = steps MOD 2:me.UserValue = steps *10 + fstate:If Steps = 0 then Me.Visible = fstate:Me.TimerEnabled=0:End if:End Sub"
- End If
- End Sub
- '******************************************
- ' Change light color - simulate color leds
- ' changes the light color and state
- ' 10 colors: red, orange, amber, yellow...
- '******************************************
- ' in this table this colors are use to keep track of the progress during the acts and battles
- 'colors
- Dim red, orange, amber, yellow, darkgreen, green, blue, darkblue, purple, white
- red = 10
- orange = 9
- amber = 8
- yellow = 7
- darkgreen = 6
- green = 5
- blue = 4
- darkblue = 3
- purple = 2
- white = 1
- Sub SetLightColor(n, col, stat)
- Select Case col
- Case 0
- n.color = RGB(18, 0, 0)
- n.colorfull = RGB(255, 0, 0)
- Case red
- n.color = RGB(18, 0, 0)
- n.colorfull = RGB(255, 0, 0)
- Case orange
- n.color = RGB(18, 3, 0)
- n.colorfull = RGB(255, 64, 0)
- Case amber
- n.color = RGB(193, 49, 0)
- n.colorfull = RGB(255, 153, 0)
- Case yellow
- n.color = RGB(18, 18, 0)
- n.colorfull = RGB(255, 255, 0)
- Case darkgreen
- n.color = RGB(0, 8, 0)
- n.colorfull = RGB(0, 64, 0)
- Case green
- n.color = RGB(0, 18, 0)
- n.colorfull = RGB(0, 255, 0)
- Case blue
- n.color = RGB(0, 18, 18)
- n.colorfull = RGB(0, 255, 255)
- Case darkblue
- n.color = RGB(0, 8, 8)
- n.colorfull = RGB(0, 64, 64)
- Case purple
- n.color = RGB(128, 0, 128)
- n.colorfull = RGB(255, 0, 255)
- Case white
- n.color = RGB(255, 252, 224)
- n.colorfull = RGB(193, 91, 0)
- Case white
- n.color = RGB(255, 252, 224)
- n.colorfull = RGB(193, 91, 0)
- End Select
- If stat <> -1 Then
- n.State = 0
- n.State = stat
- End If
- End Sub
- Sub StartLightSeq()
- 'lights sequences
- LightSeqAttract.UpdateInterval = 25
- LightSeqAttract.Play SeqBlinking, , 5, 150
- LightSeqAttract.Play SeqRandom, 40, , 4000
- LightSeqAttract.Play SeqAllOff
- LightSeqAttract.UpdateInterval = 8
- LightSeqAttract.Play SeqUpOn, 50, 1
- LightSeqAttract.UpdateInterval = 8
- LightSeqAttract.Play SeqDownOn, 25, 1
- LightSeqAttract.UpdateInterval = 8
- LightSeqAttract.Play SeqCircleOutOn, 15, 2
- LightSeqAttract.UpdateInterval = 8
- LightSeqAttract.Play SeqUpOn, 25, 1
- LightSeqAttract.UpdateInterval = 8
- LightSeqAttract.Play SeqDownOn, 25, 1
- LightSeqAttract.UpdateInterval = 8
- LightSeqAttract.Play SeqUpOn, 25, 1
- LightSeqAttract.UpdateInterval = 8
- LightSeqAttract.Play SeqDownOn, 25, 1
- LightSeqAttract.UpdateInterval = 10
- LightSeqAttract.Play SeqCircleOutOn, 15, 3
- LightSeqAttract.UpdateInterval = 5
- LightSeqAttract.Play SeqRightOn, 50, 1
- LightSeqAttract.UpdateInterval = 5
- LightSeqAttract.Play SeqLeftOn, 50, 1
- LightSeqAttract.UpdateInterval = 8
- LightSeqAttract.Play SeqRightOn, 50, 1
- LightSeqAttract.UpdateInterval = 8
- LightSeqAttract.Play SeqLeftOn, 50, 1
- LightSeqAttract.UpdateInterval = 8
- LightSeqAttract.Play SeqRightOn, 40, 1
- LightSeqAttract.UpdateInterval = 8
- LightSeqAttract.Play SeqLeftOn, 40, 1
- LightSeqAttract.UpdateInterval = 10
- LightSeqAttract.Play SeqRightOn, 30, 1
- LightSeqAttract.UpdateInterval = 10
- LightSeqAttract.Play SeqLeftOn, 30, 1
- LightSeqAttract.UpdateInterval = 8
- LightSeqAttract.Play SeqRightOn, 25, 1
- LightSeqAttract.UpdateInterval = 8
- LightSeqAttract.Play SeqLeftOn, 25, 1
- LightSeqAttract.UpdateInterval = 8
- LightSeqAttract.Play SeqRightOn, 15, 1
- LightSeqAttract.UpdateInterval = 8
- LightSeqAttract.Play SeqLeftOn, 15, 1
- LightSeqAttract.UpdateInterval = 10
- LightSeqAttract.Play SeqCircleOutOn, 15, 3
- LightSeqAttract.UpdateInterval = 8
- LightSeqAttract.Play SeqLeftOn, 25, 1
- LightSeqAttract.UpdateInterval = 8
- LightSeqAttract.Play SeqRightOn, 25, 1
- LightSeqAttract.UpdateInterval = 8
- LightSeqAttract.Play SeqLeftOn, 25, 1
- LightSeqAttract.UpdateInterval = 8
- LightSeqAttract.Play SeqUpOn, 25, 1
- LightSeqAttract.UpdateInterval = 8
- LightSeqAttract.Play SeqDownOn, 25, 1
- LightSeqAttract.UpdateInterval = 8
- LightSeqAttract.Play SeqUpOn, 25, 1
- LightSeqAttract.UpdateInterval = 8
- LightSeqAttract.Play SeqDownOn, 25, 1
- LightSeqAttract.UpdateInterval = 5
- LightSeqAttract.Play SeqStripe1VertOn, 50, 2
- LightSeqAttract.UpdateInterval = 8
- LightSeqAttract.Play SeqCircleOutOn, 15, 2
- LightSeqAttract.UpdateInterval = 8
- LightSeqAttract.Play SeqStripe1VertOn, 50, 3
- LightSeqAttract.UpdateInterval = 8
- LightSeqAttract.Play SeqLeftOn, 25, 1
- LightSeqAttract.UpdateInterval = 8
- LightSeqAttract.Play SeqRightOn, 25, 1
- LightSeqAttract.UpdateInterval = 8
- LightSeqAttract.Play SeqLeftOn, 25, 1
- LightSeqAttract.UpdateInterval = 8
- LightSeqAttract.Play SeqUpOn, 25, 1
- LightSeqAttract.UpdateInterval = 8
- LightSeqAttract.Play SeqDownOn, 25, 1
- LightSeqAttract.UpdateInterval = 8
- LightSeqAttract.Play SeqCircleOutOn, 15, 2
- LightSeqAttract.UpdateInterval = 8
- LightSeqAttract.Play SeqStripe2VertOn, 50, 3
- LightSeqAttract.UpdateInterval = 8
- LightSeqAttract.Play SeqLeftOn, 25, 1
- LightSeqAttract.UpdateInterval = 8
- LightSeqAttract.Play SeqRightOn, 25, 1
- LightSeqAttract.UpdateInterval = 8
- LightSeqAttract.Play SeqLeftOn, 25, 1
- LightSeqAttract.UpdateInterval = 8
- LightSeqAttract.Play SeqUpOn, 25, 1
- LightSeqAttract.UpdateInterval = 8
- LightSeqAttract.Play SeqDownOn, 25, 1
- LightSeqAttract.UpdateInterval = 8
- LightSeqAttract.Play SeqUpOn, 25, 1
- LightSeqAttract.UpdateInterval = 8
- LightSeqAttract.Play SeqDownOn, 25, 1
- LightSeqAttract.UpdateInterval = 8
- LightSeqAttract.Play SeqStripe1VertOn, 25, 3
- LightSeqAttract.UpdateInterval = 8
- LightSeqAttract.Play SeqStripe2VertOn, 25, 3
- LightSeqAttract.UpdateInterval = 8
- LightSeqAttract.Play SeqUpOn, 15, 1
- LightSeqAttract.UpdateInterval = 8
- LightSeqAttract.Play SeqDownOn, 15, 1
- LightSeqAttract.UpdateInterval = 8
- LightSeqAttract.Play SeqUpOn, 15, 1
- LightSeqAttract.UpdateInterval = 8
- LightSeqAttract.Play SeqDownOn, 15, 1
- LightSeqAttract.UpdateInterval = 8
- LightSeqAttract.Play SeqUpOn, 15, 1
- LightSeqAttract.UpdateInterval = 8
- LightSeqAttract.Play SeqDownOn, 15, 1
- LightSeqAttract.UpdateInterval = 8
- LightSeqAttract.Play SeqRightOn, 15, 1
- LightSeqAttract.UpdateInterval = 8
- LightSeqAttract.Play SeqLeftOn, 15, 1
- LightSeqAttract.UpdateInterval = 8
- LightSeqAttract.Play SeqRightOn, 15, 1
- LightSeqAttract.UpdateInterval = 8
- LightSeqAttract.Play SeqLeftOn, 15, 1
- End Sub
- Sub LightSeqAttract_PlayDone()
- StartLightSeq()
- End Sub
- Sub LightSeqTilt_PlayDone()
- LightSeqTilt.Play SeqAllOff
- End Sub
- Sub LightSeqSkillshot_PlayDone()
- LightSeqSkillshot.Play SeqAllOff
- End Sub
- '***********************************************************************
- ' *********************************************************************
- ' Table Specific Script Starts Here
- ' *********************************************************************
- '***********************************************************************
- ' tables walls and animations
- Sub VPObjects_Init
- End Sub
- '**************
- 'Animates Toys
- '**************
- 'Actarus
- Sub ActarusTimer360_Timer
- ActarusP.RotY = ActarusP.RotY + 5
- End Sub
- Dim ActarusA, ActarusB, ActarusC, ActarusY
- Sub ActarusMoveA_Timer
- ActarusP.RotY = 0
- ActarusA = True
- ActarusY = ActarusY + 5
- ActarusP.RotY = ActarusY
- End Sub
- Sub ActarusMoveB_Timer
- ActarusP.RotY = 0
- ActarusB = True
- ActarusY = ActarusY + 5
- ActarusP.RotY = ActarusY
- End Sub
- Sub ActarusMoveC_Timer
- ActarusP.RotY = 0
- ActarusC = True
- ActarusY = ActarusY + 5
- ActarusP.RotY = ActarusY
- End Sub
- 'GolgothRotate
- Dim GolgothRotateD: GolgothRotateD = 0
- Sub GolgothRotateTimer_Timer
- GolgothRotateD = GolgothRotateD + 5
- GolgothRotate.RotY = GolgothRotateD
- End Sub
- 'Alabarda
- Sub AlabardaTimer_Timer
- Alabarda.RotY = Alabarda.RotY + 10
- If PlayersPlayingGame Then
- vpmtimer.addtimer 1000, "AlabardaAnimOff '"
- End If
- End Sub
- Sub AlabardaAnim
- AlabardaTimer.enabled = 1
- End Sub
- Sub AlabardaAnimOff
- AlabardaTimer.enabled = 0
- End Sub
- 'disko
- Sub diskoTimer_Timer
- disko.RotY = disko.RotY + 5
- End Sub
- Sub diskoAnim
- diskoTimer.enabled = 1
- End Sub
- Sub diskoAnimOff
- diskoTimer.enabled = 0
- End Sub
- 'Boomeran
- Dim boomerD
- sub Timerboomer_Timer()
- boomer.transZ = boomer.transZ - 1
- boomerD = boomerD + 1
- End Sub
- Sub TimerboomerOff_Timer
- Timerboomer.enabled = 0
- boomerD = boomerD - 1
- boomer.transZ = boomer.transZ + 1
- End Sub
- 'Brazos
- Dim BrazosLD
- sub BrazosL_Timer()
- maglio2.Y = 1548
- maglio2.X = 136
- maglio2.Z = 107
- maglio2.transZ = maglio2.transZ + 1
- maglio2.transX = maglio2.transX - 1
- BrazosLD = BrazosLD + 1
- End Sub
- Sub BrazosLOff_Timer
- BrazosL.enabled = 0
- maglio2.transZ = maglio2.transZ - 1
- maglio2.transX = maglio2.transX + 1
- BrazosLD = BrazosLD - 1
- End Sub
- Dim BrazosRD
- sub BrazosR_Timer()
- maglio1.X = 807
- maglio1.Y = 1581
- maglio1.Z = 107
- maglio1.transZ = maglio1.transZ + 1
- maglio1.transX = maglio1.transX - 1
- BrazosRD = BrazosRD + 1
- End Sub
- Sub BrazosROff_Timer
- BrazosR.enabled = 0
- maglio1.transZ = maglio1.transZ - 1
- maglio1.transX = maglio1.transX + 1
- BrazosRD = BrazosRD - 1
- End Sub
- 'SmallDMD
- Dim HPos, HPosEnd
- Sub DMDSmalltimer_timer()
- DMDSmall.imageA = "goldr"& Hpos
- If Hpos < HposEnd Then
- HPos = HPos + 1
- Else
- DMDSmalltimer.enabled = 0
- DMDSmall.Visible = 0
- End If
- end Sub
- Sub DMDSmallSequence(FrameStart, FrameEnd)
- HPos = FrameStart
- HPosEnd = FrameEnd
- DMDSmalltimer.enabled = 1
- DMDSmall.Visible = 1
- End Sub
- Sub IntroSmallDMD()
- DMDSmallSequence 0, 210
- End Sub
- Sub Explosion()
- DMDSmallSequence 211, 236
- End Sub
- Sub Game_Init()
- bExtraBallWonThisBall = False
- TurnOffPlayfieldLights()
- 'Play some Music
- 'ChangeSong
- PlaySong "mu_GamePlay"
- 'Init Variables
- Jackpot = 250000
- DMDFlush
- DMDSmallSequence 0,0
- playsound "soundfxchair"
- Lockdiverter.RotateToStart
- kickback.enabled = 1
- KickBackDiverter.RotateToStart
- A1.state = 2
- A2.state = 2
- A3.state = 0
- A4.state = 0
- A5.state = 0
- A6.state = 0
- 'FlashForMs A6F, 100, 10, 0 'off
- A7.state = 0
- 'FlashForMs A7F, 100, 10, 0 'off
- A8.state = 0
- 'FlashForMs A8F, 100, 10, 0 'off
- Ak.state = 0
- AKL.state = 0
- 'FlashForMs AKL, 100, 10, 0 'off
- Ab.state = 0
- B1.state = 2
- B2.state = 0
- B3.state = 0
- B4.state = 0
- B5.state = 0
- J1.state = 0
- J2.state = 0
- J3.state = 0
- J4.state = 0
- ExtraBall.state = 0
- kickbacklit.state = 1
- ActivateKickbak.state = 0
- kickbacktargets1.Isdropped = 1
- kickbacktargets2.Isdropped = 1
- SP1.state = 0
- SP2.state = 0
- SP3.state = 0
- SP4.state = 0
- 'DispDmd1.QueueText "[il1][sf1]"
- 'DispDmd2.QueueText "[il1][sf1]"
- 'hologram.frame 211
- DMDBlink "black.jpg", " ", " GOLDRAKE READY ", 50, 50
- ''attractseq.stopplay
- 'flasher2.state = 0
- FlashForMs flasher2, 1000, 10, 0 'off
- 'flasher6.state = 0
- FlashForMs flasher6, 1000, 10, 0 'off
- End Sub
- Sub TurnOffPlayfieldLights()
- Dim a
- For each a in aLights
- a.State = 0
- Next
- End Sub
- Sub ResetNewBallLights()
- ' LightArrow1.State = 2
- ' LightArrow6.State = 2
- ' l53.State = 2
- End Sub
- Sub UpdateSkillShot() 'Updates the skillshot light
- LightSeqSkillshot.Play SeqAllOff
- 'DMDFlush
- End Sub
- ' *********************************************************************
- ' Table Object Hit Events
- '
- ' Any target hit Sub will follow this:
- ' - play a sound
- ' - do some physical movement
- ' - add a score, bonus
- ' - check some variables/modes this trigger is a member of
- ' - set the "LastSwicthHit" variable in case it is needed later
- ' *********************************************************************
- ' Slingshots has been hit
- Dim LStep, RStep
- Sub LeftSlingShot_Slingshot
- If Tilted Then Exit Sub
- startB2S(6)
- PlaySound SoundFXDOF("fx_slingshot", 103, DOFPulse, DOFContactors), 0, 1, -0.05, 0.05
- DOF 104, DOFPulse
- DOF 300, DOFPulse 'DOF MX - Left Slingshot
- LeftSling4.Visible = 1:LeftSling1.Visible = 0
- Lemk.RotX = 26
- LStep = 0
- LeftSlingShot.TimerEnabled = True
- ' add some points
- AddScore 500
- ' add some effect to the table?
- Gi2.State = 0
- ' remember last trigger hit by the ball
- LastSwitchHit = "LeftSlingShot"
- FlashForms SlingFlashL, 1000, 50, 0
- FlashForms SlingFlashL1, 1000, 50, 0
- BrazosL.enabled = 1
- End Sub
- Sub LeftSlingShot_Timer
- Select Case LStep
- Case 1:LeftSLing4.Visible = 0:LeftSLing3.Visible = 1:Lemk.RotX = 14
- Case 2:LeftSLing3.Visible = 0:LeftSLing2.Visible = 1:Lemk.RotX = 2
- Case 3:LeftSLing2.Visible = 0:LeftSling1.Visible = 1:Lemk.RotX = -10:Gi2.State = 1:LeftSlingShot.TimerEnabled = False
- End Select
- LStep = LStep + 1
- End Sub
- Sub RightSlingShot_Slingshot
- startB2S(1)
- If Tilted Then Exit Sub
- PlaySound SoundFXDOF("fx_slingshot", 105, DOFPulse, DOFContactors), 0, 1, 0.05, 0.05
- DOF 106, DOFPulse
- DOF 301, DOFPulse 'DOF MX - Right Slingshot
- RightSling4.Visible = 1:RightSling1.Visible = 0
- Remk.RotX = 26
- RStep = 0
- RightSlingShot.TimerEnabled = True
- ' add some points
- AddScore 500
- ' add some effect to the table?
- Gi1.State = 0
- ' remember last trigger hit by the ball
- LastSwitchHit = "RightSlingShot"
- FlashForms SlingFlashR, 1000, 50, 0
- FlashForms SlingFlashR1, 1000, 50, 0
- BrazosR.enabled = 1
- End Sub
- Sub RightSlingShot_Timer
- Select Case RStep
- Case 1:RightSLing4.Visible = 0:RightSLing3.Visible = 1:Remk.RotX = 14
- Case 2:RightSLing3.Visible = 0:RightSLing2.Visible = 1:Remk.RotX = 2
- Case 3:RightSLing2.Visible = 0:RightSLing1.Visible = 1:Remk.RotX = -10:Gi1.State = 1:RightSlingShot.TimerEnabled = False
- End Select
- RStep = RStep + 1
- End Sub
- ' LANE SWITCH SCRIPT (& Flipper scripting)
- dim tempstateherolights 'to rotate lights
- Sub LeftInLaneTrigger_Hit()
- startB2S(2)
- Addscore(1000)
- If bMultiBallMode then Exit Sub
- if SP1.state = 1 and SP2.state = 0 and SP3.state = 1 and SP4.state = 1 then
- EnableBallSaver 10
- SP1.state = 0
- SP2.state = 0
- SP3.state = 0
- SP4.state = 0
- playsound "soundFX15"
- DOF 145, DOFPulse
- DOF 315, DOFPulse 'DOF MX - Left Inner Lane
- FlashForms SlingFlashL, 1000, 50, 0
- FlashForms SlingFlashL1, 1000, 50, 0
- FlashForms SlingFlashR, 1000, 50, 0
- FlashForms SlingFlashR1, 1000, 50, 0
- end if
- If (SP2.State=0) then
- SP2.State=1
- End If
- End Sub
- Sub RightInLaneTrigger_Hit()
- startB2S(3)
- Addscore 1000
- If bMultiBallMode then Exit Sub
- if SP1.state = 1 and SP2.state = 1 and SP3.state = 0 and SP4.state = 1 then
- ' set our game flag
- ' bBallSaverActive = TRUE
- ' ' start the timer
- ' BallSaverTimer.Enabled = FALSE
- ' BallSaverTimer.Interval = constBallSaverTime
- ' BallSaverTimer.Enabled = TRUE
- ' ' if you have a ball saver light you might want to turn it on at this
- ' ' point (or make it flash)
- ' ShootAgainLight.State = 2
- EnableBallSaver 10
- SP1.state = 0
- SP2.state = 0
- SP3.state = 0
- SP4.state = 0
- playsound "soundFX15"
- DOF 147, DOFPulse
- DOF 316, DOFPulse 'DOF MX - Right Inner Lane
- FlashForms SlingFlashL, 1000, 50, 0
- FlashForms SlingFlashL1, 1000, 50, 0
- FlashForms SlingFlashR, 1000, 50, 0
- FlashForms SlingFlashR1, 1000, 50, 0
- end if
- If (SP3.State=0) then
- SP3.State=1
- End If
- End Sub
- Sub LeftOutLaneTrigger_Hit()
- startB2S(5)
- AddScore 5000
- If bMultiBallMode then Exit Sub
- if SP1.state = 0 and SP2.state = 1 and SP3.state = 1 and SP4.state = 1 then
- ' set our game flag
- ' bBallSaverActive = TRUE
- ' ' start the timer
- ' BallSaverTimer.Enabled = FALSE
- ' BallSaverTimer.Interval = constBallSaverTime
- ' BallSaverTimer.Enabled = TRUE
- ' ' if you have a ball saver light you might want to turn it on at this
- ' ' point (or make it flash)
- ' ShootAgainLight.State = 2
- EnableBallSaver 10
- SP1.state = 0
- SP2.state = 0
- SP3.state = 0
- SP4.state = 0
- playsound "soundFX15"
- DOF 144, DOFPulse
- DOF 313, DOFPulse 'DOF MX - Left Outer Lane
- FlashForms SlingFlashL, 1000, 50, 0
- FlashForms SlingFlashL1, 1000, 50, 0
- FlashForms SlingFlashR, 1000, 50, 0
- FlashForms SlingFlashR1, 1000, 50, 0
- end if
- If (SP1.State=0) Then
- SP1.State=1
- End If
- LastSwitchHit = "LeftOutLaneTrigger"
- End Sub
- Sub RightOutLaneTrigger_Hit()
- startB2S(5)
- AddScore 5000
- If bMultiBallMode then Exit Sub
- if SP1.state = 1 and SP2.state = 1 and SP3.state = 1 and SP4.state = 0 then
- ' set our game flag
- ' bBallSaverActive = TRUE
- ' ' start the timer
- ' BallSaverTimer.Enabled = FALSE
- ' BallSaverTimer.Interval = constBallSaverTime
- ' BallSaverTimer.Enabled = TRUE
- ' ' if you have a ball saver light you might want to turn it on at this
- ' ' point (or make it flash)
- ' ShootAgainLight.State = 2
- EnableBallSaver 10
- SP1.state = 0
- SP2.state = 0
- SP3.state = 0
- SP4.state = 0
- playsound "soundFX15"
- DOF 148, DOFPulse
- DOF 314, DOFPulse 'DOF MX - Right Outer Lane
- FlashForms SlingFlashL, 1000, 50, 0
- FlashForms SlingFlashL1, 1000, 50, 0
- FlashForms SlingFlashR, 1000, 50, 0
- FlashForms SlingFlashR1, 1000, 50, 0
- end if
- If (SP4.State=0) then
- SP4.State=1
- End If
- LastSwitchHit = "RightOutLaneTrigger"
- End Sub
- '-----------------------------------------------------
- '**************************************************************************
- 'timed circular 4 flashers:
- 'integrate this in script somewhere (1000 or 2000 must be VARIATED!!!)
- 'fltimer1.set true, 1
- 'fltimer2.set true, 2000
- sub fltimer1_Timer()
- fltimer1.enabled = false
- FlashForms SlingFlashL, 100, 50, 0
- FlashForms SlingFlashL1, 100, 50, 0
- FlashForms flasher2, 1000, 50, 0
- FlashForms flasher6, 1000, 50, 0
- FlashForms flasher7, 1000, 50, 0
- FlashForms flasher7b, 1000, 50, 0
- 'flasher1.BlinkInterval = 65
- 'flasher2.BlinkInterval = 65
- 'flasher6.BlinkInterval = 65
- 'flasher7.BlinkInterval = 65
- 'flasher1.state = bulbblink
- 'flasher2.state = bulbblink
- 'flasher6.state = bulbblink
- 'flasher7.state = bulbblink
- end sub
- sub fltimer2_Timer()
- fltimer2.enabled = false
- FlashForms SlingFlashR, 100, 50, 0
- FlashForms SlingFlashR1, 100, 50, 0
- FlashForms flasher2, 1000, 50, 0
- FlashForms flasher6, 1000, 50, 0
- FlashForms flasher7, 1000, 50, 0
- FlashForms flasher7b, 1000, 50, 0
- end sub
- 'timed circular 8 jackpot flashers:
- 'integrate this in script somewhere (1000 or 2000 must be VARIATED!!!)
- 'fltimerA.set true, 1
- 'fltimerB.set true, 2000
- sub fltimerA_Timer()
- fltimerA.enabled = false
- FlashForms SlingFlashL, 1000, 50, 0
- FlashForms SlingFlashL1, 1000, 50, 0
- FlashForms flasher2, 1000, 50, 0
- FlashForms flasher3, 1000, 50, 0
- FlashForms flasher4, 1000, 50, 0.
- FlashForms flasher4b, 1000, 50, 0
- FlashForms SlingFlashR, 1000, 50, 0
- FlashForms SlingFlashR1, 1000, 50, 0
- FlashForms flasher6, 1000, 50, 0
- FlashForms flasher7, 1000, 50, 0
- FlashForms flasher7b, 1000, 50, 0
- FlashForms flasher8, 1000, 50, 0
- FlashForms flasher8b, 1000, 50, 0
- FlashForms flasher9, 1000, 50, 0
- FlashForms flasher9b, 1000, 50, 0
- FlashForms SlingFlashL, 1000, 50, 0
- FlashForms SlingFlashL1, 1000, 50, 0
- FlashForms flasher2, 1000, 50, 0
- FlashForms flasher3, 1000, 50, 0
- FlashForms flasher4, 1000, 50, 0
- FlashForms flasher4b, 1000, 50, 0
- FlashForms SlingFlashR, 1000, 50, 0
- FlashForms SlingFlashR1, 1000, 50, 0
- FlashForms flasher6, 1000, 50, 0
- FlashForms flasher7, 1000, 50, 0
- FlashForms flasher7b, 1000, 50, 0
- FlashForms flasher8, 1000, 50, 0
- FlashForms flasher8b, 1000, 50, 0
- FlashForms flasher9, 1000, 50, 0
- FlashForms flasher9b, 1000, 50, 0
- FlashForms SlingFlashL, 1000, 50, 0
- FlashForms SlingFlashL1, 1000, 50, 0
- FlashForms flasher2, 1000, 50, 0
- FlashForms flasher3, 1000, 50, 0
- FlashForms flasher4, 1000, 50, 0
- FlashForms flasher4b, 1000, 50, 0
- FlashForms SlingFlashR, 1000, 50, 0
- FlashForms SlingFlashR1, 1000, 50, 0
- FlashForms flasher6, 1000, 50, 0
- FlashForms flasher7, 1000, 50, 0
- FlashForms flasher7b, 1000, 50, 0
- FlashForms flasher8, 1000, 50, 0
- FlashForms flasher8b, 1000, 50, 0
- FlashForms flasher9, 1000, 50, 0
- FlashForms flasher9b, 1000, 50, 0
- FlashForms SlingFlashL, 1000, 50, 0
- FlashForms SlingFlashL1, 1000, 50, 0
- FlashForms flasher2, 1000, 50, 0
- FlashForms flasher3, 1000, 50, 0
- FlashForms flasher4, 1000, 50, 0
- FlashForms flasher4b, 1000, 50, 0
- FlashForms SlingFlashR, 1000, 50, 0
- FlashForms SlingFlashR1, 1000, 50, 0
- FlashForms flasher6, 1000, 50, 0
- FlashForms flasher7, 1000, 50, 0
- FlashForms flasher7b, 1000, 50, 0
- FlashForms flasher8, 1000, 50, 0
- FlashForms flasher8b, 1000, 50, 0
- FlashForms flasher9, 1000, 50, 0
- FlashForms flasher9b, 1000, 50, 0
- 'SlingFlashL.blinkpattern = "10001000"
- 'flasher2.blinkpattern = "01000000"
- 'flasher7.blinkpattern = "00100100"
- 'SlingFlashR.blinkpattern = "00010000"
- 'flasher4.blinkpattern = "10000100"
- 'flasher3.blinkpattern = "01000000"
- 'flasher8.blinkpattern = "00101000"
- 'flasher9.blinkpattern = "00010001"
- 'SlingFlashL.BlinkInterval = 65
- 'flasher2.BlinkInterval = 65
- 'flasher7.BlinkInterval = 65
- 'SlingFlashR.BlinkInterval = 65
- 'flasher4.BlinkInterval = 65
- 'flasher3.BlinkInterval = 65
- 'flasher8.BlinkInterval = 65
- 'flasher9.BlinkInterval = 65
- 'SlingFlashL.state = bulbblink
- 'flasher2.state = bulbblink
- 'flasher7.state = bulbblink
- 'SlingFlashR.state = bulbblink
- 'flasher4.state = bulbblink
- 'flasher3.state = bulbblink
- 'flasher8.state = bulbblink
- 'flasher9.state = bulbblink
- end sub
- sub fltimerB_Timer()
- fltimerB.enabled = false
- 'flasher1.state = bulboff
- 'flasher2.state = bulboff
- 'flasher7.state = bulboff
- 'SlingFlashR.state = bulboff
- 'flasher4.state = bulboff
- 'flasher3.state = bulboff
- 'flasher8.state = bulboff
- 'flasher9.state = bulboff
- FlashForms SlingFlashL, 1000, 50, 0
- FlashForms SlingFlashL1, 1000, 50, 0
- FlashForms flasher2, 1000, 50, 0
- FlashForms flasher3, 1000, 50, 0
- FlashForms flasher4, 1000, 50, 0
- FlashForms flasher4b, 1000, 50, 0
- FlashForms SlingFlashR, 1000, 50, 0
- FlashForms SlingFlashR1, 1000, 50, 0
- FlashForms flasher6, 1000, 50, 0
- FlashForms flasher7, 1000, 50, 0
- FlashForms flasher7b, 1000, 50, 0
- FlashForms flasher8, 1000, 50, 0
- FlashForms flasher8b, 1000, 50, 0
- FlashForms flasher9, 1000, 50, 0
- FlashForms flasher9b, 1000, 50, 0
- end sub
- 'Kick it back:
- sub kickbacktargets1_hit()
- startB2S(5)
- If Tilted Then Exit Sub
- addscore 750
- PlaySound "DropTargetHit"
- kickbacktargets()
- LastSwitchHit = "kickbacktargets1"
- end sub
- sub kickbacktargets2_hit()
- startB2S(5)
- If Tilted Then Exit Sub
- addscore 750
- PlaySound "DropTargetHit"
- kickbacktargets()
- LastSwitchHit = "kickbacktargets2"
- end sub
- Sub kickbacktargets()
- if (kickbacktargets1.isdropped + kickbacktargets2.isdropped = 1) then
- addscore 1500
- PlaySound "fx_droptarget"
- DMD "black.jpg", "GOLDORAK LEFT", "OUTLANE CLOSED", 1500
- kickback.enabled = 1
- playsound "newsfx02"
- playsound "laser10"
- kickbacklit.state = 1
- ActivateKickbak.state = 0
- KickBackDiverter.RotateToStart
- Else
- kickback.enabled = 0
- kickbacklit.state = 0
- kickbacktargets1.Isdropped = 0
- kickbacktargets2.Isdropped = 0
- KickBackDiverter.RotateToEnd
- end if
- end sub
- sub kickback_hit()
- startB2S(6)
- if kickbacklit.state = 1 then
- kickbacklit.state = 0
- FlashForms SlingFlashL, 1000, 50, 0
- FlashForms SlingFlashL1, 1000, 50, 0
- FlashForms SlingFlashR, 1000, 50, 0
- FlashForms SlingFlashR1, 1000, 50, 0
- kickback.kick 0, 45
- playsound "kickbackfx"
- kickbacktargets1.isdropped = 0
- kickbacktargets2.isdropped = 0
- ActivateKickbak.state = 2
- addscore 2500
- Timerboomer.enabled = 1
- KickBackDiverter.RotateToEnd
- Else
- Kickback.kick 110, 8
- end if
- LastSwitchHit = "kickback"
- end sub
- '**************************************************************************
- '-----Small things---------------
- sub timeractarus_Timer()
- timeractarus.enabled = false
- DispDmd1.Text = "[f6][edge4][b][y8]PRESS 1 TO PLAY[/b]"
- DispDmd2.Text = "[f6][edge4][b][y8]PRESS 1 TO PLAY[/b]"
- end sub
- dim StopEgo
- sub Trigger28_hit '..out
- startB2S(6)
- StopEgo=true
- end sub
- Sub Trigger32_Hit() '..in
- startB2S(1)
- If BallsOnPlayfield = 1 then
- if StopEgo=false then
- playsound "goldrake raggio ant" '..in
- DMD "black.jpg", "_", " ANTIGRAVITY BEAM ", 1500
- ' DispDmd1.QueueText "[f6][b][edge4][y4]ANTIGRAVITY[y17]BEAM[/b]",, seScrollRight, 2000, True
- ' DispDmd2.QueueText "[f6][b][edge4][y4]ANTIGRAVITY[y17]BEAM[/b]",, seScrollRight, 2000, True
- end if
- if StopEgo=true then
- StopEgo=false
- PlaySound "'''''''" '..out
- end if
- End If
- End Sub
- dim StopEgo2
- sub Trigger35_hit '..out
- startB2S(6)
- StopEgo2=true
- end sub
- Sub Trigger36_Hit() '..in
- If BallsOnPlayfield = 1 then
- if StopEgo2=false then
- playsound "goldrake raggi las" '..in
- DMD "black.jpg", "_", " LASER BEAM ", 1500
- ' DispDmd1.QueueText "[f6][edge4][b][y8]LASER BEAM[/b]", seScrollLeft, 2000, True
- ' DispDmd2.QueueText "[f6][edge4][b][y8]LASER BEAM[/b]", seScrollLeft, 2000, True
- end if
- if StopEgo2=true then
- StopEgo2=false
- PlaySound "" '..out
- end if
- End If
- End Sub
- sub trigger1_hit()
- If Tilted Then Exit Sub
- playsound "laser05"
- 'alabarta.rotatexz -300, 345
- AlabardaAnim
- end sub
- sub trigger39_hit()
- If Tilted Then Exit Sub
- AlabardaAnim
- end sub
- Sub trigger14_hit()
- startB2S(1)
- If Tilted Then Exit Sub
- addscore 500
- playsound "laser05"
- If LastSwitchHit = "Trigger2" Then 'give combo
- ComboValue = 5000 + Round(Score(CurrentPlayer) / 10, 0)
- DMDBlink "black.jpg", "COMBO", ComboValue, 100, 10
- AddScore ComboValue
- ComboM = ComboM + 1
- CheckComboMultiball
- End If
- LastSwitchHit = "trigger14"
- End Sub
- Sub trigger2_hit()
- startB2S(4)
- If Tilted Then Exit Sub
- addscore 500
- playsound "laser05"
- If LastSwitchHit = "Trigger14" Then 'give combo
- ComboValue = 5000 + Round(Score(CurrentPlayer) / 10, 0)
- DMDBlink "black.jpg", "COMBO", ComboValue, 100, 10
- AddScore ComboValue
- ComboM = ComboM + 1
- CheckComboMultiball
- End If
- LastSwitchHit = "Trigger2"
- End Sub
- Sub Trigger3_hit()
- PlaySound "fx_centrifugue2"
- End Sub
- sub trigger16_hit()
- If Tilted Then Exit Sub
- addscore 500
- end sub
- sub trigger15_hit()
- startB2S(2)
- If Tilted Then Exit Sub
- addscore 500
- If B4.state = 2 Then
- StopSound "RotorStart2"
- DMD "SpinSaucer.wmv", "", "", 4500
- End If
- If B2SOn Then Controller.B2SSetData 3,0:Controller.B2SSetData 2,1
- LastSwitchHit = "Trigger15"
- end sub
- sub trigger18_hit()
- startB2S(4)
- If Tilted Then Exit Sub
- If B2SOn Then Controller.B2SSetData 2,0:Controller.B2SSetData 3,1
- addscore 500
- end sub
- sub trigger17_hit()
- If Tilted Then Exit Sub
- If B2SOn Then Controller.B2SSetData 2,0:Controller.B2SSetData 3,1
- playsound "RotorStart2"
- addscore 500
- FlashForMs flasher6, 100, 10, 0 'off
- DMD "black.jpg", "_", " HAND BEAM ", 1500
- 'GolgothRotateTimer.enabled = 0
- 'playSound "RotateLoop"
- LastSwitchHit = "Trigger17"
- end sub
- sub GolgothRotatetrigger_hit()
- If B2SOn Then Controller.B2SSetData 2,0:Controller.B2SSetData 3,1
- playSound "RotateLoop"
- GolgothRotateTimer.enabled = 1
- If bMultiBallMode Then
- Lockdiverter.RotateToStart
- Else
- if B4.state = 0 And B5.state = 0 Then Lockdiverter.RotateToStart
- if B4.state = 2 And B5.state = 0 Then Lockdiverter.RotateToEnd
- if B4.state = 1 And B5.state = 2 Then Lockdiverter.RotateToEnd
- End If
- End Sub
- sub trigger27_hit()
- If Tilted Then Exit Sub
- playsound "goldrake rientro"
- 'DispDmd1.QueueText "[f6][edge4][b][y8]GOLDRAKE BACK[/b]", deNone , 2000, True
- 'DispDmd2.QueueText "[f6][edge4][b][y8]GOLDRAKE BACK[/b]", deNone , 2000, True
- DMD "black.jpg", "_", "GOLDRAKE BACK", 1800
- end sub
- sub trigger40_hit()
- If Tilted Then Exit Sub
- playsound "goldrake rientro"
- 'DispDmd1.QueueText "[f6][edge4][b][y8]GOLDRAKE BACK[/b]", deNone , 2000, True
- 'DispDmd2.QueueText "[f6][edge4][b][y8]GOLDRAKE BACK[/b]", deNone , 2000, True
- DMD "black.jpg", "_", "GOLDRAKE BACK", 1500
- end sub
- sub trigger42_hit()
- If Tilted Then Exit Sub
- FlashForms SlingFlashR, 1000, 50, 0
- FlashForms SlingFlashR1, 1000, 50, 0
- 'playmusic 2, "goldrake avanti", false
- 'DMDframe.set true, 2500
- 'dmdsec 32, 38, "[f11][edge4]", 150 '------- goldrake go
- 'dmdsec 32, 38, "[f11][edge4]", 150
- end sub
- sub trigger12_hit()
- If Tilted Then Exit Sub
- FlashForms bulb9, 1000, 50, 0
- FlashForms bulb10, 1000, 50, 0
- end sub
- sub Atarget1_hit()
- startB2S(1)
- If Tilted Then Exit Sub
- playsound "laser05"
- addscore 1500
- LastSwitchHit = "Atarget1"
- end sub
- sub Atarget2_hit()
- startB2S(6)
- If Tilted Then Exit Sub
- playsound "laser05"
- addscore 1500
- LastSwitchHit = "Atarget2"
- end sub
- sub trigger7_hit()
- startB2S(1)
- LaserKickP.TransY = 0
- If Tilted Then Exit Sub
- FlashForms SlingFlashR, 1000, 50, 0
- FlashForms SlingFlashR1, 1000, 50, 0
- playsound "soundFX13"
- ' turn off LaunchLight
- LaunchLight.State = 0
- end sub
- sub trigger7_Unhit()
- playsound "ActarusGoldorakGoA"
- end sub
- sub trigger24_hit()
- If Tilted Then Exit Sub
- FlashForms UFOflasher, 1000, 50, 0
- playsound "soundFX13"
- end sub
- '--------------------BUMPERS SCRIPT:
- Dim BHit
- Sub Bumper_Hit()
- startB2S(6)
- BHit = BHit + 1
- If (Bulb30.State = 2) Then Exit Sub
- ' Add Score, Bonus or Jackpot
- ' Play Sound
- ' DispDmd1.QueueText "[f6][edge4][b][y5]" & BHit & " / 15[y17]HIT FOR ATTACK", deNone, 2000, True
- ' DispDmd2.QueueText "[f6][edge4][b][y5]" & BHit & " / 15[y17]HIT FOR ATTACK", deNone, 2000, True
- ' DMDFLush
- DMD "black.jpg", "_", " " & BHit & " HIT FOR ATTACK", 800
- If (BHit = 15) Then
- Bulb30.State = 2
- 'Timerbutton.set true , 3000
- vpmtimer.addtimer 3000, "Timerbutton.enabled = 1'"
- ' DMDframe.set true, 6200
- BHit = 0
- End If
- End Sub
- sub Timerbutton_Timer()
- Timerbutton.enabled = 0
- playsound "gold fx push"
- 'DispDmd1.QueueText "[f6][edge4][b][y4]PRESS SPECIAL[y17]KEY1 FOR ATTACK[/b]", deNone, 5000, True
- 'DispDmd2.QueueText "[f6][edge4][b][y4]PRESS SPECIAL[y17]KEY1 FOR ATTACK[/b]", deNone, 5000, True
- DMDFLush
- DMDBlink "black.jpg", "PRESS FIREBOTTON", " FOR ATTACK ", 500, 10
- FireFlash.State = 2
- Playsound "gold fx push"
- vpmtimer.addtimer 5000, "TimerbuttonOff'"
- End Sub
- sub TimerbuttonOff
- If (Bulb30.State = 0) Then Exit Sub
- FireFlash.State = 0
- Timerbutton.enabled = 0
- Bulb30.State = 0
- BHit = 0
- End Sub
- sub Bumper1_hit()
- startB2S(1)
- PlaySound SoundFXDOF("fx_bumper", 107, DOFPulse, DOFContactors), 0, 1, pan(ActiveBall)
- DOF 110, DOFPulse
- DOF 302, DOFPulse 'DOF MX - Bumper 1
- If Tilted Then Exit Sub
- addscore 1000
- If Bulb30.State = 2 Then Exit Sub
- BHit = BHit + 1
- DMDFLush
- DMD "bumper1.jpg", "_", " " & BHit & " HIT FOR ATTACK", 500
- FlashForms flasher2, 1000, 50, 0
- FlashForms bulb17, 1000, 50, 0
- FlashForms BumperLight, 100, 50, 0
- If (BHit = 15) Then
- Bulb30.State = 2
- Timerbutton.enabled = 1
- BHit = 0
- End If
- end sub
- sub bumper2_hit()
- startB2S(4)
- PlaySound SoundFXDOF("fx_bumper", 109, DOFPulse, DOFContactors), 0, 1, pan(ActiveBall)
- DOF 111, DOFPulse
- DOF 303, DOFPulse 'DOF MX - Bumper 2If Tilted Then Exit Sub
- addscore 1000
- If Bulb30.State = 2 Then Exit Sub
- BHit = BHit + 1
- DMDFLush
- DMD "bumper2.jpg", "_", " " & BHit & " HIT FOR ATTACK", 500
- FlashForms flasher6, 1000, 50, 0
- FlashForms bulb25, 100, 50, 0
- FlashForms BumperLight, 100, 50, 0
- If (BHit = 15) Then
- Bulb30.State = 2
- Timerbutton.enabled = 1
- BHit = 0
- End If
- end sub
- sub bumper3_hit()
- startB2S(3)
- PlaySound SoundFXDOF("fx_bumper", 108, DOFPulse, DOFContactors), 0, 1, pan(ActiveBall)
- DOF 112, DOFPulse
- DOF 304, DOFPulse 'DOF MX - Bumper 3addscore 1000
- If Bulb30.State = 2 Then Exit Sub
- BHit = BHit + 1
- DMDFLush
- DMD "bumper3.jpg", "_", " " & BHit & " HIT FOR ATTACK", 500
- FlashForms flasher2, 1000, 50, 0
- FlashForms BumperLight, 100, 50, 0
- If (BHit = 15) Then
- Bulb30.State = 2
- Timerbutton.enabled = 1
- BHit = 0
- End If
- end sub
- '***************************************************************************************
- '--------------------Ramp & Golgoth Multiball------------------------------------------
- '---Ramp entry (only for effects):
- sub Rampentry_hit()
- FlashForms flasher3, 1000, 50, 0
- playsound "soundFX11", 0.8
- end sub
- '---initiate Ramp:
- sub LeftRampTarget_hit()
- DOF 142, DOFPulse
- startB2S(6)
- If Tilted Then Exit Sub
- playsound "soundFX21b"
- if A1.state = 2 and A2.state = 1 and ballsonplayfield = 1 then
- A1.state = 1
- A3.state = 2
- fltimer1.enabled = 1
- vpmtimer.addtimer 2000, "fltimer2.enabled = 1'"'fltimerB.set true, 2000
- 'scoreupdate = false
- 'flushdmdtimer.set true , 2000
- 'DispDmd1.QueueText "[f6][xc][y5]- SHOOT RAMP -[y18]- 10.000 -", deFlip, 2000, True
- 'DispDmd2.QueueText "[f6][xc][y5]- SHOOT RAMP -[y18]- 10.000 -", deFlip, 2000, True
- DMD "black.jpg", "_", " SHOOT RAMP ", 1500
- FlashForms flasher3, 1000, 50, 0
- end if
- if A1.state = 1 and A2.state = 1 and ballsonplayfield = 1 then
- addscore 20000
- end if
- if A1.state = 2 and A2.state = 2 and ballsonplayfield = 1 then
- A1.state = 1
- addscore 5000
- end if
- LastSwitchHit = "LeftRampTarget"
- end sub
- sub RightRampTarget_hit()
- DOF 143, DOFPulse
- startB2S(1)
- If Tilted Then Exit Sub
- playsound "fx actarus2"
- if A1.state = 1 and A2.state = 2 and ballsonplayfield = 1 then
- A2.state = 1
- A3.state = 2
- fltimer1.enabled = 1
- vpmtimer.addtimer 2000, "fltimer2.enabled = 1'"'fltimerB.set true, 2000
- 'scoreupdate = false
- 'flushdmdtimer.set true , 2000
- 'DispDmd1.QueueText "[f6][xc][y5]SHOOT RAMP[y18]10.000", deFlip, 2000, True
- 'DispDmd2.QueueText "[f6][xc][y5]SHOOT RAMP[y18]10.000", deFlip, 2000, True
- DMD "black.jpg", "_", " SHOOT RAMP ", 1500
- FlashForms flasher3, 1000, 50, 0
- end if
- if A1.state = 1 and A2.state = 1 and ballsonplayfield = 1 then
- addscore 20000
- end if
- if A1.state = 2 and A2.state = 2 and ballsonplayfield = 1 then
- A1.state = 1
- addscore 5000
- end if
- LastSwitchHit = "RightRampTarget"
- end sub
- sub RightRampTarget_Unhit
- playsound "soundFX02b"
- End Sub
- '---Ramp trigger to Golgothkicker1 & 2 (initiate only ONE time):
- sub ramptrigger_hit()
- if ballsonplayfield = 4 then
- addscore 250000
- fltimerA.enabled = 1
- vpmtimer.addtimer 2000, "fltimerB.enabled = 1'"'fltimerB.set true, 2000
- playsound "JackpotFX2"
- ' GOLDORAK JACKPOT:
- 'scoreupdate = false
- 'flushdmdtimer.set true , 2100
- 'DMDframe.set true, 2500
- 'dmdsec 32, 44, "[f8][edge4]", 150 '------- ramp
- 'dmdsec 32, 44, "[f8][edge4]", 150
- DMDFLush
- DMD "DMDJackpot.gif", "", "", 2000
- end if
- if ballsonplayfield = 3 then
- addscore 250000
- fltimerA.enabled = 1
- vpmtimer.addtimer 2000, "fltimerB.enabled = 1'"'fltimerB.set true, 2000
- playsound "JackpotFX2"
- ' GOLDORAK JACKPOT:
- 'scoreupdate = false
- 'flushdmdtimer.set true , 2100
- 'DMDframe.set true, 2500
- 'dmdsec 32, 44, "[f8][edge4]", 150 '------- ramp
- 'dmdsec 32, 44, "[f8][edge4]", 150
- DMDFLush
- DMD "DMDJackpot.gif", "", "", 2000
- end if
- if ballsonplayfield = 2 then
- addscore 250000
- fltimerA.enabled = 1
- vpmtimer.addtimer 2000, "fltimerB.enabled = 1'"'fltimerB.set true, 2000
- playsound "JackpotFX2"
- ' GOLDORAK JACKPOT:
- 'scoreupdate = false
- 'flushdmdtimer.set true , 2100
- 'DMDframe.set true, 2500
- 'dmdsec 32, 44, "[f8][edge4]", 150 '------- ramp
- 'dmdsec 32, 44, "[f8][edge4]", 150
- DMDFLush
- DMD "DMDJackpot.gif", "", "", 2000
- end if
- if Ab.state = 2 and ballsonplayfield = 1 then
- addscore 150000
- FlashForMs flasher2, 400, 10, 0 'off
- FlashForMs flasher6, 400, 10, 0 'off
- FlashForMs bulb9, 2000, 10, 0 'off
- FlashForMs bulb10, 2000, 10, 0 'off
- playsound "soundFX08", 0.6
- 'scoreupdate = false
- 'flushdmdtimer.set true , 2600
- 'DMDframe.set true, 2500
- 'DispDmd1.QueueText "[f6][edge4][b][y8]LOCK IS LIT[/b]", deNone, 2000, True
- 'DispDmd2.QueueText "[f6][edge4][b][y8]LOCK IS LIT[/b]", deNone, 2000, True
- DMDFLush
- DMD "girugiru.gif", "", "", 1500
- DMD "black.jpg", "_", " LOCK IS LIT ", 1000
- end if
- if A3.state = 1 and A4.state = 1 and A5.state = 2 and ballsonplayfield = 1 then
- A5.state = 1
- A6.state = 2
- 'FlashForMs A6, 1, 500, 1 'blink
- Ab.state = 2
- addscore 150000
- FlashForMs bulb9, 2000, 10, 0 'off
- FlashForMs bulb10, 2000, 10, 0 'off
- 'scoreupdate = false
- 'flushdmdtimer.set true , 2600
- 'DMDframe.set true, 2500
- DMDFLush
- DMD "girugiru.gif", "", "", 1500
- 'DispDmd1.QueueText "[f6][edge4][b][y8]LOCK IS LIT[/b]", deNone, 2000, True
- 'DispDmd2.QueueText "[f6][edge4][b][y8]LOCK IS LIT[/b]", deNone, 2000, True
- DMD "black.jpg", "_", "LOCK IS LIT", 1000
- fltimerA.enabled = 1
- vpmtimer.addtimer 2000, "fltimerB.enabled = 1'"'fltimerB.set true, 2000
- 'effectmusic 1, fadeoutandpause, 0, 1
- 'musicin.set true, 3000
- 'playsound "goldrake prof"
- end if
- if A3.state = 1 and A4.state = 2 and A5.state = 0 and ballsonplayfield = 1 then
- A4.state = 1
- A5.state = 2
- addscore 100000
- FlashForMs bulb9, 2000, 10, 0 'off
- FlashForMs bulb10, 2000, 10, 0 'off
- 'scoreupdate = false
- 'flushdmdtimer.set true , 2600
- 'DMDframe.set true, 3000
- DMDFLush
- DMD "girugiru.gif", "", "", 1000
- 'dmdsec 32, 39, "[f16][edge4]", 200 '------- goldrake drill
- 'dmdsec 32, 39, "[f16][edge4]", 200
- fltimer1.enabled = 1
- vpmtimer.addtimer 2000, "fltimer2.enabled = 1'"'fltimerB.set true, 2000
- 'effectmusic 1, fadeoutandpause, 0, 1
- 'musicin.set true, 3000
- playsound "goldrake maria"
- end if
- if A3.state = 2 and A4.state = 0 and A5.state = 0 and ballsonplayfield = 1 then
- A3.state = 1
- A4.state = 2
- addscore 50000
- FlashForMs bulb9, 2000, 10, 0 'off
- FlashForMs bulb10, 2000, 10, 0 'off
- DMDSmallSequence 119, 130
- 'scoreupdate = false
- 'flushdmdtimer.set true , 2600
- 'DMDframe.set true, 3000
- DMDFLush
- DMD "girugiru.gif", "", "", 1000
- 'dmdsec 32, 38, "[f15][edge4]", 200 '------- goldrake alcoor
- 'dmdsec 32, 38, "[f15][edge4]", 200
- fltimer1.enabled = 1
- vpmtimer.addtimer 2000, "fltimer2.enabled = 1'"'fltimerB.set true, 2000
- 'effectmusic 1, fadeoutandpause, 0, 1
- 'musicin.set true, 3000
- playsound "goldrake alcoor"
- end if
- if A3.state = 0 and ballsonplayfield = 1 then
- addscore 25000
- FlashForMs flasher2, 400, 10, 0 'off
- FlashForMs flasher6, 400, 10, 0 'off
- FlashForMs bulb9, 2000, 10, 0 'off
- FlashForMs bulb10, 2000, 10, 0 'off
- playsound "soundFX08", 0.6
- 'scoreupdate = false
- 'flushdmdtimer.set true , 2600
- 'DMDframe.set true, 2500
- 'DispDmd1.QueueText "[f6][edge4][b][y4]GOLDRAKE ATLAS[y17]UFO ROBOT[/b]", deNone, 2000, True
- 'DispDmd2.QueueText "[f6][edge4][b][y4]GOLDRAKE ATLAS[y17]UFO ROBOT[/b]", deNone, 2000, True
- DMDFLush
- DMD "Transform.gif", "", "", 1000
- DMD "black.jpg", "GOLDRAKE ATLAS", "UFO ROBOT", 1500
- end if
- If LastSwitchHit = "ramptrigger" Then 'give combo
- ComboValue = 5000 + Round(Score(CurrentPlayer) / 10, 0)
- DMDBlink "black.jpg", "COMBO", ComboValue, 100, 10
- AddScore ComboValue
- ComboM = ComboM + 1
- CheckComboMultiball
- End If
- LastSwitchHit = "ramptrigger"
- end sub
- '---Golgothkicker1 & 2 (initiated by ramp):
- sub Golgothkicker1_hit()
- startB2S(5)
- Golgothkicker1Fake.enabled = 0
- playsound "rballfall2"
- ActarusMoveB.enabled = 1
- playsound "soundfxchair"
- if ballsonplayfield = 4 then
- addscore 250000
- fltimerA.enabled = 1
- vpmtimer.addtimer 1000, "fltimerB.enabled = 1'"'fltimerB.set true, 2000
- playsound "JackpotFX1"
- ' Golodorak JACKPOT 2:
- 'scoreupdate = false
- 'flushdmdtimer.set true , 4100
- 'DMDframe.set true, 4000
- 'DispDmd1.QueueText "[il1][sf15][ef50]", deNone, 4000, FALSE
- 'DispDmd2.QueueText "[il1][sf15][ef50]", deNone, 4000, FALSE
- DMDFLush
- DMD "DMDJackpotG.gif", "", "", 3000
- Golgothkicker2timer.Interval = 1000
- Golgothkicker2timer.enabled = True
- 'vpmtimer.addtimer 800, "Golgothkicker2timer '" ' Golgothkicker2timer.Interval = 1000
- end if
- if ballsonplayfield = 3 then
- addscore 250000
- fltimerA.enabled = 1
- vpmtimer.addtimer 1000, "fltimerB.enabled = 1'"'fltimerB.set true, 2000
- playsound "JackpotFX1"
- ' Golodorak JACKPOT 2:
- 'scoreupdate = false
- 'flushdmdtimer.set true , 4100
- 'DMDframe.set true, 4000
- 'DispDmd1.QueueText "[il1][sf15][ef50]", deNone, 4000, FALSE
- 'DispDmd2.QueueText "[il1][sf15][ef50]", deNone, 4000, FALSE
- DMDFLush
- DMD "DMDJackpotG.gif", "", "", 3000
- Golgothkicker2timer.Interval = 1000
- Golgothkicker2timer.enabled = True
- 'vpmtimer.addtimer 800, "Golgothkicker2timer '" ' Golgothkicker2timer.Interval = 1000
- end if
- if ballsonplayfield = 2 then
- addscore 250000
- fltimerA.enabled = 1
- vpmtimer.addtimer 1000, "fltimerB.enabled = 1'"'fltimerB.set true, 2000
- playsound "JackpotFX1"
- ' Golodorak JACKPOT 2:
- 'scoreupdate = false
- 'flushdmdtimer.set true , 4100
- 'DMDframe.set true, 4000
- 'DispDmd1.QueueText "[il1][sf15][ef50]", deNone, 4000, FALSE
- 'DispDmd2.QueueText "[il1][sf15][ef50]", deNone, 4000, FALSE
- DMDFLush
- DMD "DMDJackpotG.gif", "", "", 3000
- 'Golgothkicker1.destroyball
- 'Golgothkicker1.kick 350, 10
- Golgothkicker2timer.Interval = 1000
- Golgothkicker2timer.enabled = True
- 'vpmtimer.addtimer 800, "Golgothkicker2timer '" ' Golgothkicker2timer.Interval = 1000
- end if
- if A6.state = 1 and A7.state = 1 and A8.state = 2 and ballsonplayfield = 1 then
- 'Multiball GO
- 'StopAllMusic
- 'Song = "bgout_GoldorakThemeInstrumental" & ".mp3"
- 'PlayMusic Song
- bMultiBallMode = True
- StopSound Song:Song = ""
- PlaySong "mu_Multiball"
- DMDFLush
- DMD "Multiball.wmv", "", "", 4500
- IntroSmallDMD()
- A1.state = 2
- A2.state = 2
- A3.state = 0
- A4.state = 0
- A5.state = 0
- A6.state = 0
- 'FlashForMs A6, 100, 10, 0 'off
- A7.state = 0
- 'FlashForMs A7, 100, 10, 0 'off
- A8.state = 0
- 'FlashForMs A8, 100, 10, 0 'off
- Ak.state = 0
- 'FlashForMs AKL, 100, 10, 0 'off
- Ab.state = 0
- addscore 500000
- ballsonplayfield = 4
- 'playsound "MainTheme"
- Golgothkicker2timer.Interval = 4000
- Golgothkicker2timer.enabled = True
- 'vpmtimer.addtimer 4000, "Golgothkicker2timer '" ' Golgothkicker2timer.Interval = 1000
- Golgothkicker3timer.Interval = 5000
- Golgothkicker3timer.enabled = True
- 'vpmtimer.addtimer 5000, "Golgothkicker3timer '" ' Golgothkicker2timer.Interval = 1000
- Golgothkicker4timer.Interval = 6000
- Golgothkicker4timer.enabled = True
- 'vpmtimer.addtimer 6000, "Golgothkicker4timer '" ' Golgothkicker2timer.Interval = 1000
- Golgothkicker5timer.Interval = 7000
- Golgothkicker5timer.enabled = True
- 'vpmtimer.addtimer 4000, "Golgothkicker5timer '" ' Golgothkicker2timer.Interval = 1000
- 'scoreupdate = false
- 'flushdmdtimer.set true , 2600
- 'DMDframe.set true, 2500
- 'DispDmd1.QueueText "[f6][xc][y5]MULTIBALL[y18]500.000", deFlip, 2000, True
- 'DispDmd2.QueueText "[f6][xc][y5]MULTIBALL[y18]500.000", deFlip, 2000, True
- 'DMDBlink "black.jpg", " ", "MULTIBALL", 200, 20
- fltimerA.enabled = 1
- vpmtimer.addtimer 6100, "fltimerB.enabled = 1'"'fltimerB.set true, 2000
- 'effectmusic 1, fadeoutandpause, 0, 1
- 'musicin.set true, 4000
- playsound "VilainVegaMaitre"
- 'duringMULTIBALL.play seqalloff
- J1.state = 2
- J2.state = 2
- J3.state = 2
- J4.state = 2
- 'hologram.frame 1, 211, 1
- end if
- if A6.state = 1 and A7.state = 2 and A8.state = 0 and ballsonplayfield = 1 then
- A7.state = 1
- 'FlashForMs A7, 200, 10, 3 'on
- A8.state = 2
- 'FlashForMs A8, 1, 500, 1 'blink
- 'Multiball READY
- Ab.state = 2
- addscore 150000
- Golgothkicker2timer.Interval = 1000
- Golgothkicker2timer.enabled = True
- 'vpmtimer.addtimer 1000, "Golgothkicker5timer '" ' Golgothkicker2timer.Interval = 1000
- 'scoreupdate = false
- 'flushdmdtimer.set true , 2600
- 'DMDframe.set true, 2500
- 'DispDmd1.QueueText "[il1][sf79][ef95]", deNone, 2500, FALSE
- 'DispDmd2.QueueText "[il1][sf79][ef95]", deNone, 2500, FALSE
- 'DispDmd1.QueueText "[f6][xc][y5]BALL 2 LOCKED[y18]150.000", deFlip, 2000, True
- 'DispDmd2.QueueText "[f6][xc][y5]BALL 2 LOCKED[y18]150.000", deFlip, 2000, True
- DMD "black.jpg", " ", "BALL 2 LOCKED", 2000
- fltimerA.enabled = 1
- vpmtimer.addtimer 1000, "fltimerB.enabled = 1'"'fltimerB.set true, 2000
- 'effectmusic 1, fadeoutandpause, 0, 1
- 'musicin.set true, 2000
- playsound "ActarusMetamorphose"
- end if
- if A6.state = 2 and A7.state = 0 and A8.state = 0 and ballsonplayfield = 1 then
- A6.state = 1
- 'FlashForMs A6, 200, 10, 3 'on
- A7.state = 2
- 'FlashForMs A7, 1, 500, 1 'blink
- Ab.state = 2
- addscore 150000
- 'Golgothkicker1.destroyball
- 'Golgothkicker1.kick 350, 10
- Golgothkicker2timer.Interval = 1000
- Golgothkicker2timer.enabled = True
- 'vpmtimer.addtimer 1000, "Golgothkicker5timer '" ' Golgothkicker2timer.Interval = 1000
- 'scoreupdate = false
- 'flushdmdtimer.set true , 2600
- 'DMDframe.set true, 2500
- 'DispDmd1.QueueText "[il1][sf79][ef95]", deNone, 2500, FALSE
- 'DispDmd2.QueueText "[il1][sf79][ef95]", deNone, 2500, FALSE
- 'DispDmd1.QueueText "[f6][xc][y5]BALL 1 LOCKED[y18]150.000", deFlip, 2000, True
- 'DispDmd2.QueueText "[f6][xc][y5]BALL 1 LOCKED[y18]150.000", deFlip, 2000, True
- DMD "black.jpg", " ", "BALL 1 LOCKED", 2000
- fltimerA.enabled = 1
- vpmtimer.addtimer 1500, "fltimerB.enabled = 1'"'fltimerB.set true, 2000
- 'effectmusic 1, fadeoutandpause, 0, 1
- 'musicin.set true, 3000
- playsound "Actarus01"
- end if
- if Ab.state = 0 and ballsonplayfield = 1 then
- addscore 10000
- Ak.state = 1
- 'FlashForMs AKL, 200, 10, 3 'on
- vpmtimer.addtimer 1000, "Golgothkicker1timer '" 'Golgothkicker1timer.Interval = 1000
- playsound "soundFXkicker1"
- end if
- LastSwitchHit = "Golgothkicker1"
- end sub
- Sub Golgothkicker1_UnHit
- vpmtimer.addtimer 500, "Golgothkicker1Fake.enabled = 1 '"
- vpmtimer.addtimer 500, "Golgothkicker1.Kick 370, 20 '"
- End Sub
- sub Golgothkicker1timer()
- Golgothkicker1.kick 230, 45, 1.5
- FlashForms AKL, 1000, 50, 0
- FlashForms flasher8, 1000, 50, 0
- FlashForms flasher8b, 1000, 50, 0
- FlashForms flasher7, 1000, 50, 0
- FlashForms flasher7b, 1000, 50, 0
- playsound "soundfx17"
- end sub
- sub Golgothkicker2timer_Timer()
- Golgothkicker2timer.enabled = False
- Golgothkicker1.Kick 370, 20
- FlashForms flasher8, 1000, 50, 0
- FlashForms flasher8b, 1000, 50, 0
- If ballsonplayfield = 1 Then
- DMDBlink "black.jpg", " ", "GO FOR MULTIBALL", 100, 20
- End If
- end sub
- sub Golgothkicker3timer_Timer()
- Golgothkicker3timer.enabled = False
- playsound "soundfx17"
- Golgothkicker2.createball
- Golgothkicker2.Kick 0, 50, 1.5
- FlashForms flasher8, 1000, 50, 0
- FlashForms flasher8b, 1000, 50, 0
- end sub
- sub Golgothkicker4timer_Timer()
- Golgothkicker4timer.enabled = False
- playsound "soundfx17"
- Golgothkicker2.createball
- Golgothkicker2.Kick 0, 50, 1.5
- FlashForms flasher8, 1000, 50, 0
- FlashForms flasher8b, 1000, 50, 0
- end sub
- sub Golgothkicker5timer_Timer()
- Golgothkicker5timer.enabled = False
- playsound "soundfx17"
- Golgothkicker2.createball
- Golgothkicker2.Kick 0, 50, 1.5
- FlashForms flasher8, 1000, 50, 0
- FlashForms flasher8b, 1000, 50, 0
- EnableBallSaver 15
- end sub
- Sub Golgothkicker2_Hit
- Golgothkicker2.Kick 0, 50, 1.5
- playsound "soundfx17"
- end sub
- Sub Golgothkicker2_UnHit
- playsound "fx_vukout_LAH"
- AlabardaAnim
- end sub
- '***************************************************************************************
- '-----EXTRA BALL SCRIPT (after multiball drain EXTRA BALL blinks for the target)--------
- Sub Target3_hit()
- startB2S(1)
- PlaySound "fx_rubber"
- addscore 5000
- if ExtraBall.state = 2 then
- ExtraBall.state = 0
- ExtraBallsAwards(CurrentPlayer) = ExtraBallsAwards(CurrentPlayer) + 1 ' awards extra ball to current player
- FlashForMs ShootAgainLightF, 200, 10, 1 'on
- 'ShootAgainLight.state = 1
- addscore 25000
- 'effectmusic 1, fadeoutandpause, 0, 1
- 'musicin.set true, 2000
- playsound "goldrake pioggia di fuoco"
- 'scoreupdate = false
- 'flushdmdtimer.set true , 2600
- 'DMDframe.set true, 2500
- 'DispDmd1.QueueText "[f6][edge4][b][y4]EXTRA BALL[y17]]25.000[/b]", deFlip, 2000, True
- 'DispDmd2.QueueText "[f6][edge4][b][y4]EXTRA BALL[y17]]25.000[/b]", deFlip, 2000, True
- DMDBlink "black.jpg", " ", "EXTRA BALL", 100, 20
- FlashEffect 2
- end if
- LastSwitchHit = "Target3"
- End Sub
- '***************************************************************************************
- '-----ORBIT SCRIPT-----------------------------------------------------------------------
- sub Orbit_hit()
- ' MARIA FREED JACKPOT during Multiball (if ballsonpf = 2 3 4):
- if ballsonplayfield = 4 then
- addscore 1000000
- playsound "soundOrbit"
- 'scoreupdate = false
- 'flushdmdtimer.set true , 4100
- 'DMDframe.set true, 4000
- DMDFLush
- DMD "DMDJackpotM.gif", "", "", 2000
- 'DispDmd1.QueueText "[il1][sf51][ef70]", deNone, 4000, FALSE
- 'DispDmd2.QueueText "[il1][sf51][ef70]", deNone, 4000, FALSE
- end if
- if ballsonplayfield = 3 then
- addscore 500000
- playsound "soundOrbit"
- 'scoreupdate = false
- 'flushdmdtimer.set true , 4100
- 'DMDframe.set true, 4000
- DMDFLush
- DMD "DMDJackpotM.gif", "", "", 2000
- 'DispDmd1.QueueText "[il1][sf51][ef70]", deNone, 4000, FALSE
- 'DispDmd2.QueueText "[il1][sf51][ef70]", deNone, 4000, FALSE
- end if
- if ballsonplayfield = 2 then
- addscore 250000
- playsound "soundOrbit"
- 'scoreupdate = false
- 'flushdmdtimer.set true , 4100
- 'DMDframe.set true, 4000
- DMDFLush
- DMD "DMDJackpotM.gif", "", "", 2000
- 'DispDmd1.QueueText "[il1][sf51][ef70]", deNone, 4000, FALSE
- 'DispDmd2.QueueText "[il1][sf51][ef70]", deNone, 4000, FALSE
- end if
- if ballsonplayfield = 1 then
- addscore 15000
- playsound "soundOrbit"
- fltimer1.enabled = true
- vpmtimer.addtimer 1000, "fltimer2.enabled = 1 '" 'fltimer2.enabled = true
- end if
- end sub
- '***************************************************************************************
- '---ACTARUS 2 BALL SCRIPT-----------------------------------------------------------------------
- '---Lockhole script-------
- sub lockhole_hit()
- playsound "rballfall"
- if ballsonplayfield = 4 then
- lockhole.Kick 80,5
- end if
- if ballsonplayfield = 3 then
- lockhole.Kick 80,5
- end if
- if ballsonplayfield = 2 then
- lockhole.Kick 80,5
- end if
- if B4.state = 1 and B5.state = 2 and ballsonplayfield = 1 then
- B1.state = 2
- B2.state = 0
- B3.state = 0
- B4.state = 0
- B5.state = 0
- playsound "goldrake music"
- 'duringMULTIBALL.play seqalloff
- J1.state = 2
- J2.state = 2
- J3.state = 2
- J4.state = 2
- lockhole.Kick 80,5
- FlashForMs flasher9, 100, 10, 0 'off
- FlashForms flasher9b, 100, 10, 0
- vpmtimer.addtimer 3000, "ball1out '"
- vpmtimer.addtimer 4000, "ball2out '"
- addscore 250000
- 'effectmusic 1, fadeoutandpause, 0, 1
- 'musicin.set true, 2000
- playsound "goldrake Missile"
- 'scoreupdate = false
- 'flushdmdtimer.set true , 2600
- 'DMDframe.set true, 2500
- 'DispDmd1.QueueText "[f6][edge4][b][y4]MULTIBALL[y17]150.000[/b]", deFlip, 2000, True
- 'DispDmd2.QueueText "[f6][edge4][b][y4]MULTIBALL[y17]150.000[/b]", deFlip, 2000, True
- 'DMDBlink "black.jpg", " ", "MULTIBALL", 200, 20
- bMultiBallMode = True
- IntroSmallDMD
- StopSound Song:Song = ""
- PlaySong "mu_Multiball"
- DMDFLush
- DMD "Multiball.wmv", "", "", 4500
- fltimerA.enabled = 1
- vpmtimer.addtimer 2000, "fltimerB.enabled = 1 '"
- 'hologram.frame 1, 211, 1
- end if
- if B4.state = 2 and B5.state = 0 and ballsonplayfield = 1 then
- B4.state = 1
- B5.state = 2
- lockhole.Kick 80,5
- FlashForMs flasher9, 100, 10, 0 'off
- FlashForMs flasher9b, 100, 10, 0 'off
- ActaruskicktorampTimer.interval = 2000
- ActaruskicktorampTimer.enabled = True
- 'vpmtimer.addtimer 2000, "Actaruskicktoramp '"'Actaruskicktoramp.set true, 2000
- addscore 150000
- 'effectmusic 1, fadeoutandpause, 0, 1
- 'musicin.set true, 2000
- 'playsound "goldrake lame rotanti"
- 'lama.moveto lama.tx-260, lama.ty, lama.tz+550, +900
- 'lama2.moveto lama2.tx+220, lama2.ty, lama2.tz+670, +800
- 'lama.rotatexz 800
- 'lama2.rotatexz 800
- 'Timerlama.set true , 2200
- LameAnimOn
- FlashForMs flasher2, 100, 10, 0 'off
- FlashForMs flasher6, 100, 10, 0 'off
- 'scoreupdate = false
- 'flushdmdtimer.set true , 2600
- 'DMDframe.set true, 2500
- 'DispDmd1.QueueText "[f6][edge4][b][y4]BALL 1 LOCKED[y17]75.000[/b]", deFlip, 2000, True
- 'DispDmd2.QueueText "[f6][edge4][b][y4]BALL 1 LOCKED[y17]75.000[/b]", deFlip, 2000, True
- 'DMD "black.jpg", " ", "BALL 1 LOCKED", 2000
- fltimerA.enabled = 1
- vpmtimer.addtimer 2000, "fltimerB.enabled = 1 '"
- end if
- end sub
- Sub LockholeFake_Hit
- if ballsonplayfield = 4 then
- LockholeFake.Kick 0,5
- vpmtimer.addtimer 700, "Actaruskicker1.kick 0, 25, 1.5 '"
- end if
- if ballsonplayfield = 3 then
- LockholeFake.Kick 80,5
- vpmtimer.addtimer 700, "Actaruskicker1.kick 0, 25, 1.5 '"
- end if
- if ballsonplayfield = 2 then
- LockholeFake.Kick 0,5
- vpmtimer.addtimer 700, "Actaruskicker1.kick 0, 25, 1.5 '"
- end if
- End Sub
- Sub closediverter_hit
- ' GolgothRotateTimer.enabled = 0
- End Sub
- Dim Lame
- Sub LameAnimOn()
- DMDSmallSequence 67, 92
- LameAnimTimer.enabled = 1
- End Sub
- Sub LameAnimTimer_Timer
- Lama1.rotY = Lama1.rotY - 1
- Lama2.rotY = Lama2.rotY + 1
- Lame = Lame + 1
- End Sub
- Sub LameAnimTimerOff_Timer
- LameAnimTimerS.enabled = 0
- LameAnimTimer.enabled = 0
- Lame = Lame - 1
- Lama1.rotY = Lama1.rotY + 1
- Lama2.rotY = Lama2.rotY - 1
- End Sub
- Sub LameAnimTimerS_Timer
- Lama1.visible = 0 :Lama2.visible = 0
- Lama1B.visible = 1 :Lama2B.visible = 1
- Lama1B.rotY = Lama1B.rotY + 3
- Lama2B.rotY = Lama2B.rotY - 3
- End Sub
- Sub LameAnimTimerOffS()
- Lama1B.rotY = 0
- Lama2B.rotY = 0
- Lama1.visible = 1 :Lama2.visible = 1
- Lama1B.visible = 0 :Lama2B.visible = 0
- End Sub
- '---ACTARUS kicker (initiates Lock in LOCKHOLE)-----
- Sub Actaruskicker1_hit()
- If B2SOn Then Controller.B2SSetData 5,0:Controller.B2SSetData 5,1
- 'DMD "DMD meta.gif", "", "", 2800
- ActarusKicker1Fake.enabled = 0
- playsound "fx_kicker-enter"
- 'ActarusKicker1.destroyball
- if ballsonplayfield = 4 then
- FlashForMs flasher9, 1000, 10, 0 'off
- FlashForMs flasher9b, 1000, 10, 0 'off
- ActarusKicker1.kick 285, 10
- ActaruskicktorampTimer.Interval = 2000
- ActaruskicktorampTimer.Enabled = True
- 'vpmtimer.addtimer 1000, "Actaruskicktoramp '"
- vpmtimer.addtimer 2100, "ActarusKicker1Fake.enabled = 1 '"
- addscore 50000
- end if
- if ballsonplayfield = 3 then
- FlashForMs flasher9, 1000, 10, 0 'off
- FlashForMs flasher9b, 1000, 10, 0 'off
- ActarusKicker1.kick 285, 10
- ActaruskicktorampTimer.Interval = 2000
- ActaruskicktorampTimer.Enabled = True
- 'vpmtimer.addtimer 1000, "Actaruskicktoramp '"
- vpmtimer.addtimer 2100, "ActarusKicker1Fake.enabled = 1 '"
- addscore 50000
- end if
- if ballsonplayfield = 2 then
- FlashForMs flasher9, 1000, 10, 0 'off
- FlashForMs flasher9b, 1000, 10, 0 'off
- ActarusKicker1.kick 285, 10
- ActaruskicktorampTimer.Interval = 2000
- ActaruskicktorampTimer.Enabled = True
- 'vpmtimer.addtimer 1000, "Actaruskicktoramp '"
- vpmtimer.addtimer 2100, "ActarusKicker1Fake.enabled = 1 '"
- addscore 50000
- end if
- if B1.state = 1 and B2.state = 1 and B3.state = 1 and ballsonplayfield = 1 then
- playsound "soundfxchair"
- addscore 25000
- Bulb5.state = 1
- Bulb5L.state = 1
- ActaruskickstRaight.interval = 1000
- ActaruskickstRaight.enabled = True
- 'vpmtimer.addtimer 1000, "Actaruskickstraight '"
- 'vpmtimer.addtimer 1000, "Actaruskickstraight '"
- playsound "soundFXkicker1"
- 'scoreupdate = false
- 'flushdmdtimer.set true , 4100
- 'DMDframe.set true, 4000
- 'DispDmd1.QueueText "[il1][sf71][ef78][rf71]", deNone, 4000, FALSE
- 'DispDmd2.QueueText "[il1][sf71][ef78][rf71]", deNone, 4000, FALSE
- DMDSmallSequence 162, 171
- DMD "Black.jpg", " ", "LOCK IS LIT", 2000
- end if
- if B1.state = 1 and B2.state = 1 and B3.state = 2 and ballsonplayfield = 1 then
- playsound "soundfxchair"
- B3.state = 1
- B4.state = 2
- Lockdiverter.RotateToEnd
- addscore 2000
- FlashForMs flasher9, 1000, 10, 0 'off
- FlashForMs flasher9b, 1000, 10, 0 'off
- 'effectmusic 1, fadeoutandpause, 0, 1
- 'musicin.set true, 2000
- playsound "goldrake tuono"
- ActarusKicker1.kick 285, 10
- ActaruskicktorampTimer.Interval = 2000
- ActaruskicktorampTimer.Enabled = True
- 'vpmtimer.addtimer 1000, "Actaruskicktoramp '"
- vpmtimer.addtimer 2100, "ActarusKicker1Fake.enabled = 1 '"
- 'scoreupdate = false
- 'flushdmdtimer.set true , 4100
- 'DMDframe.set true, 4000
- DMDSmallSequence 162, 171
- DMD "Black.jpg", " ", "LOCK IS LIT", 2000
- 'fltimerA.set true, 1
- 'fltimerB.set true, 2000
- fltimerA.enabled = 1
- end if
- if B1.state = 1 and B2.state = 2 and B3.state = 0 and ballsonplayfield = 1 then
- playsound "soundfxchair"
- B2.state = 1
- B3.state = 2
- addscore 20000
- FlashForMs flasher9, 1000, 10, 0 'off
- FlashForMs flasher9b, 1000, 10, 0 'off
- ActarusKicker1.kick 285, 10
- ActaruskicktorampTimer.Interval = 2000
- ActaruskicktorampTimer.Enabled = True
- 'vpmtimer.addtimer 1000, "Actaruskicktoramp '"
- vpmtimer.addtimer 2100, "ActarusKicker1Fake.enabled = 1 '"
- 'scoreupdate = false
- 'flushdmdtimer.set true , 4100
- 'DMDframe.set true, 4000
- 'DispDmd1.QueueText "[il1][sf71][ef78][rf71]", deNone, 4000, FALSE
- 'DispDmd2.QueueText "[il1][sf71][ef78][rf71]", deNone, 4000, FALSE
- end if
- if B1.state = 2 and B2.state = 0 and B3.state = 0 and ballsonplayfield = 1 then
- playsound "soundfxchair"
- B1.state = 1
- B2.state = 2
- addscore 15000
- Bulb5.state = 1
- Bulb5L.state = 1
- ActaruskickstRaight.interval = 1000
- ActaruskickstRaight.enabled = True
- 'vpmtimer.addtimer 1000, "Actaruskickstraight '"
- playsound "soundFXkicker1"
- 'scoreupdate = false
- 'flushdmdtimer.set true , 4100
- 'DMDframe.set true, 4000
- 'DispDmd1.QueueText "[il1][sf71][ef78][rf71]", deNone, 4000, FALSE
- 'DispDmd2.QueueText "[il1][sf71][ef78][rf71]", deNone, 4000, FALSE
- DMDSmallSequence 131, 141
- end if
- LastSwitchHit = "ActarusKicker1"
- end sub
- Sub ActarusKicker1_UnHit
- Actaruskicker2.kick 0, 45, 1.5
- End Sub
- sub Timerbulb_Timer()
- Timerbulb.enabled = 0
- gi4.state = 1
- gi3.state = 1
- gi5.state = 1
- gi6.state = 1
- End Sub
- '---Kickout Timers-------
- sub ActaruskickstRaight_Timer()
- '---straight if B1 or B3 or B5 blink
- ActaruskickstRaight.enabled = False
- playsound "fx_kicker"
- ActarusMoveA.enabled = 1
- Actaruskicker1.Kick 0, 25, 1.5
- Bulb5.state = 0
- Bulb5L.state = 0
- playsound "soundfx17"
- vpmtimer.addtimer 2100, "ActarusKicker1Fake.enabled = 1 '"
- end sub
- sub ActaruskicktorampTimer_Timer()
- ActaruskicktorampTimer.enabled = False
- ActarusMoveC.enabled = 1
- playsound "soundfxchair"
- '---if B2 or B4 blink & during Multiball
- Actaruskicker2.kick 0, 45, 1.5
- FlashForMs flasher9, 100, 10, 0 'off
- FlashForMs flasher9b, 100, 10, 0 'off
- playsound "soundfx17"
- end sub
- '---2 Ball Multiball Timers-------
- sub ball1out()
- playsound "soundfx17"
- 'Actaruskicker2.createball
- Actaruskicker2.kick 0, 45, 1.5
- vpmtimer.addtimer 500, "Actaruskicker1.kick 0, 25, 1.5 '"
- FlashForMs flasher9, 100, 10, 0 'off
- FlashForMs flasher9b, 100, 10, 0 'off
- EnableBallSaver 15
- end sub
- sub ball2out
- playsound "soundfx17"
- Actaruskicker2.createball
- Actaruskicker2.kick 0, 45, 1.5
- vpmtimer.addtimer 700, "Actaruskicker1.kick 0, 25, 1.5 '"
- FlashForMs flasher9, 100, 10, 0 'off
- FlashForMs flasher9b, 100, 10, 0 'off
- BallsOnPlayfield = 2
- end sub
- Dim ComboM
- Sub CheckComboMultiball()
- If bMultiBallMode then Exit Sub
- If ComboM = 3 Then
- DMD "Black.jpg", ComboM &" Combos-> 7 More For", "MULTIBALL", 2000
- End If
- If ComboM = 6 Then
- DMD "Black.jpg", ComboM &" Combos-> 4 More For", "MULTIBALL", 2000
- End If
- If ComboM = 9 Then
- DMD "Black.jpg", ComboM &" Combos-> 1 More For", "MULTIBALL", 2000
- End If
- If ComboM = 10 Then
- ComboM = 0
- DMD ".jpg", ComboM &" Combos Ready For", "MULTIBALL", 2000
- vpmtimer.addtimer 3000, "ComboMultiball '"
- End If
- End Sub
- Sub ComboMultiball()
- StopSound Song:Song = ""
- PlaySong "mu_Multiball"
- AddMultiball 3
- DMDSmallSequence 144, 188
- DMD "ComboMultiball.wmv", "", "", 1150
- End Sub
- Sub StopAllMusic:EndMusic:End Sub
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement