Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- Option Explicit
- Randomize
- 'V0.9.5 change log - final update before summer break ;-)
- '- music bugs fixed
- '- edited points: added 1000000 pts for each spot mastered
- '- new mode prepared (!): videomode
- '- each time you survive a mode adds one point to your "modecounter"
- '- 3, 6, 9, 12 points gives you the chance for videomode (lock the ball in upper playfield)
- '- best POV: make sure you see the black line on the wave at the backwall for full water experience ;-)
- 'Rules Endless Summer Pinball
- '
- '*skillshot* (every new ball)
- ' - hit highlighted board with your first shot
- '
- '*normal mode* (pre-set sequence)
- ' - hit all equipment targets on lower left side
- ' - hit right ramp 3 times to collect boards
- '
- ' - hit flashing arrow at right side to buy ticket
- ' - hit lower arc to check-in (ball gets locked, new ball in plunger lane)
- ' - hit upper arc to start flight (multiball starts if there is a locked ball)
- '
- ' - wax your boards: hit middle ramp and ride 10 rounds in the bowl
- '
- ' the left ramp is now open and *surf mode* starts
- '
- '*surf mode*
- ' - ride upper lanes (left/right) to get "loop" bonus (15 = extraball, 20 = jackpot, as much as you want, dont get seasick ;-)
- ' - hit right ramp to get "offthelip" bonus (15 = extraball, 20 = jackpot, as much as you want, dont get seasick ;-)
- ' - hit wax bowl to get "aerial360" bonus (15 = extraball, 20 = jackpot, as much as you want, dont get seasick ;-)
- ' - hit left ramp to ride tubes (3 times to finish *surf mode*)
- '
- ' - then proceed to the next surfspot ;-)
- '
- 'while in *normal mode* you want to start timelimited *bonus modes*
- '
- '*bonus modes* (not available throughout *surf mode*) are:
- '
- '*endless summer mode* (30 sec)
- ' - to start, hit all ENDLESS SUMMER targets (targets NOT resetted after drains)
- ' - ride upper lanes (left or right) to get "endless summer bonus" (10 = extraball, 15 = jackpot, max)
- '
- '*skeet surfing mode* (15 sec)
- ' - to start, hit all SKEET targets (targets are NOT resetted after drains)
- ' - hit any of the 4 blinking white targets to shoot "clays" (10 = extraball, 15 = jackpot, max)
- '
- '*sexwaxfrenzy mode* (40 sec)
- ' - to start, hit sexwax-bumper 3 times (counter IS resetted after drains)
- ' - hit middle ramp and surfboards alternatingly to get "sexwaxfrenzy bonus" (10 = extraball, 15 = jackpot, max)
- '
- '*surfers nightmare* (also available in surf mode)
- ' - you need more balls?
- ' - to start, hit the 4 small targets (starting any other mode or drain resets the lights)
- ' - find and hit the man in the grey suit 5 times to get an extraball
- ' - mode available if extraball is not lit already and maximum 3 times per game
- ' - mode will not start during multiball
- '
- '
- ' ! to prevent a total chaos:
- ' ! throughout any *bonus mode* and *surf mode*
- ' ! - endless summer and skeet targets are disabled
- ' ! - bumper hits are not added to sexwaxfrenzy mode
- ' ! - right ramp does not collect boards
- ' ! means: one mode at a time only (except surfers nightmare mode)
- '
- ' ! try to be a well-rounded surfer:
- ' ! each different of the six available bonus modes
- ' ! adds to your variety multiplier
- '
- 'bonuscount: (endless summer bonus + skeet bonus + sexwaxfrenzy bonus
- ' + offthelips + loops + aerial360s) * 10000 = Total Bonus
- ' Total Bonus * variety multiplier (1-6)
- '
- ' = BIG points or skip the joints ;-)
- '
- '* videomode* (not yet finished, sry, I need more time on water now ;-)
- ' - each time you finish a mode (endless summer, skeetsurfing or sexwaxfrenzy) adds one point to your mode counter
- ' - 3, 6, 9 and 12 point offers the chance for videomode
- ' - you have 15 seconds to lock the ball and start the videomode
- ' - control the surfer with flippers, dont get hit by the lip, dont get too high on the wave, avoid obstacles (upcoming)
- '
- '
- ' Good to know about a multiplayer game:
- ' Of course, each player has his own score and own progress.
- ' But, the same as in single player mode: Drop targets on the upper playfield
- ' "ENDLESS SUMMER" and "SKEET" will not be resetted after a drain!
- ' An advantage for the next player...but sometimes you should give away
- ' your wave to the better positioned surfer - Aloha Spirit
- '
- ' Hang Loose!
- '
- '
- '
- '**************************************************************************
- ' Big thanks to Thalamus, bord, JP Salas, Flupper, DJRobX, NailBuster, TerryRed, ninuzzu, HauntFreaks,
- ' ROM, rothbauerw, borgdog, Mussinger, toxie, JR, randr, GTO77, BeachBumTN, ScottyVH, ScottyWic,
- ' fuzzel, Schreibi34, MajorFrenchy, gtxjoe, supered, 3rdaxis, wrd1972, sliderpoint, mfuegemann,
- ' all those that I forgot, sorry dudes, and all the beta-testers who helped and encouraged me!
- ' (some of the above mentioned dont even know that they helped me somehow ;-)
- 'Most big thanks to my family allowing me spending so much time on these pinball bits & bytes...!!!
- 'Code contains parts of Orbital Framework 0.1 and lots of parts from other authors:
- 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX
- ' X X X X X X X X X X X X X X X X X X X X X X X
- '/ \/ \/ \/ \/ \/ \/ \/ \/ \/ \/ \/ \/ \/ \/ \/ \/ \/ \/ \/ \/ \/ \/ \/
- ' Credits
- '\ /\ /\ /\ /\ /\ /\ /\ /\ /\ /\ /\ /\ /\ /\ /\ /\ /\ /\ /\ /\ /\ /\ /\
- ' X X X X X X X X X X X X X X X X X X X X X X X
- ' Compiled and built by Scottywic
- ' Code snippets by JP Salas, Flupper, DJRobX, NailBuster, ninuzzu, HauntFreaks rothbauerw & many more.
- ' For details using this framework check https://www.youtube.com/channel/UC_vroB2Uboi8GytbQSIepPQ
- 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX
- ' X X X X X X X X X X X X X X X X X X X X X X X
- '/ \/ \/ \/ \/ \/ \/ \/ \/ \/ \/ \/ \/ \/ \/ \/ \/ \/ \/ \/ \/ \/ \/ \/
- ' Player Options
- '\ /\ /\ /\ /\ /\ /\ /\ /\ /\ /\ /\ /\ /\ /\ /\ /\ /\ /\ /\ /\ /\ /\ /\
- ' X X X X X X X X X X X X X X X X X X X X X X X
- 'turnoffrules = 1 ' change to 1 to take off the backglass helper rules text during a game - not available yet
- turnonultradmd = 1 ' change to 1 to turn on ultradmd
- toppervideo = 1 'set to 1 to turn on the topper
- ballrolleron = 1 ' set to 0 to turn off the ball roller if you use the "c" key in your cabinet
- boardshake=2 ' (0=off,5=max) factor for how much surfboards wobble
- 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX
- ' X X X X X X X X X X X X X X X X X X X X X X X
- '/ \/ \/ \/ \/ \/ \/ \/ \/ \/ \/ \/ \/ \/ \/ \/ \/ \/ \/ \/ \/ \/ \/ \/
- ' FRAMEWORK Options
- '\ /\ /\ /\ /\ /\ /\ /\ /\ /\ /\ /\ /\ /\ /\ /\ /\ /\ /\ /\ /\ /\ /\ /\
- ' X X X X X X X X X X X X X X X X X X X X X X X
- Const typefont ="CandyPop!"
- Const numberfont ="Good Vibrations"
- Const zoomfont = "Good Vibrations"
- Const zoombgfont = "Fundamental 3D Brigade" ' needs to be an outline of the zoomfont
- Const cGameName = "ndlsmr"
- Const TableName = "ndlsmr"
- Const myVersion = "1.0.0"
- '********************************************************************************************************************************************
- '********************************************************************************************************************************************
- 'ORBITAL FRAMEWORK BASE CODE STARTS HERE
- '********************************************************************************************************************************************
- '********************************************************************************************************************************************
- 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX
- ' X X X X X X X X X X X X X X X X X X X X X X X
- '/ \/ \/ \/ \/ \/ \/ \/ \/ \/ \/ \/ \/ \/ \/ \/ \/ \/ \/ \/ \/ \/ \/ \/
- ' VARIABLES
- '\ /\ /\ /\ /\ /\ /\ /\ /\ /\ /\ /\ /\ /\ /\ /\ /\ /\ /\ /\ /\ /\ /\ /\
- ' X X X X X X X X X X X X X X X X X X X X X X X
- '
- 'Constructions
- Const BallSize = 50
- Const MaxPlayers = 4
- Const BallSaverTime = 15
- Const MaxMultiplier = 6
- Const MaxMultiballs = 5
- Const bpgcurrent = 3
- ' Define Global Variables
- Dim toppervideo
- Dim ballrolleron
- Dim turnonultradmd
- Dim turnoffrules
- 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 WaffleScore(4)
- Dim WaffleScoreName(4)
- Dim Jackpot
- Dim SuperJackpot
- Dim Tilt
- Dim TiltSensitivity
- Dim Tilted
- Dim TotalGamesPlayed
- Dim mBalls2Eject
- Dim SkillshotValue(4)
- Dim bAutoPlunger
- Dim bInstantInfo
- Dim bromconfig
- Dim bAttractMode
- Dim LastSwitchHit
- Dim BallsOnPlayfield
- Dim BallsInHole
- Dim bFreePlay
- Dim bGameInPlay
- Dim bOnTheFirstBall
- Dim bBallInPlungerLane
- Dim bBallSaverActive
- Dim bBallSaverReady
- Dim bMultiBallMode
- Dim bMusicOn
- Dim bSkillshotReady
- Dim bExtraBallWonThisBall
- Dim bJustStarted
- Dim xx
- Dim a
- Dim boardshake
- Dim bESMode
- Dim bSexwaxfrenzyMode
- Dim bSkeetMode
- Dim bSurfMode
- Dim bumpercount '3 starts sexwaxfrenzymode, set to 0 after mode and after drain (if not multiball)
- Dim waxcount (4)
- Dim boards (4)
- Dim endlesssummerbonus
- Dim endlesssummerbonuspre
- Dim Skeetbonus
- Dim Skeetbonuspre
- Dim Sexwaxfrenzybonus
- Dim Sexwaxfrenzybonuspre
- Dim loopbonus
- Dim loopbonuspre
- Dim offthelipbonus
- Dim offthelipbonuspre
- Dim aerialbonus
- Dim aerialbonuspre
- Dim diversitymultiplier
- Dim spotmastered (4)
- Dim AwardPoints
- Dim TotalBonus
- Dim ii
- Dim waxcountleft
- Dim progress(4)'defines if normalmode (0) or surfmode (1)
- Dim Extraballscount
- Dim SharkModeCounter
- Dim Sharkextraballs
- Dim ballstate
- Dim sharkmode
- Dim modecount
- ' Game Variables
- Dim LaneBonus
- Dim TargetBonus
- Dim RampBonus
- Dim OrbitBonus
- Dim spinvalue
- Dim finalflips
- Dim Saves
- Dim Drains
- Dim inmode
- LoadCoreFiles
- Sub LoadCoreFiles
- On Error Resume Next
- ExecuteGlobal GetTextFile("core.vbs")
- If Err Then MsgBox "Can't open core.vbs"
- On Error Goto 0
- End Sub
- Dim EnableBallControl
- EnableBallControl = true 'Change to true to enable manual ball control (or press C in-game) via the arrow keys and B (boost movement) keys
- 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX
- ' X X X X X X X X X X X X X X X X X X X X X X X
- '/ \/ \/ \/ \/ \/ \/ \/ \/ \/ \/ \/ \/ \/ \/ \/ \/ \/ \/ \/ \/ \/ \/ \/
- ' Controller VBS stuff, but with b2s not started
- '\ /\ /\ /\ /\ /\ /\ /\ /\ /\ /\ /\ /\ /\ /\ /\ /\ /\ /\ /\ /\ /\ /\ /\
- ' X X X X X X X X X X X X X X X X X X X X X X X
- '***Controller.vbs version 1.2***'
- '
- Const directory = "HKEY_CURRENT_USER\SOFTWARE\Visual Pinball\Controller\"
- Dim objShell
- Dim PopupMessage
- Dim B2SController
- Dim Controller
- Const DOFContactors = 1
- Const DOFKnocker = 2
- Const DOFChimes = 3
- Const DOFBell = 4
- Const DOFGear = 5
- Const DOFShaker = 6
- Const DOFFlippers = 7
- Const DOFTargets = 8
- Const DOFDropTargets = 9
- Const DOFOff = 0
- Const DOFOn = 1
- Const DOFPulse = 2
- Dim DOFeffects(9)
- Dim B2SOn
- Dim B2SOnALT
- Sub LoadEM
- LoadController("EM")
- End Sub
- Sub LoadPROC(VPMver, VBSfile, VBSver)
- LoadVBSFiles VPMver, VBSfile, VBSver
- LoadController("PROC")
- End Sub
- Sub LoadVPM(VPMver, VBSfile, VBSver)
- LoadVBSFiles VPMver, VBSfile, VBSver
- LoadController("VPM")
- End Sub
- Sub LoadVPMALT(VPMver, VBSfile, VBSver)
- LoadVBSFiles VPMver, VBSfile, VBSver
- LoadController("VPMALT")
- End Sub
- Sub LoadVBSFiles(VPMver, VBSfile, VBSver)
- On Error Resume Next
- If ScriptEngineMajorVersion < 5 Then MsgBox "VB Script Engine 5.0 or higher required"
- ExecuteGlobal GetTextFile(VBSfile)
- If Err Then MsgBox "Unable to open " & VBSfile & ". Ensure that it is in the same folder as this table. " & vbNewLine & Err.Description
- InitializeOptions
- End Sub
- Sub LoadVPinMAME
- Set Controller = CreateObject("VPinMAME.Controller")
- If Err Then MsgBox "Can't load VPinMAME." & vbNewLine & Err.Description
- If VPMver > "" Then If Controller.Version < VPMver Or Err Then MsgBox "VPinMAME ver " & VPMver & " required."
- If VPinMAMEDriverVer < VBSver Or Err Then MsgBox VBSFile & " ver " & VBSver & " or higher required."
- On Error Goto 0
- End Sub
- Sub LoadController(TableType)
- Dim FileObj
- Dim DOFConfig
- Dim TextStr2
- Dim tempC
- Dim count
- Dim ISDOF
- Dim Answer
- B2SOn = False
- B2SOnALT = False
- tempC = 0
- on error resume next
- Set objShell = CreateObject("WScript.Shell")
- objShell.RegRead(directory & "ForceDisableB2S")
- If Err.number <> 0 Then
- PopupMessage = "This latest version of Controller.vbs stores its settings in the registry. To adjust the values, you must use VP 10.2 (or newer) and setup your configuration in the DOF section of the -Keys, Nudge and DOF- dialog of Visual Pinball."
- objShell.RegWrite directory & "ForceDisableB2S",0, "REG_DWORD"
- objShell.RegWrite directory & "DOFContactors",2, "REG_DWORD"
- objShell.RegWrite directory & "DOFKnocker",2, "REG_DWORD"
- objShell.RegWrite directory & "DOFChimes",2, "REG_DWORD"
- objShell.RegWrite directory & "DOFBell",2, "REG_DWORD"
- objShell.RegWrite directory & "DOFGear",2, "REG_DWORD"
- objShell.RegWrite directory & "DOFShaker",2, "REG_DWORD"
- objShell.RegWrite directory & "DOFFlippers",2, "REG_DWORD"
- objShell.RegWrite directory & "DOFTargets",2, "REG_DWORD"
- objShell.RegWrite directory & "DOFDropTargets",2, "REG_DWORD"
- MsgBox PopupMessage
- End If
- tempC = objShell.RegRead(directory & "ForceDisableB2S")
- DOFeffects(1)=objShell.RegRead(directory & "DOFContactors")
- DOFeffects(2)=objShell.RegRead(directory & "DOFKnocker")
- DOFeffects(3)=objShell.RegRead(directory & "DOFChimes")
- DOFeffects(4)=objShell.RegRead(directory & "DOFBell")
- DOFeffects(5)=objShell.RegRead(directory & "DOFGear")
- DOFeffects(6)=objShell.RegRead(directory & "DOFShaker")
- DOFeffects(7)=objShell.RegRead(directory & "DOFFlippers")
- DOFeffects(8)=objShell.RegRead(directory & "DOFTargets")
- DOFeffects(9)=objShell.RegRead(directory & "DOFDropTargets")
- Set objShell = nothing
- If TableType = "PROC" or TableType = "VPMALT" Then
- If TableType = "PROC" Then
- Set Controller = CreateObject("VPROC.Controller")
- If Err Then MsgBox "Can't load PROC"
- Else
- LoadVPinMAME
- End If
- If tempC = 0 Then
- On Error Resume Next
- If Controller is Nothing Then
- Err.Clear
- Else
- Set B2SController = CreateObject("B2S.Server")
- If B2SController is Nothing Then
- Err.Clear
- Else
- B2SController.B2SName = B2ScGameName
- B2SController.Run()
- On Error Goto 0
- B2SOn = True
- B2SOnALT = True
- End If
- End If
- End If
- Else
- If tempC = 0 Then
- On Error Resume Next
- Set Controller = CreateObject("B2S.Server")
- If Controller is Nothing Then
- Err.Clear
- If TableType = "VPM" Then
- LoadVPinMAME
- End If
- Else
- Controller.B2SName = cGameName
- If TableType = "EM" Then
- Controller.Run()
- End If
- On Error Goto 0
- B2SOn = True
- End If
- Else
- If TableType = "VPM" Then
- LoadVPinMAME
- End If
- End If
- Set DOFConfig=Nothing
- Set FileObj=Nothing
- End If
- End sub
- Function SoundFX (Sound, Effect)
- If ((Effect = 0 And B2SOn) Or DOFeffects(Effect)=1) Then
- SoundFX = ""
- Else
- SoundFX = Sound
- End If
- End Function
- Function SoundFXDOF (Sound, DOFevent, State, Effect)
- If DOFeffects(Effect)=1 Then
- SoundFXDOF = ""
- DOF DOFevent, State
- ElseIf DOFeffects(Effect)=2 Then
- SoundFXDOF = Sound
- DOF DOFevent, State
- Else
- SoundFXDOF = Sound
- End If
- End Function
- Function SoundFXDOFALT (Sound, DOFevent, State, Effect)
- If DOFeffects(Effect)=1 Then
- SoundFXDOFALT = ""
- DOFALT DOFevent, State
- ElseIf DOFeffects(Effect)=2 Then
- SoundFXDOFALT = Sound
- DOFALT DOFevent, State
- Else
- SoundFXDOFALT = Sound
- End If
- End Function
- Sub DOF(DOFevent, State)
- If B2SOn Then
- If State = 2 Then
- Controller.B2SSetData DOFevent, 1:Controller.B2SSetData DOFevent, 0
- Else
- Controller.B2SSetData DOFevent, State
- End If
- End If
- End Sub
- Sub DOFALT(DOFevent, State)
- If B2SOnALT Then
- If State = 2 Then
- B2SController.B2SSetData DOFevent, 1:B2SController.B2SSetData DOFevent, 0
- Else
- B2SController.B2SSetData DOFevent, State
- End If
- End If
- End Sub
- 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX
- ' X X X X X X X X X X X X X X X X X X X X X X X
- '/ \/ \/ \/ \/ \/ \/ \/ \/ \/ \/ \/ \/ \/ \/ \/ \/ \/ \/ \/ \/ \/ \/ \/
- ' TABLE INITS & MATHS
- '\ /\ /\ /\ /\ /\ /\ /\ /\ /\ /\ /\ /\ /\ /\ /\ /\ /\ /\ /\ /\ /\ /\ /\
- ' X X X X X X X X X X X X X X X X X X X X X X X
- 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX
- Sub Table1_Init()
- Credits=0':SaveValue cGameName, "Credits", Credits
- resetbackglass
- DMD_Init
- LoadEM
- Dim i
- Randomize
- Loadhs
- bAttractMode = False
- bOnTheFirstBall = False
- bBallInPlungerLane = False
- bBallSaverActive = False
- bBallSaverReady = False
- bMultiBallMode = False
- bGameInPlay = False
- bAutoPlunger = False
- bMusicOn = True
- BallsOnPlayfield = 0
- BallsInHole = 0
- Extraballscount = 0
- LastSwitchHit = ""
- Tilt = 0
- TiltSensitivity = 6
- Tilted = False
- bBonusHeld = False
- bJustStarted = True
- PuPlayer.SendMSG "{ ""mt"":301, ""SN"": 2, ""FN"":4, ""FS"":1 }"
- StartAttractMode
- GiOff
- SharkModeCounter=0
- Sharkextraballs=0
- Sharkwall002.visible=false
- ballstate=0
- sharkmode=0
- modecount=0
- kickervideomode.DrawStyle=0
- End Sub
- '********************
- ' MATHS
- '********************
- Function RndNum(min,max)
- RndNum = Int(Rnd()*(max-min+1))+min ' Sets a random number between min AND max
- End Function
- Dim BIP
- BIP = 0
- 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX
- ' X X X X X X X X X X X X X X X X X X X X X X X
- '/ \/ \/ \/ \/ \/ \/ \/ \/ \/ \/ \/ \/ \/ \/ \/ \/ \/ \/ \/ \/ \/ \/ \/
- ' KEYS
- '\ /\ /\ /\ /\ /\ /\ /\ /\ /\ /\ /\ /\ /\ /\ /\ /\ /\ /\ /\ /\ /\ /\ /\
- ' X X X X X X X X X X X X X X X X X X X X X X X
- Sub Table1_KeyDown(ByVal Keycode)
- If ballrolleron = 1 then
- if keycode = 46 then ' C Key
- If contball = 1 Then
- contball = 0
- Else
- contball = 1
- End If
- End If
- End If
- if keycode = 48 then 'B Key
- If bcboost = 1 Then
- bcboost = bcboostmulti
- Else
- bcboost = 1
- End If
- End If
- if keycode = 203 then bcleft = 1 ' Left Arrow
- if keycode = 200 then bcup = 1 ' Up Arrow
- if keycode = 208 then bcdown = 1 ' Down Arrow
- if keycode = 205 then bcright = 1 ' Right Arrow
- ' If keycode = 64 Then ShowDMDOptions cGameName 'F6
- If Keycode = AddCreditKey Then
- Credits = Credits + 1':SaveValue cGameName, "Credits", Credits
- DOF 114, DOFOn
- If(Tilted = False)Then
- DMDFlush:DMD "black.jpg", "YOU GOT BALLS", "Credits: "&Credits, 1000
- PlaySound "fx_coin"
- End If
- End If
- If keycode = PlungerKey Then
- PlaySoundAt "plungerpull", Plunger
- Plunger.Pullback
- End If
- If hsbModeActive = True Then
- EnterHighScoreKey(keycode)
- elseif bGameInPlay Then
- If keycode = LeftTiltKey Then Nudge 90, 6:PlaySound SoundFX("fx_nudge",0), 0, 1, -0.1, 0.25:CheckTilt
- If keycode = RightTiltKey Then Nudge 270, 6:PlaySound SoundFX("fx_nudge",0), 0, 1, 0.1, 0.25:CheckTilt
- If keycode = CenterTiltKey Then Nudge 0, 7:PlaySound SoundFX("fx_nudge",0), 0, 1, 1, 0.25:CheckTilt
- If NOT Tilted Then
- If keycode = LeftFlipperKey Then
- LeftFlipper.RotateToEnd
- LeftFlipperupper.RotateToEnd
- PlaySound SoundFX("fx_flipperup",DOFFlippers), 0, .67, AudioPan(LeftFlipper), 0.05,0,0,1,AudioFade(LeftFlipper)
- ldown = 1
- checkdown
- RotateLaneLightsLeft
- 'Board1Shake
- cBall1.velx = boardshake * (2*RND(1)-1)
- cBall1.vely = boardshake * (2*RND(1)-1)
- DOF 101,1
- ' If bSkillshotReady = False Then
- ' RotateLaneLightsLeft
- ' DOF 101,1
- ' End If
- End If
- If keycode = RightFlipperKey Then
- RightFlipper.RotateToEnd
- RightFlipperupper.RotateToEnd
- PlaySound SoundFX("fx_flipperup",DOFFlippers), 0, .67, AudioPan(RightFlipper), 0.05,0,0,1,AudioFade(RightFlipper)
- rdown = 1
- checkdown
- RotateLaneLightsRight
- 'Board2Shake
- cBall2.velx = boardshake * (2*RND(1)-1)
- cBall2.vely = boardshake * (2*RND(1)-1)
- DOF 102,1
- ' If bSkillshotReady = False Then
- ' RotateLaneLightsRight
- ' DOF 102,1
- ' End If
- End If
- If keycode = StartGameKey Then
- If((PlayersPlayingGame <MaxPlayers) AND(bOnTheFirstBall = True) ) Then
- If(Credits> 0)then
- PlayersPlayingGame = PlayersPlayingGame + 1:Credits=credits-1:SaveValue cGameName, "Credits", Credits
- If PlayersPlayingGame = 1 Then
- PuPlayer.playlistplayex pCallouts,"audiocallouts","player1.mp3",100,1
- Credits=credits-1:SaveValue cGameName, "Credits", Credits
- End if
- If PlayersPlayingGame = 2 Then
- PuPlayer.playlistplayex pCallouts,"audiocallouts","player2.mp3",100,1
- DMDScoreNow
- Credits=credits-1:SaveValue cGameName, "Credits", Credits
- End If
- If PlayersPlayingGame = 3 Then
- PuPlayer.playlistplayex pCallouts,"audiocallouts","player3.mp3",100,1
- DMDScoreNow
- Credits=credits-1:SaveValue cGameName, "Credits", Credits
- End If
- If PlayersPlayingGame = 4 Then
- PuPlayer.playlistplayex pCallouts,"audiocallouts","player4.mp3",100,1
- DMDScoreNow
- Credits=credits-1:SaveValue cGameName, "Credits", Credits
- End If
- TotalGamesPlayed = TotalGamesPlayed + 1
- savegp:SaveValue cGameName, "Credits", Credits
- Else
- ' Not Enough Credits to start a game.
- DOF 119, DOFOff
- DMD "black.jpg", "", "WE NEED BALLS!", 1000
- Playsound "Aww"
- end if
- End If
- End If
- End If
- Else
- If NOT Tilted Then
- If keycode = LeftFlipperKey Then helptime.enabled = true:DMDintroloop:introtime = 0
- If keycode = RightFlipperKey Then helptime.enabled = true:DMDintroloop:introtime = 0
- If keycode = StartGameKey and Credits > 0 Then
- If(BallsOnPlayfield = 0) Then
- ResetForNewGame()
- End If
- End If
- End If
- End If
- End Sub
- Sub Table1_KeyUp(ByVal keycode)
- 'Manual Ball Control
- if keycode = 203 then bcleft = 0 ' Left Arrow
- if keycode = 200 then bcup = 0 ' Up Arrow
- if keycode = 208 then bcdown = 0 ' Down Arrow
- if keycode = 205 then bcright = 0 ' Right Arrow
- If keycode = PlungerKey Then
- PlaySoundAt "fx_plunger", Plunger
- Plunger.Fire
- End If
- ' Table specific
- If bGameInPLay and hsbModeActive <> True Then
- If keycode = LeftFlipperKey Then
- ldown = 0
- LeftFlipper.RotateToStart
- LeftFlipperUpper.RotateToStart
- PlaySound SoundFX("fx_flipperdown",DOFFlippers), 0, 1, AudioPan(LeftFlipper), 0.05,0,0,1,AudioFade(LeftFlipper)
- DOF 101,0
- End If
- If keycode = RightFlipperKey Then
- rdown = 0
- RightFlipper.RotateToStart
- RightFlipperUpper.RotateToStart
- PlaySound SoundFX("fx_flipperdown",DOFFlippers), 0, 1, AudioPan(RightFlipper), 0.05,0,0,1,AudioFade(RightFlipper)
- DOF 102,0
- End If
- Else
- If keycode = LeftFlipperKey Then helptime.enabled = false
- If keycode = RightFlipperKey Then helptime.enabled = false
- End If
- End Sub
- 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX
- ' X X X X X X X X X X X X X X X X X X X X X X X
- '/ \/ \/ \/ \/ \/ \/ \/ \/ \/ \/ \/ \/ \/ \/ \/ \/ \/ \/ \/ \/ \/ \/ \/
- ' MANUAL BALLCONTROL
- '\ /\ /\ /\ /\ /\ /\ /\ /\ /\ /\ /\ /\ /\ /\ /\ /\ /\ /\ /\ /\ /\ /\ /\
- ' X X X X X X X X X X X X X X X X X X X X X X X
- '
- Sub StartBallControl_Hit()
- Set ControlBall = ActiveBall
- contballinplay = true
- End Sub
- Sub StopBallControl_Hit()
- contballinplay = false
- End Sub
- Dim bcup, bcdown, bcleft, bcright, contball, contballinplay, ControlBall, bcboost
- Dim bcvel, bcyveloffset, bcboostmulti
- bcboost = 1 'Do Not Change - default setting
- bcvel = 4 'Controls the speed of the ball movement
- bcyveloffset = -0.01 'Offsets the force of gravity to keep the ball from drifting vertically on the table, should be negative
- bcboostmulti = 3 'Boost multiplier to ball veloctiy (toggled with the B key)
- Sub BallControl_Timer()
- If Contball and ContBallInPlay then
- If bcright = 1 Then
- ControlBall.velx = bcvel*bcboost
- ElseIf bcleft = 1 Then
- ControlBall.velx = - bcvel*bcboost
- Else
- ControlBall.velx=0
- End If
- If bcup = 1 Then
- ControlBall.vely = -bcvel*bcboost
- ElseIf bcdown = 1 Then
- ControlBall.vely = bcvel*bcboost
- Else
- ControlBall.vely= bcyveloffset
- End If
- End If
- End Sub
- 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX
- ' X X X X X X X X X X X X X X X X X X X X X X X
- '/ \/ \/ \/ \/ \/ \/ \/ \/ \/ \/ \/ \/ \/ \/ \/ \/ \/ \/ \/ \/ \/ \/ \/
- ' SHADOWS
- '\ /\ /\ /\ /\ /\ /\ /\ /\ /\ /\ /\ /\ /\ /\ /\ /\ /\ /\ /\ /\ /\ /\ /\
- ' X X X X X X X X X X X X X X X X X X X X X X X
- '*****************************************
- ' ninuzzu's FLIPPER SHADOWS
- '*****************************************
- sub FlipperTimer_Timer()
- FlipperLSh.RotZ = LeftFlipper.currentangle
- FlipperRShup.RotZ = LeftFlipper.currentangle
- FlipperRSh.RotZ = RightFlipper.currentangle
- FlipperRShup.RotZ = RightFlipper.currentangle
- End Sub
- '*****************************************
- ' ninuzzu's BALL SHADOW
- '*****************************************
- Dim BallShadow
- BallShadow = Array (BallShadow1,BallShadow2,BallShadow3,BallShadow4,BallShadow5)
- Sub BallShadowUpdate_timer()
- Dim BOT, b
- BOT = GetBalls
- ' hide shadow of deleted balls
- If UBound(BOT)<(tnob-1) Then
- For b = (UBound(BOT) + 1) to (tnob-1)
- BallShadow(b).visible = 0
- Next
- End If
- ' exit the Sub if no balls on the table
- If UBound(BOT) = -1 Then Exit Sub
- ' render the shadow for each ball
- For b = 0 to UBound(BOT)
- If BOT(b).X < Table1.Width/2 Then
- BallShadow(b).X = ((BOT(b).X) - (Ballsize/6) + ((BOT(b).X - (Table1.Width/2))/7)) + 6
- Else
- BallShadow(b).X = ((BOT(b).X) + (Ballsize/6) + ((BOT(b).X - (Table1.Width/2))/7)) - 6
- End If
- ballShadow(b).Y = BOT(b).Y + 12
- If BOT(b).Z > 20 Then
- BallShadow(b).visible = 1
- Else
- BallShadow(b).visible = 0
- End If
- Next
- End Sub
- 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX
- ' X X X X X X X X X X X X X X X X X X X X X X X
- '/ \/ \/ \/ \/ \/ \/ \/ \/ \/ \/ \/ \/ \/ \/ \/ \/ \/ \/ \/ \/ \/ \/ \/
- ' TILT
- '\ /\ /\ /\ /\ /\ /\ /\ /\ /\ /\ /\ /\ /\ /\ /\ /\ /\ /\ /\ /\ /\ /\ /\
- ' X X X X X X X X X X X X X X X X X X X X X X X
- '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
- DMD "black.jpg", "CAREFUL!", "DING WARNING", 3000
- 'PlaySound "buzz"
- 'PuPlayer.playlistplayex pBackglass,"videotilt","",100,1
- 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
- DMD "black.jpg", "DING!", "BOARD BROKEN!", 3000
- 'PlaySound "powerdownn"
- 'PuPlayer.playlistplayex pBackglass,"videotilt","",100,4
- DOF 310, DOFPulse 'DOF MX - TILT
- DOF 127, DOFOff 'DOF - Beacon - OFF
- DisableTable True
- tilttableclear.enabled = true
- TiltRecoveryTimer.Enabled = True 'start the Tilt delay to check for all the balls to be drained
- End If
- End Sub
- Dim tilttime:tilttime = 0
- sub tilttableclear_timer
- tilttime = tilttime + 1
- Select Case tilttime
- Case 10
- tableclearing
- End Select
- End Sub
- Sub tableclearing
- End Sub
- Sub posttiltreset
- 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
- GiOff
- 'LightSeqTilt.Play SeqAllOff
- LeftFlipper.RotateToStart
- LeftFlipperUpper.RotateToStart
- RightFlipper.RotateToStart
- RightFlipperUpper.RotateToStart
- LeftSlingshot.Disabled = 1
- RightSlingshot.Disabled = 1
- PuPlayer.playresume 4
- PuPlayer.playlistplayex pAudio,"audiomodes","clear.mp3",100,1
- PuPlayer.playlistplayex pMusic,"audioclear","clear.mp3",100, 1
- Else
- ' GiOn
- ' LightSeqTilt.StopPlay
- LeftSlingshot.Disabled = 0
- RightSlingshot.Disabled = 0
- End If
- End Sub
- Sub TiltRecoveryTimer_Timer()
- If(BallsOnPlayfield = 0) Then
- EndOfBall()
- TiltRecoveryTimer.Enabled = False
- End If
- End Sub
- 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX
- ' X X X X X X X X X X X X X X X X X X X X X X X
- '/ \/ \/ \/ \/ \/ \/ \/ \/ \/ \/ \/ \/ \/ \/ \/ \/ \/ \/ \/ \/ \/ \/ \/
- ' SOUND FUNCTIONS
- '\ /\ /\ /\ /\ /\ /\ /\ /\ /\ /\ /\ /\ /\ /\ /\ /\ /\ /\ /\ /\ /\ /\ /\
- ' X X X X X X X X X X X X X X X X X X X X X X X
- '*********************************************************************
- ' Positional Sound Playback Functions
- '*********************************************************************
- ' Play a sound, depending on the X,Y position of the table element (especially cool for surround speaker setups, otherwise stereo panning only)
- ' parameters (defaults): loopcount (1), volume (1), randompitch (0), pitch (0), useexisting (0), restart (1))
- ' Note that this will not work (currently) for walls/slingshots as these do not feature a simple, single X,Y position
- Sub PlayXYSound(soundname, tableobj, loopcount, volume, randompitch, pitch, useexisting, restart)
- PlaySound soundname, loopcount, volume, AudioPan(tableobj), randompitch, pitch, useexisting, restart, AudioFade(tableobj)
- End Sub
- ' Similar subroutines that are less complicated to use (e.g. simply use standard parameters for the PlaySound call)
- Sub PlaySoundAt(soundname, tableobj)
- PlaySound soundname, 1, 1, AudioPan(tableobj), 0,0,0, 1, AudioFade(tableobj)
- End Sub
- Sub PlaySoundAtBall(soundname)
- PlaySoundAt soundname, ActiveBall
- End Sub
- '*********************************************************************
- ' Supporting Ball & Sound Functions
- '*********************************************************************
- Function AudioFade(tableobj) ' Fades between front and back of the table (for surround systems or 2x2 speakers, etc), depending on the Y position on the table. "table1" is the name of the table
- Dim tmp
- tmp = tableobj.y * 2 / table1.height-1
- If tmp > 0 Then
- AudioFade = Csng(tmp ^10)
- Else
- AudioFade = Csng(-((- tmp) ^10) )
- End If
- End Function
- Function AudioPan(tableobj) ' Calculates the pan for a tableobj based on the X position on the table. "table1" is the name of the table
- Dim tmp
- tmp = tableobj.x * 2 / table1.width-1
- If tmp > 0 Then
- AudioPan = Csng(tmp ^10)
- Else
- AudioPan = Csng(-((- tmp) ^10) )
- End If
- End Function
- Function Vol(ball) ' Calculates the Volume of the sound based on the ball speed
- Vol = Csng(BallVel(ball) ^2 / 50)
- 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 = 5 ' total number of balls
- ReDim rolling(tnob)
- InitRolling
- Sub InitRolling
- Dim i
- For i = 0 to tnob
- rolling(i) = False
- Next
- End Sub
- Sub RollingTimer_Timer()
- Dim BOT, b
- 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
- ' play the rolling sound for each ball
- For b = 0 to UBound(BOT)
- If BallVel(BOT(b) ) > 1 AND BOT(b).z < 30 Then
- rolling(b) = True
- PlaySound("fx_ballrolling" & b), -1, Vol(BOT(b)), AudioPan(BOT(b)), 0, Pitch(BOT(b)), 1, 0, AudioFade(BOT(b))
- 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, AudioPan(ball1), 0, Pitch(ball1), 0, 0, AudioFade(ball1)
- End Sub
- '**************************************
- ' Explanation of the collision routine
- '**************************************
- ' The collision is built in VP.
- ' You only need to add a Sub OnBallBallCollision(ball1, ball2, velocity) and when two balls collide they
- ' will call this routine. What you add in the sub is up to you. As an example is a simple Playsound with volume and paning
- ' depending of the speed of the collision.
- Sub Pins_Hit (idx)
- PlaySound "pinhit_low", 0, Vol(ActiveBall), AudioPan(ActiveBall), 0, Pitch(ActiveBall), 0, 0, AudioFade(ActiveBall)
- End Sub
- Sub aTargetsALL_Hit (idx)
- select case int (rnd*6)+1
- Case 1 : PlaySound "drop1", 0, Vol(ActiveBall), AudioPan(ActiveBall), 0, Pitch(ActiveBall), 1, 0, AudioFade(ActiveBall)
- Case 2 : PlaySound "drop2", 0, Vol(ActiveBall), AudioPan(ActiveBall), 0, Pitch(ActiveBall), 1, 0, AudioFade(ActiveBall)
- Case 3 : PlaySound "drop3", 0, Vol(ActiveBall), AudioPan(ActiveBall), 0, Pitch(ActiveBall), 1, 0, AudioFade(ActiveBall)
- Case 4 : PlaySound "drop4", 0, Vol(ActiveBall), AudioPan(ActiveBall), 0, Pitch(ActiveBall), 1, 0, AudioFade(ActiveBall)
- Case 5 : PlaySound "drop5", 0, Vol(ActiveBall), AudioPan(ActiveBall), 0, Pitch(ActiveBall), 1, 0, AudioFade(ActiveBall)
- Case 6 : PlaySound "drop6", 0, Vol(ActiveBall), AudioPan(ActiveBall), 0, Pitch(ActiveBall), 1, 0, AudioFade(ActiveBall)
- end select
- End Sub
- Sub Metals_Thin_Hit (idx)
- PlaySound "metalhit_thin", 0, Vol(ActiveBall), AudioPan(ActiveBall), 0, Pitch(ActiveBall), 1, 0, AudioFade(ActiveBall)
- End Sub
- Sub Metals_Medium_Hit (idx)
- PlaySound "metalhit_medium", 0, Vol(ActiveBall), AudioPan(ActiveBall), 0, Pitch(ActiveBall), 1, 0, AudioFade(ActiveBall)
- End Sub
- Sub Metals2_Hit (idx)
- PlaySound "metalhit2", 0, Vol(ActiveBall), AudioPan(ActiveBall), 0, Pitch(ActiveBall), 1, 0, AudioFade(ActiveBall)
- End Sub
- Sub Gates_Hit (idx)
- PlaySound "gate4", 0, Vol(ActiveBall), AudioPan(ActiveBall), 0, Pitch(ActiveBall), 1, 0, AudioFade(ActiveBall)
- End Sub
- Sub Spinner_Spin
- PlaySound "fx_spinner", 0, .25, AudioPan(Spinner), 0.25, 0, 0, 1, AudioFade(Spinner)
- End Sub
- Sub Rubbers_Hit(idx)
- Select Case Int(Rnd*7)+1
- Case 1 : ActiveBall.velx = Activeball.velx/1 : ActiveBall.vely = Activeball.vely/1
- Case 2 : ActiveBall.velx = Activeball.velx/1 : ActiveBall.vely = Activeball.vely/1
- Case 3 : ActiveBall.velx = Activeball.velx/1 : ActiveBall.vely = Activeball.vely/1
- Case 4 : ActiveBall.velx = Activeball.velx/1 : ActiveBall.vely = Activeball.vely/1
- Case 4 : ActiveBall.velx = Activeball.velx/1 : ActiveBall.vely = Activeball.vely/1
- Case 5 : ActiveBall.velx = Activeball.velx/2 : ActiveBall.vely = Activeball.vely/1.1
- Case 6 : ActiveBall.velx = Activeball.velx/2 : ActiveBall.vely = Activeball.vely/1.3
- Case 7 : ActiveBall.velx = Activeball.velx/2 : ActiveBall.vely = Activeball.vely/1.5
- End Select
- dim finalspeed
- finalspeed=SQR(activeball.velx * activeball.velx + activeball.vely * activeball.vely)
- If finalspeed > 20 then
- PlaySound "fx_rubber2", 0, Vol(ActiveBall), AudioPan(ActiveBall), 0, Pitch(ActiveBall), 1, 0, AudioFade(ActiveBall)
- End if
- If finalspeed >= 6 AND finalspeed <= 20 then
- RandomSoundRubber()
- End If
- End Sub
- Sub Posts_Hit(idx)
- Select Case Int(Rnd*7)+1
- Case 1 : ActiveBall.velx = Activeball.velx/1 : ActiveBall.vely = Activeball.vely/1
- Case 2 : ActiveBall.velx = Activeball.velx/1 : ActiveBall.vely = Activeball.vely/1
- Case 3 : ActiveBall.velx = Activeball.velx/1 : ActiveBall.vely = Activeball.vely/1
- Case 4 : ActiveBall.velx = Activeball.velx/1 : ActiveBall.vely = Activeball.vely/1
- Case 4 : ActiveBall.velx = Activeball.velx/1 : ActiveBall.vely = Activeball.vely/1
- Case 5 : ActiveBall.velx = Activeball.velx/2 : ActiveBall.vely = Activeball.vely/1.1
- Case 6 : ActiveBall.velx = Activeball.velx/2 : ActiveBall.vely = Activeball.vely/1.3
- Case 7 : ActiveBall.velx = Activeball.velx/2 : ActiveBall.vely = Activeball.vely/1.5
- End Select
- dim finalspeed
- finalspeed=SQR(activeball.velx * activeball.velx + activeball.vely * activeball.vely)
- If finalspeed > 16 then
- PlaySound "fx_rubber2", 0, Vol(ActiveBall), AudioPan(ActiveBall), 0, Pitch(ActiveBall), 1, 0, AudioFade(ActiveBall)
- End if
- If finalspeed >= 6 AND finalspeed <= 16 then
- RandomSoundRubber()
- End If
- End Sub
- Sub RandomSoundRubber()
- Select Case Int(Rnd*3)+1
- Case 1 : PlaySound "rubber_hit_1", 0, Vol(ActiveBall), AudioPan(ActiveBall), 0, Pitch(ActiveBall), 1, 0, AudioFade(ActiveBall)
- Case 2 : PlaySound "rubber_hit_2", 0, Vol(ActiveBall), AudioPan(ActiveBall), 0, Pitch(ActiveBall), 1, 0, AudioFade(ActiveBall)
- Case 3 : PlaySound "rubber_hit_3", 0, Vol(ActiveBall), AudioPan(ActiveBall), 0, Pitch(ActiveBall), 1, 0, AudioFade(ActiveBall)
- End Select
- End Sub
- Sub LeftFlipper_Collide(parm)
- RandomSoundFlipper()
- End Sub
- Sub LeftFlipperupper_Collide(parm)
- RandomSoundFlipper()
- End Sub
- Sub RightFlipper_Collide(parm)
- RandomSoundFlipper()
- End Sub
- Sub RightFlipperupper_Collide(parm)
- RandomSoundFlipper()
- End Sub
- Sub RandomSoundFlipper()
- Select Case Int(Rnd*3)+1
- Case 1 : PlaySound "flip_hit_1", 0, Vol(ActiveBall), AudioPan(ActiveBall), 0, Pitch(ActiveBall), 1, 0, AudioFade(ActiveBall)
- Case 2 : PlaySound "flip_hit_2", 0, Vol(ActiveBall), AudioPan(ActiveBall), 0, Pitch(ActiveBall), 1, 0, AudioFade(ActiveBall)
- Case 3 : PlaySound "flip_hit_3", 0, Vol(ActiveBall), AudioPan(ActiveBall), 0, Pitch(ActiveBall), 1, 0, AudioFade(ActiveBall)
- End Select
- End Sub
- sub rramprolling_hit()
- PlaySound "fx_Rolling_Plastic0", 0, Vol(ActiveBall), AudioPan(ActiveBall), 0, Pitch(ActiveBall), 1, 0, AudioFade(ActiveBall)
- end sub
- sub rramprolling_unhit()
- Stopsound "fx_Rolling_Plastic0"
- end sub
- sub lramprolling1_hit()
- PlaySound "fx_Rolling_Plastic0", 0, Vol(ActiveBall), AudioPan(ActiveBall), 0, Pitch(ActiveBall), 1, 0, AudioFade(ActiveBall)
- end sub
- sub lramprolling1_unhit()
- Stopsound "fx_Rolling_Plastic0"
- end sub
- sub lramprolling2_hit()
- PlaySound "fx_Rolling_Plastic0", 0, Vol(ActiveBall), AudioPan(ActiveBall), 0, Pitch(ActiveBall), 1, 0, AudioFade(ActiveBall)
- end sub
- sub lramprolling2_unhit()
- Stopsound "fx_Rolling_Plastic0"
- end sub
- Sub plasticramps_Hit(idx)
- PlaySound "fx_Rolling_plastic0", 0, Vol(ActiveBall), AudioPan(ActiveBall), 0, Pitch(ActiveBall), 1, 0, AudioFade(ActiveBall)
- End Sub
- Sub plasticramps_UnHit(idx)
- PlaySound "fx_Rolling_plastic0"
- End Sub
- 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX
- ' X X X X X X X X X X X X X X X X X X X X X X X
- '/ \/ \/ \/ \/ \/ \/ \/ \/ \/ \/ \/ \/ \/ \/ \/ \/ \/ \/ \/ \/ \/ \/ \/
- ' START GAME, END GAME
- '\ /\ /\ /\ /\ /\ /\ /\ /\ /\ /\ /\ /\ /\ /\ /\ /\ /\ /\ /\ /\ /\ /\ /\
- ' X X X X X X X X X X X X X X X X X X X X X X X
- '
- Sub ResetForNewGame()
- Dim i
- bGameInPLay = True
- StopAttractMode
- GiOff
- TotalGamesPlayed = TotalGamesPlayed + 1
- savegp
- 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) = 3
- ExtraBallsAwards(i) = 0
- Boards(i) = 0
- spotmastered(i) = 0
- bumpercount = 0
- waxcount (i) = 0
- endlesssummerbonus = 0
- endlesssummerbonuspre = 0
- Skeetbonus = 0
- Skeetbonuspre = 0
- Sexwaxfrenzybonus = 0
- Sexwaxfrenzybonuspre = 0
- loopbonus = 0
- loopbonuspre = 0
- offthelipbonus = 0
- offthelipbonuspre = 0
- aerialbonus = 0
- aerialbonuspre = 0
- diversitymultiplier = 0
- AwardPoints = 0
- TotalBonus = 0
- waxcountleft = 0
- progress(i) = 0
- modecount = 0
- kickerticket.enabled=false:light_ticketarrow.state=0:light_planearrow.state=0:Light_plane.state=0:Kickerflight.enabled=false:ripcurl.enabled=true
- Next
- surfmusic1.enabled=false:surfmusic2.enabled=false:surfmusic3.enabled=false:surfmusic4.enabled=false:surfmusic5.enabled=false
- gateleft.open=false:gateright.open=false
- triggerloop.enabled=false
- triggeroffthelip.enabled=false
- triggeraerial.enabled=false
- kickerleft.enabled=false
- waxcount10.visible=false
- lightSurfMode1.state=0:lightSurfMode2.state=0:lightSurfMode3.state=0:lightSurfMode4.state=0
- lightSharkMode1.state=0:lightSharkMode2.state=0:lightSharkMode3.state=0:lightSharkMode4.state=0
- outro.enabled=false
- Sharkwall002.visible=false
- DOF 105, DOFOn
- GiOff
- For each a in GI
- a.State = 0
- a.Intensity=2
- a.fadespeedup=0.1
- a.fadespeeddown=0.1
- Next
- TimerBoardwall3down.Enabled = true
- l21.state=2:l22.state=2:l23.state=2
- l1.state=0:l2.state=0:l3.state=0:l4.state=0:light_kickback.state=0
- l31.state=2:l32.state=2:l33.state=2
- l11.state=2:l12.state=0:l13.state=0:l14.state=0:l15.state=0:l16.state=0:l17.state=0
- Light_Tubearrow1.state=0:Light_Tubearrow2.state=0:Light_Tubearrow3.state=0
- Light_Tubewave1.state=0:Light_Tubewave2.state=0:Light_Tubewave3.state=0
- Light_Ticketarrow.state=0:Light_ticket.state=0:Light_Triggershot_right.state=0:Light_plane.state=0:Light_planearrow.state=0
- Light_waxbowl.state=0
- For each xx in aTargetsES:xx.isdropped = false : Next
- For each xx in aLightsES:xx.state=2 : Next
- For each xx in aTargetsSKEET:xx.isdropped = false : Next
- For each xx in aLightsSKEET:xx.state=2 : Next
- Boardwall1.transY = 0:boardwall1.collidable=true:boardwall1.visible=true
- Boardwall2.transY = 0:boardwall2.collidable=true:boardwall2.visible=true
- DOF 105,DOFOff
- Tilt = 0
- Game_Init()
- vpmtimer.addtimer 1500, "FirstBall '"
- End Sub
- Sub EndOfGame()
- PuPlayer.playlistplayex pBackglass,"videodiv","finalwipeout.mp4",0,1
- PuPlayer.playlistplayex pMusic,"musicdiv","ESsong_finalwipeout.mp3",100, 1
- DMD "black.jpg", "SESSION OVER", "SURF AGAIN!", 31000
- outro.enabled=true
- scorebg.enabled=false
- GiOff
- bGameInPLay = False
- bJustStarted = False
- End Sub
- Sub outro_timer()
- introposition = 0
- ' bGameInPLay = False
- ' bJustStarted = False
- Dim i
- StartAttractMode
- outro.enabled=false
- End Sub
- '*******************************************************************************************************************
- '***UltraDMD_Options.vbs version 1.0***'
- '
- 'by ninuzzu
- '
- 'This script will load UltraDMD and bring a GUI to change some options on the fly.
- 'Use it for all your UDMD based original tables!
- '
- '--------
- 'USAGE
- '--------
- 'Copy this script in your VP Scripts folder
- 'Add this code at the very beginning of your table script, so the table loads it:
- '
- 'On Error Resume Next
- 'ExecuteGlobal GetTextFile("UltraDMD_Options.vbs")
- 'If Err Then MsgBox "Unable to open UltraDMD_Options.vbs. Ensure that it is placed in the Scripts folder"
- 'On Error Goto 0
- '
- '
- 'Now define the name for your table(this is NOT the table name you find in the Properties window of the VP Editor,
- 'this is a unique name and it's used to save the settings inside the VPReg.stg, and by the B2S aswell), e.g.:
- '
- 'Const cGameName = "uefa_cl"
- '
- 'Define the UltraDMD Project folder name (the folder that contains dmd assets, only the name, without the .UltraDMD)
- '
- 'Const cAssetsFolder="ChampionsLeague"
- '
- 'Add the default text color to use with your table (right click on UDMD window to get the color list). e.g.:
- '
- 'Const cDefaultDMDColor = "PowderBlue"
- '
- 'In order to initialize the options and load UltraDMD, add in table_init:
- '
- 'InitUltraDMD cAssetsFolder,cGameName
- '
- 'For example:
- '
- 'Sub table1_init
- 'InitUltraDMD cAssetsFolder,cGameName
- '....
- 'End Sub
- '
- '
- 'Lastly, on table exit, add
- '
- 'ExitUltraDMD
- '
- 'So the options will reset and DMD will close correctly when you exit the table:
- '
- 'Sub table1_exit
- 'ExitUltraDMD
- '....
- 'End Sub
- '
- 'When you are ingame, you can open the options menu anytime with
- '
- 'ShowDMDOptions cGameName
- '
- 'Let's say you want to open it using the F6 key, you'll write (in the keydown sub):
- '
- 'If keycode = 64 Then ShowDMDOptions cGameName
- '
- '--------
- 'INFO
- '--------
- 'There are 4 options you can change in the GUI:
- '1)The 1st option sets the DMD to render scenes in Full Color, valid only with ultradmd 1.4 and above
- '2)The 2nd changes the DMD text color
- '3)The 3rd changes the DMD size
- '4)The 4th changes the DMD position
- Dim UltraDMD,TableShowOptions,UDMDOptions,DMDOldColor,DMDOldFullColor
- Dim optOpenAtStart,optUseFullColor,optDMDColorChange,optDMDColorType,optUDMDWidth,optUDMDHeight,optDMDPosX,optDMDPosY
- Const UltraDMD_VideoMode_Stretch=0, UltraDMD_VideoMode_Top = 1, UltraDMD_VideoMode_Middle = 2, UltraDMD_VideoMode_Bottom = 3
- Const UltraDMD_Animation_FadeIn = 0, UltraDMD_Animation_FadeOut = 1, UltraDMD_Animation_ZoomIn = 2, UltraDMD_Animation_ZoomOut = 3
- Const UltraDMD_Animation_ScrollOffLeft = 4, UltraDMD_Animation_ScrollOffRight = 5, UltraDMD_Animation_ScrollOnLeft = 6, UltraDMD_Animation_ScrollOnRight = 7,_
- UltraDMD_Animation_ScrollOffUp = 8,UltraDMD_Animation_ScrollOffDown = 9,UltraDMD_Animation_ScrollOnUp = 10,UltraDMD_Animation_ScrollOnDown = 11,UltraDMD_Animation_None = 14
- 'Function to initialize dmd options and load UltraDMD
- Function InitUltraDMD(ProjectFolderName,TableOptName)
- UDMDoptions = LoadValue(TableOptName,"DMD Options") 'load saved dmd options
- If UDMDoptions = "" Then 'if no existing options
- UDMDoptions = 1*2^0 + 0*2^1 + 1*2^2 'set dmd options to default options
- GetDMDOptions(TableOptName) 'get DMD Options
- TableShowOptions = createInput("ULTRADMD Options",TableOptName) 'show the options menu
- Else
- GetDMDOptions(TableOptName)
- If optOpenAtStart=1 Then 'if Enable Next Start was selected
- UDMDoptions = UDMDoptions - 1 'clear setting to avoid future executions
- GetDMDOptions(TableOptName) 'get DMD Options
- TableShowOptions = createInput("ULTRADMD Options",TableOptName) 'show the options menu
- End If
- End If
- LoadUltraDMD ProjectFolderName,TableOptName
- End Function
- 'Function to initialize UltraDMD
- Function LoadUltraDMD(ProjectFolderName,TableOptName)
- Set UltraDMD = CreateObject("UltraDMD.DMDObject")
- ' A Major version change indicates the version is no longer backward compatible
- If Not UltraDMD.GetMajorVersion = 1 Then
- MsgBox "Incompatible Version of UltraDMD found."
- QuitPlayer:Exit Function
- End If
- 'Check if UMD v1.4 is running
- If UltraDMD.GetMinorVersion<4 AND optUseFullColor=1 Then
- MsgBox "Full Color not supported. Please upgrade to UltraDMD v1.4" & VbCrLf & "Exiting so changes will take effect..."
- Dim WshShell:Set WshShell = CreateObject("WScript.Shell")
- WshShell.RegWrite "HKCU\Software\UltraDMD\fullcolor","False","REG_SZ"
- SaveValue TableOptName, "DMD Options", 1
- QuitPlayer:Exit Function
- End If
- UltraDMD.Init
- 'Sets the project folder and video stretch mode
- Dim fso,curDir
- Set fso = CreateObject("Scripting.FileSystemObject")
- curDir = fso.GetAbsolutePathName(".")
- UltraDMD.SetProjectFolder curDir & "\"& ProjectFolderName &".UltraDMD"
- If NOT fso.FolderExists(curDir & "\"& ProjectFolderName &".UltraDMD") Then
- MsgBox ProjectFolderName & ".UltraDMD" & " not found." & VbCrLf & "Please copy it in the same folder as this table" & VbCrLf & "DMD animations can't be shown!!"
- End If
- UltraDMD.SetVideoStretchMode UltraDMD_VideoMode_Middle
- End Function
- 'Function to reset the DMD color settings and close UltraDMD on table exit
- Function ExitUltraDMD
- On Error Resume Next
- If UltraDMD.IsRendering Then UltraDMD.CancelRendering
- If Error.Number<>0 Then UltraDMD = Null:Exit Function
- Dim WshShell:Set WshShell = CreateObject("WScript.Shell")
- WshShell.RegWrite "HKCU\Software\UltraDMD\color",DMDOldColor,"REG_SZ"
- WshShell.RegWrite "HKCU\Software\UltraDMD\fullcolor",DMDOldFullColor,"REG_SZ"
- UltraDMD = Null
- End Function
- 'Function to show the dmd options menu on screen
- Function ShowDMDOptions(TableOptName)
- GetDMDOptions(TableOptName):TableShowOptions = createInput("ULTRADMD Options",TableOptName)
- End Function
- 'Function to get the DMD options from both registry and \User\VPReg.stg
- Function GetDMDOptions(TableOptName)
- Dim WshShell:Set WshShell = CreateObject("WScript.Shell")
- On Error Resume Next
- WshShell.RegRead ("HKCU\Software\UltraDMD\")
- If Err.number <> 0 Then
- On Error Goto 0
- 'Resetting to defaults
- WshShell.RegWrite "HKCU\Software\UltraDMD\fullcolor","False","REG_SZ"
- WshShell.RegWrite "HKCU\Software\UltraDMD\color","OrangeRed","REG_SZ"
- WshShell.RegWrite "HKCU\Software\UltraDMD\hideVDMD","False","REG_SZ"
- End If
- Dim tmp:tmp=UDMDoptions
- optUseFullColor=Int(tmp/2^2)
- tmp=tmp mod 2^2
- optDMDColorChange=Int(tmp/2)
- tmp=tmp mod 2
- optOpenAtStart=Int(tmp)
- tmp=tmp mod 1
- On Error Resume Next
- 'temporary save the previous color and full color settings
- DMDOldColor=WshShell.RegRead ("HKCU\Software\UltraDMD\color")
- DMDOldFullColor=WshShell.RegRead ("HKCU\Software\UltraDMD\fullcolor")
- If DMDOldFullColor="" Then DMDOldFullColor = "False"
- On Error Resume Next
- optUDMDWidth = WshShell.RegRead ("HKCU\Software\UltraDMD\w")
- optUDMDHeight = WshShell.RegRead ("HKCU\Software\UltraDMD\h")
- optDMDPosX = WshShell.RegRead ("HKCU\Software\UltraDMD\x")
- optDMDPosY = WshShell.RegRead ("HKCU\Software\UltraDMD\y")
- 'if user changed the color, remember the value
- If optDMDColorChange=0 Then optDMDColorType=cDefaultDMDColor Else optDMDColorType = LoadValue (TableOptName, "DMD Color") End If
- If optUDMDWidth = "" Then optUDMDWidth = 512
- If optUDMDHeight = "" Then optUDMDHeight = 128
- If optDMDPosX = "" Then optDMDPosX = 20
- If optDMDPosY = "" Then optDMDPosY = 20
- If optUseFullColor=0 Then
- WshShell.RegWrite "HKCU\Software\UltraDMD\fullcolor","False","REG_SZ"
- Else
- WshShell.RegWrite "HKCU\Software\UltraDMD\fullcolor","True","REG_SZ"
- End If
- WshShell.RegWrite "HKCU\Software\UltraDMD\color",optDMDColorType,"REG_SZ"
- WshShell.Terminate
- End Function
- 'Function to create a window in HTML
- Function createInput(title,TableOptName)
- Dim sHTMLCode, status
- 'Set the HTML code for the window
- sHTMLCode = _
- "<html>" &_
- "<head>" &_
- "<style>" &_
- ".button{" &_
- "position:absolute;" &_
- "color: black; border: 2px solid #000000;" &_
- "left:200px;top:350px; height:40px; width=60px; font-size=18; cursor:pointer}" &_
- "</style>" &_
- "</head>" &_
- "<script language='VbScript'>" &_
- "sub UpdateOpt:If resizeDMD.Checked Then DMDWPos.disabled=false:DMDHPos.disabled=false Else DMDWPos.disabled=true:DMDHPos.disabled=true End If:" &_
- "If colorDMDSet.Checked Then dmdtxtcol.disabled=false Else dmdtxtcol.disabled=true End If:" &_
- "If posDMD.Checked Then DMDXPos.disabled=false:DMDYPos.disabled=false Else DMDXPos.disabled=true:DMDYPos.disabled=true End If:end sub" &_
- "</script>" &_
- "<table>" &_
- "<TD><font size='2'>Use Full Color DMD (only for UDMD v1.4 and above)</font><input type='checkbox' name='colorDMD'></TD>" &_
- "</table>" &_
- "</br>" &_
- "<table>" &_
- "<TD><font size='2'>Change DMD Text Color</font><input type='checkbox' name='colorDMDSet' Onclick='UpdateOpt'></TD>" &_
- "<TD>" &_
- "<font size='2'>Color: </font>" &_
- "<SELECT NAME='dmdtxtcol' disabled>" &_
- "<OPTION value='AliceBlue'>AliceBlue" &_
- "<OPTION value='AntiqueWhite'>AntiqueWhite" &_
- "<OPTION value='Aqua'>Aqua" &_
- "<OPTION value='Aquamarine'>Aquamarine" &_
- "<OPTION value='Azure'>Azure" &_
- "<OPTION value='Beige'>Beige" &_
- "<OPTION value='Bisque'>Bisque" &_
- "<OPTION value='BlanchedAlmond'>BlanchedAlmond" &_
- "<OPTION value='Blue'>Blue" &_
- "<OPTION value='BlueViolet'>BlueViolet" &_
- "<OPTION value='Brown'>Brown" &_
- "<OPTION value='BurlyWood'>BurlyWood" &_
- "<OPTION value='CadetBlue'>CadetBlue" &_
- "<OPTION value='Chartreuse'>Chartreuse" &_
- "<OPTION value='Chocolate'>Chocolate" &_
- "<OPTION value='Coral'>Coral" &_
- "<OPTION value='CornflowerBlue'>CornflowerBlue" &_
- "<OPTION value='Cornsilk'>Cornsilk" &_
- "<OPTION value='Crimson'>Crimson" &_
- "<OPTION value='Cyan'>Cyan" &_
- "<OPTION value='DarkBlue'>DarkBlue" &_
- "<OPTION value='DarkCyan'>DarkCyan" &_
- "<OPTION value='DarkGoldenrod'>DarkGoldenrod" &_
- "<OPTION value='DarkGray'>DarkGray" &_
- "<OPTION value='DarkGreen'>DarkGreen" &_
- "<OPTION value='DarkKhaki'>DarkKhaki" &_
- "<OPTION value='DarkMagenta'>DarkMagenta" &_
- "<OPTION value='DarkOliveGreen'>DarkOliveGreen" &_
- "<OPTION value='DarkOrange'>DarkOrange" &_
- "<OPTION value='DarkOrchid'>DarkOrchid" &_
- "<OPTION value='DarkRed'>DarkRed" &_
- "<OPTION value='DarkSalmon'>DarkSalmon" &_
- "<OPTION value='DarkSeaGreen'>DarkSeaGreen" &_
- "<OPTION value='DarkSlateBlue'>DarkSlateBlue" &_
- "<OPTION value='DarkSlateGray'>DarkSlateGray" &_
- "<OPTION value='DarkTurquoise'>DarkTurquoise" &_
- "<OPTION value='DarkViolet'>DarkViolet" &_
- "<OPTION value='DeepPink'>DeepPink" &_
- "<OPTION value='DeepSkyBlue'>DeepSkyBlue" &_
- "<OPTION value='DimGray'>DimGray" &_
- "<OPTION value='DodgerBlue'>DodgerBlue" &_
- "<OPTION value='Firebrick'>Firebrick" &_
- "<OPTION value='FloralWhite'>FloralWhite" &_
- "<OPTION value='ForestGreen'>ForestGreen" &_
- "<OPTION value='Fuchsia'>Fuchsia" &_
- "<OPTION value='Gainsboro'>Gainsboro" &_
- "<OPTION value='GhostWhite'>GhostWhite" &_
- "<OPTION value='Gold'>Gold" &_
- "<OPTION value='Goldenrod'>Goldenrod" &_
- "<OPTION value='Gray'>Gray" &_
- "<OPTION value='Green'>Green" &_
- "<OPTION value='GreenYellow'>GreenYellow" &_
- "<OPTION value='Honeydew'>Honeydew" &_
- "<OPTION value='HotPink'>HotPink" &_
- "<OPTION value='IndianRed'>IndianRed" &_
- "<OPTION value='Indigo'>Indigo" &_
- "<OPTION value='Ivory'>Ivory" &_
- "<OPTION value='Khaki'>Khaki" &_
- "<OPTION value='Lavender'>Lavender" &_
- "<OPTION value='LavenderBlush'>LavenderBlush" &_
- "<OPTION value='LawnGreen'>LawnGreen" &_
- "<OPTION value='LemonChiffon'>LemonChiffon" &_
- "<OPTION value='LightBlue'>LightBlue" &_
- "<OPTION value='LightCoral'>LightCoral" &_
- "<OPTION value='LightCyan'>LightCyan" &_
- "<OPTION value='LightGoldenrodYellow'>LightGoldenrodYellow" &_
- "<OPTION value='LightGray'>LightGray" &_
- "<OPTION value='LightGreen'>LightGreen" &_
- "<OPTION value='LightPink'>LightPink" &_
- "<OPTION value='LightSalmon'>LightSalmon" &_
- "<OPTION value='LightSeaGreen'>LightSeaGreen" &_
- "<OPTION value='LightSkyBlue'>LightSkyBlue" &_
- "<OPTION value='LightSlateGray'>LightSlateGray" &_
- "<OPTION value='LightSteelBlue'>LightSteelBlue" &_
- "<OPTION value='LightYellow'>LightYellow" &_
- "<OPTION value='Lime'>Lime" &_
- "<OPTION value='LimeGreen'>LimeGreen" &_
- "<OPTION value='Linen'>Linen" &_
- "<OPTION value='Magenta'>Magenta" &_
- "<OPTION value='Maroon'>Maroon" &_
- "<OPTION value='MediumAquamarine'>MediumAquamarine" &_
- "<OPTION value='MediumBlue'>MediumBlue" &_
- "<OPTION value='MediumOrchid'>MediumOrchid" &_
- "<OPTION value='MediumPurple'>MediumPurple" &_
- "<OPTION value='MediumSeaGreen'>MediumSeaGreen" &_
- "<OPTION value='MediumSlateBlue'>MediumSlateBlue" &_
- "<OPTION value='MediumSpringGreen'>MediumSpringGreen" &_
- "<OPTION value='MediumTurquoise'>MediumTurquoise" &_
- "<OPTION value='MediumVioletRed'>MediumVioletRed" &_
- "<OPTION value='MidnightBlue'>MidnightBlue" &_
- "<OPTION value='MintCream'>MintCream" &_
- "<OPTION value='MistyRose'>MistyRose" &_
- "<OPTION value='Moccasin'>Moccasin" &_
- "<OPTION value='NavajoWhite'>NavajoWhite" &_
- "<OPTION value='Navy'>Navy" &_
- "<OPTION value='OldLace'>OldLace" &_
- "<OPTION value='Olive'>Olive" &_
- "<OPTION value='OliveDrab'>OliveDrab" &_
- "<OPTION value='Orange'>Orange" &_
- "<OPTION value='OrangeRed'>OrangeRed" &_
- "<OPTION value='Orchid'>Orchid" &_
- "<OPTION value='PaleGoldenrod'>PaleGoldenrod" &_
- "<OPTION value='PaleGreen'>PaleGreen" &_
- "<OPTION value='PaleTurquoise'>PaleTurquoise" &_
- "<OPTION value='PaleVioletRed'>PaleVioletRed" &_
- "<OPTION value='PapayaWhip'>PapayaWhip" &_
- "<OPTION value='PeachPuff'>PeachPuff" &_
- "<OPTION value='Peru'>Peru" &_
- "<OPTION value='Pink'>Pink" &_
- "<OPTION value='Plum'>Plum" &_
- "<OPTION value='PowderBlue'>PowderBlue" &_
- "<OPTION value='Purple'>Purple" &_
- "<OPTION value='Red'>Red" &_
- "<OPTION value='RosyBrown'>RosyBrown" &_
- "<OPTION value='RoyalBlue'>RoyalBlue" &_
- "<OPTION value='SaddleBrown'>SaddleBrown" &_
- "<OPTION value='Salmon'>Salmon" &_
- "<OPTION value='SandyBrown'>SandyBrown" &_
- "<OPTION value='SeaGreen'>SeaGreen" &_
- "<OPTION value='SeaShell'>SeaShell" &_
- "<OPTION value='Sienna'>Sienna" &_
- "<OPTION value='Silver'>Silver" &_
- "<OPTION value='SkyBlue'>SkyBlue" &_
- "<OPTION value='SlateBlue'>SlateBlue" &_
- "<OPTION value='SlateGray'>SlateGray" &_
- "<OPTION value='Snow'>Snow" &_
- "<OPTION value='SpringGreen'>SpringGreen" &_
- "<OPTION value='SteelBlue'>SteelBlue" &_
- "<OPTION value='Tan'>Tan" &_
- "<OPTION value='Teal'>Teal" &_
- "<OPTION value='Thistle'>Thistle" &_
- "<OPTION value='Tomato'>Tomato" &_
- "<OPTION value='Transparent'>Transparent" &_
- "<OPTION value='Turquoise'>Turquoise" &_
- "<OPTION value='Violet'>Violet" &_
- "<OPTION value='Wheat'>Wheat" &_
- "<OPTION value='White'>White" &_
- "<OPTION value='WhiteSmoke'>WhiteSmoke" &_
- "<OPTION value='Yellow'>Yellow" &_
- "<OPTION value='YellowGreen'>YellowGreen" &_
- "</SELECT>" &_
- "</table>" &_
- "</br>" &_
- "<table>" &_
- "<TD><font size='2'>Auto Resize DMD</font><input type='checkbox' name='resizeDMD' Onclick='UpdateOpt'></TD>" &_
- "<TD><font size='2'>DMD Width</font><input type='text' name='DMDWPos' size='10' disabled></TD>" &_
- "</tr>" &_
- "<TD></TD>" &_
- "<TD><font size='2'>DMD Height</font><input type='text' name='DMDHPos' size='10' disabled></TD>" &_
- "</table>" &_
- "</br>" &_
- "<table>" &_
- "<tr>" &_
- "<TD><font size='2'>Auto Position DMD</font><input type='checkbox' name='posDMD' Onclick='UpdateOpt'></TD>" &_
- "<TD><font size='2'>DMD X Position</font><input type='text' name='DMDXPos' size='10' disabled></TD>" &_
- "</tr>" &_
- "<TD></TD>" &_
- "<TD><font size='2'>DMD Y Position</font><input type='text' name='DMDYPos' size='10' disabled></TD>" &_
- "</table>" &_
- "</br>" &_
- "</br>" &_
- "<TD><font size='2'>Enable this menu on next start</font><input type='checkbox' name='enabledonstart'></TD>" &_
- "<td><input id=1 class='button' type='button' name='btnSubmit' value='OK' onClick='status=1'></td>" &_
- "</html>"
- 'Create the window we need
- with HTABox("lightgrey", 500, 450, 700, 250,TableOptName)
- 'Set window title
- .document.title = title
- 'Fill the objects we need
- .document.write sHTMLCode
- ' .msg.innerHTML = sHTMLCode
- .enabledonstart.Checked=optOpenAtStart
- .colorDMD.Checked=optUseFullColor
- .colorDMDSet.Checked=optDMDColorChange
- If .colorDMDSet.Checked Then .dmdtxtcol.disabled=false Else .dmdtxtcol.disabled=true End If
- .dmdtxtcol.Value=optDMDColorType
- .DMDWPos.Value=optUDMDWidth
- .DMDHPos.Value=optUDMDHeight
- .DMDXPos.Value=optDMDPosX
- .DMDYPos.Value=optDMDPosY
- 'Put focus on the OK button
- .btnSubmit.focus
- 'set the status to 0 (then we will check it in a loop)
- .status=0
- 'Check the status of the window
- Do
- On Error Resume Next
- status = .status
- 'If the window is closed with the [X] button, there will be an error of access to it
- If Err.number <> 0 Then
- On Error Goto 0
- 'In this case we leave the cycle
- Exit Do
- Else
- if status = 1 Then Exit Do
- End if
- Loop
- 'If the status is "1", then we write the filled values
- If status = 1 Then
- Dim WshShell
- Set WshShell = CreateObject("WScript.Shell")
- If .enabledonstart.Checked Then optOpenAtStart=1 Else optOpenAtStart=0
- If .colorDMD.Checked Then optUseFullColor=1 Else optUseFullColor=0
- If optUseFullColor=1 then
- WshShell.RegWrite "HKCU\Software\UltraDMD\fullcolor", "True" ,"REG_SZ"
- Else
- WshShell.RegWrite "HKCU\Software\UltraDMD\fullcolor", "False" ,"REG_SZ"
- End If
- If .colorDMDSet.Checked Then
- SaveValue TableOptName, "DMD Color", .dmdtxtcol.Value
- WshShell.RegWrite "HKCU\Software\UltraDMD\color",.dmdtxtcol.Value,"REG_SZ"
- Else
- WshShell.RegWrite "HKCU\Software\UltraDMD\color",cDefaultDMDColor,"REG_SZ"
- End If
- If StrComp(cDefaultDMDColor,WshShell.RegRead("HKCU\Software\UltraDMD\color"),1)=0 Then optDMDColorChange=0 Else optDMDColorChange=1 End If
- If .resizeDMD.Checked Then
- WshShell.RegWrite "HKCU\Software\UltraDMD\w",.DMDWPos.Value,"REG_DWORD"
- WshShell.RegWrite "HKCU\Software\UltraDMD\h",.DMDHPos.Value,"REG_DWORD"
- End If
- If .posDMD.Checked Then
- WshShell.RegWrite "HKCU\Software\UltraDMD\x",.DMDXPos.Value,"REG_DWORD"
- WshShell.RegWrite "HKCU\Software\UltraDMD\y",.DMDYPos.Value,"REG_DWORD"
- End If
- UDMDoptions = optOpenAtStart*2^0 + optDMDColorChange*2^1 + optUseFullColor*2^2
- 'msgbox "Enabled on Start: " & optOpenAtStart & VbCrLf &_
- ' "Use Full color: " & optUseFullColor & VbCrLf &_
- ' "Change DMD color: " & optDMDColorChange
- SaveValue TableOptName, "DMD Options", UDMDoptions
- WshShell.Terminate
- End If
- .close
- End With
- End Function
- 'Function to create an HTA application
- Function HTABox(sBgColor, w, h, x, y, TableOptName)
- Dim IE, HTA, nRnd, sCmd, objShell,objExec
- randomize : nRnd = Int(1000000 * rnd)
- sCmd = "mshta.exe ""javascript:{new " _
- & "ActiveXObject(""InternetExplorer.Application"")" _
- & ".PutProperty('" & nRnd & "',window);" _
- & "window.resizeTo(" & w & "," & h & ");" _
- & "window.moveTo(" & x & "," & y & ")}"""
- Set objShell = CreateObject("WScript.Shell")
- Set objExec = objShell.Exec (sCmd)
- do until objShell.AppActivate("javascript:{new "): On Error Resume Next:loop
- For Each IE In CreateObject("Shell.Application").windows
- If IsObject(IE.GetProperty(nRnd)) Then
- set HTABox = IE.GetProperty(nRnd)
- IE.Quit
- HTABox.document.title = "HTABox"
- HTABox.document.write _
- "<HTA:Application contextMenu=no border=thin minimizebutton=no maximizebutton=no >" _
- & "<body scroll='no' style='background-color:" _
- & sBgColor & ";font:normal 10pt Arial;" _
- & "border-Style:outset;border-Width:3px'>" _
- & "<center><span id=msg> </span></center></body>"
- Exit Function
- End If
- Next
- ' In case of error
- objExec.Terminate
- SaveValue TableOptName, "DMD Options", 4
- MsgBox "There was an error with DMD Options window ! Options are set to defaults."
- End Function
- 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX
- ' X X X X X X X X X X X X X X X X X X X X X X X
- '/ \/ \/ \/ \/ \/ \/ \/ \/ \/ \/ \/ \/ \/ \/ \/ \/ \/ \/ \/ \/ \/ \/ \/
- ' ULTRADMD SCRIPTING
- '\ /\ /\ /\ /\ /\ /\ /\ /\ /\ /\ /\ /\ /\ /\ /\ /\ /\ /\ /\ /\ /\ /\ /\
- ' X X X X X X X X X X X X X X X X X X X X X X X
- ' Dim UltraDMD
- Sub DMD(background, toptext, bottomtext, duration)
- If turnonultradmd = 0 then exit sub
- UltraDMD.DisplayScene00 background, toptext, 15, bottomtext, 15, 14, duration, 14
- UltraDMDTimer.Enabled = 1 'to show the score after the animation/message
- End Sub
- Sub DMDScore
- If turnonultradmd = 0 then exit sub
- UltraDMD.SetScoreboardBackgroundImage "scoreboard-background.jpg", 15, 15
- UltraDMD.DisplayScoreboard PlayersPlayingGame, CurrentPlayer, Score(1), Score(2), Score(3), Score(4), "Player " & CurrentPlayer, "Ball " & Balls
- End Sub
- Sub DMDScoreNow
- If turnonultradmd = 0 then exit sub
- DMDFlush
- DMDScore
- End Sub
- Sub DMDFLush
- If turnonultradmd = 0 then exit sub
- UltraDMDTimer.Enabled = 0
- UltraDMD.CancelRendering
- End Sub
- Sub DMDScrollCredits(background, text, duration)
- If turnonultradmd = 0 then exit sub
- UltraDMD.ScrollingCredits background, text, 15, 14, duration, 14
- End Sub
- Sub DMDId(id, background, toptext, bottomtext, duration)
- If turnonultradmd = 0 then exit sub
- UltraDMD.DisplayScene00ExwithID id, False, background, toptext, 15, 0, bottomtext, 15, 0, 14, duration, 14
- End Sub
- Sub DMDMod(id, toptext, bottomtext, duration)
- If turnonultradmd = 0 then exit sub
- UltraDMD.ModifyScene00Ex id, toptext, bottomtext, duration
- End Sub
- Sub UltraDMDTimer_Timer 'used for the attrackmode and the instant info.
- If turnonultradmd = 0 then exit sub
- If bInstantInfo Then
- InstantInfo
- ElseIf bAttractMode Then
- ElseIf NOT UltraDMD.IsRendering Then
- DMDScoreNow
- ElseIf bromconfig Then
- romconfig
- End If
- End Sub
- Sub DMD_Init
- If turnonultradmd = 0 then exit sub
- 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 turnonultradmd = 0 then exit sub
- If Not UltraDMD.GetMajorVersion = 1 Then
- MsgBox "Incompatible Version of UltraDMD found."
- Exit Sub
- End If
- If UltraDMD.GetMinorVersion <1 Then
- If turnonultradmd = 0 then exit sub
- 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
- End Sub
- 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX
- ' X X X X X X X X X X X X X X X X X X X X X X X
- '/ \/ \/ \/ \/ \/ \/ \/ \/ \/ \/ \/ \/ \/ \/ \/ \/ \/ \/ \/ \/ \/ \/ \/
- ' Pinup Active Backglass
- '\ /\ /\ /\ /\ /\ /\ /\ /\ /\ /\ /\ /\ /\ /\ /\ /\ /\ /\ /\ /\ /\ /\ /\
- ' X X X X X X X X X X X X X X X X X X X X X X X
- '**************************
- ' PinUp Player Config
- ' Change HasPuP = True if using PinUp Player Videos
- '**************************
- Dim HasPup:HasPuP = True
- Dim PuPlayer
- Const pTopper=0
- Const pDMD=1
- Const pBackglass=2
- Const pPlayfield=3
- Const pMusic=4
- Const pAudio=7
- Const pCallouts=8
- if HasPuP Then
- on error resume next
- Set PuPlayer = CreateObject("PinUpPlayer.PinDisplay")
- on error goto 0
- if not IsObject(PuPlayer) then HasPuP = False
- end If
- if HasPuP Then
- PuPlayer.Init pBackglass,cGameName
- PuPlayer.Init pMusic,cGameName
- PuPlayer.Init pAudio,cGameName
- PuPlayer.Init pCallouts,cGameName
- If toppervideo = 1 Then
- PuPlayer.Init pTopper,cGameName
- End If
- PuPlayer.SetScreenex pBackglass,0,0,0,0,0 'Set PuPlayer DMD TO Always ON <screen number> , xpos, ypos, width, height, POPUP
- PuPlayer.SetScreenex pAudio,0,0,0,0,2
- PuPlayer.hide pAudio
- PuPlayer.SetScreenex pMusic,0,0,0,0,2
- PuPlayer.hide pMusic
- PuPlayer.SetScreenex pCallouts,0,0,0,0,2
- PuPlayer.hide pCallouts
- Sub chilloutthemusic
- PuPlayer.SendMSG "{ ""mt"":301, ""SN"": 2, ""FN"":11, ""VL"":10 }"
- PuPlayer.SendMSG "{ ""mt"":301, ""SN"": 4, ""FN"":11, ""VL"":10 }"
- PuPlayer.SendMSG "{ ""mt"":301, ""SN"": 7, ""FN"":11, ""VL"":10 }"
- vpmtimer.addtimer 3000, "turnitbackup'"
- End Sub
- Sub turnitbackup
- PuPlayer.SendMSG "{ ""mt"":301, ""SN"": 2, ""FN"":11, ""VL"":99 }"
- PuPlayer.SendMSG "{ ""mt"":301, ""SN"": 4, ""FN"":11, ""VL"":99 }"
- PuPlayer.SendMSG "{ ""mt"":301, ""SN"": 7, ""FN"":11, ""VL"":99 }"
- End Sub
- PuPlayer.playlistadd pAudio,"audioevents", 1 , 0
- PuPlayer.playlistadd pAudio,"audiobg", 1 , 0
- PuPlayer.playlistadd pAudio,"audiocheers", 1 , 0
- PuPlayer.playlistadd pAudio,"audioclear", 1 , 0
- PuPlayer.playlistadd pAudio,"audiocallouts", 1 , 0
- PuPlayer.playlistadd pAudio,"ripcurl", 1 , 0
- PuPlayer.playlistadd pAudio,"newball", 1 , 0
- PuPlayer.playlistadd pAudio,"reball", 1 , 0
- PuPlayer.playlistadd pAudio,"extraball", 1 , 0
- PuPlayer.playlistadd pAudio,"boards", 1 , 0
- PuPlayer.playlistadd pAudio,"drains", 1 , 0
- PuPlayer.playlistadd pAudio,"drain2", 1 , 0
- PuPlayer.playlistadd pAudio,"lucky", 1 , 0
- PuPlayer.playlistadd pMusic,"audioattract", 1 , 0
- PuPlayer.playlistadd pMusic,"audioclear", 1 , 0
- PuPlayer.playlistadd pMusic,"musicdiv", 1 , 0
- PuPlayer.playlistadd pMusic,"musicswfmode", 1 , 0
- PuPlayer.playlistadd pMusic,"musicsurfmode", 1 , 0
- PuPlayer.playlistadd pMusic,"musicskeetmode", 1 , 0
- PuPlayer.playlistadd pMusic,"musicendlessmode", 1 , 0
- PuPlayer.playlistadd pMusic,"musicmainmode", 1 , 0
- PuPlayer.playlistadd pMusic,"musicpostmode", 1 , 0
- PuPlayer.playlistadd pCallouts,"audiocallouts", 1 , 0
- PuPlayer.playlistadd pBackglass,"backglass", 1 , 0
- PuPlayer.playlistadd pBackglass,"PuPOverlays", 1 , 0
- PuPlayer.playlistadd pBackglass,"videoattract", 1 , 0
- PuPlayer.playlistadd pBackglass,"videoaerial", 1 , 0
- PuPlayer.playlistadd pBackglass,"videoballsaved", 1 , 0
- PuPlayer.playlistadd pBackglass,"videoboards", 1 , 0
- PuPlayer.playlistadd pBackglass,"videodiv",1,0
- PuPlayer.playlistadd pBackglass,"videoloop",1,0
- PuPlayer.playlistadd pBackglass,"topper",1,0
- PuPlayer.playlistadd pBackglass,"videomaster",1,0
- PuPlayer.playlistadd pBackglass,"videooffthelip",1,0
- PuPlayer.playlistadd pBackglass,"videospots",1,0
- PuPlayer.playlistadd pBackglass,"videowipeouts",1,0
- PuPlayer.playlistadd pBackglass,"videotakeoff",1,0
- PuPlayer.playlistadd pTopper,"topper",1,0
- If toppervideo = 1 Then
- PuPlayer.playlistadd pTopper,"topper", 1 , 0
- End If
- End if
- If toppervideo = 1 Then
- PuPlayer.playlistplayex pTopper,"topper","topper.mp4",0,1
- PuPlayer.SetBackground pTopper,1
- End If
- PuPlayer.LabelInit pBackglass
- '*******
- PuPlayer.LabelNew pBackglass,"Ballingame",typefont, 9,65535 ,0,0,1,25,9,1,1
- PuPlayer.LabelNew pBackglass,"Ballnumber",numberfont, 7,16711935 ,0,0,1,49,9,1,1
- PuPlayer.LabelNew pBackglass,"Score",typefont, 9,65535 ,0,0,1,25,16,1,1
- PuPlayer.LabelNew pBackglass,"scoreplayer",numberfont, 7,16711935 ,0,0,1,40,16,1,1
- PuPlayer.LabelNew pBackglass,"Bonus",typefont, 8,65535 ,0,0,1,5,21,1,1
- PuPlayer.LabelNew pBackglass,"ESbonus",typefont, 6,16711935 ,0,0,1,0,28,1,1
- PuPlayer.LabelNew pBackglass,"ESbonuscount",numberfont, 5,65535 ,0,0,1,20,28,1,1
- PuPlayer.LabelNew pBackglass,"SKTBonus",typefont, 6,16711935 ,0,0,1,0,35,1,1
- PuPlayer.LabelNew pBackglass,"SKTbonuscount",numberfont, 5,65535 ,0,0,1,20,35,1,1
- PuPlayer.LabelNew pBackglass,"SWFBonus",typefont, 6,16711935 ,0,0,1,0,42,1,1
- PuPlayer.LabelNew pBackglass,"SWFBonuscount",numberfont, 5,65535 ,0,0,1,20,42,1,1
- PuPlayer.LabelNew pBackglass,"LoopBonus",typefont, 6,16711935 ,0,0,1,0,49,1,1
- PuPlayer.LabelNew pBackglass,"LoopBonuscount",numberfont, 5,65535 ,0,0,1,20,49,1,1
- PuPlayer.LabelNew pBackglass,"AerialBonus",typefont, 6,16711935 ,0,0,1,0,56,1,1
- PuPlayer.LabelNew pBackglass,"AerialBonuscount",numberfont, 5,65535 ,0,0,1,20,56,1,1
- PuPlayer.LabelNew pBackglass,"OffthelipBonus",typefont, 6,16711935 ,0,0,1,0,63,1,1
- PuPlayer.LabelNew pBackglass,"OffthelipBonuscount",numberfont, 5,65535 ,0,0,1,20,63,1,1
- PuPlayer.LabelNew pBackglass,"Diversitymultiplier",typefont, 6,16711935 ,0,0,1,0,70,1,1
- PuPlayer.LabelNew pBackglass,"Diversitymultipliercount",numberfont, 5,65535 ,0,0,1,20,70,1,1
- PuPlayer.LabelNew pBackglass,"Extraballs",typefont, 6,16711935 ,0,0,1,0,77,1,1
- PuPlayer.LabelNew pBackglass,"Extraballscount",numberfont, 5,65535 ,0,0,1,20,77,1,1
- PuPlayer.LabelNew pBackglass,"Sharks",typefont, 6,16711935 ,0,0,1,0,84,1,1
- PuPlayer.LabelNew pBackglass,"of",typefont, 6,16711935 ,0,0,1,15,84,1,1
- PuPlayer.LabelNew pBackglass,"Sharkextraballs",numberfont, 5,65535 ,0,0,1,14,84,1,1
- PuPlayer.LabelNew pBackglass,"three",numberfont, 5,65535 ,0,0,1,20,84,1,1
- '*********
- PuPlayer.LabelNew pBackglass,"Highscores",typefont, 8,65535 ,0,0,1,80,42,1,1
- PuPlayer.LabelNew pBackglass,"high1name",typefont, 6,65535 ,0,0,1,78,50,1,1
- PuPlayer.LabelNew pBackglass,"high1score",numberfont, 5,16711935 ,0,0,1,84,50,1,1
- PuPlayer.LabelNew pBackglass,"high2name",typefont, 6,65535 ,0,0,1,78,58,1,1
- PuPlayer.LabelNew pBackglass,"high2score",numberfont, 5,16711935 ,0,0,1,84,58,1,1
- PuPlayer.LabelNew pBackglass,"high3name",typefont, 6,65535 ,0,0,1,78,66,1,1
- PuPlayer.LabelNew pBackglass,"high3score",numberfont, 5,16711935 ,0,0,1,84,66,1,1
- PuPlayer.LabelNew pBackglass,"high4name",typefont, 6,65535 ,0,0,1,78,74,1,1
- PuPlayer.LabelNew pBackglass,"high4score",numberfont, 5,16711935 ,0,0,1,84,74,1,1
- Sub resetbackglass
- Loadhs
- PuPlayer.LabelShowPage pBackglass,1,0,""
- PuPlayer.playlistplayex pBackglass,"backglass","backglasswaves.mp4",0,1
- PuPlayer.SetBackground pBackglass,1
- PuPlayer.LabelSet pBackglass,"hstitle","HIGH SCORE",1,""
- PuPlayer.LabelSet pBackglass,"hs","" & FormatNumber(HighScore(0),0),1,""
- PuPlayer.LabelSet pBackglass,"gptitle","GAMES",1,""
- PuPlayer.LabelSet pBackglass,"gp","" & FormatNumber(TotalGamesPlayed,0),1,""
- PuPlayer.LabelSet pBackglass,"Ball","PRESS\rSTART",1,""
- End Sub
- Dim titlepos
- titlepos = 0
- titletimer.enabled = 0
- dim title
- title = ""
- dim subtitle
- subtitle = ""
- Sub titletimer_timer
- titlepos = titlepos + 1
- Select Case titlepos
- Case 1
- PuPlayer.LabelSet pBackglass,"title",title,1,"{'mt':2,'color':2565927, 'size': 0, 'xpos': 50, 'xalign': 1, 'ypos': 36, 'yalign': 0}"
- PuPlayer.LabelSet pBackglass,"titlebg",title,1,"{'mt':2,'color':0, 'size': 0, 'xpos': 50, 'xalign': 1, 'ypos': 36, 'yalign': 0}"
- PuPlayer.LabelSet pBackglass,"title2",subtitle,1,"{'mt':2,'color':2565927, 'size': 0, 'xpos': 50, 'xalign': 1, 'ypos': 45, 'yalign': 0}"
- PuPlayer.LabelSet pBackglass,"titlebg2",subtitle,1,"{'mt':2,'color':0, 'size': 0, 'xpos': 50, 'xalign': 1, 'ypos': 45, 'yalign': 0}"
- Case 2
- PuPlayer.LabelSet pBackglass,"title",title,1,"{'mt':2,'color':5066061, 'size': 0.6, 'xpos': 50, 'xalign': 1, 'ypos': 36, 'yalign': 0}"
- PuPlayer.LabelSet pBackglass,"titlebg",title,1,"{'mt':2,'color':0, 'size': 0.6, 'xpos': 50, 'xalign': 1, 'ypos': 36, 'yalign': 0}"
- PuPlayer.LabelSet pBackglass,"title2",subtitle,1,"{'mt':2,'color':5066061, 'size': 0.4, 'xpos': 50, 'xalign': 1, 'ypos': 45, 'yalign': 0}"
- PuPlayer.LabelSet pBackglass,"titlebg2",subtitle,1,"{'mt':2,'color':0, 'size': 0.4, 'xpos': 50, 'xalign': 1, 'ypos': 45, 'yalign': 0}"
- Case 3
- PuPlayer.LabelSet pBackglass,"title",title,1,"{'mt':2,'color':7960953, 'size': 1.2, 'xpos': 50, 'xalign': 1, 'ypos': 36, 'yalign': 0}"
- PuPlayer.LabelSet pBackglass,"titlebg",title,1,"{'mt':2,'color':0, 'size': 1.2, 'xpos': 50, 'xalign': 1, 'ypos': 36, 'yalign': 0}"
- PuPlayer.LabelSet pBackglass,"title2",subtitle,1,"{'mt':2,'color':7960953, 'size': 0.8, 'xpos': 50, 'xalign': 1, 'ypos': 45, 'yalign': 0}"
- PuPlayer.LabelSet pBackglass,"titlebg2",subtitle,1,"{'mt':2,'color':0, 'size': 0.8, 'xpos': 50, 'xalign': 1, 'ypos': 45, 'yalign': 0}"
- Case 4
- PuPlayer.LabelSet pBackglass,"title",title,1,"{'mt':2,'color':9671571, 'size': 1.8, 'xpos': 50, 'xalign': 1, 'ypos': 36, 'yalign': 0}"
- PuPlayer.LabelSet pBackglass,"titlebg",title,1,"{'mt':2,'color':0, 'size': 1.8, 'xpos': 50, 'xalign': 1, 'ypos': 36, 'yalign': 0}"
- PuPlayer.LabelSet pBackglass,"title2",subtitle,1,"{'mt':2,'color':9671571, 'size': 1.2, 'xpos': 50, 'xalign': 1, 'ypos': 45, 'yalign': 0}"
- PuPlayer.LabelSet pBackglass,"titlebg2",subtitle,1,"{'mt':2,'color':0, 'size': 1.2, 'xpos': 50, 'xalign': 1, 'ypos': 45, 'yalign': 0}"
- Case 5
- PuPlayer.LabelSet pBackglass,"title",title,1,"{'mt':2,'color':11842740, 'size': 2.4, 'xpos': 50, 'xalign': 1, 'ypos': 36, 'yalign': 0}"
- PuPlayer.LabelSet pBackglass,"titlebg",title,1,"{'mt':2,'color':0, 'size': 2.4, 'xpos': 50, 'xalign': 1, 'ypos': 36, 'yalign': 0}"
- PuPlayer.LabelSet pBackglass,"title2",subtitle,1,"{'mt':2,'color':11842740, 'size': 1.6, 'xpos': 50, 'xalign': 1, 'ypos': 45, 'yalign': 0}"
- PuPlayer.LabelSet pBackglass,"titlebg2",subtitle,1,"{'mt':2,'color':0, 'size': 1.6, 'xpos': 50, 'xalign': 1, 'ypos': 45, 'yalign': 0}"
- Case 6
- PuPlayer.LabelSet pBackglass,"title",title,1,"{'mt':2,'color':13224393, 'size': 3, 'xpos': 50, 'xalign': 1, 'ypos': 36, 'yalign': 0}"
- PuPlayer.LabelSet pBackglass,"titlebg",title,1,"{'mt':2,'color':0, 'size': 3, 'xpos': 50, 'xalign': 1, 'ypos': 36, 'yalign': 0}"
- PuPlayer.LabelSet pBackglass,"title2",subtitle,1,"{'mt':2,'color':13224393, 'size': 2, 'xpos': 50, 'xalign': 1, 'ypos': 45, 'yalign': 0}"
- PuPlayer.LabelSet pBackglass,"titlebg2",subtitle,1,"{'mt':2,'color':0, 'size': 2, 'xpos': 50, 'xalign': 1, 'ypos': 45, 'yalign': 0}"
- Case 7
- PuPlayer.LabelSet pBackglass,"title",title,1,"{'mt':2,'color':14671839, 'size': 3.6, 'xpos': 50, 'xalign': 1, 'ypos': 36, 'yalign': 0}"
- PuPlayer.LabelSet pBackglass,"titlebg",title,1,"{'mt':2,'color':0, 'size': 3.6, 'xpos': 50, 'xalign': 1, 'ypos': 36, 'yalign': 0}"
- PuPlayer.LabelSet pBackglass,"title2",subtitle,1,"{'mt':2,'color':14671839, 'size': 2.4, 'xpos': 50, 'xalign': 1, 'ypos': 45, 'yalign': 0}"
- PuPlayer.LabelSet pBackglass,"titlebg2",subtitle,1,"{'mt':2,'color':0, 'size': 2.4, 'xpos': 50, 'xalign': 1, 'ypos': 45, 'yalign': 0}"
- Case 8
- PuPlayer.LabelSet pBackglass,"title",title,1,"{'mt':2,'color':15790320, 'size': 4.2, 'xpos': 50, 'xalign': 1, 'ypos': 36, 'yalign': 0}"
- PuPlayer.LabelSet pBackglass,"titlebg",title,1,"{'mt':2,'color':0, 'size': 4.2, 'xpos': 50, 'xalign': 1, 'ypos': 36, 'yalign': 0}"
- PuPlayer.LabelSet pBackglass,"title2",subtitle,1,"{'mt':2,'color':15790320, 'size': 2.8, 'xpos': 50, 'xalign': 1, 'ypos': 45, 'yalign': 0}"
- PuPlayer.LabelSet pBackglass,"titlebg2",subtitle,1,"{'mt':2,'color':0, 'size': 2.8, 'xpos': 50, 'xalign': 1, 'ypos': 45, 'yalign': 0}"
- Case 9
- PuPlayer.LabelSet pBackglass,"title",title,1,"{'mt':2,'color':16316664, 'size': 4.8, 'xpos': 50, 'xalign': 1, 'ypos': 36, 'yalign': 0}"
- PuPlayer.LabelSet pBackglass,"titlebg",title,1,"{'mt':2,'color':0, 'size': 4.8, 'xpos': 50, 'xalign': 1, 'ypos': 36, 'yalign': 0}"
- PuPlayer.LabelSet pBackglass,"title2",subtitle,1,"{'mt':2,'color':16316664, 'size': 3.2, 'xpos': 50, 'xalign': 1, 'ypos': 45, 'yalign': 0}"
- PuPlayer.LabelSet pBackglass,"titlebg2",subtitle,1,"{'mt':2,'color':0, 'size': 3.2, 'xpos': 50, 'xalign': 1, 'ypos': 45, 'yalign': 0}"
- Case 10
- PuPlayer.LabelSet pBackglass,"title",title,1,"{'mt':2,'color':16777215, 'size': 5.4, 'xpos': 50, 'xalign': 1, 'ypos': 36, 'yalign': 0}"
- PuPlayer.LabelSet pBackglass,"titlebg",title,1,"{'mt':2,'color':0, 'size': 5.4, 'xpos': 50, 'xalign': 1, 'ypos': 36, 'yalign': 0}"
- PuPlayer.LabelSet pBackglass,"title2",subtitle,1,"{'mt':2,'color':16777215, 'size': 3.6, 'xpos': 50, 'xalign': 1, 'ypos': 45, 'yalign': 0}"
- PuPlayer.LabelSet pBackglass,"titlebg2",subtitle,1,"{'mt':2,'color':0, 'size': 3.6, 'xpos': 50, 'xalign': 1, 'ypos': 45, 'yalign': 0}"
- Case 11
- PuPlayer.LabelSet pBackglass,"title",title,1,"{'mt':2,'color':16777215, 'size': 6, 'xpos': 50, 'xalign': 1, 'ypos': 36, 'yalign': 0}"
- PuPlayer.LabelSet pBackglass,"titlebg",title,1,"{'mt':2,'color':0, 'size': 6, 'xpos': 50, 'xalign': 1, 'ypos': 36, 'yalign': 0}"
- PuPlayer.LabelSet pBackglass,"title2",subtitle,1,"{'mt':2,'color':16777215, 'size': 4, 'xpos': 50, 'xalign': 1, 'ypos': 45, 'yalign': 0}"
- PuPlayer.LabelSet pBackglass,"titlebg2",subtitle,1,"{'mt':2,'color':0, 'size': 4, 'xpos': 50, 'xalign': 1, 'ypos': 45, 'yalign': 0}"
- Case 150
- PuPlayer.LabelSet pBackglass,"title","",1,"{'mt':2,'color':16777215, 'size': 6, 'xpos': 50, 'xalign': 1, 'ypos': 36, 'yalign': 0}"
- PuPlayer.LabelSet pBackglass,"titlebg","",1,"{'mt':2,'color':0, 'size': 6, 'xpos': 50, 'xalign': 1, 'ypos': 36, 'yalign': 0}"
- PuPlayer.LabelSet pBackglass,"title2","",1,"{'mt':2,'color':16777215, 'size': 4, 'xpos': 50, 'xalign': 1, 'ypos': 45, 'yalign': 0}"
- PuPlayer.LabelSet pBackglass,"titlebg2","",1,"{'mt':2,'color':0, 'size': 4, 'xpos': 50, 'xalign': 1, 'ypos': 45, 'yalign': 0}"
- titlepos = 0
- titletimer.enabled = 0
- End Select
- End Sub
- sub scorebg_timer()
- PuPlayer.LabelSet pBackglass,"Score"," Score",1,""
- PuPlayer.LabelSet pBackglass,"scoreplayer","" & score(1),1,""
- end sub
- sub showhighscores
- PuPlayer.playlistplayex pBackglass,"backglass","backglasswaves.mp4",0,1
- PuPlayer.LabelSet pBackglass,"Score"," Score",1,""
- PuPlayer.LabelSet pBackglass,"scoreplayer","" & score(1),1,""
- PuPlayer.LabelSet pBackglass,"Highscores"," Highscores",1,""
- PuPlayer.LabelSet pBackglass,"high1name"," " & highscorename(0),1,""
- PuPlayer.LabelSet pBackglass,"high1score"," " & highscore(0),1,""
- PuPlayer.LabelSet pBackglass,"high2name"," " & highscorename(1),1,""
- PuPlayer.LabelSet pBackglass,"high2score"," " & highscore(1),1,""
- PuPlayer.LabelSet pBackglass,"high3name"," " & highscorename(2),1,""
- PuPlayer.LabelSet pBackglass,"high3score"," " & highscore(2),1,""
- PuPlayer.LabelSet pBackglass,"high4name"," " & highscorename(3),1,""
- PuPlayer.LabelSet pBackglass,"high4score"," " & highscore(3),1,""
- end sub
- Sub currentplayerbonusstat
- if sexwaxfrenzy.enabled=false and Triggerloop.enabled=false and Triggeroffthelip.enabled=false and Triggeraerial.enabled=false then PuPlayer.playlistplayex pBackglass,"backglass","backglasswaves.mp4",0,1
- PuPlayer.LabelSet pBackglass,"Ballingame"," Ball in game",1,""
- PuPlayer.LabelSet pBackglass,"Ballnumber","" & bpgcurrent - BallsRemaining(CurrentPlayer) + 1 ,1,""
- PuPlayer.LabelSet pBackglass,"Score"," Score",1,""
- PuPlayer.LabelSet pBackglass,"scoreplayer","" & score(1),1,""
- PuPlayer.LabelSet pBackglass,"Bonus"," Bonus",1,""
- PuPlayer.LabelSet pBackglass,"ESBonus"," Endless Summer",1,""
- PuPlayer.LabelSet pBackglass,"ESBonuscount","" & endlesssummerbonus,1,""
- PuPlayer.LabelSet pBackglass,"SKTBonus"," Skeet Surfin",1,""
- PuPlayer.LabelSet pBackglass,"SKTBonuscount","" & skeetbonus,1,""
- PuPlayer.LabelSet pBackglass,"SWFBonus"," SexWaxFrenzy",1,""
- PuPlayer.LabelSet pBackglass,"SWFBonuscount","" & sexwaxfrenzybonus,1,""
- PuPlayer.LabelSet pBackglass,"LoopBonus"," Loops ",1,""
- PuPlayer.LabelSet pBackglass,"LoopBonuscount","" & loopbonus,1,""
- PuPlayer.LabelSet pBackglass,"AerialBonus"," Aerials",1,""
- PuPlayer.LabelSet pBackglass,"AerialBonuscount","" & aerialbonus,1,""
- PuPlayer.LabelSet pBackglass,"OffthelipBonus"," Off The Lips",1,""
- PuPlayer.LabelSet pBackglass,"OffthelipBonuscount","" & offthelipbonus,1,""
- PuPlayer.LabelSet pBackglass,"Diversitymultiplier"," Variety",1,""
- PuPlayer.LabelSet pBackglass,"Diversitymultipliercount","" & diversitymultiplier,1,""
- PuPlayer.LabelSet pBackglass,"Extraballs"," Extraballs",1,""
- PuPlayer.LabelSet pBackglass,"Extraballscount","" & Extraballscount,1,""
- PuPlayer.LabelSet pBackglass,"Sharks"," Sharks",1,""
- PuPlayer.LabelSet pBackglass,"of"," of",1,""
- PuPlayer.LabelSet pBackglass,"Sharkextraballs","" & Sharkextraballs,1,""
- PuPlayer.LabelSet pBackglass,"three","3",1,""
- bonusstat.enabled=true
- End Sub
- sub Bonusstat_timer()
- bonusstat.enabled=false
- end sub
- '***************************
- Sub pUpdateScores
- PuPlayer.LabelSet pBackglass,"curscore",FormatNumber(Score(CurrentPlayer),0),1,""
- PuPlayer.LabelSet pBackglass,"curplayer","Player " & CurrentPlayer,1,""
- If CurrentPlayer = 1 Then
- PuPlayer.LabelSet pBackglass,"Play1score","" & FormatNumber(Score(CurrentPlayer),0),1,"{'mt':2,'color':16777215, 'size': 2.4 }"
- PuPlayer.LabelSet pBackglass,"Play1","Player 1",1,"{'mt':2,'color':16777215 }"
- 'make other scores red (inactive)
- If PlayersPlayingGame = 2 Then
- PuPlayer.LabelSet pBackglass,"Play2score","" & FormatNumber(Score(2),0),1,"{'mt':2,'color':8421504, 'size': 2.4 }"
- PuPlayer.LabelSet pBackglass,"Play2","Player 2",1,"{'mt':2,'color':8421504}"
- End If
- If PlayersPlayingGame = 3 Then
- PuPlayer.LabelSet pBackglass,"Play2score","" & FormatNumber(Score(2),0),1,"{'mt':2,'color':8421504, 'size': 2.4 }"
- PuPlayer.LabelSet pBackglass,"Play2","Player 2",1,"{'mt':2,'color':8421504}"
- PuPlayer.LabelSet pBackglass,"Play3score","" & FormatNumber(Score(3),0),1,"{'mt':2,'color':8421504, 'size': 2.4 }"
- PuPlayer.LabelSet pBackglass,"Play3","Player 3",1,"{'mt':2,'color':8421504}"
- End If
- If PlayersPlayingGame = 4 Then
- PuPlayer.LabelSet pBackglass,"Play2score","" & FormatNumber(Score(2),0),1,"{'mt':2,'color':8421504, 'size': 2.4 }"
- PuPlayer.LabelSet pBackglass,"Play2","Player 2",1,"{'mt':2,'color':8421504}"
- PuPlayer.LabelSet pBackglass,"Play3score","" & FormatNumber(Score(3),0),1,"{'mt':2,'color':8421504, 'size': 2.4 }"
- PuPlayer.LabelSet pBackglass,"Play3","Player 3",1,"{'mt':2,'color':8421504}"
- PuPlayer.LabelSet pBackglass,"Play4score","" & FormatNumber(Score(4),0),1,"{'mt':2,'color':8421504, 'size': 2.4 }"
- PuPlayer.LabelSet pBackglass,"Play4","Player 4",1,"{'mt':2,'color':8421504}"
- End If
- End If
- If CurrentPlayer = 2 Then
- PuPlayer.LabelSet pBackglass,"Play2score","" & FormatNumber(Score(CurrentPlayer),0),1,"{'mt':2,'color':16777215, 'size': 2.4 }"
- PuPlayer.LabelSet pBackglass,"Play2","Player 2",1,"{'mt':2,'color':16777215 }"
- If PlayersPlayingGame = 2 Then
- PuPlayer.LabelSet pBackglass,"Play1score","" & FormatNumber(Score(1),0),1,"{'mt':2,'color':8421504, 'size': 2.4 }"
- PuPlayer.LabelSet pBackglass,"Play1","Player 1",1,"{'mt':2,'color':8421504}"
- End If
- If PlayersPlayingGame = 3 Then
- PuPlayer.LabelSet pBackglass,"Play1score","" & FormatNumber(Score(1),0),1,"{'mt':2,'color':8421504, 'size': 2.4 }"
- PuPlayer.LabelSet pBackglass,"Play1","Player 1",1,"{'mt':2,'color':8421504}"
- PuPlayer.LabelSet pBackglass,"Play3score","" & FormatNumber(Score(3),0),1,"{'mt':2,'color':8421504, 'size': 2.4 }"
- PuPlayer.LabelSet pBackglass,"Play3","Player 3",1,"{'mt':2,'color':8421504}"
- End If
- If PlayersPlayingGame = 4 Then
- PuPlayer.LabelSet pBackglass,"Play1score","" & FormatNumber(Score(1),0),1,"{'mt':2,'color':8421504, 'size': 2.4 }"
- PuPlayer.LabelSet pBackglass,"Play1","Player 1",1,"{'mt':2,'color':8421504}"
- PuPlayer.LabelSet pBackglass,"Play3score","" & FormatNumber(Score(3),0),1,"{'mt':2,'color':8421504, 'size': 2.4 }"
- PuPlayer.LabelSet pBackglass,"Play3","Player 3",1,"{'mt':2,'color':8421504}"
- PuPlayer.LabelSet pBackglass,"Play4score","" & FormatNumber(Score(4),0),1,"{'mt':2,'color':8421504, 'size': 2.4 }"
- PuPlayer.LabelSet pBackglass,"Play4","Player 4",1,"{'mt':2,'color':8421504}"
- End If
- End If
- If CurrentPlayer = 3 Then
- PuPlayer.LabelSet pBackglass,"Play3score","" & FormatNumber(Score(CurrentPlayer),0),1,"{'mt':2,'color':16777215, 'size': 2.4 }"
- PuPlayer.LabelSet pBackglass,"Play3","Player 3",1,"{'mt':2,'color':16777215 }"
- If PlayersPlayingGame = 3 Then
- PuPlayer.LabelSet pBackglass,"Play1score","" & FormatNumber(Score(1),0),1,"{'mt':2,'color':8421504, 'size': 2.4 }"
- PuPlayer.LabelSet pBackglass,"Play1","Player 1",1,"{'mt':2,'color':8421504}"
- PuPlayer.LabelSet pBackglass,"Play2score","" & FormatNumber(Score(2),0),1,"{'mt':2,'color':8421504, 'size': 2.4 }"
- PuPlayer.LabelSet pBackglass,"Play2","Player 2",1,"{'mt':2,'color':8421504}"
- End If
- If PlayersPlayingGame = 4 Then
- PuPlayer.LabelSet pBackglass,"Play1score","" & FormatNumber(Score(1),0),1,"{'mt':2,'color':8421504, 'size': 2.4 }"
- PuPlayer.LabelSet pBackglass,"Play1","Player 1",1,"{'mt':2,'color':8421504}"
- PuPlayer.LabelSet pBackglass,"Play2score","" & FormatNumber(Score(2),0),1,"{'mt':2,'color':8421504, 'size': 2.4 }"
- PuPlayer.LabelSet pBackglass,"Play2","Player 2",1,"{'mt':2,'color':8421504}"
- PuPlayer.LabelSet pBackglass,"Play4score","" & FormatNumber(Score(4),0),1,"{'mt':2,'color':8421504, 'size': 2.4 }"
- PuPlayer.LabelSet pBackglass,"Play4","Player 4",1,"{'mt':2,'color':8421504}"
- End If
- End If
- If CurrentPlayer = 4 Then
- PuPlayer.LabelSet pBackglass,"Play4score","" & FormatNumber(Score(CurrentPlayer),0),1,"{'mt':2,'color':16777215, 'size': 2.4 }"
- PuPlayer.LabelSet pBackglass,"Play4","Player 4",1,"{'mt':2,'color':16777215 }"
- If PlayersPlayingGame = 4 Then
- PuPlayer.LabelSet pBackglass,"Play1score","" & FormatNumber(Score(1),0),1,"{'mt':2,'color':8421504, 'size': 2.4 }"
- PuPlayer.LabelSet pBackglass,"Play1","Player 1",1,"{'mt':2,'color':8421504}"
- PuPlayer.LabelSet pBackglass,"Play2score","" & FormatNumber(Score(2),0),1,"{'mt':2,'color':8421504, 'size': 2.4 }"
- PuPlayer.LabelSet pBackglass,"Play2","Player 2",1,"{'mt':2,'color':8421504}"
- PuPlayer.LabelSet pBackglass,"Play3score","" & FormatNumber(Score(3),0),1,"{'mt':2,'color':8421504, 'size': 2.4 }"
- PuPlayer.LabelSet pBackglass,"Play3","Player 3",1,"{'mt':2,'color':8421504}"
- End If
- End If
- PuPlayer.LabelSet pBackglass,"Ball","Ball " & bpgcurrent - BallsRemaining(CurrentPlayer) + 1 ,1,""
- end Sub
- '' Orbital Highscore functions (BACKGLASS):
- ''XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX
- '' X X X X X X X X X X X X X X X X X X X X X X X
- ''/ \/ \/ \/ \/ \/ \/ \/ \/ \/ \/ \/ \/ \/ \/ \/ \/ \/ \/ \/ \/ \/ \/ \/
- '' High Scores
- ''\ /\ /\ /\ /\ /\ /\ /\ /\ /\ /\ /\ /\ /\ /\ /\ /\ /\ /\ /\ /\ /\ /\ /\
- '' X X X X X X X X X X X X X X X X X X X X X X X
- '
- '
- Sub Savegp
- SaveValue TableName, "TotalGamesPlayed", TotalGamesPlayed
- vpmtimer.addtimer 1000, "Loadhs'"
- End Sub
- '
- '
- '
- '*****************************
- ' Load / Save / Highscore
- '*****************************
- Sub Loadhs
- Dim x
- x = LoadValue(cGameName, "HighScore1")
- If(x <> "") Then HighScore(0) = CDbl(x) Else HighScore(0) = 1000000 End If
- x = LoadValue(cGameName, "HighScore1Name")
- If(x <> "") Then HighScoreName(0) = x Else HighScoreName(0) = "MAK" End If
- x = LoadValue(cGameName, "HighScore2")
- If(x <> "") then HighScore(1) = CDbl(x) Else HighScore(1) = 900000 End If
- x = LoadValue(cGameName, "HighScore2Name")
- If(x <> "") then HighScoreName(1) = x Else HighScoreName(1) = "MAI" End If
- x = LoadValue(cGameName, "HighScore3")
- If(x <> "") then HighScore(2) = CDbl(x) Else HighScore(2) = 800000 End If
- x = LoadValue(cGameName, "HighScore3Name")
- If(x <> "") then HighScoreName(2) = x Else HighScoreName(2) = "TAT" End If
- x = LoadValue(cGameName, "HighScore4")
- If(x <> "") then HighScore(3) = CDbl(x) Else HighScore(3) = 700000 End If
- x = LoadValue(cGameName, "HighScore4Name")
- If(x <> "") then HighScoreName(3) = x Else HighScoreName(3) = "DAN" End If
- x = LoadValue(cGameName, "Credits")
- If(x <> "") then Credits = CInt(x):DOF 114, DOFOn:Else Credits = 0 End If
- 'x = LoadValue(cGameName, "Jackpot")
- 'If(x <> "") then Jackpot = CDbl(x) Else Jackpot = 200000 End If
- x = LoadValue(cGameName, "TotalGamesPlayed")
- If(x <> "") then TotalGamesPlayed = CInt(x) Else TotalGamesPlayed = 0 End If
- End Sub
- Sub Savehs
- SaveValue cGameName, "HighScore1", HighScore(0)
- SaveValue cGameName, "HighScore1Name", HighScoreName(0)
- SaveValue cGameName, "HighScore2", HighScore(1)
- SaveValue cGameName, "HighScore2Name", HighScoreName(1)
- SaveValue cGameName, "HighScore3", HighScore(2)
- SaveValue cGameName, "HighScore3Name", HighScoreName(2)
- SaveValue cGameName, "HighScore4", HighScore(3)
- SaveValue cGameName, "HighScore4Name", HighScoreName(3)
- SaveValue cGameName, "Credits", Credits
- 'SaveValue cGameName, "Jackpot", Jackpot
- SaveValue cGameName, "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
- HighScore(3) = tmp
- 'enter player's name
- HighScoreEntryInit()
- Else
- EndOfBallComplete()
- End If
- End Sub
- Sub HighScoreEntryInit()
- PuPlayer.playlistplayex pAudio,"audiocallouts","highscore.mp3",100,1
- PuPlayer.playlistplayex pMusic,"musicdiv","best.mp3",100, 1
- hsbModeActive = True
- hsLetterFlash = 0
- hsEnteredDigits(0) = "A"
- hsEnteredDigits(1) = " "
- hsEnteredDigits(2) = " "
- hsCurrentDigit = 0
- hsValidLetters = " ABCDEFGHIJKLMNOPQRSTUVWXYZ<+-0123456789" ' < is used to delete the last letter
- hsCurrentLetter = 1
- DMDFlush
- DMDId "hsc", "black.jpg", "YOUR NAME:", " ", 999999
- HighScoreDisplayName()
- End Sub
- Sub EnterHighScoreKey(keycode)
- If keycode = LeftFlipperKey Then
- Playsound "drop1"
- hsCurrentLetter = hsCurrentLetter - 1
- if(hsCurrentLetter = 0) then
- hsCurrentLetter = len(hsValidLetters)
- end if
- HighScoreDisplayName()
- End If
- If keycode = RightFlipperKey Then
- Playsound "drop2"
- 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 "drop3"
- hsEnteredDigits(hsCurrentDigit) = mid(hsValidLetters, hsCurrentLetter, 1)
- hsCurrentDigit = hsCurrentDigit + 1
- if(hsCurrentDigit = 3) then
- HighScoreCommitName()
- else
- HighScoreDisplayName()
- end if
- else
- playsound "drop4"
- 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()
- PuPlayer.playlistplayex pAudio,"audiocheers","cheer1.mp3",100,1
- hsbModeActive = False
- PlaySound "drop1"
- 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
- savehs
- showhighscores
- startattractmode
- End Sub
- 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX
- ' X X X X X X X X X X X X X X X X X X X X X X X
- '/ \/ \/ \/ \/ \/ \/ \/ \/ \/ \/ \/ \/ \/ \/ \/ \/ \/ \/ \/ \/ \/ \/ \/
- ' ATTRACT MODE
- '\ /\ /\ /\ /\ /\ /\ /\ /\ /\ /\ /\ /\ /\ /\ /\ /\ /\ /\ /\ /\ /\ /\ /\
- ' X X X X X X X X X X X X X X X X X X X X X X X
- '
- Sub StartAttractMode()
- DOF 323, DOFOn 'DOF MX - Attract Mode ON
- bAttractMode = True
- UltraDMDTimer.Enabled = 1
- StartLightSeq
- 'ShowTableInfo
- DMDintroloop
- DMDattract.Enabled = 1
- intromover.enabled = true
- ruleshelperoff
- PuPlayer.playlistplayex pBackglass, "videoattract","videoattract.mp4",100,1
- PuPlayer.playlistplayex pTopper, "topper","topper.mp4",100,1
- PuPlayer.LabelSet pBackglass,"Bonus","Bonus",0,""
- PuPlayer.LabelSet pBackglass,"ESBonus","Endless Summer :",0,""
- PuPlayer.LabelSet pBackglass,"ESBonuscount","" & endlesssummerbonus,0,""
- PuPlayer.LabelSet pBackglass,"SKTBonus","Skeet Surfin´ :",0,""
- PuPlayer.LabelSet pBackglass,"SKTBonuscount","" & skeetbonus,0,""
- PuPlayer.LabelSet pBackglass,"SWFBonus","SexWaxFrenzy :",0,""
- PuPlayer.LabelSet pBackglass,"SWFBonuscount","" & sexwaxfrenzybonus,0,""
- PuPlayer.LabelSet pBackglass,"LoopBonus","Loops :",0,""
- PuPlayer.LabelSet pBackglass,"LoopBonuscount","" & loopbonus,0,""
- PuPlayer.LabelSet pBackglass,"AerialBonus","Aerial 360s :",0,""
- PuPlayer.LabelSet pBackglass,"AerialBonuscount","" & aerialbonus,0,""
- PuPlayer.LabelSet pBackglass,"OffthelipBonus","Off The Lips :",0,""
- PuPlayer.LabelSet pBackglass,"OffthelipBonuscount","" & offthelipbonus,0,""
- PuPlayer.LabelSet pBackglass,"Diversitymultiplier","Variety :",0,""
- PuPlayer.LabelSet pBackglass,"Diversitymultipliercount","" & diversitymultiplier,0,""
- PuPlayer.LabelSet pBackglass,"Extraballs","Extraballs",0,""
- PuPlayer.LabelSet pBackglass,"Extraballscount","" & Extraballscount,0,""
- PuPlayer.LabelSet pBackglass,"Ballingame"," Ball in game",0,""
- PuPlayer.LabelSet pBackglass,"Ballnumber","" & bpgcurrent - BallsRemaining(CurrentPlayer) + 1 ,0,""
- PuPlayer.LabelSet pBackglass,"Sharks"," Sharks",0,""
- PuPlayer.LabelSet pBackglass,"of"," of",0,""
- PuPlayer.LabelSet pBackglass,"Sharkextraballs","" & Sharkextraballs,0,""
- PuPlayer.LabelSet pBackglass,"three","3",0,""
- PuPlayer.LabelSet pBackglass,"scoreplayer","" & score(1),1,""
- PuPlayer.LabelSet pBackglass,"Highscores"," Highscores",1,""
- PuPlayer.LabelSet pBackglass,"high1name"," " & highscorename(0),1,""
- PuPlayer.LabelSet pBackglass,"high1score"," " & highscore(0),1,""
- PuPlayer.LabelSet pBackglass,"high2name"," " & highscorename(1),1,""
- PuPlayer.LabelSet pBackglass,"high2score"," " & highscore(1),1,""
- PuPlayer.LabelSet pBackglass,"high3name"," " & highscorename(2),1,""
- PuPlayer.LabelSet pBackglass,"high3score"," " & highscore(2),1,""
- PuPlayer.LabelSet pBackglass,"high4name"," " & highscorename(3),1,""
- PuPlayer.LabelSet pBackglass,"high4score"," " & highscore(3),1,""
- end sub
- Sub StopAttractMode()
- DOF 323, DOFOff 'DOF MX - Attract Mode Off
- bAttractMode = False
- DMDScoreNow
- LightSeq001.StopPlay
- LightSeqAttract2.StopPlay
- DMDattract.Enabled = 0
- intromover.enabled = false
- End Sub
- 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX
- ' X X X X X X X X X X X X X X X X X X X X X X X
- '/ \/ \/ \/ \/ \/ \/ \/ \/ \/ \/ \/ \/ \/ \/ \/ \/ \/ \/ \/ \/ \/ \/ \/
- ' CINEMATIC SKIPPING
- '\ /\ /\ /\ /\ /\ /\ /\ /\ /\ /\ /\ /\ /\ /\ /\ /\ /\ /\ /\ /\ /\ /\ /\
- ' X X X X X X X X X X X X X X X X X X X X X X X
- Dim ldown:ldown = 0
- Dim rdown:rdown = 0
- Sub checkdown
- If ldown + rdown = 2 Then
- skipscene
- End If
- End Sub
- Sub skipscene
- End Sub
- Sub StartLightSeq()
- LightSeq001.UpdateInterval = 8
- LightSeq001.Play SeqUpOn, 50, 1
- LightSeq001.UpdateInterval = 8
- LightSeq001.Play SeqDownOn, 25, 1
- LightSeq001.UpdateInterval = 8
- LightSeq001.Play SeqCircleOutOn, 15, 2
- LightSeq001.UpdateInterval = 8
- LightSeq001.Play SeqUpOn, 25, 1
- LightSeq001.UpdateInterval = 8
- LightSeq001.Play SeqDownOn, 25, 1
- LightSeq001.UpdateInterval = 8
- LightSeq001.Play SeqUpOn, 25, 1
- LightSeq001.UpdateInterval = 8
- LightSeq001.Play SeqDownOn, 25, 1
- LightSeq001.UpdateInterval = 10
- LightSeq001.Play SeqCircleOutOn, 15, 3
- LightSeq001.UpdateInterval = 5
- LightSeq001.Play SeqRightOn, 50, 1
- LightSeq001.UpdateInterval = 5
- LightSeq001.Play SeqLeftOn, 50, 1
- LightSeq001.UpdateInterval = 8
- LightSeq001.Play SeqRightOn, 50, 1
- LightSeq001.UpdateInterval = 8
- LightSeq001.Play SeqLeftOn, 50, 1
- LightSeq001.UpdateInterval = 8
- LightSeq001.Play SeqRightOn, 40, 1
- LightSeq001.UpdateInterval = 8
- LightSeq001.Play SeqLeftOn, 40, 1
- LightSeq001.UpdateInterval = 10
- LightSeq001.Play SeqRightOn, 30, 1
- LightSeq001.UpdateInterval = 10
- LightSeq001.Play SeqLeftOn, 30, 1
- LightSeq001.UpdateInterval = 8
- LightSeq001.Play SeqRightOn, 25, 1
- LightSeq001.UpdateInterval = 8
- LightSeq001.Play SeqLeftOn, 25, 1
- LightSeq001.UpdateInterval = 8
- LightSeq001.Play SeqRightOn, 15, 1
- LightSeq001.UpdateInterval = 8
- LightSeq001.Play SeqLeftOn, 15, 1
- LightSeq001.UpdateInterval = 10
- LightSeq001.Play SeqCircleOutOn, 15, 3
- LightSeq001.UpdateInterval = 8
- LightSeq001.Play SeqLeftOn, 25, 1
- LightSeq001.UpdateInterval = 8
- LightSeq001.Play SeqRightOn, 25, 1
- LightSeq001.UpdateInterval = 8
- LightSeq001.Play SeqLeftOn, 25, 1
- LightSeq001.UpdateInterval = 8
- LightSeq001.Play SeqUpOn, 25, 1
- LightSeq001.UpdateInterval = 8
- LightSeq001.Play SeqDownOn, 25, 1
- LightSeq001.UpdateInterval = 8
- LightSeq001.Play SeqUpOn, 25, 1
- LightSeq001.UpdateInterval = 8
- LightSeq001.Play SeqDownOn, 25, 1
- LightSeq001.UpdateInterval = 5
- LightSeq001.Play SeqStripe1VertOn, 50, 2
- LightSeq001.UpdateInterval = 8
- LightSeq001.Play SeqCircleOutOn, 15, 2
- LightSeq001.UpdateInterval = 8
- LightSeq001.Play SeqStripe1VertOn, 50, 3
- LightSeq001.UpdateInterval = 8
- LightSeq001.Play SeqLeftOn, 25, 1
- LightSeq001.UpdateInterval = 8
- LightSeq001.Play SeqRightOn, 25, 1
- LightSeq001.UpdateInterval = 8
- LightSeq001.Play SeqLeftOn, 25, 1
- LightSeq001.UpdateInterval = 8
- LightSeq001.Play SeqUpOn, 25, 1
- LightSeq001.UpdateInterval = 8
- LightSeq001.Play SeqDownOn, 25, 1
- LightSeq001.UpdateInterval = 8
- LightSeq001.Play SeqCircleOutOn, 15, 2
- LightSeq001.UpdateInterval = 8
- LightSeq001.Play SeqStripe2VertOn, 50, 3
- LightSeq001.UpdateInterval = 8
- LightSeq001.Play SeqLeftOn, 25, 1
- LightSeq001.UpdateInterval = 8
- LightSeq001.Play SeqRightOn, 25, 1
- LightSeq001.UpdateInterval = 8
- LightSeq001.Play SeqLeftOn, 25, 1
- LightSeq001.UpdateInterval = 8
- LightSeq001.Play SeqUpOn, 25, 1
- LightSeq001.UpdateInterval = 8
- LightSeq001.Play SeqDownOn, 25, 1
- LightSeq001.UpdateInterval = 8
- LightSeq001.Play SeqUpOn, 25, 1
- LightSeq001.UpdateInterval = 8
- LightSeq001.Play SeqDownOn, 25, 1
- LightSeq001.UpdateInterval = 8
- LightSeq001.Play SeqStripe1VertOn, 25, 3
- LightSeq001.UpdateInterval = 8
- LightSeq001.Play SeqStripe2VertOn, 25, 3
- LightSeq001.UpdateInterval = 8
- LightSeq001.Play SeqUpOn, 15, 1
- LightSeq001.UpdateInterval = 8
- LightSeq001.Play SeqDownOn, 15, 1
- LightSeq001.UpdateInterval = 8
- LightSeq001.Play SeqUpOn, 15, 1
- LightSeq001.UpdateInterval = 8
- LightSeq001.Play SeqDownOn, 15, 1
- LightSeq001.UpdateInterval = 8
- LightSeq001.Play SeqUpOn, 15, 1
- LightSeq001.UpdateInterval = 8
- LightSeq001.Play SeqDownOn, 15, 1
- LightSeq001.UpdateInterval = 8
- LightSeq001.Play SeqRightOn, 15, 1
- LightSeq001.UpdateInterval = 8
- LightSeq001.Play SeqLeftOn, 15, 1
- LightSeq001.UpdateInterval = 8
- LightSeq001.Play SeqRightOn, 15, 1
- LightSeq001.UpdateInterval = 8
- LightSeq001.Play SeqLeftOn, 15, 1
- end sub
- Sub GiOn
- DOF 126, DOFOn
- For each a in GI
- a.State = 1
- a.Intensity = 2
- a.color = RGB(255, 155, 64) 'default color
- a.colorfull = RGB(255, 255, 255) 'default color
- Next
- End Sub
- Sub GiOff
- DOF 126, DOFOff
- For each a in GI
- a.State = 0
- Next
- End Sub
- 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX
- ' X X X X X X X X X X X X X X X X X X X X X X X
- '/ \/ \/ \/ \/ \/ \/ \/ \/ \/ \/ \/ \/ \/ \/ \/ \/ \/ \/ \/ \/ \/ \/ \/
- ' SCORING FUNCTIONS
- '\ /\ /\ /\ /\ /\ /\ /\ /\ /\ /\ /\ /\ /\ /\ /\ /\ /\ /\ /\ /\ /\ /\ /\
- ' X X X X X X X X X X X X X X X X X X X X X X X
- Sub AddScore(points)
- If(Tilted = False) Then
- ' add the points to the current players score variable
- Score(CurrentPlayer) = Score(CurrentPlayer) + points
- DMDScore
- pUpdateScores
- End if
- End Sub
- Sub AwardExtraBall()
- ExtraBallscount = ExtraBallscount + 1':chilloutthemusic
- if sharkmode=0 then LightSharkMode1.state=0:LightSharkMode2.state=0:LightSharkMode3.state=0:LightSharkMode4.state=0
- If extraballscount > 0 Then
- Light_extraball.State = 1:PostFlasher.state = 1
- ExtraBallsAwards(CurrentPlayer) = ExtraBallsAwards(CurrentPlayer) + 1
- bExtraBallWonThisBall = True
- DOF 402, DOFPulse 'DOF MX - Extra Ball
- 'extraballready(CurrentPlayer) = 0
- If bMultiBallMode = false Then
- PuPlayer.playlistplayex pBackglass,"videodiv","extraball.mp4",0,1
- DMDFlush:DMD "black.jpg", "EXTRABALL!", "", 3000
- PuPlayer.playlistplayex pAudio,"audiocallouts","congrats_extraball.mp3",100,1
- End If
- Else
- AddScore 4000000
- END If
- End Sub
- Sub AwardSpecial()
- Credits = Credits + 1:SaveValue cGameName, "Credits", Credits
- DOF 140, DOFOn
- PlaySound SoundFXDOF("knocker",136,DOFPulse,DOFKnocker)
- DOF 115, DOFPulse
- DOF 400, DOFPulse 'DOF MX - Special
- End Sub
- Sub AwardBonusJackpot()
- addscore 1000000
- DMD "black.jpg", "JACKPOT!", "1000000!", 3000
- PuPlayer.playlistplayex paudio,"audiocallouts","Jackpot.mp3",100,1
- if skeetbonus = 15 then jackpotwait.enabled=true
- if endlesssummerbonus = 15 then jackpotwait.enabled=true
- if sexwaxfrenzybonus = 15 then jackpotwait.enabled=true
- DOF 140, DOFOn
- PlaySound SoundFXDOF("knocker",136,DOFPulse,DOFKnocker)
- DOF 115, DOFPulse
- DOF 400, DOFPulse 'DOF MX - Special
- End Sub
- sub jackpotwait_timer()
- if skeetbonus = 15 then DMDFlush:DMD "black.jpg", "Skeetsurfin mode", "maxed out!", 3000:PuPlayer.playlistplayex paudio,"audiocallouts","bonusmaxjackpot.mp3",100,1
- if endlesssummerbonus = 15 then DMDFlush:DMD "black.jpg", "Endless summer mode", "maxed out!", 3000:PuPlayer.playlistplayex paudio,"audiocallouts","bonusmaxjackpot.mp3",100,1
- if sexwaxfrenzybonus = 15 then DMDFlush:DMD "black.jpg", "sexwaxfrenzy mode", "maxed out!", 3000:PuPlayer.playlistplayex paudio,"audiocallouts","bonusmaxjackpot.mp3",100,1
- jackpotwait.enabled=false
- end sub
- Sub AwardSkillshot()
- Dim i
- DOF 125, DOFPulse
- ResetSkillShotTimer_Timer
- AddScore SkillshotValue(CurrentPLayer)
- timerskill.enabled=false
- PuPlayer.playlistplayex paudio,"audiocallouts","yay.mp3",100,1
- DMDFlush:DMD "black.jpg", "Nice Skillshot!", "" &SkillShotValue(CurrentPLayer), 3000
- Light_skillhit_flash_white.state=2:skill_hit_flash.enabled=true
- lightSeqSkillSuccess.Play SeqCircleInOn,10:lightSeqSkillSuccess.Play SeqCircleOutOn,10:lightSeqSkillSuccess.Play SeqCircleInOn,10
- PuPlayer.playlistplayex pBackglass,"videodiv","skillshot.mp4",0,1
- Targetskill1.isdropped=true:Targetskill2.isdropped=true:Targetskill3.isdropped=true
- Targetskill1.collidable=false:Targetskill2.collidable=false:Targetskill3.collidable=false
- TimerPrim.Enabled = True
- LightPrim1.state=0:LightPrim2.state=0:LightPrim3.state=0
- SkillShotValue(CurrentPLayer) = SkillShotValue(CurrentPLayer) + 10000
- wall_inv_skt.isdropped=true
- wall_inv_ES.isdropped=true
- PrimTarget1.image="aluminum":PrimTarget2.image="aluminum":PrimTarget3.image="aluminum"
- fakeboard1.isdropped=true:fakeboard2.isdropped=true:fakeboard3.isdropped=true
- if progress(currentplayer)=0 then PuPlayer.playlistplayex pMusic,"musicmainmode","ESsong_mainball1.mp3",100, 1'(if not surfmode)
- if progress(currentplayer)=1 then PuPlayer.playlistplayex pMusic,"musicsurfmode","",100, 1:TimerBoardwall3up.Enabled = true'(if surfmode)
- 'DMDScoreNow
- DOF 105, DOFOn
- DOF 900, DOFOn
- End Sub
- 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX
- ' X X X X X X X X X X X X X X X X X X X X X X X
- '/ \/ \/ \/ \/ \/ \/ \/ \/ \/ \/ \/ \/ \/ \/ \/ \/ \/ \/ \/ \/ \/ \/ \/
- ' BALL FUNCTIONS & DRAINS
- '\ /\ /\ /\ /\ /\ /\ /\ /\ /\ /\ /\ /\ /\ /\ /\ /\ /\ /\ /\ /\ /\ /\ /\
- ' X X X X X X X X X X X X X X X X X X X X X X X
- Function Balls
- Dim tmp
- tmp = bpgcurrent - BallsRemaining(CurrentPlayer) + 1
- If tmp> bpgcurrent Then
- Balls = bpgcurrent
- Else
- Balls = tmp
- End If
- End Function
- Sub FirstBall
- ResetForNewPlayerBall()
- CreateNewBall()
- End Sub
- Sub ResetForNewPlayerBall()
- PuPlayer.playresume 4
- If PlayersPlayingGame > 1 Then
- If CurrentPlayer = 1 Then
- PuPlayer.playlistplayex paudio,"audiocallouts","player1.mp3",100,1
- chilloutthemusic
- Elseif currentplayer = 2 Then
- PuPlayer.playlistplayex paudio,"audiocallouts","player2.mp3",100,1
- chilloutthemusic
- Elseif currentplayer = 3 Then
- PuPlayer.playlistplayex paudio,"audiocallouts","player3.mp3",100,1
- chilloutthemusic
- Elseif currentplayer = 4 Then
- PuPlayer.playlistplayex paudio,"audiocallouts","player4.mp3",100,1
- chilloutthemusic
- End If
- Else
- DMD "black.jpg", "BALL " & Balls, "Get on the water!", 2000
- End If
- AddScore 0
- BonusPoints(CurrentPlayer) = 0
- bBonusHeld = False
- if extraballscount = 0 then bExtraBallWonThisBall = False
- if extraballscount > 0 then bExtraBallWonThisBall = True
- ResetNewBallLights()
- ResetNewBallVariables
- bBallSaverReady = True
- bSkillShotReady = True
- AwardPoints = 0
- TotalBonus = 0
- End Sub
- Sub CreateNewBall()
- BallRelease.CreateSizedball BallSize / 2
- BallsOnPlayfield = BallsOnPlayfield + 1
- PlaySoundAt SoundFXDOF("ballrelease", 113, DOFPulse, DOFContactors), BallRelease
- playsound "ballrelease"
- BallRelease.Kick 90, 4
- If BallsOnPlayfield > 1 Then
- bMultiBallMode = True
- DOF 127, DOFOn 'Beacon ON
- bAutoPlunger = True
- End If
- PuPlayer.playlistplayex pTopper, "topper","topper.mp4",100,1
- End Sub
- Sub AddMultiball(nballs)
- mBalls2Eject = mBalls2Eject + nballs
- CreateMultiballTimer.Enabled = True
- End Sub
- Sub CreateMultiballTimer_Timer()
- If bBallInPlungerLane Then
- Exit Sub
- Else
- If BallsOnPlayfield <MaxMultiballs Then
- CreateNewBall()
- mBalls2Eject = mBalls2Eject -1
- If mBalls2Eject = 0 Then
- Me.Enabled = False
- End If
- Else
- mBalls2Eject = 0
- Me.Enabled = False
- End If
- End If
- End Sub
- Sub EndOfBall()
- Dim waittime
- waittime=0
- 'Dim AwardPoints, TotalBonus, ii
- ' the first ball has been lost. From this point on no new players can join in
- bOnTheFirstBall = False
- if diversitymultiplier > 0 and endlesssummerbonuspre+Skeetbonuspre+Sexwaxfrenzybonuspre+offthelipbonuspre+loopbonuspre+aerialbonuspre > 0 then
- 'Bonuscount + calculation.
- playsound "wusha"
- 'endlesssummerbonus
- if endlesssummerbonuspre>0 then
- waittime=waittime+1800
- AwardPoints = endlesssummerbonuspre * 10000
- TotalBonus = TotalBonus + AwardPoints
- vpmtimer.addtimer waittime, "PlaySound ""wush0"", 0, 1, 0, 0, 0, 0, 0 '"
- Select Case Int(Rnd * 12) + 1
- Case 1:DMD "bon1.wmv", "Endlesssummer Bonus", awardpoints, 1500
- Case 2:DMD "bon2.wmv", "Endlesssummer Bonus", awardpoints, 1500
- Case 3:DMD "bon3.wmv", "Endlesssummer Bonus", awardpoints, 1500
- Case 4:DMD "bon4.wmv", "Endlesssummer Bonus", awardpoints, 1500
- Case 5:DMD "bon5.wmv", "Endlesssummer Bonus", awardpoints, 1500
- Case 6:DMD "bon6.wmv", "Endlesssummer Bonus", awardpoints, 1500
- Case 7:DMD "bon7.wmv", "Endlesssummer Bonus", awardpoints, 1500
- Case 8:DMD "bon8.wmv", "Endlesssummer Bonus", awardpoints, 1500
- Case 9:DMD "bon9.wmv", "Endlesssummer Bonus", awardpoints, 1500
- Case 10:DMD "bon10.wmv", "Endlesssummer Bonus", awardpoints, 1500
- Case 11:DMD "bon11.wmv", "Endlesssummer Bonus", awardpoints, 1500
- Case 12:DMD "bon12.wmv", "Endlesssummer Bonus", awardpoints, 1500
- End Select
- end If
- 'skeetbonus
- if skeetbonuspre>0 then
- waittime=waittime+1800
- AwardPoints = skeetbonuspre * 10000
- TotalBonus = TotalBonus + Awardpoints
- Select Case Int(Rnd * 12) + 1
- Case 1:DMD "bon1.wmv", "Skeetsurfing Bonus", awardpoints, 1500
- Case 2:DMD "bon2.wmv", "Skeetsurfing Bonus", awardpoints, 1500
- Case 3:DMD "bon3.wmv", "Skeetsurfing Bonus", awardpoints, 1500
- Case 4:DMD "bon4.wmv", "Skeetsurfing Bonus", awardpoints, 1500
- Case 5:DMD "bon5.wmv", "Skeetsurfing Bonus", awardpoints, 1500
- Case 6:DMD "bon6.wmv", "Skeetsurfing Bonus", awardpoints, 1500
- Case 7:DMD "bon7.wmv", "Skeetsurfing Bonus", awardpoints, 1500
- Case 8:DMD "bon8.wmv", "Skeetsurfing Bonus", awardpoints, 1500
- Case 9:DMD "bon9.wmv", "Skeetsurfing Bonus", awardpoints, 1500
- Case 10:DMD "bon10.wmv", "Skeetsurfing Bonus", awardpoints, 1500
- Case 11:DMD "bon11.wmv", "Skeetsurfing Bonus", awardpoints, 1500
- Case 12:DMD "bon12.wmv", "Skeetsurfing Bonus", awardpoints, 1500
- End Select
- vpmtimer.addtimer waittime, "PlaySound ""wush1"", 0, 1, 0, 0, 0, 0, 0 '"
- end if
- 'sexwaxfrenzybonus
- if sexwaxfrenzybonuspre>0 then
- waittime=waittime+1800
- AwardPoints = sexwaxfrenzybonuspre * 10000
- TotalBonus = TotalBonus + AwardPoints
- vpmtimer.addtimer waittime, "PlaySound ""wush2"", 0, 1, 0, 0, 0, 0, 0 '"
- Select Case Int(Rnd * 12) + 1
- Case 1:DMD "bon1.wmv", "SexWaxFrenzy Bonus", awardpoints, 1500
- Case 2:DMD "bon2.wmv", "SexWaxFrenzy Bonus", awardpoints, 1500
- Case 3:DMD "bon3.wmv", "SexWaxFrenzy Bonus", awardpoints, 1500
- Case 4:DMD "bon4.wmv", "SexWaxFrenzy Bonus", awardpoints, 1500
- Case 5:DMD "bon5.wmv", "SexWaxFrenzy Bonus", awardpoints, 1500
- Case 6:DMD "bon6.wmv", "SexWaxFrenzy Bonus", awardpoints, 1500
- Case 7:DMD "bon7.wmv", "SexWaxFrenzy Bonus", awardpoints, 1500
- Case 8:DMD "bon8.wmv", "SexWaxFrenzy Bonus", awardpoints, 1500
- Case 9:DMD "bon9.wmv", "SexWaxFrenzy Bonus", awardpoints, 1500
- Case 10:DMD "bon10.wmv", "SexWaxFrenzy Bonus", awardpoints, 1500
- Case 11:DMD "bon11.wmv", "SexWaxFrenzy Bonus", awardpoints, 1500
- Case 12:DMD "bon12.wmv", "SexWaxFrenzy Bonus", awardpoints, 1500
- End Select
- end If
- 'offthelipbonus
- if offthelipbonuspre>0 then
- waittime=waittime+1800
- AwardPoints = offthelipbonuspre * 10000
- TotalBonus = Totalbonus + AwardPoints
- Select Case Int(Rnd * 12) + 1
- Case 1:DMD "bon1.wmv", "Off the lip Bonus", awardpoints, 1500
- Case 2:DMD "bon2.wmv", "Off the lip Bonus", awardpoints, 1500
- Case 3:DMD "bon3.wmv", "Off the lip Bonus", awardpoints, 1500
- Case 4:DMD "bon4.wmv", "Off the lip Bonus", awardpoints, 1500
- Case 5:DMD "bon5.wmv", "Off the lip Bonus", awardpoints, 1500
- Case 6:DMD "bon6.wmv", "Off the lip Bonus", awardpoints, 1500
- Case 7:DMD "bon7.wmv", "Off the lip Bonus", awardpoints, 1500
- Case 8:DMD "bon8.wmv", "Off the lip Bonus", awardpoints, 1500
- Case 9:DMD "bon9.wmv", "Off the lip Bonus", awardpoints, 1500
- Case 10:DMD "bon10.wmv", "Off the lip Bonus", awardpoints, 1500
- Case 11:DMD "bon11.wmv", "Off the lip Bonus", awardpoints, 1500
- Case 12:DMD "bon12.wmv", "Off the lip Bonus", awardpoints, 1500
- End Select
- vpmtimer.addtimer waittime, "PlaySound ""wush3"", 0, 1, 0, 0, 0, 0, 0 '"
- end If
- 'loopbonus
- if loopbonuspre>0 then
- waittime=waittime+1800
- AwardPoints = loopBonuspre * 10000
- TotalBonus = TotalBonus + Awardpoints
- Select Case Int(Rnd * 12) + 1
- Case 1:DMD "bon1.wmv", "Loop Bonus", awardpoints, 1500
- Case 2:DMD "bon2.wmv", "Loop Bonus", awardpoints, 1500
- Case 3:DMD "bon3.wmv", "Loop Bonus", awardpoints, 1500
- Case 4:DMD "bon4.wmv", "Loop Bonus", awardpoints, 1500
- Case 5:DMD "bon5.wmv", "Loop Bonus", awardpoints, 1500
- Case 6:DMD "bon6.wmv", "Loop Bonus", awardpoints, 1500
- Case 7:DMD "bon7.wmv", "Loop Bonus", awardpoints, 1500
- Case 8:DMD "bon8.wmv", "Loop Bonus", awardpoints, 1500
- Case 9:DMD "bon9.wmv", "Loop Bonus", awardpoints, 1500
- Case 10:DMD "bon10.wmv", "Loop Bonus", awardpoints, 1500
- Case 11:DMD "bon11.wmv", "Loop Bonus", awardpoints, 1500
- Case 12:DMD "bon12.wmv", "Loop Bonus", awardpoints, 1500
- End Select
- vpmtimer.addtimer waittime, "PlaySound ""wush4"", 0, 1, 0, 0, 0, 0, 0 '"
- end if
- 'aerialbonus
- if aerialbonuspre>0 then
- waittime=waittime+1800
- AwardPoints = aerialbonuspre * 10000
- TotalBonus = TotalBonus + AwardPoints
- Select Case Int(Rnd * 12) + 1
- Case 1:DMD "bon1.wmv", "Aerial 360 Bonus", awardpoints, 1500
- Case 2:DMD "bon2.wmv", "Aerial 360 Bonus", awardpoints, 1500
- Case 3:DMD "bon3.wmv", "Aerial 360 Bonus", awardpoints, 1500
- Case 4:DMD "bon4.wmv", "Aerial 360 Bonus", awardpoints, 1500
- Case 5:DMD "bon5.wmv", "Aerial 360 Bonus", awardpoints, 1500
- Case 6:DMD "bon6.wmv", "Aerial 360 Bonus", awardpoints, 1500
- Case 7:DMD "bon7.wmv", "Aerial 360 Bonus", awardpoints, 1500
- Case 8:DMD "bon8.wmv", "Aerial 360 Bonus", awardpoints, 1500
- Case 9:DMD "bon9.wmv", "Aerial 360 Bonus", awardpoints, 1500
- Case 10:DMD "bon10.wmv", "Aerial 360 Bonus", awardpoints, 1500
- Case 11:DMD "bon11.wmv", "Aerial 360 Bonus", awardpoints, 1500
- Case 12:DMD "bon12.wmv", "Aerial 360 Bonus", awardpoints, 1500
- End Select
- vpmtimer.addtimer waittime, "PlaySound ""wush5"", 0, 1, 0, 0, 0, 0, 0 '"
- end if
- 'diversitymultiplier
- AwardPoints = diversitymultiplier
- 'TotalBonus = TotalBonus * diversitymultiplier
- Select Case Int(Rnd * 12) + 1
- Case 1:DMD "bon1.wmv", "variety Multiplier", awardpoints, 1500
- Case 2:DMD "bon2.wmv", "variety Multiplier", awardpoints, 1500
- Case 3:DMD "bon3.wmv", "variety Multiplier", awardpoints, 1500
- Case 4:DMD "bon4.wmv", "variety Multiplier", awardpoints, 1500
- Case 5:DMD "bon5.wmv", "variety Multiplier", awardpoints, 1500
- Case 6:DMD "bon6.wmv", "variety Multiplier", awardpoints, 1500
- Case 7:DMD "bon7.wmv", "variety Multiplier", awardpoints, 1500
- Case 8:DMD "bon8.wmv", "variety Multiplier", awardpoints, 1500
- Case 9:DMD "bon9.wmv", "variety Multiplier", awardpoints, 1500
- Case 10:DMD "bon10.wmv", "variety Multiplier", awardpoints, 1500
- Case 11:DMD "bon11.wmv", "variety Multiplier", awardpoints, 1500
- Case 12:DMD "bon12.wmv", "variety Multiplier", awardpoints, 1500
- End Select
- ' calculate the totalbon
- TotalBonus = TotalBonus * diversitymultiplier
- ' Add the bonus to the score
- DMD "black.jpg", "TOTAL BONUS X " &diversitymultiplier, "= "&TotalBonus , 3000
- waittime=waittime+1800
- vpmtimer.addtimer waittime, "PlaySound ""yahoo"", 0, 1, 0, 0, 0, 0, 0 '" ' if Bonus=0 then playsound "yesterday"
- AddScore TotalBonus
- waittime=waittime+3500
- vpmtimer.addtimer waittime, "EndOfBall2 '"
- else
- 'end If
- '
- 'if diversitymultiplier=0 then
- Select Case Int(Rnd * 2) + 1
- Case 1: PuPlayer.playlistplayex paudio,"audiocallouts","nobonus_yesterday.mp3",100, 1
- Case 2: PuPlayer.playlistplayex paudio,"audiocallouts","Aww.mp3",100, 1
- End Select
- DMD "black.jpg", "Back to surf school!", "no Bonus", 3000
- vpmtimer.addtimer 3500, "EndOfBall2 '"
- end if
- End Sub
- Sub EndOfBall2()
- Tilted = False
- Tilt = 0
- DisableTable False
- tilttableclear.enabled = False
- tilttime = 0
- If(ExtraBallsAwards(CurrentPlayer) <> 0) Then
- ExtraBallsAwards(CurrentPlayer) = ExtraBallsAwards(CurrentPlayer) - 1
- ExtraBallscount = ExtraBallscount - 1
- If(ExtraBallsAwards(CurrentPlayer) = 0) Then
- Light_extraball.State = 0:PostFlasher.state = 0
- End If
- CreateNewBall()
- ResetForNewPlayerBall
- DMD "black.jpg", "same player", "shoot again", 3000
- ballstate=2
- chilloutthemusic
- Else
- BallsRemaining(CurrentPlayer) = BallsRemaining(CurrentPlayer) - 1
- If(BallsRemaining(CurrentPlayer) <= 0) Then
- CheckHighScore()
- Else
- EndOfBallComplete()
- End If
- End If
- End Sub
- Sub EndOfBallComplete()
- ResetNewBallVariables
- CounterTimer.Enabled = 0
- Dim NextPlayer
- If(PlayersPlayingGame> 1) Then
- NextPlayer = CurrentPlayer + 1
- If(NextPlayer> PlayersPlayingGame) Then
- NextPlayer = 1
- End If
- Else
- NextPlayer = CurrentPlayer
- End If
- If((BallsRemaining(CurrentPlayer) <= 0) AND(BallsRemaining(NextPlayer) <= 0) ) Then
- EndOfGame()
- Else
- CurrentPlayer = NextPlayer
- AddScore 0
- ResetForNewPlayerBall()
- CreateNewBall()
- If PlayersPlayingGame> 1 Then
- PlaySound "vo_player" &CurrentPlayer
- End If
- End If
- End Sub
- Sub Balldrained
- DOF 312, DOFPulse
- End Sub
- Sub Drain_Hit()
- Drain.DestroyBall
- BallsOnPlayfield = BallsOnPlayfield - 1
- PlaySoundAt "fx_drain", Drain
- If Tilted Then
- StopEndOfBallMode
- End If
- If(bGameInPLay = True) AND(Tilted = False) Then
- If(bBallSaverActive = True) Then
- AddMultiball 1
- bAutoPlunger = True
- If bMultiBallMode = False Then
- 'Ballsaved
- PuPlayer.playlistplayex pAudio,"audioevents","phoenix.mp3",100, 1
- 'chilloutthemusic
- DMD "black.jpg", "Ball", "saved!", 3000
- PuPlayer.playlistplayex pBackglass,"videoballsaved","",100,1
- ballstate=1
- End If
- Else
- If(BallsOnPlayfield = 1) Then
- If(bMultiBallMode = True) then
- bMultiBallMode = False
- DOF 127, DOFOff 'DOF - Beacon - OFF
- End If
- if(ballsonplayfield = 1) and kickerticket.enabled=true then 'if there is a ball locked then release that ball
- kickerticket.kick 170,1:playsound "fx_ball_drop0"
- kickerticket.enabled=false
- DMD "black.jpg", "too bad", "no multiball!", 3000
- DMD "black.jpg", "Go boarding!", "", 3000
- PuPlayer.playlistplayex pAudio,"audiocallouts","no_multiball.mp3",80, 1
- end if
- bMultiBallMode = False
- End If
- If(BallsOnPlayfield = 0) Then
- bMultiBallMode = False
- vpmtimer.addtimer 1000, "Balldrained '"
- vpmtimer.addtimer 6000, "EndOfBall '"
- if middlebump.isdropped=false then
- middlebump.isdropped=true:P_Post.Transy = 0:P_Post.image = "Post_blue2"
- middlebumptimer.enabled=false:bumpercount=0
- end if
- PuPlayer.playlistplayex pMusic,"audioclear","clear.mp3",100, 1
- StopEndOfBallMode
- End If
- End If
- End If
- End Sub
- 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX
- ' X X X X X X X X X X X X X X X X X X X X X X X
- '/ \/ \/ \/ \/ \/ \/ \/ \/ \/ \/ \/ \/ \/ \/ \/ \/ \/ \/ \/ \/ \/ \/ \/
- ' BALL SAVE & LAUNCH
- '\ /\ /\ /\ /\ /\ /\ /\ /\ /\ /\ /\ /\ /\ /\ /\ /\ /\ /\ /\ /\ /\ /\ /\
- ' X X X X X X X X X X X X X X X X X X X X X X X
- Sub shorttimeballsaver_hit
- If(bBallSaverReady = True) AND(15 <> 0) And(bBallSaverActive = False) Then
- EnableBallSaver 15
- End If
- End Sub
- Sub swPlungerRest_Hit()
- PlaySoundAt "fx_sensor", ActiveBall
- ' PlaySoundAt SoundFXDOF("fx_sensor", 112, DOFPulse, DOFContactors), ActiveBall
- bBallInPlungerLane = True
- If bAutoPlunger Then
- DOF 114, DOFPulse
- DOF 115, DOFPulse
- DOF 318, DOFPulse
- bAutoPlunger = False
- End If
- DOF 141, DOFOn
- DOF 317, DOFOn
- If bSkillShotReady Then
- swPlungerRest.TimerEnabled = 1
- UpdateSkillshot()
- End If
- LastSwitchHit = "swPlungerRest"
- End Sub
- Sub swPlungerRest_UnHit()
- bBallInPlungerLane = False
- swPlungerRest.TimerEnabled = 0 'stop the launch ball timer if active
- If bSkillShotReady Then
- ResetSkillShotTimer.Enabled = 1
- End If
- DOF 317, DOFOff 'DOF MX - Ball is ready to Launch - OFF
- End Sub
- Sub swPlungerRest_Timer
- 'DMD "start-5.wmv", "", "", 6000
- swPlungerRest.TimerEnabled = 0
- End Sub
- Sub EnableBallSaver(seconds)
- bBallSaverActive = True
- bBallSaverReady = False
- 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)
- Light_extraball.BlinkInterval = 160:PostFlasher.BlinkInterval=160
- Light_extraball.State = 2:PostFlasher.state = 2
- End Sub
- Sub BallSaverTimerExpired_Timer()
- BallSaverTimerExpired.Enabled = False
- Dim waittime
- waittime = 1000
- vpmtimer.addtimer waittime, "ballsavegrace'"
- ' if you have a ball saver light then turn it off at this point
- If bExtraBallWonThisBall = True Then
- Light_extraball.State = 1:PostFlasher.state = 1
- Else
- Light_extraball.State = 0:PostFlasher.state = 0
- End If
- End Sub
- Sub ballsavegrace
- bBallSaverActive = False
- End Sub
- Sub BallSaverSpeedUpTimer_Timer()
- 'debug.print "Ballsaver Speed Up Light"
- BallSaverSpeedUpTimer.Enabled = False
- ' Speed up the blinking
- Light_extraball.BlinkInterval = 80:PostFlasher.BlinkInterval = 80
- Light_extraball.State = 2:PostFlasher.state =2
- End Sub
- '********************************************************************************************************************************************
- '********************************************************************************************************************************************
- 'FRAMEWORK BASE CODE END HERE
- '********************************************************************************************************************************************
- '********************************************************************************************************************************************
- 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX
- ' X X X X X X X X X X X X X X X X X X X X X X X
- '/ \/ \/ \/ \/ \/ \/ \/ \/ \/ \/ \/ \/ \/ \/ \/ \/ \/ \/ \/ \/ \/ \/ \/
- ' ATTRACT MODE
- '\ /\ /\ /\ /\ /\ /\ /\ /\ /\ /\ /\ /\ /\ /\ /\ /\ /\ /\ /\ /\ /\ /\ /\
- ' X X X X X X X X X X X X X X X X X X X X X X X
- '
- Dim introposition
- introposition = 0
- Sub DMDintroloop
- introtime = 0
- introposition = introposition + 1
- Select Case introposition
- Case 1
- If Credits> 0 Then
- DMD "Black.jpg", "Credits " &credits, "HIT THE LIP!", 2000
- PuPlayer.playlistplayex pBackglass, "videoattract", "videoattract.mp4",100,1
- Else
- DMD "Black.jpg", "Come on...", "WE NEED BALLS!", 2000
- PuPlayer.playlistplayex pBackglass, "videoattract", "videoattract.mp4",100,1
- End If
- introposition = 0
- End Select
- End Sub
- Dim introtime
- introtime = 0
- Sub intromover_timer
- End Sub
- 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX
- ' X X X X X X X X X X X X X X X X X X X X X X X
- '/ \/ \/ \/ \/ \/ \/ \/ \/ \/ \/ \/ \/ \/ \/ \/ \/ \/ \/ \/ \/ \/ \/ \/
- ' GAME STARTING & RESETS
- '\ /\ /\ /\ /\ /\ /\ /\ /\ /\ /\ /\ /\ /\ /\ /\ /\ /\ /\ /\ /\ /\ /\ /\
- ' X X X X X X X X X X X X X X X X X X X X X X X
- '
- Sub Game_Init() 'called at the start of a new game
- Dim i
- For i = 0 to 4
- SkillshotValue(i) = 10000 ' increases by 10000 each time it is collected
- BonusPoints(i)=0
- Score(i)=0
- waxcount (i)=0
- boards (i)=0
- spotmastered (i)=0
- progress (i)=0
- Next
- lrflashtime.Enabled = False
- bExtraBallWonThisBall = False
- Sharkextraballs = 0
- For each xx in aTargetsES:xx.blenddisablelighting=1 : Next
- for each xx in aTargetsSKEET:xx.blenddisablelighting=1:next
- PuPlayer.LabelSet pBackglass,"high1name","",1,""
- PuPlayer.LabelSet pBackglass,"high1score","",1,""
- PuPlayer.LabelSet pBackglass,"high2name","",1,""
- PuPlayer.LabelSet pBackglass,"high2score","",1,""
- PuPlayer.LabelSet pBackglass,"high3name","",1,""
- PuPlayer.LabelSet pBackglass,"high3score","",1,""
- PuPlayer.LabelSet pBackglass,"high4name","",1,""
- PuPlayer.LabelSet pBackglass,"high4score","",1,""
- PuPlayer.LabelShowPage pBackglass,1,0,""
- pUpdateScores
- PuPlayer.SetBackground pBackglass,1
- PuPlayer.LabelSet pBackglass,"Play1","PLAYER 1",1,"{'mt':2,'color':16777215}"
- PuPlayer.LabelSet pBackglass,"notetitle","",1,""
- PuPlayer.LabelSet pBackglass,"notecopy","",1,""
- ruleshelperon
- resetbackglass
- PuPlayer.playlistplayex pMusic,"audioclear","clear.mp3",100, 1
- outro.enabled=false
- End Sub
- Sub StopEndOfBallMode() 'this sub is called after the last ball is drained
- ResetSkillShotTimer_Timer
- if light_waxbowl.state=2 and lightsurfmode1.state=0 then
- waxcount(currentplayer)=0
- waxcount10.visible=false
- waxcount9.visible=false
- waxcount8.visible=false
- waxcount7.visible=false
- waxcount6.visible=false
- waxcount5.visible=false
- waxcount4.visible=false
- waxcount3.visible=false
- waxcount2.visible=false
- waxcount1.visible=false
- end if
- End Sub
- Sub ResetNewBallVariables()
- PuPlayer.SetLoop 4,1
- End Sub
- Sub TurnOffPlayfieldLights()
- End Sub
- Sub ResetNewBallLights() 'turn on or off the needed lights before a new ball is released
- TurnOffPlayfieldLights()
- End Sub
- Sub startamultiball
- Dim waittime
- waittime = 1000
- vpmtimer.addtimer waittime, "closeupshop'"
- End Sub
- Sub closeupshop
- End Sub
- Sub endamultiball
- End Sub
- Sub UpdateSkillShot() 'Updates the skillshot light
- End Sub
- Sub SkillshotOff_Hit 'trigger to stop the skillshot due to a weak plunger shot
- If bSkillShotReady Then
- ResetSkillShotTimer_Timer
- End If
- End Sub
- Sub ResetSkillShotTimer_Timer 'timer to reset the skillshot lights & variables
- ResetSkillShotTimer.Enabled = 0
- bSkillShotReady = False
- End Sub
- 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX
- ' X X X X X X X X X X X X X X X X X X X X X X X
- '/ \/ \/ \/ \/ \/ \/ \/ \/ \/ \/ \/ \/ \/ \/ \/ \/ \/ \/ \/ \/ \/ \/ \/
- ' RULES HELPER FOR YOUR BACKGLASS
- '\ /\ /\ /\ /\ /\ /\ /\ /\ /\ /\ /\ /\ /\ /\ /\ /\ /\ /\ /\ /\ /\ /\ /\
- ' X X X X X X X X X X X X X X X X X X X X X X X
- '
- Sub ruleshelperon
- rulestime.enabled = 1
- End Sub
- Sub ruleshelperoff
- rulestime.enabled = 0
- End Sub
- Dim rulesposition
- rulesposition = 0
- Sub rulestime_timer ' seems to be below the backglass -> invisible... :-(
- If turnoffrules = 1 then exit sub end if
- rulesposition = rulesposition + 1
- Select Case rulesposition
- Case 1
- PuPlayer.LabelSet pBackglass,"notetitle","Endless Summer Mode",1,""
- PuPlayer.LabelSet pBackglass,"notecopy","Hit ENDLESS SUMMER targets then ride upper lanes",1,""
- Case 8
- PuPlayer.LabelSet pBackglass,"notetitle","Skeet Mode",1,""
- PuPlayer.LabelSet pBackglass,"notecopy","Hit SKEET targets then hit flashing targets",1,""
- Case 15
- PuPlayer.LabelSet pBackglass,"notetitle","Sexwaxfrenzy Mode",1,""
- PuPlayer.LabelSet pBackglass,"notecopy","Hit bumper 3 times then hit boards and bowl alternatingly",1,""
- Case 24
- PuPlayer.LabelSet pBackglass,"notetitle","Surf Mode (1)",1,""
- PuPlayer.LabelSet pBackglass,"notecopy","Hit 3 equip targets (left) and get 3 boards (right ramp)",1,""
- Case 32
- PuPlayer.LabelSet pBackglass,"notetitle","Surf Mode (2)",1,""
- PuPlayer.LabelSet pBackglass,"notecopy","then get ticket and take your flight",1,""
- Case 40
- PuPlayer.LabelSet pBackglass,"notetitle","Surf Mode (3)",1,""
- PuPlayer.LabelSet pBackglass,"notecopy","now wax your boards then go surfing",1,""
- Case 48
- PuPlayer.LabelSet pBackglass,"notetitle","Surf Mode (4)",1,""
- PuPlayer.LabelSet pBackglass,"notecopy","ride upperlanes, bowl and right ramp for boni",1,""
- Case 56
- PuPlayer.LabelSet pBackglass,"notetitle","Surf Mode (5)",1,""
- PuPlayer.LabelSet pBackglass,"notecopy","ride tubes (left ramp) 3 times to master the spot",1,""
- Case 64
- rulesposition = 0
- End Select
- End Sub
- 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX
- ' X X X X X X X X X X X X X X X X X X X X X X X
- '/ \/ \/ \/ \/ \/ \/ \/ \/ \/ \/ \/ \/ \/ \/ \/ \/ \/ \/ \/ \/ \/ \/ \/
- ' SECONDARY HIT EVENTS
- '\ /\ /\ /\ /\ /\ /\ /\ /\ /\ /\ /\ /\ /\ /\ /\ /\ /\ /\ /\ /\ /\ /\ /\
- ' X X X X X X X X X X X X X X X X X X X X X X X
- '
- Dim RStep, Lstep
- Sub RightSlingShot1_slingshot
- PlaySoundAt SoundFXDOF("fx_slingshot", 103, DOFPulse, DOFContactors), RightInlane
- End Sub
- Sub LeftSlingShot1_slingshot
- PlaySoundAt SoundFXDOF("fx_slingshot", 103, DOFPulse, DOFContactors), LeftInlane
- End Sub
- Sub RightSlingShot_Slingshot
- PlaySoundAt SoundFXDOF("fx_slingshot", 103, DOFPulse, DOFContactors), RightInlane
- Gi1.intensity=10:Gi2.intensity=10
- PlaySound SoundFX("right_slingshot",DOFContactors), 0,1, 0.05,0.05 '0,1, AudioPan(RightSlingShot), 0.05,0,0,1,AudioFade(RightSlingShot)
- DOF 109, DOFPulse
- RSling.Visible = 0
- RSling1.Visible = 1
- sling1.TransZ = -20
- RStep = 0
- RightSlingShot.TimerEnabled = 1
- AddScore 25
- 'Board2Shake
- ' cBall2.velx = boardshake * (2*RND(1)-1)
- ' cBall2.vely = boardshake * (2*RND(1)-1)
- End Sub
- Sub RightSlingShot_Timer
- Select Case RStep
- Case 3:RSLing1.Visible = 0:RSLing2.Visible = 1:sling1.TransZ = -10
- Case 4:RSLing2.Visible = 0:RSLing.Visible = 1:sling1.TransZ = 0:RightSlingShot.TimerEnabled = 0
- End Select
- RStep = RStep + 1
- Gi1.intensity=2:Gi2.intensity=2
- End Sub
- Sub LeftSlingShot_Slingshot
- PlaySoundAt SoundFXDOF("fx_slingshot", 103, DOFPulse, DOFContactors), LeftInlane
- Gi3.intensity=10:Gi4.intensity=10
- PlaySound SoundFX("left_slingshot",DOFContactors), 0,1, -0.05,0.05 '0,1, AudioPan(LeftSlingShot), 0.05,0,0,1,AudioFade(LeftSlingShot)
- DOF 108, DOFPulse
- LSling.Visible = 0
- LSling1.Visible = 1
- sling2.TransZ = -20
- LStep = 0
- LeftSlingShot.TimerEnabled = 1
- AddScore 25
- 'Board1Shake
- ' cBall1.velx = boardshake * (2*RND(1)-1)
- ' cBall1.vely = boardshake * (2*RND(1)-1)
- End Sub
- Sub LeftSlingShot_Timer
- Select Case LStep
- Case 3:LSLing1.Visible = 0:LSLing2.Visible = 1:sling2.TransZ = -10
- Case 4:LSLing2.Visible = 0:LSLing.Visible = 1:sling2.TransZ = 0:LeftSlingShot.TimerEnabled = 0
- End Select
- LStep = LStep + 1
- Gi3.intensity=2:Gi4.intensity=2
- End Sub
- ' *********************************************************************
- ' some special physics behaviour
- ' *********************************************************************
- '!if target or rubber post is hit - let the ball jump a bit (dont know if it really works...does not seem so...)
- Dim LetTheBallJump
- LetTheBallJump=3
- Sub aTargetsES_Hit()
- ActiveBall.VelZ = ActiveBall.VelZ * (0.5 + (Rnd()*LetTheBallJump + Rnd()*LetTheBallJump + 1) / 6)
- End Sub
- Sub aTargetsSKEET_Hit()
- ActiveBall.VelZ = ActiveBall.VelZ * (0.5 + (Rnd()*LetTheBallJump + Rnd()*LetTheBallJump + 1) / 6)
- End Sub
- Sub aTargetsEquip_Hit()
- ActiveBall.VelZ = ActiveBall.VelZ * (0.5 + (Rnd()*LetTheBallJump + Rnd()*LetTheBallJump + 1) / 6)
- End Sub
- Sub Rubbers_Hit(idx)
- ActiveBall.VelZ = ActiveBall.VelZ * (0.5 + (Rnd()*LetTheBallJump + Rnd()*LetTheBallJump + 1) / 6)
- end Sub
- '********************************************************************************************************************
- '********************************************************************************************************************
- '********************************************************************************************************************
- '******************************** ENDLESS SUMMER PINBALL ************************************************************
- '***** makmaks glorious code starts here - sorry for being so noobish ;-) *******************************************
- '********************************************************************************************************************
- '********************************************************************************************************************
- '********************************************************************************************************************
- '***** conditions on new ball *****
- sub gate1_hit()
- DMDFlush:DMD "black.jpg", "Prepare for", "Skillshot!", 2500
- For each xx in aPlasticsDark:xx.isdropped=true : Next
- if kickerticket.enabled=true and light_ticket.state=1 then TimerBoardwall1down.enabled=true:Light_Triggershot_right.state=0
- if light_ticketarrow.state=2 then kickerticket.enabled=true
- if l31.state+l32.state+l33.state>3 then gateramp.collidable=true
- Light_skeetmodehit1.state=0:Light_skeetmodehit2.state=0:Light_skeetmodehit3.state=0:Light_skeetmodehit4.state=0:flash_left_uplane.state=0:flash_right_uplane.state=0
- wall_inv_skt.isdropped=true
- wall_inv_ES.isdropped=true
- For each xx in aPlasticsBlack:xx.isdropped=true : Next
- TargetSWFMode.isdropped=True
- TargetSWFMode.collidable=false
- if boards(CurrentPlayer)=3 and l31.state+l32.state+l33.state=3 then gateramp.collidable=false
- PuPlayer.playlistplayex pMusic,"musicdiv","oceanbeach.mp3",100, 1
- Boardwall3.transY = -100:boardwall3.collidable=false:wallboard3.collidable=false
- middlebump.isdropped=true:P_Post.Transy = 0:P_Post.image = "Post_blue2"
- TargetSharkmode1.collidable=true:TargetSharkmode2.collidable=true:TargetSharkMode3.collidable=true:TargetSharkmode4.collidable=true'if progress(CurrentPlayer)=0 then
- scorebg.enabled=true
- if ballstate=0 then PuPlayer.playlistplayex paudio,"newball","",80, 1:ballstate=0
- if ballstate=1 Then PuPlayer.playlistplayex paudio,"reball","",80, 1:ballstate=0
- if ballstate=2 then PuPlayer.playlistplayex paudio,"extraball","",80, 1:ballstate=0
- if BallsOnPlayfield=1 then
- endlesssummerbonuspre=0
- Skeetbonuspre=0
- Sexwaxfrenzybonuspre=0
- loopbonuspre=0
- offthelipbonuspre=0
- aerialbonuspre=0
- currentplayerbonusstat
- showhighscores
- sharkwall.isdropped=true
- sharkstate=1
- end if
- if spotmastered(CurrentPlayer)=1 then l11.state=1:l12.state=2
- if spotmastered(CurrentPlayer)=2 then l11.state=1:l12.state=1:l13.state=2
- if spotmastered(CurrentPlayer)=3 then l11.state=1:l12.state=1:l13.state=1:l14.state=2
- if spotmastered(CurrentPlayer)=4 then l11.state=1:l12.state=1:l13.state=1:l14.state=1:l15.state=2
- if spotmastered(CurrentPlayer)=5 then l11.state=1:l12.state=1:l13.state=1:l14.state=1:l15.state=1:l16.state=2
- if spotmastered(CurrentPlayer)=6 then l11.state=1:l12.state=1:l13.state=1:l14.state=1:l15.state=1:l16.state=1:l17.state=2
- end Sub
- '*************** Skillshot ************
- Sub Triggerskillshot1_hit
- PrimTarget1.visible=true:PrimTarget2.visible=true:PrimTarget3.visible=true
- PrimTarget1.transX = -130:PrimTarget2.transX = -130:PrimTarget3.transX = -130
- Targetskill1.isdropped=false:Targetskill2.isdropped=false:Targetskill3.isdropped=false
- Targetskill1.collidable=true:Targetskill2.collidable=true:Targetskill3.collidable=true
- LightPrim1.state=0:PrimTarget1.image = "aluminum": LightPrim1.intensity=3
- LightPrim2.state=0:PrimTarget2.image = "aluminum": LightPrim2.intensity=3
- LightPrim3.state=0:PrimTarget3.image = "aluminum": LightPrim3.intensity=3
- lightSeqSkillshot.Play SeqCircleInOn,20,1
- end Sub
- Sub TriggerSkillshot2_Hit
- DMDScoreNow
- DMD "black.jpg", "Prepare for", "Skillshot!", 2500
- PuPlayer.playlistplayex pAudio,"audioevents","Drum Roll.mp3",100, 1
- DMDScoreNow
- PuPlayer.playlistplayex pBackglass,"videotakeoff","",0,1
- TimerPrim2.enabled=true
- TimerSkill.enabled=true
- fakeboard1.isdropped=false:fakeboard2.isdropped=false:fakeboard3.isdropped=false
- Select Case Int(Rnd * 3) + 1
- Case 1:LightPrim1.state=1:PrimTarget1.image = "boardimage_a3_white_light"' "aluminum_white"
- Case 2:LightPrim2.state=1:PrimTarget2.image = "boardimage_a3_white_light"' "aluminum_white"
- Case 3:LightPrim3.state=1:PrimTarget3.image = "boardimage_a3_white_light"' "aluminum_white"
- End Select
- if progress(currentplayer)=1 then
- gateleft.open=false:gateright.open=false
- triggerloop.enabled=false
- skillwithprogress.enabled=true
- end if
- DOF 105, DOFOn
- end sub
- Sub skillwithprogress_timer()
- gateleft.open=true:gateright.open=true:triggerloop.enabled=true:TimerBoardwall3up.Enabled = true
- skillwithprogress.enabled=false
- DMDScoreNow
- DOF 900, DOFOn
- end sub
- Sub TimerSkill_Timer()
- LightPrim1.state=0:LightPrim2.state=0:LightPrim3.state=0
- PrimTarget1.image="aluminum":PrimTarget2.image="aluminum":PrimTarget3.image="aluminum"
- if targetskill1.collidable=true then TimerPrim.Enabled = True: DOF 105, DOFOn
- Targetskill1.isdropped=true:Targetskill2.isdropped=true:Targetskill3.isdropped=true
- Targetskill1.collidable=false:Targetskill2.collidable=false:Targetskill3.collidable=false
- wall_inv_skt.isdropped=true
- wall_inv_ES.isdropped=true
- fakeboard1.isdropped=true:fakeboard2.isdropped=true:fakeboard3.isdropped=true
- if progress(currentplayer)=0 then PuPlayer.playlistplayex pMusic,"musicmainmode","ESsong_mainball1.mp3",100, 1'(if not surfmode)
- if progress(currentplayer)=1 then PuPlayer.playlistplayex pMusic,"musicsurfmode","",100, 1:TimerBoardwall3up.Enabled = true'(if surfmode)
- TimerSkill.enabled=false
- DMDScoreNow
- DOF 900, DOFOn
- end sub
- Sub TargetSkill1_Hit()
- if lightPrim1.state=1 then
- awardskillshot
- Targetskill1.collidable=false:Targetskill2.collidable=false:Targetskill3.collidable=false
- else skillshotmiss
- end if
- End Sub
- Sub TargetSkill2_Hit()
- if lightPrim2.state=1 then
- awardskillshot
- Targetskill1.collidable=false:Targetskill2.collidable=false:Targetskill3.collidable=false
- Else skillshotmiss
- end if
- End Sub
- Sub TargetSkill3_Hit()
- if lightPrim3.state=1 then
- awardskillshot
- Targetskill1.collidable=false:Targetskill2.collidable=false:Targetskill3.collidable=false:
- else skillshotmiss
- end if
- End Sub
- Sub skillshotmiss()
- PuPlayer.playlistplayex pAudio,"audiocallouts","skillmiss.mp3",100,1
- Targetskill1.isdropped=true:Targetskill2.isdropped=true:Targetskill3.isdropped=true
- Targetskill1.collidable=false:Targetskill2.collidable=false:Targetskill3.collidable=false
- TimerPrim.Enabled = True
- LightPrim1.state=0:LightPrim2.state=0:LightPrim3.state=0
- wall_inv_skt.isdropped=true
- wall_inv_ES.isdropped=true
- DMDFlush:DMD "black.jpg", "You really", "missed it!", 3000
- timerskill.enabled=false
- PrimTarget1.image="aluminum":PrimTarget2.image="aluminum":PrimTarget3.image="aluminum"
- fakeboard1.isdropped=true:fakeboard2.isdropped=true:fakeboard3.isdropped=true
- if progress(currentplayer)=0 then PuPlayer.playlistplayex pMusic,"musicmainmode","ESsong_mainball1.mp3",100, 1'(if not surfmode)
- if progress(currentplayer)=1 then PuPlayer.playlistplayex pMusic,"musicsurfmode","",100, 1 '(if surfmode)
- DOF 105, DOFOn
- DOF 900, DOFOn
- End Sub
- sub skill_hit_flash_timer()
- Light_skillhit_flash_white.state=0:skill_hit_flash.enabled=false
- end sub
- Dim PrimTargetXStep
- Sub TimerPrim2_Timer
- PrimTargetXStep = PrimTargetXStep + 1
- Select Case PrimTargetXStep
- Case 1:
- PrimTarget1.transX = -120:PrimTarget2.transX = -120:PrimTarget3.transX = -120
- Case 2:
- PrimTarget1.transX = -110:PrimTarget2.transX = -110:PrimTarget3.transX = -110
- Case 3:
- PrimTarget1.transX = -100:PrimTarget2.transX = -100:PrimTarget3.transX = -100
- Case 4:
- PrimTarget1.transX = -90:PrimTarget2.transX = -90:PrimTarget3.transX = -90
- Case 5:
- PrimTarget1.transX = -80:PrimTarget2.transX = -80:PrimTarget3.transX = -80
- Case 6:
- PrimTarget1.transX = -70:PrimTarget2.transX = -70:PrimTarget3.transX = -70
- Case 7:
- PrimTarget1.transX = -60:PrimTarget2.transX = -60:PrimTarget3.transX = -60
- Case 8:
- PrimTarget1.transX = -50:PrimTarget2.transX = -50:PrimTarget3.transX = -50
- Case 9:
- PrimTarget1.transX = -40:PrimTarget2.transX = -40:PrimTarget3.transX = -40
- Case 10:
- PrimTarget1.transX = -30:PrimTarget2.transX = -30:PrimTarget3.transX = -30
- Case 11:
- PrimTarget1.transX = -20:PrimTarget2.transX = -20:PrimTarget3.transX = -20
- Case 12:
- PrimTarget1.transX = -10:PrimTarget2.transX = -10:PrimTarget3.transX = -10
- Case 13:
- PrimTarget1.transX = 0:PrimTarget2.transX = 0:PrimTarget3.transX = 0: DOF 105, DOFOff
- TimerPrim2.Enabled = False
- PrimTargetXStep=0
- End select
- End Sub
- Sub TimerPrim_Timer
- PrimTargetXStep = PrimTargetXStep + 1
- Select Case PrimTargetXStep
- Case 1:
- PrimTarget1.transX = -10:PrimTarget2.transX = -10:PrimTarget3.transX = -10
- Case 2:
- PrimTarget1.transX = -20:PrimTarget2.transX = -20:PrimTarget3.transX = -20
- Case 3:
- PrimTarget1.transX = -30:PrimTarget2.transX = -30:PrimTarget3.transX = -30
- Case 4:
- PrimTarget1.transX = -40:PrimTarget2.transX = -40:PrimTarget3.transX = -40
- Case 5:
- PrimTarget1.transX = -50:PrimTarget2.transX = -50:PrimTarget3.transX = -50
- Case 6:
- PrimTarget1.transX = -60:PrimTarget2.transX = -60:PrimTarget3.transX = -60
- Case 7:
- PrimTarget1.transX = -70:PrimTarget2.transX = -70:PrimTarget3.transX = -70
- Case 8:
- PrimTarget1.transX = -80:PrimTarget2.transX = -80:PrimTarget3.transX = -80
- Case 9:
- PrimTarget1.transX = -90:PrimTarget2.transX = -90:PrimTarget3.transX = -90
- Case 10:
- PrimTarget1.transX = -100:PrimTarget2.transX = -100:PrimTarget3.transX = -100
- Case 11:
- PrimTarget1.transX = -110:PrimTarget2.transX = -110:PrimTarget3.transX = -110
- Case 12:
- PrimTarget1.transX = -120:PrimTarget2.transX = -120:PrimTarget3.transX = -120
- Case 13:
- PrimTarget1.transX = -130:PrimTarget2.transX = -130:PrimTarget3.transX = -130: DOF 105, DOFOff
- PrimTarget1.visible=false:PrimTarget2.visible=false:PrimTarget3.visible=false
- TimerPrim.Enabled = False
- PrimTargetXStep = 0
- fakeboard1.isdropped=true:fakeboard2.isdropped=true:fakeboard3.isdropped=true
- End Select
- End Sub
- '***** kicker *****
- sub kickerleft_hit()
- dim c
- c = int (rnd*15)+1
- if c = 15 then
- PuPlayer.playlistplayex pBackglass,"videodiv","surprise.mp4",0,1:PuPlayer.playlistplayex paudio,"audiocallouts","surprise.mp3",100, 1
- kickerleft.kick 0,55:Timerkickerleft.enabled=true
- end if
- if c <> 15 then
- kickerleft.kick 0,55:Timerkickerleft.enabled=true:PuPlayer.playlistplayex paudio,"audiocallouts","yahoo.mp3",100,1
- end if
- if sexwaxfrenzy.enabled=false and c <> 15 then PuPlayer.playlistplayex pBackglass,"videoballsaved","",0,1
- l1.state=0:l2.state=0:l3.state=0:l4.state=0:light_kickback.state=0
- kickerleft.enabled=false
- end sub
- sub Timerkickerleft_timer()
- timerkickerleft.enabled=false:l1.state=0
- DOF 111, DOFPulse
- end sub
- '***** bumper*****
- sub bumper_hit()
- if progress(CurrentPlayer)=0 and sexwaxfrenzybonus = 15 then
- PuPlayer.playlistplayex paudio,"audiocallouts","seagull.mp3",100, 1
- DMDFlush:DMD "black.jpg", "Sexwaxfrenzymode", "maxed out!", 3000
- end if
- if progress(CurrentPlayer)=1 then PuPlayer.playlistplayex paudio,"audiocallouts","seagull.mp3",100, 1
- lightbumper.state=1:addscore 1000:timerbumper.enabled=true
- if progress(CurrentPlayer)=0 and sexwaxfrenzybonus < 15 then
- PlaySound "bumper", 0, 1, Audiopan(ActiveBall)
- if l61.state=0 and wall_inv_skt.isdropped=true and light_waxbowl.state=0 then bumpercount=bumpercount+1:if bumpercount=1 then PuPlayer.playlistplayex paudio,"audiocallouts","bumper_twomore.mp3",100, 1
- if light_waxbowl.state <> 2 then DMDFlush:DMD "black.jpg", "Bumperhits: " &bumpercount, "you need 3", 3000
- if bumpercount=2 then PuPlayer.playlistplayex paudio,"audiocallouts","bumper_onemore.mp3",100, 1
- if bumpercount=3 then StartSexwaxfrenzyMode
- end if
- end sub
- sub timerbumper_timer()
- timerbumper.enabled=false:lightbumper.state=0
- end sub
- '******* sexwaxfrenzymode ************
- '********* 3 bumperhits during the same ball starts sexwaxfrenzymode (if no other mode is active) *************
- sub StartsexwaxfrenzyMode()
- 'if sexwaxfrenzybonus = 15 then DMDFlush:DMD "black.jpg", "Sexwaxfrenzy mode", "maxed out!", 3000:PuPlayer.playlistplayex paudio,"audiocallouts","bonusmaxedout.mp3",100,1
- TargetSharkmode1.collidable=false:TargetSharkmode2.collidable=false:TargetSharkmode3.collidable=false:TargetSharkmode4.collidable=false':stopsharkmode
- lightSeqSWMode.Play SeqClockRightOn,25,2:LightSeqSWMode.UpdateInterval = 1
- PuPlayer.playlistplayex pMusic,"musicswfmode","",100, 1
- PuPlayer.playlistplayex pBackglass,"videodiv","sexwaxfrenzymode.mp4",0,1
- light_waxbowl.state=1:lightsexwaxfrenzybowl.state=2:sexwaxfrenzyspotleft.state=2:sexwaxfrenzyspotright.state=2
- FlasherSWmode.visible=true:sexwaxfrenzy.enabled=true:For each xx in aPlasticsBlack:xx.isdropped=false : Next
- wall_inv_skt.isdropped=false:wall_inv_es.isdropped=false
- gateramp.collidable=false:TargetTriggershot_right.collidable=false:targetequip01.collidable=false:targetequip02.collidable=false:targetequip03.collidable=false:bumperwall.collidable=true:bumper.collidable=false
- LightPrim1.state=2:PrimTarget1.image = "board_blue": LightPrim1.intensity=100
- LightPrim2.state=2:PrimTarget2.image = "board_blue": LightPrim2.intensity=100
- LightPrim3.state=2:PrimTarget3.image = "board_blue": LightPrim3.intensity=100
- primblinkoff.enabled=true
- PrimTarget1.visible=true:PrimTarget2.visible=true:PrimTarget3.visible=true
- TargetSkeetmode01.collidable=false:TargetSkeetmode02.collidable=false:TargetSkeetmode02.collidable=false:TargetSkeetmode02.collidable=false
- TimerPrim2SWFMode.enabled=true:DOF 105, DOFOn
- TargetSWFMode.isdropped=false
- TargetSWFMode.collidable=true
- frenzycounter.enabled=true
- sexwaxfrenzy.enabled=true
- For each xx in aTargetsES:xx.blenddisablelighting=0 : Next
- for each xx in aTargetsSKEET:xx.blenddisablelighting=0:next
- DMDFlush:DMD "black.jpg", "SexWaxFrenzy", "Mode", 3000
- DOF 900, DOFOff:DOF 905, DOFOn
- audiowait3.enabled=true
- end Sub
- sub audiowait3_timer()
- PuPlayer.playlistplayex paudio,"audiocallouts","swfmode.mp3",100,1
- audiowait3.enabled=False
- end Sub
- sub primblinkon_timer()
- PrimTarget1.image = "schwarz"
- PrimTarget2.image = "schwarz"
- PrimTarget3.image = "schwarz"
- primblinkon.enabled=false:primblinkoff.enabled=true
- end sub
- sub primblinkoff_timer()
- PrimTarget1.image = "board_blue"
- PrimTarget2.image = "board_blue"
- PrimTarget3.image = "board_blue"
- primblinkoff.enabled=false:primblinkon.enabled=true
- end sub
- '**** moving boards up *****
- Sub TimerPrim2SWFMode_Timer
- PrimTargetXStep = PrimTargetXStep + 1
- Select Case PrimTargetXStep
- Case 1:
- PrimTarget1.transX = -120:PrimTarget2.transX = -120:PrimTarget3.transX = -120
- Case 2:
- PrimTarget1.transX = -110:PrimTarget2.transX = -110:PrimTarget3.transX = -110
- Case 3:
- PrimTarget1.transX = -100:PrimTarget2.transX = -100:PrimTarget3.transX = -100
- Case 4:
- PrimTarget1.transX = -90:PrimTarget2.transX = -90:PrimTarget3.transX = -90
- Case 5:
- PrimTarget1.transX = -80:PrimTarget2.transX = -80:PrimTarget3.transX = -80
- Case 6:
- PrimTarget1.transX = -70:PrimTarget2.transX = -70:PrimTarget3.transX = -70
- Case 7:
- PrimTarget1.transX = -60:PrimTarget2.transX = -60:PrimTarget3.transX = -60
- Case 8:
- PrimTarget1.transX = -50:PrimTarget2.transX = -50:PrimTarget3.transX = -50
- Case 9:
- PrimTarget1.transX = -40:PrimTarget2.transX = -40:PrimTarget3.transX = -40
- Case 10:
- PrimTarget1.transX = -30:PrimTarget2.transX = -30:PrimTarget3.transX = -30
- Case 11:
- PrimTarget1.transX = -20:PrimTarget2.transX = -20:PrimTarget3.transX = -20
- Case 12:
- PrimTarget1.transX = -10:PrimTarget2.transX = -10:PrimTarget3.transX = -10
- Case 13:
- PrimTarget1.transX = 0:PrimTarget2.transX = 0:PrimTarget3.transX = 0: DOF 105, DOFOff
- TimerPrim2SWFMode.Enabled = False
- PrimTargetXStep=0
- End select
- End Sub
- '******* moving boards down **********
- Sub TimerPrimSWFMode_Timer
- PrimTargetXStep = PrimTargetXStep + 1
- Select Case PrimTargetXStep
- Case 1:
- PrimTarget1.transX = -10:PrimTarget2.transX = -10:PrimTarget3.transX = -10
- Case 2:
- PrimTarget1.transX = -20:PrimTarget2.transX = -20:PrimTarget3.transX = -20
- Case 3:
- PrimTarget1.transX = -30:PrimTarget2.transX = -30:PrimTarget3.transX = -30
- Case 4:
- PrimTarget1.transX = -40:PrimTarget2.transX = -40:PrimTarget3.transX = -40
- Case 5:
- PrimTarget1.transX = -50:PrimTarget2.transX = -50:PrimTarget3.transX = -50
- Case 6:
- PrimTarget1.transX = -60:PrimTarget2.transX = -60:PrimTarget3.transX = -60
- Case 7:
- PrimTarget1.transX = -70:PrimTarget2.transX = -70:PrimTarget3.transX = -70
- Case 8:
- PrimTarget1.transX = -80:PrimTarget2.transX = -80:PrimTarget3.transX = -80
- Case 9:
- PrimTarget1.transX = -90:PrimTarget2.transX = -90:PrimTarget3.transX = -90
- Case 10:
- PrimTarget1.transX = -100:PrimTarget2.transX = -100:PrimTarget3.transX = -100
- Case 11:
- PrimTarget1.transX = -110:PrimTarget2.transX = -110:PrimTarget3.transX = -110
- Case 12:
- PrimTarget1.transX = -120:PrimTarget2.transX = -120:PrimTarget3.transX = -120
- Case 13:
- PrimTarget1.transX = -130:PrimTarget2.transX = -130:PrimTarget3.transX = -130: DOF 105, DOFOff
- PrimTarget1.visible=false:PrimTarget2.visible=false:PrimTarget3.visible=false
- TimerPrimSWFMode.Enabled = False
- PrimTargetXStep = 0
- End Select
- LightPrim1.state=0:PrimTarget1.image = "aluminum": LightPrim1.intensity=3
- LightPrim2.state=0:PrimTarget2.image = "aluminum": LightPrim2.intensity=3
- LightPrim3.state=0:PrimTarget3.image = "aluminum": LightPrim3.intensity=3
- End Sub
- '******* hit just one of the three boards *******
- Sub TargetSWFMode_hit()
- Sexwaxfrenzybonuspre=Sexwaxfrenzybonuspre+1:sexwaxfrenzybonus=sexwaxfrenzybonus+1:if sexwaxfrenzybonus=1 then diversitymultiplier=diversitymultiplier+1:currentplayerbonusstat
- addscore 500
- lightSeqSWMode.Play SeqClockRightOn,25,2:LightSeqSWMode.UpdateInterval = 1
- TargetSWFMode.isdropped=True:TargetSWFMode.collidable=false
- PrimTarget1.transX = -130:PrimTarget2.transX = -130:PrimTarget3.transX = -130
- lightsexwaxfrenzybowl.state=2:sexwaxfrenzyspotleft.state=2:sexwaxfrenzyspotright.state=2
- LightPrim1.state=0:LightPrim2.state=0:LightPrim3.state=0
- DMDFlush:DMD "black.jpg", " " &sexwaxfrenzybonuspre, "Hits", 3000
- PlaySound "swfboardhit", 0, Vol(ActiveBall), AudioPan(ActiveBall), 0, Pitch(ActiveBall), 1, 0, AudioFade(ActiveBall)
- Playsound "Bumper", 0, 1, Audiopan(ActiveBall)
- frenzycounter.enabled=true
- Light_skillhit_flash_white.state=2:skill_hit_flash.enabled=true
- primblinkon.enabled=false:primblinkoff.enabled=false
- if sexwaxfrenzybonus = 10 then awardextraball
- if sexwaxfrenzybonus = 15 then awardbonusjackpot:StopSexwaxfrenzyMode
- currentplayerbonusstat
- end sub
- '********* hit the waxbowl **********
- sub frenzycounter_hit()
- Sexwaxfrenzybonuspre=Sexwaxfrenzybonuspre+1:sexwaxfrenzybonus=sexwaxfrenzybonus+1:if sexwaxfrenzybonus=1 then diversitymultiplier=diversitymultiplier+1:currentplayerbonusstat
- addscore 500
- lightSeqSWMode.Play SeqClockLeftOn,25,2:LightSeqSWMode.UpdateInterval = 1
- TargetSWFMode.isdropped=false:TargetSWFMode.collidable=true
- PrimTarget1.transX = 0:PrimTarget2.transX = 0:PrimTarget3.transX = 0
- TimerPrim2SWFMode.enabled=true
- lightsexwaxfrenzybowl.state=0:sexwaxfrenzyspotleft.state=0:sexwaxfrenzyspotright.state=0
- LightPrim1.state=2:LightPrim2.state=2:LightPrim3.state=2
- DMDFlush:DMD "black.jpg", " " &sexwaxfrenzybonuspre, "Hits", 3000
- PlaySound "swfboardhit", 0, Vol(ActiveBall), AudioPan(ActiveBall), 0, Pitch(ActiveBall), 1, 0, AudioFade(ActiveBall)
- frenzycounter.enabled=false
- Light_skillhit_flash_white.state=2:skill_hit_flash.enabled=true
- primblinkoff.enabled=true
- if sexwaxfrenzybonus=10 then AwardExtraBall
- if sexwaxfrenzybonus=15 then awardbonusjackpot:StopSexwaxfrenzyMode
- currentplayerbonusstat
- end sub
- sub sexwaxfrenzy_Timer()
- sexwaxfrenzy.enabled=false:StopSexwaxfrenzyMode
- end sub
- Sub StopSexwaxfrenzyMode()
- TargetSharkmode1.collidable=true:TargetSharkmode2.collidable=true:TargetSharkmode3.collidable=true:TargetSharkmode4.collidable=true
- light_waxbowl.state=0
- FlasherSWmode.visible=false
- wall_inv_skt.isdropped=true:wall_inv_es.isdropped=true
- gateramp.collidable=true:TargetTriggershot_right.collidable=true:targetequip01.collidable=true:targetequip02.collidable=true:targetequip03.collidable=true:bumperwall.collidable=false:bumper.collidable=true
- For each xx in aPlasticsBlack:xx.isdropped=true : Next
- bumpercount=0
- sexwaxfrenzyspotleft.state=0:sexwaxfrenzyspotright.state=0:lightsexwaxfrenzybowl.state=0
- sexwaxfrenzy.enabled=false
- TimerPrim.enabled=true
- TimerPrimSWFMode.enabled=true:DOF 105, DOFOn
- if progress(currentplayer)=0 then PuPlayer.playlistplayex pMusic,"musicpostmode","",100, 1
- if progress(CurrentPlayer)=1 then startsurfmodemusic
- LightPrim1.state=0:PrimTarget1.image = "aluminum": LightPrim1.intensity=3
- LightPrim2.state=0:PrimTarget2.image = "aluminum": LightPrim2.intensity=3
- LightPrim3.state=0:PrimTarget3.image = "aluminum": LightPrim3.intensity=3
- TargetSWFMode.isdropped=true
- TargetSWFMode.collidable=false
- TargetSkeetmode01.collidable=true:TargetSkeetmode02.collidable=true:TargetSkeetmode02.collidable=true:TargetSkeetmode02.collidable=true
- frenzycounter.enabled=false
- LightSeqSWMode.UpdateInterval = 5
- sexwaxfrenzy.enabled=false
- For each xx in aTargetsSKEET
- if xx.isdropped=false then xx.blenddisablelighting=1
- next
- for each xx in aTargetsES
- if xx.isdropped=false then xx.blenddisablelighting=1
- next
- primblinkon.enabled=false:primblinkoff.enabled=false
- if BallsOnPlayfield>0 then popsensor.enabled=true:sensortimer.enabled=true:bumcheck=2
- if progress(CurrentPlayer)=1 then TimerBoardwall3up.enabled=true
- waitforendmode.enabled=true
- currentplayerbonusstat
- DOF 905, DOFOff:DOF 900, DOFOn
- end Sub
- sub middlebumptimer_timer()
- if middlebump.isdropped=false then middlebump.isdropped=true:P_Post.Transy = 0:P_Post.image = "Post_blue2":PlaySound "boom"
- middlebumptimer.enabled=false
- end sub
- '************* avoid ball drain by popping up-post *******
- dim Bumcheck
- sub bumpercheck()
- if bumcheck=0 then
- middlebump.isdropped=false
- P_Post.Transy = 65:P_Post.image = "Post_blue_lit2"
- middlebumptimer.enabled=true
- PlaySound "boom"
- popsensor.enabled=false
- end if
- if bumcheck=2 then
- middlebump.isdropped=false
- P_Post.Transy = 65:P_Post.image = "Post_blue_lit2"
- middlebumptimer.enabled=true
- PlaySound "boom"
- popsensor.enabled=false
- end if
- if bumcheck=1 then sensortimer.enabled=true
- end Sub
- sub popsensor_hit()
- bumcheck=1:bumpercheck
- end sub
- sub popsensor_unhit()
- bumcheck=0:popsensor.enabled=false:bumpercheck
- end sub
- sub sensortimer_timer()
- sensortimer.enabled=false:bumpercheck
- end sub
- '********* targets equipment *******
- Sub TargetEquip01_Hit()
- if l21.state=2 then PlaySound "drop1", 0, Vol(ActiveBall), AudioPan(ActiveBall), 0, Pitch(ActiveBall), 1, 0, AudioFade(ActiveBall)
- if l21.state=1 then PlaySound "Dong", 0, Vol(ActiveBall), AudioPan(ActiveBall), 0, Pitch(ActiveBall), 1, 0, AudioFade(ActiveBall)
- Addscore 500
- if l21.state=2 then l21.state=1
- EquipCountCheck
- end sub
- Sub TargetEquip02_Hit()
- if l22.state=2 then PlaySound "drop1", 0, Vol(ActiveBall), AudioPan(ActiveBall), 0, Pitch(ActiveBall), 1, 0, AudioFade(ActiveBall)
- if l22.state=1 then PlaySound "Dong", 0, Vol(ActiveBall), AudioPan(ActiveBall), 0, Pitch(ActiveBall), 1, 0, AudioFade(ActiveBall)
- addscore 500
- if l22.state=2 then l22.state=1
- EquipCountCheck
- end sub
- Sub TargetEquip03_Hit()
- if l23.state=2 then PlaySound "drop1", 0, Vol(ActiveBall), AudioPan(ActiveBall), 0, Pitch(ActiveBall), 1, 0, AudioFade(ActiveBall)
- if l23.state=1 then PlaySound "Dong", 0, Vol(ActiveBall), AudioPan(ActiveBall), 0, Pitch(ActiveBall), 1, 0, AudioFade(ActiveBall)
- addscore 500
- if l23.state=2 then l23.state=1
- EquipCountCheck
- end sub
- Sub EquipCountCheck()
- if l21.State + l22.State + l23.State=3 and boards(CurrentPlayer) = 3 and light_ticket.state=0 then Light_Triggershot_right.State=2:PuPlayer.playlistplayex paudio,"audiocallouts","order_ticket.mp3",100, 1:AddScore 10000
- if l21.State + l22.State + l23.State=3 and boards(CurrentPlayer) < 3 and light_ticket.state=0 then DMDFlush:DMD "black.jpg", "You need ", "more boards!", 2000:PuPlayer.playlistplayex pAudio,"audiocallouts","moreboards.mp3",100, 1
- End Sub
- '***** collect boards (right ramp) *****
- Sub gateramp_hit()
- gateramptimer.enabled=true
- gateramp.collidable=false
- PlaySound "fx_gate", 0, 1, Audiopan(ActiveBall)
- if boards (currentplayer)<3 then PuPlayer.playlistplayex paudio,"boards","",100, 1
- addscore 500
- boards(CurrentPlayer)=boards(CurrentPlayer)+1
- if boards (currentplayer)<3 then PuPlayer.playlistplayex paudio,"boards","",100, 1
- if boards(CurrentPlayer)=1 then l31.state=1:AddScore 5000:PuPlayer.playlistplayex pBackglass,"videoboards","",100,1
- if boards(CurrentPlayer)=2 then l32.state=1:AddScore 5000:PuPlayer.playlistplayex pBackglass,"videoboards","",100,1
- if boards(CurrentPlayer)=3 then l33.state=1:Light_ramp_right_arrow.state=0:AddScore 15000:PuPlayer.playlistplayex pBackglass,"videoboards","",100,1
- if boards(CurrentPlayer)=4 then boards(CurrentPlayer)=3
- if boards(currentplayer)=3 and l21.State + l22.State + l23.State=3 and light_ticket.state=0 then PlaySound "fx_gate", 0, 1, Audiopan(ActiveBall):Light_Triggershot_right.State=2:gateramp.collidable=false:PuPlayer.playlistplayex paudio,"audiocallouts","order_ticket.mp3",100, 1:AddScore 10000 : DMDFlush:DMD "black.jpg", "Get your", "Ticket !", 3000:PuPlayer.playlistplayex pAudio,"audiocallouts","get_your_ticket.mp3",100, 1
- if boards(currentplayer)=3 and l21.State + l22.State + l23.State>3 and light_ticket.state=0 then PlaySound "fx_gate", 0, 1, Audiopan(ActiveBall):DMDFlush:DMD "black.jpg", "Get your", "equipment !", 3000:PuPlayer.playlistplayex pAudio,"audiocallouts","get_equip.mp3",100, 1
- end sub
- sub gateramptimer_timer()
- gateramp.collidable=true
- gateramptimer.enabled=false
- end sub
- '***** targets endless summer *****
- Sub TargetES01_Hit()
- if Timerskill.enabled=true then skillshotmiss
- AddScore 1000
- l41.state=1:TargetES01.blenddisablelighting=0
- TargetsendlesssummerCheck
- End Sub
- Sub TargetES02_Hit()
- if Timerskill.enabled=true then skillshotmiss
- AddScore 1000
- l42.state=1:TargetES02.blenddisablelighting=0
- TargetsendlesssummerCheck
- End Sub
- Sub TargetES03_Hit()
- if Timerskill.enabled=true then skillshotmiss
- AddScore 1000
- l43.state=1:TargetES03.blenddisablelighting=0
- TargetsendlesssummerCheck
- End Sub
- Sub TargetES04_Hit()
- if Timerskill.enabled=true then skillshotmiss
- AddScore 1000
- l44.state=1:TargetES04.blenddisablelighting=0
- TargetsendlesssummerCheck
- End Sub
- Sub TargetES05_Hit()
- if Timerskill.enabled=true then skillshotmiss
- AddScore 1000
- l45.state=1:TargetES05.blenddisablelighting=0
- TargetsendlesssummerCheck
- End Sub
- Sub TargetES06_Hit()
- if Timerskill.enabled=true then skillshotmiss
- AddScore 1000
- l46.state=1:TargetES06.blenddisablelighting=0
- TargetsendlesssummerCheck
- End Sub
- Sub TargetES07_Hit()
- if Timerskill.enabled=true then skillshotmiss
- AddScore 1000
- l47.state=1:TargetES07.blenddisablelighting=0
- TargetsendlesssummerCheck
- End Sub
- Sub TargetES08_Hit()
- if Timerskill.enabled=true then skillshotmiss
- AddScore 1000
- l48.state=1:TargetES08.blenddisablelighting=0
- TargetsendlesssummerCheck
- End Sub
- Sub TargetES09_Hit()
- if Timerskill.enabled=true then skillshotmiss
- AddScore 1000
- l49.state=1:TargetES09.blenddisablelighting=0
- TargetsendlesssummerCheck
- End Sub
- Sub TargetES10_Hit()
- if Timerskill.enabled=true then skillshotmiss
- AddScore 1000
- l410.state=1:TargetES10.blenddisablelighting=0
- TargetsendlesssummerCheck
- End Sub
- Sub TargetES11_Hit()
- if Timerskill.enabled=true then skillshotmiss
- AddScore 1000
- l411.state=1:TargetES11.blenddisablelighting=0
- TargetsendlesssummerCheck
- End Sub
- Sub TargetES12_Hit()
- if Timerskill.enabled=true then skillshotmiss
- AddScore 1000
- l412.state=1:TargetES12.blenddisablelighting=0
- TargetsendlesssummerCheck
- End Sub
- Sub TargetES13_Hit()
- if Timerskill.enabled=true then skillshotmiss
- AddScore 1000
- l413.state=1:TargetES13.blenddisablelighting=0
- TargetsendlesssummerCheck
- End Sub
- '***** endless summer mode *****
- Sub TargetsendlesssummerCheck()
- if progress(CurrentPlayer)=0 and l41.state + l42.state + l43.state + l44.state + l45.state + l46.state + l47.state + l48.state + l49.state + l410.state + l411.state + l412.state + l413.state = 13 and endlesssummerbonus < 15 then StartESMode
- if progress(CurrentPlayer)=0 and l41.state + l42.state + l43.state + l44.state + l45.state + l46.state + l47.state + l48.state + l49.state + l410.state + l411.state + l412.state + l413.state = 13 and endlesssummerbonus = 15 then eswait.enabled=true
- if progress(CurrentPlayer)=0 and l41.state + l42.state + l43.state + l44.state + l45.state + l46.state + l47.state + l48.state + l49.state + l410.state + l411.state + l412.state + l413.state = 16 and endlesssummerbonus < 15 then PuPlayer.playlistplayex paudio,"audiocallouts","few_more_targets.mp3",100, 1
- if progress(CurrentPlayer)=1 and l41.state + l42.state + l43.state + l44.state + l45.state + l46.state + l47.state + l48.state + l49.state + l410.state + l411.state + l412.state + l413.state = 13 then eswait.enabled=true
- End Sub
- sub eswait_timer()
- For each xx in aTargetsES:xx.isdropped = false : Next
- if progress(currentplayer)=0 then
- For each xx in aTargetsES:xx.blenddisablelighting=1 : Next
- end if
- For each xx in aLightsES:xx.state=2 : Next
- if endlesssummerbonus < 15 then DMDFlush:DMD "black.jpg", "Endless Summer", "not available now", 3000
- if endlesssummerbonus = 15 then
- DMDFlush:DMD "black.jpg", "Endless Summer mode", "maxed out!", 3000
- select case int (rnd*2)+1
- Case 1 : PuPlayer.playlistplayex paudio,"audiocallouts","bonusmaxstopfussing.mp3",100,1
- Case 2 : PuPlayer.playlistplayex paudio,"audiocallouts","bonusmaxmission.mp3",100, 1
- end select
- end if
- eswait.enabled=false
- end sub
- Sub StartESMode()
- TargetSharkmode1.collidable=false:TargetSharkmode2.collidable=false:TargetSharkmode3.collidable=false:TargetSharkmode4.collidable=false':stopsharkmode
- TimerESmode.Enabled=True
- lightSeqESMode.Play SeqUpOn, 40,3
- For each xx in aLightsESmode:xx.state=2 : Next
- gateramp.collidable=false:TargetTriggershot_right.collidable=false:targetequip01.collidable=false:targetequip02.collidable=false:targetequip03.collidable=false:bumperwall.collidable=true:bumper.collidable=false:gateleft.open=true:gateright.open=true
- AddScore 50000
- PuPlayer.playlistplayex pMusic,"musicendlessmode","",100, 1
- For each xx in aLightsPlastics:xx.state=0 : Next
- wall_inv_skt.isdropped=false
- For each xx in aLightsCurl:xx.state=2 : Next
- For each xx in aPlasticsDark:xx.isdropped=false : Next
- For each xx in aTargetsSKEET:xx.blenddisablelighting=0:next
- for each xx in aTargetsES:xx.blenddisablelighting=0:next
- flash_left_uplane.state=2:flash_right_uplane.state=2
- spinner.MotorOn=true
- flasherESmode.visible=true
- TimerBoardwall3up.enabled=true:Wallboard3.collidable=true
- ESmodeTrigger.enabled=true
- PuPlayer.playlistplayex pBackglass,"videodiv","esmode.mp4",0,1
- PuPlayer.playlistplayex paudio,"audiocallouts","esmode.mp3",100,1
- DOF 105, DOFOn
- DOF 900, DOFOff:DOF 905, DOFOn
- end sub
- sub ESmodeTrigger_hit()
- endlesssummerbonuspre=endlesssummerbonuspre+1:endlesssummerbonus=endlesssummerbonus+1:if endlesssummerbonus=1 then diversitymultiplier=diversitymultiplier+1:currentplayerbonusstat
- addscore 500
- DMDFlush:DMD "black.jpg", "Endless Summer", "Bonus: " &endlesssummerbonuspre, 3000
- if endlesssummerbonus=10 then AwardExtraBall
- if endlesssummerbonus=15 then awardbonusjackpot:stopesmode
- currentplayerbonusstat
- end sub
- Sub StopESMode()
- TargetSharkmode1.collidable=true:TargetSharkmode2.collidable=true:TargetSharkmode3.collidable=true:TargetSharkmode4.collidable=true'if progress(currentplayer)=0 then
- wall_inv_skt.isdropped=true
- if progress(currentplayer)=0 then PuPlayer.playlistplayex pMusic,"musicpostmode","",100, 1
- if progress(CurrentPlayer)=1 then startsurfmodemusic
- For each xx in aTargetsES:xx.isdropped = false : Next
- gateramp.collidable=true:TargetTriggershot_right.collidable=true:targetequip01.collidable=true:targetequip02.collidable=true:targetequip03.collidable=true:bumperwall.collidable=false:bumper.collidable=true:gateleft.open=false:gateright.open=false
- For each xx in aLightsESmode:xx.state=0 : Next
- For each xx in aLightsES:xx.state=2 : Next
- For each xx in aLightsPlastics:xx.state=1 : Next
- For each xx in aTargetsSKEET
- if xx.isdropped=false then xx.blenddisablelighting=1
- next
- for each xx in aTargetsES:xx.blenddisablelighting=1:next
- flash_left_uplane.state=0:flash_right_uplane.state=0
- For each xx in aLightsCurl:xx.state=0 : Next
- For each xx in aPlasticsDark:xx.isdropped=true : Next
- spinner.MotorOn = false
- flasherESmode.visible=false
- TimerBoardwall3down.enabled=true:wallboard3.collidable=false
- TimerESmode.Enabled=false
- Triggerloop.enabled=false
- if BallsOnPlayfield>0 then popsensor.enabled=true:sensortimer.enabled=true:bumcheck=2
- ESmodeTrigger.enabled=false
- PuPlayer.playlistplayex pAudio,"audioevents","boom.mp3",100,1
- if progress(CurrentPlayer)=1 then TimerBoardwall3up.enabled=true
- waitforendmode.enabled=true
- currentplayerbonusstat
- DOF 105, DOFOn
- DOF 900, DOFOn:DOF 905, DOFOff
- End Sub
- Dim Boardwall3XStep
- Sub TimerBoardwall3up_Timer
- Boardwall3XStep = Boardwall3XStep + 1
- Select Case Boardwall3XStep
- Case 1:
- Boardwall3.transY = -100:boardwall3.collidable=true:boardwall3.visible=true
- Case 2:
- Boardwall3.transY = -90
- Case 3:
- Boardwall3.transY = -80
- Case 4:
- Boardwall3.transY = -70
- Case 5:
- Boardwall3.transY = -60
- Case 6:
- Boardwall3.transY = -50
- Case 7:
- Boardwall3.transY = -40
- Case 8:
- Boardwall3.transY = -30:DOF 105, DOFOff
- TimerBoardwall3up.Enabled = False
- Boardwall3XStep=0
- End select
- End Sub
- Sub TimerBoardwall3down_Timer
- Boardwall3XStep = Boardwall3XStep + 1
- Select Case Boardwall3XStep
- Case 1:
- Boardwall3.transY = -10
- Case 2:
- Boardwall3.transY = -20
- Case 3:
- Boardwall3.transY = -30
- Case 4:
- Boardwall3.transY = -40
- Case 5:
- Boardwall3.transY = -50
- Case 6:
- Boardwall3.transY = -60
- Case 7:
- Boardwall3.transY = -70
- Case 8:
- Boardwall3.transY = -80
- Case 9:
- Boardwall3.transY = -90:boardwall3.collidable=false:boardwall3.visible=false:DOF 105, DOFOff
- TimerBoardwall3down.Enabled = False
- Boardwall3XStep = 0
- End Select
- End Sub
- sub Boardwall3_hit()
- playsound "fx_metalhit", 0, 1, Audiopan(ActiveBall)
- end sub
- Sub TimerESmode_Timer()
- TimerESmode.Enabled=false:StopESMode 'DMD show number of ESbonus
- End Sub
- '**** upper lanes light & sound **********
- sub triggerl71_Hit()
- if l61.state=2 then l71.state=1:timerl71.enabled=true:playsound "wush1"
- End Sub
- Sub timerl71_Timer()
- l71.state=0:timerl71.Enabled = False
- end sub
- sub Triggerl72_Hit()
- if l61.state=2 then l72.state=1:timerl72.enabled=true:playsound "wush1"
- End Sub
- Sub timerl72_Timer()
- l72.state=0:timerl72.Enabled = False
- end sub
- sub Triggerl73_Hit()
- if l61.state=2 then l73.state=1:timerl73.enabled=true:playsound "wush1"
- End Sub
- Sub timerl73_Timer()
- l73.state=0:timerl73.Enabled = False
- end sub
- sub Triggerl74_Hit()
- if l61.state=2 then l74.state=1:timerl74.enabled=true:playsound "wush1"
- End Sub
- Sub timerl74_Timer()
- l74.state=0:timerl74.Enabled = False
- end sub
- sub Triggerl75_Hit()
- if l61.state=2 then l75.state=1:timerl75.enabled=true:playsound "wush1"
- End Sub
- Sub timerl75_Timer()
- l75.state=0:timerl75.Enabled = False
- end sub
- sub Triggerl76_Hit()
- if l61.state=2 then l76.state=1:timerl76.enabled=true:playsound "wush1"
- End Sub
- Sub timerl76_Timer()
- l76.state=0:timerl76.Enabled = False
- end sub
- sub Triggerl77_Hit()
- if l61.state=2 then l77.state=1:timerl77.enabled=true:playsound "wush1"
- End Sub
- Sub timerl77_Timer()
- l77.state=0:timerl77.Enabled = False
- end sub
- sub Triggerl78_Hit()
- if l61.state=2 then l78.state=1:timerl78.enabled=true:playsound "wush1"
- End Sub
- Sub timerl78_Timer()
- l78.state=0:timerl78.Enabled = False
- end sub
- sub Triggerl79_Hit()
- if l61.state=2 then l79.state=1:timerl79.enabled=true:playsound "wush1"
- End Sub
- Sub timerl79_Timer()
- l79.state=0:timerl79.Enabled = False
- end sub
- sub Triggerl710_Hit()
- if l61.state=2 then l710.state=1:timerl710.enabled=true:playsound "wush1"
- End Sub
- Sub timerl710_Timer()
- l710.state=0:timerl710.Enabled = False
- end sub
- sub Triggerl711_Hit()
- if l61.state=2 then l711.state=1:timerl711.enabled=true:playsound "wush1"
- End Sub
- Sub timerl711_Timer()
- l711.state=0:timerl711.Enabled = False
- end sub
- sub Triggerl712_Hit()
- if l61.state=2 then l712.state=1:timerl712.enabled=true:playsound "wush1"
- End Sub
- Sub timerl712_Timer()
- l712.state=0:timerl712.Enabled = False
- end sub
- '***** skeet targets *****
- Sub TargetSkt01_Hit()
- if Timerskill.enabled=true then skillshotmiss
- AddScore 1000
- l51.state=1:TargetSkt01.blenddisablelighting=0
- TargetsktCheck
- End Sub
- Sub TargetSkt02_Hit()
- if Timerskill.enabled=true then skillshotmiss
- AddScore 1000
- l52.state=1:TargetSkt02.blenddisablelighting=0
- TargetsktCheck
- End Sub
- Sub TargetSkt03_Hit()
- if Timerskill.enabled=true then skillshotmiss
- AddScore 1000
- l53.state=1:TargetSkt03.blenddisablelighting=0
- TargetsktCheck
- End Sub
- Sub TargetSkt04_Hit()
- if Timerskill.enabled=true then skillshotmiss
- AddScore 1000
- l54.state=1:TargetSkt04.blenddisablelighting=0
- TargetsktCheck
- End Sub
- Sub TargetSkt05_Hit()
- if Timerskill.enabled=true then skillshotmiss
- AddScore 1000
- l55.state=1:TargetSkt05.blenddisablelighting=0
- TargetsktCheck
- End Sub
- '***** skeet surfin mode *****
- Sub TargetsktCheck()
- if progress(CurrentPlayer)=0 and l51.state + l52.state + l53.state + l54.state + l55.state=5 and skeetbonus < 15 then StartSKEETMode
- if progress(CurrentPlayer)=0 and l51.state + l52.state + l53.state + l54.state + l55.state=5 and skeetbonus = 15 then skeetwait.enabled=true
- if progress(CurrentPlayer)=1 and l51.state + l52.state + l53.state + l54.state + l55.state=5 then skeetwait.enabled=true
- End Sub
- sub skeetwait_timer()
- For each xx in aTargetsSKEET:xx.isdropped = false : Next
- if progress(currentplayer)=0 then
- For each xx in aTargetsSKEET:xx.blenddisablelighting=1:next
- end if
- For each xx in aLightsSKEET:xx.state=2 : Next
- if skeetbonus < 15 then DMDFlush:DMD "black.jpg", "Skeetsurfing", "not available now", 3000
- if skeetbonus = 15 then
- DMDFlush:DMD "black.jpg", "SkeetSurfin mode", "maxed out!", 3000
- select case int (rnd*2)+1
- Case 1 : PuPlayer.playlistplayex paudio,"audiocallouts","bonusmaxstopfussing.mp3",100,1
- Case 2 : PuPlayer.playlistplayex paudio,"audiocallouts","bonusmaxmission.mp3",100, 1
- end select
- end if
- skeetwait.enabled=false
- end sub
- Sub StartSKEETMode()
- TargetSharkmode1.collidable=false:TargetSharkmode2.collidable=false:TargetSharkmode3.collidable=false:TargetSharkmode4.collidable=false':StopSharkMode:
- Timerskeetmode.Enabled=true:AddScore 50000
- l81.state=2:l82.state=2:l83.state=2:l84.state=2
- if skeetbonus <3 then PuPlayer.playlistplayex pMusic,"musicskeetmode","ESsong_skeetsurfingmode1.mp3",100, 1
- if skeetbonus >2 then PuPlayer.playlistplayex pMusic,"musicskeetmode","",100, 1
- PuPlayer.playlistplayex pBackglass,"videodiv","Skeetmodestart.mp4",0,1
- PuPlayer.playlistplayex paudio,"audiocallouts","skeetmode.mp3",100,1
- lightseqSktMode.Play SeqMiddleInVertOn, 25,3
- trigger3.enabled=true:magna3.enabled=true
- wall_inv_ES.isdropped=false
- gateramp.collidable=false:TargetTriggershot_right.collidable=false:targetequip01.collidable=false:targetequip02.collidable=false:targetequip03.collidable=false:bumperwall.collidable=true:bumper.collidable=false
- skeetgreen.enabled=true
- Light_skeet_flash_green.state=2
- For each a in GI
- a.State = 2
- a.blinkpattern=1000
- a.blinkinterval= 300
- a.Intensity = 10
- a.color = RGB(0, 18, 0)
- a.colorfull = RGB(0, 255, 0)
- Next
- DOF 900, DOFOff:DOF 901, DOFOn
- End Sub
- sub skeetgreen_timer()
- Light_skeet_flash_green.state=0:Light_skeet_flash_yellow.state=2:skeetgreen.enabled=false:skeetyellow.enabled=true
- For each a in GI
- a.blinkpattern=100
- a.blinkinterval= 200
- a.Intensity = 20
- a.color = RGB(18, 18, 0)
- a.colorfull = RGB(255, 255, 0)
- Next
- if skeetbonuspre = 0 then PuPlayer.playlistplayex pAudio,"audiocallouts","shoot_targets.mp3",100, 1
- DOF 901, DOFOff:DOF 902, DOFOn
- end sub
- sub skeetyellow_timer()
- Light_skeet_flash_yellow.state=0:Light_skeet_flash_red.state=2:skeetred.enabled=false:skeetred.enabled=true
- For each a in GI
- a.blinkpattern=10
- a.blinkinterval= 100
- a.Intensity = 30
- a.color = RGB(18, 0, 0)
- a.colorfull = RGB(255, 0, 0)
- Next
- PuPlayer.playlistplayex pAudio,"audiocallouts","hurry.mp3",100, 1
- DOF 902, DOFOff:DOF 903, DOFOn
- end sub
- '
- sub skeetred_timer()
- For each a in GI
- a.State = 0
- a.Intensity = 2
- a.color = RGB(255, 155, 64) 'default color
- a.colorfull = RGB(255, 255, 255) 'default color
- Next
- GIOff
- DOF 903, DOFOff:DOF 900, DOFOn
- Light_skeet_flash_red.state=0:skeetred.enabled=false
- end sub
- Sub StopSKEETMode()
- TargetSharkmode1.collidable=true:TargetSharkmode2.collidable=true:TargetSharkmode3.collidable=true:TargetSharkmode4.collidable=true'if progress(currentplayer)=0 then
- For each xx in aTargetsSKEET:xx.isdropped = false : Next
- For each xx in aTargetsSKEET:xx.blenddisablelighting=1:next
- For each xx in aLightsSKEET:xx.state=2 : Next
- For each xx in aLightsSkeetmodeTargets:xx.state=0 : Next
- wall_inv_ES.isdropped=true
- gateramp.collidable=true:TargetTriggershot_right.collidable=true:targetequip01.collidable=true:targetequip02.collidable=true:targetequip03.collidable=true:bumperwall.collidable=false:bumper.collidable=true
- if progress(currentplayer)=0 then PuPlayer.playlistplayex pMusic,"musicpostmode","",100, 1
- if progress(CurrentPlayer)=1 then startsurfmodemusic
- timerskeetmode.enabled=false
- skeetgreen.enabled=false:skeetyellow.enabled=false:skeetred.enabled=false:light_skeet_flash_green.state=0:light_skeet_flash_yellow.state=0:light_skeet_flash_red.state=0
- if BallsOnPlayfield>0 then popsensor.enabled=true:sensortimer.enabled=true:bumcheck=2
- DMDFlush:DMD "black.jpg", "Clays hit: ", "" &skeetbonuspre, 2500
- mMagna3Save.MagnetOn = 0
- magnettimer3.enabled=0
- trigger3.enabled=false
- magna3.enabled=false
- mMagna3Save.MagnetOn = 0
- if progress(CurrentPlayer)=1 then TimerBoardwall3up.enabled=true
- waitforendmode.enabled=true
- currentplayerbonusstat
- For each a in GI
- a.State = 0
- a.Intensity = 2
- a.color = RGB(255, 155, 64) 'default color
- a.colorfull = RGB(255, 255, 255) 'default color
- Next
- GiOff
- DOF 901, DOFOff:DOF 902, DOFOff:DOF 903, DOFOff:DOF 900, DOFOn
- End Sub
- '******waiting time (magnet catch) skeet surfin modus *************
- Dim mMagna3Save
- Set mMagna3Save = New cvpmMagnet : With mMagna3Save
- .InitMagnet Magna3, 25
- End With
- Sub Magna3_Hit():mMagna3Save.AddBall ActiveBall: End Sub
- Sub Magna3_UnHit(): mMagna3Save.RemoveBall ActiveBall: End Sub
- sub trigger3_hit()
- mMagna3Save.MagnetOn = 1
- magnettimer3.enabled=1
- end sub
- sub magnettimer3_timer()
- magnettimer3.enabled=0
- mMagna3Save.MagnetOn = 0:playsound "fx_ball_drop0"
- trigger3.enabled=false
- magna3.enabled=false
- end Sub
- Sub Timerskeetmode_Timer()
- Timerskeetmode.Enabled=false:StopSKEETMode
- End Sub
- '***** targets skeet surfin mode *****
- Sub Targetskeetmode01_hit()
- if l81.state=0 then PlaySound "drop1", 0, Vol(ActiveBall), AudioPan(ActiveBall), 0, Pitch(ActiveBall), 1, 0, AudioFade(ActiveBall) :addscore 100
- if l81.state=2 then
- PuPlayer.playlistplayex pBackglass,"videodiv","Skeethit.mp4",0,1
- light_skeetmodehit1.state=1
- Skeetbonuspre=Skeetbonuspre+1:skeetbonus=skeetbonus+1:Timerflashskeettarget1.Enabled = True:if skeetbonus=1 then diversitymultiplier=diversitymultiplier+1
- playsound "shot", 0, Vol(ActiveBall), AudioPan(ActiveBall), 0, Pitch(ActiveBall), 0, 0, AudioFade(ActiveBall):skeethit1.state=1
- DMDFlush:DMD "black.jpg", " " &skeetbonuspre, "Clays", 2500
- DOF 899, DOFOn
- if skeetbonuspre=3 then PuPlayer.playlistplayex pAudio,"audiocallouts","robinhood.mp3",100, 1
- end if
- currentplayerbonusstat
- End Sub
- Sub Timerflashskeettarget1_Timer()
- light_skeetmodehit1.state=0:skeethit1.state=0
- if skeetbonus=10 then awardextraball
- if skeetbonus=15 then awardbonusjackpot:StopSKEETMode
- DOF 899, DOFOff
- Timerflashskeettarget1.Enabled = False
- end sub
- Sub Targetskeetmode02_hit()
- if l82.state=0 then PlaySound "drop1", 0, Vol(ActiveBall), AudioPan(ActiveBall), 0, Pitch(ActiveBall), 1, 0, AudioFade(ActiveBall) :addscore 100
- if l82.state=2 then
- PuPlayer.playlistplayex pBackglass,"videodiv","Skeethit.mp4",0,1
- light_skeetmodehit2.state=1
- Skeetbonuspre=Skeetbonuspre+1:skeetbonus=skeetbonus+1:Timerflashskeettarget2.Enabled = True:if skeetbonus=1 then diversitymultiplier=diversitymultiplier+1
- playsound "shot", 0, Vol(ActiveBall), AudioPan(ActiveBall), 0, Pitch(ActiveBall), 0, 0, AudioFade(ActiveBall):skeethit2.state=1
- DMDFlush:DMD "black.jpg", " " &skeetbonuspre, "Clays", 2500
- DOF 899, DOFOn
- if skeetbonuspre=3 then PuPlayer.playlistplayex pAudio,"audiocallouts","robinhood.mp3",100, 1
- end if
- currentplayerbonusstat
- End Sub
- Sub Timerflashskeettarget2_Timer()
- light_skeetmodehit2.state=0:skeethit2.state=0
- if skeetbonus=10 then awardextraball
- if skeetbonus=15 then awardbonusjackpot:StopSKEETMode
- DOF 899, DOFOff
- Timerflashskeettarget2.Enabled = False
- end sub
- Sub Targetskeetmode03_hit()
- if l83.state=0 then PlaySound "drop1", 0, Vol(ActiveBall), AudioPan(ActiveBall), 0, Pitch(ActiveBall), 1, 0, AudioFade(ActiveBall) :addscore 100
- if l83.state=2 then
- PuPlayer.playlistplayex pBackglass,"videodiv","Skeethit.mp4",0,1
- light_skeetmodehit3.state=1
- Skeetbonuspre=Skeetbonuspre+1:skeetbonus=skeetbonus+1:Timerflashskeettarget3.Enabled = True:if skeetbonus=1 then diversitymultiplier=diversitymultiplier+1
- playsound "shot", 0, Vol(ActiveBall), AudioPan(ActiveBall), 0, Pitch(ActiveBall), 0, 0, AudioFade(ActiveBall):skeethit3.state=1
- DMDFlush:DMD "black.jpg", " " &skeetbonuspre, "Clays", 2500
- DOF 899, DOFOn
- if skeetbonuspre=3 then PuPlayer.playlistplayex pAudio,"audiocallouts","robinhood.mp3",100, 1
- end if
- currentplayerbonusstat
- End Sub
- Sub Timerflashskeettarget3_Timer()
- light_skeetmodehit3.state=0:skeethit3.state=0
- if skeetbonus=10 then awardextraball
- if skeetbonus=15 then awardbonusjackpot:StopSKEETMode
- DOF 899, DOFOff
- Timerflashskeettarget3.Enabled = False
- end sub
- Sub Targetskeetmode04_hit()
- if l84.state=0 then PlaySound "drop1", 0, Vol(ActiveBall), AudioPan(ActiveBall), 0, Pitch(ActiveBall), 1, 0, AudioFade(ActiveBall) :addscore 100
- if l84.state=2 then
- PuPlayer.playlistplayex pBackglass,"videodiv","Skeethit.mp4",0,1
- light_skeetmodehit4.state=1
- Skeetbonuspre=Skeetbonuspre+1:skeetbonus=skeetbonus+1:Timerflashskeettarget4.Enabled = True:if skeetbonus=1 then diversitymultiplier=diversitymultiplier+1
- playsound "shot", 0, Vol(ActiveBall), AudioPan(ActiveBall), 0, Pitch(ActiveBall), 0, 0, AudioFade(ActiveBall):skeethit4.state=1
- DMDFlush:DMD "black.jpg", " " &skeetbonuspre, "Clays", 2500
- DOF 899, DOFOn
- if skeetbonuspre=3 then PuPlayer.playlistplayex pAudio,"audiocallouts","robinhood.mp3",100, 1
- end if
- currentplayerbonusstat
- End Sub
- Sub Timerflashskeettarget4_Timer()
- light_skeetmodehit4.state=0:skeethit4.state=0
- if skeetbonus=10 then awardextraball
- if skeetbonus=15 then awardbonusjackpot:StopSKEETMode
- DOF 899, DOFOff
- Timerflashskeettarget4.Enabled = False
- end sub
- '****** Surfers Nightmare **********
- sub TargetSharkMode1_hit()
- if lightSharkMode1.state=0 then lightSharkMode1.state=1
- if bExtraBallWonThisBall=false and Sharkextraballs < 3 then
- PlaySound "drop1", 0, Vol(ActiveBall), AudioPan(ActiveBall), 0, Pitch(ActiveBall), 1, 0, AudioFade(ActiveBall)
- addscore 1000
- end if
- Sharkmodecheck
- end Sub
- sub TargetSharkMode2_hit()
- if lightSharkMode2.state=0 then lightSharkMode2.state=1
- if bExtraBallWonThisBall=false and Sharkextraballs < 3 then
- PlaySound "drop1", 0, Vol(ActiveBall), AudioPan(ActiveBall), 0, Pitch(ActiveBall), 1, 0, AudioFade(ActiveBall)
- addscore 1000
- end If
- Sharkmodecheck
- end Sub
- sub TargetSharkMode3_hit()
- if lightSharkMode3.state=0 then lightSharkMode3.state=1
- if bExtraBallWonThisBall=false and Sharkextraballs < 3 then
- PlaySound "drop1", 0, Vol(ActiveBall), AudioPan(ActiveBall), 0, Pitch(ActiveBall), 1, 0, AudioFade(ActiveBall)
- addscore 1000
- end If
- Sharkmodecheck
- end Sub
- sub TargetSharkMode4_hit()
- if lightSharkMode4.state=0 then lightSharkMode4.state=1
- if bExtraBallWonThisBall=false and Sharkextraballs < 3 then
- PlaySound "drop1", 0, Vol(ActiveBall), AudioPan(ActiveBall), 0, Pitch(ActiveBall), 1, 0, AudioFade(ActiveBall)
- addscore 1000
- end If
- Sharkmodecheck
- end Sub
- Sub SharkModeCheck()
- if lightSharkMode1.state=1 and lightSharkMode2.state=1 and lightSharkMode3.state=1 and lightSharkMode4.state=1 then StartSharkMode
- end sub
- Sub StartSharkMode()
- sharkmode=1
- if bExtraBallWonThisBall = true and sharkextraballs < 3 then
- lightSharkMode1.state=0:lightSharkMode2.state=0:lightSharkMode3.state=0:lightSharkMode4.state=0:DMDFlush:DMD "black.jpg", "Nice orange lights! ;-)", "10000 for you!", 3000:addscore 10000:exit sub
- end if
- if ballsonplayfield = 2 then
- lightSharkMode1.state=0:lightSharkMode2.state=0:lightSharkMode3.state=0:lightSharkMode4.state=0:DMDFlush:DMD "black.jpg", "Nice orange lights!", "10.000 for you!", 3000:addscore 10000:exit sub
- end if
- if Sharkextraballs < 3 and bExtraBallWonThisBall = false then
- lightSharkMode1.state=2:lightSharkMode2.state=2:lightSharkMode3.state=2:lightSharkMode4.state=2
- DMDFlush:DMD "black.jpg", "Surfers", "Nightmare!", 3000
- PuPlayer.playlistplayex pBackglass,"videodiv","sharkstart.mp4",100, 1
- PuPlayer.playlistplayex pAudio,"audioevents","jaws_short.mp3",100, 1
- PuPlayer.SendMSG "{ ""mt"":301, ""SN"": 4, ""FN"":11, ""VL"":65 }":sharkwait.enabled=true
- DOF 906, DOFOn
- DOF 900, DOFOff
- lightseqshark.Play SeqCircleInOn,15,2
- end if
- if sharkextraballs = 3 then
- lightSharkMode1.state=0
- lightSharkMode2.state=0
- lightSharkMode3.state=0
- lightSharkMode4.state=0
- addscore 10000
- DMDFlush:DMD "black.jpg", "no more beasts", "thank you!", 3000
- end if
- end sub
- sub sharkwait_timer()
- PuPlayer.SendMSG "{ ""mt"":301, ""SN"": 4, ""FN"":11, ""VL"":100 }"
- PuPlayer.playlistplayex pAudio,"audiocallouts","kill_the_beast.mp3",100, 1
- sharkwait.enabled=false
- end Sub
- Sub StopSharkMode()
- sharkmode=0
- lightSharkMode1.state=0:lightSharkMode2.state=0:lightSharkMode3.state=0:lightSharkMode4.state=0
- SharkModeCounter=0
- sharkwall.collidable=false
- if Shark.TransZ <> 200 then timersharkdown.enabled=true
- sharkstate=1
- DOF 906, DOFOff
- DOF 903, DOFOff
- DOF 900, DOFOn
- DOF 105, DOFOff
- end Sub
- sub Sharkwall_Hit()
- if sharkmodecounter < 5 then
- PlaySound "rubber_hit_1", 0, 1, Audiopan(ActiveBall)
- DOF 903, DOFOn:DOF 906, DOFOn
- lightsharkorange.state=1:addscore 1000:timersharkorange.enabled=true
- SharkModeCounter=SharkModeCounter+1
- end if
- if Sharkmodecounter=5 then
- SharkExtra
- end if
- end Sub
- sub timersharkorange_timer()
- lightsharkorange.state=0
- DOF 903, DOFOff
- timerSharkorange.enabled=false
- end sub
- Dim Sharkstate
- sub triggershark_hit()
- if lightSharkMode1.state=2 and lightSharkMode2.state=2 and lightSharkMode3.state=2 and lightSharkMode4.state=2 then
- if sharkstate=1 then
- sharkstate=2
- timerSharkUp.enabled=true
- timersharkdown.enabled=false
- sharkwall.isdropped=false
- sharkwall.collidable=true
- Sharkwall002.visible=true
- PuPlayer.SendMSG "{ ""mt"":301, ""SN"": 4, ""FN"":11, ""VL"":45 }"
- PuPlayer.playlistplayex pAudio,"audioevents","jaws.mp3",100, 1
- DOF 105,DOFOn
- end if
- end if
- end Sub
- sub triggershark_unhit()
- if sharkstate=2 then
- sharkstate=1
- timersharkup.enabled=false
- timersharkdown.enabled=true
- sharkwall.isdropped=true
- sharkwall.collidable=false
- PuPlayer.SendMSG "{ ""mt"":301, ""SN"": 4, ""FN"":11, ""VL"":100 }"
- PuPlayer.playlistplayex pAudio,"audioclear","clear.mp3",100, 1
- DOF 105,DOFOn
- end if
- end sub
- Dim SharkStep
- sub timersharkup_timer()
- SharkStep = SharkStep + 1
- Select Case SharkStep
- Case 1:
- Shark.TransZ = 200:kickervideomode.DrawStyle=1 '0=Hidden, 1=Hole, 2=Cup, 3=Invisible
- Case 2:
- Shark.TransZ = 195
- Case 3:
- Shark.TransZ = 190
- Case 4:
- Shark.TransZ = 185
- Case 5:
- Shark.TransZ = 180
- Case 6:
- Shark.TransZ = 175
- Case 7:
- Shark.TransZ = 170
- Case 8:
- Shark.TransZ = 165
- Case 9:
- Shark.TransZ = 160:DOF 105,DOFOff
- timersharkup.enabled=false
- SharkStep=0
- End select
- end Sub
- sub timersharkdown_timer()
- SharkStep = SharkStep + 1
- Select Case SharkStep
- Case 1:
- Shark.TransZ = 160
- Case 2:
- Shark.TransZ = 165
- Case 3:
- Shark.TransZ = 170
- Case 4:
- Shark.TransZ = 175
- Case 5:
- Shark.TransZ = 180
- Case 6:
- Shark.TransZ = 185
- Case 7:
- Shark.TransZ = 190
- Case 8:
- Shark.TransZ = 195
- Case 9:
- Shark.TransZ = 200:kickervideomode.DrawStyle=0:Sharkwall002.visible=false:DOF 105,DOFOff
- timersharkdown.enabled=false
- SharkStep=0
- End select
- end Sub
- Sub SharkExtra()
- stopSharkmode
- ExtraBallscount = ExtraBallscount + 1
- Light_extraball.State = 1:PostFlasher.state = 1
- ExtraBallsAwards(CurrentPlayer) = ExtraBallsAwards(CurrentPlayer) + 1
- bExtraBallWonThisBall = True
- PuPlayer.playlistplayex pBackglass,"videodiv","sharkend.mp4",100,1
- DMDFlush:DMD "black.jpg", "You finished", "him off!", 3000
- currentplayerbonusstat
- PuPlayer.playlistplayex pAudio,"audioevents","sonofa.mp3",100, 1
- Sharkextraballs=Sharkextraballs+1
- DOF 903, DOFOff
- DOF 906, DOFOff
- DOF 900, DOFOn
- lightseqshark.Play SeqCircleOutOn,15,2
- waitextra.enabled=true
- End Sub
- sub waitextra_timer()
- PuPlayer.playlistplayex pBackglass,"videodiv","extraball.mp4",0,1
- DMD "black.jpg", "EXTRABALL!", "", 3000
- PuPlayer.SendMSG "{ ""mt"":301, ""SN"": 4, ""FN"":11, ""VL"":100 }"
- waitextra.enabled=false
- Shark.TransZ = 200
- end sub
- '****** wax your board counter (cup) *****
- sub Trigger_waxbowl_counter_Hit()
- waxcountleft=10-waxcount(currentplayer)
- if light_waxbowl.state=2 then waxcount(CurrentPlayer)=waxcount(CurrentPlayer)+1
- addscore 300
- if waxcount(currentplayer)=1 then waxcount9.visible=true:waxcount10.visible=false:DMDFlush:DMD "black.jpg", " "&waxcountleft, "more!", 500
- if waxcount(currentplayer)=2 then waxcount8.visible=true:waxcount9.visible=false:DMDFlush:DMD "black.jpg", " "&waxcountleft, "more!", 500
- if waxcount(currentplayer)=3 then waxcount7.visible=true:waxcount8.visible=false:DMDFlush:DMD "black.jpg", " "&waxcountleft, "more!", 500
- if waxcount(currentplayer)=4 then waxcount6.visible=true:waxcount7.visible=false:DMDFlush:DMD "black.jpg", " "&waxcountleft, "more!", 500
- if waxcount(currentplayer)=5 then waxcount5.visible=true:waxcount6.visible=false:DMDFlush:DMD "black.jpg", " "&waxcountleft, "more!", 500
- if waxcount(currentplayer)=6 then waxcount4.visible=true:waxcount5.visible=false:DMDFlush:DMD "black.jpg", " "&waxcountleft, "more!", 500
- if waxcount(currentplayer)=7 then waxcount3.visible=true:waxcount4.visible=false:DMDFlush:DMD "black.jpg", " "&waxcountleft, "more!", 500
- if waxcount(currentplayer)=8 then waxcount2.visible=true:waxcount3.visible=false:DMDFlush:DMD "black.jpg", " "&waxcountleft, "more!", 500
- if waxcount(currentplayer)=9 then waxcount1.visible=true:waxcount2.visible=false:DMDFlush:DMD "black.jpg", " "&waxcountleft, "more!", 500
- if waxcount(currentplayer)=10 then waxcount1.visible=false:light_waxbowl.state=0:Light_Tubearrow1.state=2:Light_Tubewave1.state=2:trigger_waxbowl_counter.enabled=false:timerboardwall2down.enabled=true:waxcount(currentplayer)=0:DMDFlush:DMD "black.jpg", "Get some", "waves!", 3000:PuPlayer.playlistplayex paudio,"audiocallouts","outta bedn.mp3",100,1:startsurfmode
- end sub
- sub Trigger_waxbowl_entry_hit()
- if triggeraerial.enabled=false then
- if light_waxbowl.state=2 then PuPlayer.playlistplayex pAudio,"audioevents","waxing surfboards.mp3",100,1:PuPlayer.playlistplayex pBackglass,"videodiv","wax.mp4",0,1:PuPlayer.SendMSG "{ ""mt"":301, ""SN"": 4, ""FN"":11, ""VL"":25 }"
- end if
- end sub
- sub Trigger_waxbowl_exit_hit() 'placed on invisible wall 020 at height of 125
- if triggeraerial.enabled=false then
- if light_waxbowl.state=0 and progress(CurrentPlayer)=0 then PuPlayer.playlistplayex pBackglass,"videodiv","splashsound.mp4",100,1
- PuPlayer.SendMSG "{ ""mt"":301, ""SN"": 4, ""FN"":11, ""VL"":100 }"
- end if
- end sub
- sub Trigger_waxbowl_exitb_hit() 'placed on invisible wall 020b at height of 60
- playsound "fx_ball_drop0"
- if triggeraerial.enabled=false then
- if light_waxbowl.state=1 then PuPlayer.playlistplayex pAudio,"audioevents","bowlsplash.mp3",100,1
- if light_waxbowl.state=2 and waxcount(currentplayer)<7 then PuPlayer.playlistplayex paudio,"audiocallouts","morewax.mp3",100,1:DMDFlush:DMD "black.jpg", " "&waxcountleft, "more!", 2500
- if light_waxbowl.state=2 and waxcount(currentplayer)>=7 then PuPlayer.playlistplayex paudio,"audiocallouts","morewax2.mp3",100,1:DMDFlush:DMD "black.jpg", " "&waxcountleft, "more!", 2500
- PuPlayer.SendMSG "{ ""mt"":301, ""SN"": 4, ""FN"":11, ""VL"":100 }"
- end if
- end sub
- sub StartSurfmode()
- startsurfmodemusic
- gateleft.open=true:gateright.open=true
- progress(CurrentPlayer)=1
- For each xx in aTargetsSKEET:xx.blenddisablelighting=0:next
- for each xx in aTargetsES:xx.blenddisablelighting=0:next
- triggerloop.enabled=true
- triggeroffthelip.enabled=true
- triggeraerial.enabled=true
- lightSurfMode1.state=2:lightSurfMode2.state=2:lightSurfMode3.state=2:lightSurfMode4.state=2
- DOF 105, DOFOn
- GiOn
- For each a in GI
- a.blinkpattern=10
- a.blinkinterval= 1000
- a.State = 2
- a.Intensity = 5
- a.color = RGB(255, 155, 64) 'default color
- a.colorfull = RGB(255, 255, 255) 'default color
- a.fadespeedup=0.01
- a.fadespeeddown=0.01
- Next
- TimerBoardwall3up.Enabled = True
- DOF 900, DOFOff:DOF 899, DOFOn
- end sub
- sub StopSurfMode()
- surfmusic1.enabled=false:surfmusic2.enabled=false:surfmusic3.enabled=false:surfmusic4.enabled=false:surfmusic5.enabled=false
- gateleft.open=false:gateright.open=false
- triggerloop.enabled=false
- triggeroffthelip.enabled=false
- triggeraerial.enabled=false
- For each xx in aTargetsSKEET
- if xx.isdropped=false then xx.blenddisablelighting=1
- next
- for each xx in aTargetsES
- if xx.isdropped=false then xx.blenddisablelighting=1
- next
- lightSurfMode1.state=0:lightSurfMode2.state=0:lightSurfMode3.state=0:lightSurfMode4.state=0
- DOF 105, DOFOn
- GiOff
- For each a in GI
- a.State = 0
- a.Intensity=2
- a.fadespeedup=0.1
- a.fadespeeddown=0.1
- Next
- TimerBoardwall3down.Enabled = true
- DOF 899, DOFOff:DOF 900, DOFOn
- end sub
- sub startsurfmodemusic()
- select case int (rnd*5)+1
- Case 1 : PuPlayer.playlistplayex pMusic,"musicsurfmode","",100, 1:surfmusic1.enabled=true
- Case 2 : PuPlayer.playlistplayex pMusic,"musicsurfmode","",100, 1:surfmusic2.enabled=true
- Case 3 : PuPlayer.playlistplayex pMusic,"musicsurfmode","",100, 1:surfmusic3.enabled=true
- Case 4 : PuPlayer.playlistplayex pMusic,"musicsurfmode","",100, 1:surfmusic4.enabled=true
- Case 5 : PuPlayer.playlistplayex pMusic,"musicsurfmode","",100, 1:surfmusic5.enabled=true
- end select
- end Sub
- sub surfmusic1_timer()
- startsurfmodemusic:surfmusic1.enabled=false
- end sub
- sub surfmusic2_timer()
- startsurfmodemusic:surfmusic2.enabled=false
- end sub
- sub surfmusic3_timer()
- startsurfmodemusic:surfmusic3.enabled=false
- end sub
- sub surfmusic4_timer()
- startsurfmodemusic:surfmusic4.enabled=false
- end sub
- sub surfmusic5_timer()
- startsurfmodemusic:surfmusic5.enabled=false
- end sub
- sub Triggerloop_hit()
- addscore 20000
- loopbonuspre=loopbonuspre+1:loopbonus=loopbonus+1:loops.enabled=true:if loopbonus=1 then diversitymultiplier=diversitymultiplier+1
- PuPlayer.playlistplayex pBackglass,"videoloop","",0,1
- DMDFlush:DMD "black.jpg", "Loop", "Bonus: " &loopbonuspre, 2000
- LightSeq001.Play SeqRightOn, 50, 1
- LightSeq001.UpdateInterval = 5
- LightSeq001.Play SeqLeftOn, 50, 1
- LightSeq001.UpdateInterval = 8
- triggerloop.enabled=false
- select case int (rnd*3)+1
- Case 1 : PuPlayer.playlistplayex pAudio,"audiocheers","cheer4.mp3",100,1
- Case 2 : PuPlayer.playlistplayex pAudio,"audiocheers","cheer5.mp3",100,1
- Case 3 : PuPlayer.playlistplayex pAudio,"audiocheers","cheer6.mp3",100,1
- end select
- currentplayerbonusstat
- end sub
- sub loops_timer()
- if loopbonus = 15 then awardextraball
- if loopbonus = 20 then awardbonusjackpot
- triggerloop.enabled=true:loops.enabled=false
- end sub
- sub Triggeroffthelip_hit()
- addscore 20000
- offthelipbonuspre=offthelipbonuspre+1:offthelipbonus=offthelipbonus+1:offthelip.enabled=true:if offthelipbonus=1 then diversitymultiplier=diversitymultiplier+1
- PuPlayer.playlistplayex pBackglass,"videooffthelip","",0,1
- DMDFlush:DMD "black.jpg", "Off-the-Lip", "Bonus: " &offthelipbonuspre, 2000
- LightSeq001.Play SeqRightOn, 50, 1
- LightSeq001.UpdateInterval = 5
- LightSeq001.Play SeqLeftOn, 50, 1
- LightSeq001.UpdateInterval = 8
- triggeroffthelip.enabled=false
- select case int (rnd*3)+1
- Case 1 : PuPlayer.playlistplayex pAudio,"audiocheers","cheer4.mp3",100,1
- Case 2 : PuPlayer.playlistplayex pAudio,"audiocheers","cheer5.mp3",100,1
- Case 3 : PuPlayer.playlistplayex pAudio,"audiocheers","cheer6.mp3",100,1
- end select
- currentplayerbonusstat
- end sub
- sub offthelip_timer()
- if offthelipbonus = 15 then awardextraball
- if offthelipbonus = 20 then awardbonusjackpot
- offthelip.enabled=false:triggeroffthelip.enabled=true
- end sub
- sub Triggeraerial_hit()
- addscore 20000
- aerialbonuspre=aerialbonuspre+1:aerialbonus=aerialbonus+1:aerial.enabled=true:if aerialbonus=1 then diversitymultiplier=diversitymultiplier+1
- PuPlayer.playlistplayex pBackglass,"videoaerial","",0,1
- DMDFlush:DMD "black.jpg", "Aerial 360", "Bonus: " &aerialbonuspre, 2000
- LightSeq001.Play SeqRightOn, 50, 1
- LightSeq001.UpdateInterval = 5
- LightSeq001.Play SeqLeftOn, 50, 1
- LightSeq001.UpdateInterval = 8
- triggeraerial.enabled=false
- select case int (rnd*3)+1
- Case 1 : PuPlayer.playlistplayex pAudio,"audiocheers","cheer4.mp3",100,1
- Case 2 : PuPlayer.playlistplayex pAudio,"audiocheers","cheer5.mp3",100,1
- Case 3 : PuPlayer.playlistplayex pAudio,"audiocheers","cheer6.mp3",100,1
- end select
- currentplayerbonusstat
- end sub
- sub aerial_timer()
- if aerialbonus = 15 then awardextraball
- if aerialbonus = 20 then awardbonusjackpot
- aerial.enabled=false:triggeraerial.enabled=true
- end sub
- '****kickertuberide *****
- sub kickerrampbrake_hit 'sets speed for ball coming up the ramp to prevent missing the next trigger
- Kickerrampbrake.kick 0,30
- end sub
- sub REnd2_hit()
- PuPlayer.SendMSG "{ ""mt"":301, ""SN"": 4, ""FN"":11, ""VL"":100 }"
- StopSound "metalrolling"
- playsound "fx_ball_drop0"
- end sub
- sub starttuberide_timer()
- if light_tubearrow1.state=2 then light_tubewave1.state=1
- if light_tubearrow2.state=2 then light_tubewave2.state=1
- if light_tubearrow3.state=2 then light_tubewave3.state=1
- Kickertakeoff.kick 90,3
- addscore 100000
- starttuberide.enabled=0
- startwave.enabled=true
- end sub
- Dim WaveStep
- sub startwave_timer()
- WaveStep = WaveStep + 1
- Select Case WaveStep
- Case 1:
- PrimTube2.rotx = 0
- Case 2:
- PrimTube2.rotx = -15
- Case 3:
- PrimTube2.rotx = -30:primtube2.visible=true
- Case 4:
- PrimTube2.rotx = -45
- Case 5:
- PrimTube2.rotx = -60
- Case 6:
- PrimTube2.rotx = -75
- Case 7:
- PrimTube2.rotx = -90
- Case 8:
- PrimTube2.rotx = -105
- Case 9:
- PrimTube2.rotx = -120
- Case 10:
- PrimTube2.rotx = -135
- Case 11:
- PrimTube2.rotx = -150
- Case 12:
- PrimTube2.rotx = -165
- Case 13:
- PrimTube2.rotx = -180
- Case 14:
- PrimTube2.rotx = -195
- Case 15:
- PrimTube2.rotx = -210
- Case 16:
- PrimTube2.rotx = -225
- Case 17:
- PrimTube2.rotx = -240
- Case 18:
- PrimTube2.rotx = -255
- Case 19:
- PrimTube2.rotx = -270:primtube2.visible=false
- startwave.Enabled = False
- WaveStep=0
- End select
- end sub
- sub kickertakeoff_hit()
- starttuberide.enabled=1:gateramptube.collidable=false:PuPlayer.SendMSG "{ ""mt"":301, ""SN"": 4, ""FN"":11, ""VL"":01 }"
- if l11.state=2 and light_tubearrow1.state=2 then PuPlayer.playlistplayex pAudio,"audioevents","wave_coxos1.mp3",100,1:PuPlayer.playlistplayex pBackglass,"videospots","coxos1.mp4",0,1
- if l11.state=2 and light_tubearrow2.state=2 then PuPlayer.playlistplayex pAudio,"audioevents","wave_coxos2.mp3",100,1:PuPlayer.playlistplayex pBackglass,"videospots","coxos2.mp4",0,1
- if l11.state=2 and light_tubearrow3.state=2 then PuPlayer.playlistplayex pAudio,"audioevents","wave_coxos1.mp3",100,1:PuPlayer.playlistplayex pBackglass,"videospots","coxos3.mp4",0,1
- if l12.state=2 and light_tubearrow1.state=2 then PuPlayer.playlistplayex pAudio,"audioevents","wave_munda1.mp3",100,1:PuPlayer.playlistplayex pBackglass,"videospots","Munda1.mp4",0,1
- if l12.state=2 and light_tubearrow2.state=2 then PuPlayer.playlistplayex pAudio,"audioevents","wave_munda2.mp3",100,1:PuPlayer.playlistplayex pBackglass,"videospots","Munda2.mp4",0,1
- if l12.state=2 and light_tubearrow3.state=2 then PuPlayer.playlistplayex pAudio,"audioevents","wave_munda1.mp3",100,1:PuPlayer.playlistplayex pBackglass,"videospots","Munda3.mp4",0,1
- if l13.state=2 and light_tubearrow1.state=2 then PuPlayer.playlistplayex pAudio,"audioevents","wave_mulla2.mp3",100,1:PuPlayer.playlistplayex pBackglass,"videospots","Mulla1.mp4",0,1
- if l13.state=2 and light_tubearrow2.state=2 then PuPlayer.playlistplayex pAudio,"audioevents","wave_mulla3.mp3",100,1:PuPlayer.playlistplayex pBackglass,"videospots","Mulla2.mp4",0,1
- if l13.state=2 and light_tubearrow3.state=2 then PuPlayer.playlistplayex pAudio,"audioevents","wave_mulla2.mp3",100,1:PuPlayer.playlistplayex pBackglass,"videospots","Mulla3.mp4",0,1
- if l14.state=2 and light_tubearrow1.state=2 then PuPlayer.playlistplayex pAudio,"audioevents","wave_ships1.mp3",100,1:PuPlayer.playlistplayex pBackglass,"videospots","ship1.mp4",0,1
- if l14.state=2 and light_tubearrow2.state=2 then PuPlayer.playlistplayex pAudio,"audioevents","wave_ships2.mp3",100,1:PuPlayer.playlistplayex pBackglass,"videospots","ship2.mp4",0,1
- if l14.state=2 and light_tubearrow3.state=2 then PuPlayer.playlistplayex pAudio,"audioevents","wave_ships1.mp3",100,1:PuPlayer.playlistplayex pBackglass,"videospots","ship3.mp4",0,1
- if l15.state=2 and light_tubearrow1.state=2 then PuPlayer.playlistplayex pAudio,"audioevents","wave_skele1.mp3",100,1:PuPlayer.playlistplayex pBackglass,"videospots","skel1.mp4",0,1
- if l15.state=2 and light_tubearrow2.state=2 then PuPlayer.playlistplayex pAudio,"audioevents","wave_skele2.mp3",100,1:PuPlayer.playlistplayex pBackglass,"videospots","skel2.mp4",0,1
- if l15.state=2 and light_tubearrow3.state=2 then PuPlayer.playlistplayex pAudio,"audioevents","wave_skele1.mp3",100,1:PuPlayer.playlistplayex pBackglass,"videospots","skel3.mp4",0,1
- if l16.state=2 and light_tubearrow1.state=2 then PuPlayer.playlistplayex pAudio,"audioevents","wave_bingin1.mp3",100,1:PuPlayer.playlistplayex pBackglass,"videospots","bingin1.mp4",0,1
- if l16.state=2 and light_tubearrow2.state=2 then PuPlayer.playlistplayex pAudio,"audioevents","wave_bingin2.mp3",100,1:PuPlayer.playlistplayex pBackglass,"videospots","bingin2.mp4",0,1
- if l16.state=2 and light_tubearrow3.state=2 then PuPlayer.playlistplayex pAudio,"audioevents","wave_bingin1.mp3",100,1:PuPlayer.playlistplayex pBackglass,"videospots","bingin3.mp4",0,1
- if l17.state=2 and light_tubearrow1.state=2 then PuPlayer.playlistplayex pAudio,"audioevents","wave_pipeline1.mp3",100,1:PuPlayer.playlistplayex pBackglass,"videospots","pipe1.mp4",0,1
- if l17.state=2 and light_tubearrow2.state=2 then PuPlayer.playlistplayex pAudio,"audioevents","wave_pipeline2.mp3",100,1:PuPlayer.playlistplayex pBackglass,"videospots","pipe2.mp4",0,1
- if l17.state=2 and light_tubearrow3.state=2 then PuPlayer.playlistplayex pAudio,"audioevents","wave_pipeline1.mp3",100,1:PuPlayer.playlistplayex pBackglass,"videospots","pipe3.mp4",0,1
- end sub
- sub triggertubeend_hit()
- if light_tubewave1.state=1 and light_tubewave2.state=0 then Light_Tubearrow2.state=2: light_tubewave2.state=2:light_tubearrow1.state=0:DMDFlush:DMD "black.jpg", "Nice", "Tuberide!", 3000
- if light_tubewave2.state=1 and light_tubewave3.state=0 then Light_Tubearrow3.state=2: light_tubewave3.state=2:Light_Tubearrow2.state=0:light_tubearrow1.state=0:DMDFlush:DMD "black.jpg", "Nice", "Tuberide!", 3000
- if light_tubewave3.state=1 and l11.state=2 then l11.state=1:l12.state=2:DMDFlush:DMD "black.jpg", "Nice", "Tuberide!", 3000:gotspot
- if light_tubewave3.state=1 and l12.state=2 then l12.state=1:l13.state=2:DMDFlush:DMD "black.jpg", "Nice", "Tuberide!", 3000:gotspot
- if light_tubewave3.state=1 and l13.state=2 then l13.state=1:l14.state=2:DMDFlush:DMD "black.jpg", "Nice", "Tuberide!", 3000:gotspot
- if light_tubewave3.state=1 and l14.state=2 then l14.state=1:l15.state=2:DMDFlush:DMD "black.jpg", "Nice", "Tuberide!", 3000:gotspot
- if light_tubewave3.state=1 and l15.state=2 then l15.state=1:l16.state=2:DMDFlush:DMD "black.jpg", "Nice", "Tuberide!", 3000:gotspot
- if light_tubewave3.state=1 and l16.state=2 then l16.state=1:l17.state=2:DMDFlush:DMD "black.jpg", "Nice", "Tuberide!", 3000:gotspot
- if light_tubewave3.state=1 and l17.state=2 then l17.state=1:l11.state=2:light_tubewave1.state=0:light_tubewave2.state=0:light_tubewave3.state=0:light_tubearrow3.state=0:l21.state=2:l22.state=2:l23.state=2:l31.state=2:l32.state=2:l33.state=2:Light_ramp_right_arrow.state=2:boards(CurrentPlayer)=0:TimerBoardwall1up.enabled=true:timerboardwall2up.enabled=true:gateramp.collidable=true:TargetEquip01.collidable=true:TargetEquip02.collidable=true:TargetEquip03.collidable=true:waxcount(currentplayer)=0:lightgotspot.state=2:Timerlightgotspot.enabled=true:light_ticket.state=0:light_plane.state=0:l12.state=0:l13.state=0:l14.state=0:l15.state=0:l16.state=0:l17.state=0:l61.state=0:addscore 1000000:StopSurfMode:DMDFlush:DMD "black.jpg", "Nice", "Tuberide!", 3000:gotspot'PauseBall:some heavy or all lights going on/off big final
- gateramptube.collidable=true
- end sub
- sub bestbarrel_hit()
- if Light_Tubearrow2.state=2 and light_tubewave2.state=2 and light_tubearrow1.state=0 then PuPlayer.playlistplayex paudio,"audiocallouts","best barrel ever dude.mp3",100, 1
- if light_tubewave3.state=2 and Light_Tubearrow2.state=0 and light_tubearrow1.state=0 then PuPlayer.playlistplayex paudio,"audiocallouts","best barrel ever dude.mp3",100, 1
- end sub
- sub gotspot()
- dim waittime
- waittime=1500
- vpmtimer.addtimer waittime, "PlaySound """", 0, 1, 0, 0, 0, 0, 0 '"
- gotspotkicker.enabled=true
- light_tubewave1.state=0:light_tubewave2.state=0:light_tubewave3.state=0:light_tubearrow3.state=0
- l21.state=2:l22.state=2:l23.state=2:l31.state=2:l32.state=2:l33.state=2
- Light_ramp_right_arrow.state=2
- spotmastered(CurrentPlayer)=spotmastered(CurrentPlayer)+1
- boards(CurrentPlayer)=0
- TimerBoardwall1up.enabled=true:timerboardwall2up.enabled=true
- gateramp.collidable=true
- TargetEquip01.collidable=true:TargetEquip02.collidable=true:TargetEquip03.collidable=true
- waxcount(currentplayer)=0
- lightgotspot.state=2:Timerlightgotspot.enabled=true
- light_ticket.state=0:light_plane.state=0
- l61.state=0
- if spotmastered(CurrentPlayer)=1 then addscore 1000000
- if spotmastered(CurrentPlayer)=2 then addscore 2000000
- if spotmastered(CurrentPlayer)=3 then addscore 3000000
- if spotmastered(CurrentPlayer)=4 then addscore 4000000
- if spotmastered(CurrentPlayer)=5 then addscore 5000000
- if spotmastered(CurrentPlayer)=6 then addscore 6000000
- if spotmastered(CurrentPlayer)=7 then addscore 10000000
- StopSurfMode
- awardextraball
- progress(CurrentPlayer)=0
- ripcurl.enabled=true
- ' PauseBall:StartDMDMiniGame - maybe soemtimes later
- DOF 105, DOFOn
- select case int (rnd*3)+1
- Case 1 : PuPlayer.playlistplayex pAudio,"audiocheers","cheer1.mp3",100,1
- Case 2 : PuPlayer.playlistplayex pAudio,"audiocheers","cheer2.mp3",100,1
- Case 3 : PuPlayer.playlistplayex pAudio,"audiocheers","cheer3.mp3",100,1
- end select
- gotspotbonuscount
- end sub
- sub Timerlightgotspot_timer()
- Timerlightgotspot.Enabled=False
- lightgotspot.state=0
- end sub
- sub gotspotkicker_hit()
- PuPlayer.playlistplayex pBackglass,"videomaster","",100,2
- gotspottimer.enabled=true
- end Sub
- sub gotspottimer_timer()
- gotspotkicker.kick 0,1:playsound "fx_ball_drop0"
- gotspottimer.enabled=false:gotspotkicker.enabled=false
- DMDFlush:DMD "black.jpg", "You really OWNED it!", "travel on!", 3500
- currentplayerbonusstat
- PuPlayer.playlistplayex pMusic,"musicmainmode","",100, 1
- TimerBoardwall3down.Enabled = true
- end Sub
- sub gotspotbonuscount()
- dim waittime
- waittime=0
- PuPlayer.playlistplayex pAudio,"audioclear","clear.mp3",100,1
- 'Bonuscount + calculation.
- PuPlayer.playlistplayex pMusic,"musicdiv","best.mp3",100, 1
- playsound "wusha"
- 'endlesssummerbonus
- if endlesssummerbonuspre>0 then
- waittime=waittime+1800
- AwardPoints = endlesssummerbonuspre * 10000
- TotalBonus = TotalBonus + AwardPoints
- vpmtimer.addtimer waittime, "PlaySound ""wush0"", 0, 1, 0, 0, 0, 0, 0 '"
- Select Case Int(Rnd * 12) + 1
- Case 1:DMD "bon1.wmv", "Endlesssummer Bonus", awardpoints, 1500
- Case 2:DMD "bon2.wmv", "Endlesssummer Bonus", awardpoints, 1500
- Case 3:DMD "bon3.wmv", "Endlesssummer Bonus", awardpoints, 1500
- Case 4:DMD "bon4.wmv", "Endlesssummer Bonus", awardpoints, 1500
- Case 5:DMD "bon5.wmv", "Endlesssummer Bonus", awardpoints, 1500
- Case 6:DMD "bon6.wmv", "Endlesssummer Bonus", awardpoints, 1500
- Case 7:DMD "bon7.wmv", "Endlesssummer Bonus", awardpoints, 1500
- Case 8:DMD "bon8.wmv", "Endlesssummer Bonus", awardpoints, 1500
- Case 9:DMD "bon9.wmv", "Endlesssummer Bonus", awardpoints, 1500
- Case 10:DMD "bon10.wmv", "Endlesssummer Bonus", awardpoints, 1500
- Case 11:DMD "bon11.wmv", "Endlesssummer Bonus", awardpoints, 1500
- Case 12:DMD "bon12.wmv", "Endlesssummer Bonus", awardpoints, 1500
- End Select
- end If
- 'skeetbonus
- if skeetbonuspre>0 then
- waittime=waittime+1800
- AwardPoints = skeetbonuspre * 10000
- TotalBonus = TotalBonus + Awardpoints
- Select Case Int(Rnd * 12) + 1
- Case 1:DMD "bon1.wmv", "Skeetsurfing Bonus", awardpoints, 1500
- Case 2:DMD "bon2.wmv", "Skeetsurfing Bonus", awardpoints, 1500
- Case 3:DMD "bon3.wmv", "Skeetsurfing Bonus", awardpoints, 1500
- Case 4:DMD "bon4.wmv", "Skeetsurfing Bonus", awardpoints, 1500
- Case 5:DMD "bon5.wmv", "Skeetsurfing Bonus", awardpoints, 1500
- Case 6:DMD "bon6.wmv", "Skeetsurfing Bonus", awardpoints, 1500
- Case 7:DMD "bon7.wmv", "Skeetsurfing Bonus", awardpoints, 1500
- Case 8:DMD "bon8.wmv", "Skeetsurfing Bonus", awardpoints, 1500
- Case 9:DMD "bon9.wmv", "Skeetsurfing Bonus", awardpoints, 1500
- Case 10:DMD "bon10.wmv", "Skeetsurfing Bonus", awardpoints, 1500
- Case 11:DMD "bon11.wmv", "Skeetsurfing Bonus", awardpoints, 1500
- Case 12:DMD "bon12.wmv", "Skeetsurfing Bonus", awardpoints, 1500
- End Select
- vpmtimer.addtimer waittime, "PlaySound ""wush1"", 0, 1, 0, 0, 0, 0, 0 '"
- end if
- 'sexwaxfrenzybonus
- if sexwaxfrenzybonuspre>0 then
- waittime=waittime+1800
- AwardPoints = sexwaxfrenzybonuspre * 10000
- TotalBonus = TotalBonus + AwardPoints
- vpmtimer.addtimer waittime, "PlaySound ""wush2"", 0, 1, 0, 0, 0, 0, 0 '"
- Select Case Int(Rnd * 12) + 1
- Case 1:DMD "bon1.wmv", "SexWaxFrenzy Bonus", awardpoints, 1500
- Case 2:DMD "bon2.wmv", "SexWaxFrenzy Bonus", awardpoints, 1500
- Case 3:DMD "bon3.wmv", "SexWaxFrenzy Bonus", awardpoints, 1500
- Case 4:DMD "bon4.wmv", "SexWaxFrenzy Bonus", awardpoints, 1500
- Case 5:DMD "bon5.wmv", "SexWaxFrenzy Bonus", awardpoints, 1500
- Case 6:DMD "bon6.wmv", "SexWaxFrenzy Bonus", awardpoints, 1500
- Case 7:DMD "bon7.wmv", "SexWaxFrenzy Bonus", awardpoints, 1500
- Case 8:DMD "bon8.wmv", "SexWaxFrenzy Bonus", awardpoints, 1500
- Case 9:DMD "bon9.wmv", "SexWaxFrenzy Bonus", awardpoints, 1500
- Case 10:DMD "bon10.wmv", "SexWaxFrenzy Bonus", awardpoints, 1500
- Case 11:DMD "bon11.wmv", "SexWaxFrenzy Bonus", awardpoints, 1500
- Case 12:DMD "bon12.wmv", "SexWaxFrenzy Bonus", awardpoints, 1500
- End Select
- end If
- 'offthelipbonus
- if offthelipbonuspre>0 then
- waittime=waittime+1800
- AwardPoints = offthelipbonuspre * 10000
- TotalBonus = Totalbonus + AwardPoints
- Select Case Int(Rnd * 12) + 1
- Case 1:DMD "bon1.wmv", "Off the lip Bonus", awardpoints, 1500
- Case 2:DMD "bon2.wmv", "Off the lip Bonus", awardpoints, 1500
- Case 3:DMD "bon3.wmv", "Off the lip Bonus", awardpoints, 1500
- Case 4:DMD "bon4.wmv", "Off the lip Bonus", awardpoints, 1500
- Case 5:DMD "bon5.wmv", "Off the lip Bonus", awardpoints, 1500
- Case 6:DMD "bon6.wmv", "Off the lip Bonus", awardpoints, 1500
- Case 7:DMD "bon7.wmv", "Off the lip Bonus", awardpoints, 1500
- Case 8:DMD "bon8.wmv", "Off the lip Bonus", awardpoints, 1500
- Case 9:DMD "bon9.wmv", "Off the lip Bonus", awardpoints, 1500
- Case 10:DMD "bon10.wmv", "Off the lip Bonus", awardpoints, 1500
- Case 11:DMD "bon11.wmv", "Off the lip Bonus", awardpoints, 1500
- Case 12:DMD "bon12.wmv", "Off the lip Bonus", awardpoints, 1500
- End Select
- vpmtimer.addtimer waittime, "PlaySound ""wush3"", 0, 1, 0, 0, 0, 0, 0 '"
- end If
- 'loopbonus
- if loopbonuspre>0 then
- waittime=waittime+1800
- AwardPoints = loopBonuspre * 10000
- TotalBonus = TotalBonus + Awardpoints
- Select Case Int(Rnd * 12) + 1
- Case 1:DMD "bon1.wmv", "Loop Bonus", awardpoints, 1500
- Case 2:DMD "bon2.wmv", "Loop Bonus", awardpoints, 1500
- Case 3:DMD "bon3.wmv", "Loop Bonus", awardpoints, 1500
- Case 4:DMD "bon4.wmv", "Loop Bonus", awardpoints, 1500
- Case 5:DMD "bon5.wmv", "Loop Bonus", awardpoints, 1500
- Case 6:DMD "bon6.wmv", "Loop Bonus", awardpoints, 1500
- Case 7:DMD "bon7.wmv", "Loop Bonus", awardpoints, 1500
- Case 8:DMD "bon8.wmv", "Loop Bonus", awardpoints, 1500
- Case 9:DMD "bon9.wmv", "Loop Bonus", awardpoints, 1500
- Case 10:DMD "bon10.wmv", "Loop Bonus", awardpoints, 1500
- Case 11:DMD "bon11.wmv", "Loop Bonus", awardpoints, 1500
- Case 12:DMD "bon12.wmv", "Loop Bonus", awardpoints, 1500
- End Select
- vpmtimer.addtimer waittime, "PlaySound ""wush4"", 0, 1, 0, 0, 0, 0, 0 '"
- end if
- 'aerialbonus
- if aerialbonuspre>0 then
- waittime=waittime+1800
- AwardPoints = aerialbonuspre * 10000
- TotalBonus = TotalBonus + AwardPoints
- Select Case Int(Rnd * 12) + 1
- Case 1:DMD "bon1.wmv", "Aerial 360 Bonus", awardpoints, 1500
- Case 2:DMD "bon2.wmv", "Aerial 360 Bonus", awardpoints, 1500
- Case 3:DMD "bon3.wmv", "Aerial 360 Bonus", awardpoints, 1500
- Case 4:DMD "bon4.wmv", "Aerial 360 Bonus", awardpoints, 1500
- Case 5:DMD "bon5.wmv", "Aerial 360 Bonus", awardpoints, 1500
- Case 6:DMD "bon6.wmv", "Aerial 360 Bonus", awardpoints, 1500
- Case 7:DMD "bon7.wmv", "Aerial 360 Bonus", awardpoints, 1500
- Case 8:DMD "bon8.wmv", "Aerial 360 Bonus", awardpoints, 1500
- Case 9:DMD "bon9.wmv", "Aerial 360 Bonus", awardpoints, 1500
- Case 10:DMD "bon10.wmv", "Aerial 360 Bonus", awardpoints, 1500
- Case 11:DMD "bon11.wmv", "Aerial 360 Bonus", awardpoints, 1500
- Case 12:DMD "bon12.wmv", "Aerial 360 Bonus", awardpoints, 1500
- End Select
- vpmtimer.addtimer waittime, "PlaySound ""wush5"", 0, 1, 0, 0, 0, 0, 0 '"
- end if
- 'diversitymultiplier
- AwardPoints = diversitymultiplier
- 'TotalBonus = TotalBonus * diversitymultiplier
- Select Case Int(Rnd * 12) + 1
- Case 1:DMD "bon1.wmv", "variety Multiplier", awardpoints, 1500
- Case 2:DMD "bon2.wmv", "variety Multiplier", awardpoints, 1500
- Case 3:DMD "bon3.wmv", "variety Multiplier", awardpoints, 1500
- Case 4:DMD "bon4.wmv", "variety Multiplier", awardpoints, 1500
- Case 5:DMD "bon5.wmv", "variety Multiplier", awardpoints, 1500
- Case 6:DMD "bon6.wmv", "variety Multiplier", awardpoints, 1500
- Case 7:DMD "bon7.wmv", "variety Multiplier", awardpoints, 1500
- Case 8:DMD "bon8.wmv", "variety Multiplier", awardpoints, 1500
- Case 9:DMD "bon9.wmv", "variety Multiplier", awardpoints, 1500
- Case 10:DMD "bon10.wmv", "variety Multiplier", awardpoints, 1500
- Case 11:DMD "bon11.wmv", "variety Multiplier", awardpoints, 1500
- Case 12:DMD "bon12.wmv", "variety Multiplier", awardpoints, 1500
- End Select
- ' calculate the totalbonus
- TotalBonus = TotalBonus * diversitymultiplier
- ' Add the bonus to the score
- DMD "bonustotal.wmv", "TOTAL BONUS X " &diversitymultiplier, "= "&TotalBonus , 3000
- vpmtimer.addtimer waittime, "PlaySound ""yahoo"", 0, 1, 0, 0, 0, 0, 0 '": endlesssummerbonuspre=0:skeetbonuspre=0:sexwaxfrenzybonuspre=0:offthelipbonuspre=0:loopbonuspre=0:aerialbonuspre=0
- AddScore TotalBonus
- DMD "black.jpg", "YOU really OWNED IT!", "travel on!", 3500
- end sub
- '******magnet lucky outlane right************
- sub trigger2_hit()
- if ballsonplayfield = 1 then RandomSave':trigger2.enabled=false:triggerpause.enabled=true
- end sub
- Sub RandomSave()
- dim l
- l = int (rnd*3)+1
- if l = 3 then PuPlayer.playlistplayex paudio,"lucky","",100,1:mMagna2Save.MagnetOn = 1:magnettimer2.enabled=1:wallsave.collidable=true:DMDFlush:DMD "black.jpg", "LUCKY", "SAVE", 2000
- End Sub
- Dim mMagna2Save
- Set mMagna2Save = New cvpmMagnet : With mMagna2Save
- .InitMagnet Magna2, 15
- End With
- Sub Magna2_Hit():mMagna2Save.AddBall ActiveBall: End Sub
- Sub Magna2_UnHit(): mMagna2Save.RemoveBall ActiveBall: End Sub
- sub magnettimer2_timer()
- wallsave.collidable=false
- magnettimer2.enabled=0
- mMagna2Save.MagnetOn = 0
- playsound "fx_ball_drop0"
- end Sub
- '************* equip, boards, ticket, flight ready ***********
- sub timerflight_timer()
- kickerticket.drawstyle=0
- kickerflight.drawstyle=0
- kickerticket.kick 170,1:playsound "fx_ball_drop0"
- kickerflight.kick 190,1:playsound "fx_ball_drop0"
- kickerflight.enabled=false
- light_planearrow.state=0:light_waxbowl.state=2
- waxcount10.visible=true
- addscore 2000
- timerflight.enabled=false:Triggerflight.enabled=false
- kickerflight.enabled=false:kickerticket.enabled=false
- end sub
- '***** order flight ticket *****
- sub TargetTriggershot_right_hit()
- if Light_Triggershot_right.State=0 then PlaySound "Dong", 0, Vol(ActiveBall), AudioPan(ActiveBall), 0, Pitch(ActiveBall), 1, 0, AudioFade(ActiveBall)
- if Light_Triggershot_right.State=2 then
- PuPlayer.SendMSG "{ ""mt"":301, ""SN"": 4, ""FN"":11, ""VL"":40 }"
- Light_Ticketarrow.state=2:ripcurl.enabled=0
- light_ticket.state=2
- light_triggershot_right.state=0
- kickerticket.enabled=true
- pausesong.enabled=true
- AddScore 10000
- DMDFlush:DMD "black.jpg", "Ticket ordered", "Get it!", 1000
- PuPlayer.playlistplayex paudio,"audiocallouts","get_your_ticket.mp3",100,1
- end if
- end sub
- sub pausesong_timer()
- PuPlayer.SendMSG "{ ""mt"":301, ""SN"": 4, ""FN"":11, ""VL"":100 }"
- pausesong.enabled=false
- end sub
- '***** get flight ticket ******
- sub TriggerMagna_hit()
- if Light_Ticketarrow.state=2 then kickerticket.enabled=true:triggermagna.enabled=false
- end sub
- '***** flight start + release ball + start tuberiding *****
- sub triggerflight_hit()
- if light_planearrow.state=2 then timerflight.enabled=true:light_plane.state=1:kickerflight.enabled=true:triggerflight.enabled=false
- trigger_waxbowl_counter.enabled=true:audiowait4.enabled=false
- DMDFlush:DMD "black.jpg", "Now wax", "your boards!", 3000
- if BallsOnPlayfield=1 then PuPlayer.playlistplayex pBackglass,"videodiv","flight_single.mp4",0,1:PuPlayer.playlistplayex pAudio,"audioevents","takeoff.mp3",100,1:audiowait1.enabled=true
- if BallsOnPlayfield=2 then PuPlayer.playlistplayex pBackglass,"videodiv","flight_double.mp4",0,1:PuPlayer.playlistplayex pAudio,"audioevents","takeoff.mp3",100,1:audiowait2.enabled=true
- ripcurl.enabled=true:ripcurl2.enabled=true
- end sub
- sub audiowait1_timer()
- PuPlayer.playlistplayex paudio,"audiocallouts","waxyourboards.mp3",100,1
- audiowait1.enabled=false
- end Sub
- sub audiowait2_timer()
- PuPlayer.playlistplayex paudio,"audiocallouts","waxyourboards.mp3",100,1
- audiowait2.enabled=false
- end sub
- '************ kicker *********
- sub kickerticket_hit()
- Light_Ticketarrow.state=0
- Light_ticket.state=1
- Light_planearrow.state=2
- light_plane.state=2
- addscore 3000
- BallRelease.CreateBall
- BallRelease.Kick 90, 7
- BallsOnPlayfield = BallsOnPlayfield + 1
- triggerflight.enabled=true:TimerBoardwall1down.enabled=true:gateramp.collidable=false:ripcurl2.enabled=false
- chilloutthemusic
- PuPlayer.playlistplayex paudio,"audiocallouts","security advice",100,1:audiowait4.enabled=true
- DMDFlush:DMD "black.jpg", "Checked in,", "go boarding!", 3000
- DOF 105, DOFOn
- end sub
- sub audiowait4_timer()
- PuPlayer.playlistplayex paudio,"audiocallouts","go_boarding1.mp3",100,1
- audiowait4.enabled=false
- end sub
- sub kickerflight_hit()
- light_planearrow.state=0:light_plane.state=1:timerflight.enabled=true
- end sub
- '********** moving boardwalls up and down **************
- Dim Boardwall1XStep
- Sub TimerBoardwall1up_Timer
- Boardwall1XStep = Boardwall1XStep + 1
- Select Case Boardwall1XStep
- Case 1:
- Boardwall1.transY = -90:boardwall1.collidable=true:boardwall1.visible=true
- Case 2:
- Boardwall1.transY = -80
- Case 3:
- Boardwall1.transY = -70
- Case 4:
- Boardwall1.transY = -60
- Case 5:
- Boardwall1.transY = -50
- Case 6:
- Boardwall1.transY = -40
- Case 7:
- Boardwall1.transY = -30
- Case 8:
- Boardwall1.transY = -20
- Case 9:
- Boardwall1.transY = -10
- Case 10:
- Boardwall1.transY = 0: DOF 105, DOFOff
- TimerBoardwall1up.Enabled = False
- Boardwall1XStep=0
- End select
- End Sub
- Sub TimerBoardwall1down_Timer
- Boardwall1XStep = Boardwall1XStep + 1
- Select Case Boardwall1XStep
- Case 1:
- Boardwall1.transY = -10
- Case 2:
- Boardwall1.transY = -20
- Case 3:
- Boardwall1.transY = -30
- Case 4:
- Boardwall1.transY = -40
- Case 5:
- Boardwall1.transY = -50
- Case 6:
- Boardwall1.transY = -60
- Case 7:
- Boardwall1.transY = -70
- Case 8:
- Boardwall1.transY = -80
- Case 9:
- Boardwall1.transY = -90:boardwall1.collidable=false:boardwall1.visible=false:DOF 105, DOFOff
- TimerBoardwall1down.Enabled = False
- Boardwall1XStep = 0
- End Select
- End Sub
- sub Boardwall1_hit()
- playsound "fx_metalhit", 0, 1, Audiopan(ActiveBall)
- end sub
- Dim Boardwall2XStep
- Sub TimerBoardwall2up_Timer
- Boardwall2XStep = Boardwall2XStep + 1
- Select Case Boardwall2XStep
- Case 1:
- Boardwall2.transY = -90:boardwall2.collidable=true:boardwall2.visible=true
- Case 2:
- Boardwall2.transY = -80
- Case 3:
- Boardwall2.transY = -70
- Case 4:
- Boardwall2.transY = -60
- Case 5:
- Boardwall2.transY = -50
- Case 6:
- Boardwall2.transY = -40
- Case 7:
- Boardwall2.transY = -30
- Case 8:
- Boardwall2.transY = -20
- Case 9:
- Boardwall2.transY = -10
- Case 10:
- Boardwall2.transY = 0:DOF 105, DOFOff
- TimerBoardwall2up.Enabled = False
- Boardwall2XStep=0
- End select
- End Sub
- Sub TimerBoardwall2down_Timer
- Boardwall2XStep = Boardwall2XStep + 1
- Select Case Boardwall2XStep
- Case 1:
- Boardwall2.transY = -10
- Case 2:
- Boardwall2.transY = -20
- Case 3:
- Boardwall2.transY = -30
- Case 4:
- Boardwall2.transY = -40
- Case 5:
- Boardwall2.transY = -50
- Case 6:
- Boardwall2.transY = -60
- Case 7:
- Boardwall2.transY = -70
- Case 8:
- Boardwall2.transY = -80
- Case 9:
- Boardwall2.transY = -90:boardwall2.collidable=false:boardwall2.visible=false:DOF 105, DOFOff
- TimerBoardwall2down.Enabled = False
- Boardwall2XStep = 0
- End Select
- End Sub
- sub Boardwall2_hit()
- playsound "fx_metalhit", 0, 1, Audiopan(ActiveBall)
- end sub
- '***** turntable in curl ******
- dim spinner
- Set spinner = New cvpmTurntable
- With spinner
- .InitTurntable spindisc, 40
- .SpinDown = 10
- .CreateEvents "spinner"
- End With
- '**********************
- ' Flipper Lanes: WAVE
- '**********************
- Sub LeftOutlane_hit
- PlaySound "fx_sensor", 0, 1, Audiopan(ActiveBall)
- addscore 100
- if l1.state=0 then l1.State = 1:CheckLanes
- End Sub
- Sub LeftInLane_Hit
- PlaySound "fx_sensor", 0, 1, Audiopan(ActiveBall)
- addscore 100
- if l2.state=0 then l2.State = 1:CheckLanes
- End Sub
- Sub RightInLane_Hit
- PlaySound "fx_sensor", 0, 1, Audiopan(ActiveBall)
- addscore 100
- if l3.state=0 then l3.State = 1:CheckLanes
- End Sub
- Sub RightOutLane_Hit
- PlaySound "fx_sensor", 0, 1, Audiopan(ActiveBall)
- addscore 100
- if l4.state=0 then l4.State = 1:CheckLanes
- End Sub
- Sub CheckLanes()
- If l1.State + l2.State + l3.State + l4.State = 4 Then
- DMDFlush:DMD "black.jpg", "re-entry activated", "W A V E", 3000
- PuPlayer.playlistplayex paudio,"audiocallouts","backtolineupactivated.mp3",100,1
- light_kickback.state=1
- kickerleft.enabled=true
- addscore 500
- End If
- End Sub
- '***** rotate wave lights by flippers ******
- Sub RotateLaneLightsLeft()
- Dim wave
- wave = l1.State
- l1.state = l2.State
- l2.State = l3.State
- l3.State = l4.State
- l4.State = wave
- End Sub
- Sub RotateLaneLightsRight()
- Dim wave2
- wave2 = l4.State
- l4.state = l3.State
- l3.State = l2.State
- l2.State = l1.State
- l1.State = wave2
- End Sub
- '***** spinners *****
- sub Spinnerleft_Spin
- PlaySound "fx_spinner", 0, 1.5, AudioPan(Spinnerleft), 0.25, 0, 0, 1, AudioFade(Spinnerleft):Addscore 50
- end sub
- sub Spinnerright_Spin
- PlaySound "fx_spinner", 0, 1.5, AudioPan(Spinnerright), 0.25, 0, 0, 1, AudioFade(Spinnerright):Addscore 50
- end sub
- '***** gates *****
- sub gateleft_hit
- PlaySound "fx_gate", 0, 1, Audiopan(ActiveBall)
- end Sub
- sub gateright_hit
- PlaySound "fx_gate", 0, 1, Audiopan(ActiveBall)
- end Sub
- sub gateramptube_hit
- PlaySound "fx_gate", 0, 1, Audiopan(ActiveBall)
- end Sub
- '***** wipeouts *****
- Sub Trigger_wipeout_left_Hit
- lightSeqDrainLeft.Play SeqDiagDownLeftOn, 40,1
- StopSharkMode:sharkwait.enabled=false
- if BallsOnPlayfield=1 then drainfun
- DOF 900, DOFOff
- drainwaittimer.enabled=true
- End Sub
- Sub Trigger_wipeout_center_Hit
- 'lightSeqDrainCenter.Play SeqDownOn, 40,1 sometimes causes crashes when ball is too fast, why?
- StopSharkMode:sharkwait.enabled=false
- if BallsOnPlayfield=1 then drainfun
- DOF 900, DOFOff
- drainwaittimer2.enabled=true
- End Sub
- Sub Trigger_wipeout_right_Hit
- lightSeqDrainRight.Play SeqDiagDownRightOn, 40,1
- StopSharkMode:sharkwait.enabled=false
- if BallsOnPlayfield=1 then drainfun
- DOF 900, DOFOff
- drainwaittimer.enabled=true
- End Sub
- sub drainwaittimer_timer()
- if TimerESmode.Enabled=true and BallsOnPlayfield=0 then StopESMode
- if Timerskeetmode.Enabled=true and BallsOnPlayfield=0 then StopSKEETMode
- if sexwaxfrenzy.enabled=true and BallsOnPlayfield= 0 then StopSexwaxfrenzyMode
- drainwaittimer.enabled=false
- end sub
- sub drainwaittimer2_timer()
- if TimerESmode.Enabled=true and BallsOnPlayfield=0 then StopESMode
- if Timerskeetmode.Enabled=true and BallsOnPlayfield=0 then StopSKEETMode
- if sexwaxfrenzy.enabled=true and BallsOnPlayfield= 0 then StopSexwaxfrenzyMode
- drainwaittimer2.enabled=false
- end sub
- sub drainfun
- if Light_extraball.state <> 2 then
- PuPlayer.playlistplayex pTopper, "topper","topper2.mp4",100,1
- DMDFlush:DMD "black.jpg", "HEAVY", "Wipeout!", 6000
- end if
- dim c
- c = int (rnd*20)+1
- if light_extraball.state=0 and c = 20 then PuPlayer.playlistplayex paudio,"drain2","",80, 1:PuPlayer.playlistplayex pBackglass,"videowipeouts","",0,1
- if light_extraball.state=0 and c <> 20 then PuPlayer.playlistplayex paudio,"drains","",80, 1:PuPlayer.playlistplayex pBackglass,"videowipeouts","",0,1
- if light_extraball.state=1 then PuPlayer.playlistplayex paudio,"drains","",80, 1:PuPlayer.playlistplayex pBackglass,"videowipeouts","",0,1
- end sub
- sub wirerampright_hit()
- PlaySound "metalrolling", 0, Vol(ActiveBall), AudioPan(ActiveBall), 0, Pitch(ActiveBall), 1, 0, AudioFade(ActiveBall)
- end Sub
- sub ripcurl_hit()
- PuPlayer.playlistplayex pAudio,"ripcurl","",100, 1:addscore 5000
- end sub
- sub ripcurl2_hit()
- PuPlayer.playlistplayex pAudio,"ripcurl","",100, 1:addscore 5000
- end sub
- '************** silversurfer rotate ***************
- 'surfer
- sub surferrottrigger_hit()
- surferrottrigger.enabled=false
- silversurfertimer.enabled=true
- PlaySound "spin", 0, Vol(ActiveBall), AudioPan(ActiveBall), 0, Pitch(ActiveBall), 1, 0, AudioFade(ActiveBall)
- surfertimer.enabled=true
- end sub
- sub surfertimer_timer()
- surferrottrigger.enabled=true
- end sub
- Dim silversurferXStep
- Sub silversurfertimer_Timer
- silversurferXStep = silversurferXStep + 1
- Select Case silversurferXStep
- Case 1:
- silversurfer.objrotz = 190
- Case 2:
- silversurfer.objrotz = 210
- Case 3:
- silversurfer.objrotz = 240
- Case 4:
- silversurfer.objrotz = 280
- Case 5:
- silversurfer.objrotz = 330
- Case 6:
- silversurfer.objrotz = 15
- Case 7:
- silversurfer.objrotz = 68
- Case 8:
- silversurfer.objrotz = 110
- Case 9:
- silversurfer.objrotz = 151
- Case 10:
- silversurfer.objrotz = 191
- Case 11:
- silversurfer.objrotz = 230
- Case 12:
- silversurfer.objrotz = 268
- Case 13:
- silversurfer.objrotz = 305
- Case 14:
- silversurfer.objrotz = 341
- Case 15:
- silversurfer.objrotz = 16
- Case 16:
- silversurfer.objrotz = 50
- Case 17:
- silversurfer.objrotz = 83
- Case 18:
- silversurfer.objrotz = 115
- Case 19:
- silversurfer.objrotz = 146
- Case 20:
- silversurfer.objrotz = 176
- Case 21:
- silversurfer.objrotz = 205
- Case 22:
- silversurfer.objrotz = 233
- Case 23:
- silversurfer.objrotz = 260
- Case 24:
- silversurfer.objrotz = 286
- Case 25:
- silversurfer.objrotz = 311
- Case 26:
- silversurfer.objrotz = 335
- Case 27:
- silversurfer.objrotz = 358
- Case 28:
- silversurfer.objrotz = 20
- Case 29:
- silversurfer.objrotz = 41
- Case 30:
- silversurfer.objrotz = 61
- Case 31:
- silversurfer.objrotz = 80
- Case 32:
- silversurfer.objrotz = 98
- Case 33:
- silversurfer.objrotz = 115
- Case 34:
- silversurfer.objrotz = 131
- Case 35:
- silversurfer.objrotz = 146
- Case 36:
- silversurfer.objrotz = 160
- Case 37:
- silversurfer.objrotz = 175
- Case 38:
- silversurfer.objrotz = 180
- silversurfertimer.Enabled = False
- silversurferXStep=0
- End select
- End Sub
- '*********************************************************
- ' board shake
- '*********************************************************
- Dim cBall1, cBall2, pMod, rmmod
- Dim mMagnet, mMagnet2
- Set mMagnet = new cvpmMagnet
- With mMagnet
- .InitMagnet WobbleMagnet, 5
- .Size = 100
- .MagnetOn = True
- End With
- Set mMagnet2 = new cvpmMagnet
- With mMagnet
- .InitMagnet WobbleMagnet2, 5
- .Size = 100
- .MagnetOn = True
- End With
- WobbleInit
- 'Includes stripped down version of my reverse slope scripting for a single ball
- Dim ngrav, ngravmod, slopemod, nslope ',pslope
- Sub WobbleInit
- nslope = Table1.SlopeMin +((Table1.SlopeMax - Table1.SlopeMin) * Table1.GlobalDifficulty)
- ' nslope = pslope
- 'Pcup1.rotx=nslope
- 'Pcup2.rotx=nslope
- slopemod = 2*nslope 'pslope + nslope
- ngravmod = 60/aWobbleTimer.interval
- ngrav = slopemod * .0905 * Table1.Gravity / ngravmod
- pMod = .15 'percentage of hit power transfered to captive wobble ball
- Set cBall1 = cKicker1.createball:cball1.image = "blank":cKicker1.Kick 0,0 ':mMagnet1.addball cball1
- Set cBall2 = cKicker2.createball:cball2.image = "blank":ckicker2.Kick 0,0 ':mMagnet2.addball cball2
- aWobbleTimer.enabled = 1
- End Sub
- Sub aWobbleTimer_Timer 'modifier for slope reversal/cancellation
- cBall1.Vely = cBall1.VelY-ngrav
- cBall2.Vely = cBall2.VelY-ngrav
- Primitive004.objrotx = (ckicker1.y - cball1.y)+180'*rmmod
- Primitive004.objroty = (cball1.x - ckicker1.x)'*rmmod
- Primitive003.objrotx = -(cKicker2.y - cBall2.y)'*rmmod
- Primitive003.objroty = -(cBall2.x - cKicker2.x)'*rmmod
- End Sub
- '************** videomode **************
- sub waitforendmode_timer()
- if ballsonplayfield=1 then
- modecount=modecount+1:videomodecheck
- end If
- waitforendmode.enabled=false
- end Sub
- sub videomodecheck()
- if modecount = 3 then chancevideomode
- if modecount = 6 then chancevideomode
- if modecount = 9 then chancevideomode
- if modecount = 12 then chancevideomode
- end sub
- sub chancevideomode()
- PuPlayer.playlistplayex pMusic,"musicdiv","chancevideomode.mp3",100, 1
- PuPlayer.playlistplayex pBackglass,"videodiv","videomode_countdown.mp4",0, 1
- timerchancevideomode.enabled=true
- ' 'start timercountdown on backglass:PuPlayer.playlistplayex pBackglass,"videodiv","countdown.mp4",100, 1
- DMDFlush:DMD "black.jpg", "hurry up! chance for", "videomode!", 10000
- kickervideomode.enabled=true
- kickervideomode.DrawStyle=1:kickervideomode.enabled=true:shark.visible=false '0=Hidden, 1=Hole, 2=Cup, 3=Invisible
- videomodelock.state=2
- flasherchancevideomode.visible=true
- For each xx in aPlasticsBlack:xx.isdropped=false:Next
- wall_inv_skt.isdropped=false:wall_inv_es.isdropped=false
- gateramp.collidable=false:TargetTriggershot_right.collidable=false:targetequip01.collidable=false:targetequip02.collidable=false:targetequip03.collidable=false:bumperwall.collidable=true:bumper.collidable=false
- TargetSkeetmode01.collidable=false:TargetSkeetmode02.collidable=false:TargetSkeetmode02.collidable=false:TargetSkeetmode02.collidable=false
- For each xx in aTargetsES:xx.blenddisablelighting=0 : Next
- for each xx in aTargetsSKEET:xx.blenddisablelighting=0:next
- end sub
- sub Timerchancevideomode_timer()
- DMDFlush:DMD "black.jpg", "you missed chance", "for videomode", 3000
- PuPlayer.playlistplayex pBackglass,"videodiv","videomode_missed.mp4",0, 1
- kickervideomode.DrawStyle=0:kickervideomode.enabled=false:shark.visible=true
- timerchancevideomode.enabled=false
- PuPlayer.playlistplayex pMusic,"musicmainmode","",100, 1
- PuPlayer.playlistplayex pBackglass,"videodiv","countdown.mp4",100, 1
- videomodelock.state=0
- flasherchancevideomode.visible=false
- For each xx in aPlasticsBlack:xx.isdropped=true:Next
- wall_inv_skt.isdropped=true:wall_inv_es.isdropped=true
- gateramp.collidable=true:TargetTriggershot_right.collidable=true:targetequip01.collidable=true:targetequip02.collidable=true:targetequip03.collidable=true:bumperwall.collidable=false:bumper.collidable=true
- TargetSkeetmode01.collidable=true:TargetSkeetmode02.collidable=true:TargetSkeetmode02.collidable=true:TargetSkeetmode02.collidable=true
- For each xx in aTargetsSKEET
- if xx.isdropped=false then xx.blenddisablelighting=1
- next
- for each xx in aTargetsES
- if xx.isdropped=false then xx.blenddisablelighting=1
- next
- end sub
- sub kickervideomode_hit()
- 'stop timercountdown on backglass
- timerchancevideomode.enabled=false
- timervideomodewait.enabled=true
- PuPlayer.playlistplayex pTopper,"Topper","black.png",100, 1
- PuPlayer.playlistplayex pMusic,"musicdiv","videomodetuberide.mp3",100, 1
- PuPlayer.playlistplayex pBackglass,"videodiv","videomode_tuberide_BG.mp4",0, 1
- DMDFlush:DMD "videomode.wmv", "imagine a cool", "videomode 8-)", 21000:waittimertext.enabled=true
- videomodelock.state=0
- end Sub
- sub timervideomodewait_timer()
- kickervideomode.kick 10,10:playsound "fx_ball_drop0":kickervideomode.DrawStyle=0:kickervideomode.enabled=false:shark.visible=true
- timerchancevideomode.enabled=False
- timervideomodewait.enabled=false
- flasherchancevideomode.visible=false
- For each xx in aPlasticsBlack:xx.isdropped=true : Next
- wall_inv_skt.isdropped=true:wall_inv_es.isdropped=true
- gateramp.collidable=true:TargetTriggershot_right.collidable=true:targetequip01.collidable=true:targetequip02.collidable=true:targetequip03.collidable=true:bumperwall.collidable=false:bumper.collidable=true
- TargetSkeetmode01.collidable=true:TargetSkeetmode02.collidable=true:TargetSkeetmode02.collidable=true:TargetSkeetmode02.collidable=true
- For each xx in aTargetsSKEET
- if xx.isdropped=false then xx.blenddisablelighting=1
- next
- for each xx in aTargetsES
- if xx.isdropped=false then xx.blenddisablelighting=1
- next
- PuPlayer.playlistplayex pBackglass,"backglass","backglasswaves.mp4",0,1
- PuPlayer.playlistplayex pMusic,"musicmainmode","",100, 1
- PuPlayer.playlistplayex pTopper,"Topper","Topper.mp4",0, 1
- videomodelock.state=0
- addscore 1000000
- end Sub
- sub waittimertext_timer()
- DMDFlush:DMD "videomode.wmv", "for now just points:", "1.000.000", 20000
- waittimertext.enabled=false
- end Sub
Advertisement
Add Comment
Please, Sign In to add comment