100 lines
3.4 KiB
Python
100 lines
3.4 KiB
Python
# Guon (2094002) | Inside the Lord Pirate Party Quest
|
|
|
|
from net.swordie.ms.constants import GameConstants
|
|
from net.swordie.ms.constants import WzConstants
|
|
|
|
pqItems = [
|
|
4001117, # Old Metal Key
|
|
4001120, # Rookie Pirate Mark
|
|
4001121, # Rising Pirate Mark
|
|
4001122, # Veteran Pirate Mark
|
|
]
|
|
|
|
ROOKIE_PIRATE_MARK = 4001120 # Stage 0
|
|
RISING_PIRATE_MARK = 4001121 # Stage 1
|
|
VETERAN_PIRATE_MARK = 4001122 # Stage 2
|
|
count = 5
|
|
|
|
stage = int(sm.getQRValue(GameConstants.LORD_PIRATE_QUEST))
|
|
|
|
|
|
if sm.getFieldID() == 925100100: # Hidden Street: Through the Head of the Ship!
|
|
item = 0
|
|
if stage == 0:
|
|
item = ROOKIE_PIRATE_MARK
|
|
elif stage == 1:
|
|
item = RISING_PIRATE_MARK
|
|
elif stage == 2:
|
|
item = VETERAN_PIRATE_MARK
|
|
|
|
nextItem = 0
|
|
if stage == 0:
|
|
nextItem = RISING_PIRATE_MARK
|
|
elif stage == 1:
|
|
nextItem = VETERAN_PIRATE_MARK
|
|
|
|
if sm.isPartyLeader():
|
|
if stage == 3:
|
|
sm.sendNext("Make your way through the portal on the right")
|
|
|
|
else:
|
|
if sm.hasItem(item, count):
|
|
if stage == 2:
|
|
sm.sendNext("Great you may now continue to the next stage!")
|
|
sm.invokeForParty("showEffectToField", WzConstants.EFFECT_CLEAR)
|
|
|
|
else:
|
|
sm.sendNext("Alright, next up I need "+ str(count) +" #v"+ str(nextItem) +"##b#t"+ str(nextItem) +"##k.")
|
|
sm.consumeItem(item, count)
|
|
sm.invokeForParty("setQRValue", GameConstants.LORD_PIRATE_QUEST, str(int(sm.getQRValue(GameConstants.LORD_PIRATE_QUEST)) + 1))
|
|
|
|
else:
|
|
sm.sendNext("Please bring me "+ str(count) +" #v"+ str(item) +"##b#t"+ str(item) +"##k.")
|
|
else:
|
|
sm.sendSayOkay("Please, have your party leader speak to me.")
|
|
|
|
|
|
elif sm.getFieldID() == 925100500: # Hidden Street: The Captain's Dignity
|
|
if not sm.hasMobsInField():
|
|
if not sm.isPartyLeader():
|
|
sm.sendSayOkay("Please have your party leader speak to me.")
|
|
else:
|
|
sm.sendNext("You have done us a great favour, what ever can we do to repay you?")
|
|
sm.warpInstanceIn(925100700, True)
|
|
# For all party members
|
|
for partyMembers in sm.getParty().getMembers():
|
|
# Sets the Stage2 progress back to 0
|
|
if partyMembers.getChr() is None:
|
|
continue
|
|
|
|
sm.setQRValue(partyMembers.getChr(), GameConstants.LORD_PIRATE_QUEST, "0")
|
|
|
|
# Gives all party members Exp
|
|
sm.giveExp(sm.getPQExp(partyMembers.getChr()))
|
|
|
|
# Checks & deletes all items in the array: pqItems
|
|
for item in pqItems:
|
|
if sm.hasItem(item):
|
|
quantity = sm.getQuantityOfItem(item)
|
|
sm.consumeItem(item, quantity)
|
|
|
|
else:
|
|
sm.sendSayOkay("Please get rid of the Captain!")
|
|
|
|
elif sm.getFieldID() == 925100700: #pq exist of completion
|
|
sm.giveNX(200000)
|
|
sm.giveItem(4310212, 2)
|
|
sm.warpInstanceOut(910002000)
|
|
sm.setQRValue(GameConstants.LORD_PIRATE_QUEST, "0")
|
|
|
|
else:
|
|
response = sm.sendAskYesNo("Are you sure you want to leave?")
|
|
if response:
|
|
if not sm.getParty() is None:
|
|
sm.warpInstanceOut(910002000)
|
|
for partyMembers in sm.getParty().getMembers():
|
|
sm.setQRValue(partyMembers.getChr(), GameConstants.LORD_PIRATE_QUEST, "0", True)
|
|
else:
|
|
sm.warpInstanceOut(910002000, 0)
|
|
sm.setQRValue(GameConstants.LORD_PIRATE_QUEST, "0")
|