rendered paste bodyimport sys
from net.sf.l2j.gameserver.model.quest import State
from net.sf.l2j.gameserver.model.quest import QuestState
from net.sf.l2j.gameserver.model.quest.jython import QuestJython as JQuest
FEATHER_OF_GABRIELLE_ID = 3852
HAMRUT_LEG_ID = 3856
KRANROT_SKIN_ID = 3855
REMAINS_OF_SACRIFIED_ID = 3857
TOTEM_OF_LAND_DRAGON_ID = 3858
MARSH_STALKER_HORN_ID = 3853
MARSH_DRAKE_TALONS_ID = 3854
MARK_OF_WATCHMAN_ID = 3864
MARA_FANG_ID = 3862
MUSFEL_FANG_ID = 3863
FIRST_FRAGMENT_OF_ABYSS_JEWEL_ID = 3859
SECOND_FRAGMENT_OF_ABYSS_JEWEL_ID = 3860
THIRD_FRAGMENT_OF_ABYSS_JEWEL_ID = 3861
HERALD_OF_SLAYER_ID = 3890
PORTAL_STONE_ID = 3865
HAMRUT_ID = 649
KRANROT_ID = 650
BLOODY_QUEEN_ID = 12079
SACRIFICE_OF_THE_SACRIFICED_ID = 5171
HARIT_LIZARDMAN_SHAMAN_ID = 644
HARIT_LIZARDMAN_ZEALOT_ID = 5172
MARSH_STALKER_ID = 679
MARSH_DRAKE_ID = 680
ABYSS_JEWEL1_ID = 5165
ABYSS_JEWEL2_ID = 5166
ABYSS_JEWEL3_ID = 5167
CAVE_KEEPER_ID = 277
CAVE_MAIDEN_ID = 287
CAVE_KEEPER1_ID = 246
CAVE_MAIDEN1_ID = 134
ANTHARAS_ID = 12211
class Quest (JQuest) :
def __init__(self,id,name,descr): JQuest.__init__(self,id,name,descr)
def onEvent (self,event,st) :
htmltext = event
if event == "1" :
st.setState(STARTED)
st.set("cond","1")
htmltext = "7753-05.htm"
st.giveItems(3852,1)
st.playSound("ItemSound.quest_accept")
elif event == "7753-08.htm" :
st.set("cond","2")
htmltext = "7753-09.htm"
st.playSound("ItemSound.quest_middle")
elif event == "7498-01.htm" :
htmltext = "7498-02.htm"
st.set("part","5")
st.playSound("ItemSound.quest_accept")
elif event == "7678-01.htm" :
st.set("part","6")
htmltext = "7498-01a.htm"
st.playSound("ItemSound.quest_accept")
elif event == "7754-02.htm" :
htmltext = "7754-03.htm"
st.set("part","7")
st.set("cond","4")
st.playSound("ItemSound.quest_accept")
elif event == "7755-04.htm" :
st.set("part","8")
st.giveItems(PORTAL_STONE_ID,1)
st.takeItems(THIRD_FRAGMENT_OF_ABYSS_JEWEL_ID,-1)
htmltext = "7755-05.htm"
st.playSound("ItemSound.quest_accept")
elif event == "12250-01.htm" :
st.takeItems(PORTAL_STONE_ID,1)
st.player.teleToLocation(177752,114910,-7713)
return htmltext
def onTalk (Self,npc,st):
npcId = npc.getNpcId()
htmltext = "<html><head><body>I have nothing to say you</body></html>"
id = st.getState()
level = st.getPlayer().getLevel()
if id == CREATED :
st.set("cond","0")
if npcId == 7753 and id == CREATED and level>=50 :
htmltext = "7753-01.htm"
else:
htmltext = "7753-00.htm"
if npcId == 7753 and st.getQuestItemsCount(MARK_OF_WATCHMAN_ID)==4 and int(st.get("part"))<=4 :
htmltext = "7753-09.htm"
st.getQuestItemsCount(MARK_OF_WATCHMAN_ID)
st.takeItems(MARK_OF_WATCHMAN_ID,-1)
elif npcId == 7753 and st.getQuestItemsCount(MARK_OF_WATCHMAN_ID)==2 and int(st.get("cond"))==2 :
st.takeItems(MARK_OF_WATCHMAN_ID,-1)
st.takeItems(FEATHER_OF_GABRIELLE_ID,-1)
st.giveItems(HERALD_OF_SLAYER_ID,1)
htmltext == "7753-11.htm"
st.set("cond","3")
st.playSound("ItemSound.quest_middle")
elif npcId == 7753 and st.getQuestItemsCount(HERALD_OF_SLAYER_ID)==1 and int(st.get("cond"))==3 :
htmltext == "7753-12.htm"
elif npcId == 7753 and id == STARTED and int(st.get("cond"))==1 :
htmltext == "7753-06.htm"
elif npcId == 7753 and st.getInt("part")==4 :
htmltext == "7753-08.htm"
elif npcId == 7753 and int(st.get("cond"))==2 and st.getQuestItemsCount(HERALD_OF_SLAYER_ID)==1 :
htmltext == "7753-10.htm"
elif npcId == 7753 and st.getInt("part")==7 :
htmltext == "7753-13.htm"
if npcId == 7720 and int(st.get("cond"))==1 :
htmltext = "7720-01.htm"
st.set("kaiena","1")
st.playSound("ItemSound.quest_accept")
st.set("onlyone","0")
elif npcId == 7720 and int(st.get("kaiena"))==1 and int(st.get("onlyone"))==1 :
htmltext = "7720-04.htm"
if npcId == 7720 and int(st.get("kaiena"))==1 and int(st.get("onlyone"))==0 :
if st.getQuestItemsCount(MARSH_STALKER_HORN_ID)==1 and st.getQuestItemsCount(MARSH_DRAKE_TALONS_ID)==1 :
st.giveItems(MARK_OF_WATCHMAN_ID,1)
st.takeItems(MARSH_STALKER_HORN_ID,-1)
st.takeItems(MARSH_DRAKE_TALONS_ID,-1)
st.playSound("ItemSound.quest_itemget")
st.set("onlyone","1")
htmltext = "7851-02.htm"
else:
htmltext = "<html><head><body>Bring me 2 proofs!</body></html>"
elif npcId == 7720 and int(st.get("part"))==2 and int(st.get("onlyone"))==1 :
htmltext = "7720-03.htm"
if npcId == 7705 and int(st.get("cond"))==1 :
htmltext = "7705-01.htm"
st.set("part","1")
st.set("onlyone","0")
st.playSound("ItemSound.quest_accept")
# else:
# htmltext = "7705-04.htm"
if npcId == 7705 and int(st.get("part"))==1 and int(st.get("onlyone"))==0 :
if st.getQuestItemsCount(HAMRUT_LEG_ID)>=1 and st.getQuestItemsCount(KRANROT_SKIN_ID)>=1 :
htmltext = "7705-02.htm"
st.giveItems(MARK_OF_WATCHMAN_ID,1)
st.takeItems(KRANROT_SKIN_ID,-1)
st.takeItems(HAMRUT_LEG_ID,-1)
st.playSound("ItemSound.quest_itemget")
st.set("onlyone","1")
htmltext = "7851-02.htm"
else:
htmltext = "<html><head><body>Bring me 2 proofs!</body></html>"
elif npcId == 7705 and int(st.get("part"))==1 and int(st.get("onlyone"))==1 :
htmltext = "7705-03.htm"
if npcId == 7851 and int(st.get("cond"))==1 :
htmltext = "7851-01.htm"
st.set("onlyone","0")
st.set("part","3")
st.playSound("ItemSound.quest_accept")
# else:
# htmltext = "7851-04.htm"
if npcId == 7851 and int(st.get("part"))==3 and int(st.get("onlyone"))==0 :
if st.getQuestItemsCount(TOTEM_OF_LAND_DRAGON_ID)==1 :
st.giveItems(MARK_OF_WATCHMAN_ID,1)
st.takeItems(TOTEM_OF_LAND_DRAGON_ID,-1)
st.playSound("ItemSound.quest_itemget")
st.set("onlyone","1")
htmltext = "7851-02.htm"
else:
htmltext = "<html><head><body>Bring me 2 proofs!</body></html>"
elif npcId == 7851 and int(st.get("part"))==3 and int(st.get("onlyone"))==1 :
htmltext = "7851-03.htm"
if npcId == 7857 and int(st.get("cond"))==1 :
htmltext = "7857-01.htm"
st.set("onlyone","0")
st.set("part","4")
st.playSound("ItemSound.quest_accept")
# else:
# htmltext = "7857-04.htm"
if npcId == 7857 and int(st.get("part"))==4 and int(st.get("onlyone"))==0 :
if st.getQuestItemsCount(REMAINS_OF_SACRIFIED_ID)==1 :
st.giveItems(MARK_OF_WATCHMAN_ID,1)
st.takeItems(REMAINS_OF_SACRIFIED_ID,-1)
st.playSound("ItemSound.quest_itemget")
htmltext = "7857-02.htm"
st.set("onlyone","1")
else:
htmltext = "<html><head><body>Bring me the proof!</body></html>"
elif npcId == 7857 and int(st.get("part"))==4 and int(st.get("onlyone"))==1 :
htmltext = "7857-03.htm"
if npcId == 7498 and int(st.get("cond"))==2 :
htmltext = "7498-01.htm"
st.set("onlyone","0")
# else:
# htmltext = "<html><head><body>I have nothing to say you</body></html>"
if npcId == 7498 and int(st.get("part"))==5 and st.getQuestItemsCount(MARA_FANG_ID)>=1 and st.getQuestItemsCount(FIRST_FRAGMENT_OF_ABYSS_JEWEL_ID)>=1 :
st.giveItems(MARK_OF_WATCHMAN_ID,1)
st.takeItems(MARA_FANG_ID,-1)
st.takeItems(FIRST_FRAGMENT_OF_ABYSS_JEWEL_ID,-1)
htmltext = "7498-03.htm"
elif npcId == 7498 and int(st.get("part"))==5 and st.getQuestItemsCount(MARK_OF_WATCHMAN_ID)==1 :
htmltext = "7498-04.htm"
elif npcId == 7498 and int(st.get("part"))==5 and st.getQuestItemsCount(MARK_OF_WATCHMAN_ID)==2 :
htmltext = "7498-05.htm"
# else:
# htmltext = "<html><head><body>I have nothing to say you</body></html>"
if npcId == 7678 and int(st.get("cond"))==2 :
htmltext = "7678-01.htm"
st.set("onlyone","0")
# else:
# htmltext = "<html><head><body>I have nothing to say you</body></html>"
if npcId == 7678 and int(st.get("part"))==6 and st.getQuestItemsCount(MUSFEL_FANG_ID)>=1 and st.getQuestItemsCount(SECOND_FRAGMENT_OF_ABYSS_JEWEL_ID)>=1 :
st.takeItems(MUSFEL_FANG_ID,-1)
st.takeItems(SECOND_FRAGMENT_OF_ABYSS_JEWEL_ID,-1)
st.giveItems(MARK_OF_WATCHMAN_ID,1)
htmltext = "7678-02.htm"
elif npcId == 7678 and int(st.get("part"))==6 and st.getQuestItemsCount(MARK_OF_WATCHMAN_ID)==1 :
htmltext = "7678-03.htm"
elif npcId == 7678 and int(st.get("part"))==6 and st.getQuestItemsCount(MARK_OF_WATCHMAN_ID)==2 :
htmltext = "7678-05.htm"
# else:
# htmltext = "<html><head><body>I have nothing to say you</body></html>"
if npcId == 7754 and int(st.get("cond"))==3 :
htmltext = "7754-02.htm"
elif pcId == 7754 and int(st.get("part"))>=3 and int(st.get("part"))<=7 :
htmltext = "7754-01.htm"
if npcId == 7754 and st.getQuestItemsCount(THIRD_FRAGMENT_OF_ABYSS_JEWEL_ID)==1 :
htmltext = "7754-05.htm"
if npcId == 7755 and int(st.get("cond"))<=3 :
htmltext = "7755-01.htm"
elif npcId == 7755 and int(st.get("cond"))==3 :
htmltext = "7755-02.htm"
elif npcId == 7755 and int(st.get("cond"))==4 :
htmltext = "7755-03.htm"
if npcId == 7755 and int(st.get("cond"))==4 and st.getQuestItemsCount(THIRD_FRAGMENT_OF_ABYSS_JEWEL_ID)==1 :
htmltext = "7755-04.htm"
if npcId == 12250 and int(st.get("cond"))==4 and int(st.get("part"))==8 and st.getQuestItemsCount(PORTAL_STONE_ID)==1 :
htmltext = "12250-01.htm"
elif npcId == 12250 and int(st.get("cond"))==4 and st.getQuestItemsCount(PORTAL_STONE_ID)<1 :
htmltext = "12250-04.htm"
return htmltext
def onAttack (self,npc,st) :
npcId = npc.getNpcId()
maxHp = npc.getMaxHp()
nowHp = npc.getCurrentHp()
if npcId == ABYSS_JEWEL1_ID and int(st.get("part"))==5 and maxHp*0.75<nowHp :
st.getPcSpawn().addSpawn(5168,-81250,75599,-3670)
st.getPcSpawn().addSpawn(5168,-81260,75599,-3670)
st.getPcSpawn().addSpawn(5168,-81270,75599,-3670)
st.getPcSpawn().addSpawn(5168,-81280,75599,-3670)
st.getPcSpawn().addSpawn(5168,-81290,75599,-3670)
st.getPcSpawn().addSpawn(5168,-81250,75619,-3670)
st.getPcSpawn().addSpawn(5168,-81250,75629,-3670)
st.getPcSpawn().addSpawn(5168,-81250,75639,-3670)
st.getPcSpawn().addSpawn(5168,-81250,75649,-3670)
st.getPcSpawn().addSpawn(5168,-81250,75659,-3670)
st.getPcSpawn().addSpawn(5168,-81250,75669,-3670)
st.getPcSpawn().addSpawn(5168,-81250,75679,-3670)
st.getPcSpawn().addSpawn(5168,-81250,75689,-3670)
st.getPcSpawn().addSpawn(5168,-81250,75699,-3670)
elif npcId == ABYSS_JEWEL1_ID and int(st.get("part"))==5 and maxHp*0.50<nowHp and st.getQuestItemsCount(FIRST_FRAGMENT_OF_ABYSS_JEWEL_ID)<1 :
st.giveItems(FIRST_FRAGMENT_OF_ABYSS_JEWEL_ID,1)
if npcId == ABYSS_JEWEL2_ID and int(st.get("part"))==6 and maxHp*0.75<nowHp :
st.getPcSpawn().addSpawn(5169,63706,31139,-3745)
st.getPcSpawn().addSpawn(5169,63716,31139,-3745)
st.getPcSpawn().addSpawn(5169,63726,31139,-3745)
st.getPcSpawn().addSpawn(5169,63736,31139,-3745)
st.getPcSpawn().addSpawn(5169,63746,31139,-3745)
st.getPcSpawn().addSpawn(5169,63756,31139,-3745)
st.getPcSpawn().addSpawn(5169,63766,31139,-3745)
st.getPcSpawn().addSpawn(5169,63776,31139,-3745)
st.getPcSpawn().addSpawn(5169,63786,31139,-3745)
st.getPcSpawn().addSpawn(5169,63796,31139,-3745)
st.getPcSpawn().addSpawn(5169,63706,31149,-3745)
st.getPcSpawn().addSpawn(5169,63706,31159,-3745)
st.getPcSpawn().addSpawn(5169,63706,31169,-3745)
st.getPcSpawn().addSpawn(5169,63706,31179,-3745)
elif npcId == ABYSS_JEWEL2_ID and int(st.get("part"))==6 and maxHp*0.50<nowHp and st.getQuestItemsCount(SECOND_FRAGMENT_OF_ABYSS_JEWEL_ID)<1 :
st.giveItems(SECOND_FRAGMENT_OF_ABYSS_JEWEL_ID,1)
if npcId == ABYSS_JEWEL3_ID and int(st.get("part"))==7 and maxHp*0.75<nowHp :
st.getPcSpawn().addSpawn(5170)
st.getPcSpawn().addSpawn(5170)
st.getPcSpawn().addSpawn(5170)
st.getPcSpawn().addSpawn(5170)
elif npcId == ABYSS_JEWEL3_ID and int(st.get("part"))==7 and maxHp*0.50<nowHp and st.getQuestItemsCount(THIRD_FRAGMENT_OF_ABYSS_JEWEL_ID)<1 :
st.giveItems(THIRD_FRAGMENT_OF_ABYSS_JEWEL_ID,1)
return
def onKill (self,npc,st):
npcId = npc.getNpcId()
if npcId == HAMRUT_ID and int(st.get("part"))==1 and st.getQuestItemsCount(HAMRUT_LEG_ID)<1 :
st.giveItems(HAMRUT_LEG_ID,1)
elif npcId == KRANROT_ID and int(st.get("part"))==1 and st.getQuestItemsCount(KRANROT_SKIN_ID)<1 :
st.giveItems(KRANROT_SKIN_ID,1)
if npcId == BLOODY_QUEEN_ID and int(st.get("part"))==4 :
st.getPcSpawn().addSpawn(SACRIFICE_OF_THE_SACRIFICED_ID)
st.getPcSpawn().addSpawn(SACRIFICE_OF_THE_SACRIFICED_ID)
st.getPcSpawn().addSpawn(SACRIFICE_OF_THE_SACRIFICED_ID)
st.getPcSpawn().addSpawn(SACRIFICE_OF_THE_SACRIFICED_ID)
st.getPcSpawn().addSpawn(SACRIFICE_OF_THE_SACRIFICED_ID)
st.getPcSpawn().addSpawn(SACRIFICE_OF_THE_SACRIFICED_ID)
st.getPcSpawn().addSpawn(SACRIFICE_OF_THE_SACRIFICED_ID)
st.getPcSpawn().addSpawn(SACRIFICE_OF_THE_SACRIFICED_ID)
st.getPcSpawn().addSpawn(SACRIFICE_OF_THE_SACRIFICED_ID)
st.getPcSpawn().addSpawn(SACRIFICE_OF_THE_SACRIFICED_ID)
st.getPcSpawn().addSpawn(SACRIFICE_OF_THE_SACRIFICED_ID)
if npcId == SACRIFICE_OF_THE_SACRIFICED_ID and int(st.get("part"))==4 and st.getQuestItemsCount(REMAINS_OF_SACRIFIED_ID)<1 :
st.giveItems(REMAINS_OF_SACRIFIED_ID,1)
if npcId == MARSH_STALKER_ID and int(st.get("part"))==2 and st.getQuestItemsCount(MARSH_STALKER_HORN_ID)<1 :
st.giveItems(MARSH_STALKER_HORN_ID,1)
if npcId == MARSH_DRAKE_ID and int(st.get("part"))==2 and st.getQuestItemsCount(MARSH_DRAKE_TALONS_ID)<1 :
st.giveItems(MARSH_DRAKE_TALONS_ID,1)
if npcId == HARIT_LIZARDMAN_SHAMAN_ID and int(st.get("part"))==3 :
st.getPcSpawn().addSpawn(HARIT_LIZARDMAN_ZEALOT_ID)
st.getPcSpawn().addSpawn(HARIT_LIZARDMAN_ZEALOT_ID)
st.getPcSpawn().addSpawn(HARIT_LIZARDMAN_ZEALOT_ID)
st.getPcSpawn().addSpawn(HARIT_LIZARDMAN_ZEALOT_ID)
st.getPcSpawn().addSpawn(HARIT_LIZARDMAN_ZEALOT_ID)
st.getPcSpawn().addSpawn(HARIT_LIZARDMAN_ZEALOT_ID)
st.getPcSpawn().addSpawn(HARIT_LIZARDMAN_ZEALOT_ID)
st.getPcSpawn().addSpawn(HARIT_LIZARDMAN_ZEALOT_ID)
st.getPcSpawn().addSpawn(HARIT_LIZARDMAN_ZEALOT_ID)
st.getPcSpawn().addSpawn(HARIT_LIZARDMAN_ZEALOT_ID)
st.getPcSpawn().addSpawn(HARIT_LIZARDMAN_ZEALOT_ID)
st.getPcSpawn().addSpawn(HARIT_LIZARDMAN_ZEALOT_ID)
if npcId == HARIT_LIZARDMAN_ZEALOT_ID and int(st.get("part"))==3 and st.getQuestItemsCount(TOTEM_OF_LAND_DRAGON_ID)<1 :
st.giveItems(TOTEM_OF_LAND_DRAGON_ID,1)
if npcId == CAVE_MAIDEN_ID or CAVE_KEEPER_ID or CAVE_KEEPER1_ID1 or CAVE_MAIDEN1_ID and int(st.get("part"))==7 :
st.getPcSpawn().addSpawn(ABYSS_JEWEL3_ID)
if npcId == ANTHARAS_ID :
st.set("onlyone","0")
st.exitQuest(1)
st.getPcSpawn().addSpawn(12324,177777,114900,-7713,900000)
return
QUEST = Quest(337,"337_AudienceWithTheLandDragon","Audience With The Land Dragon")
CREATED = State('Start', QUEST)
STARTED = State('Started', QUEST)
COMPLETED = State('Completed', QUEST)
QUEST.setInitialState(CREATED)
QUEST.addStartNpc(7753)
CREATED.addTalkId(7753)
STARTED.addTalkId(7498)
STARTED.addTalkId(7678)
STARTED.addTalkId(7705)
STARTED.addTalkId(7720)
STARTED.addTalkId(7753)
STARTED.addTalkId(7754)
STARTED.addTalkId(7755)
STARTED.addTalkId(7851)
STARTED.addTalkId(7857)
STARTED.addTalkId(12550)
STARTED.addKillId(HAMRUT_ID)
STARTED.addKillId(KRANROT_ID)
STARTED.addKillId(BLOODY_QUEEN_ID)
STARTED.addKillId(SACRIFICE_OF_THE_SACRIFICED_ID)
STARTED.addKillId(HARIT_LIZARDMAN_SHAMAN_ID)
STARTED.addKillId(HARIT_LIZARDMAN_ZEALOT_ID)
STARTED.addKillId(MARSH_STALKER_ID)
STARTED.addKillId(MARSH_DRAKE_ID)
STARTED.addKillId(ABYSS_JEWEL1_ID)
STARTED.addKillId(ABYSS_JEWEL2_ID)
STARTED.addKillId(ABYSS_JEWEL3_ID)
STARTED.addKillId(CAVE_KEEPER_ID)
STARTED.addKillId(CAVE_MAIDEN_ID)
STARTED.addKillId(CAVE_KEEPER1_ID)
STARTED.addKillId(CAVE_MAIDEN1_ID)
STARTED.addKillId(ANTHARAS_ID)
print "importing quests: 337: Audience With The Land Dragon"