To date, what I have found with "Pirates Wolves of the Sea"
Once you defeat the captain, the 2 sound samples, "vo_captaindefeated" and "vo_fightkraken" overlap one another.
Changing "KrakenDelay" from 20 to 50 in the CheckCaptain Sub will fix this.
CODE
Sub CheckCaptain
AddScore CaptainValue ' Captain has been hit
CaptainLife = CaptainLife - CaptainHitValue
If CaptainLife <0 Then 'Captain's defeated
DisplayFlushQueue
DisplayQueueScreen "THE CAPTAIN HAS ", " BEEN DEFEATED", eBlinkFast, eBlinkFast, 0, 1000, True, "vo_captaindefeated"
AddScore CaptainValue * 10
CaptainValue = CaptainValue * 2
EndCaptain
l31.State = 1
l7.State = 1:CheckEast
KrakenDelay = 50
End If
End Sub;
When you complete the six green standup targets (The Pirate's Skulls), the random "pirates quote" plays at the same time you hear the sample "vo_greenskullscompleted". The following change will prevent the two samples from playing at the same time.
CODE
$Sub CheckGreenSkulls
Dim x, tmp
tmp = 0
For x = 0 to 5
tmp = tmp + GreenSkulls(x)
Next
If tmp = 6 Then 'green skulls completed
If PiratesCompleted = 0 Then PlaySound "vo_greenskullscompleted" 'play only the first time
If PiratesCompleted = 1 Then PlayPiratesQuote
PiratesCompleted = 1
Addscore GreenSkullValue
l9.State = 1
CheckSouth
StartLiarsDice
NewGreenSkulls
Else
PlayPiratesQuote
End If
End Sub;
When you start the table for the first time, it initializes just fine, but when you restart the table for all successive games, not everything initializes the way it should.
In Sub_Initialize you need to add "ResetChestKeys" and "ResetChest" to close the chest and turn off the key lamps for the next game.
CODE
$Sub Initialize ' First Ball
ResetLights
Score = 0
Bonus = 0
BallsRemaining = BallsPerGame + 1 ' first ball
BallsOnPlayfield = 0
BallsInLock = 0
BallSaved = 0
BonusMultiplier = 1
MultiballDelay = 0
TiltDelay = 0
Tilted = False
Tilt = 0
Special = 0
AutoPlungerDelay = 0
AutoPlungerReady = 0
MultiBallMode = 0
GameStarted = 1
PlaySong "m_plunger2"
If Firsttime = 0 Then PlaySound "vo_welcome":Firsttime = 1
' Reset Modes
StartSkillshot
ResetOutlanes
ComboValue = 250000
ResetCombo
GreenKeyValue = 500000
ResetGreenKeys
CenterValue = 250000
ResetShip
ResetKraken
Reset3M
ResetCaptain
ResetSwordFight
ResetNorth
ResetSkull
Reset2M
ResetExtraBall
ResetSpecial
ResetPortRoyal
ResetGreenSkulls
ResetSouth
ResetJackpotMode
ResetLiarsDice
ResetEast
Reset4Winds
ResetTreasure
ResetInlanes
ResetBonusHeld
ResetChest
ResetChestKeys
End Sub;
In Sub_ResetTreasure you need to add "l18.state=0" and "l20.state=0" to reset lamps l18 and l20 for the start of a new game.
CODE
$Sub ResetTreasure
TreasureCollected = 0
l18.state=0
l20.state=0
End Sub;
There's a major typo in the script preventing you from playing the wizard mode (4 Winds Multiball).
Change "l2.State=1" to "l52.State=1"
CODE
$Sub Check4Winds 'check all the wheel lights are on
If FourWindsStarted Then
AwardSuperJackpot
Else
If LastSwitchHit = "sw16" AND l49.State = 1 AND l50.State = 1 AND l51.State = 1 AND l2.State = 1 Then
Start4Winds
End If
End If
End Sub;
One more major issue:
There are no calls to the subroutine CheckNorth so it is impossible to start and complete "Collect Crew" . Without it you cannot meet the north requirement for 4 Winds Multiball (Wizard Mode).
I think the calls should go here:
CODE
$Sub ShipDestroyed
SetLamp 90, 0, 2, 30:SetLamp 91, 0, 2, 30:SetLamp 92, 0, 2, 30:SetLamp 93, 0, 2, 30:SetLamp 94, 0, 2, 30
SetLamp 95, 0, 2, 30:SetLamp 96, 0, 2, 30:SetLamp 97, 0, 2, 30:SetLamp 98, 0, 2, 30:SetLamp 99, 0, 2, 30
Dim scoretmp
Ship1.IsDropped = 1:Ship2.IsDropped = 1:Ship3.IsDropped = 1:Ship4.IsDropped = 1
l5.State = 1
scoretmp = 150000 + 50000 * ShipsSunk
DisplayFlushQueue
DisplayQueueScreen " SHIP DESTROYED ", FormatScore(scoretmp) & " ", eNone, eBlinkFast, 0, 500, True, "vo_sunkship"
Addscore scoretmp
CheckNorth
CaptainDelay = 40
End Sub
and Here:
CODE
$Sub CheckSwordFight 'a bumper has been hit then check for the sword fight and increase the bonus multiplier
Dim tmp
SFHits = SFHits + 1
tmp = INT(RND(1) * 3) 'play a sword sound
Select Case tmp
Case 0:PlaySound "fx_sword1"
Case 1:PlaySound "fx_sword2"
Case 2:PlaySound "fx_sword3"
End Select
If SFHits
MOD 20 = 0 Then 'increase bonus multiplier after 20 hits
BonusMultiplier = BonusMultiplier + 1
BumperAward = BumperAward + 250
End If
If SFHits = 200 Then PlaySound "vo_swordcompleted":l6.State = 1:CheckNorth 'Sword Fight completed
End Sub
JP, you better check that out carefully to be sure. I think there are some sound issues as well with that as well.
That's all I can find for now- For such a complex game, there is a lot to try out.
Thanks JP for this great Original!
P.S. I'm still trying to isolate and fix the problem with the extra ball, it happens only once in a great while.
Also when I get six balls going all at once, wierd things start happening. Is their some way to limit the ball to 4 on the playfield?
Edited by sast05, 05 February 2012 - 03:30 AM.